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 dann zu einem späteren Zeitpunkt 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 sie auf "True" fest. Wenn sie nicht auf "True" festgelegt ist, gilt die ACL nur für Netzwerkobjekte, die nicht vom Netzwerkcontroller verwaltet werden.
  • ACL-Typen können nicht austauschbar sein. Sie können keine ACL mit "ManagedByNC " auf "false" anwenden, auf Objekte, die vom Netzwerkcontroller verwaltet werden, und umgekehrt.
  • Der Hauptunterschied zwischen diesen beiden Arten von ACLs besteht darin, dass Sie jeden Netzwerkadapter beheben 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 ein VMM-Administrator oder Mandantenadministrator oder ein Self-Service-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 n die übergeordnete 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. Dies bedeutet, dass sie nur auf Hosts mit Windows Server 2012 R2 oder höher angewendet werden können, da VMM keine älteren 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 2016 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 zustandslosen 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 in VMM.

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

    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 Speichern des Auftragsfortschritts
ManagedByNC Gibt an, ob Objekte vom Netzwerkcontroller verwaltet werden.
OnBehalfOfUser/OnBehalfOfRole Auftrag mit Benutzername oder Rolle ausführen
Besitzer Gibt den Besitzer 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 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
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, die verwendet wird, um Datenverkehr zu identifizieren, der gefiltert werden soll.
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 für die Filterung 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. 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 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 in 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 den angegebenen Port-ACL an globale Einstellungen an.

Beispiele

Anfügen einer ACL an globale Einstellungen:

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

Trennen Sie eine ACL von globalen Einstellungen:

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

Fügen Sie eine ACL während der Erstellung an ein VM-Netzwerk an:

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

Anfügen einer ACL an ein vorhandenes VM-Netzwerk:

Set-SCVMNetwork -PortACL $acl`

Fügen Sie eine ACL während der Erstellung an ein VM-Subnetz an:

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

Anfügen einer ACL an ein vorhandenes VM-Subnetz:

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 Cmdlet Get-SCPortACL 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 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 in VMM.

  2. Führen Sie das Cmdlet Set-SCPortACL 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 die 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 Speichern des Auftragsfortschritts
OnBehalfOfUser/OnBehalfOfUserRole Mit Benutzername oder Rolle ausführen.
ProTipID ID der ProTip, die eine Aktion ausgelöst hat
AusführenAsynchron Gibt an, ob der Auftrag asynchron ausgeführt wird.
Bestätigen Eingabeaufforderungen vor dem Ausführen des Auftrags
WhatIf Zeigt, was passiert, ohne 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.