Anonim

Dlaczego warto korzystać z VPN, aby uzyskać dostęp do domu

Szybkie linki

  • Dlaczego warto korzystać z VPN, aby uzyskać dostęp do domu
  • Skonfiguruj Pi
    • Zainstaluj Raspbian
  • Skonfiguruj OpenVPN
    • Urząd certyfikacji
    • Zrób kilka kluczy
    • Konfiguracja serwera
    • Uruchom serwer
  • Konfiguracja klienta
    • Konfiguracja klienta
  • Przekazywanie portów
  • Połącz z klientem
  • Zamykanie myśli

Istnieje wiele powodów, dla których chcesz uzyskać zdalny dostęp do sieci domowej, a najlepszym sposobem jest skorzystanie z serwera VPN. Niektóre routery faktycznie pozwalają skonfigurować serwer VPN bezpośrednio w routerze, ale w wielu przypadkach będziesz musiał go skonfigurować 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ć jeden obok routera i po prostu o nim zapomnieć.

Gdy masz zdalny dostęp do sieci domowej, możesz uzyskać dostęp do plików z dowolnego miejsca. Możesz sterować komputerami domowymi zdalnie. Możesz nawet korzystać z domowego połączenia VPN z drogi. Taka konfiguracja pozwala telefonowi, tabletowi lub laptopowi zachowywać się tak, jak w domu z dowolnego miejsca.

Skonfiguruj Pi

Zanim zaczniesz konfigurować VPN, musisz skonfigurować Raspberry Pi. Najlepiej jest skonfigurować Pi z etui i kartą pamięci o przyzwoitym rozmiarze, 16 GB powinno wystarczyć. Jeśli to możliwe, podłącz swój Pi do routera za pomocą kabla Ethernet. Zminimalizuje wszelkie opóźnienia sieciowe.

Zainstaluj Raspbian

Najlepszym systemem operacyjnym do użycia na Pi jest Raspbian. Jest to domyślny wybór Fundacji Raspberry Pi, oparty na Debianie, jednej z najbezpieczniejszych i najbardziej stabilnych dostępnych wersji Linuksa.

Przejdź do strony pobierania Rasbian i pobierz najnowszą wersję. Możesz użyć wersji „Lite” tutaj, ponieważ tak naprawdę nie potrzebujesz pulpitu graficznego.

Podczas pobierania pobierz najnowszą wersję Etchera dla swojego systemu operacyjnego. Po zakończeniu pobierania wyodrębnij obraz Raspbian. Następnie otwórz Etcher. Wybierz obraz Raspbian, z którego go wyodrębniłeś. Wybierz kartę SD (Włóż ją najpierw). Na koniec zapisz obraz na karcie.

Po zakończeniu zostaw 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 „boot” i nazwij go „ssh” bez rozszerzenia pliku.

Możesz w końcu podłączyć swoje Pi. Upewnij się, że podłączasz go na końcu. Nie będziesz potrzebować ekranu, klawiatury ani myszy. Będziesz mieć zdalny dostęp do Raspberry Pi przez swoją sieć.

Daj Pi kilka minut na skonfigurowanie się. Następnie otwórz przeglądarkę internetową i przejdź do ekranu zarządzania routera. Znajdź Raspberry Pi i zanotuj jego adres IP.

Bez względu na to, czy korzystasz z systemu Windows, Linux, czy Mac, otwórz OpenSSH. Połącz się z Raspberry Pi za pomocą SSH.

$ ssh

Oczywiście użyj rzeczywistego adresu IP Pi. Nazwa użytkownika to zawsze pi, a hasło to malina.

Skonfiguruj OpenVPN

OpenVPN nie jest prosty do skonfigurowania jako serwer. Dobra wiadomość jest taka, że ​​musisz to zrobić tylko raz. Zanim się wkopiesz, 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 certyfikatu.

$ sudo apt install openvpn easy-rsa

Urząd certyfikacji

Aby uwierzytelnić urządzenia, które próbują połączyć się z serwerem, musisz skonfigurować ośrodek certyfikacji, aby utworzyć klucze sygnalizacji. Te klucze zapewnią, że tylko twoje urządzenia będą mogły łączyć się z 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 z openssl.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. Domyślnie jest to Nano, ale jeśli wolisz, możesz zainstalować Vima.

Najpierw znajdź zmienną KEY_SIZE. Domyślnie jest ustawiony na 2048. Zmień na 4096.

