(0) exportieren Drucken
Alle erweitern

Windows Firewall mit erweiterter Sicherheitsverwaltung mit Windows PowerShell

Veröffentlicht: März 2012

Letzte Aktualisierung: März 2012

Betrifft: Windows 8, Windows Server 2012

Das Handbuch Windows-Firewall mit erweiterter Sicherheitsverwaltung mit Windows PowerShell enthält wichtige Skriptlets zum Automatisieren der Windows-Firewall mit erweiterter Sicherheitsverwaltung in Windows Server 2012. Es ist für IT-Professionals, Systemadministratoren, IT-Manager und andere Personen gedacht, die die Windows-Firewall mit erweiterter Sicherheitsverwaltung in Windows verwenden und automatisieren müssen.

In Windows Server 2012 und Windows 8 können Administratoren Windows PowerShell zum Verwalten der Firewall und IPsec-Bereitstellungen verwenden. In dieser objektorientierten Skriptumgebung können Administratoren Richtlinien besser verwalten und Netzwerkbedingungen leichter überwachen, als dies mit Netsh möglich war. Mithilfe von Windows PowerShell sind Netzwerkeinstellungen anhand der Syntax und Parameter für die einzelnen Cmdlets selbst ermittelbar. In diesem Handbuch wird erläutert, wie allgemeine Aufgaben in Netsh ausgeführt wurden und wie Sie dafür jetzt Windows PowerShell verwenden können.

ImportantWichtig
Die Netsh-Befehle für die Windows-Firewall mit erweiterter Sicherheit wurden seit der vorherigen Betriebssystemversion nicht geändert. Die Netsh-Befehle für die Windows-Firewall mit erweiterter Sicherheit in Windows Server 2012 sind mit denen in Windows Server® 2008 R2 identisch.

In zukünftigen Windows-Versionen wird die Netsh-Funktion für die Windows-Firewall mit erweiterter Sicherheit von Microsoft möglicherweise entfernt. Microsoft empfiehlt, ab sofort Windows PowerShell zu verwenden, falls Sie die Windows-Firewall mit erweiterter Sicherheit gegenwärtig mit Netsh konfigurieren und verwalten.

Windows PowerShell- und Netsh-Befehlsreferenzen stehen unter den folgenden Links zur Verfügung.

In diesem Handbuch wird nicht auf die Grundlagen zur Windows-Firewall mit erweiterter Sicherheit eingegangen. Diese Informationen finden Sie unter Übersicht über die Windows-Firewall mit erweiterter Sicherheit. Auch die Grundlagen von Windows PowerShell werden nicht behandelt, und es wird vorausgesetzt, dass Sie mit der Windows PowerShell-Sprache und den Grundbegriffen von Windows PowerShell vertraut sind. Weitere Informationen zu den Konzepten und zur Nutzung von Windows PowerShell finden Sie in den Referenzthemen im Abschnitt Weitere Ressourcen dieses Handbuchs.

Dieses Handbuch richtet sich an IT-Professionals, Systemadministratoren und IT-Manager, und es wird vorausgesetzt, dass Sie mit der Windows-Firewall mit erweiterter Sicherheit, der Windows PowerShell-Sprache und den Grundbegriffen von Windows PowerShell vertraut sind.

Sie müssen Sie Ihr System wie folgt installieren und konfigurieren, um die Skripte und Skriptlets in dieser Anleitung auszuführen:

  • Windows Server 2012

  • Windows PowerShell 3.0 (in Windows Server 2012 enthalten)

  • Windows NetSecurity-Modul für Windows PowerShell (in Windows Server 2012 enthalten)

  • Windows PowerShell ISE (optionales Feature in Windows PowerShell 3.0, das mithilfe von Server-Manager installiert wird)

noteHinweis
In Windows PowerShell 3.0 werden Module automatisch importiert, wenn Sie ein beliebiges Cmdlet im Modul abrufen oder verwenden. Sie können weiterhin das Import-Module-Cmdlet zum Importieren eines Moduls verwenden.

Verwenden Sie Import-Module, wenn Sie Windows PowerShell 2.0 nutzen oder ein Feature des Moduls nutzen müssen, bevor Sie eines seiner Cmdlets verwenden. Weitere Informationen finden Sie unter Import-Module.

Verwenden Sie Import-PSSnapIn, um Cmdlets in einem Windows PowerShell-Snap-In unabhängig von der ausgeführten Windows PowerShell-Version zu nutzen.

 

Thema Beschreibung

Festlegen profilbasierter globaler Standardwerte

Aktivieren und Steuern des Firewallverhaltens

Bereitstellen grundlegender Firewallregeln

Erstellen, Ändern und Löschen von Firewallregeln

Remoteverwaltung

Remoteverwaltung mit -CimSession

Bereitstellen grundlegender IPsec-Regeleinstellungen

IPsec-Regeln und zugeordnete Parameter

Bereitstellen sicherer Firewallregeln mit IPsec

Domänen- und Serverisolation

Weitere Ressourcen

Weitere Informationen zu Windows PowerShell

Mit globalen Standardwerten wird das Systemverhalten auf Basis von Profilen festgelegt. Windows-Firewall mit erweiterter Sicherheit unterstützt Domänenprofile, private Profile und öffentliche Profile.

Durch die Windows-Firewall wird Datenverkehr verworfen, der nicht dem zugelassenen unaufgeforderten Datenverkehr entspricht, oder Datenverkehr, der als Antwort auf eine Anforderung des Computers gesendet wird. Wenn Sie feststellen, dass erstellte Regeln nicht eingehalten werden, müssen Sie wahrscheinlich die Windows-Firewall aktivieren. Auf einem lokalen Domänencomputer aktivieren Sie Windows-Firewall folgendermaßen:

Netsh

netsh advfirewall set allprofiles state on

Windows PowerShell

