Dieser Artikel beschreibt die Konfiguration von OpenVPN auf einem Linux-System (z. B. Debian) mittels statischen Schlüsseln.
Die Methode ein VPN mit statischen Schlüsseln aufzubauen ist einfach zu realisieren und zu Verwalten. Es gibt aber auch ein paar Nachteile gegenüber dem dynamischen Authentifizierungsverfahren.
openvpn inklusive aller AbhängigkeitenDer statische Schlüssel kann mit folgendem Befehl erzeugt werden:
$ openvpn --genkey --secret static.key
Diese Schlüssel müssen dann auf den Server und auf den/die Clients kopiert werden.
Die Konfigurationsdate am Server kann in etwa dieses Aussehen haben:
dev tun ifconfig 10.0.0.1 10.0.0.2 secret static.key
Es wird empfohlen die Konfigurationdatei in das Verzeichnis /etc/openvpn zu kopieren und mit dem Hostnamen des Clients zu benennen. Alle Konfigurationsateien in diesem Verzeichnis werden ausgeführt, wenn OpenVPN als Dienst gestartet wird.
remote <server-address> dev tun ifconfig 10.0.0.2 10.0.0.1 secret static.key
Um die Verbindzung zum VPN-Server herstellen zu können muss am Firewall das UDP Port 1194 freigeschaltet werden.
Weiters muss am lokalen Firewall das neu erstellte Interface TUN0 für externe Verbindungen zugelassen sein.
Zum testen der Verbindung kann der OpenVPN-Tunnel manuell, mit dem folgenden Befehl gestartet werden:
$ openvpn <config-file-name>
Dieser Befehl muss am Server und am Client eingegeben werden (in dieser Reihenfolge).
Durch ein ping auf die jeweils andere IP-Nummer des VPN-Tunnels kann dann überprüft werden ob die Kommunikation funktioniert.
In diesem Beispiel wird davon ausgegangen, dass das Serversubnetz die Netzwerkadresse 192.168.20.0 und die Subnetzmaske 255.255.255.0 hat.
Um mit dem Client auf das Subnetz in dem sich der Server Befindet zugreifen zu können, muss der folgende Eintrag in die Konfigurationsdatei am Client hinzugefügt werden:
route 192.168.20.0 255.255.255.0
Falls der OpenVPN-Server nicht gleichzeitig der Gateway des Netzwerks ist, muss am Gateway eine Route definiert werden, welche die IP-Adresse 10.0.0.2 an den OpenVPN-Server weiterleitet.
Um OpenVPN als Dienst starten zu können muss in den Konfigurationsdateien am Server und/oder am Client folgendes in die Konfigurationsdatei hinzugefügt werden:
user nobody group nobody daemon
Der Dienst wird mit dem Befehl
$ /etc/init.d/openvpn start
gestartet. Dadurch werden alle .conf-Dateien im Verzeichnis /etc/openvpn automatisch ausgeführt und die jeweilige VPN-Verbindung wird aufgebaut.
Diskussion