C3D2VPN/Cthulhu

Aus C3D2
Zur Navigation springen Zur Suche springen

Um einen Tunnel zu cthulhu.c3d2.de zu bauen, bitte mit toidinamai in Verbindung setzen und die folgenden Schritte ausführen:

SSL-Zertifikat-Request erzeugen

$ openssl req -new -out foo.csr -newkey rsa:4096 -keyout foo.key -nodes -sha1

Die Fragen von SSL beantworten, Felder können mit '.' leergelassen werden, nur CN (=Hostname) und Email sind notwendig. 'Extra'-Attribute sollten alle leer gelassen werden.

Den Request an toidinamai schicken

Aus dem Request generiert toidinamai dann das von der OpenVPN-CA unterschriebene Zertifikat. Der Request selbst ist öffentlich und enthält keine kryptographischen Geheimnisse. Nur die Request-Datei (foo.csr) schicken, der Key (foo.key) sollte geheim bleiben! Das erhaltene Zertifikat sollte in der Datei foo.crt gespeichert werden. Es ist ebenfalls nicht geheim.

Konfiguration herunterladen

Unter https://cthulhu.c3d2.de/~toidinamai/openvpn/cthulhu/ befinden sich das CA-Zertifikat für OpenVPN und Konfiguationsdatei-Templates. Empfiehlt sich, den Fingerprint des Zertifikates zu überprüfen:

$ openssl x509 -in cthulhu-OpenVPN-cacert.pem -noout -fingerprint 
SHA1 Fingerprint=35:74:BE:E5:14:B1:79:79:3F:D3:34:9A:15:0A:6E:B2:FF:6E:07:BE

In der config.template müssen nur die Dateinamen für Zertifikat und Key angepasst werden. Wenn auch IPv6 verwendet werden soll, muss eine OpenVPN-Version älter als 2.0.6 oder neuer als 2.1-beta12 notwending, da die anderen Versionen dem Server nicht erlauben, Umgebungsvariablen an den Client zu schicken. Dort fe80:foo in eine richtige, feste link-local-Adresse ändern. Am besten nimmt man eine von einer im gleichen Rechner eingebauten Netzwerkkarte. Diese Adresse dann toidinamai mitteilen.

Tunnel aufsetzen

Wo die Konfigurations-Dateien genau liegen müssen, ist von der verwendeten Distribution abhängig. Ein Beispiel bietet OpenVPN mit runit. Normalerweise müssen alle Dateien ins Verzeichnis /etc/openvpn oder ein Unterverzeichnis. Ein init-Skript sollte dann das Starten übernehmen. Wichtig: Log-Datei in der config angeben, falls nicht runit oder daemontools verwendet werden.

Quagga einrichten

Wenn der Tunnel steht, folgendes dem bgpd beibringen, z.B. mit vtysh:

router bgp xxxxx

neighbor 172.22.110.1 remote-as 64710
neighbor 172.22.110.1 interface vpn110

neighbor fe80::accb:c2ff:fe8e:9296 remote-as 64710
neighbor fe80::accb:c2ff:fe8e:9296 description cthulhu.c3d2.de
neighbor fe80::accb:c2ff:fe8e:9296 interface vpn110
no neighbor fe80::accb:c2ff:fe8e:9296 activate

address-family ipv6
neighbor fe80::accb:c2ff:fe8e:9296 activate
neighbor fe80::accb:c2ff:fe8e:9296 soft-reconfiguration inbound

Server-Konfiguration

Für die, die es interessiert, liegt die Konfiguration des Servers (ohne das SSL-Verzeichnis) unter http://cthulhu.c3d2.de/~toidinamai/openvpn/cthulhu-server/.

Das SSL-Zertifikat wurde genau so, wie von den Peers erzeugt, die CA selber ist auf einem anderen Rechner.

dh1024.pem wurde wie in der OpenVPN-Manpage angegeben mit

openssl dhparam -out dh1024.pem 1024

erzeugt.

Für jeden Client muss eine eigene Datei im Unterverzeichnis clients/ eine Datei erstellt werden, in die üblicherweise die Anweisungen kommen, die ihm seine IPv4- und IPv6-Adresse zuweisen (siehe Beispiel). Der Dateiname muss dabei dem Common-Name im SSL-Zertifikat des Clients entsprechen.