Openvpn
Openvpn (auch: OpenVPN) ist eine umfassende, plattformübergreifende Virtual Private Network-Technik. Die Verschlüsselung funktioniert auf der Grundlage von SSL und TLS. Diese Kryptobibliotheken gehören im Internet zum Standard, wenn es um die Verschlüsselung von Webseiten (HTTPS) oder von verschlüsselten IMAP-Sitzungen (IMAPS) geht.
Openvpn verbindet die Vorteile von Ipsec- und SSL-VPNs. Netze werden voll transparent über einen einzigen Port verbunden. Der benötigte VPN-Client steht für viele Betriebssysteme zur Verfügung. Es werden mehrere VPN-Topologien unterstützt und es kann mit Pre-shared Keys oder mit auf Zertifikat basierender Public Key-Verschlüsselung gearbeitet werden.
Bereits eine vierzeilige Konfigurationsdatei auf Seiten des Servers und des Clients reichen für den Betrieb eines echten VPNs mit Openvpn aus.
Konfiguration
Openvpn verwendet zwischen den beteiligten Geräten ein eigenes "Tunnel-Netzwerk", dessen Adressraum sich nicht mit den tatsächlichen IP-Adressen der Rechner überschneiden darf. Eine Adresse aus diesem Tunnel-Netzwerk bindet Openvpn dann auf eine virtuelle Netzwerkschnittstelle ("tun") des Rechners. Unter dieser Adresse können die von Openvpn bereitgestellten Dienste genutzt werden.
Beispiel
Die Beispielkonfiguration zeigt ein typisches Heimbüro / Road-Warrior-Szenario mit Openvpn 2.0.5. Es wird genau ein Client mit einem Server verbunden (Peer-to-Peer).
Das Heimbüro verfügt über einen DSL-Anschluss mit NAT-Router und dynamischer IP-Adresse. Der Router registriert bei der Einwahl die dynamische IP-Adresse bei einem Dyndns-Anbieter. So ist der Router im Internet über den bei Dyndns registrierten Namen erreichbar. Hier verwenden wir den Namen "myopenvpn.dyndns.org". Der Linux-Rechner im Heimbüro stellt einen Mailserver (SMTP, IMAP) und Dateifreigaben für Microsoft Windows über Samba bereit. Diese Dienste sollen künftig auch über das Notebook mit Microsoft Windows XP von unterwegs über ISDN-Einwahl ins Internet genutzt werden.
Netzwerk im Heimbüro | 192.168.1.0/24 | ||
DynDNS-Name | myopenvpn.dyndns.org | ||
IP-Adresse des Linux-Rechners | 192.168.1.5 | dynamisch zugewiesen | IP-Adresse des Notebooks |
Tunnel-Netzwerk | Tunnel-Netzwerk | ||
Tunnel-Schnittstelle-Adresse | 192.168.100.1 | 192.168.100.2 | Tunnel-Schnittstelle-Adresse |
Linux-Rechner LAN NAT-Router Internet Heimbüro ---------------------- ------------------------ ---------------------- | eth: 192.168.1.5 |<--- 192.168.1.0.24 --->| myopenvpn.dyndns.org |<--- 192.168.100.0/24 --->| eth: dynamisch | | | ------------------------ | | | | | | | tun: 192.168.100.1 |<-------------------------- 192.168.100.0/24 ---------------------------->| tun: 192.168.100.2 | ---------------------- Tunnel ----------------------
1. Vorbereitung des Routers. Es muss sichergestellt sein, dass der Linux-Server vom Internet aus auf dem Openvpn-Port (standardmässig 5000/UDP) erreichbar ist. DSL-Router verbinden das LAN über NAT mit dem Internet, die privaten Adressen im LAN sind so aus dem Internet nicht erreichbar. Damit das dennoch funktioniert, muss auf dem VPN-Server im LAN eine Portweiterleitung eingerichtet werden. Manche Router bezeichnen die Portweiterleitung zu einem internen Gerät auch als "NAT", "virtueller Server" oder "Exposed host". Als Weiterleitungsziel wird die IP-Adresse des Linux-Rechners 192.168.1.5 auf Port 5000/UDP eingetragen.
2. Auf dem Linux-Rechner wird das zur Distribution passende Openvpn-Paket installiert.
3. Auf dem Linux-Rechner wird als Benutzer "root" der Pre-shared Key "myvpn.key" erzeugt.
# cd /etc/openvpn
# openvpn --genkey --secret myvpn.key
4. Auf dem Linux-Rechner wird die Konfigurationsdatei für die VPN-Verbindung erstellt.
# vi /etc/openvpn/myvpn.conf dev tun ifconfig 192.168.100.1 192.168.100.2 secret /etc/openvpn/myvpn.key port 5000
5. Auf dem Linux-Rechner wird die Verbindung gestartet, danach lauscht der Rechner an Port 5000/UDP auf eingehende Verbindungen.
# openvpn --config myvpn.conf
6. Als Microsoft Windows-Anwender kann das Openvpn GUI von Matthias Sundman verwendet werden. Zusätzlich wird die deutsche Lokalisierung heruntergeladen.
- Nach Abschluss der Installation wird Openvpn im Systemtray mit rechtem Mausklick beendet.
- Die Lokalisierungsdatei wird unter dem Namen "openvpn-gui.exe" ins Verzeichnis "c:\programme\openvpn\bin" kopiert.
- Der Schlüssel wird als "vpn-key.txt" ins Verzeichnis "c:\programme\openvpn\config" kopiert.
- Im Verzeichnis "c:\programme\openvpn\config" wird die Datei "myvpn.openvpn" erstellt und darin folgendes eingetragen.
remote myopenvpn.dyndns.org dev tun ifconfig 192.168.100.2 192.168.100.1 secret vpn-key.txt port 5000
- Nun kann eine Verbindung mit dem Internet hergestellt und im Systemtray mit der rechten Maustaste im Symbol "OpenVPN" auf "Verbinden" geklickt werden. Openvpn meldet dann auf beiden Seiten "Initialization Sequence Completed".
- Falls unter Microsoft Windows andere Zugangsdaten als am Linux-Rechner verwendet werden, so fragt Samba nach dem Benutzernamen und Kennwort für die Freigabe. Beim Anlegen der Samba-Freigabe in der Datei "smb.conf" muss darauf geachtet werden, dass die Direktive "hosts allow" Verbindungen aus dem VPN erlaubt. Für das Beispiel mit der folgenden Zeile.
hosts allow = 192.168.1.0/24 192.168.100.0/24
- Je nach dem muss man Samba auch an der Tunnel-Schnittstelle lauschen lassen.
interfaces = 192.168.1.0/24 192.168.100.0/24
- Zur Nutzung von SMTP und IMAP muss im Mail-Client einfach die IP-Adresse 192.168.100.1 als Posteingangs- und Postausgangs-Server eingetragen werden.
Weblinks
Herausgeber | Sprache | Webseitentitel | Anmerkungen |
---|---|---|---|
Wikipedia | ger | OpenVPNwbm | Enzyklopädischer Artikel |