Workshop: VPN mit Linux (Teil 2)

12.07.2002 von Jörg Luther
Im ersten Teil unseres Workshops haben wir ein VPN-Gateway mit Linux und Free S/WAN aufgesetzt. Der zweite Teil zeigt, wie sich Windows-Clients für zertifikatsbasierte VPN-Verbindungen konfigurieren lassen.

Im ersten Teil unseres Workshops haben wir auf Basis von Linux 2.4 und des IPsec -Pakets Free S/WAN einen VPN Security Gateway aufgesetzt. Durch Einspielen des X.509-Patches haben wir zudem unseren Gateway um sichere Authentifizierung und starke Verschlüsselung über Zertifikate ergänzt. Damit ist die Konfiguration der Serverseite abgeschlossen, auch die nötigen Zertifikate für Gateway und Client liegen bereits vor.

Nun gilt es noch, die Funktionalität unserer Lösung zu überprüfen sowie auch auf den Clients die notwendigen Einstellungen zum Zugriff via Virtual Private Network zu treffen. Als Betriebssysteme für unsere Roadwarriors kommen primär Windows 2000 und XP in Frage. Beide bringen bereits Bordmittel für den Aufbau und die Verwaltung von IPsec-Verbindungen mit.

Allerdings müssen wir auch einkalkulieren, dass Mitarbeiter von Home Offices oder älteren Notebooks aus mit Windows 9x/Me das VPN nutzen wollen. In diesem Fall benötigen die Rechner zusätzliche IPsec-Client-Software. Eine weit verbreitete Variante stellt das für den Privateinsatz kostenlose PGPnet dar. Es lässt sich nicht nur mit den Consumer-Windows-Varianten anwenden, sondern eignet sich auch zum Einsatz unter Windows NT und 2000.

Windows 2000 und XP

Durch ihre integrierte IPsec-Unterstützung eignen sich speziell Windows 2000 und XP für den Einsatz als VPN-Clients. Neben einem entsprechenden Service ("IPSEC-Dienste") bringen beide Betriebssysteme auch die Möglichkeit zur Verwaltung von IP-Sicherheitsrichtlinien mit. Um eine getunnelte VPN-Connection aufzubauen, muss der User lediglich die IPsec-Dienste starten und eine passende Richtlinie für die Verbindung zuweisen.

Das setzt allerdings voraus, dass eine entsprechende Sicherheitsrichtlinie erst einmal existiert. Eine solche zu erstellen hat Microsoft dem Anwender jedoch nicht gerade leicht gemacht: In gewohnter Redmond-Manier verteilen sich die entsprechenden Settings über drei Fenster und zwei "Assistenten". Zum Glück offeriert die Opensource-Gemeinde eine Lösung, mit der auch weniger IPsec-erfahrene User innerhalb von Minuten eine Verbindung via VPN erstellen können.

Marcus Müllers VPN-Tools

Mit den VPN-Tools für Windows 2000/XP stellt Marcus Müller ein ebenso probates wie einfach zu implementierendes Werkzeug für die Verbindungskonfiguration zur Verfügung. Ein gerade einmal 39 KByte großes ZIP-Archiv enthält das eigentliche Setup-Werkzeug (ipsec.exe), eine exemplarische Konfigurationsdatei sowie ein Plug-in für Microsofts Managementkonsole MMC.

Zur Distribution der Verbindungsparameter an den User können Sie dieses Archiv als Grundlage nutzen und um die notwendigen Zusatzdateien ergänzen. Da wäre zum Ersten das digitale Benutzerzertifikat (user.p12), das wir im ersten Teil des Workshops schon vorbereitet haben. Zum Zweiten braucht der User eine Textdatei mit dem Kennwort, das Sie beim Generieren des PKCS#12-Zertifikats als export key vergeben haben.

Für Windows-2000-Rechner packen Sie das Tool IPsecPol aus dem Windows 2000 Resource Kit dazu. Für WinXP-Maschinen benötigen Sie stattdessen IPsecCmd. Um an dieses Programm zu kommen, müssen sie eine vollständige Installation der Support Tools von der Windows-XP-CD (Verzeichnis \\SUPPORT\\TOOLS) vornehmen.

ipsec.conf einrichten

Jetzt gilt es, die bereits vorhandene ipsec.conf aus dem Archiv für Ihre Zwecke anzupassen. Deren Syntax ähnelt stark jener der gleichnamigen Free-S/WAN-Steuerdatei. Im ersten Abschnitt geben Sie unter conn %default eine Dial-up-Verbindung an, die bei der Verbindungsaufnahme zum Security Gateway automatisch gestartet werden soll.