Die folgenden Windows PowerShell-Cmdlets erfüllen dieselbe Funktion wie das vorhergehende Verfahren. Geben Sie die einzelnen Cmdlets in einer einzelnen Zeile ein, auch wenn es den Anschein hat, dass aufgrund von Formatierungseinschränkungen Zeilenumbrüche vorhanden sind.

Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled True

Die globalen Standardeinstellungen können über die Befehlszeilenschnittstelle festgelegt werden. Diese Änderungen sind auch über das Windows-Firewall mit erweiterter Sicherheit-MMC-Snap-In verfügbar.

Mit den folgenden Skriptlets werden eingehende und ausgehende Standardaktionen festgelegt, geschützte Netzwerkverbindungen angegeben und die Anzeige von Benachrichtigungen für den Benutzer beim Blockieren eines Programms aufgrund von eingehenden Verbindungen zugelassen. Außerdem werden Unicastantworten auf Multicast- oder Broadcastnetzwerkverkehr zugelassen und Protokollierungseinstellungen für die Problembehandlung festgelegt.

Netsh

netsh advfirewall set allprofiles firewallpolicy blockinbound,allowoutbound 
netsh advfirewall set allprofiles settings inboundusernotification enable
netsh advfirewall set allprofiles settings unicastresponsetomulticast enable
netsh advfirewall set allprofiles logging filename %SystemRoot%\System32\LogFiles\Firewall\pfirewall.log

Windows PowerShell

Set-NetFirewallProfile -DefaultInboundAction Block -DefaultOutboundAction Allow –NotifyOnListen True -AllowUnicastResponseToMulticast True –LogFileName %SystemRoot%\System32\LogFiles\Firewall\pfirewall.log



Dieser Abschnitt enthält Skriptletbeispiele zum Erstellen, Bearbeiten und Löschen von Firewallregeln.

Das Hinzufügen einer Firewallregel ähnelt in Windows PowerShell stark dem Verfahren von Netsh, aber die Parameter und Werte werden anders angegeben.

Im folgenden Beispiel wird gezeigt, wie das Abhören des Netzwerks für die Telnet-Anwendung zugelassen wird. Diese Firewallregel bezieht sich aufgrund der Verwendung eines Schlüsselworts anstelle einer IP-Adresse auf das lokale Subnetz. Wie in Netsh wird die Regel auf dem lokalen Computer erstellt, und sie ist sofort wirksam.

Netsh

netsh advfirewall firewall add rule name="Allow Inbound Telnet" dir=in program= %SystemRoot%\System32\tlntsvr.exe remoteip=localsubnet action=allow

Windows PowerShell

New-NetFirewallRule -DisplayName “Allow Inbound Telnet” -Direction Inbound -Program %SystemRoot%\System32\tlntsvr.exe -RemoteAddress LocalSubnet -Action Allow

Im folgenden Skriptlet wird das Hinzufügen einer grundlegenden Firewallregel gezeigt, die von einer bestimmten Anwendung und einem bestimmten lokalen Port ausgehenden Datenverkehr zu einem Gruppenrichtlinienobjekt (Group Policy Object, GPO) in Active Directory blockiert. In Windows PowerShell wird der Richtlinienspeicher als Parameter im New-NetFirewall-Cmdlet angegeben. In Netsh müssen Sie zuerst das GPO angeben, das durch die Befehle in einer Netsh-Sitzung geändert werden soll. Die eingegebenen Befehle werden für den Inhalt des GPO ausgeführt. Das GPO bleibt so lange wirksam, bis die Netsh-Sitzung beendet oder ein anderer set store-Befehl ausgeführt wird.

Hierbei ist domain.contoso.com der Name Ihrer Active Directory-Domänendienste (AD DS) und gpo_name der Name des Gruppenrichtlinienobjekts, das Sie ändern möchten. Wenn der GPO-Name Leerzeichen enthält, sind Anführungszeichen erforderlich.

Netsh

netsh advfirewall set store gpo=domain.contoso.com\gpo_name
netsh advfirewall firewall add rule name="Block Outbound Telnet" dir=out program=%SystemRoot%\System32\telnet.exe protocol=tcp localport=23 action=block 

Windows PowerShell

New-NetFirewallRule -DisplayName “Block Outbound Telnet” -Direction Outbound -Program %SystemRoot%\System32\tlntsvr.exe –Protocol TCP –LocalPort 23 -Action Block –PolicyStore domain.contoso.com\gpo_name 


Um die Belastung für Domänencontroller mit hoher Auslastung zu verringern, können Sie mit Windows PowerShell ein Gruppenrichtlinienobjekt für die lokale Sitzung laden, alle Änderungen innerhalb dieser Sitzung vornehmen und dann alles auf einmal zurückspeichern.

Im folgenden Beispiel werden die gleichen Aktionen wie im vorhergehenden Beispiel ausgeführt (durch Hinzufügen einer Telnet-Regel zu einem GPO), aber dies wird durch Zwischenspeichern des GPO in PowerShell erreicht. Das Ändern des GPO durch das Laden in die lokale Sitzung und die Verwendung des Parameters -GPOSession wird in Netsh nicht unterstützt.

Windows PowerShell

$gpo = Open-NetGPO –PolicyStore domain.contoso.com\gpo_name
New-NetFirewallRule -DisplayName “Block Outbound Telnet” -Direction Outbound -Program %SystemRoot%\System32\telnet.exe –Protocol TCP –LocalPort 23 -Action Block –GPOSession $gpo
Save-NetGPO –GPOSession $gpo 

Beachten Sie, dass Ihre einzelnen Änderungen nicht nacheinander in Batches verarbeitet werden, sondern dass das gesamte GPO auf einmal geladen und gespeichert wird. Falls also andere Änderungen von anderen Administratoren oder in einem anderen Windows PowerShell-Fenster vorgenommen werden, werden diese Änderungen beim Speichern des GPO überschrieben.

