Openvpn

Aus Mikiwiki
Zur Navigation springen Zur Suche springen

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.

Heimbüro
Mobiler Client
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
192.168.100.0/24
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