Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
Ponieważ coraz więcej naszego życia jest wysyłanych do wielkiej chmury na niebie, jaką jest Internet, coraz trudniej jest zachować bezpieczeństwo i prywatność podczas osobistych przygód internetowych. Niezależnie od tego, czy uzyskujesz dostęp do poufnych informacji, które chcesz zachować prywatność, próbujesz ominąć ograniczenia nałożone na to, gdzie lub co możesz przeglądać w swojej sieci, czy też chcesz po prostu bezpieczniejsze przeglądanie, najczęstsza rada, jaką słyszę, dotycząca zachowania bezpieczeństwa w Internecie jest korzystanie z wirtualnej sieci prywatnej (lub w skrócie VPN).
VPN oferują dwie świetne usługi w jednym pakiecie, ponieważ szyfrują wszystkie pakiety informacji, które są przez nie przesyłane, i tworzą zdalne usługi, które są w tej samej sieci, co sieć VPN, lokalnie dla maszyny, której używasz do połączenia. Jeśli mój serwer VPN znajduje się w Niemczech i łączę się z VPN z laptopa w Australii, mój laptop będzie miał teraz adres IP z Niemiec!
Jednak głównym punktem spornym w przypadku bardziej popularnych usług VPN jest to, że wiele typów urządzeń znajduje się w sytuacjach, w których albo nie można ich skonfigurować do korzystania z klienta VPN, albo nie ma dostępnego klienta VPN. Chcemy więc, aby nasze urządzenia były połączone z naszą siecią VPN, ale w przypadku innych maszyn, które nie mogą połączyć się z prostym klientem VPN, chcemy, aby były połączone z naszą siecią VPN, nawet nie wiedząc, że są połączone! Wprowadź punkt dostępu VPN!
Krok 1: Materiały
Materiały do tego projektu są niskie, ale wszystkie elementy są wymagane.
Poza routerem domowym (który, jak zakładam, powinieneś mieć), będziesz potrzebować
- 1 Raspberry Pi (najlepiej Raspberry Pi 3 lub lepszy, ale dopóki może obsługiwać połączenie Ethernet, powinno być w porządku!)
- 1 przewód Ethernet
- 1 klucz Wi-Fi (chyba że używasz Raspberry Pi 3, w takim przypadku możesz użyć wbudowanego Wi-Fi)
- 1 zasilacz 5V 2A dla Raspberry Pi
Krok 2: Konfiguracja punktu dostępu Wifi - Część 1 - Statyczny adres IP dla Wifi
Przed skonfigurowaniem połączenia VPN dla naszego punktu dostępowego Raspberry Pi, musimy ustawić Pi jako punkt dostępowy. Aby to zrobić, użyjemy pakietów hostapd i dnsmasq dla Raspberry Pi. Hostapd to demon przestrzeni użytkownika do ustawiania punktów dostępu bezprzewodowego i serwerów uwierzytelniania, podczas gdy dnsmasq zapewnia infrastrukturę sieciową (DNS, DHCP, rozruch sieciowy itp.) dla małych sieci i małych routerów sieciowych.
Więc zanim zaczniesz, upewnij się, że masz czysty obraz Raspbian OS działającego na Pi, z zastosowanymi najnowszymi aktualizacjami. Chcesz również upewnić się, że Twoje Raspberry Pi jest podłączone do routera za pośrednictwem połączenia Ethernet, a NIE Wi-Fi! W końcu będziemy akceptować żądania połączenia z innych urządzeń za pośrednictwem naszego modułu Wi-Fi, więc nie chcesz być podłączony do routera przez ten sam moduł. Jeśli używasz Raspberry Pi Zero lub starszego dodatku (który nie ma wbudowanego Wi-Fi), możesz nadal używać tego Raspberry Pi, potrzebujesz tylko klucza USB Wi-Fi.
Po połączeniu się z Raspberry Pi (przez SSH lub z monitorem w górę) sprawdź, czy jest aktualny
aktualizacja sudo apt-get
sudo apt-get upgrade
Następnie pobierz i zainstaluj hostapd i dnsmasq
sudo apt-get install hostapd dnsmasq
Po zainstalowaniu pakietów oba programy uruchomią się automatycznie, ale chcemy wprowadzić zmiany w ich konfiguracjach przed ich uruchomieniem. Dlatego skontaktujemy się z kontrolą systemu, aby zatrzymać usługi powiązane z tymi programami
sudo systemctl zatrzymaj hostapd
sudo systemctl stop dnsmasq
Po zatrzymaniu usług będziemy chcieli przypisać sobie statyczny adres IP, korzystając z pliku konfiguracyjnego dhcpcd znajdującego się w /etc/dhcpcd.conf
Zanim jednak to zrobimy, chcemy się upewnić, że odwołujemy się do właściwego interfejsu podczas przypisywania statycznego adresu IP. Jeśli używasz Raspberry Pi 3b lub Raspberry Pi Zero W, powinien on być wymieniony jako wlan0. Jeśli używasz klucza Wi-Fi, zwykle uważam, że nieco łatwiej jest podłączyć klucz Wi-Fi do routera, pobrać nowy adres IP, a następnie sprawdzić połączenie, aby znaleźć interfejs. Możesz sprawdzić swój interfejs, uruchamiając następujące polecenie
ifconfig
Jeśli sprawdzisz górny obraz dołączony do tego kroku, zobaczysz (bez zredagowanych adresów IP) interfejsy przypisane do mojego Raspberry Pi. W moim przypadku używam wlan0, ale to zależy od twojej konfiguracji. Jak wspomniałem wcześniej, jeśli używasz klucza Wi-Fi, połącz się z siecią, uruchom polecenie ifconfig, a każdy interfejs, który się pojawi, ma prawidłowy adres IP i nie jest „eth0” lub „lo”, będzie interfejsem, którego potrzebujesz używać.
Teraz, gdy wiem, który interfejs jest dla mojej karty Wi-Fi, mogę przypisać mu statyczny adres IP w pliku konfiguracyjnym dhcpcd! Otwórz konfigurację w swoim ulubionym edytorze (używam nano).
sudo nano /etc/dhcpcd.conf
Na dole konfiguracji chcemy dodać następujące wiersze, ale zamień „wlan0” na dowolny interfejs:
interfejs wlan0 statyczny adres_ip=192.168.220.nohook wpa_supplicant
To, co robi to polecenie, to ustanowienie statycznego adresu IP 192.168.220.1, a następnie nakazanie interfejsowi wlan0, aby nie łączył się ze sterownikiem wpa_supplicant, który zwykle jest używany przez ten interfejs do łączenia się z innymi sieciami. Robimy to, abyśmy (ostatecznie) mogli nadawać własny sygnał przez interfejs wlan0, zamiast łączyć się z siecią przez ten interfejs.
Jeśli używasz nano do wprowadzenia tych zmian, zapisz zmiany, naciskając ctrl+x, a następnie Y, a następnie enter, aby zapisać plik i wyjść z nano. (pamiętaj, że w tym samouczku będziemy często wchodzić i wychodzić z nano).
Na koniec, aby te zmiany zaczęły obowiązywać, musisz ponownie uruchomić Pi lub po prostu ponownie uruchomić usługę dhcpcd, aby ponownie załadować konfigurację i zastosować te zmiany
sudo systemctl restart dhcpcd
Poczekaj chwilę, a następnie ponownie uruchom polecenie ifconfig, aby sprawdzić i zobaczyć, czy zmiany zostały wprowadzone. Przyznaję, że czasami próbowałem tego i mój router nadal ma poprawną dzierżawę adresu IP, którego używałem, więc zachowa stary adres. W takim przypadku sprawdź dokładnie wszystko w swojej konfiguracji i ponownie uruchom usługę dhcpcd.
Nasz adapter Wi-Fi (powinien) mieć teraz statyczny adres IP!
Następnie konfiguracja hostapd i dnsmasq!
Krok 3: Konfiguracja punktu dostępu Wi-Fi - Część 2 - Konfiguracja Hostapd
Wraz ze zmianami w pliku dhcpcd.conf, czas na rozpoczęcie pracy z hostapd! Zacznij od utworzenia nowego pliku hostapd.conf w swoim ulubionym edytorze tekstu (znowu w nano dla mnie!)
sudo nano /etc/hostapd/hostapd.conf
Po wywołaniu pliku konfiguracyjnego skopiuj poniższy tekst i wklej go do pliku konfiguracyjnego.
interfejs=wlan0driver=nl80211
hw_mode=g kanał=6 ieee80211n=1 wmm_enabled=0 macaddr_acl=0 ignore_broadcast_ssid=0
auth_algs=1 wpa=2 wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP
# Nazwa sieci Wifi i hasło NALEŻY ZMIENIĆ TO ssid=Pi-WifiFoLife # Hasło sieciowe wpa_passphrase=Y0uSh0uldCh@ng3M3
Po wklejeniu znajdź ostatnią sekcję na dole, która ma „ssid =” i „wpa_passphrase =”. Tak będzie nazywana konfigurowana przez nas sieć Wi-Fi i jakie jest hasło do połączenia z konfigurowaną siecią Wi-Fi. WIĘC PAMIĘTAJ, ABY ZMIENIĆ TO NA COŚ INNEGO! Zostałeś ostrzeżony.
Ponadto, jeśli używasz klucza Wi-Fi zamiast wbudowanego Wi-Fi, będziesz musiał zmienić sekcję interfejsu u góry konfiguracji, aby dopasować interfejs do Twojego klucza Wi-Fi. Może być również konieczna zmiana sterownika, w zależności od modelu używanego klucza Wi-Fi. Jeśli chodzi o (w większości obszerną) listę kompatybilnych kluczy Wi-Fi, odpowiadających im sterowników i stron wsparcia, uważam, że ta strona jest bardzo przydatna! Sprawdź również stronę pomocy technicznej dla używanego produktu, jeśli utkniesz. Pamiętaj, że jeśli byłeś w stanie połączyć się z siecią wcześniej w samouczku za pomocą klucza Wi-Fi, oznacza to, że gdzieś na twoim pi powinien być działający sterownik klucza sprzętowego !!!
Teraz, gdy mamy nasz nowy plik konfiguracyjny, musimy upewnić się, że mówimy procesom hostapd, aby odwoływały się do nowego pliku konfiguracyjnego! zacznij od następujących:
sudo nano /etc/default/hostapd
Znajdź wiersz w pliku, który właśnie otworzyliśmy, który brzmi i zmień go na DAEMON_CONF="/etc/hostapd/hostapd.conf" (upewnij się, że usuwasz znak # na początku, aby odkomentować pole!)
Jest jeszcze jeden plik konfiguracyjny dla hostapd, który musimy zaktualizować. Uruchom następujące polecenie:
sudo nano /etc/init.d/hostapd
Ta zmiana jest prawie identyczna jak poprzednia. Znajdź sekcję DAEMON_CONF= i zastąp ją DAEMON_CONF=/etc/hostapd/hostapd.conf
Następnie zapisz i wyjdź z tego pliku!
Hostapd jest już skonfigurowany!
Krok 4: Konfiguracja DNSMasq i przekazywanie IP
Po skonfigurowaniu hostapd (choć jeszcze nie działa), możemy teraz przejść do dnsmasq!
Przed przystąpieniem do edycji plików konfiguracyjnych możemy przejść dalej i zmienić nazwę jednego z oryginalnych plików konfiguracyjnych, ponieważ nie będziemy używać niczego, co znajduje się w tym konkretnym pliku konfiguracyjnym.
Wykonanie szybkiego polecenia mv z nową nazwą pliku powinno załatwić sprawę
sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.old
Następnie utwórz nowy plik konfiguracyjny!
sudo nano /etc/dnsmasq.conf
Nie wchodząc zbyt w ten, po prostu skopiuję następujące i wkleję je do nowego pliku
interface=wlan0 # Użyj interfejsu wlan0 (lub dowolnego interfejsu bezprzewodowego) server=1.1.1.1 # Cloudfare dhcp-range=192.168.220.50, 192.168.220.150, 12h # Zakres IP i czas dzierżawy
Górny wiersz tej konfiguracji dotyczy interfejsu, którego używamy do nadawania naszego sygnału, środkowy wiersz dotyczy naszego dostawcy usług nazw domenowych, a dolny wiersz to zakres adresów IP, które Pi przypisze użytkownikom, z którymi się połączą Pi Wi-Fi. Śmiało i zapisz ten plik, a następnie wyjdź z nano (lub vima lub czegokolwiek, czego używasz do zmian plików).
Następnie musimy ustawić plik konfiguracyjny systctl.conf, aby przekazywał cały ruch przychodzący do interfejsu bezprzewodowego w celu przekierowania przez połączenie Ethernet
sudo nano /etc/sysctl.conf
Wewnątrz tego pliku konfiguracyjnego wszystko, co musisz zrobić, to odkomentować linię #net.ipv4.ip_forward=1 i zapisać/wyjść z tego pliku konfiguracyjnego.
Teraz, gdy mamy skonfigurowane przekazywanie, chcemy skonfigurować NAT (translację adresów sieciowych) między interfejsem bezprzewodowym (wlan0) a interfejsem Ethernet (eth0). Pomaga to w przekazywaniu całego ruchu z Wi-Fi do połączenia Ethernet (i ostatecznie VPN!).
Dodaj nową regułę do iptable dla przekazywania NAT
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Reguła jest teraz skonfigurowana, ale iptable jest opróżniany przy każdym ponownym uruchomieniu Raspberry Pi, więc musimy zapisać tę regułę, aby można ją było (ponownie) ładować za każdym razem, gdy nasze Pi jest ponownie uruchamiane.
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
Reguła jest teraz zapisana, ale musimy zaktualizować lokalny plik konfiguracyjny rc.local Pi, aby upewnić się, że jest ładowany za każdym razem!
Otwórz plik rc.local w swoim ulubionym edytorze
sudo nano /etc/rc.local
i znajdź sekcję z napisem exit 0
Tuż nad tą linią (nie usuwaj jej!) dodaj następujące polecenie, które przeładuje skonfigurowaną przez nas regułę NAT. Powinno teraz wyglądać tak
iptables-restore < /etc/iptables.ipv4.nat exit0
Zapisz i wyjdź z tego pliku, a teraz wszystkie nasze konfiguracje powinny zostać wykonane dla punktu dostępu!
Wszystko, co musimy zrobić, to uruchomić usługi hostapd i dnsmasq oraz ponownie uruchomić nasze Raspberry Pi!
usługa sudo hostapd start
usługa sudo dnsmasq start
Przetestuj, aby upewnić się, że widzisz swój nowy AP. Jeśli wszystko jest poprawnie skonfigurowane, powinieneś mieć teraz punkt dostępu Wi-Fi na swoim Raspberry Pi! Teraz uruchom ponownie pi
ponowne uruchomienie sudo
Następnie skonfiguruj połączenie OpenVPN!
Krok 5: Konfiguracja OpenVPN i konfiguracja dostawcy usług VPN
Teraz, gdy nasze Pi nadaje Wi-Fi, czas na konfigurację openvpn! Zaczniemy od zainstalowania openvpn za pomocą apt-get install
sudo apt-get zainstaluj openvpn -y
Po zakończeniu instalacji openvpn musimy przejść do miejsca, w którym będziemy przechowywać nasze dane uwierzytelniające i plik konfiguracyjny openvpn.
cd /etc/openvpn
Pierwszą rzeczą, którą tutaj zrobimy (w /etc/openvpn) jest skonfigurowanie pliku tekstowego, w którym będziemy przechowywać naszą nazwę użytkownika i hasło do usługi VPN, z której korzystamy.
sudo nano auth.txt
Wszystko, czego potrzebujemy, to przechowywać nazwę użytkownika i hasło w tym pliku, nic więcej.
Nazwa Użytkownika
hasło
Powinienem dodać, że w tym momencie powinieneś wiedzieć, kogo chcesz używać jako usługi VPN dla swoich połączeń. Toczy się szeroka debata na temat tego, która usługa jest najlepsza lub najbezpieczniejsza, więc rozejrzyj się i sprawdź również recenzje na ich temat! Na potrzeby tego samouczka używam Private Internet Access (PIA). Są dość tanie i są znane z tego, że są bardzo niezawodne! Możesz także skonfigurować swoją sieć VPN tak, aby kończyła się w dowolnym większym regionie świata! Kanada? Rosja? Japonia? Żaden problem!
Jeśli korzystasz z prywatnego dostępu do Internetu, mają również przydatną część swojej witryny, w której możesz zebrać typ pliku konfiguracyjnego openvpn, którego możesz użyć w tej konfiguracji! Istnieją inne typy konfiguracji openvpn, których można używać z innymi dostawcami, ale zdecydowałem się wybrać ten.
Niezależnie od tego, którego usługodawcę wybierzesz, potrzebujesz pliku połączenia openvpn (powinien kończyć się na.ovpn dla typu pliku) od tego usługodawcy, aby się połączyć. Dla uproszczenia zmieniłem nazwę mojego "connectionprofile.ovpn" przed załadowaniem go na moim Raspberry Pi. Po pobraniu pliku.ovpn na Pi lub przeniesieniu go do Pi, upewnij się, że plik znajduje się w /etc/openvpn na Twoim Pi.
Po przeniesieniu otwartego pliku VPN do właściwego folderu musimy zmienić typ pliku, ponieważ openvpn oczekuje pliku konfiguracyjnego, który kończy się na.conf zamiast.ovpn. Kiedy to zrobiłem, nadal chciałem zachować oryginalny plik w stanie nienaruszonym, na wypadek gdyby wydarzyło się coś dziwnego, więc po prostu użyłem polecenia cp (ponieważ jesteś w /etc/openvpn, musisz użyć uprawnień sudo, aby uruchomić to polecenie)
sudo cp /etc/openvpn/connectionprofile.ovpn /etc/openvpn/connectionprofile.conf
Po utworzeniu konfiguracji profilu openvpn musimy dokonać szybkiej zmiany, aby podać nasze dane uwierzytelniające, więc czas na ponowne wprowadzenie nano!
sudo nano /etc/openvpn/connectionprofile.conf
Będziesz chciał znaleźć wiersz auth-user-pass i zastąpić go auth-user-pass auth.txt
To mówi openvpn, aby pobrać plik poświadczeń, którego używaliśmy wcześniej, aby użyć go podczas uwierzytelniania dostarczonego profilu.
Zapisz i wyjdź z pliku konfiguracyjnego profilu!
To powinno być wszystko dla konfiguracji VPN, ale przed ustawieniem automatycznego uruchamiania usługi VPN będziemy chcieli przetestować, czy cała nasza konfiguracja została skonfigurowana poprawnie. Uruchom następujące polecenie, aby przetestować połączenie VPN
sudo openvpn --config "/etc/openvpn/connectionprofile.conf"
Powinieneś zobaczyć przewijany tekst, gdy Pi podejmuje próby połączenia z dostawcą usług VPN (miejmy nadzieję, że nie ma komunikatów o błędach!), Ale chcesz to zostawić, dopóki w oknie nie zobaczysz Sekwencja inicjalizacji zakończona. Jeśli to zobaczysz, oznacza to, że Twoje Pi jest połączone z dostawcą usług VPN! Możesz iść dalej i zabić proces, naciskając ctrl + c w oknie terminala.
Teraz, gdy VPN działa, musimy usunąć obecne iptables. Możemy to uzupełnić następującymi trzema poleceniami:
sudo iptables -Fsudo iptables -t nat -F sudo iptables -X
Ponieważ jednak wypłukaliśmy iptables, musimy zresetować regułę nat, którą utworzyliśmy wcześniej w tym samouczku, uruchamiając następujące polecenie (to polecenie powinno wyglądać znajomo!)
sudo iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
Teraz możemy zapisać tę konfigurację nad poprzednią konfiguracją, którą ułożyliśmy w poprzednim kroku. (to polecenie również powinno wyglądać znajomo!)
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
Teraz, gdy mamy skonfigurowane kopie zapasowe reguł NAT, musimy zmienić domyślną konfigurację dla openvpn, aby używała ustawionego profilu. Robimy to, edytując plik konfiguracyjny w /etc/default/openvpn
sudo nano /etc/default/openvpn
Znajdź wiersz, który mówi #autostart = "wszystkie", odkomentuj ten wiersz i zmień go na nazwę pliku konfiguracyjnego openvpn (oczywiście bez.conf!) Więc w moim przypadku zmieniam wiersz na autostart = " profil połączenia"
a następnie zapisz i wyjdź z tego pliku konfiguracyjnego!
To powinno być wszystko dla konfiguracji VPN! Po prostu uruchom ponownie Pi i sprawdź, czy wszystko działa, łącząc się z hotspotem i sprawdzając adres IP za pośrednictwem witryny takiej jak whatismyip.com.
W tej konfiguracji istnieje możliwość, że adres IP routera może zostać ujawniony przez wyciek DNS. Możemy to naprawić, zmieniając DNS, do którego odwołujemy się w pliku dhcpcd.conf, aby wskazywał na zewnętrzną usługę DNS, taką jak Cloudflare!
Otwórz plik dhcpcd.conf w swoim ulubionym edytorze:
sudo nano /etc/dhcpcd.conf
Znajdź wiersz w konfiguracji #static domain_name_servers=192.168.0.1, usuń komentarz i zmień go na następujący: static domain_name_servers=1.1.1.1 i zapisz/wyjdź z pliku konfiguracyjnego. Uruchom ponownie Pi jeszcze raz, a teraz możesz dwukrotnie sprawdzić, czy adres IP routera nie wycieka przez ipleak.net.
Inną rzeczą, o której należy pamiętać, jest prawdopodobnie wyciek adresu IP routera przez WebRTC. WebRTC to platforma używana przez wszystkie nowoczesne przeglądarki do lepszej standaryzacji komunikacji, w tym wiadomości błyskawicznych, wideokonferencji oraz przesyłania strumieniowego audio i wideo. Produktem ubocznym tej platformy jest to, że jeśli nie zostanie zaznaczona, może ujawnić adres IP routera, jeśli masz połączenie z VPN. Najłatwiej można temu zapobiec, korzystając z rozszerzeń przeglądarki lub wtyczek, takich jak webrtc-leak-prevent.
Po skonfigurowaniu wszystkiego na swoim pi, jeśli chcesz mieć pewność, że cały ruch internetowy jest szyfrowany, możesz połączyć się z tym hotspotem, a cały ruch będzie szyfrowany przez VPN!
Mam nadzieję, że podobał Ci się mój Instructable, teraz zabezpiecz całe Wi-Fi!