Beim Erstellen einer Regel ist es für Administratoren mit Netsh und Windows PowerShell möglich, Eigenschaften und Einfluss von Regeln zu ändern, aber für die Regel wird der eindeutige Bezeichner beibehalten (in Windows PowerShell per Angabe des Parameters -Name).

Sie können beispielsweise die Regel Allow Web 80 verwenden, mit der TCP-Port 80 für nicht angeforderten eingehenden Datenverkehr aktiviert wird. Sie ändern die Regel, damit sie mit einer anderen Remote-IP-Adresse eines Webservers übereinstimmt, dessen Datenverkehr zugelassen sein soll, durch Angabe des lokalisierten Regelnamens in Klarschrift.

Netsh

netsh advfirewall firewall set rule name="Allow Web 80" new remoteip=192.168.0.2

Windows PowerShell

Set-NetFirewallRule –DisplayName “Allow Web 80” -RemoteAddress 192.168.0.2

In Netsh müssen Sie den Namen der Regel angeben, die geändert werden soll. Es besteht keine andere Möglichkeit, auf die Firewallregel zuzugreifen. In Windows PowerShell können Sie eine Abfrage nach der Regel ausführen, indem Sie ihre bekannten Eigenschaften verwenden.

Beim Ausführen von Get-NetFirewallRule kann es sein, dass allgemeine Bedingungen wie Adressen und Ports nicht angezeigt werden. Diese Bedingungen werden in eigenen Objekten, so genannten Filtern, dargestellt. Wie oben gezeigt, können Sie in "New-NetFirewallRule" und "Set-NetFirewallRule" alle Bedingungen festlegen. Wenn Sie eine Abfrage der Firewallregeln anhand dieser Felder (Ports, Adressen, Sicherheit, Schnittstellen, Dienste) durchführen möchten, müssen Sie die Filterobjekte abrufen.

Sie können den Remoteendpunkt der Regel Allow Web 80 (wie bereits durchgeführt) mithilfe von Filterobjekten ändern. Mit Windows PowerShell führen Sie eine Abfrage nach dem Port durch, indem Sie den Portfilter verwenden. Unter der Annahme, dass weitere Regeln vorhanden sind, die sich auf den lokalen Port auswirken, setzen Sie die Erstellung mit weiteren Abfragen fort, bis die gewünschte Regel abgerufen wird.

Im folgenden Beispiel wird angenommen, dass bei der Abfrage eine einzelne Firewallregel zurückgegeben wird, die dann an das Set-NetFirewallRule-Cmdlet weitergeleitet wird, indem die Windows PowerShell-Fähigkeit zum Weiterleiten von Eingaben genutzt wird.

Windows PowerShell

Get-NetFirewallPortFilter | ?{$_.LocalPort -eq 80} | Get-NetFirewallRule | ?{ $_.Direction –eq “Inbound” -and $_.Action –eq “Allow”} | Set-NetFirewallRule -RemoteAddress 192.168.0.2

Sie können beim Abfragen von Regeln auch Platzhalterzeichen verwenden. Mit dem folgenden Beispiel wird ein Array mit Firewallregeln zurückgegeben, die einem bestimmten Programm zugeordnet sind. Die Elemente des Arrays können in nachfolgenden Set-NetFirewallRule-Cmdlets geändert werden.

Windows PowerShell

Get-NetFirewallApplicationFilter -Program "*svchost*" | Get-NetFirewallRule

Mehrere Regeln in einer Gruppe können gleichzeitig geändert werden, wenn der zugeordnete Gruppenname in einem Set-Befehl angegeben ist. Sie können angegebenen Verwaltungsgruppen Firewallregeln hinzufügen, um mehrere Regeln mit demselben Einflussbereich zu verwalten.

Im folgenden Beispiel werden der Gruppe Telnet Management sowohl eingehende als auch ausgehende Telnet-Firewallregeln hinzugefügt. In Windows PowerShell wird die Gruppenmitgliedschaft beim ersten Erstellen der Regeln angegeben. Also werden die vorherigen Beispielregeln neu erstellt. Das Hinzufügen von Regeln zu benutzerdefinierten Regelgruppen ist in Netsh nicht möglich.

Windows PowerShell

New-NetFirewallRule -DisplayName “Allow Inbound Telnet” -Direction Inbound -Program %SystemRoot%\System32\tlntsvr.exe -RemoteAddress LocalSubnet -Action Allow –Group “Telnet Management”
New-NetFirewallRule -DisplayName “Block Outbound Telnet” -Direction Inbound -Program %SystemRoot%\System32\tlntsvr.exe -RemoteAddress LocalSubnet -Action Allow –Group “Telnet Management”

Wenn die Gruppe nicht bei der Erstellung der Regel angegeben wird, kann die Regel der Regelgruppe in Windows PowerShell mithilfe der Punktnotation hinzugefügt werden. Sie können die Gruppe nicht mit Set-NetFirewallRule angeben, da der Befehl das Abfragen nach Regelgruppe zulässt.

Windows PowerShell

$rule = Get-NetFirewallRule -DisplayName “Allow Inbound Telnet” 
$rule.Group = “Telnet Management”
$rule | Set-NetFirewallRule

Wenn der Name der Regelgruppe angegeben wird, wird die Gruppenmitgliedschaft bei Verwendung des Set-Befehls nicht geändert. Stattdessen werden die gleichen Änderungen, die anhand der jeweiligen Parameter angegeben werden, auf alle Regeln der Gruppe angewendet.

Mit dem folgenden Skriptlet werden alle Regeln in einer vordefinierten Gruppe mit Firewallregeln aktiviert, die sich auf die Remoteverwaltung auswirken.

Netsh

netsh advfirewall firewall set rule group="windows firewall remote management" new enable=yes

Windows PowerShell