Es folgt ein benannter conn-Abschnitt mit den Parametern für die VPN-Verbindung. Die zu verwendende lokale Adresse definieren Sie als left=%any für die automatische Übernahme der Client-Adresse. Unter right tragen Sie die IP-Adresse des VPN-Gateway ein, der Parameter rightsubnet enthält die IP-Adresse und Netzmaske des zu kontaktierenden LAN. Hier können Sie sowohl mit impliziter (172.16.0.0/16) als auch expliziter (172.16.0.0/255.255.0.0) Notation arbeiten.

Die rightca ist jene der Certification Authority, die das Benutzerzertifikat unterzeichnet hat. Der Parameter network gibt an, ob die Verbindungsaufnahme via Einwahl (network=ras), LAN (network=lan), oder je nach Verfügbarkeit über beides (network=both) erfolgen soll. Dabei initiiert in unserem Fall der Client die Verbindung (auto=start) und operiert mit Perfect Forwarding Secrecy (pfs=yes).

Optional kann die ipsec.conf auch noch Parameter für die (weniger sichere) Verbindungsaufnahme über Preshared Keys enthalten. Diese finden Sie bei Bedarf in der Erläuterung zu dieser Konfigurationsdatei.

Client-Konfiguration

Das um Benutzerzertifikat, Kennwort, MS-IPsec-Tools und modifizierte ipsec.conf ergänzte ZIP-Archiv transferieren Sie nun auf sicherem Weg, etwa mit Hilfe einer verschlüsselten Mail, auf den Client-Rechner. Dort entpackt der Benutzer es komplett in ein - prinzipiell beliebiges - Verzeichnis. Falls allerdings der enthaltene Link (e.bootis VPN.lnk) unmodifiziert benutzt werden soll, müssen die Files in C:\\Programme\\IPsec\\ landen.

Nun startet der Benutzer die Microsoft Management Konsole und fügt ihr über Datei / Snap-In hinzufügen/entfernen ein neues Plug-in des Typs Zertifikat zu. Es soll ein Computerkonto für den Lokalen Computer verwalten. Nach Anwahl von Fertigstellen / Schließen / OK erscheint das neue Plug-in im MMC-Fenster.

Dort ruft der Anwender im Kontextmenü für die Eigenen Zertifikate Alle Tasks / Importieren auf. Es erscheint das Begrüßungsfenster des Import-Assistenten. Nach Klicken von Weiter kann die Zertifikatsdatei aus dem gerade angelegten VPN-Verzeichnis importiert werden. Anschließend ist das Kennwort anzugeben, das Sie beim Generieren des PKCS#12-Zertifikats als export key vergeben und in einem Textfile dem Archiv beigelegt haben. Im nächsten Schritt wählt der Anwender die Option Zertifikatspeicher automatisch auswählen und importiert zu guter Letzt das Zertifikat mit Fertigstellen.

Funktionalität prüfen

Die frisch erstellte Managementkonsole sollte der Anwender beim Beenden speichern. Anschließend ruft er entweder über den Link e.bootis VPN.lnk oder direkt auf der Kommandozeile das Tool ipsec.exe auf. Es aktiviert die in ipsec.conf definierte Policy und baut eine Verbindung zum VPN-Gateway auf. Deren Funktion lässt sich unmittelbar durch einen Ping überprüfen, wie die Abbildung unten zeigt.

Zur zusätzlichen Kontrolle kann der User über Programme / Verwaltung / Lokale Sicherheitsrichtlinie die Managementkonsole für die Sicherheitseinstellungen aufrufen. Hier findet sich jetzt unter IP-Sicherheitsrichtlinien auf Lokaler Computer eine neue Richtlinie namens FreeSwan.

Ein Doppelklick darauf fördert deren Einstellungen zu Tage: Hier hat ipsec.exe über die Windows-Policy-Tools (IPsecPol respektive IPsecCmd) automatisch passende Filterregeln für die Connection eingetragen.

Startvarianten

Um künftig VPN-Verbindungen aufzubauen, existieren zwei Wege. Zum einen lässt sich die Connection durch erneuten Aufruf von ipsec.exe starten. Das kann wahlweise direkt oder über den mitgelieferten Link erfolgen.

