Jak zainstalować i skonfigurować serwer OpenVPN na Ubuntu 18.04, 16.04

Jak zainstalować i skonfigurować serwer OpenVPN na Ubuntu 18.04, 16.04

VPN lub Virtual Private Network to grupa komputerów podłączonych do sieci prywatnej w sieci publicznej (Internet). W dzisiejszych czasach bezpieczeństwo jest głównym problemem dla wszystkich i jest bardziej wymagane podczas pracy nad siecią publiczną.

Tak jakbyś miał grupę komputerów w odległej lokalizacji. Teraz musisz uzyskać dostęp do tych komputerów jako sieci LAN w systemie. Potrzebujesz również wszystkich danych, które powinny być szyfrowane podczas transferu między komputerami. Rozwiązaniem jest VPN. Możesz użyć sieci VPN do podłączenia ze sobą dwóch zdalnych systemów lokalizacji, ponieważ są one na tej samej sieci LAN. Ten samouczek pomoże Ci zainstalować i skonfigurować serwer OpenVPN w systemach Ubuntu, Debian i Linux Mint.

Krok 1 - Wymagania wstępne

Zaloguj się do systemu Ubuntu za pomocą SSH. Teraz zaktualizuj apt pamięć podręczną systemu i zaktualizuj pakiety systemowe do najnowszych wersji.

sudo apt-get aktualizacja sudo apt-get aktualizację 

Krok 2 - Zainstaluj serwer OpenVPN

Teraz zainstaluj pakiet OpenVPN, wpisując poniżej polecenie. Również zainstaluj pakiety Easy-RSA do zarządzania certyfikatami SSL wymagane do szyfrowania danych między serwerem a klientem.

sudo apt-get instaluj openvpn easy-rsa 

Skopiuj przykładowy plik konfiguracyjny dla OpenVPN na/etc/openvpn/serwer.plik CONF. Będzie to używane jako plik konfiguracji serwera OpenVPN.

gunzip -c/usr/share/doc/openvpn/przykłady/próbki-config-files/serwer.conf.GZ>/etc/openvpn/serwer.conf 

Krok 3 - Skonfiguruj serwer OpenVPN

Edytuj plik konfiguracyjny serwera OpenVPN w ulubionym edytorze tekstu.

vim/etc/openvpn/serwer.conf 

Usunąć ";" Aby odczuwać linie lub dodać nowe wiersze dla następujących wpisów w pliku konfiguracyjnym.

 TLS-Auth ta.Klucz 0 Klucz-kierunek 0 szyfru AES-256-CBC Auth SHA256 Comp-LZO Użytkownik Nikt Group Nogroup Cert Server.Serwer kluczy CRT.klucz 

Powyższe ustawienia umożliwią połączenie VPN między systemami. Ale nie będą kierować ruchu internetowego klienta za pośrednictwem VPN. Ponadto pocurzenie wartości opcji DHCP.

 Wpusz „Redirect-Gateway DEF1 Bypass-DHCP„ Push ”DHCP-Option DNS 208.67.222.222 „Push” DHCP-Option DNS 208.67.220.220 " 

Krok 4 - Zaktualizuj konfigurację sieci

Wykonaj niektóre ustawienia sieciowe, aby umożliwić użytkownikom dostęp do serwera w tej samej sieci serwerów OpenVPN. Najpierw zezwól na przekazanie adresu IP na serwerze, wykonując poniższe polecenia, aby ustawić NET.IPv4.Wartość ip_forward do 1 w /etc /sysctl.plik CONF.

Echo „Net.IPv4.ip_forward = 1 ">> /etc /sysctl.conf sudo sysctl -p 

Maskaraduj ruch internetowy pochodzący z sieci VPN (10.8.0.0/24) do systemu lokalnego interfejsu sieciowego (ETH0). Gdzie 10.8.0.0 to moja sieć VPN, a ETH0 to interfejs sieciowy mojego systemu.

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

Krok 5 - Urząd certyfikacji konfiguracji

OpenVPN zapewnia bezpieczną usługę VPN za pomocą szyfrowania TLS/SSL ruchu między serwerem a klientem. W tym celu musisz wydać zaufane certyfikaty dla serwerów i klientów do pracy. Aby wydać certyfikaty, musisz skonfigurować organ certyfikatu w swoim systemie.

Utwórzmy katalog w organu certyfikacyjnym za pomocą polecenia Make-Cadir. To polecenie inicjuje również katalog z wymaganymi plikami.

