Geschützter Tunnel
Sichere WLAN-Vernetzung mit verschlüsseltem OpenVPN-Tunnel
Bei einem Wireless-LAN genügt es, wenn ein Angreifer mit seinem Laptop vor dem Grundstück des Opfers steht. Schon finden alle Datenpakete den Weg über die WLAN-Karte in das Notebook des Bösewichts. Fast so, als hätte das Opfer an der nächsten Bushaltestelle eine Netzwerkdose montiert und gehofft, dass sich niemand einklinkt. Besonders in Großstädten ist das Risiko auch für Privatanwender sehr hoch. So genannte Wardriver sind auf der Suche nach WLANs, um den Internetzugang zu schnorren, Daten abzuhören oder den internen Server zu hacken und lahm zu legen.
Während bei drahtgebundenen Netzwerken ein Angreifer Zugang zu einer Netzwerkdose oder zum Kabel braucht, lässt sich ein WLAN nicht durch Mauern und Zäune aufhalten. Um die Daten dennoch zu schützen, gibt es seit der Anfangszeit der drahtlosen Netze ein Verfahren namens "Wireless Equivalent Privacy". WEP sollte eine Sicherheit bieten, die der drahtgebundener Netze gleicht. Dazu nutzt es einen eigenen Verschlüsselungsalgorithmus. Zunächst waren Schlüssellängen von 40 Bit vorgesehen, heutige Geräte arbeiten mit 128 Bit. Doch der verwendete Algorithmus ist schwach: 40-Bit-Schlüssel sind in wenigen Minuten zu knacken, selbst die 128-Bit-Keys halten einem Angriff nur wenige Tage stand. WEP bietet also kaum Schutz.
Verschlüsselung
Abhilfe bringt ein Virtuelles Privates Netz (VPN), das alle Daten entgegen nimmt, verschlüsselt, drahtlos überträgt und am anderen Ende wieder auspackt. Ein VPN nutzt das herkömmliche WLAN, sieht für den Client aber aus wie ein zusätzliches Netz – eben virtuell. Abbildung 1 verdeutlicht das Prinzip anhand des VPN-Pakets OpenVPN [1]: Laptop und Desktop sind über ein WLAN miteinander verbunden. Im drahtlosen Netz sind beide über ihre reale IP-Adresse zu erreichen. Das VPN gibt Laptop und Desktop je eine zusätzliche IP-Adresse. Alle Daten, die über die virtuellen Adressen gesendet werden, verpackt das VPN und sendet sie an die reale IP des Gegenübers. Der Empfänger packt die Daten wieder aus und tut so, als ob sie über seine virtuelle Adresse hereingekommen wären. Dadurch entsteht ein Tunnel zwischen Laptop und Desktop.
Zusätzliche Firewall-Regeln sorgen dafür, dass beide Rechner nur die Daten annehmen, die durch den Tunnel gekommen sind. Pakete, die ein Angreifer direkt in das WLAN einschleust, haben damit keine Chance.
Das VPN benutzt kryptographische Verfahren, um den Tunnel zu schützen. Im Gegensatz zum unsicheren WEP kommen dabei bekannte und geprüfte Algorithmen zum Einsatz, die ein hohes Maß an Sicherheit bieten. Der Tunnel schützt damit die Daten, die durch ihn geleitet werden, vor neugierigen Blicken. Er stellt auch sicher, dass sich niemand als berechtigter Laptop ausgeben und ebenfalls durch den Tunnel senden kann – die Tunnelwände halten dicht.
OpenVPN
Das VPN-Prinzip wird von verschiedenen Protokollen, Produkten und Projekten umgesetzt. Eine stabile und einfache Umsetzung, die ohne Eingriff in den Kernel oder den IP-Stack auskommt, ist OpenVPN. Es sammelt an beiden Enden des Tunnels die Datenpakete, die für die Gegenseite bestimmt sind. Dann verschlüsselt es sie mithilfe eines lokal hinterlegten Schlüssels und sendet die so geschützten Pakete zur anderen Seite. Diese packt die Daten aus und prüft die Herkunft. Nur Daten, die mit dem richtigen (nur den beiden Seiten bekannten) Schlüssel verpackt wurden, werden ausgepackt und weitergeleitet, andere verworfen. So tunneln Datenpakete in sicheren Containern durch ein Meer der Unsicherheit.
Das folgende Beispiel geht davon aus, dass das drahtlose Netz über wlan0 angebunden ist. Der Desktop-Rechner hat zusätzliche eine herkömmliche, drahtgebundene Netzwerkkarte, die mit eth0 angesprochen wird. Über dieses Ethernet sind andere Rechner im heimischen Netz sowie das Internet zu erreichen.
Installation
Um OpenVPN zu installieren, holt man sich am besten von [1] das Source-Paket openvpn-1.3.1.tar.gz, packt es aus, übersetzt und installiert es (als Root).
tar -xvzf openvpn-1.3.1.tar.gz cd openvpn-1.3.1 ./configure --disable-lzo make make install
Der Configure-Aufruf ist hier mit dem Parameter --disable-lzo angegeben, der schaltet die Kompression ab. Alternativ kann man auch die LZO-Bibliothek [3] installieren. Auf jeden Fall nötig ist die OpenSSL-Bibliothek, zusammen mit den Entwickler-Dateien. Bei SuSE sind das zwei getrennte Pakete: openssl und openssl-devel.
Wer Debian benutzt, hat es leichter. Ihm genügt folgender Aufruf, um OpenVPN zu installieren:
apt-get install openvpn
Die OpenVPN-Entwickler stellen auch RPM-Pakete für Red Hat 7.2 und 7.3 zur Verfügung.
TUN-Device
Das Tunnel-Device ist in aktuellen Kernel bereits enthalten, für ältere Versionen ist das Paket auf [2] erhältlich. Wer den aktuellen Kernel selbst übersetzt, findet in make xconfig das TUN-Modul in der Sektion "Network device support" unter dem Namen "Universal TUN/TAP device driver support".
Das Modul lässt sich auch einzeln nachträglich übersetzen und nachinstallieren, ohne den ganzen Kernel auszutauschen. Nach dem Konfigurieren des Kernels genügt:
make modules make modules_install
Nun muss noch das Device-File /dev/net/tun angelegt werden. Falls das Verzeichnis /dev/net/ noch nicht vorhanden ist: mkdir /dev/net/. Dann noch das Device anlegen:
mknod /dev/net/tun c 10 200