Alternativ kann die VPN-Session jedoch auch durch Aufruf der Managementkonsole und eine entsprechende Anweisung im Kontextmenü der FreeSwan-Richtlinie initiiert oder beendet werden. Die IPSEC-Dienste von Windows starten dabei automatisch, falls sie nicht ohnehin bereits beim Systemstart geladen wurden.

PGPnet

Der VPN-Client von PGP zählt als integraler Bestandteil zu den Security-Produktsuites von McAfee. Er findet sich etwa in PGP Corporate Desktop und PGP Personal Security. Daneben existiert mit PGP Freeware auch eine für den Privateinsatz kostenlose Variante. Sie hat allerdings einen Schönheitsfehler: Es werden nur Host-to-Host-, nicht aber Host-to-Gateway-Verbindungen unterstützt.

Für unsere Free-S/WAN-Anbindung haben wir daher das PGPnet aus der deutschen Lokalisierung von PGP Personal Security benutzt. Zum Aufbau der Verbindung benötigen wir ausschließlich die Schlüsselverwaltung und den PGP-Client. Auf anderen Komponenten können wir für unsere Zwecke verzichten. Ansonsten brauchen wir noch ein lokales RSA-Key-Paar, mit dem wir später unsere Zertifikate signieren müssen. Einen solchen Schlüsselsatz erzeugt PGP bei der Installation automatisch, alternativ lässt er sich aber auch durch Anwahl von Schlüssel/Neuer Schlüssel im Menü von PGPkeys generieren.

Zertifikat importieren

Als erstes gilt es, das digitale Benutzerzertifikat (user.p12) zu importieren, das wir im ersten Teil des Workshops schon vorbereitet haben. Dazu benötigt der Anwender das Kennwort, das Sie beim Generieren des PKCS#12-Zertifikats als export key vergeben haben. Das Einlesen des Zertifikats erfolgt über die Anwendung PGPkeys.

In deren Menü wählt der Anwender Schlüssel / Importieren und gibt als einzulesende Datei den Namen des PKCS#12-Files (user.p12) an. Unter Angabe des Export-Passworts importiert er sowohl den CA- als auch den Benutzer-Key. Beide finden sich anschließend in der Schlüsselliste wieder, allerdings ohne Vertrauensstellung. In dieser Form lassen sie sich nicht zum Aufbau einer VPN-Connection nutzen.

Dazu muss der Anwender sie erst durch Signierung mit seinem lokalen PGP-Key bestätigen. Er klickt mit der rechten Maustaste auf den Root-CA-Eintrag und wählt im Kontextmenü den Punkt Unterschreiben. Im nun auftauchenden Fenster bestätigt er beide Schlüssel. Anschließend ruft er erneut das Kontextmenü des CA-Schlüssels auf und ändert jetzt die Schlüsseleigenschaften: Über den Schieberegler im unteren Teil des aufpoppenden Eigenschaften-Fensters setzt er den Key auf den Status Vertrauenswürdig. Nach dem Schließen des Fensters wiederholt er diese Prozedur für den Client-Key.

Allgemeine Konfiguration

Nachdem nun das importierte Zertifikat auch gebrauchsfertig ist, kann der Anwender PGPnet aufrufen. Über Ansicht / Optionen gelangt er in die allgemeinen Einstellungen für die Applikation. Die Settings auf den meisten der zwölf verfügbaren Reiter können im Default-Zustand bleiben. Für den VPN-Einsatz interessieren ausschließlich die drei entsprechend bezeichneten Tabs.

Auf dem Reiter "VPN" sind im Regelfall die nötigen Einstellungen mit VPN-Verbindungen aktivieren und Dynamisches VPN zulassen schon getroffen. Lediglich die Zeitspanne für die Erneuerung von IKE- und IPsec-Schlüssel muss unter Umständen an die Vorgaben aus dem Client-Zertifikat angepasst werden. Überschreiten die hier getroffenen Einstellungen die Settings des Zertifikats, lehnt der Gateway eine Verbindung ab. Auf dem Tab "VPN-Authentifizierung" trägt der Anwender über X.509-Authentisierung / Zertifikat auswählen das Client-Zertifikat ein. Darüber hinaus muss die Option Gültige entfernte Authentisierung von konfigurierten Hosts anfordern angewählt sein.

