OPENVPN with User-Authentication
Zur Navigation springen
Zur Suche springen
Schaubild
Install
- apt install openvpn
Server
DH-Key erstellen
- cd /etc/openvpn
- openssl dhparam -out dh2048.pem 2048
Selbstsigniertes Zertifikat
Folgende Dateien werden benötigt:
| Datei | Pfad |
|---|---|
| Zertifikat der Zertifizierungsstelle | /etc/openvpn/ca.crt |
| Zertifikat des Servers | /etc/openvpn/public.crt |
| Privater Schlüssel des Servers | /etc/openvpn/private.key |
Umbenennen
- mv fw.*.crt public.crt
- mv fw.*.key private.key
Server Config
- vim /etc/openvpn/server/server.conf
# Router Modus dev tun # Protokoll proto udp # Port port 1194 # Starten als Server mode server tls-server # Subnet und kein Punkt-zu-Punkt-Netz topology subnet # Transit-Netz server 172.20.2XX.0 255.255.255.0 # Pushs an die Clients push "route 172.26.2XX.0 255.255.255.0" push "route 10.88.2XX.0 255.255.255.0" push "route 10.2XX.1.0 255.255.255.0" push "dhcp-option DOMAIN it2XX.int" push "dhcp-option DNS 10.88.2XX.21" # Symmetrische Verschlüsselung data-ciphers AES-256-GCM:AES-128-GCM:CHACHA20-POLY1305:AES-256-CBC # Maximale Transmit Unit link-mtu 1542 # Keepalive - erkennt getrennte Clients keepalive 10 120 # Clients können sich untereinander erreichen client-to-client # Maximale Anzahl Clients max-clients 150 # Log Level verb 3 # Diffie-Hellman Parameter dh /etc/openvpn/dh2048.pem # Zertifikat der Zertifizierungsstelle ca /etc/openvpn/ca.crt # Zertifikat des Servers cert /etc/openvpn/public.crt # Privater Schlüssel des Servers key /etc/openvpn/private.key # Clients haben kein Zertifikat - Authentifizierung via PAM verify-client-cert none username-as-common-name # Authentifizierung gegen PAM plugin /usr/lib/x86_64-linux-gnu/openvpn/plugins/openvpn-plugin-auth-pam.so /etc/pam.d/login
Manueller Start
- openvpn --config /etc/openvpn/server/server.conf
- Erfolgreich gestartet wenn folgende Zeile erscheint
Initialization Sequence Completed
Automatischer Start
- nftables startet normalerweise vor openvpn — das tun0-Interface existiert dann noch nicht.
nftables durch openvpn starten lassen
- systemctl edit openvpn-server@server.service
[Service] ExecStartPost=/usr/sbin/nft -f /etc/nftables.conf
- systemctl daemon-reload
- systemctl enable openvpn-server@server.service --now
Kontrolle
- ss -lnup | grep 1194
