Konfiguracja OpenVPN na Ubuntu 18.04 Bionic Beaver Linux

Konfiguracja OpenVPN na Ubuntu 18.04 Bionic Beaver Linux

Cel

Dowiedz się, jak instalować i konfigurować serwer OpenVPN na Ubuntu 18.04 Bionic Beaver

Wymagania

  • Uprawnienia korzeniowe

Konwencje

  • # - Wymaga podanych poleceń Linuksa, które można wykonać z uprawnieniami root
    bezpośrednio jako użytkownik root lub za pomocą sudo Komenda
  • $ - Wymaga, aby podane polecenia Linux zostały wykonane jako zwykły użytkownik niepewny

Inne wersje tego samouczka

Ubuntu 20.04 (Focal Fossa)

Wstęp

Wirtualna technologia sieci prywatnej umożliwia dostęp do bezpiecznych, prywatnych sieci za pomocą mniej bezpiecznych sieci, takich jak Internet. VPN są zwykle używane do łączenia fizycznie zdalnych oddziałów organizacji, dzięki czemu wyglądają, jakby były częścią tego samego LAN (na przykład dwa biura w różnych miastach). Ruch między bokami połączenia jest szyfrowany za pomocą tuneli, który chroni przesyłane dane i same informacje o połączeniu. W przypadku tych samych cech VPN są często wykorzystywane do obejścia ograniczeń rządowych i anonimizacji ruchu internetowego.

W tym samouczku zobaczymy, jak utworzyć wirtualny prywatny serwer sieciowy za pomocą OpenVPN, oprogramowania VPN Open Source na Ubuntu 18.04 Bionic Beaver.

Krok 1 - Instalacja

Instalowanie OpenVPN na Ubuntu 18.04 jest naprawdę łatwe: oprogramowanie jest dostępne w domyślnych repozytoriach. Musimy również zainstalować Easy-RSA Pakiet, który pomoże nam w tworzeniu potrzebnych certyfikatów i kluczy:

$ sudo apt-get aktualizacja && sudo apt-get instaluj openvpn easy-rsa

Kilka sekund, a oprogramowanie zostanie zainstalowane na naszym komputerze, gotowe do skonfigurowania.

Krok 2 - Konfiguracja infrastruktury serwerów

W tej sekcji wygenerujemy potrzebne certyfikaty i klucze: Najpierw stworzymy nasz zwyczaj Ca (Urząd certyfikacji), następnie wygenerujemy serwer Para certyfikatu/klucza, Diffie-Hellman parametry i Klucz TLS-Auth.

Zacznijmy od wygenerowania katalogu, który będzie zawierał skrypty, które wykonają dla nas ciężką robotę. Prowadzimy Make-Cadir polecenie, które jest częścią Easy-RSA pakiet, podając nazwę katalogu, który chcemy utworzyć. Chcemy również wejść do katalogu, gdy tylko zostanie on utworzony:

$ certyfikaty Make-Cadir i certyfikaty CD

W tym przypadku zadzwoniłem do katalogu certyfikaty. To będzie nasz katalog roboczy dla reszty samouczka, dlatego wszystkie wspomniane polecenia muszą być uznane za uruchomione w nim.



Krok 2.1 - Konfiguracja zmiennych

Jako pierwszą rzeczą musimy dostosować zmienne, które zostaną użyte do ustawienia wartości użytych podczas generowania Urzędu Świadectwa i certyfikatu/klucza. Zmienne są zdefiniowane wewnątrz vars plik:

Eksport Key_config = "$ easy_rsa/whoopensslcnf $ easy_rsa" Export Key_Country = "us" Export Key_Province = "Ca" Export Key_city = "Sanfrancidco" Export Key_org = "Fort-Funston" Export Key_Email = "[email protected] „Export Key_OU =„ MyorGanizationAlunit ” 

Bardzo ważna zmienna jest Key_config, który domyślnie jest ustawiony przez wywołanie małego skryptu opakowania, który powinien pobrać odpowiednią konfigurację SSL. Jednak jeśli używany w ten sposób generuje błąd, ponieważ skrypt nie pobiera konfiguracji. Aby tego uniknąć, określamy plik konfiguracyjny bezpośrednio:

Eksport key_config = "$ easy_rsa/openSSL-1.0.0.CNF "

Wartości innych zmiennych muszą zostać zmienione i dostosowane do twoich konkretnych potrzeb. Po zakończeniu edytowania pliku musimy go „źródło”, aby zmienne stały się częścią naszego środowiska środowiska wykonawczego:

$ Source vars

Krok 2.2 - Generowanie CA

Możemy kontynuować i generować nasz CA (Urząd Certyfikatu). Uruchamianie Wyczyść wszystko I Build-CA Skrypty w kolejności. Generowanie CA rozpocznie się, używając wartości zmiennych zdefiniowanych w vars Plik jako domyślnie dla odpowiednich pól:

$ ./Wyczyść wszystko && ./Build-CA

Krok 2.3 - Certyfikat i generowanie kluczy

