Konfiguracja OpenVPN na Ubuntu 18.04 Bionic Beaver Linux
- 3338
- 267
- Pani Janina Cieśla
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
- « Jak dostosować panel DOCK na Ubuntu 18.04 Bionic Beaver Linux
- Jak zainstalować komputer Kylin na Ubuntu 18.04 Bionic Beaver Linux »