Make-cadir/etc/openvpn/openvpn-ca/cd/etc/openvpn/openvpn-ca/ 

Edytuj plik Vars w swoim ulubionym edytorze tekstu.

vim vars 

i zaktualizuj poniższe wartości zgodnie z wymaganiami. Wartości te będą używane jako wartości domyślne do wydawania certyfikatów dla serwerów i klientów. Możesz także zastąpić te wartości podczas tworzenia certyfikatu.

Eksport Key_Country = "us" Export Key_Province = "Ca" Export Key_city = "Sanfrancisco" Export Key_org = "TeCadmin" Export Key_Email = "[chroniony e -mail]„ Eksport Key_ou = „Security” 

Załaduj wartości w środowisku systemowym.

źródło vars 

Teraz użyj ./Clean-All, aby usunąć klucze wyjściowe, a następnie uruchomić ./Build-CA do budowy certyfikatów CA pod/etc/openvpn/openvpn-ca/katalog.

./Wyczyść wszystko ./Build-CA 

Przykładowe dane wyjściowe powyższego polecenia:

Generowanie 2048 -bitowego klucza prywatnego RSA… +++… +++ pisanie nowego klucza prywatnego do „CA.Klucz '----- Zaraz zostaniesz poproszony o wprowadzenie informacji, które zostaną włączone do Twojego żądania certyfikatu. To, co zamierzasz wejść, to tak zwana nazwa wyróżniająca lub DN. Istnieje sporo pól, ale możesz zostawić puste pola na niektórych polach, jeśli wejdziesz, będzie wartość domyślna.', pole pozostanie puste. ----- Nazwa kraju (2 kod literowy) [US]: Nazwa stanu lub prowincji (pełna nazwa) [CA]: Nazwa lokalizacji (np. Miasto) [Sanfrancisco]: Nazwa organizacji (np. Firma) [Tecadmin]: Nazwa jednostki organizacyjnej (np. , sekcja) [Security]: nazwa zwyczajowa (np. nazwa lub nazwa hosta twojego serwera) [TECADMIN CA]: Nazwa [EASYRSA]: Adres e -mail [[chroniony e -mail]]: 

Teraz Twój system jest gotowy jako uprawnienia certyfikatów do wydawania certyfikatów.

Krok 6 - Generuj pliki certyfikatu serwera

Najpierw utwórz certyfikaty dla serwera OpenVPN za pomocą ./Komenda Key-Key-Server, a następnie serwer słów kluczowych w celu wygenerowania certyfikatów dla serwera. To utworzy wymagane certyfikaty, plik kluczyek w katalogu Keys.

CD/etc/openvpn/openvpn-ca/ ./Build-Key-Server Server 

Przykładowe dane wyjściowe powyższego polecenia:

… Podpis OK Wyróżniający się nazwa podmiotu jest następująca nazwa countryName: DRICTABLE: „Us” StateorProvinceName: Printeble: „Ca” Nazwa Lokalizacji: „Sanfrancisco” Nazwa Organizacja: „TECADMIN” OrganizationalUnitName: Printable: „Security” CommonName: Printbeble: ' Server „Nazwa: do wydrukowania:„ Easyrsa ”e -mail? [T/N]: y 1 na 1 certyfikowane wnioski o certyfikat, zatwierdź? [y/n] y 

Teraz generuj silny klucz Diffie-Hellman do użycia dla wymiany klawiszy za pomocą polecenia. To polecenie może zająć trochę czasu.

OpenSSL dhparam -out/etc/openvpn/DH2048.PEM 2048 

Następnie wygeneruj podpis HMAC, aby uzyskać bezpieczniejsze możliwości weryfikacji integralności TLS.

OpenVpn-genkey--secret/etc/openvpn/openvpn-ca/keys/ta.klucz 

Po utworzeniu wszystkich plików skopiuj je do katalogu /etc /openvpn.

CD/etc/openvpn/openvpn-ca/klawisze sudo cp ca.crt ta.Kluczowy serwer.serwer CRT.klucz /etc /openvpn 

Krok 7 - Rozpocznij usługę OpenVPN

Serwer OpenVPN jest teraz gotowy. Rozpocznijmy usługę za pomocą polecenia SystemCtl. Sprawdź także status usługi.

Sudo SystemCtl Start [E -mail chroniony] status sudo systemctl [e -mail chroniony] 