eksport KEY_SIZE = 4096

Główny blok, z którym trzeba się uporać, zawiera informacje o urzędzie certyfikacji. To pomaga, jeśli te informacje są dokładne, ale wszystko, co pamiętasz, jest w porządku.

eksport KEY_COUNTRY = „US” eksport KEY_PROVINCE = „CA” eksport KEY_CITY = „SanFrancisco” eksport KEY_ORG = „Fort-Funston” eksport KEY_EMAIL = "" eksport KEY_OU = "MyOrganizationalUnit" eksport KEY_NAME = "HomeVPN"

Gdy masz wszystko, zapisz i wyjdź.

Zainstalowany wcześniej pakiet Easy-RSA zawiera wiele skryptów, które pomagają skonfigurować wszystko, czego potrzebujesz. Musisz je tylko uruchomić. Zacznij od dodania pliku „vars” jako źródła. Spowoduje to załadowanie wszystkich właśnie ustawionych zmiennych.

$ sudo source ./vars

Następnie posprzątaj klucze. Nie masz żadnych, więc nie przejmuj się wiadomością, że klucze zostaną usunięte.

$ sudo ./clean-install

Na koniec zbuduj swój ośrodek certyfikacji. Ustawiłeś już wartości domyślne, więc możesz zaakceptować wartości domyślne, które przedstawia. Pamiętaj, aby ustawić silne hasło i odpowiedzieć „tak” na dwa ostatnie pytania, podążając za hasłem.

$ sudo ./build-ca

Zrób kilka kluczy

Przeszedłeś wszystkie te problemy, aby skonfigurować ośrodek certyfikacji, aby móc podpisywać klucze. Czas na trochę. Zacznij od zbudowania klucza dla swojego serwera.

$ sudo ./build-key-server server

Następnie zbuduj PEM Diffie-Hellman. Tego używa OpenVPN do zabezpieczenia 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 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. Następnym etapem konfiguracji OpenVPN jest sama konfiguracja serwera. Na szczęście nie ma wiele do zrobienia. Debian zapewnia podstawową konfigurację, której możesz użyć, aby rozpocząć. Zacznij 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ą pliki ca, cert i key. Musisz ustawić je tak, aby pasowały do ​​rzeczywistych lokalizacji utworzonych plików, które wszystkie znajdują się w / etc / openvpn / certs / keys.

ca /etc/openvpn/certs/keys/ca.crt cert /etc/openvpn/certs/keys/server.crt key /etc/openvpn/certs/keys/server.key # Ten plik należy zachować w tajemnicy

Znajdź ustawienie dh i zmień je, aby pasowało do utworzonego pliku Diffie-Hellman .pem.

dh dh4096.pem

Ustaw także ścieżkę do klucza HMAC.

tls-auth /etc/openvpn/certs/keys/ta.key 0

Znajdź szyfr i upewnij się, że pasuje do poniższego przykładu.

szyfr AES-256-CBC

Istnieje kilka następnych opcji, ale zostały one skomentowane za pomocą; Usuń średniki przed każdą opcją, aby je włączyć.

push „bramka przekierowująca def1 bypass-dhcp” push „opcja dhcp DNS 208.67.222.222” push „opcja dhcp DNS 208.67.220.220”

Poszukaj opcji użytkownika i grupy. Odkomentuj je i zmień użytkownika na „openvpn”.

użytkownik grupy OpenVPN

Ostatnie dwa wiersze nie są w domyślnej konfiguracji. Musisz je dodać na końcu pliku.

Ustaw skrót uwierzytelnienia, aby określić silniejsze szyfrowanie dla uwierzytelnienia 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.

# Szyfry graniczne 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 będziesz mógł uruchomić serwer, musisz ustawić określonego użytkownika openvpn.

$ sudo adduser --system --shell / usr / sbin / nologin --no-create-home openvpn

Jest to specjalny użytkownik tylko do uruchamiania OpenVPN i nie zrobi nic innego.

Teraz uruchom serwer.

$ sudo systemctl start openvpn $ sudo systemctl start

Sprawdź, czy oba działają

$ sudo systemctl status openvpn * .service

Jeśli wszystko wygląda dobrze, włącz je przy uruchomieniu.

$ sudo systemctl enable openvpn $ sudo systemctl enable

Konfiguracja klienta

