Verwalten von Port-ACLs in VMM

Wichtig

Diese Version von Virtual Machine Manager (VMM) hat das Ende des Supports erreicht. Es wird empfohlen, ein Upgrade auf VMM 2022 durchzuführen.

In System Center – Virtual Machine Manager (VMM) können Sie die Port-Zugriffssteuerungslisten (ACLs) für Hyper-V zentral verwalten. Port-ACLs können sowohl für ein verwaltetes Netzwerkcontroller-Fabric als auch für Netzwerke konfiguriert werden, die nicht vom Netzwerkcontroller verwaltet werden.

  • Eine Port-ACL ist ein Satz von Regeln, die Datenverkehr auf der Portebene 2 filtern. Eine Port-ACL in VMM filtert den Zugriff auf ein bestimmtes VMM-Objekt. Eine Netzwerkobjekt kann nicht mehr als einen Port haben, den die ACL angefügt hat.
  • Eine ACL enthält Regeln und kann an eine beliebige Anzahl von Netzwerkobjekten angefügt werden. Sie können eine ACL ohne Regeln erstellen und dann die Regeln zu einem späteren Zeitpunkt hinzufügen. Jede ACL-Regel entspricht nur einer Port-ACL.
  • Wenn eine ACL über mehrere Regeln verfügt, werden sie basierend auf der Priorität angewendet. Wenn eine Regel einem Kriterium entspricht und angewendet wird, werden keinen anderen Regeln verarbeitet.
  • Eine globale Einstellungsport-ACL wird für alle virtuellen VM-Netzwerkadapter in einer Infrastruktur angewendet. Für die globalen Einstellungen ist kein eigener Objekttyp festgelegt. Somit ist die Port-ACL der globalen Einstellungen dem VMM-Verwaltungsserver zugeordnet.
  • Port-ACL-Einstellungen werden nur über PowerShell-Cmdlets in VMM verfügbar gemacht und können nicht in der VMM-Konsole konfiguriert werden.
  • Port-ACLs können Folgendem zugewiesen werden:
    • Virtuelle Subnetze und Adapter in einer Netzwerkcontroller-Bereitstellung.
    • Virtuelle Subnetze, Netzwerkadapter, VM-Netzwerken und dem VMM-Verwaltungsserver in Netzwerken, die nicht vom Netzwerkcontroller verwaltet werden.

Vorbereitung

  • Wenn eine ACL für Objekte angewendet wird, die vom Netzwerkcontroller verwaltet werden, müssen Sie das Flag ManagedByNC verwenden und es auf TRUE festlegen. Wenn sie nicht auf True festgelegt ist, gilt die ACL nur für Netzwerkobjekte, die nicht vom Netzwerkcontroller verwaltet werden.
  • ACL-Typen sind nicht austauschbar. Sie können keine ACL anwenden, bei der ManagedByNC auf false festgelegt ist, auf Objekte, die vom Netzwerkcontroller verwaltet werden und umgekehrt.
  • Der Hauptunterschied zwischen diesen beiden Arten von ACLs besteht darin, dass Sie jeden Netzwerkadapter korrigieren müssen, nachdem Sie ACL auf Objekte angewendet haben, die nicht vom Netzwerkcontroller verwaltet werden.
  • Es gibt auch ein Unterschied in den Prioritätsbereichen:
    • Hyper-V-Port-ACLs (nicht vom Netzwerkcontroller verwaltet) : 1–65535.
    • SDN-Port-ACLs (vom Netzwerkcontroller verwaltet) : 1–64500
  • Sie benötigen vollständige VMM Administratorberechtigungen, um eine Port-ACL zu globalen Einstellungen hinzuzufügen. Zum Anfügen der ACL an VMM-Objekte (VM-Netzwerke, Subnetze, virtuelle Netzwerkadapter) müssen Sie VMM-Administrator oder Mandantenadministrator oder Self-Service-Benutzer sein.

Nicht unterstützte Szenarien

Hier sehen Sie eine Liste der nicht unterstützten Szenarien:

  • Verwalten einzelner Regeln einzelner Instanzen, wenn die ACL von mehreren Instanzen verwendet wird. Alle Regeln werden zentral in der ihnen übergeordneten ACL verwaltet und gelten für alle Objekte, denen die ACL zugeordnet ist.
  • Hinzufügen mehrerer ACLs zu einer Entität.
  • Anwenden von Port-ACLs auf die virtuellen Netzwerkadapter der übergeordneten Hyper-V-Partition (Verwaltungsbetriebssystem).
  • Erstellen von Port-ACL-Regeln in VMM mit Protokollen auf IP-Ebene (mit Ausnahme von TCP und UDP). Jedoch werden andere Protokolle nach wie vor nativ durch Hyper-V unterstützt.
  • Wenden Sie Port-ACLs auf logische Netzwerke, Netzwerkstandorte (logische Netzwerkdefinitionen), Subnetz-VLANs und andere VMM-Netzwerkobjekte an, die nicht als unterstützt erwähnt werden.