Po pomyślnym rozpoczęciu usługi zobaczysz wyniki takie jak poniżej.

● [Protection e-mail]-OpenVPN Połączenie z załadowanym serwerem: Załadowany (/lib/systemd/system/[chroniony e-mail]; niepełnosprawny; dostawca ustawień: włączony) Active: Active (uruchamianie) od czwek 2018-01-04 11:09: 51 IST; 6s temu Dokumenty: Man: OpenVPN (8) https: // społeczność.OpenVpn.net/openvpn/wiki/openvpn23manpage https: // społeczność.OpenVpn.net/openvpn/wiki/howto proces: 4403 execStart =/usr/sbin/openvpn--daemon ovpn-%i --status/run/openvpn/%i.Status 10 -CD /etc /openvpn -Główny PID: 4404 (OpenVPN) CGroup: /System.Slice/system-openvpn.Slice/[e-mail chroniony] └─4404/usr/sbin/openvpn--daemon ovpn-server --status/run/openVpn/Server.Status 10-CD /etc /OpenVpn-04 stycznia 11:09:51 Laitkor237 OVPN-SERVER [4404]: /SBin /IP Addr Dodaj Dev Tun0 Local 10.8.0.1 peer 10.8.0.2 stycznia 04 11:09:51 Laitkor237 OVPN-SERVER [4404]: /SBIN /IP Route Add 10.8.0.0/24 przez 10.8.0.2 stycznia 04 11:09:51 Laitkor237 Ovpn-Server [4404]: GID ustawiony na Nogroup 04 stycznia 11:09:51 Laitkor237 ovpn-server [4404]: UID ustawiony na nikogo 04 stycznia 11:09:51 LaitKor237 ovpn-server [4404]: UDPV4 Link Local (Bound): [Unf] 04 stycznia 11:09:51 LaitKor237 Ovpn-Server [4404]: UDPV4 Link Remote: [Unf] 04 11:09:51 Laitkor237 Ovpn-Server [4404] : Multi: multi_init nazywany, r = 256 v = 256 stycznia 04 11:09:51 LaitKor237 OVPN-SERVER [4404]: Ifconfig Pool: Base = 10.8.0.4 Rozmiar = 62, IPv6 = 0 stycznia 04 11:09:51 LaitKor237 OVPN-SERVER [4404]: Ifconfig Lista puli 04 stycznia 11:09:51 LaitKor237 OVPN-SERVER [4404]: Sekwencja inicjalizacji zakończona 

OpenVPN utworzy nazwę interfejsu sieciowego TUN0. Wykonaj poniższe polecenie, aby wyświetlić adres IP przypisany do interfejsu. Przeważnie przypisuje pierwszy adres IP sieci zdefiniowany na serwerze.plik CONF.

ifconfig tun0 

Krok 8 - Generuj konfigurację klienta

Serwer OpenVPN jest gotowy do użycia. Teraz generuj pliki konfiguracyjne klienta, w tym klucz prywatny, certyfikaty. Ułatwiłem ci ten proces generowania dowolnej liczby plików konfiguracji za pomocą prostego skryptu. Wykonaj poniższe kroki, aby wygenerować pliki konfiguracyjne. Upewnij się, że użyj prawidłowej struktury katalogu.

mkdir/etc/openvpn/klienci cd/etc/openvpn/klienci 

Utwórz plik skryptu powłoki jak poniżej.

VIM Make-VPN-CLIENT.cii 

Skopiuj poniższą zawartość. Zaktualizuj zmienną OpenVPN_Server z poprawnym adresem IP serwera OpenVPN i zapisz ją.

