Kostenlose VPN-Lösung

OpenVPN mit Linux

16.04.2010
Von Jürgen Donauer

Community-Version der OpenVPN-Software auf einem Ubuntu-Server

Vor der Konfiguration müssen wir zum besseren Verständnis einige Variablen fix deklarieren. Der interne Linux-/Einwahl-Server soll die IP-Adresse 192.168.150.50 erhalten. Das Internet-Gateway ist 192.168.150.1. Bei der Wahl des Netzwerks sollten Sie keinen der im öffentlichen Raum meistgenutzten Adress-Pools bemühen, zum Beispiel 192.168.0.0, 192.168.1.0 oder 10.0.0.0, denn dies könnte zu Routing-Konflikten führen. Die externe IP-Adresse des Gateways hängt davon ab, was Ihnen der Provider zur Verfügung stellt. Diese externe Adresse sollte möglichst statisch sein. Ist das nicht der Fall, helfen Dienste wie zum Beispiel DynDNS weiter.

Erzeugung der Schlüssel

Nach einer Installation sollten Sie das Beispiel-Verzeichnis nach /etc/openvpn kopieren. Dies erleichtert die weitere Konfiguration: cp –R /usr/share/doc/openvpn/examples/ /etc/openvpn/. Danach wechseln Sie in das Verzeichnis /etc/openvpn/examples/easy-rsa/2.0 und passen die Datei vars an. Hier können Sie Schlüsselstärke und länderspezifische Angaben einstellen, die später im Master-Zertifikat (CA) verwendet werden.

Nun ist es Zeit, das eigentliche Zertifikat zu erstellen. Rufen Sie hierfür nacheinander die Befehle . ./vars, ./clean-allund ./build-caauf. Achten Sie darauf, dass der erste Befehl tatsächlich Punkt Leerzeichen Punkt Backslash vars geschrieben wird.

Nun erschaffen wir ein Zertifikat und einen privaten Schlüssel für den Server. Rufen Sie hierfür ./build-key-server servernameauf. Die Software wird ähnliche Fragen stellen wie bei der Generierung des CA. Am Ende signieren und bestätigen Sie die Zertifikatsanfrage. Als dritten Schritt erschaffen Sie den Schlüssel für die Clients. Dazu dient der Befehl ./build-key client. Je nach Anzahl der Clients können Sie diese Prozedur beliebig oft wiederholen. Der Parameter client muss logischerweise variieren. Das gilt auch für die Eingabe des Common Name. Wollen Sie passwortgeschützte Schlüssel erzeugen, verwenden Sie statt build-key den Befehl build-key-pass client.

Abschließend erzeugen Sie noch die Diffie-Hellman-Parameter via ./build-dh. Dies kann je nach Hardware einige Zeit in Anspruch nehmen.

Hier eine Übersicht der in diesem Kapitel erzeugten Schlüssel und deren Bedeutung.

Dateiname

Verwendet von

Verwendungszweck

Geheim?

ca.crt

Server + allen Clients

Root-CA-Zertifikat

Nein

ca.key

Schlüssel-signierendem Rechner

Root-CA-Schlüssel

Ja

dh<Zahl>.pem

Nur Server

Diffie-Hellman-Parameter

Nein

server.crt

Nur Server

Server-Zertifikat

Nein

server.key

Nur Server

Server-Schlüssel

Ja

client.crt

Nur Client

Client-Zertifikat

Nein

client.key

Nur Client

Client-Schlüssel

Ja

Zur Startseite