C3D2VPN/Cthulhu

Aus C3D2
Version vom 20. September 2006, 18:26 Uhr von Toidinamai (Diskussion | Beiträge) (rv: habe gerade Quatsch geschrieben)
Zur Navigation springen Zur Suche springen
Die druckbare Version wird nicht mehr unterstützt und kann Darstellungsfehler aufweisen. Bitte aktualisiere deine Browser-Lesezeichen und verwende stattdessen die Standard-Druckfunktion des Browsers.

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. Die up.sh wird nur gebraucht, wenn auch IPv6 verwendet werden soll. Weiterhin ist dafür eine OpenVPN ä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.