OpenVPN
Überblick
OpenVPN leitet IP-Verbindungen durch unsichere Netze mithilfe kryptographisch gesicherter Tunnel. Die Nutzdaten werden mit SSL / TLS verschlüsselt, wodurch eine hohe Abhörsicherheit erzielt wird. Die OpenVPN-Software läuft als Hintergrundprozeß ("Daemon"), die Anbindung an den IP-Stack des jeweiligen Betriebssystemes wird durch einen Tunnel-Driver hergestellt.
Der Vorzüge von OpenVPN gegenüber PPTP oder IPsec sind Portabilität, offene Standards und einfache Konfiguration. Für folgende Systeme ist OpenVPN verfügbar:
- Linux: In den meisten Distributionen vorhanden.
- Windoze: GUI + Installer
- Mac OS X: Tunnelblick
Ein VPN besteht aus:
- Einem Server, der den Zugang zum virtuellen Netz kontrolliert und das Routing zwischen den Clients und Nicht-VPN-Netzen regelt,
- Mehreren Clients, die durch einen VPN-Tunnel mit dem Server kommunizieren. Mit Umweg über den Server ist so auch eine Client-zu-Client-Kommunikation möglich, sofern die Routing-Regeln des Servers dies zulassen.
Einrichtung
Für ein einfaches Client / Server-Setup wird benötigt:
- SSL-Zertifikate für alle Beteiligten. Um die kostengünstig (umsonst) und einfach zu erhalten, sei eine Anmeldung bei CaCert empfohlen.
- Ein Netzwerkplan für das VPN, um folgende Fragen zu klären:
- Welche LAN-Adressen (nach RFC 1918) sollen verwendet werden? TBD: Für Windoze gelten Ausnahmeregeln.
- Wer darf mit wem kommunizieren? Welches Routing und welche Firewall-Regeln werden dazu auf dem Server benötigt?
SSL-Certs
Um ein Cert zu erstellen, wird ein Key benötigt. Mit OpenSSL geht das so:
openssl genrsa -out vpn.key 2048
Anschließend wird für jeden Client und den Server ein CSR benötigt:
openssl req -new -key vpn.key -out client.csr
Außerdem braucht man noch das Root-Cert von CACert.
Server-Config
Noch nicht fertig
port 33469 proto udp dev tun0 ca /etc/ssl/certs/cacert.org.pem cert /etc/ssl/certs/vpn-server.crt key /etc/ssl/private/vpn.key dh dh1024.pem mode server tls-server ifconfig 10.0.0.1 10.0.0.2 route 10.0.0.0 255.0.0.0 push "route 10.0.0.1" user nobody group nogroup client-config-dir ccd ccd-exclusive keepalive 10 120 comp-lzo persist-key persist-tun status openvpn-status.log