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

Dieser 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 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.