dokument
Konfiguracja serwera VPN z Raspberry Pi

Konfiguracja serwera VPN z Raspberry Pi

2024-11-22 W tym artykule opisano, jak zmienić Raspberry Pi w serwer VPN. Zainspirowałem się, gdy jeden z moich przyjaciół wyjeżdżał w długą podróż i chciał mie

Related articles

What is network discovery and how can you turn it on for Windows devices? Jak skonfigurować VPN na routerze DD-WRT

Konfiguracja serwera VPN z Raspberry Pi

W tym artykule opisano, jak zmienić Raspberry Pi w serwer VPN.

Zainspirowałem się, gdy jeden z moich przyjaciół wyjeżdżał w długą podróż i chciał mieć VPN.

Wyjaśnił, że korzyści z posiadania VPN polegają na tym, że umożliwia on dostęp do sieci domowej i plików.

To całkiem standardowa sytuacja.

Wspomniał również, że łatwiej będzie mu się logować do aplikacji bankowych i innych usług, jeśli będzie się logował przez sieć domową.

Posiadanie zagranicznego adresu IP rzuca czerwone flagi i spowodowałoby, że musiałby wykonać testy Captcha i 2FA.

To skłoniło mnie do zastanowienia się, czy Raspberry Pi sprawdziłoby się w tym przypadku.

Najpierw sprawdź router

Ważne jest sprawdzenie, czy router może pełnić funkcję serwera VPN.

Byłoby to najbardziej niezawodne rozwiązanie. Szczerze mówiąc, było to także najłatwiejsze i najmniej uciążliwe rozwiązanie.

Mam urządzenie TP-Link Archer C7, które ma możliwość uruchomienia serwera VPN przy użyciu OpenVPN lub PPTP VPN. W ciągu mniej niż pięciu minut postępował zgodnie z instrukcjami i udało się go uruchomić. 

Następnie wystarczyło zainstalować OpenVPN na moich urządzeniach i użyć pliku konfiguracyjnego.

Jeśli jednak masz router, który nie obsługuje połączeń VPN, postępuj zgodnie z instrukcjami…

Co jest potrzebne do stworzenia serwera Raspberry Pi?

Konfiguracja serwera VPN z Raspberry PiKabel Ethernet, Raspberry Pi i router

Po pierwsze i najważniejsze, potrzebne jest Raspberry Pi. 

Idealnie byłoby mieć Raspberry Pi z przewodowym połączeniem ethernetowym, takie jak Raspberry Pi 4, zapewniające maksymalną niezawodność i szybkość.

Jeśli wybierzesz te urządzenia, będziesz potrzebować kabla ethernetowego do podłączenia Raspberry Pi do routera.

Aby zapewnić połączenie Raspberry Pi przez przewodowy ethernet, należy wyłączyć połączenie bezprzewodowe.

Sieć PiVPN działa jednak z powodzeniem na Raspberry Pi z serii Zero, więc można jej również użyć.

Zainstaluj PiVPN

Logo PiVPN

Kieruj się do pivpn.io aby uzyskać więcej informacji na temat oprogramowania.

Aby go zainstalować, należy uruchomić polecenie instalacyjne curl -L https://install.pivpn.io | bash w Terminalu.

Ta czynność może trochę potrwać, ale po jej zakończeniu zobaczysz ten ekran początkowy.

Rezerwacja DHCP

Sieć PiVPN jest serwerem, więc do prawidłowego działania musi mieć statyczny adres IP. 

Jeśli można utworzyć rezerwację DHCP…

Nie wszystkie routery umożliwiają tworzenie rezerwacji DHCP, dlatego jeśli nie można znaleźć sekcji dotyczącej tego ustawienia, należy przejść do następnej sekcji.

Mam oddzielny modem i router, który kupiłem, aby móc utworzyć rezerwację DHCP w celu zapewnienia, że PiVPN ma cały czas ten sam adres IP.

Każdy router jest inny, dlatego należy wyszukać w Google dokładne instrukcje dotyczące tworzenia rezerwacji DHCP dla danego routera.

Jeśli tak jak ja korzystasz z urządzenia TP-Link Archer C7, przejdź do strony Zaawansowane > Sieć > Serwer DHCP.

W ramach Rezerwacja adresu kliknąłem na Dodaj. Potrzebowałem mojego adresu MAC (nie jest on wyświetlany w sieci PiVPN) oraz adresu IP dostarczonego przez PiVPN.

Znajdowanie adresu MAC

Konfiguracja serwera VPN z Raspberry PiAdres MAC Raspberry Pi można zwykle znaleźć za pośrednictwem routera lub użyć ifconfig

