Config P2P
Aus OpenVPN Wiki
Inhaltsverzeichnis |
Einleitung
Diese Anleitung soll helfen um eine einfache Peer to Peer Lösung mittels OpenVPN zu realisieren. Diese Variante ist nicht besonders sicher und eignet sich nur für Ad-Hoc Verbindungen.
Hinweis: Hierbei geht es lediglich um eine einfache gesicherte PC <-> PC Verbindung.
Achtung: Sobald jemand in den Besitz des Pre-Shared Keys kommt, gilt die Verbindung als kompromittiert. Jeder bisherige Datenstrom sowie alle zukünftige sind dadurch gefährdet. Wer sensible Daten übertragen möchte, sollte lieber ein PKI System mit Zertifikaten nutzen.
Installation von OpenVPN auf den Peers
siehe Install_Linux bzw. Install_Windows
Laden des TUN-Drivers (nur Linux)
Der Kernel muss ein entsprechendes Modul bereitstellen (tun.o bzw. tun.ko) oder TUN-Support einkompiliert haben. Danach kann man es als root einfach mit folgendem Befehl laden:
root@erde# modprobe tun
Erzeugen eines Pre-Shared Keys
Der Preshared Key wird nur einmal erzeugt und dann auf den anderen Rechner kopiert.
Windows: In einer CMD-Shell ins OpenVPN Verzeichnis wechseln (wo sich die openvpn.exe befindet). Danach folgenden Befehl ausführen:
openvpn --genkey --secret static.key
Linux/Unix: Analog zu oben.
Alternative
Eine leere Textdatei erzeugen und eine beliebige Passphrase (möglichst lange) hineinschreiben. Aus Sicherheitsgründen ist jedoch obige Variante zu empfehlen. Der Austausch der Passphrase ist natürlich leichter möglich (z.B. per Telefon) als bei dem zufällig generierten Schlüssel. OpenVPN erzeugt automatisch einen Hash über den Inhalt der Datei und verwendet diesen als Key.
Öffnen des benötigten Ports der Firewall
Steht der Server hinter einer Firewall/einem Router so müssen dort der entsprechende Port auf den Server weitergeleitet werden. Der Standardport von OpenVPN ist 1194/UDP.
Anpassen der Konfigurationsdateien
Konfigurationsdatei für den wartenden Peer:
mode p2p port 1194 # Wir horchen auf Port 1194 dev tun # evtl. tun0 unter Linux proto udp # Protokoll UDP, für TCP: proto tcp-server ifconfig 10.5.0.1 10.5.0.2 # Lokale IP <-> Remote IP # Hier den Pfad anpassen um auf den erstellten Key zu verweisen secret static.key ping 10 # Sendet alle 10 Sekunden einen Ping an die Gegenstelle ping-restart 180 # Nach 3 Minuten ohne Pings von der Gegenstelle neuverbinden ping-timer-rem # Erst nachdem wir einen anderen Peer haben ping-restart zulassen verb 3 # Zum Debugging erhöhen mute 50 # Zum Debugging auskommentieren
Konfigurationsdatei für den verbindenden OpenVPN-Peer:
mode p2p remote my-openvpn-server.dyndns.com 1194 # Hostname/externe IP des anderen Peer, Port entsprechend anpassen proto udp # Protokoll UDP, für TCP: proto tcp-client dev tun # evtl. tun0 unter Linux ifconfig 10.5.0.2 10.5.0.1 # Lokale IP <-> Remote IP # Hier den Pfad anpassen um auf den erstellten Key zu verweisen secret static.key ping 10 # Sendet alle 10 Sekunden einen Ping an die Gegenstelle ping-restart 180 # Nach 3 Minuten ohne Pings von der Gegenstelle neuverbinden ping-timer-rem # Erst nachdem wir einen anderen Peer haben ping-restart zulassen verb 3 # Zum Debugging erhöhen mute 50 # Zum Debugging auskommentieren
Testen der Verbindung
Ein Ping sollte sowohl von 10.5.0.1 nach 10.5.0.2 als auch umgekehrt möglich sein. Anderenfalls blockt eine Firewall den Ping.
