Statische IP-Adressen für OpenVPN-Clients zuweisen
OpenVPN hat die Möglichkeit, Clients bestimmte IP-Adressen aus dem definierten IP-Pool zuzuweisen. Um dies zu erreichen, verwendet es drei Arten von Algorithmen zur Auswahl von Client-IP-Adressen. Dazu gehören in der Reihenfolge ihrer Verwendung:
- Verwendung von
--client-connect script
. Dies beinhaltet die Ausführung des angegebenen Skripts, das eine Datei mit statischen IP-Adressen auf dem Server generiert, wenn ein Client eine Verbindung herstellt. Diese Methode ist normalerweise die erste Wahl in Betracht gezogen werden. - Verwendung von
--client-config-dir
. Dabei wird eine Datei verwendet, die statische IP-Adressen für die Clients gemäß ihrem Client-Zertifikat-Common-Name (CN) enthält (zweite Wahl ). - Verwendung von
--ifconfig-pool
für die Zuweisung für dynamische IP (letzte Wahl ).
Weitere Informationen finden Sie unter man openvpn
.
In diesem Handbuch verwenden wir die zweite Option, bei der wir unseren OpenVPN-Server so konfigurieren, dass er eine bestimmte Datei liest, die die allgemeinen Namen der Clients und die zugeordneten IP-Adressen enthält. Dadurch wird sichergestellt, dass einem verbindenden Client eine statische IP-Adresse basierend auf dem allgemeinen Namen zugewiesen wird, der auf seinem Client-Zertifikat definiert ist.
In unserem vorherigen Leitfaden haben wir die Installation und Konfiguration eines OpenVPN-Servers auf einem CentOS 8-System behandelt.
Erstellen Sie eine Datei zum Speichern statischer IP-Adressen
Die Verwendung des client-config-dir
Option, erfordert, dass die den sich verbindenden Clients zuzuweisenden statischen IP-Adressen in einer Datei gespeichert werden, die vom OpenVPN-Server gelesen werden kann.
Öffnen Sie daher die Konfigurationsdatei des OpenVPN-Servers /etc/openvpn/server/server.conf
, und legen Sie Ihren Pfad zur statischen IP-Zuweisungsdatei als Wert für client-config-dir
Parameter.
vim /etc/openvpn/server/server.conf
... # EXAMPLE: Suppose you want to give # Thelonious a fixed VPN IP address of 10.9.0.1. # First uncomment out these lines: client-config-dir /etc/openvpn/ccd ...
In dieser Demo legen wir den Pfad zum Speichern der Zuweisungsdatei für statische/feste IP-Adressen fest:/etc/openvpn/ccd
. Nun, ich habe versucht, den Standardpfad /etc/openvpn/server/ccd zu verwenden, aber es führte zu folgendem Fehler:
Could not access file 'ccd/koromicha': Permission denied (errno=13) Could not access file 'ccd/DEFAULT': Permission denied (errno=13)
Als Umgehung haben wir uns entschieden, einen anderen Pfad wie oben zu verwenden.
OpenVPN-Clients statische IP-Adressen zuweisen
Für jeden OpenVPN-Client, dem Sie eine statische IP-Adresse zuweisen möchten, müssen Sie den allgemeinen Namen aus diesem spezifischen Client-Zertifikat extrahieren.
In unserer Demo haben wir zwei OpenVPN-Clients erstellt, koromicha und johndoe . Um die allgemeinen Namen aus dem Clientzertifikat zu extrahieren, verwenden Sie openssl
Befehl wie unten gezeigt. Achten Sie darauf, die Client-Zertifikate zu ersetzen .
openssl x509 -subject -noout -in /etc/openvpn/client/koromicha/koromicha.crt
subject=CN = koromicha
openssl x509 -subject -noout -in /etc/openvpn/client/johndoe/johndoe.crt
subject=CN = johndoe
Sobald Sie die gemeinsamen Namen für die Clients haben, können Sie ihnen mit ifconfig-push
Möglichkeit. Zum Beispiel, um den Client mithilfe des Zertifikats mit koromicha
als allgemeiner Name eine IP-Adresse, 10.8.0.50
und Client, der das Zertifikat mit johndoe
als CN eine IP-Adresse von 10.8.0.60
, so erfolgt die Zuweisung;
echo "ifconfig-push 10.8.0.50 255.255.255.0" > /etc/openvpn/ccd/koromicha
echo "ifconfig-push 10.8.0.60 255.255.255.0" > /etc/openvpn/ccd/johndoe
Beachten Sie, dass die Zuweisung der statischen IP-Adressen von der Topologie abhängt, die Sie für Ihren OpenVPN-Server konfiguriert haben. In unserem Fall setzen wir die Topologie auf subnet;
# Network topology ... topology subnet
Lesen Sie mehr über OpenVPN-Adressierungskonzepte.
Starten Sie OpenVPN Server neu;
systemctl restart [email protected]
Überprüfen Sie immer die Protokolle;
tail -f /var/log/openvpn/openvpn.log
Überprüfen Sie die statische IP-Adresszuweisung auf OpenVPN-Clients
Angenommen, Sie haben bereits die entsprechende Client-OpenVPN-Konfigurationsdatei auf Ihren Clients, initiieren Sie die Verbindung und überprüfen Sie die IP-Adresszuweisung.
sudo openvpn johndoe.ovpn
Überprüfung der zugewiesenen IP-Adresse;
ip add show tun0
8: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100 link/none inet 10.8.0.60/24 brd 10.8.0.255 scope global tun0 valid_lft forever preferred_lft forever inet6 fe80::ea62:fbae:5b45:2d78/64 scope link stable-privacy valid_lft forever preferred_lft forever
Auf dem anderen Client:
ip add show tun0
12: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100 link/none inet 10.8.0.50/24 brd 10.8.0.255 scope global tun0 valid_lft forever preferred_lft forever inet6 fe80::c928:c76d:fbd4:6c6a/64 scope link stable-privacy valid_lft forever preferred_lft forever
Überprüfen der Konnektivität zwischen den beiden Clients;
ping 10.8.0.60 -c 3
PING 10.8.0.60 (10.8.0.60) 56(84) bytes of data. 64 bytes from 10.8.0.60: icmp_seq=1 ttl=64 time=4.67 ms 64 bytes from 10.8.0.60: icmp_seq=2 ttl=64 time=3.86 ms 64 bytes from 10.8.0.60: icmp_seq=3 ttl=64 time=4.05 ms --- 10.8.0.60 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2003ms rtt min/avg/max/mdev = 3.864/4.196/4.670/0.351 ms
Das ist es. Wir sind am Ende unserer Anleitung zum Zuweisen statischer IP-Adressen für OpenVPN-Clients angelangt.
Verwandte Tutorials
Verbinden Sie sich mit OpenVPN mit Network Manager unter CentOS 8/Ubuntu 18.04
Installieren und konfigurieren Sie den OpenVPN-Client unter CentOS 8/Ubuntu 18.04
Konfigurieren Sie den strongSwan VPN-Client auf Ubuntu 18.04/CentOS 8