Następnym krokiem jest generowanie certyfikatu i klucza dla serwera. To tylko kwestia uruchomienia skryptu Key-Key-server, podając nazwę, której chcemy użyć dla certyfikatu i klucza jako parametr. W takim przypadku używamy „serwera”, ponieważ jest to domyślna nazwa używana w pliku konfiguracyjnym VPN, jak zobaczymy dalej w samouczku:

$ ./Build-Key-Server Server

Postępuj zgodnie z instrukcjami na ekranie. WYZWANIE HASPALIKA I Nazwa firmy Pola są opcjonalne.

Krok 2.4 - Generowanie parametrów Diffie -Hellman

Następnym krokiem jest utworzenie parametrów Diffie-Hellman. Te parametry są używane do wymiany kluczy kryptograficznych za pomocą kanału publicznego i niepewnego. Używamy Build-Dh scenariusz:

$ ./Build-Dh

Skrypt zajmie trochę czasu na wygenerowanie parametrów, w zależności od maszyny, na której pracujemy, bądź cierpliwy!

Krok 2.5 - Wygeneruj losowy klucz, który ma być używany jako wspólny sekret

Aby wzmocnić nasze bezpieczeństwo, oprócz skorzystania z certyfikatu, wygenerujemy i użyjemy klucza do użycia udostępnionego sekretu. Serwer i każdy klient będzie potrzebował kopii tego klucza:

$ openvpn -genkey -tajne klucze/ta.klucz

Krok 2.6 - Kopiowanie wygenerowanych plików

Urząd Certyfikatu (CA.CRT), certyfikat (serwer.CRT), klucz (serwer.klucz), parametry diffie-hellmana (DH2048.PEM) i klucz TLS-Auth (TA.klawisz) pliki powinny być wygenerowane wewnątrz Klucze informator. Teraz nadszedł czas, aby je skopiować /etc/openvpn:

$ sudo cp klawisze/serwer.CRT, serwer.Key, ca.CRT, DH2048.Pem, ta.klucz /etc /openvpn

Krok 3 - Konfiguracja OpenVPN

Możemy kontynuować konfigurowanie usługi OpenVPN. (Skompresowaną) konfiguracja próbki można znaleźć na stronie /usr/share/doc/openvpn/przykłady/próbki-config-files/serwer.conf.GZ: Musimy tylko wyodrębnić go do katalogu /etc /openvpn:

$ gzip -d -c/usr/share/doc/openvpn/przykłady/próbki -config -files/serwer.conf.GZ | sudo tee/etc/openvpn/serwer.conf> /dev /null

Z powyższym poleceniem zdekompresowaliśmy oryginalny plik, wysyłając jego wyjście do stdout i przekierowując go przez /etc/openvpn/serwer.conf plik. Sprawdź, czy wartości domyślne w pliku konfiguracyjnym odpowiadają tym, które wygenerowaliśmy:

CA.Serwer CRT CERT.Serwer kluczy CRT.Klucz # Ten plik należy zachować w tajemnicy DH DH2048.pem 


Krok 4 - Skonfiguruj zaporę ogniową i umożliwić przekazywanie IP

Prawie skończyliśmy konfigurowanie naszego serwera VPN: teraz musimy skonfigurować zaporę ogniową, aby umożliwić przychodzący ruch z portu 1194/UDP (domyślny port i protokół):

$ sudo ufw zezwalaj na OpenVpn

Bardzo ważne: domyślnie tylko ruch między klientem a serwerem przechodzi przez tunel VPN, to wyklucza ruch internetowy. Aby zmienić to zachowanie, najpierw musimy porzucić opcję online 192 pliku konfiguracyjnego serwera (/etc/openvpn/serwer.conf):

Wpusz „Redirect-Gateway DEF1 Bypass-DHCP” 

Następnie musimy użyć reguły IPTAble, aby zawierać klienta VPN za pośrednictwem Internetu. Zauważ, że określałem ETH0 Interfejs, ale musisz dostosować regułę do interfejsu używanego na komputerze:

$ sudo iptables -t nat -a posttrouting -s 10.8.0.0/24 -O ETH0 -J MASQUERADE

Ustaw w ten sposób, reguła nie utrzyma ponownego uruchomienia. Aby to było wytrwałe, musimy dodać to do /etc/ufw/wcześniej.zasady plik. Ten plik zawiera reguły stosowane przez UFW przed tymi zdefiniowanymi z wiersza poleceń. Dodaj regułę jako pierwszą w pliku:

*Nat: Postrouting Zaakceptuj [0: 0] -A Postrouting -s 10.8.0.0/8 -O ETH0 -J Masquerade Commit 

Teraz musimy włączyć przekazywanie pakietów. Najpierw musimy edytować /etc /sysctl.plik CONF i pocukaj linii 28:

# Uzyskanie następnego wiersza, aby umożliwić przekazywanie pakietów dla sieci IPv4.IPv4.ip_forward = 1 

W tym momencie powinniśmy ponownie załadować konfigurację:

$ sudo sysctl -p /etc /sysctl.conf

