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