C3D2VPN/Cthulhu: Unterschied zwischen den Versionen
(3 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 12: | Zeile 12: | ||
Der Request selbst ist öffentlich und enthält keine kryptographischen Geheimnisse. Nur die Request-Datei (foo.csr) | 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 | schicken, der Key (foo.key) sollte geheim bleiben! Das erhaltene Zertifikat sollte in der Datei foo.crt | ||
gespeichert werden. Es ebenfalls nicht geheim. | gespeichert werden. Es ist ebenfalls nicht geheim. | ||
=== Konfiguration herunterladen === | === Konfiguration herunterladen === | ||
Zeile 44: | Zeile 44: | ||
neighbor fe80::accb:c2ff:fe8e:9296 activate | neighbor fe80::accb:c2ff:fe8e:9296 activate | ||
neighbor fe80::accb:c2ff:fe8e:9296 soft-reconfiguration inbound | neighbor fe80::accb:c2ff:fe8e:9296 soft-reconfiguration inbound | ||
Da das Tunnel-Interface von cthulhu im TAP-Modus (Ethernet) arbeitet, müssen beide Protokolle, IPv4 und IPv6, | |||
getrennt konfiguriert werden, da sonst die Next-Hop-Berechnung nicht funktioniert. | |||
= Server-Konfiguration = | = Server-Konfiguration = |
Aktuelle Version vom 20. Dezember 2006, 12:30 Uhr
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
Da das Tunnel-Interface von cthulhu im TAP-Modus (Ethernet) arbeitet, müssen beide Protokolle, IPv4 und IPv6, getrennt konfiguriert werden, da sonst die Next-Hop-Berechnung nicht funktioniert.
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.