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:
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.
Fügen Sie eine Port-ACL an globale Einstellungen an. Dadurch wird die ACL auf alle virtuellen VM-Netzwerkadapter angewendet.
Fügen Sie die Port-ACLs an VM-Netzwerke, VM-Subnetze oder virtuelle VM-Netzwerkadapter an.
Verwalten von Port-ACL-Regeln.
Erstellen von Port-ACLs
Öffnen Sie PowerShell im VMM.
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
Öffnen Sie PowerShell im VMM.
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.
Öffnen Sie PowerShell im VMM.
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
Öffnen Sie PowerShell im VMM.
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>]
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
Öffnen Sie PowerShell im VMM.
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>]
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.