Dlaczego warto korzystać z VPN, aby uzyskać dostęp do domu?
Istnieje wiele powodów, dla których chcesz uzyskać zdalny dostęp do sieci domowej, a najlepszym sposobem na to jest serwer VPN. Niektóre routery faktycznie umożliwiają skonfigurowanie serwera VPN bezpośrednio w routerze, ale w wielu przypadkach będziesz musiał skonfigurować go samodzielnie.
Raspberry Pi to świetny sposób na osiągnięcie tego. Nie wymagają dużo energii do działania i mają wystarczającą moc, aby uruchomić serwer VPN. Możesz ustawić go obok routera i w zasadzie o nim zapomnieć.
Gdy masz zdalny dostęp do sieci domowej, możesz uzyskać dostęp do swoich plików z dowolnego miejsca. Możesz zdalnie sterować swoimi domowymi komputerami. Możesz nawet korzystać z domowego połączenia VPN z drogi. Taka konfiguracja pozwala Twojemu telefonowi, tabletowi lub laptopowi zachowywać się tak, jak w domu, z dowolnego miejsca.
Skonfiguruj Pi
Zanim zaczniesz konfigurować VPN, musisz skonfigurować Raspberry Pi. Najlepiej skonfigurować Pi z obudową i kartą pamięci przyzwoitej wielkości, 16 GB powinno wystarczyć. Jeśli to możliwe, podłącz Pi do routera za pomocą kabla Ethernet. Zminimalizuje to wszelkie opóźnienia w sieci.
Zainstaluj Raspbian
Najlepszym systemem operacyjnym do użycia na Twoim Pi jest Raspbian. Jest to domyślny wybór wydany przez fundację Raspberry Pi i jest oparty na Debianie, jednej z najbezpieczniejszych i najbardziej stabilnych dostępnych wersji Linuksa.
Przejdź do Strona pobierania Rasbian i pobierz najnowszą wersję. Możesz tutaj użyć wersji Lite, ponieważ tak naprawdę nie potrzebujesz graficznego pulpitu.
Podczas pobierania pobierz najnowszą wersję Akwaforcista dla twojego systemu operacyjnego. Po zakończeniu pobierania wyodrębnij obraz Raspbian. Następnie otwórz Etchera. Wybierz obraz Raspbian, z którego został wyodrębniony. Wybierz swoją kartę SD (włóż ją najpierw). Na koniec zapisz obrazek na karcie.
jak sprawdzić, czy port jest otwarty w systemie Windows
Po zakończeniu pozostaw kartę SD w komputerze. Otwórz menedżera plików i przejdź do karty. Powinieneś zobaczyć kilka różnych partycji. Poszukaj partycji rozruchowej. To ten z plikiem kernel.img. Utwórz pusty plik tekstowy na partycji rozruchowej i nazwij go ssh bez rozszerzenia pliku.
Możesz wreszcie podłączyć swoje Pi. Upewnij się, że podłączasz go jako ostatni. Nie będziesz potrzebować ekranu, klawiatury ani myszy. Zamierzasz zdalnie uzyskać dostęp do Raspberry Pi przez swoją sieć.
Daj Pi kilka minut na ustawienie się. Następnie otwórz przeglądarkę internetową i przejdź do ekranu zarządzania routerem. Znajdź Raspberry Pi i zanotuj jego adres IP.
Niezależnie od tego, czy korzystasz z systemu Windows, Linux czy Mac, otwórz OpenSSH. Połącz się z Raspberry Pi za pomocą SSH.
$ ssh [email protected]
Oczywiście użyj rzeczywistego adresu IP Pi. Nazwa użytkownika tozawsze Liczba Pi, a hasło tomalina.
Skonfiguruj OpenVPN
OpenVPN nie jest łatwy do skonfigurowania jako serwer. Dobra wiadomość jest taka, że wystarczy to zrobić tylko raz. Tak więc, zanim się zagłębisz, upewnij się, że Raspbian jest całkowicie aktualny.
$ sudo apt update $ sudo apt upgrade
Po zakończeniu aktualizacji możesz zainstalować OpenVPN i potrzebne narzędzie do certyfikatów.
$ sudo apt install openvpn easy-rsa
Urząd certyfikacji
Aby uwierzytelnić swoje urządzenia, gdy próbują połączyć się z serwerem, musisz skonfigurować urząd certyfikacji do tworzenia kluczy podpisujących. Te klucze zapewnią, że tylko Twoje urządzenia będą mogły łączyć się z Twoją siecią domową.
Najpierw utwórz katalog dla swoich certyfikatów. Przejdź do tego katalogu.
$ sudo make-cadir /etc/openvpn/certs $ cd /etc/openvpn/certs
Rozejrzyj się za plikami konfiguracyjnymi OpenSSL. Następnie połącz najnowszy zopensl.cnf.
$ ls | grep -i openssl $ sudo ln -s openssl-1.0.0.cnf openssl.cnf
W tym samym folderze certs znajduje się plik o nazwie vars. Otwórz ten plik za pomocą edytora tekstu. Nano jest domyślnym, ale możesz zainstalować Vima, jeśli czujesz się z nim bardziej komfortowo.
ZnaleźćKEY_SIZEnajpierw zmienna. Jest ustawiony na2048domyślnie. Zmień to na4096.
export KEY_SIZE=4096
Główny blok, z którym musisz się zmierzyć, zawiera informacje o Twoim urzędzie certyfikacji. Pomaga, jeśli te informacje są dokładne, ale wszystko, co pamiętasz, jest w porządku.
export KEY_COUNTRY='US' export KEY_PROVINCE='CA' export KEY_CITY='SanFrancisco' export KEY_ORG='Fort-Funston' export KEY_EMAIL=' [email protected] ' export KEY_OU='MyOrganizationalUnit' export KEY_NAME='HomeVPN'
Kiedy masz wszystko, zapisz i wyjdź.
Ten pakiet Easy-RSA, który zainstalowałeś wcześniej, zawiera wiele skryptów, które pomagają skonfigurować wszystko, czego potrzebujesz. Wystarczy je uruchomić. Zacznij od dodania pliku vars jako źródła. Spowoduje to załadowanie wszystkich zmiennych, które właśnie ustawiłeś.
$ sudo source ./vars
Następnie wyczyść klucze. Nie masz żadnego, więc nie martw się komunikatem informującym, że Twoje klucze zostaną usunięte.
$ sudo ./clean-install
Na koniec zbuduj swój urząd certyfikacji. Ustawiłeś już wartości domyślne, więc możesz po prostu zaakceptować wartości domyślne, które przedstawia. Pamiętaj, aby ustawić silne hasło i odpowiedzieć twierdząco na dwa ostatnie pytania, po nim.
$ sudo ./build-ca
Zrób kilka kluczy
Przeszedłeś przez wszystkie te kłopoty, aby skonfigurować urząd certyfikacji, aby móc podpisywać klucze. Teraz nadszedł czas, aby zrobić kilka. Zacznij od zbudowania klucza dla swojego serwera.
$ sudo ./build-key-server server
Następnie zbuduj Diffie-Hellman PEM. To jest to, czego używa OpenVPN do zabezpieczania połączeń klienta z serwerem.
$ sudo openssl dhparam 4096 > /etc/openvpn/dh4096.pem
Ostatni klucz, którego potrzebujesz od teraz, nazywa się kluczem HMAC. OpenVPN używa tego klucza do podpisywania każdego pojedynczego pakietu informacji wymienianego między klientem a serwerem. Pomaga zapobiegać niektórym rodzajom ataków na połączenie.
$ sudo openvpn --genkey --secret /etc/openvpn/certs/keys/ta.key
Konfiguracja serwera
Masz klucze. Kolejnym elementem konfiguracji OpenVPN jest sama konfiguracja serwera. Na szczęście nie musisz tutaj wiele robić. Debian dostarcza podstawową konfigurację, której możesz użyć na początku. Zacznij więc od pobrania tego pliku konfiguracyjnego.
$ sudo gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz > /etc/openvpn/server.conf
Użyj ponownie edytora tekstu, aby otworzyć/etc/openvpn/server.conf. Pierwszą rzeczą, którą musisz znaleźć, sąże,certyfikat, ikluczakta. Musisz ustawić je tak, aby pasowały do rzeczywistych lokalizacji plików, które utworzyłeś, które są w/etc/openvpn/certyfikaty/klucze.
ca /etc/openvpn/certs/keys/ca.crt cert /etc/openvpn/certs/keys/server.crt key /etc/openvpn/certs/keys/server.key # This file should be kept secret
Znaleźćto znaczyustawienie i zmień je, aby pasowały do Diffie-Hellman.pemktóre stworzyłeś.
dh dh4096.pem
Ustaw również ścieżkę dla swojego klucza HMAC.
tls-auth /etc/openvpn/certs/keys/ta.key 0
Znaleźćszyfri upewnij się, że pasuje do poniższego przykładu.
cipher AES-256-CBC
Istnieje kilka następnych opcji, ale są one skomentowane z;. Usuń średniki przed każdą opcją, aby je włączyć.
push 'redirect-gateway def1 bypass-dhcp' push 'dhcp-option DNS 208.67.222.222' push 'dhcp-option DNS 208.67.220.220'
Spójrz naużytkownikiGrupaopcje. Odkomentuj je i zmieńużytkownikotworzyć VPN.
user openvpn group nogroup
Wreszcie, te dwie ostatnie linie nie są w domyślnej konfiguracji. Musisz je dodać na końcu pliku.
Ustaw skrót uwierzytelniania, aby określić silniejsze szyfrowanie uwierzytelniania użytkownika.
# Authentication Digest auth SHA512
Następnie ogranicz szyfry, których może używać OpenVPN, tylko do silniejszych. Pomaga to ograniczyć możliwe ataki na słabe szyfry.
# Limit Ciphers tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-256-CBC-SHA:TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA:TLS-DHE-RSA-WITH-AES-128-CBC-SHA:TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA
To wszystko do konfiguracji. Zapisz plik i wyjdź.
Uruchom serwer
Zanim uruchomisz serwer, musisz to zrobićotwórz VPNokreślonego użytkownika.
$ sudo adduser --system --shell /usr/sbin/nologin --no-create-home openvpn
Jest to specjalny użytkownik tylko do uruchamiania OpenVPN i nie zrobi nic więcej.
Teraz uruchom serwer.
$ sudo systemctl start openvpn $ sudo systemctl start [email protected]
Sprawdź, czy oba są uruchomione
$ sudo systemctl status openvpn*.service
Jeśli wszystko wygląda dobrze, włącz je przy starcie.
$ sudo systemctl enable openvpn $ sudo systemctl enable [email protected]
Konfiguracja klienta
Twój serwer jest teraz skonfigurowany i działa. Następnie musisz skonfigurować konfigurację klienta. To jest konfiguracja, której będziesz używać do łączenia urządzeń z serwerem. Powrót dopewnyfolderu i przygotuj się do zbudowania kluczy klienta. Możesz wybrać tworzenie oddzielnych kluczy dla każdego klienta lub jednego klucza dla wszystkich klientów. Do użytku domowego jeden klucz powinien wystarczyć.
$ cd /etc/openvpn/certs $ sudo source ./vars $ sudo ./build-key client
Proces jest prawie identyczny jak w przypadku serwera, więc postępuj zgodnie z tą samą procedurą.
Konfiguracja klienta
Konfiguracja dla klientów jest bardzo podobna do tej dla serwera. Ponownie, masz gotowy szablon, na którym możesz oprzeć swoją konfigurację. Wystarczy go zmodyfikować, aby pasował do serwera.
Zmień naklientinformator. Następnie rozpakuj przykładową konfigurację.
$ cd /etc/openvpn/client $ sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/client/client.ovpn
Otwórzklient.ovpnplik w edytorze tekstu. Następnie znajdźzdalnyopcja. Zakładając, że nie korzystasz jeszcze z VPN, wyszukaj w Google Jaki jest mój adres IP. Weź wyświetlony adres i ustawzdalnyAdres IP do niego. Zostaw numer portu.
remote 107.150.28.83 1194 #That IP ironically is a VPN
Zmień certyfikaty, aby odzwierciedlały te, które utworzyłeś, tak jak w przypadku serwera.
ca ca.crt cert client.crt key client.key
Znajdź opcje użytkownika i odkomentuj je. Dobrze jest prowadzić klientów jakonikt.
user nobody group nogroup
Usuń komentarztls-authopcja dla HMAC.
tls-auth ta.key 1
Następnie poszukajszyfri upewnij się, że pasuje do serwera.
cipher AES-256-CBC
Następnie wystarczy dodać skrót uwierzytelniania i ograniczenia szyfrowania na dole pliku.
# Authentication Digest auth SHA512 # Cipher Restrictions tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-256-CBC-SHA:TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA:TLS-DHE-RSA-WITH-AES-128-CBC-SHA:TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA
Gdy wszystko wygląda dobrze, zapisz plik i wyjdź. Posługiwać sięsmołaaby spakować konfigurację i certyfikaty, aby można je było przesłać do klienta.
$ sudo tar cJf /etc/openvpn/clients/client.tar.xz -C /etc/openvpn/certs/keys ca.crt client.crt client.key ta.key -C /etc/openvpn/clients/client.ovpn
Przekaż ten pakiet klientowi w wybrany przez siebie sposób. SFTP, FTP i dysk USB to świetne opcje.
Przekazywanie portów
Aby to zadziałało, musisz skonfigurować router, aby przekazywał przychodzący ruch VPN do Pi. Jeśli korzystasz już z VPN, upewnij się, że nie łączysz się przez ten sam port. Jeśli tak, zmień port w konfiguracji klienta i serwera.
Połącz się z interfejsem sieciowym routera, wpisując jego adres IP w przeglądarce.
Każdy router jest inny. Mimo to wszyscy powinni mieć jakąś formę tej funkcjonalności. Znajdź go na swoim routerze.
Konfiguracja jest w zasadzie taka sama na każdym routerze. Wprowadź port początkowy i końcowy. Powinny być takie same jak te, które ustawiłeś w swoich konfiguracjach. Następnie dla adresu IP ustaw go na adres IP Raspberry Pi. Zapisz zmiany.
Połącz się z klientem
Każdy klient jest inny, więc nie ma uniwersalnego rozwiązania. Jeśli korzystasz z systemu Windows, będziesz potrzebować Klient Windows OpenVPN .
W systemie Android możesz otworzyć archiwum tar i przenieść klucze do telefonu. Następnie zainstaluj aplikację OpenVPN. Otwórz aplikację i podłącz informacje z pliku konfiguracyjnego. Następnie wybierz swoje klucze.
W systemie Linux musisz zainstalować OpenVPN podobnie jak w przypadku serwera.
$ sudo apt install openvpn
Następnie zmień na/etc/openvpni rozpakuj tarball, który wysłałeś.
$ cd /etc/openvpn $ sudo tar xJf /path/to/client.tar.xz
Zmień nazwę pliku klienta.
$ sudo mv client.ovpn client.conf
Nie uruchamiaj jeszcze klienta. To się nie powiedzie. Musisz najpierw włączyć przekierowanie portów na routerze.
Myśli zamykające
Powinieneś mieć teraz działającą konfigurację. Twój klient połączy się bezpośrednio przez router z Pi. Stamtąd możesz udostępniać i łączyć się za pośrednictwem sieci wirtualnej, o ile wszystkie urządzenia są połączone z siecią VPN. Nie ma ograniczeń, więc zawsze możesz połączyć wszystkie swoje komputery z Pi VPN.