Set-NetFirewallRule -DisplayGroup “Windows Firewall Remote Management” –Enabled True

Es ist auch ein separates Enable-NetFirewallRule-Cmdlet zum Aktivieren der Regeln nach Gruppe oder nach anderen Eigenschaften der Regel vorhanden.

Windows PowerShell

Enable-NetFirewallRule -DisplayGroup “Windows Firewall Remote Management” -Verbose

Regelobjekte können deaktiviert werden, damit sie nicht weiter aktiv sind. In Windows PowerShell wird die Regel mit dem Disable-NetFirewallRule-Cmdlet im System belassen, dabei aber in den deaktivierten Zustand versetzt, damit die Regel nicht mehr angewendet wird und sich nicht mehr auf den Datenverkehr auswirkt. Eine deaktivierte Firewallregel kann mithilfe von Enable-NetFirewallRule wieder aktiviert werden. Dies ist anders als bei Remove-NetFirewallRule, da die Regeldefinition hierbei dauerhaft aus dem System entfernt wird.

Mit dem folgenden Cmdlet wird die angegebene bestehende Firewallregel aus dem lokalen Richtlinienspeicher gelöscht.

Netsh

netsh advfirewall firewall delete rule name=“Allow Web 80”

Windows PowerShell

Remove-NetFirewallRule –DisplayName “Allow Web 80”

Wie bei anderen Cmdlets können Sie auch nach Regeln suchen, die gelöscht werden sollen. Im folgenden Beispiel werden alle blockierenden Firewallregeln aus dem System gelöscht.

Windows PowerShell

Remove-NetFirewallRule –Action Block

Beachten Sie, dass es möglicherweise sicherer ist, die Regeln mit dem Get-Befehl abzufragen und in einer Variablen zu speichern. Dabei müssen die betroffenen Regeln bedacht werden, die dann an den Befehl Remove weitergeleitet werden, wie dies auch für die Set-Befehle durchgeführt wurde. Im folgenden Beispiel wird gezeigt, wie der Administrator alle blockierenden Firewallregeln anzeigen und dann die ersten vier Regeln löschen kann.

Windows PowerShell

$x = Get-NetFirewallRule –Action Block
$x
$x[0-3] | Remove-NetFirewallRule

Die Remoteverwaltung mithilfe von WinRM ist unter Windows Server 2012 standardmäßig aktiviert. Die Cmdlets, die den Parameter CimSession unterstützen, verwenden WinRM und können standardmäßig remote verwaltet werden. Dies ist wichtig, weil der standardmäßige und empfohlene Installationsmodus für Windows Server 2012 "Server Core" ist, der keine grafische Benutzeroberfläche enthält.

Im folgenden Beispiel werden alle Firewallregeln des permanenten Speichers auf einem Computer mit dem Namen RemoteComputer zurückgegeben.

Windows PowerShell

Get-NetFirewallRule –CimSession RemoteComputer

Auf Remotecomputern können alle Änderungen vorgenommen oder Regeln angezeigt werden, indem einfach der Parameter –CimSession verwendet wird. Im folgenden Beispiel wird eine bestimmte Firewallregel von einem Remotecomputer entfernt.

Windows PowerShell

$RemoteSession = New-CimSession –ComputerName RemoteComputer
Remove-NetFirewallRule –DisplayName “AllowWeb80” –CimSession $RemoteSession -Confirm

Eine IPsec-Richtlinie (Internet Protocol security) umfasst Regeln, die das IPsec-Verhalten festlegen. IPsec unterstützt die Peerauthentifizierung auf Netzwerkebene, die Datenursprungsauthentifizierung, die Datenintegrität, die Datenvertraulichkeit (Verschlüsselung) und den Replay-Schutz. Weitere Informationen zu IPsec finden Sie unter Roadmap für Informationen zur Windows-Firewall mit erweiterter Sicherheit.

Von Windows PowerShell können leistungsstarke, komplexe IPsec-Richtlinien wie in Netsh und im Windows-Firewall mit erweiterter Sicherheit-MMC-Snap-In erstellt werden. Da Windows PowerShell jedoch objektbasiert arbeitet und nicht auf Zeichenfolgentoken basiert, bietet die Konfiguration in Windows PowerShell eine bessere Kontrolle und Flexibilität.

In Netsh wurden die Authentifizierungs- und Kryptografiegruppen als durch Trennzeichen getrennte Liste von Token in einem bestimmten Format angegeben. In Windows PowerShell verwenden Sie keine Standardeinstellungen, sondern erstellen zuerst die gewünschten Authentifizierungs- oder Kryptografievorschlagsobjekte und bündeln diese dann in der gewünschten Reihenfolge in Listen. Anschließend erstellen Sie eine oder mehrere IPsec-Regeln, die auf diese Sätze verweisen. Durch dieses Vorgehen wird der programmgesteuerte Zugriff auf die Informationen in den Regeln erheblich vereinfacht. In den folgenden Abschnitten finden Sie dazu ausführliche Beispiele.

Objektmodell zum Erstellen einer einzelnen IPsec-Regel

Mit dem folgenden Cmdlet wird in einem Gruppenrichtlinienobjekt eine grundlegende Regel für den IPsec-Transportmodus erstellt. Das Erstellen einer IPsec-Regel ist sehr einfach. Sie brauchen nur den Anzeigenamen anzugeben, für die restlichen Eigenschaften werden die Standardwerte verwendet. Die Authentifizierung und Integritätsprüfung des eingehenden Datenverkehrs erfolgt anhand des Standardschnellmodus und der Hauptmoduleinstellungen. Diese Standardeinstellungen befinden sich in dem MMC-Snap-In unter "IPsec-Standards anpassen".

Netsh

netsh advfirewall set store gpo=domain.contoso.com\gpo_name
netsh advfirewall consec add rule name="Require Inbound Authentication" endpoint1=any endpoint2=any action=requireinrequestout

