IPSec in Windows 2003

05.11.2003 von THOMAS WOELFER 
Mit der IPSec-Implementation von Windows Server 2003 kann man nicht nur Datenverbindungen absichern, sondern auch über Filterfunktionen den Datenverkehr generell einschränken, etwa um Fernwartung zu ermöglichen.

IPSec wurde eigentlich für sichere Netzwerkverbindungen entwickelt, um Pakete und deren Integrität zu schützen. Man-in-The-Middle-Attacken, Spoofing und Ähnliches sollen erschwert bis unmöglich gemacht werden. Die IPSec-Policies von Windows 2003 lassen sich aber auch für andere Dinge verwenden, denn sie enthalten zusätzlich IP-Filter. Man kann also zum Beispiel einen Webserver absichern, der zudem noch per Remote Desktop oder Terminal Services auf dem öffentlichen Interface gewartet wird.

Bei einer typischen Konfiguration haben Sie einen Webserver mit einem öffentlichen Interface, über das die Benutzer auf Port 80 zugreifen, und einem zweiten Interface, das Sie aus der DMZ oder dem LAN nutzen, um den Server zu warten. Oft ist ein solches Setup aber nicht möglich: Stattdessen steht dann nur ein Interface zur Verfügung, über das der Rechner zu erreichen ist.

Bei IP-Filtern werden bestimmte Verbindungen identifiziert und dann anhand vordefinierter Regeln festgelegte Aktionen darauf angewendet. Die Identifizierung der Verbindungen erfolgt über die Ausgangs- und die Zieladresse sowie das verwendete Protokoll. Die Regeln können beliebig kompliziert sein, aber im Wesentlichen geht es immer um zwei mögliche Aktionen: Entweder das Paket wird durchgelassen oder nicht. Im Rahmen von IPSec gibt es noch darüber hinausgehende Möglichkeiten: So lassen sich die Pakete bei Bedarf verschlüsseln, auch eine schlüsselbasierte Authentifizierung für bestimmte Arten der Kommunikation ist möglich.

Das klingt zunächst einfach, entpuppt sich jedoch schnell als schwieriger, als man denkt: Die Identifizierung von Verbindungen bei gleichzeitiger Beeinflussung der Pakete durch die Regeln führt bei nicht richtig durchdachten Regeln schnell dazu, dass entweder keine oder die falschen Pakete durchgelassen werden. Die IP-Filter nehmen dem Administrator eine Menge Arbeit ab, da bei den Regeln wenigstens keine bestimmte Reihenfolge vorgeschrieben ist. Kompliziert bleibt die Sache aber trotzdem.

Filterlisten und Aktionen für Webserver

Bei der eingangs erwähnten Konfiguration eines Webservers, der per Terminal Services gewartet wird und nur ein Interface besitzt, werden folgenden Elemente benötigt:

Die IP-Filter finden Sie im Start-Menü unter den Administrativen Werkzeugen. Die zugehörige Anwendung trägt die Bezeichnung "Lokale Sicherheitseinstellungen". Es handelt sich dabei um eine typische MMC-Konsole.

Die für IP-Filter interessanten Einstellungen befinden sich unter dem Zweig "IP Security Policies on Local Computer".

Wegen des etwas merkwürdigen Benutzer-Interfaces sind IP-Filter nicht ganz einfach anzulegen: Der Assistent stellt sich dem Administrator häufiger in den Weg, als dass er ihm nützt.

Neue Security Policy

Zunächst verwenden Sie den passenden Befehl, um eine neue IP-Security Policy anzulegen. Dazu startet der "IP Security Policy Wizard". Hier sind zunächst Name und Beschreibung für die neue Regel anzugeben, etwa "Webserver und Remote Desktop" als Name. Dieser Name wird später in der Liste der Regeln angezeigt. Dabei ist eine Sache wichtig: Es kann immer nur eine Policy aktiv sein. Es ist also erforderlich, alle Filterlisten und -regeln, die Sie für den Rechner benötigen, in einer Policy zusammenzufassen.

Im nächsten Schritt des Assistenten wird erfragt, ob die "Default Response Rule" aktiviert werden soll. Dabei geht es aber um echtes IPSec, das ist aber nicht das Thema bei der aktuellen Konfiguration. Später können Sie die RDP-Kommunikation zwischen Ihrer Workstation und dem Webserver natürlich noch per IPSec schützen. Für dieses Beispiel aber deaktivieren Sie diese Default-Regel.

