OpenVPN

  Debian, Linux

Serverkonfiguration

Für den Betrieb vom OpenVPN ist natürlich als erstes einmal ein OpenVPN Server notwendig, zu welchem sich die Clients verbinden. Für die Installation des OpenVPN Clients unter Debian ist folgender Befehl notwendig.

 Konfiguration

Bevor der Public Key erzeugt werden kann, muss die Datei vars angepasst. Diese sollte Standardmäßig im Verzeichnis /etc/openvpn/easy-rsa/2.0./ liegen.

Die Beispieldateien befinden sich nach der Installation im Pfad /usr/share/doc/openvpn/examples/easy-rsa/2.0/

Dort werden die folgenden Schalter, am Ende der Datei, angepasst.

 Initialisieren des Public Keys

Danach wird der Public Key initialsiert. (PKI).

 Generieren des Zertifikates

Im nächsten Schritt muss das Zertifikat und der Private Key generiert werden.

 

Diffie-Hellmann generieren

 

Es sollte an dieser Stelle folgende Ausgabe kommen:

Generating DH parameters, 1024 bit long safe prime, generator 2
This is going to take a long time

Hat man nun alle Schritte durchgfeührt sollten im Verzeichnis keys diverse Dateien angelegt worden sein.

  • ca.crt
  • ca.key
  • dh1024.pem
  • server.crt
  • server.key

Diese Dateien werden per Copy in das /etc/openvpn/ kopiert.

Der Server benötigt als letzten Schritt noch eine Konfigurationsdatei. Da wir kein Routing benötigen, sondern nur einen Roadwarrior machen wollen, sind push und route auskommentiert.

 

 Zertifikate widerrufen

Da es vorkommen kann, dass sich bestimmte Kunden nicht mehr einloggen sollen weil Sie eben nicht mehr Kunden sind oder sonst etwas passiert ist, gibt es die Möglichkeit Zertifikate zu widerrufen. Im Verzeichnis /etc/openvpn/easy-rsa/2.0/ gibt ein Skript revoke-full. Dieses bewirkt, dass Zertifikate abgelehnt werden. Dafür müssen folgendene Befehle ausgeführt werden.

Clientkonfiguration

Für die Verbindung zum Server 91.121.5.96 (f4c.at) wird eine OpenVPN Verbindung benötigt. Nach der Installation des OpenVPN Clients ist darauf zu achten, dass der OpenVPN Service in den Windows Diensten auf „Automatisch“ gestellt. Es werden dann automatisch alle VPN Verbindungen aufgebaut, die im Ordner „config“ liegen. Damit ist der Tunnel auch dann aktiv, wenn kein Benutzer am System angemeldet ist.

Hinweis: Für jede Verbindung wird ein eigene VPN-Adapter (TAP32 Adapter) benötigt.

Zertifikats Erstellung

Das OpenVPN auf dem f4c.at ist so eingerichtet, dass sich per SSL-Zertifikat authentifiziert wird. Um nun für einen neuen Client ein Zertifikat zu erstellen müssen folgenden Schritte abgearbeitet werden.
Umgebungsvariablen setzen

Damit sind die Standard Variablen für die Zertifikats Erstellung gesetzt. Um diese zu ändern, kann die Datei vars editiert werden.

Erstellung des Zertifikats

CLIENTNAME am besten ersetzen. Ich nehme als Beispiel immer sowas wie: f4c.at-tfoo. Damit weiß ich dann dass das Zertifikat für den Server f4c ist und für den Client tfoo

ACHTUNG! Niemals ./clean-all ausführen. Dieses Skript löscht alle Zertifikate!

Die nun folgenden Fragen können bis auf Locality Name und Organization Name mit Enter bzw Yes beantwortet werden. Ein Passwort muss nicht vergeben werden. Dieses würde bei jedem Connect zum Server abgefragt wird. Sind alle Fragen beantwortet, findet man den Key bzw. das Zertifikat unter:

 

Erzeugen der Konfigurationsdatei

Die Datei die für uns relevant ist, ist die client01.p12. Diese wird vom OpenVPN Client zum Verbindungsaufbau benötigt. Zu der *.p12 muss eine Config-Datei erzeugt werden, in der die entsprechenden Verbindungsparameter stehen. Beide Dateien werden später im config Verzeichnis vom OpenVPN Client beim Client abgelegt. Die Config-Datei sollte wie folgt aussehen:

Die Datei wird am besten als SERVERNAME-CLIENTNAME.ovpn abgespeichert.

ACHTUNG! Der Schalter pkcs12 muss auf die entsprechende client01.p12 und der Schalter remote auf den entsprechenden Server (z.B. 91.121.5.96 für f4c.at) angepasst werden.

OpenVPN iPhone Einrichtung

Apple benutzt PolarSSL und nicht openSSL daher brauchen wir für die OpenVPN Einrichtung auf dem iPhone ein angepasstes Config-File und die Zertifakte und Schlüssel Base64 Codiert (PEM-Files).

Als Grundlage für die iPhone-Config schaut euch den Punkt Erzeugen der Konfigurationsdatei an. Die client01.ovpn Datei muss wie folgt erweitert werden:

Die Zeile pkcs12 client01.p12 musst entfernt werden!

Im nächsten Schritt erzeugen wir die PEM-Files aus der client01.p12

Da ich nicht für jedes iPhone die drei Befehle ausführen will, hier ein kleines Skript welches die Files nacheinander automatisch erzeugt:

Die Keyfiles sollten standardmäßig im Verzeichnis /etc/openvpn/easy-rsa/2.0/keys liegen. Dort werden dann auch PEM-Files abgelegt.

Die PEM-Files zusammen mit dem Config-File z.B. per iTunes auf’s iPhone kopieren und fertig. Danach kann der Tunnel aufgebaut werden.

 

LEAVE A COMMENT