#!/bin/bash # generuj pliki konfiguracyjne klientów OpenVPN. Nazwa_ klienta = 1 $ OpenVpn_server = "192.168.1.237 "ca_dir =/etc/openvpn/openvpn-ca client_dir =/etc/openvpn/clients cd $ ca_dir Źródło vars ./kompilacja-key $ client_name echo "Client tun Proto Udp Remote $ OpenVpn_Server 1194 Użytkownik Nikt grupa przetrwa pendroup-key Trwałe tune -LZO czasownik 3 "> $ client_dir/$ client_name.OVPN Cat <(echo -e '') \ $CA_DIR/keys/ca.crt \ <(echo -e '\n') \ $CA_DIR/keys/$CLIENT_NAME.crt \ <(echo -e '\n') \ $CA_DIR/keys/$CLIENT_NAME.key \ <(echo -e '\n') \ $CA_DIR/keys/ta.key \ <(echo -e '') \ >> $ Client_dir/$ client_name.OVPN echo -e „Plik klienta utworzony - $ client_dir/$ client_name.ovpn "
12345678910111213141516171819202122232425262728293031323334353637383940#!/bin/bash # generuj pliki konfiguracyjne klientów OpenVPN. Nazwa_ klienta = 1openvpn_server = "192.168.1.237 "ca_dir =/etc/openvpn/openvpn-caclient_dir =/etc/openvpn/clients cd $ ca_dir Źródło vars./build-key $ client_name echo "ClientDev Tunproto Udpremote $ OpenVPn_Server 1194USER NOTEGROUP NOGROPERSIST-KEYPERSIST-Tuncipher AES-128-CBCAUTH SHA256KEY-DIRECTION 1REMOTE-CERT-TLS SERVERCOMP-LZOVERB 3"> $ Client_Dir/$ NAZWA KLIENTA.OVPN Cat <(echo -e '') \ $CA_DIR/keys/ca.crt \ <(echo -e '\n') \ $CA_DIR/keys/$CLIENT_NAME.crt \ <(echo -e '\n') \ $CA_DIR/keys/$CLIENT_NAME.key \ <(echo -e '\n') \ $CA_DIR/keys/ta.key \ <(echo -e '') \ >> $ Client_dir/$ client_name.OVPN echo -e „Plik klienta utworzony - $ client_dir/$ client_name.ovpn "

Ustaw uprawnienie Wykonaj na nowo utworzonym skrypcie.

chmod +x ./Make-VPN-CLIENT.cii 

Teraz użyj tego skryptu, aby generować plik konfiguracyjny dla klientów VPN, w tym certyfikatów i kluczy. Musisz przekazać nazwę klienta jako parametr wiersza poleceń.

./Make-VPN-CLIENT.sh vpnclient1 

Naciśnij Enter, aby uzyskać wartości domyślne certyfikatu. Na koniec będzie monitował podpisanie certyfikatu i zatwierdzić. Naciśnij Y dla obu wejść.

Certyfikat ma być certyfikowany do 2 stycznia 07:18:10 2028 GMT (3650 dni) Podpisz certyfikat? [T/N]: y 1 na 1 certyfikowane wnioski o certyfikat, zatwierdź? [Y/N] Y.ovpn 

Powyższy skrypt utworzy plik konfiguracyjny klienta pod/etc/openVpn/Clients/Directory z nazwą klienta z .rozszerzenie OVPN, jak pokazuje w ostatnim wierszu wyjściowego. Użyj tego pliku, aby połączyć się ze zdalnych systemów.

Krok 9 - Podłącz VPN od klientów

Potrzebujesz pliku konfiguracyjnego wygenerowanego z góry

Klienci systemu Windows

Pobierz oprogramowanie klienckie OpenVPN z oficjalnej strony pobierania i zainstaluj w swoim systemie. Teraz skopiuj podane .Plik OVPN pod C: \ Program Files \ OpenVPN \ Config File \ Directory. Teraz uruchom klient OpenVPN GUI i połącz się. Po udanym połączeniu będziesz zieloną ikonę w powiadomieniach o prawym dnie. Możesz wyświetlić status według Rigth, kliknij ikonę.

Klienci Linuksa

Na klientach Linux najpierw musisz zainstalować pakiety OpenVPN. Następnie użyj następującego polecenia, aby połączyć się z serwerem OpenVPN za pomocą podanego pliku konfiguracyjnego klienta.

OpenVpn -Config Client1.ovpn 

Po udanym połączeniu OpenVPN przypisuje adres IP do Twojego systemu. Użyj następującego polecenia, aby sprawdzić przypisany adres IP.

ifconfig tun0 

[wyjście]

Link Tun0 encap: UNPEC HWADDR 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 INET ADDR: 10.8.0.18 P-T-P: 10.8.0.17 Maska: 255.255.255.255 Punkty punktowy Uruchamianie NOARP Multicast MTU: 1500 Metryka: 1 Rx Pakiety: 0 Błędy: 0 Zrzucone: 0 Przekręcenia: 0 Ramka: 0 Pakiety TX: 0 Błędy: 0 Zrzucone: 0 Przekręcenia: 0 Nośnik: 0 zderzenia: 0 Txqueueuna: 100 RX Bajty: 0 (0.0 b) bajty tx: 0 (0.0 B)