21.3 OpenVPN 

Das Konzept des Virtual Private Networking (VPN) gibt dem Benutzer die Möglichkeit, vertrauliche Daten gesichert über ein per se unsicheres Netzwerk zu transportieren. Durch die Einrichtung eines sogenannten VPN-Tunnels gelangen die Daten (abhör)sicher vom Sender zum Empfänger und zurück. Unter Ubuntu lässt sich VPN leicht mit dem Paket openvpn realisieren.
OpenVPN ist Bestandteil der Ubuntu-Paketquellen. Seit der Version 2.0 kann das Programm auch als Server z. B. innerhalb eines Firmennetzes betrieben werden. Für den Privatanwender bietet sich der Einsatz in Verbindung mit den üblicherweise schwach abgesicherten WLAN-Netzen an. Im Folgenden sollen zwei prominente Beispiele vorgestellt werden.
WLAN per VPN-Tunnel
Zunächst soll das für Heimanwender interessante Beispiel besprochen werden, ein WLAN mit VPN-Tunnel abzusichern. Um Komplikationen bei der Konfiguration zu vermeiden, empfiehlt es sich, zunächst die WLAN-Verschlüsselung zu deaktivieren und sie nach dem erfolgreichen Einrichten des VVPN wieder zu aktivieren. Das folgende Planspiel geht von der folgenden Infrastruktur aus:
- Ein Laptop ist mit einem WLAN-Device wlan0 (IP: 192.168.0.104) ausgestattet.
- Das VPN-Device auf der Seite des Laptops wird mit der IP-Adresse 192.168.8.104 definiert.
- Im Netz befindet sich ein Server, der über einen Ethernet-Adapter (IP: 192.168.0.1) an den zentralen Router angeschlossen ist.
- Die IP-Adresse des VPN-Devices auf der Server-Seite wird als 192.168.8.1 definiert.
Schlüssel erzeugen
Zunächst muss auf dem Server ein Schlüssel erzeugt werden. VPN arbeitet zwar auch mit dem Konzept des privaten und öffentlichen Schlüssels, in privaten Netzen ist es jedoch am einfachsten, wenn Client und Server mit dem gleichen Schlüssel arbeiten. Mit folgendem Befehl wird der Schlüssel zunächst auf dem Server server$ erzeugt:
server$ sudo openvpn --genkey --secret \ /etc/openvpn/secret.key
Dieser Schlüssel muss nun auf sicherem Wege auf den Server befördert werden. Verwenden Sie dazu das Werkzeug scp. Beachten Sie, dass bei der ganzen Aktion mehrfach die Rechte der Datei umdefinieren müssen. Das Ganze geschieht unter Zuhilfenahme der jeweiligen Home-Verzeichnisse.
Auf dem Server verfahren Sie folgendermaßen:
server$ sudo cp /etc/openvpn/secret.key ~ server$ cd server$ sudo chmod a+r secret.key server$ sudo scp secret.key <Benutzer>@client:~
Auf dem Client befördern Sie den importierten Schlüssel in das Verzeichnis /etc/openvpn:
client$ cd client$ sudo cp secret.key /etc/openvpn
Damit wären die Schlüssel abgeglichen. Nun wird der VPN-Tunnel »gebohrt«.
Auf der Server-Seite geben Sie den folgenden Befehl ein:
server$ sudo openvpn --daemon --dev tun0 \ --remote 192.168.0.104 \ --ifconfig 192.168.8.1 192.168.8.104 \ --secret /etc/openvpn/secret.key
Auf der Client-Seite müssen Sie die IP-Adressen entsprechend anpassen:
server$ sudo openvpn --daemon --dev tun0 \ --remote 192.168.0.1 / --ifconfig 192.168.8.104 192.168.8.1 \ --redirect-gateway \ --secret /etc/openvpn/secret.key
Abbildung 21.1 Topologie eines VPN
Routing setzen
Der zusätzliche Parameter redirect-gateway sorgt dafür, dass auf dem Client jeglicher Datentransfer per Routing über den Tunnel geleitet wird.
Auf beiden Rechnern sollte in jedem Fall ein neues Netzwerk-Device zu finden sein:
server$ ifconfig ... tun0 Protokoll:UNSPEC Hardware Adresse 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet Adresse:192.168.8.1 P-z-P:192.168.8.104
Nachdem Sie per ping getestet haben, ob die Verbindung steht, können die üblichen WLAN-Schutzmechanismen (WEP-Key etc.) wieder aktiviert werden. Die beschriebene Situation ist in Abbildung dargestellt.
Per Internet auf den Heim-PC
Eine weitere Anwendungsmöglichkeit von VPN ist die sichere Verbindung aus dem Internet auf den heimischen Rechner. Da ein solcher Rechner vom Provider zumeist eine dynamische IP-Adresse zugewiesen bekommt, können Sie einen Dienst wie DynDNS (www.dyndns.org) in Anspruch nehmen. Auf dem Server soll nun der VPN-Dienst gestartet werden. Da dieser aber zunächst nicht die IP-Adresse des Clients kennt, fehlt bei der Konfiguration der Parameter remote:
server$ sudo openvpn --daemon --dev tun0 \ --ifconfig 192.168.8.1 192.168.8.104 \ --secret /etc/openvpn/secret.key
Nun wartet der Server darauf, dass sich der Client bei ihm meldet. Der VPN-Befehl auf dem Client sieht folgendermaßen aus:
server$ sudo openvpn --daemon --dev tun0 \ --remote server.dyndns.org \ --ifconfig 192.168.8.104 192.168.8.1 \ --redirect-gateway \ --secret /etc/openvpn/secret.key
In diesem Fall wurde also die bislang als bekannt vorausgesetzte IP-Adresse des Servers durch dessen DynDNS-Host-Adresse server.dyndns.org ersetzt.
| Mit VPN eine Firewall durchtunneln |
|
Mit der oben beschriebenen Methode zur Einrichtung eines VPN werden Sie in den meisten Firmennetzwerken und Internet-Cafés wenig Glück haben. Dort läuft der Netzwerkverkehr zumeist über eine Firewall, die für die UDP-Pakete, die VPN standardmäßig verwendet, undurchlässig ist. Durch einen kleinen Trick lassen sich aber auch derartige Firewalls aushebeln: Fügen Sie einfach auf der Client-Seite den Parameter |
| --proto tcp-client |
|
und auf der Server-Seite den Parameter |
| --proto tcp-server |
|
beim Aufruf von openvpn hinzu. Dadurch wird eine normale, browser-konforme TCP-Verbindung aufgebaut, die durch jegliche Firewall ungehindert durchkommt. Es ist müßig zu erwähnen, dass derartige Möglichkeiten den Administratoren schlaflose Nächte bereiten. |





Jetzt bestellen