Windows PowerShell

New-NetIPsecRule -DisplayName “Require Inbound Authentication” -PolicyStore domain.contoso.com\gpo_name

Zum Erstellen eines benutzerdefinierten Satzes von Schnellmodusvorschlägen, der in einem IPsec-Regelobjekt sowohl AH als auch ESP enthält, erstellen Sie die zugeordneten Objekte einzeln und verknüpfen deren Zuordnungen. Weitere Informationen zu Authentifizierungsmethoden finden Sie unter Auswählen des IPsec-Protokolls.

Sie können dann die neu erstellten, benutzerdefinierten Schnellmodusrichtlinien beim Erstellen von IPsec-Regeln verwenden. Das Kryptografiesatzobjekt wird mit einem IPsec-Regelobjekt verknüpft.

Kryptografiesatzobjekt

In diesem Beispiel wurde die zuvor erstellte IPsec-Regel durch Angabe eines benutzerdefinierten Schnellmodus-Kryptografiesatzes erweitert. In der endgültigen IPsec-Regel ist festgelegt, dass ausgehender Datenverkehr durch die angegebene Kryptografiemethode authentifiziert werden muss.

Netsh

netsh advfirewall set store gpo=domain.contoso.com\gpo_name
netsh advfirewall consec add rule name="Require Outbound Authentication" endpoint1=any endpoint2=any action=requireinrequestout qmsecmethods=ah:sha1+esp:sha1-3des


Windows PowerShell

$AHandESPQM = New-NetIPsecQuickModeCryptoProposal -Encapsulation AH,ESP –AHHash SHA1 -ESPHash SHA1 -Encryption DES3
$QMCryptoSet = New-NetIPsecQuickModeCryptoSet –DisplayName “ah:sha1+esp:sha1-des3” -Proposal $AHandESPQM –PolicyStore domain.contoso.com\gpo_name
New-NetIPsecRule -DisplayName “Require Inbound Authentication” -InboundSecurity Require -OutboundSecurity Request -QuickModeCryptoSet $QMCryptoSet.Name –PolicyStore domain.contoso.com\gpo_name

In einem Unternehmensnetzwerk muss die Kommunikation möglicherweise durch eine andere Sicherheitsinstanz geschützt werden. Sie stellen aber fest, dass diese Sicherheitsinstanz nicht auf Windows-Betriebssystemen ausgeführt wird und dafür der IKEv2-Standard (Internet Key Exchange Version 2) erforderlich ist.

Sie können IKEv2-Funktionen in Windows Server 2012 nutzen, indem Sie einfach IKEv2 als Schlüsselmodul in einer IPsec-Regel angeben. Dies kann nur mit der Computerzertifikatauthentifizierung und nicht mit der Authentifizierung der Phase 2 erfolgen.

Windows PowerShell

New-NetIPsecRule -DisplayName “Require Inbound Authentication” -InboundSecurity Require -OutboundSecurity Request –Phase1AuthSet MyCertAuthSet -KeyModule IKEv2 –RemoteAddress $nonWindowsGateway

Weitere Informationen zu IKEv2, z. B. entsprechende Szenarios, finden Sie unter Securing End-to-End IPsec Connections by Using IKEv2 in Windows Server 2012.

Firewall- und IPsec-Regeln mit den gleichen Regeleigenschaften können dupliziert werden, um deren Neuerstellung in unterschiedlichen Richtlinienspeichern zu vereinfachen.

Um die zuvor erstellte Regel aus einem Richtlinienspeicher in einen anderen zu kopieren, müssen auch die zugeordneten Objekte separat kopiert werden. Zugeordnete Firewallfilter müssen nicht kopiert werden. Sie können die zu kopierenden Regeln genauso wie andere Cmdlets abfragen.

In der Netsh-Schnittstelle können keine einzelnen Regeln kopiert werden. Hier wird erläutert, wie dies mit Windows PowerShell möglich ist.

Windows PowerShell

$Rule = Get-NetIPsecRule –DisplayName “Require Inbound Authentication”
$Rule | Copy-NetIPsecRule –NewPolicyStore domain.costoso.com\new_gpo_name
$Rule | Copy-NetPhase1AuthSet –NewPolicyStore domain.costoso.com\new_gpo_name

Zum Behandeln von Fehlern in Windows PowerShell-Skripts können Sie den Parameter –ErrorAction verwenden. Dies ist besonders bei Remove-Cmdlets hilfreich. Eine bestimmte Regel kann nur entfernt werden, wenn sie gefunden wird. Andernfalls schlägt der Befehl fehl. Im Allgemeinen kann ein Fehler ignoriert werden, der durch das Nichtvorhandensein einer zu entfernenden Regel verursacht wird. In diesem Fall können Sie während des Entfernens mit folgendem Cmdlet Fehler aufgrund von nicht gefundenen Regeln unterdrücken.

Windows PowerShell

Remove-NetFirewallRule –DisplayName “Contoso Messenger 98” –ErrorAction SilentlyContinue

Auch mit Platzhaltern können Fehler unterdrückt werden, aber sie könnten möglicherweise mit Regeln übereinstimmen, die nicht entfernt werden sollen. Platzhalter können als Kurzform nützlich sein, sie sollten aber nur verwendet werden, wenn Sie wissen, dass keine zusätzlichen Regeln vorhanden sind, die versehentlich gelöscht werden. Mit dem folgenden Cmdlet wird die Regel auch entfernt, und Fehler aufgrund von nicht gefundenen Regeln unterdrückt.

Windows PowerShell

Remove-NetFirewallRule –DisplayName “Contoso Messenger 98*”

Wenn Sie beim Verwenden von Platzhaltern die Übereinstimmung mit dem Regelsatz überprüfen möchten, können Sie den Parameter –WhatIf verwenden.