Twój serwer jest teraz skonfigurowany i działa. Następnie musisz skonfigurować konfigurację klienta. Jest to konfiguracja, której użyjesz do połączenia urządzeń z serwerem. Wróć do folderu certs i przygotuj się do zbudowania kluczy klienta. Możesz zbudować osobne klucze dla każdego klienta lub jeden klucz dla wszystkich klientów. Do użytku domowego jeden klucz powinien być w porządku.

$ cd / etc / openvpn / certs $ sudo source ./vars $ sudo ./build-key client

Proces jest prawie identyczny jak na serwerze, więc postępuj zgodnie z tą samą procedurą.

Konfiguracja klienta

Konfiguracja dla klientów jest bardzo podobna do konfiguracji dla serwera. Ponownie masz gotowy szablon, na którym oprzesz swoją konfigurację. Musisz tylko zmodyfikować go, aby pasował do serwera.

Przejdź do katalogu klienta. 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órz plik client.ovpn za pomocą edytora tekstu. Następnie znajdź opcję zdalną. Zakładając, że jeszcze nie korzystasz z VPN, wyszukaj w Google „Jaki jest mój adres IP”. Weź adres, który wyświetla, i ustaw na niego zdalny adres IP. Zostaw numer portu.

zdalny 107.150.28.83 1194 #To jak na ironię IP to VPN

Zmień certyfikaty, aby odzwierciedlić te, które utworzyłeś, tak jak zrobiłeś to na serwerze.

ca ca.crt cert klient.crt klucz client.key

Znajdź opcje użytkownika i odkomentuj je. Dobrze jest prowadzić klientów jak nikt.

użytkownik nikt grupa nogroup

Odkomentuj opcję tls-auth dla HMAC.

tls-auth ta.key 1

Następnie poszukaj opcji szyfru i upewnij się, że pasuje do serwera.

szyfr AES-256-CBC

Następnie po prostu dodaj skrót uwierzytelnienia i ograniczenia szyfrowania na dole pliku.

# Uwierzytelnianie Digest auth SHA512 # Ograniczenia szyfru 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

Kiedy wszystko wygląda poprawnie, zapisz plik i wyjdź. Użyj tar, aby spakować konfigurację i certyfikaty, abyś mógł wysłać je 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

Przenieś ten pakiet do klienta w dowolny sposób. SFTP, FTP i dysk USB to świetne opcje.

Przekazywanie portów

Aby to wszystko zadziałało, musisz skonfigurować router, aby przekazywał przychodzący ruch VPN do Pi. Jeśli już korzystasz z VPN, musisz upewnić się, że nie łączysz się z tym samym portem. Jeśli tak, zmień port w konfiguracji klienta i serwera.

Połącz się z interfejsem internetowym routera, wpisując jego adres IP w przeglądarce.

Każdy router jest inny. Mimo to wszystkie powinny mieć jakąś formę tej funkcjonalności. Znajdź go na routerze.

Konfiguracja jest zasadniczo taka sama na każdym routerze. Wprowadź porty początkowy i końcowy. Powinny one być takie same jak te ustawione w konfiguracjach. Następnie dla adresu IP ustaw go na adres IP Raspberry Pi. Zapisz swoje zmiany.

Połącz z klientem

Każdy klient jest inny, więc nie ma uniwersalnego rozwiązania. Jeśli korzystasz z systemu Windows, potrzebujesz klienta Windows OpenVPN .

W Androidzie możesz otworzyć swoje archiwum i przenieść klucze na swój telefon. Następnie zainstaluj aplikację OpenVPN. Otwórz aplikację i podłącz informacje z pliku konfiguracyjnego. Następnie wybierz klucze.

W systemie Linux musisz zainstalować OpenVPN podobnie jak na serwerze.

$ sudo apt install openvpn

Następnie zmień na / etc / openvpn i rozpakuj wysłany plik tar.

$ 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 zawiedzie. Najpierw musisz włączyć przekierowanie portów na routerze.

Zamykanie myśli

Powinieneś teraz mieć działającą konfigurację. Twój klient połączy się bezpośrednio z routerem z Pi. Stamtąd możesz udostępniać i łączyć się przez sieć wirtualną, o ile wszystkie urządzenia są podłączone do sieci VPN. Nie ma limitu, więc zawsze możesz podłączyć wszystkie swoje komputery do Pi VPN.

Zmień Raspberry Pi w VPN, aby uzyskać dostęp do sieci z dowolnego miejsca