Damit ist der Wizard auch schon abgeschlossen, Sie müssen lediglich im nächsten Schritt noch angeben, dass Sie jetzt die Eigenschaften der Regel bearbeiten wollen. Im Folgenden öffnet sich dann der Dialog " Eigenschaften" für die neue Regel.

Eine IP-Security-Policy setzt sich aus "Filter-Lists" (Filter-Listen) und "Filter-Actions" (Filter-Aktionen) zusammen. Die Listen bestimmen die zu begutachtenden Traffic-Arten, die Actions legen die daraufhin auszuführenden Aktionen fest.

Neue Regel anlegen

Zunächst klicken Sie auf den Button "Add": Damit wird der Wizard zum Anlegen einer neuen Regel gestartet. Hier wird die Herkunft des Wizards offensichtlich: Er stellt desöfteren Fragen, die rein auf IPSec abzielen, aber für IPFilter keine Bedeutung haben.

Das trifft auch gleich auf die erste Frage zu. Der Wizard erfragt einen Endpunkt für einen IPSec-Tunnel. Die Regel, die Sie momentan erstellen, gilt aber nicht für einen Tunnel - das können Sie später natürlich noch ändern. Für dieses Beispiel wählen Sie jedoch die Option "This rule does not specify a tunnel" (Diese Regel spezifiziert keinen Tunnel).

Im nächsten Schritt geben Sie an, für was für eine Netzwerkverbindung die Regel gedacht ist. Dabei wird zwischen verschiedenen Verbindungen unterschieden: Für dieses Beispiel wählen Sie die voreingestellte Option "All network connections" (Alle Netzwerkverbindungen).

Danach wählen Sie eine Filterliste aus, anhand derer Windows den zu untersuchenden Traffic ermitteln kann. Eine Filterliste besteht aus mehreren Filtern: Alle Filter zusammengenommen bestimmen dann den relevanten Datenverkehr. Zunächst brauchen Sie also einen Filter, mit dem Sie die zulässigen Remote-Desktop-Verbindungen spezifizieren. Dazu klicken Sie auf den Button "Hinzufügen" (Add).

Das öffnet den Dialog zum Anlegen eines neuen Filters. Auch hier müssen Sie einen Namen eingeben - die Beschreibung ist optional. Als Namen verwenden Sie zum Beispiel "lokales (erlaubtes) RDP".

Jetzt wird es ein wenig verwirrend: Ein IP-Filter besteht nämlich tatsächlich aus mehreren Filtern. Darum gibt es erneut eine Dialogbox mit einem "Add"-Button. Bevor Sie nun den Filter definieren, müssen Sie ein paar Informationen ermitteln. Sie brauchen Ihre eigene IP-Adresse und die Portnummer für den Remote Desktop.

RDP freigeben

Der Windows Remote Desktop wird wie der Terminal Server über RDP (Remote Desktop Protocol) angesteuert und verwendet im Allgemeinen den Port 3389. Sofern Sie diesen Port in den Einstellungen des Terminal Servers nicht verändert haben, ist das auch die Portnummer, die Sie gleich benötigen.

Um den Filter weiter zu definieren, klicken Sie nun erneut auf den "Add"-Button, um den IP-Filter-Wizard zu starten. Hier können Sie zunächst eine Beschreibung eingeben und festlegen, ob die Regel gespiegelt werden soll (mirrored), also automatisch in beide Richtungen gilt. Für die RDP-Regel wählen Sie "Yes".

Im nächsten Schritt erfragt der Wizard die Quelladresse der Verbindung. Die Regel soll ja Traffic von Ihrer Workstation zum Webserver erfassen. Als Quelladresse geben Sie also die Adresse Ihrer Workstation an, beziehungsweise die öffentliche IP-Adresse unter der die Workstation im Internet sichtbar ist. Das kann also auch die öffentliche Adresse Ihres Internet-Gateways sein. Als Option wählen Sie "Spezifische IP-Adresse".

Im nächsten Schritt erfragt der Wizard die Zieladresse. Hier wählen Sie die Option "Meine Adresse" (My Address) aus, da der Webserver ja als Endpunkt dienen soll und Sie diese Regel auf dem Webserver erstellen.

Im nächsten Schritt erfragt der Assistent das verwendete Protokoll. RDP taucht dabei einfach in der Liste der auswählbaren Protokolle auf. Damit ist der Wizard fast abgeschlossen. Auf der Seite zum Fertigstellen befindet sich aber erneut eine Option zum Bearbeiten der Eigenschaften: Diese Option schalten Sie aus, denn Sie haben bereits alle Einstellungen vorgenommen.