Bereitstellungsschritte

Verwenden Sie die VMM-PowerShell-Schnittstelle, um Folgendes zu tun:

  1. Definieren von Port-ACLs und -Regeln

    • Die Regeln werden auf die Ports virtueller Switches auf Hyper-V-Servern als „erweiterte Port-ACLs“ (VMNetworkAdapterExtendedAcl) angewendet. Das bedeutet, dass sie nur für Hosts gelten können, die Windows Server 2012 R2 oder höher ausführen, da VMM keine Lecacy-Hyper-V-Port-ACLs (VMNetworkAdapterAcl) für frühere Versionen erstellt.
    • Die Regeln werden auf die Ports virtueller Switches auf Hyper-V-Servern als „erweiterte Port-ACLs“ (VMNetworkAdapterExtendedAcl) angewendet. Dies bedeutet, dass sie nur auf Hosts angewendet werden können, die Windows Server 2016 oder höher ausgeführt werden, da VMM keine Legacy-Hyper-V-Port-ACLs (VMNetworkAdapterAcl) für frühere Versionen erstellt.
    • Für das TCP-Protokoll sind alle in VMM definierten Port-ACL-Regeln statusbehaftet. Sie können keine statusfreie TCP-ACL-Regeln erstellen.
  2. Zuordnen einer Port-ACL zu den globalen Einstellungen. Dies gilt für die ACL für alle virtuellen VM-Netzwerkadapter.

  3. Zuordnen der Port-ACLs zu VM-Netzwerken, VM-Subnetzen oder virtuellen VM-Netzwerkadaptern.

  4. Verwalten von Port-ACL-Regeln.

Erstellen von Port-ACLs

  1. Öffnen Sie PowerShell in VMM.

  2. Erstellen Sie eine Port-ACL mit dem Cmdlet New-SCPortACL.

    New-SCPortACL [-Name] <String> [-Description <String>] [-JobVariable <String>] [-ManagedByNC] [-OnBehalfOfUser <String>] [-OnBehalfOfUserRole <UserRole>] [-Owner <String>] [-PROTipID <Guid>] [-RunAsynchronously] [-UserRole <UserRole>] [-VMMServer <ServerConnection>] [<CommonParameters>]
    

Parameter

Parameter Details
Name, Beschreibung Name und Beschreibung der Port-ACL
JobVariable Speichert den Fortschritt des Auftrags
ManagedByNC Gibt an, ob Objekte vom Netzwerkcontroller verwaltet werden
OnBehalfOfUser/OnBehalfOfRole Ausführen des Auftrags mit Benutzername oder Rolle
Besitzer Gibt den Besitzer eines VMM-Objekts in Form eines gültigen Domänenbenutzerkontos an Beispiel: Contoso\PattiFuller oder PattiFuller@Contoso
ProTipID ID von ProTip, die die Aktion ausgelöst hat
RunAsychronously Gibt an, ob der Auftrag asynchron ausgeführt wird
UserRole Gibt die Benutzerrolle an
VMMServer Gibt den VMM-Server an
CommonParameters Erfahren Sie mehr

Beispiele

Erstellen Sie eine Port-ACL für Objekte, die vom „DemoACLManagedByNC“-Netzwerkcontroller verwaltet werden:

PS: C:\> New-SCPortACL -Name "DemoACLManagedByNC" -Description "PortACL Example Managed by NC" -ManagedByN

Erstellen Sie eine Port-ACL für Objekte, die nicht vom Netzwerkcontroller „DemPortACL“ verwaltet werden:

PS: C:\> New-SCPortACL -Name "DemoPortACL" -Description "Port ACL Example Non Managed by NC"

Definieren von Port-ACL-Regeln für eine Port-ACL

  1. Öffnen Sie PowerShell in VMM.

  2. Erstellen Sie eine oder mehrere Regeln mit dem Cmdlet New-SCPortACLRule.

    New-SCPortACLrule -PortACL <PortACL> -Name <string> [-Description <string>] -Type <Inbound | Outbound> -Action <Allow | Deny> -Priority <uint16> -Protocol <Tcp | Udp | Any> [-LocalAddressPrefix <string: IPAddress | IPSubnet>] [-LocalPortRange <string:X|X-Y|Any>] [-RemoteAddressPrefix <string: IPAddress | IPSubnet>] [-RemotePortRange <string:X|X-Y|Any>]
    

