Poprzednie wpisy są w miarę poprawne, działają. Jednak cały czas jest jakiś delikatny problem z nimi. Tak więc jedziemy po raz trzeci: Ubuntu 20.04 + OpenVPN. Pozmieniały się trochę pliki konfiguracyjne, wywołania zwłaszcza klucze generuje się inaczej w tej chwili.
Domyślnie działam na koncie administratora, jeśli chcemy używać konta zwykłego użytkownika, prawie przed każdym poleceniem musimy dodać „sudo”. Możemy też przejść do konta administatora np „sudo su -„.
Domyślnie używam edytora vim – jakoś się do niego przyzwyczaiłem, lubię go. Jest dla mnie prostszy, ale można używać dowolnego którego lubimy.
Certyfikaty klientów i serwera tworzę i przechowuję w katalogu openvpn – bo tam mi wygodniej. Można je przechowywać (utworzyć w dowolnym miejscu), można później je przenieść itd.
Zaczynamy jak poprzednio, na serwerze instalujemy i konfigurujemy:
apt-get install openvpn easy-rsa
mkdir /etc/openvpn/easy-rsa/
cp -r /usr/share/easy-rsa/* /etc/openvpn/easy-rsa/
cd /etc/openvpn/easy-rsa/
cp vars.example vars
./easyrsa init-pki
./easyrsa gen-req server_name nopass
./easyrsa build-ca
./easyrsa sign-req server server_name
cd /etc/openvpn
mkdir keys
cd keys
openvpn --genkey --secret ta.key
openssl dhparam -out dh4096.pem 4096
cd ../easy-rsa/
./easyrsa gen-req client1 nopass
./easyrsa sign-req client client1 nopass
cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/server/
gunzip /etc/openvpn/server/server.conf.gz
ln -s /etc/openvpn/server/server.conf /etc/openvpn/openvpn.conf
vim /etc/openvpn/server/server.conf
Weszliśmy w edycje pliku konfiguracyjnego serwera OpenVPN. Tutaj wpiszę tylko rzeczy które należy zmienić, dodać lub odkomentować, nie będę komentował kodu – odszukaj komendę/linię zmień na taką jak przedstawiłem poniżej. Jeśli nie ma – dodaj.
;dh /etc/openvpn/keys/dh4096.pem #aktualnie nie używam
;tls-auth ta.key 0 # This file is secret - usuń przez dodanie ; na początku linii
tls-crypt /etc/openvpn/keys/ta.key
cipher AES-256-GCM
auth SHA256 #dodajemy POD cipher!
user nobody #odkomentować
group nogroup #odkomentować
push "redirect-gateway def1 bypass-dhcp"
Zapisujemy, wychodzimy z edytora i zmieniamy jeszcze kilka rzeczy:
vim /etc/sysctl.conf
->
net.ipv4.ip_forward = 1
Po zapisany wydajemy komendę: sysctl -p
systemctl -f enable openvpn@openvpn.service
systemctl start openvpn@openvpn.service
systemctl status openvpn@openvpn.service
Teoretycznie serwer mamy postawiony i uruchomiony serwer.
W bezpieczny sposób kopiujemy pliki certyfikatu, czy to przez scp czy ftp czy jakoś jeszcze inaczej jak uznamy za stosowne:
/etc/openvpn/easy-rsa/pki/ca.crt
/etc/openvpn/keys/ta.key
/etc/openvpn/easy-rsa/pki/issued/client1.crt
/etc/openvpn/easy-rsa/pki/private/client2.key
W kliencie ustawiamy:
- adres ip (bramka)
- klucze
- zaawansowane:
- Szyfr: AES-256-GCM
- uwierzytelnienie HMAC: SHA-256
- Szyfrowanie TLS/klucz ta.key