Freigeben über


Verwalten von Port-ACLs in VMM

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

  • Eine Port-ACL ist eine Reihe von Regeln, mit denen Datenverkehr auf Ebene der Ebene 2 gefiltert wird. Eine Port-ACL in VMM filtert den Zugriff auf ein bestimmtes VMM-Objekt. Ein Netzwerkobjekt kann nicht mehr als eine Port-ACL angefügt sein.
  • 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 später Regeln 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. Nachdem eine Regel Kriterien erfüllt und angewendet wurde, werden keine anderen Regeln verarbeitet.
  • Eine globale Einstellungsport-ACL wird auf alle virtuellen VM-Netzwerkadapter in einer Infrastruktur angewendet. Für globale Einstellungen gibt es keinen separaten Objekttyp. Stattdessen wird die globale Einstellungsport-ACL an den VMM-Verwaltungsserver angefügt.
  • 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 auf Folgendes angewendet werden:
    • Virtuelle Subnetze und Adapter in einer Netzwerkcontrollerbereitstellung.
    • Virtuelle Subnetze, Netzwerkadapter, VM-Netzwerke und der VMM-Verwaltungsserver in Netzwerken, die nicht vom Netzwerkcontroller verwaltet werden.

Vor der Installation

  • Um eine ACL auf Objekte anzuwenden, die von Netzwerkcontrollern verwaltet werden, verwenden Sie das ManagedByNC-Flag, und legen Sie es auf True fest. Wenn es 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 eine ACL, bei der ManagedByNC auf false gesetzt ist, nicht auf Objekte anwenden, 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 einen Unterschied in Prioritätsbereichen:
    • Hyper-V-Port ACLs (nicht vom Netzwerkcontroller verwaltet): 1–65535
    • SDN-Port-ACLs (von Netzwerkcontroller verwaltet): 1–64500
  • Sie benötigen vollständige VMM-Administratorberechtigungen, um eine Port-ACL an globale Einstellungen anzufügen. Um die ACL an VMM-Objekte (VM-Netzwerke, Subnetze, virtuelle Netzwerkadapter) anzufügen, müssen Sie VMM-Admin oder Mandantenadmin oder Self-Service-Benutzerin bzw. -Benutzer sein.

Nicht unterstützte Szenarien

Hier ist eine Liste der nicht unterstützten Szenarien:

  • Verwalten Sie einzelne Regeln für eine einzelne Instanz, wenn die ACL für mehrere Instanzen freigegeben wird. Alle Regeln werden zentral innerhalb ihrer übergeordneten ACLs verwaltet und gelten unabhängig davon, wo die ACL angefügt ist.
  • Fügen Sie mehr als eine ACL an eine Entität an.
  • Wenden Sie Port-ACLs auf virtuelle Netzwerkadapter in der übergeordneten Hyper-V-Partition (Verwaltungsbetriebssystem) an.
  • Erstellen Sie Port-ACL-Regeln in VMM, die Protokolle auf IP-Ebene (außer TCP oder UDP) enthalten. Andere Protokolle werden von Hyper-V weiterhin nativ 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 auszuführen:

  1. Definieren von Port-ACLs und -Regeln.

    • Die Regeln werden auf Virtuelle Switchports 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 virtuelle Switchports auf Hyper-V-Servern als „erweiterte Port-ACLs“ (VMNetworkAdapterExtendedAcl) angewendet. Das bedeutet, dass sie nur für Hosts gelten können, die Windows Server 2016 oder höher ausführen, da VMM keine Lecacy-Hyper-V-Port-ACLs (VMNetworkAdapterAcl) für frühere Versionen erstellt.
    • Die Regeln werden auf Virtuelle Switchports auf Hyper-V-Servern als erweiterte Port-ACLs (VMNetworkAdapterExtendedAcl) angewendet. Dies bedeutet, dass sie nur für Hosts mit Windows Server 2019 oder höher gelten können, da VMM keine älteren Hyper-V-Port-ACLs (VMNetworkAdapterAcl) für frühere Versionen erstellt.
    • Alle in VMM definierten Port-ACL-Regeln sind für TCP statusbehaftet. Sie können keine statusfreien TCP-ACL-Regeln erstellen.
  2. Fügen Sie eine Port-ACL an globale Einstellungen an. Dadurch wird die ACL auf alle virtuellen VM-Netzwerkadapter angewendet.

  3. Fügen Sie die Port-ACLs an VM-Netzwerke, VM-Subnetze oder virtuelle VM-Netzwerkadapter an.

  4. Verwalten von Port-ACL-Regeln.