Parameter

Parameter Details
Name, Beschreibung Regelname und Beschreibung
Typ Gibt die Richtung des Datenverkehrs an, für die die ACL angewendet wird (eingehend oder ausgehend)
Aktion Gibt an, ob die ACL Datenverkehr zulässt oder blockiert (Zulassen oder Verweigern)
LocalAddressPrefix Gibt die Quell-IP-Adresse oder das Subnetz an, die bzw. das zur Identifizierung von Datenverkehr verwendet wird, der gefiltert werden muss.
LocalPortRange Gibt den Quellportbereich an, der verwendet wird, um Datenverkehr zu identifizieren
RemoteAddressPrefix Hiermit wird die Ziel-IP-Adresse oder das Subnetz angegeben, die bzw. das zum Identifizieren von Datenverkehr für das Filtern verwendet wird.
RemotePortRange Gibt den Zielportbereich an, der zum Identifizieren von Datenverkehr verwendet wird
Protokoll Gibt das Protokoll an, für das die Regel angewendet wird
Priorität Geben Sie die Priorität der Regel in Port-ACL an. Regeln werden nach Reihenfolge angewendet. Legen Sie eine Priorität zwischen 1 und 65535 fest, wobei die niedrigste Nummer höchsten Priorität hat. Regeln von Port-ACLs für Objekte, die von Netzwerkcontrollern verwaltet werden, müssen gleich oder größer 100 festgelegt werden. Der Netzwerkcontroller unterstützt keine Priorität unter 100.

Beispiele

Erstellen Sie eine Port-ACL, und speichern Sie das Objekt in „$portACL“:

PS: C:\> $portACL = New-SCPortACL -Name "RDP ACL" -Description "Acl on RDP access"

Erstellen Sie eine Port-ACL-Regel, um den RDP-Zugriff von einem Remotesubnetz aus zuzulassen:

PS: C:\> New-SCPortACLRule -Name "AllowRDPAccess" -PortACL $portACL -Description "Allow RDP Rule from a subnet" -Action Allow -Type Inbound -Priority 110 -Protocol Tcp -LocalPortRange 3389 -RemoteAddressPrefix 10.184.20.0/24

Ändern Sie die Priorität einer ACL-Regel:

PS: C:\> $portACLRule = Get-SCPortACLRule -Name "AllowRDPAccess" `` <br/><br/> `` PS: C:\> Set-SCPortACLRule -PortACLRule $portACLRule -Priority 220

Der erste Befehl ruft die Port-ACL-Regel „AllowRDPAccess“ auf. Der zweite Befehl ändert die Priorität der Regel in 220.

Ändern Sie die Port-ACL-Regel für den Zieladressbereich und ein Protokoll für eine Regel:

PS: C:\> $portACLRule = Get-SCPortACLRule -Name "AllowRDPAccess" `` <br/><br/> `` PS: C:\> Set-SCPortACLRule -PortACLRule $portACLRule -RemoteAddressPrefix 172.185.21.0/24 -Protocol Udp

Der erste Befehl ruft die Regel „AllowRDPAccess“ ab. Der zweite ändert das Protokoll zu UDP und legt das Ziel auf das Subnetz 172.185.21.0/24 fest

Anfügen und Trennen von Port-ACLs

Eine Port-ACL kann an globale Einstellungen, VM-Netzwerke, VM-Subnetze und virtuelle Netzwerkadapter hinzugefügt werden. Eine Port-ACL, die an globale Einstellungen hinzugefügt ist, gilt standardmäßig für alle virtuellen VM-Netzwerkadapter.

  1. Öffnen Sie PowerShell in VMM.

  2. Fügen Sie eine Port-ACL mithilfe des Set-SCVMMServer-Cmdlet an.

    Set-SCVMMServer –VMMServer <VMMServer> [-PortACL <NetworkAccessControlList> | -RemovePortACL ]
    

Parameter

Parameter Details
VMM-Server Der Name des VMM-Servers, auf dem die Port-ACL angewendet wird
PortACL Fügt optional die angegebene Port-ACL an globale Einstellungen an

Beispiele

Ordnen Sie eine ACL den globalen Einstellungen hinzu:

Set-SCVMMServer -VMMServer "VMM.Contoso.Local" -PortACL $acl`` <br/><br/> ExampleL: `` Set-SCVMMServer -VMMServer "VMM.Contoso.Local" -PortACL $acl

Trennen Sie eine ACL von den globalen Einstellungen:

Set-SCVMMServer -VMMServer "VMM.Contoso.Local" -RemovePortACL