Der Reiter "VPN - Erweitert" enthält die grundlegenden Encryption-Einstellungen. Als Zulässige entfernte Vorschläge soll der Client TripleDES, SHA-1 und MD5 sowie jede Schlüssellänge akzeptieren. Komprimierung wird dagegen von Free S/WAN nicht unterstützt. In den Vorschlagslisten für die Schlüsselverfahren setzt der Anwender die IKE-Variante RSA-Unterschrift - MD5 - TripleDES - 1024 Bit ganz nach oben. Für IPsec muss die primäre Angabe Keine - MD5, TripleDES - Keine lauten. Für die Perfect Forwarding Secrecy - die Lokalisierung lautet in schönstem Deutsch "Höchste Geheimhaltung beim Weiterleiten" - ist eine Schlüssellänge von 1024 Bit einzustellen.

Gateway-Einstellungen

Nun muss der Anwender PGPnet nur noch mitteilen, mit welchem Netz eigentlich eine VPN-Verbindung aufgebaut werden soll. Dazu fügt der User im Hauptfenster der Anwendung über den Button Hinzufügen zunächst den Gateway ein. Für diesen sind ein Name (der auch deskriptiv sein darf) sowie die entsprechende IP-Adresse anzugeben. Je nach Einsatzmodus kommt entweder die Option Automatisch verbinden - also bei jedem Ansprechen einer Rechners im entfernten Netz - oder Manuelle Verbindung anfordern zum Zug. Zur Verbindung mit Free S/WAN verwenden wir den Authentisierungs-Typ Normal und akzeptieren als Entfernte Authentisierung einen Beliebigen gültigen Schlüssel.

Nun erscheint der VPN-Gateway im Hauptfenster von PGPnet. Durch einen Klick mit der rechten Maustaste auf den Eintrag ruft der Anwender das Kontextmenü des Gateway-Eintrags auf und wählt den Punkt Hinzufügen. Über das Dropdown-Menü des erscheinenden Fensters stellt er die Option Unsicheres Teilnetz ein und gibt dessen Name, IP-Adresse und Netzmaske an. Nach der Bestätigung mit OK findet sich auch das gesicherte LAN als Untereintrag des Gateways im PGPnet-Hauptfenster wieder.

Funktionstest

Damit sind alle notwenigen Einstellungen getroffen, ein erster Funktionstest steht an. Dazu wählt der Anwender im Hauptfenster von PGPnet den VPN-Gateway an und startet mit Hilfe des Buttons Verbinden die Connection. PGPnet beginnt nun, mit dem Gateway eine SA auszuhandeln. Währenddessen rotiert am Ende der betreffenden Eintragszeile ein gestreifter Ball, um die Aktion zu signalisieren.

Sobald die SA besteht, erscheinen hinter den Einträgen von Security-Gateway und entferntem Netz grüne Ampel-Lichter, die das Zustandekommen der VPN-Connection verdeutlichen sollen. Ein simpler Ping ins Remote-LAN bestätigt anschließend die Funktionsfähigkeit der Verbindung. Signalisiert PGPnet zwar freie Fahrt, kommt jedoch kein Echo Reply zurück, dann haben Sie vermutlich versehentlich die Datenkompression eingeschaltet (siehe: "Allgemeine Konfiguration").

Fazit

Das Duo Linux und Free S/WAN stellt eine kostengünstige und einfach zu implementierende Opensource-Alternative zu den gängigen, oft auf proprietärer Hardware und Methodik aufsetzenden kommerziellen VPN-Lösungen. Speziell die Anbindung von Windows-2000/XP-Clients lässt sich mit frei verfügbaren Werkzeugen im Handumdrehen erledigen. Einer sicheren Kommunikation externer Mitarbeiter mit via Internet mit dem Unternehmensnetz steht also nichts im Wege.

Bei Aufsetzen eines VPN darf man jedoch eines nicht vergessen: Zwar sichert ein virtuelles privates Netz die Kommunikation - aber nur so lange, wie die via IPsec angebundenen Rechner nicht kompromittiert werden. Ein ungeschützter VPN-Client bietet sich Viren, Würmern sowie Trojanern und deren böswilligen Nutzern als weit offenes Einfallstor ins Firmennetz geradezu an. Eine Absicherung der Roadwarrior-Rechner durch Antiviren-Software und eine Desktop-Firewall ist also obligatorisch. (jlu)

tecCHANNEL Buch-Shop

Literatur zum Thema Linux

Bestell-Link

Titel von Pearson Education

Bestellung

PDF-Titel (50% billiger als Buch)

Downloads