Windows PowerShell

Remove-NetFirewallRule –DisplayName “Contoso Messenger 98*” –WhatIf

Falls Sie nur einige übereinstimmende Regeln löschen möchten, können Sie den Parameter –Confirm zum Abrufen einer Bestätigungsaufforderung mit Abarbeitung Regel für Regel verwenden.

Windows PowerShell

Remove-NetFirewallRule –DisplayName “Contoso Messenger 98*” –Confirm

Sie können auch beim Ausführen des gesamten Vorgangs den Namen jeder Regel anzeigen.

Windows PowerShell

Remove-NetFirewallRule –DisplayName “Contoso Messenger 98*” –Verbose

Die folgenden Windows PowerShell-Befehle sind hilfreich für den Updatezyklus einer Bereitstellungsphase.

Mit den folgenden Befehlen können Sie alle IPsec-Regeln in einem bestimmten Speicher anzeigen. In Netsh werden mit diesem Befehl keine Regeln angezeigt, für die "profile=domain,public" oder "profile=domain,private" festgelegt ist. Es werden nur Regeln angezeigt, die den in der Regel enthaltenen einzelnen Eintrag für die Domäne aufweisen. Mit den folgenden Befehlsbeispielen werden die IPsec-Regeln in allen Profilen angezeigt.

Netsh

netsh advfirewall consec show rule name=all

Windows PowerShell

Show-NetIPsecRule –PolicyStore ActiveStore

Sie können Sicherheitszuordnungen des Hauptmodus zur Information überwachen, wie z. B., welche Peers aktuell mit dem Computer verbunden sind und mit welcher Schutzsuite die Sicherheitszuordnungen gebildet werden.

Mit dem folgenden Cmdlet zeigen Sie die bestehenden Hauptmodusregeln und deren Sicherheitszuordnungen an:

Netsh

netsh advfirewall monitor show mmsa all

Windows PowerShell

Get-NetIPsecMainModeSA

Um die Eigenschaften einer bestimmten Regel oder Regelgruppe anzuzeigen, fragen Sie die Regel ab. Wenn bei einer Abfrage Felder zurückgegeben werden, die als NotConfigured angegeben sind, können Sie ermitteln, aus welchem Richtlinienspeicher eine Regel stammt.

Wenn für Objekte, die aus einem GPO stammen (der Parameter –PolicyStoreSourceType wird im Befehl Show als GroupPolicy angegeben), –TracePolicyStore übergeben wird, wird der Name des GPO ermittelt und im Feld PolicyStoreSource zurückgegeben.

Windows PowerShell

Get-NetIPsecRule –DisplayName “Require Inbound Authentication” –TracePolicyStore 

Beachten Sie dabei, dass die offengelegten Quellen keinen Domänennamen enthalten.

Mit IPsec können Domänenmitglieder von Nichtdomänenmitgliedern isoliert werden. Bei der Domänenisolation mit IPsec-Authentifizierung müssen durch die Mitglieder des Domänencomputers die Identitäten der Kommunikationscomputer eindeutig eingerichtet werden. Dies trägt zur Erhöhung der Sicherheit einer Organisation bei. Anhand einer oder mehrerer Funktionen von IPsec kann Datenverkehr mit einem IPsec-Regelobjekt gesichert werden.

Zur Implementierung der Domänenisolation im Netzwerk empfangen die Computer in der Domäne IPsec-Regeln, die nicht angeforderten und nicht durch IPsec geschützten Netzwerkdatenverkehr blockieren. Dafür erstellen Sie eine IPsec-Regel, die von Domänenmitgliedern authentifiziert werden muss. Computer, die Mitglieder der Domäne sind, können dadurch von denjenigen, die keine Mitglieder der Domäne sind, isoliert werden. In den folgenden Beispielen ist für eingehenden Datenverkehr die Kerberos-Authentifizierung erforderlich und für ausgehenden Datenverkehr angefordert.

Netsh

netsh advfirewall set store gpo=domain.contoso.com\domain_isolation
netsh advfirewall consec add rule name=“Basic Domain Isolation Policy” profile=domain endpoint1=”any” endpoint2=”any” action=requireinrequestout auth1=”computerkerb”

Windows PowerShell

$kerbprop = New-NetIPsecAuthProposal –Machine –Kerberos

$Phase1AuthSet = New-NetIPsecPhase1AuthSet -DisplayName "Kerberos Auth Phase1" -Proposal $kerbprop –PolicyStore domain.contoso.com\domain_isolation

New-NetIPsecRule –DisplayName “Basic Domain Isolation Policy” –Profile Domain –Phase1AuthSet $Phase1AuthSet.Name –InboundSecurity Require –OutboundSecurity Request –PolicyStore domain.contoso.com\domain_isolation 

Mit dem folgenden Befehl wird ein IPsec-Tunnel erstellt, mit dem der Datenverkehr von einem privaten Netzwerk (192.168.0.0/16) über eine Schnittstelle auf dem lokalen, mit einem öffentlichen Netzwerk verbundenen Computer (1.1.1.1) an einen zweiten Computer über dessen öffentliche Schnittstelle (2.2.2.2) an ein anderes privates Netzwerk (192.157.0.0/16) weitergeleitet wird. Der gesamte Datenverkehr durch den Tunnel wird mit ESP/SHA1 auf Integrität geprüft und mit ESP/DES3 verschlüsselt.

Netsh

netsh advfirewall consec add rule name="Tunnel from 192.168.0.0/16 to 192.157.0.0/16" mode=tunnel endpoint1=192.168.0.0/16 endpoint2=192.157.0.0/16 localtunnelendpoint=1.1.1.1 remotetunnelendpoint=2.2.2.2 action=requireinrequireout qmsecmethods=esp:sha1-3des

Windows PowerShell