Danach befinden Sie sich dann wieder auf dem Dialog für die IP-Filter-Liste. In der Listbox wählen Sie die soeben erstellte Liste aus und gehen dann zum nächsten Schritt im Assistenten für die Sicherheitsregeln. Hier wählen Sie eine Filteraktion für den Filter aus. Von Haus aus sind einige Aktionen vordefiniert - zwei davon sind die Aktionen "Blockieren" (Block) und "Zulassen" (Allow).

Für den lokalen RDP-Traffic wählen Sie also die Regel "Allow" aus, denn Sie möchten ja Ihre eigenen Remote-Desktop-Verbindungen zum Webserver zulassen. Nun brauchen Sie nur noch zwei weitere der noch offenen Dialoge mit OK zu schließen, damit der erste Teil Ihrer Sicherheitsregel vollständig definiert ist. Die Regel ist aber bisher noch nicht sehr hilfreich. Letztlich erlaubt sie nur explizit RDP von Ihrer Workstation zum Server - aber sie schränkt keinerlei Traffic ein. Zudem müssen Sie die Sicherheitsregel noch so erweitern, dass der Zugriff auf den Port 80 von beliebigen Quelladressen aus erlaubt wird. Ansonsten kann der Server nicht verwendet werden.

Beide Filter sollten aber mit dem bisher exemplarisch durchgespielten Vorgehen kein großes Problem darstellen. Im Wesentlichen brauchen Sie die gleichen Schritte wie die zuvor erläuterten. Dabei müssen Sie im Falle des Webservers ebenfalls die Kommunikation erlauben, allerdings nicht nur von der lokalen Workstation, sondern von allen Rechnern, die den Webserver erreichen dürfen. Im Normalfall werden das einfach alle Rechner sein - also beliebige IP-Adressen. Den restlichen eingehenden Traffic - egal von welchem Rechner aus - blockieren Sie dann noch. Damit ist der Rechner dicht.

IPSec überprüfen: IPSec Monitor

Bei der Gelegenheit können Sie gleich noch einen Blick auf die anderen Möglichkeiten von IPSec werfen: Eine praktische Eigenschaft von IPSec-Regeln ist übrigens die Tatsache, dass Sie die Sicherheitsregeln in einer Active-Directory-Domäne einfach verteilen können. Wenn Sie die Regeln als Domain-weite Regel instanziieren, werden die Regeln automatisch an alle Hosts der Domäne verteilt. Dadurch können Sie beispielsweise relativ einfach eine sichere Kommunikation im LAN erzwingen.

Einmal eingestellte IPSec-Regeln und deren Auswirkungen können Sie mit der Microsoft Management Konsole leicht überprüfen. Für die MMC gibt es zwei Snap-Ins, die extra für IPSec gedacht sind: Das eine dient der Verwaltung von IP-Sicherheitsrichtlinien.

Das andere Snap-In trägt den Namen "IP-Sicherheitsmonitor" und dient der Anzeige der im Rahmen von IPSec zwischen den beteiligten Computern ausgetauschten Informationen. Außerdem kann der Monitor anzeigen, welche Regel momentan auf einem Computer beziehungsweise in dessen Active-Directory-Domäne eingestellt ist.

Um den IPSec-Monitor zu starten, brauchen Sie zunächst eine leere MMC. Im Datei-Menü der MMC wählen Sie den Befehl "Snap-In hinzufügen". In der folgenden Dialogbox wählen Sie über den Button "hinzufügen" den "IP-Sicherheitsmonitor" aus der Liste verfügbarer Snap-Ins aus, und der Monitor wird in der MMC angezeigt.

Fazit

Mit der IPSec-Implementierung von Windows 2003 haben Sie zusätzlich einen Mechanismus an der Hand, mit dem Sie Ihren Netzwerk-Traffic auf Basis von IP-Filterlisten und Aktionen absichern können. Der besondere Vorteil von IPSec-Filtern ist dabei der, dass Sie die Filter dynamisch verändern können, ohne dazu den Rechner booten zu müssen.

Des Weiteren können Sie natürlich auch über IPSec Netzwerk-Verbindungen mittels Authentifizierung und Verschlüsselung absichern. Das wird Thema eines späteren Artikels sein. (mha)