Geschützter Tunnel
Sichere WLAN-Vernetzung mit verschlüsseltem OpenVPN-Tunnel
Feuerdämmend
Damit ist es auf beiden Seiten schon fast getan. Von sich aus nutzen Laptop und Desktop den Tunnel, die Daten sind geschützt und niemand kann sie abhören. Neue Pakete einschleusen ist aber immer noch möglich: So schnorrt ein Angreifer die Internet-Anbindung des Desktops. Selbst wer eine Flatrate hat, wird die Bandbreite nicht gern verschenken. Netz-Dienste, die Client und Server anbieten (etwa Web-, SSH- oder FTP-Server), sind vom WLAN aus angreifbar. Wer ein eigenes Netz betreibt, sieht sich noch einer weiteren Gefahr ausgesetzt: Die Pakete, die ins WLAN eingeschleust werden, umgehen eine Firewall, die zwischen Internet und lokalem Netz steht.
Gegen diese Lücke schützt eine geeignete Firewall-Konfiguration [4]. Der Artikel in der Mai-Ausgabe beschreibt, wie eine Firewall mit iptables funktioniert. Die OpenVPN-Distribution enthält auch ein Beispiel-Firewall-Skript. Für die WLAN-Tunnel-Kombination sind aber zusätzliche Regeln nötig. Abbildung 2 zeigt, an welchen Stellen diese Regeln ansetzen.
OpenVPN versendet die verschlüsselten Pakete mit UDP an Port 5000 der Gegenseite. Dazu benutzt es das WLAN. Deshalb muss am Interface wlan0 der UDP-Port 5000 freigeschaltet sein. Für das Empfangen von Paketen erledigt das folgender Aufruf:
iptables -A INPUT -i wlan0\ -p udp --dport 5000 -j ACCEPT iptables -A INPUT -i wlan0\ -j DROP
Die letzte Zeile sorgt dafür, dass der Rechner über das WLAN keine anderen Pakete annimmt. Die erste Input-Regel könnte sogar noch strenger sein und mit -s RealeIP vorgeben, von welcher IP-Adresse die Pakete stammen dürfen. Hier wäre die reale IP-Adresse des jeweiligen Gegenübers anzugeben, auf dem Laptop also -s 172.16.0.2.
Auch das Senden und Weiterleiten von Paketen ist einzuschränken:
iptables -A OUTPUT -o wlan0\ -p udp --dport 5000 -j ACCEPT iptables -A OUTPUT -o wlan0\ -j DROP iptables -A FORWARD -i wlan0\ -j DROP
Die Tunnel-Enden leiten nur Pakete weiter, die von einem bekannten Partner stammen, der den richtigen (geheimen) Schlüssel benutzt hat. Daher kann man den Paketen vertrauen, die von einem tun-Device stammen, sie annehmen und verarbeiten. Auch das Senden in den Tunnel hinein muss erlaubt sein. Folgende Aufrufen erlauben das Empfangen und Senden:
iptables -A INPUT -i tun0\ -j ACCEPT iptables -A OUTPUT -o tun0\ -j ACCEPT
Auf dem Laptop genügt das schon. An ihm sind keine weiteren Netzwerke angeschlossen, er muss daher keine Pakete weiterleiten. Der Desktop benötigt noch eine Forwarding-Regel und sollte außerdem Masquerading einsetzen, damit der Laptop auch nach außen senden kann:
iptables -A FORWARD -i tun0\ -j ACCEPT iptables -t nat -A POSTROUTING\ -o eth0 -j MASQUERADE
Grenzen der Sicherheit
Der Haken der hier beschriebenen Methode ist, dass sie nur PCs und Laptops sicher anbinden kann. Ein mit WLAN ausgerüsteter Netzwerkdrucker bleibt außen vor: WLAN-fähige Drucker bieten nur WEP als Verschlüsselung an, oft sogar nur WEP-40. Auf den ersten Blick mag der Missbrauch eines Druckers sinnlos erscheinen, weil der Angreifer nicht an seine Ausdrucke herankommt. Eine Lücke im Sicherheitsnetz ist er aber dennoch.
Das Netzwerk ist immer nur so sicher wie die angeschlossenen Rechner. Hat ein Unbefugter Zugriff auf einen OpenVPN-Laptop, dann kennt er den Schlüssel und hat Zugang zum LAN. Drahtlose Geräte sind daher besonders gegen Diebstahl zu sichern. Auch Passwörter für angebotene Dienste sind wichtig. Das mag im Einzelfall unbequem sein, ein Eindringling ist aber deutlich lästiger. (fjl)
Glossar
private Adressen
Normale, öffentliche IP-Adressen sind weltweit eindeutig. Nur so kann ein Paket den Weg zum richtig Ziel finden. Im Gegensatz dazu sind die privaten IP-Adressen nur im lokalen Netz gültig, sie werden nicht in das öffentliche Internet geroutet. Dadurch können mehrere Netze die selben privaten Adressen nutzen. Für diesen Zweck sind einige IP-Bereiche reserviert: 10.x.x.x und 192.168.z.z sowie 172.16.y.y bis 172.31.y.y.
Routing
Wegewahl für IP-Pakete. Linux entscheidet anhand einer Routing-Tabelle, über welches Interface es ein Paket senden muss, damit es seinem Ziel näher kommt. Bei einem Einzelplatz-Rechner ist die Entscheidung einfach: 127.0.0.1 geht über das Loopback-Device lo, der Rest über die Default-Route über eth0 oder Ähnliches. Router mit vielen Netzwerk-Karten müssen hier komplizierter entscheiden.
Infos
[1] OpenVPN: http://openvpn.sourceforge.net
[2] TUN/TAP-Treiber: http://vtun.sourceforge.net/tun/
[3] LZO-Bibliothek: http://www.oberhumer.com/opensource/lzo/
[4] Marc André Selig: Paketfilter-Firewall, LinuxUser 05/2002, S. 30.



