Ein IPSec-Gateway im Eigenbau

Mit Linux und FreeS/WAN lassen sich recht einfach Virtual Private Networks (VPN)zur sicheren und kostengünstigen Verbindung von Netzwerken über das Internet aufbauen.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 28 Min.
Inhaltsverzeichnis

Um Mitarbeitern oder ganzen Filialen von außen Zugang zum internen Firmennetz zu gewähren, braucht man ein vollwertiges VPN-Gateway, das mit mehreren Verbindungen gleichzeitig umgehen kann. Im einfachsten Fall übernimmt die Firewall auch gleich die Rolle dieses VPN-Pförtners. Linux-Distributionen wie SuSE und Debian enthalten bereits die Linux-IPSec-Implementierung FreeS/WAN, für Red Hat gibt es fertige RPM-Pakete. Wer sich nicht zutraut, damit eine Linux-Firewall selbst aufzusetzen, ist vielleicht mit einer speziell dafür gebauten Linux-Distribution besser bedient.

Über das IPSec-Gateway können sowohl Einzelplatzrechner mit eigener Internet-Verbindung als auch ganze Netze sicher aufs Firmennetz zugreifen.

Mit dem auf der CD im letzten Heft enthaltenen IPCop kann man innerhalb einer Viertelstunde eine Firewall aufsetzen, die auch gleich alle notwendigen Erweiterungen für ein vollwertiges IPSec-Gateway enthält. Leider hinkt das Web-Frontend für die Administration der Entwicklung etwas hinterher. Es taugt lediglich dazu, einfache IPSec-Verbindungen zwischen zwei Firmen-Netzen einzurichten. Wer sich jedoch vor der Linux-Kommandozeile nicht fürchtet, findet im Kasten "IPCop und IPSec" eine kurze Anleitung, wie er die folgende Anleitung zum Aufbau eines VPN-Gateways auf eine IPCop-Firewall umsetzen kann.

Das VPN-Gateway sollte über einen direkten Zugang zum Internet verfügen und nicht hinter einem Router stehen, der Network Address Translation macht (NAT). Als Alternative kann man das VPN-Gateway auch in einer entmilitarisierten Zone (DMZ) platzieren. Dies erfordert jedoch zusätzliche Regeln auf der Firewall und spezielles Routing der im VPN verwendeten Adressen.

Das VPN-Gateway muss nicht unbedingt eine feste, offizielle IP-Adresse haben, ein DynDNS-Name über den es jederzeit erreichbar ist, tuts zur Not auch (siehe c't-Artikel 10/2003 S. 210). Man muss dann lediglich dafür sorgen, dass FreeS/WAN nach jedem Trennen der Internet-Verbindung angehalten und nach dem erneuten Aufbau wieder gestartet wird. Wie man das einrichtet, ist weiter hinten im Artikel beschrieben.

Die benötigte Hardware-Ausstattung hängt von den Anforderungen ab. In unseren Versuchen hatte jedoch selbst ein Pentium-Rechner mit 100 MHz und 64 MByte RAM keine Schwierigkeiten bis zu zehn gleichzeitige VPN-Verbindungen ohne nennenswerte Performance-Einbußen zu bedienen. Die FreeS/WAN-Dokumentation enthält eine detaillierte Aufschlüsselung des Performance-Bedarfs für IPSec-Verbindungen. Danach genügt bereits eine 300-MHz-CPU, um eine 10-MBit/s-Verbindung mit IPSec-Paketen zu sättigen.

Neben Linux unterstützen auch Windows 2000/XP und Mac OS X IPSec, so dass diese direkt als VPN-Clients arbeiten können. Ältere Windows-Versionen benötigen spezielle IPSec-Clients wie Sentinel von SSH (www.ssh.com). Alternativ gibt es von Microsoft auch für sie IPSec-Implementierungen, die sich aber nur zusammen mit dem Layer-2 Tunneling Protocol (L2TP) einsetzen lassen. Diese Kombination L2TP/IPSec ist aber auf Linux-Seite noch nicht so ausgereift, dass man ihren Einsatz in Produktionsumgebungen empfehlen könnte.

Der Internet-Zugang der externen Rechner kann wahlweise direkt oder über einen (Hardware-)Router erfolgen - sofern dieser IPSec-Passthrough beherrscht. Das bedeutet konkret, dass er das zum verschlüsselten Datenaustausch verwendete Internet-Protokoll 50 (Encapsulating Security Payload, ESP) richtig weiterleitet und außerdem die Pakete für den Schlüsselaustausch (Internet Key Exchange, IKE) speziell behandelt. Er muss dazu ausgehende Pakete, die von UDP-Port 500 an UDP-Port 500 gerichtet sind, zwar mit seiner eigenen Adresse versehen, darf dabei aber den Quellport nicht ändern (was bei NAT normalerweise geschieht). Die meisten aktuellen Router und auch Linux haben damit keine Probleme.