$QMProposal = New-NetIPsecQuickModeCryptoProposal -Encapsulation ESP -ESPHash SHA1 -Encryption DES3
$QMCryptoSet = New-NetIPsecQuickModeCryptoSet –DisplayName “esp:sha1-des3” -Proposal $QMProposal
New-NetIPSecRule -DisplayName “Tunnel from HQ to Dallas Branch” -Mode Tunnel -LocalAddress 192.168.0.0/16 -RemoteAddress 192.157.0.0/16 -LocalTunnelEndpoint 1.1.1.1 -RemoteTunnelEndpoint 2.2.2.2 -InboundSecurity Require -OutboundSecurity Require -QuickModeCryptoSet $QMCryptoSet.Name

In Situationen, in denen nur sicherer Datenverkehr durch die Windows-Firewall zugelassen werden kann, ist eine Kombination aus manuell konfigurierten Firewall- und IPsec-Regeln erforderlich. Die Sicherheitsstufe für zulässige Pakete wird durch Firewallregeln bestimmt, und der Datenverkehr wird durch die zugrunde liegenden IPsec-Regeln gesichert. Die Szenarios können in Windows PowerShell und in Netsh umgesetzt werden, wobei sich bei der Bereitstellung viele Ähnlichkeiten ergeben.

Für die Konfiguration von Firewallregeln für das Zulassen von sicheren Verbindungen muss der entsprechende Datenverkehr authentifiziert und integritätsgeschützt sein, und dann optional durch IPsec verschlüsselt werden.

Im folgenden Beispiel wird eine Firewallregel erstellt, mit der authentifizierter Datenverkehr gefordert wird. Der Befehl lässt eingehenden Telnet-Netzwerkdatenverkehr nur zu, wenn die Verbindung vom Remotecomputer durch eine eigene IPsec-Regel authentifiziert ist.

Netsh

netsh advfirewall firewall add rule name="Allow Authenticated Telnet" dir=in program=%SystemRoot%\System32\tlntsvr.exe security=authenticate action=allow

Windows PowerShell

New-NetFirewallRule -DisplayName “Allow Authenticated Telnet” -Direction Inbound -Program %SystemRoot%\System32\tlntsvr.exe -Authentication Required -Action Allow

Mit dem folgenden Befehl wird eine IPsec-Regel erstellt, über die eine erste (Computer-)Authentifizierung anfordert und dann eine zweite optionale (Benutzer-)Authentifizierung versucht wird. Durch diese Regel wird der Datenverkehr durch die Firewallregelanforderungen für das Messenger-Programm gesichert und zugelassen.

Netsh

netsh advfirewall consec add rule name="Authenticate Both Computer and User" endpoint1=any endpoint2=any action=requireinrequireout auth1=computerkerb,computerntlm auth2=userkerb,userntlm,anonymous


Windows PowerShell

$mkerbauthprop = New-NetIPsecAuthProposal -Machine –Kerberos
$mntlmauthprop = New-NetIPsecAuthProposal -Machine -NTLM
$P1Auth = New-NetIPsecPhase1AuthSet -DisplayName “Machine Auth” –Proposal $mkerbauthprop,$mntlmauthprop
$ukerbauthprop = New-NetIPsecAuthProposal -User -Kerberos
$unentlmauthprop = New-NetIPsecAuthProposal -User -NTLM
$anonyauthprop = New-NetIPsecAuthProposal -Anonymous
$P2Auth = New-NetIPsecPhase2AuthSet -DisplayName “User Auth” -Proposal $ukerbauthprop,$unentlmauthprop,$anonyauthprop
New-NetIPSecRule -DisplayName “Authenticate Both Computer and User” -InboundSecurity Require -OutboundSecurity Require -Phase1AuthSet $P1Auth.Name –Phase2AuthSet $P2Auth.Name

Zur Erhöhung der Sicherheit der Computer in einer Organisation kann ein Administrator Domänenisolation mit beschränkten Domänenmitglieder bereitstellen. Domänenmitglieder müssen für die Kommunikation untereinander authentifiziert sein, und nicht authentifizierte eingehende Verbindungen werden abgelehnt. Zur Erhöhung der Sicherheit von Servern mit sensiblen Daten müssen diese Daten durch Zulassen des Zugriffs darauf nur für eine Teilmenge der Computer in der Unternehmensdomäne geschützt werden.

Mit IPsec kann dieser zusätzliche Schutz durch Isolation der Server erfolgen. Bei der Serverisolation wird der Zugriff auf sensible Daten auf Benutzer und Computer mit legitimen Geschäftserfordernissen beschränkt, und die Daten werden zusätzlich verschlüsselt, um Lauschangriffe zu verhindern.

Zum Bereitstellen der Serverisolation kann die IPsec-Regel, mit der die Authentifizierung erzwungen wird, um eine Firewallregel zum Beschränken des Datenverkehrs auf autorisierte Benutzer oder Computer ergänzt werden.

Mit der folgenden Firewallregel wird Telnet-Datenverkehr von Benutzerkonten zugelassen, die Mitglieder einer benutzerdefinierten, von einem Administrator erstellten Gruppe namens "Authorized to Access Server" sind. Dieser Zugriff kann nach Computer, Benutzer oder beidem durch Angabe der Beschränkungsparameter weiter eingeschränkt werden.

Eine SDDL-Zeichenfolge (Security Descriptor Definition Language) wird durch die Erweiterung des Benutzers oder der Gruppensicherheits-ID (SID) erstellt. Weitere Informationen zum Ermitteln der SID einer Gruppe finden Sie unter Ermitteln der SID eines Gruppenkontos.

Mit der Zugriffsbeschränkung auf eine Gruppen kann eine umfangreiche Authentifizierungsunterstützung durch Windows-Firewall- und/oder IPsec-Richtlinien bereitgestellt werden.