Fügen Sie eine ACL einem VM-Netzwerk während der Erstellung hinzu:

New-SCVMNetwork [–PortACL <NetworkAccessControlList>] [rest of the parameters]

Fügen Sie eine ACL einem vorhandenen VM-Netzwerk hinzu:

Set-SCVMNetwork -PortACL $acl`

Fügen Sie eine ACL einem VM-Subnetz während der Erstellung hinzu:

New-SCVMSubnet [–PortACL <NetworkAccessControlList>] [rest of the parameters]

Fügen Sie eine ACL einem vorhandenen VM-Subnetz hinzu:

Set-SCVMSubnet [–PortACL <NetworkAccessControlList> | -RemovePortACL] [rest of the parameters]

Abrufen und Anzeigen von Port-ACLs und Regeln

  1. Öffnen Sie PowerShell in VMM.

  2. Führen Sie das Get-SCPortACL-Cmdlet zum Abrufen und Anzeigen einer Ports-ACL aus:

    Get-SCPortACL [[-Name] <String> ] [-ID <Guid> ] [-OnBehalfOfUser <String> ] [-OnBehalfOfUserRole <UserRole> ] [-VMMServer <ServerConnection> ] [ <CommonParameters>]
    
  3. Führen Sie Get-SCPortACLRule aus, um eine Regel abzurufen und anzuzeigen:

    Get-SCPortACLRule [-Name <String> ] [-ID <Guid> ] [-OnBehalfOfUser <String> ] [-OnBehalfOfUserRole <UserRole> ] [-PortACL <PortACL> ] [-VMMServer <ServerConnection> ] [ <CommonParameters>]
    

Parameter

Parameter Details
Keine Parameter Ruft alle ACLs auf
Name/ID Nach Name oder GUID abrufen
OnBehalfOfUser/OnBehalfOfUserRole Ohne Benutzername oder Rolle ausführen
VMMServer ACLs auf bestimmten VMM-Servern abrufen
CommonParameters Erfahren Sie mehr

Beispiele

Rufen Sie eine bestimmte ACL ab:

    PS: C:> $portACL = Get-SCPortACL -Name "DemoPortACL"

Rufen Sie Regeln für eine bestimmte ACL auf:

    PS: C:> Get-SCPortACLRule -Name "AllowRDPAccess"

Rufen Sie alle Regeln für die ACL ab:

    PS: C:> Get-SCPortACLRule -PortACL $portACL

Ändern von Port-ACLs und Regeln

  1. Öffnen Sie PowerShell in VMM.

  2. Führen Sie das Cmdlet Set-SCPortACL aus, um die Port-ACL zu ändern:

    Set-SCPortACL [-PortACL] <PortACL> [[-Description] <String>] [-JobVariable <String>] [-Name <String>] [-OnBehalfOfUser <String>] [-OnBehalfOfUserRole <UserRole>] [-PROTipID <Guid>] [-RunAsynchronously] [-VMMServer <ServerConnection>] [<CommonParameters>]
    
  3. Führen Sie Remove-SCPortACL aus, um eine ACL zu entfernen:

    Remove-SCPortACL [-PortACL] <PortACL> [-Confirm] [-JobVariable <String>] [-OnBehalfOfUser <String>] [-OnBehalfOfUserRole <UserRole>] [-PROTipID <Guid>] [-RunAsynchronously] [-VMMServer <ServerConnection>] [-WhatIf] [<CommonParameters>]
    

    Parameter

Parameter Details
Name/Beschreibung Name und Beschreibung der Port-ACL
JobVariable Speichert den Fortschritt des Auftrags
OnBehalfOfUser/OnBehalfOfUserRole Mit Benutzernamen oder Rolle ausführen
ProTipID ID von ProTip, die die Aktion ausgelöst hat
RunAsynchronously Gibt an, ob der Auftrag asynchron ausgeführt wird
Bestätigen Dazu werden Sie vor der Ausführung des Auftrags aufgefordert
WhatIf Zeigt, was geschieht, wenn der Befehl nicht ausgeführt wird

Beispiele

Legen Sie eine ACL-Beschreibung fest:

PS: C:> $portACL = Get-SCPortACL -Name "DemoPortACL"
PS: C:> Set-SCPortACL -PortACL $portACL -Description "Port ACL Example Non Managed by Network Controller"

Das erste Cmdlet ruft die ACL ab, das zweite legt die Beschreibung auf der ACL fest.

Entfernen Sie eine ACL:

PS: C:> $portACL = Get-SCPortACL -Name "DemoPortACL"
PS: C:> Remove-SCPortACL -PortACL $portACL

Das erste Cmdlet ruft die ACL ab, das zweite entfernt sie.