Erstellen von Port-ACLs

  1. Öffnen Sie PowerShell im 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 Port ACL-Name und -Beschreibung
JobVariable Speichert den Auftragsstatus
ManagedByNC Gibt an, ob Objekte vom Netzwerkcontroller verwaltet werden.
OnBehalfOfUser/OnBehalfOfRole Auftrag mit Benutzername oder Rolle ausführen
Besitzer Gibt die besitzende Person eines VMM-Objekts in Form eines gültigen Domänenbenutzerkontos an. Beispiel: Contoso\PattiFuller oder PattiFuller@Contoso
ProTipID ID der ProTip, die eine 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 Weitere Informationen

Beispiele

Erstellen Sie eine Port-ACL für Objekte, die vom Netzwerkcontroller „DemoACLManagedByNC“ 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 im 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
type Gibt die Datenverkehrsrichtung 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, das zum Identifizieren des Datenverkehrs verwendet wird, der gefiltert werden muss.
LocalPortRange Gibt den Quellportbereich an, der zum Identifizieren des Datenverkehrs verwendet wird.
RemoteAddressPrefix Gibt die Ziel-IP-Adresse oder das Subnetz an, das zum Identifizieren des Datenverkehrs zum 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 im Port-ACL an. Regeln werden gemäß der Reihenfolge angewendet. Legen Sie eine Priorität zwischen 1 und 65535 fest, wobei die niedrigste Zahl die höchste Priorität hat. Port ACLs-Regeln für Objekte, die vom Netzwerkcontroller verwaltet werden, müssen auf oder größer als 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 RDP-Zugriff von einem Remotesubnetz 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 der 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“ ab. Der zweite Befehl ändert die Priorität der Regel auf 220.

Ändern Sie die Port-ACL-Regel für den Zieladressbereich und das 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. Die zweite ändert das Protokoll in UDP und legt das Ziel auf 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 angefügt werden. Eine an globale Einstellungen angefügte Port-ACL gilt standardmäßig für alle virtuellen VM-Netzwerkadapter.

  1. Öffnen Sie PowerShell im VMM.

  2. Fügen Sie eine Portal-ACL mithilfe des Cmdlets Set-SCVMMServer an.

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

Parameter

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

Beispiele

Zuordnen einer ACL zu globale Einstellungen:

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

Trennen einer ACL von globalen Einstellungen:

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

Zuordnen einer ACL zu einem VM-Netzwerk während der Erstellung:

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

Zuordnen einer ACL zu einem vorhandenen VM-Netzwerk:

Set-SCVMNetwork -PortACL $acl`

Zuordnen einer ACL zu einem VM-Subnetz während der Erstellung:

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

Zuordnen einer ACL zu einem vorhandenen VM-Subnetz:

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

Abrufen und Anzeigen von Port-ACLs und -Regeln

  1. Öffnen Sie PowerShell im VMM.

  2. Führen Sie das Get-SCPortACL-Cmdlet aus, um eine Port-ACL abzurufen und anzuzeigen:

    Get-SCPortACL [[-Name] <String> ] [-ID <Guid> ] [-OnBehalfOfUser <String> ] [-OnBehalfOfUserRole <UserRole> ] [-VMMServer <ServerConnection> ] [ <CommonParameters>]
    
  3. Führen Sie das Cmdlet 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 ab
Name/ID Abrufen nach Name oder GUID
OnBehalfOfUser/OnBehalfOfUserRole Ausführen mit Benutzername oder Rolle
VMMServer Abrufen von ACLs auf einem bestimmten VMM-Server
CommonParameters Weitere Informationen

Beispiele

Abrufen einer bestimmten ACL:

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

Abrufen von Regeln für eine bestimmte ACL:

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

Abrufen aller Regeln für ACL:

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

Ändern von Port-ACLs und -Regeln

  1. Öffnen Sie PowerShell im VMM.

  2. Führen Sie das Set-SCPortACL-Cmdlet aus, um eine 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 das Cmdlet 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 Auftragsstatus
OnBehalfOfUser/OnBehalfOfUserRole Ausführen mit Benutzername oder Rolle
ProTipID ID der ProTip, die eine Aktion ausgelöst hat
RunAsynchronously Gibt an, ob der Auftrag asynchron ausgeführt wird
Confirm Eingabeaufforderungen vor dem Ausführen des Auftrags
WhatIf Zeigt an, was geschieht, ohne den Befehl auszuführen.

Beispiele

Festlegen einer ACL-Beschreibung:

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; die zweite legt die Beschreibung für die ACL fest.

Entfernen einer ACL:

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

Das erste Cmdlet ruft die ACL ab; die zweite entfernt sie.