64 lines
3.6 KiB
Plaintext
64 lines
3.6 KiB
Plaintext
Um einen Tunnel zu [[Cthulhu|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/ 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/ 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.
|