Nadal musimy umożliwić przekazywanie pakietów za pośrednictwem zapory ogniowej UFW. otwarty /etc/default/ufw i zmień Default_forward_policy z UPUSZCZAĆ Do ZAAKCEPTOWAĆ:

# Ustaw domyślną zasadę forward, aby zaakceptować, upuścić lub odrzucić. Pamiętaj, że # Jeśli to zmieniasz 

Na koniec załaduj zaporę:

$ sudo ufw przeładowanie

Krok 5 - Uruchom usługę

Będziemy teraz używać SystemCtl do uruchamiania serwera, przekazując zmienną zawierającą nazwę naszego pliku konfiguracyjnego do jednostki serwisowej. Korzystając z SystemD, możemy to zrobić, poprzedzając wartość za pomocą @ symbol. Na przykład:

$ sudo systemctl start openvpn@serwer

W tym momencie serwer powinien być uruchomiony. Sprawdź to, biegając

$ sudo systemctl is-aktywny openvpn@serwer

Polecenie powinno zwrócić „aktywne”.



Krok 6 - Konfiguracja klienta

Dla każdego klienta, którego chcemy użyć, musimy wygenerować parę certyfikatu/klucza, tak jak zrobiliśmy powyżej dla serwera:

$ source vars && ./Klienta Key Build

Teraz mamy dwie opcje: możemy skopiować niezbędne pliki do naszego klienta, albo możemy wygenerować .ovpn plik, w którym zawartość tych plików jest osadzona. Skoncentrujemy się na drugiej opcji.

Tak jak zrobiliśmy serwer, weźmiemy przykładową konfigurację jako nasz punkt wyjścia. Utwórzmy dedykowany katalog i skopiuj szablon:

$ mkdir klienci && cp/usr/share/doc/openvpn/przykłady/próbki-config-files/klient.Klienci/klient.ovpn

Śledź bardzo dobrze skomentowane sekcje pliku i dostosuj opcje do tych zdefiniowanych w konfiguracji serwera (w naszym przypadku już to zrobione). Ustaw adres IP i port serwera, modyfikując ustawienie (wiersz 42):

Zdalny My-Server-1 1194 

Gdzie „My-Server” musi zostać zastąpiony przez adres IP serwera, a port musi zostać zmieniony, jeśli nie użyć domyślnego. Następnie pocukaj następujące wiersze (61,62):

# Upoważnij uprawnienia po inicjalizacji (tylko niewindows); Użytkownik Nikt; Nogrupa grupowa grupowa 

Teraz zastąpimy odniesienia do CA, certyfikatu, parametrów klucza, DH i klucza TLS-Auth za pomocą rzeczywistej zawartości plików: w ten sposób utworzymy konfigurację wbudowaną i łatwą eksportowaną. Odniesienia do pierwszych komentarzy (wiersze 88-90 i 108)

#Ca Ca.CRT #CERT Client.CRT #KEY Klient.Klucz #tls-Auth TA.Klucz 1

Następnie skopiuj zawartość wymienionych plików, między odpowiednimi tagami. Treść Urzędu Świadectwa musi być zawarta między znacznikami, treścią pliku certyfikatu w środku i kluczem pomiędzy . Jako przykład, rozważ CA:

 # Tutaj idzie treść CA.plik CRT  

W przypadku klucza TLS-Auth zamiast tego zrobilibyśmy:

kierunek kluczowy 1 # Treść TA.plik kluczowy  

Wreszcie, po prostu zaimportuj plik do aplikacji klienta i powinieneś być gotowy do pracy.

Przykład połączenia z Androidem

Aby połączyć się z naszym serwerem OpenVPN z Android, użyjemy oficjalnej aplikacji OpenVPN: OpenVPN Connect. Po zainstalowaniu i uruchomieniu pojawi się następujące menu:

Menu aplikacji Android OpenVPN



Stuknij, ostatni element, Profil OVPN

Z zbieracza plików przejdź do miejsca, w którym przechowywałeś .plik OVPN i wybierz go, niż dotknij „Importuj” w prawym górnym rogu. Profil powinien zostać poprawnie zaimportowany:

Import aplikacji Android OpenVPN
Teraz, tak samo jak poprzednio, dotknij dodaj i na poniższym ekranie aktywuj połączenie:

Aplikacja Android OpenVPN podłączona
Powodzenie!

Powiązane samouczki Linux:

  • Rzeczy do zainstalowania na Ubuntu 20.04
  • Rzeczy do zrobienia po zainstalowaniu Ubuntu 20.04 Focal Fossa Linux
  • Ubuntu 20.04 sztuczki i rzeczy, których możesz nie wiedzieć
  • Jak skonfigurować serwer OpenVPN na Ubuntu 20.04
  • Podstawowy Ubuntu 22.04 Konfiguracja połączenia klienta/serwera OpenVPN
  • Ubuntu 20.04 Przewodnik
  • Ubuntu 20.04 Hadoop
  • 8 najlepszych środowisk stacjonarnych Ubuntu (20.04 FOSSA…
  • Lista klientów FTP i instalacja na Ubuntu 20.04 Linux…
  • Menedżerowie sieci GUI Linux