Adres MAC można znaleźć na dwa sposoby. 

Najwygodniej było, gdy router TP-Link wyświetlił mój adres MAC “DC-A6-32-88-AC-97” w tabeli klientów DHCP.

Można też otworzyć Terminal i wpisać polecenie ifconfig.

Ponieważ jesteś podłączony przez ethernet przewodowy, poszukaj “eth0” i w wierszu, w którym jest napisane eterTo tam znajduje się Twój adres MAC.

Jeśli nie można utworzyć rezerwacji DHCP,

W tym menu należy nacisnąć “Nie”, aby skonfigurować statyczny adres IP.

W następnym menu trzeba będzie skonfigurować statyczny adres IP na taki, który nie mieści się w zakresie adresów IP przydzielanych urządzeniom przez router.

Na przykład mój router przypisuje podłączonym urządzeniom adresy IP od 192.168.0.100 do 192.168.0.249. Mogę więc przypisać sieci PiVPN adres IP 192.168.0.250.

Następnie zostanie wyświetlony monit o podanie adresu IP bramy. Możesz pozostawić ten adres jako domyślny, chyba że masz inną bramę. Zazwyczaj jest to adres IP routera.

Na koniec naciśnij OK w PiVPN, aż przejdziesz do strony “Użytkownicy lokalni”.

Użytkownicy lokalni

Na stronie “Wybierz użytkownika” wybrałem jedynego użytkownika, Pi.

W najnowszych aktualizacjach systemu operacyjnego Raspberry Pi nie ma już domyślnego użytkownika “pi”, więc należy o tym pamiętać.

Naciśnij OK.

Tryb instalacji

Zostaniesz zapytany, czy chcesz używać sieci WireGuard czy OpenVPN. Wybrałem WireGuard, ponieważ był on zalecany.

Domyślny port Wireguard

Jeśli nie potrzebujesz innego portu, możesz po prostu nacisnąć OK i użyć domyślnego portu 51820.

Dostawca DNS

Istnieje wiele możliwości wyboru dostawców DNS, ja wybrałem Google ze względu na łatwość konfiguracji.

Publiczny adres IP lub DNS

To, co tu widzisz, to Twój publiczny adres IP i będzie to adres IP, którego będziesz używać do łączenia się z siecią VPN.

Aktualizacje nienadzorowane

Włączyłem nienadzorowane aktualizacje, ponieważ chciałem mieć aktualizacje zabezpieczeń. 

Czas na dodanie profili klientów

Konfiguracja serwera VPN z Raspberry PiUżyj dodatek pivpn aby dodać klienta, a następnie użyj pivpn -qr aby uzyskać kod QR do zeskanowania przez telefon

Słodko! Udało Ci się przejść do menu “Instalacja zakończona”.

Konfiguracja PiVPN na Raspberry Pi to połowa sukcesu. Kolejna połowa to konfiguracja profili klienckich, aby można było podłączyć do niego komputery, telefony i inne urządzenia.

Oto jak:

Otwórz Terminal i wpisz “pivpn add”.

Wprowadź nazwę klienta. Można użyć nazw typu “klient1”, “klient2” lub czegoś bardziej intuicyjnego, jak “smartfon”, “telewizor” itp.

Naciśnij klawisz Enter.

Po zakończeniu zostanie wyświetlony komunikat informujący, że operacja została zakończona.

PiVPN wygenerowałby plik .conf, który można wykorzystać w aplikacjach Wireguard.

Istnieje jednak jeszcze prostszy sposób na przeniesienie konfiguracji do telefonu.

Konfigurowanie telefonu z systemem Android

W tym samym terminalu wpisz pivpn -qr

Następnie wprowadź żądanego klienta. W tej chwili dostępny jest tylko jeden o nazwie “smartfon”.

Wpisz więc “smartfon” i naciśnij klawisz Enter.

Jeśli wszystko pójdzie dobrze, zobaczysz kod QR, który możesz zeskanować za pomocą aplikacji Wireguard na swoim smartfonie.

Problemy z kodowaniem powodują, że kod QR PiVPN jest zniekształcony

Jeśli jednak tak nie jest, komunikat będzie wyglądał na zniekształcony. Dzieje się tak, ponieważ kodowanie Terminala jest nieprawidłowe.

Jeśli tak się stanie, możesz skopiować plik smartphone.conf do telefonu i wskazać go aplikacji Wireguard.

Konfiguracja serwera VPN z Raspberry PiAplikacja Wireguard dla systemu Android skanująca kod QR

