Szczegółowe instrukcje dotyczące instalacji OpenVPN na serwerze Linux
OpenVPN to potężne i elastyczne narzędzie do tworzenia bezpiecznych tuneli VPN. Ta instrukcja pomoże zainstalować i skonfigurować OpenVPN na serwerze z systemem Linux (np. Ubuntu, Debian, CentOS).
Aktualizacja pakietów systemowych
Przed rozpoczęciem instalacji należy zaktualizować listę pakietów systemowych i zainstalować wszystkie dostępne aktualizacje. Dla Ubuntu/Debian:
apt update
apt upgrade -y
Dla CentOS
yum update -y
Zainstaluj OpenVPN i Easy-RSA
Do tworzenia kluczy i certyfikatów potrzebne będzie narzędzie Easy-RSA. Wraz z nim zainstalujemy OpenVPN.
Dla Ubuntu/Debian:
apt install openvpn easy-rsa -y
Dla CentOS:
yum install epel-release -y
yum install openvpn easy-rsa -y
Pomyślna instalacja będzie wyglądać następująco
Konfiguracja PKI (infrastruktury klucza publicznego)
Utwórz katalog, w którym będą przechowywane wszystkie pliki niezbędne do tworzenia certyfikatów:
make-cadir ~/openvpn-ca
cd ~/openvpn-ca
Konfiguracja Easy-RSA
Edytuj plik vars, aby określić ustawienia tworzenia certyfikatów:
nano vars
Zmień następujące wiersze na swoje wartości:
set_var EASYRSA_REQ_COUNTRY "enter YOUR_COUNTRY"
set_var EASYRSA_REQ_PROVINCE "wprowadź YOUR_PROVINCE"
set_var EASYRSA_REQ_CITY "wprowadź YOUR_CITY"
set_var EASYRSA_REQ_ORG "enter YOUR_ORGANIZATION"
set_var EASYRSA_REQ_EMAIL "enter YOUR_EMAIL"
set_var EASYRSA_REQ_OU "enter YOUR_ORG_UNIT"
- ZmiennaEASYRSA_REQ_ORG jest używana w skrypcie EasyRSA do ustawiania nazwy organizacji podczas tworzenia certyfikatów. Wartość tej zmiennej jest określona w CSR (Certificate Signing Request) i w certyfikatach, które zostaną utworzoneW tym przykładzie zmienna EASYRSA_REQ_ORG jest ustawiona na ciąg “enter YOUR_ORGANIZATION”. Oznacza to, że podczas tworzenia certyfikatu wartość ta zostanie określona w polu“Nazwa organizacji“. Zazwyczaj zamiast “enter YOUR_ORGANIZATION” wpisuje się nazwę organizacji, dla której tworzone są certyfikaty. Na przykład, jeśli organizacja nazywa się“ExampleCorporation“, należy zmienić tę wartość na:set_var EASYRSA_REQ_ORG “ExampleCorporatiom “W ten sposób wygenerowane certyfikaty będą zawierać nazwę organizacji w odpowiednim polu.
.set_var EASYRSA_REQ_ORG "enter YOUR_ORGANIZATION "
Następnie należy załadować zmodyfikowane zmienne. Aby to zrobić, należy wprowadzić jedno proste polecenie składające się tylko z dwóch słów:
source vars
Create CA (Certificate Authority)
Następnie nadchodzi trudny i ważny krok! Upewnij się, że możesz zostawić zapis tego w swoim KeePASS lub innym niezawodnym menedżerze haseł! W tym kroku należy zainicjować PKI i utworzyć certyfikat główny. Można to zrobić w następujący sposób:
./easyrsa init-pki
./easyrsa build-ca
Zostaniesz poproszony o wprowadzenie hasła do CA. Należy je zapisać i zapamiętać.
Generowanie kluczy i certyfikatów
Certyfikat i klucz serwera:
./easyrsa gen-req server nopass
Podpisz certyfikat serwera:
./easyrsa sign-req server server server
Wygeneruj parametry DH:
./easyrsa gen-dh
Generuje klucz HMAC do uwierzytelniania TLS:
openvpn --genkey --secret ta.key
Konfiguracja pliku konfiguracyjnego serwera
Skopiuj przykładowy plik konfiguracyjny i edytuj go:
cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
gunzip /etc/openvpn/server.conf.gz
nano /etc/openvpn/server.conf
Uruchamianie usługi OpenVPN
Upewnij się, że OpenVPN uruchamia się podczas rozruchu za pomocą następującego polecenia:
systemctl enable openvpn@server
Konfiguracja pliku klienta
Skopiuj plik konfiguracyjny klienta na serwer:
scp user@your-server_ip:/etc/openvpn/client.ovpn ~/client.ovpn
- Testy zostały przeprowadzone na adresie IPv4 – 91.229.239.11. Poniżej znajduje się przykładowy wynik pomyślnego wykonania poleceń:
Wprowadź konfigurację scp user@91.229.239.11:/etc/openvpn/client.ovpn ~/client.ovpn. Następnie wprowadź passwd
Edytuj plik client.ovpn i dodaj certyfikaty:
# wklej zawartość pliku ca.crt
# wklej zawartość pliku client.crt
# wklej zawartość pliku client.key
Podłączanie klienta
Zaimportuj plik client.ovpn do klienta OpenVPN na swoim urządzeniu i połącz się z serwerem.