Montag, 20. August 2012

Open-VPN Einrichtung



Sie sollten sich überlegen, ob Sie mit einer absoluten Verkapselung arbeiten wollen, um z.B. IPX Pakete zu transportieren oder um MS-Freigaben ohne Samba erreichen zu können, oder ob es ausreichend ist, wenn Sie einen Datentunnel aufbauen. Im ersten Fall werden Sie mit tap Devices arbeiten müssen, welche mittels einer Bridgefunktion auf die Netzwerkschnittstelle gemapt werden müssen. Im zweiten Fall arbeiten Sie mit tun Devices, welche ohne Bridging funktionieren und lediglich ein Routenupdate benötigen. Die Routing-Variante wird in der Regel empfohlen, da sie flexibler und einfacher vom Aufwand ist. Hier geht es um ein Routing-Beispiel inklusive Zertifikatserstellung und -verwendung.

 

Voraussetzungen

Sie sollten openvpn entweder aus dem Quellcode, oder aus einem Paket installiert haben. Die entsprechenden Abhängigkeiten (openssl, lzo und pam) sollten Sie erfüllen.

Vorbereitung

Nach der Installation ist das /etc/openvpn Verzeichnis leer. Sie finden in /usr/share/doc/packages/openvpn (oder /usr/share/doc/openvpn-2.0)das Verzeichnis easy-rsa. Dieses kopieren Sie nach /etc/openvpn, ebenso wie die client.conf bzw. die server.conf.

In /etc/openvpn/easy-rsa/2.0/ finden Sie diverse Scripte, die Sie benötigen um z.B. Zertifikate zu erstellen.



Erstellen der Zertifikate

Nachdem Sie in /etc/openvpn alle Vorbereitungen getroffen haben, sollten Sie das Serverzertifikat und die entsprechenden Clientzertifikate ausstellen. Ihr Server sollte zur Zertifikatsprüfung aus dem Internet erreichbar sein.

Bevor Sie die Scripte anwenden können, müssen Sie im Script vars einige Änderungen (KEY_COUNTRY, KEY_PROVINCE, KEY_CITY, KEY_ORG, und KEY_EMAIL ) vornehmen. Keines der Felder darf leer sein!

./vars

./clean-all

./build-ca




Das letzte Script erzeugt eine CA und startet openssl.



Nun erstellen Sie ein Serverzertifikat mit: ./build-key-server server

Die Zertifikate für Ihre Clients erstellen Sie mit:

./build-key client1

./build-key client2

./build-key client3




Abschließend erzeugen Sie die DH-Datei mit: ./build-dh



Ihre Zertifikate und Schlüssel finden Sie im keys Unterverzeichnis. Sie sollten die Zertifikate über sichere Wege an Ihre Clients verteilen. Welche Dateien auf welchen Rechner gehören entnehmen Sie der Tabelle. Sie sollten die Zertifikate und Schlüssel im /etc/openvpn Verzeichnis hinterlegen

 

Dateiname  Genutzt von Aufgabe    Geheim
ca.crt server & alle clients Root CA Zertifikat N
ca.key CA Zertifizierungsstelle Root CA Key J
dh{n}.pem server Diffie Hellman parameter N
server.crt server Server Zertifikat N
server.key server Server Key J
client1.crt client1 Client1 Zertifikat N
client1.key client1 Client1 Key J
client2.crt client2 Client2 Zertifikat N
client2.key client2 Client2 Key J
client3.crt client3 Client3 Zertifikat N
client3.key client3 Client3 Key J

Die Beispieldateien für die Konfiguration haben Sie bereits in /etc/openvpn. Diese sollten Sie nutzen und Sie anpassen.

Im Anhang finden Sie die Konfigurationsdateien einer funktionierenden VPN-Übung.

susi1 server.conf (gekürzt)

# listen on? (optional)

;local a.b.c.d

port 1194

proto udp

dev tun

ca ca.crt

cert server.crt

key server.key  # This file should be kept secret

dh dh1024.pem

server 10.8.0.0 255.255.255.0

ifconfig-pool-persist ipp.txt

push "route 10.8.0.0 255.255.255.0"

keepalive 10 120

comp-lzo

user nobody

group nobody

persist-key

persist-tun

verb 6

 



susi2 client.conf (gekürzt)

# Specify that we are a client and that we

# will be pulling certain config file directives

# from the server.

client



;dev tap

dev tun



proto udp

remote susi1 1194

resolv-retry infinite



# Downgrade privileges after initialization (non-Windows only)

user nobody

group nobody



# Try to preserve some state across restarts.

persist-key

persist-tun



ca ca.crt

cert client1.crt

key client1.key

;cipher x

comp-lzo

verb 3


 

Keine Kommentare:

Kommentar veröffentlichen