Innym sposobem jest próba zalogowania się przez ssh do Raspberry Pi i wykonanie polecenia qrencode -t ansiutf8 < /home/pi/configs/smartphone.conf (zmień nazwę “smartphone” na taką, jaką nadałeś swojemu klientowi).

Kod QR został wygenerowany pomyślnie, gdy użyłem protokołu ssh na komputerze z systemem Windows.

Konfigurowanie programu WireGuard na komputerze

Należy zrobić dwie rzeczy. Pobrać aplikację WireGuard na swój komputer oraz pobrać plik .conf z Raspberry Pi.

Można pobrać Aplikacja WireGuard dla systemów Windows, Linux i Mac tutaj.

Następnie należy utworzyć nowy profil za pomocą dodatek pivpn. 

Wpisz nazwę swojego pliku konfiguracyjnego. Ja użyłem msi-pcco powoduje wygenerowanie msi-pc.conf akta.

Aby skopiować plik na komputer, najprościej jest skopiować go za pomocą polecenia. W systemie operacyjnym Raspberry Pi powinieneś mieć włączony dostęp SSH.

Jeśli pracujesz w systemie Windows, tak jak ja, użyjesz następującego polecenia:

pscp.exe [twoja-nazwa-użytkownika]@[your-pi-ip-address]:/home/pi/configs/[plik wireguard].conf [local-dir]

Oto, jak wyglądała moja:

pscp.exe [email protected]:/home/pi/configs/msi-pc.conf

W aplikacji naciśnij przycisk “Dodaj tunel” i znajdź swój plik .conf.

Aktywuj i gotowe!

Skonfiguruj przekierowanie portów na routerze

Jeśli postępowałeś zgodnie z powyższymi instrukcjami, będziesz mógł włączyć przełącznik w aplikacji Wireguard, ale nie będziesz mógł połączyć się z Internetem.

Dzieje się tak, ponieważ należy skonfigurować router tak, aby kierował ruch na port 51820 do Raspberry Pi.

Aby to zrobić, przejdź do menu przekierowania portów na swoim routerze. Na moim routerze TP-Link Archer było ono dostępne w menu Zaawansowane > NAT Forwarding > Serwery wirtualne.

Gdy program poprosi o podanie zewnętrznego i wewnętrznego portu oraz wewnętrznego adresu IP, będziesz wiedział, że jesteś we właściwym miejscu.

Na tym ekranie pojawia się pytanie: “Jeśli otrzymujemy ruch z Internetu za pomocą portu 51820, do którego urządzenia go wysyłamy i na który port?

W tym przypadku porty zewnętrzne i wewnętrzne są 51820domyślnie Wireguard. Protokół to UDP oraz Wewnętrzny adres IP to adres IP komputera Pi.

Skąd mam wiedzieć, że moja sieć VPN działa?

Będziesz wiedzieć, że VPN działa, jeśli zmieni się Twój adres IP.

Aby przetestować połączenie VPN w smartfonie, przed połączeniem się z siecią VPN najpierw poszukałem swojego adresu IP.

VPN podał, że mój adres to XXX.XX.88.241.

Połączyłem się z siecią VPN i mój adres IP zmienił się na XXX.XXX.169.39.

Jeśli więc w adresie IP nastąpi zmiana, oznacza to, że połączenie zostało nawiązane pomyślnie.

Dostępnych jest wiele usług. Można nawet wpisać w Google “jaki jest mój adres IP”, a Google może udzielić informacji na stronie z wynikami wyszukiwania. Można też użyć whatismyip.com.

Co się stanie, jeśli zmieni się mój adres IP w Internecie?

Czasami po zresetowaniu routera adres IP może nie być taki sam. Mogą się zdarzyć przerwy w dostawie prądu lub przypadkowe wyciągnięcie kabla zasilającego. 

Pytanie brzmi… jak znaleźć swój nowy adres IP, gdy nie ma Cię w domu i desperacko potrzebujesz połączyć się z siecią VPN?

Nasze oprogramowanie PiCockpit ułatwia sprawdzenie, jaki jest publiczny adres IP użytkownika.

Na powyższym zrzucie ekranu jest to mój publiczny adres IP. Jeśli kiedykolwiek ulegnie on zmianie, można zaktualizować pliki .conf, podając nowy adres punktu końcowego.

PiCockpit umożliwia także zdalne uruchamianie i diagnozowanie problemów z Raspberry Pi za pomocą interfejsu sieciowego.

Aby zainstalować aplikację PiCockpit, należy postępować zgodnie z poniższą instrukcją.

Alternatywnie można też skorzystać z usługi dynamicznego DNS i nadać nazwę hosta. Oto przewodnik.