Im folgenden Beispiel wird das Erstellen einer SDDL-Zeichenfolge gezeigt, die Sicherheitsgruppen darstellt.

Windows PowerShell

$user = new-object System.Security.Principal.NTAccount (“corp.contoso.com\Administrators”)
$SIDofSecureUserGroup = $user.Translate([System.Security.Principal.SecurityIdentifier]).Value
$secureUserGroup = "D:(A;;CC;;;$SIDofSecureUserGroup)"

Wenn Sie das vorherige Skriptlet verwenden, können Sie die SDDL-Zeichenfolge für eine sichere Computergruppe auch folgendermaßen ermitteln:

Windows PowerShell

$secureMachineGroup = "D:(A;;CC;;;$SIDofSecureMachineGroup)"

Weitere Informationen zur Erstellung von Sicherheitsgruppen oder zur Ermittlung der SDDL-Zeichenfolge finden Sie unter Verwenden von SIDs.

Von der Telnet-Anwendung wird keine Verschlüsselung bereitgestellt. Mit dieser Anwendung können Daten, wie Namen und Kennwörter, über das Netzwerk gesendet werden. Diese Daten können von böswillige Benutzern abgefangen werden. Wenn ein Administrator die Verwendung von Telnet zulässt, den Datenverkehr aber schützen möchte, kann eine Firewallregel zum Erzwingen einer IPsec-Verschlüsselung erstellt werden. Dies ist notwendig, damit der Administrator sicher sein kann, dass bei Verwendung dieser Anwendung der gesamte von diesem Port gesendete oder empfangene Datenverkehr verschlüsselt ist. Wenn die Verbindung nicht durch IPsec autorisiert wird, wird kein von dieser Anwendung ausgehender Datenverkehr zugelassen.

In diesem Beispiel wird nur authentifizierter und verschlüsselter eingehender Telnet-Datenverkehr von einer angegebenen sicheren Benutzergruppe durch die Erstellung der folgenden Firewallregel zugelassen.

Netsh

netsh advfirewall set store gpo=domain.contoso.com\Server_Isolation
netsh advfirewall firewall add rule name=“Allow Encrypted Inbound Telnet to Group Members Only” program=%SystemRoot%\System32\tlntsvr.exe protocol=TCP dir=in action=allow localport=23 security=authenc rmtusrgrp ="D:(A;;CC;;; S-1-5-21-2329867823-2610410949-1491576313-1735)"

Windows PowerShell

New-NetFirewallRule -DisplayName "Allow Encrypted Inbound Telnet to Group Members Only" -Program %SystemRoot%\System32\tlntsvr.exe -Protocol TCP -Direction Inbound -Action Allow -LocalPort 23 -Authentication Required -Encryption Required –RemoteUser $secureUserGroup –PolicyStore domain.contoso.com\Server_Isolation

Im vorherigen Beispiel wurde eine Ende-zu-Ende-Sicherheit für eine bestimmte Anwendung gezeigt. Wenn für viele Anwendungen eine Endpunktsicherheit benötigt wird, kann eine Firewallregel pro Anwendung aufwändig und schwer zu verwalten sein. Die regelspezifische Endpunktsicherheit kann durch Autorisierungen aufgehoben werden, und die Autorisierung kann in der IPsec-Ebene erfolgen.

In diesem Beispiel wird die globale IPsec-Einstellung mit dem folgenden Cmdlet so festgelegt, dass nur Transportmodus-Datenverkehr von einer autorisierten Benutzergruppe zugelassen wird. Beispiele für die Arbeit mit Sicherheitsgruppen finden Sie in den vorherigen Cmdlets.

Windows PowerShell

Set-NetFirewallSetting -RemoteMachineTransportAuthorizationList $secureMachineGroup

Anhand der authentifizierten Umgehung können die Blockierungsregeln der Firewall durch Datenverkehr von einem angegebenen vertrauenswürdigen Computer oder Benutzer aufgehoben werden. Dies ist hilfreich, wenn ein Administrator mit Überprüfungsservern Computer ohne Ausnahmen auf Portebene überwachen und aktualisieren möchte. Weitere Informationen finden Sie unter Aktivieren der authentifizierten Umgehung der Firewall.

Für dieses Beispiel wird davon ausgegangen, dass eine blockierende Firewallregel vorhanden ist. In diesem Beispiel kann jeglicher Netzwerkdatenverkehr auf einem beliebigen Port von einer beliebigen IP-Adresse die Blockierungsregel aufheben, wenn der Datenverkehr als von einem Computer oder einem Benutzerkonto stammend authentifiziert wird, der Mitglied der angegebenen Computer- oder Benutzersicherheitsgruppe ist.

Netsh

netsh advfirewall set store gpo=domain.contoso.com\domain_isolation
netsh advfirewall firewall add rule name="Inbound Secure Bypass Rule" dir=in security=authenticate action="bypass" rmtcomputergrp="D:(A;;CC;;;S-1-5-21-2329867823-2610410949-1491576313-1114)" rmtusrgrp="D:(A;;CC;;; S-1-5-21-2329867823-2610410949-1491576313-1735)"

Windows PowerShell

New-NetFirewallRule –DisplayName “Inbound Secure Bypass Rule" –Direction Inbound –Authentication Required –OverrideBlockRules $true -RemoteMachine $secureMachineGroup –RemoteUser $secureUserGroup –PolicyStore domain.contoso.com\domain_isolation

Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Vielen Dank für Ihr Feedback.

Community-Beiträge

HINZUFÜGEN
Microsoft führt eine Onlineumfrage durch, um Ihre Meinung zur MSDN-Website zu erfahren. Wenn Sie sich zur Teilnahme entscheiden, wird Ihnen die Onlineumfrage angezeigt, sobald Sie die MSDN-Website verlassen.

Möchten Sie an der Umfrage teilnehmen?
Anzeigen:
© 2014 Microsoft