1 (edytowany przez Bruno 2026-04-30 10:20:22)

Temat: [Miniporadnik] Konfiguracja OpenVPN - OpenWRT 25.12 + Klient PC

Cześć na bazie poradnika Cezarego dokonałem konfiguracji serwera OpenVPN oraz klienta OpenVPN GUI na Win11 + wygenerowałem odpowiednie klucze kryptograficzne.

Poradnik Cezarego jest na stronie:
https://eko.one.pl/?p=openwrt-openvpntun

Do poradnika do części gdzie jest opisana konfiguracja serwera VPN dodałem jeszcze poniższe opcje:

uci set openvpn.home.tls_auth='/etc/openvpn/ta.key 0'
uci set openvpn.home.data_ciphers='AES-256-GCM:AES-128-GCM:CHACHA20-POLY1305'
uci set openvpn.home.tls_version_min='1.2'
uci set openvpn.home.keepalive='10 120'
uci set openvpn.home.user='nobody'

Powyższe wg. mnie daje lepsze bezpieczeństwo połączonych klientów i nie pozwala na łączenie z TLS starszą niż 1.2

W moim przypadku wolałem wygenerować plik PEM oraz pozostałe klucze i certyfikaty za pomocą zainstalowanego kiedyś OpenSSL w wersji 3.6.1. Oczywiście można to zrobić również przy pomocy EasyRSA lub wg. sposobu Cezarego z poradnika. Wybór należy do Was.

Przy konfiguracji plików kryptograficznych dla serwera VPN użyłem komputera PC na którym wygenerowałem plik PEM oraz niezbędne certyfikaty i klucze, następnie skopiowałem całość do odpowiedniego folderu na routerze, gdzie był już skonfigurowany serwer VPN.

1. Jak wygenerować plik PEM (czyli zestaw parametrów kryptograficznych Diffie-Hellmana), klucze i certyfikaty:

Na PC użyłem Openssl w wersji 3.6.1 (jest już wersja nowsza 4.0.0)

mkdir C:\openvpn-pki
cd C:\openvpn-pki

a) Generowani pliku PEM

openssl dhparam -out dh2048.pem 2048

b) Opcja: przygotuj plik o nazwie openssl.cnf i wklej do niego poniższy kod

(Krok opcjonalny, ale zalecany aby wygenerowane klucze i certyfikaty miały X.509. Daje większe bezpieczeństwo przed atakami typu "Man in the middle". W przypadku dodatkowej konfiguracji warto do pliku *.ovpn dodać na końcu linijkę "remote-cert-tls server". Klient będzie wtedy weryfikować czy łączy się z prawdziwym serwerem czy fakeowym. W takim przypadku w logu klienta VPN nie będzie widoczne już ostrzeżenie o tym, że nie została włączona opcja sprawdzania certyfikatu serwera).

[req]
distinguished_name = req_distinguished_name
x509_extensions = v3_ca
prompt = no

[req_distinguished_name]
CN = OpenVPN-CA

[v3_ca]
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always,issuer
basicConstraints = critical, CA:true
keyUsage = critical, digitalSignature, cRLSign, keyCertSign

[server]
basicConstraints = CA:FALSE
keyUsage = critical, digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid,issuer

[client]
basicConstraints = CA:FALSE
keyUsage = critical, digitalSignature
extendedKeyUsage = clientAuth
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid,issuer

c) Klucz i certyfikat CA:

openssl genrsa -out ca.key 2048
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt -subj "/CN=OpenVPN-CA"

d) Klucz i certyfikat serwera VPN (albo klienta - patrz instrukcja pkt 4)

openssl genrsa -out server.key 2048
openssl req -new -key server.key -out server.csr -subj "/CN=OpenVPN-Server"
openssl x509 -req -days 3650 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt

i na koniec klucz TLS-auth i do tego potrzebny jest zainstalowany OpenVPN GUI

e) Klucz TLS

openvpn --genkey secret ta.key

gdyby nie działała ww. komenda spróbuj tak

& "C:\Program Files\OpenVPN\bin\openvpn.exe" --genkey secret ta.key

2. Kopiowanie kluczy na router do folderu /etc/openvpn/ gdzie jest już zainstalowany serwer OpenVPN

scp ca.crt server.crt server.key ta.key root@192.168.0.1:/etc/openvpn/

3. Kopiowanie zawartości pliku *.pem, *.crt i *.key

W moim przypadku skopiowałem sobie zawartość plików do pliku konfiguracyjnego openVPN (*.ovpn) i przekopiowałem gotowy plik konfiguracyjny do urządzenia, które będzie klientem VPN (w moim przypadku komputer PC). W Windows 11 plik *.ovpn trzeba przenieść do "\Users\Administrator\OpenVPN\config\".

4. Generowanie kluczy dla klientów VPN

W przypadku chęci konfiguracji na innych urządzeniach, które będą klientami trzeba wygenerować dedykowane klucze zgodnie z instrukcją z litery d). W miejsce "server" albo "OpenVPN-Server" podstaw dowolną nazwę np. iPhone czy Kazik.

Pozdrawiam smile