Hantera port-ACL:er i VMM
Viktigt
Den här versionen av Virtual Machine Manager (VMM) har nått slutet av supporten. Vi rekommenderar att du uppgraderar till VMM 2022.
I System Center – Virtual Machine Manager (VMM) kan du centralt konfigurera och hantera åtkomstkontrollistor för Hyper-V-portar (ACL:er). Port-ACL:er kan konfigureras för både en nätverksstyrenhetshanterad infrastrukturresurs och för nätverk som inte hanteras av nätverksstyrenheten.
- En port-ACL är en uppsättning regler som filtrerar trafik på layer 2-portnivån. En port-ACL i VMM filtrerar åtkomsten till ett visst VMM-objekt. Ett nätverksobjekt kan ha mer än en kopplad port-ACL.
- En ACL innehåller regler och kan kopplas till valfritt antal nätverksobjekt. Du kan skapa en ACL utan regler och sedan lägga till regler vid ett senare tillfälle. Varje ACL-regel motsvarar endast en port-ACL.
- Om en ACL har flera regler tillämpas de baserat på prioritet. När en regel matchar villkoren och tillämpas bearbetas inte andra regler.
- En port-ACL med globala inställningar tillämpas på alla virtuella datorers virtuella nätverkskort i en infrastruktur. Det finns ingen separat objekttyp för globala inställningar. I stället är de globala inställningarnas port-ACL kopplad till VMM-hanteringsservern.
- Port-ACL-inställningar exponeras endast via PowerShell-cmdletar i VMM och kan inte konfigureras i VMM-konsolen.
- Port-ACL:er kan tillämpas på:
- Virtuella undernät och nätverkskort i en distribution av en nätverksstyrenhet.
- Virtuella undernät, nätverkskort, nätverk för virtuella datorer och VMM-hanteringsservern i nätverk som inte hanteras av nätverksstyrenheten.
Innan du börjar
- För att tillämpa en ACL på objekt som inte hanteras av nätverksstyrenheten använder du flaggan ManagedByNC och ger den värdet True. Om den inte är inställd på True gäller ACL endast för nätverksobjekt som inte hanteras av nätverksstyrenheten.
- ACL-typer är inte utbytbara. Du kan inte använda en ACL med ManagedByNC inställt på false för objekt som hanteras av nätverksstyrenheten och vice versa.
- Den största skillnaden mellan dessa två typer av ACL:er är att du måste åtgärda varje nätverkskort när du har tillämpat ACL på objekt som inte hanteras av nätverksstyrenheten.
- Det är skillnad på olika prioritetsnivåer:
- Hyper-V-port-ACL:er (hanteras inte av nätverksstyrenheten): 1-65535
- SDN-port-ACL:er (hanteras av nätverksstyrenheten): 1-64500
- Du måste ha fullständiga VMM-administratörsbehörigheter för att koppla en port-ACL till globala inställningar. Om du vill koppla ACL till VMM-objekt (VM-nätverk, undernät, virtuella nätverkskort) måste du vara VMM-administratör eller klientadministratör eller självbetjäningsanvändare.
Scenarier som inte stöds
Här är en lista över scenarier som inte stöds:
- Hantera enskilda regler för en enskild instans när åtkomstkontrollistan delas med flera instanser. Alla regler hanteras centralt inom deras överordnade ACL:er och tillämpas när ACL:en kopplas.
- Koppla fler än en åtkomstkontrollista till en entitet.
- Tillämpa port-ACL:er för virtuella nätverkskort i överordnade Hyper-V-partitioner (hanterande operativsystem).
- Skapa regler för port-ACLer i VMM som innehåller protokoll på IP-nivå (andra än TCP eller UDP). Andra protokoll stöds fortfarande internt av Hyper-V.
- Använd port-ACL:er för logiska nätverk, nätverksplatser (definitioner för logiska nätverk), undernäts-VLAN och andra VMM-nätverksobjekt som inte nämns som stöd.
Distributionssteg
Använd VMM PowerShell-gränssnittet för att göra följande:
Definiera portens ACL:er och regler.
- Reglerna tillämpas på virtuella växelportar på Hyper-V-servrar som "utökade port-ACL:er" (VMNetworkAdapterExtendedAcl). Det här innebär att de endast kan tillämpas på värdar som kör Windows Server 2012 R2 eller senare eftersom VMM inte skapar ACL:er för Hyper-V-portar (VMNetworkAdapterAcl) för tidigare versioner.
- Reglerna tillämpas på virtuella växelportar på Hyper-V-servrar som "utökade port-ACL:er" (VMNetworkAdapterExtendedAcl). Det innebär att de endast kan tillämpas på värdar som kör Windows Server 2016 eller senare eftersom VMM inte skapar äldre Hyper-V-port-ACL:er (VMNetworkAdapterAcl) för tidigare versioner.
- Alla ACL-portregler som definieras i VMM är tillståndskänsliga för TCP. Du kan inte skapa tillståndslösa TCP ACL-regler.
Koppla en port-ACL till globala inställningar. ACL:en tillämpas på alla virtuella datorers virtuella nätverkskort.
Koppla port-ACL:erna till VM-nätverk, VM-undernät eller virtuella nätverkskort.
Hantera regler för port-ACL.
Skapa port-ACL:er
Öppna PowerShell i VMM.
Skapa en port-ACL med New-SCPortACL-cmdleten.
New-SCPortACL [-Name] <String> [-Description <String>] [-JobVariable <String>] [-ManagedByNC] [-OnBehalfOfUser <String>] [-OnBehalfOfUserRole <UserRole>] [-Owner <String>] [-PROTipID <Guid>] [-RunAsynchronously] [-UserRole <UserRole>] [-VMMServer <ServerConnection>] [<CommonParameters>]
Parametrar
Parameter | Information |
---|---|
Namn; beskrivning | Namn och beskrivning för port-ACL |
JobVariable | Jobbförloppet lagras |
ManagedByNC | Anger om objekt hanteras av nätverksstyrenheten eller inte |
OnBehalfOfUser/OnBehalfOfRole | Kör jobb med användarnamn eller roll |
Ägare | Anger ägaren av ett VMM-objekt i form av ett giltigt domänanvändarkonto. Exempel: Contoso\PattiFuller eller PattiFuller@Contoso |
ProTipID | ID för ProTip som utlöste åtgärden |
RunAsychronously | Anger om jobbet körs asynkront eller inte |
UserRole | Anger användarroll |
VMMServer | Anger VMM-server |
CommonParameters | Läs mer |
Exempel
Skapa en port-ACL för objekt som hanteras av nätverksstyrenheten "DemoACLManagedByNC":
PS: C:\> New-SCPortACL -Name "DemoACLManagedByNC" -Description "PortACL Example Managed by NC" -ManagedByN
Skapa en port-ACL för objekt som inte hanteras av nätverksstyrenheten "DemPortACL":
PS: C:\> New-SCPortACL -Name "DemoPortACL" -Description "Port ACL Example Non Managed by NC"
Definiera port-ACL-regler för en port-ACL
Öppna PowerShell i VMM.
Skapa en eller flera regler med New-SCPortACL-cmdleten.
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>]
Parametrar
Parameter | Information |
---|---|
Namn, beskrivning | Regelnamn och beskrivning |
Typ | Anger riktningen på den trafik som ACL:en tillämpas på (inkommande eller utgående) |
Åtgärd | Anger om ACL:en tillåter eller blockerar trafik (tillåt eller neka) |
LocalAddressPrefix | Anger källans IP-adress eller undernät som används för att identifiera trafik som ska filtreras. |
LocalPortRange | Anger portintervallet för källan som används för att identifiera trafik. |
RemoteAddressPrefix | Anger målets IP-adress eller undernät som används för att identifiera trafik för filtrering. |
RemotePortRange | Anger målportintervallet som används för att identifiera trafik. |
Protokoll | Anger vilket protokoll som regeln tillämpas på. |
Prioritet | Ange prioriteten för regeln i port-ACL. Regler tillämpas enligt ordning. Ange prioritet mellan 1 och 65535 där det lägsta numret har högst prioritet. Port-ACL:er för objekt som hanteras av nätverksstyrenheten ska vara lika med eller större än 100. Nätverksstyrenheten har inte stöd för prioritet under 100. |
Exempel
Skapa en port-ACL och lagra objektet i $portACL:
PS: C:\> $portACL = New-SCPortACL -Name "RDP ACL" -Description "Acl on RDP access"
Skapa en regel för port-ACL:er och tillåt RDP-åtkomst från ett fjärranslutet undernät:
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
Ändra prioriteringen för en ACL-regel:
PS: C:\> $portACLRule = Get-SCPortACLRule -Name "AllowRDPAccess" `` <br/><br/> `` PS: C:\> Set-SCPortACLRule -PortACLRule $portACLRule -Priority 220
Det första kommandot hämtar regeln för port-ACL:er "AllowRDPAccess". Det andra kommandot ändrar regelns prioritet till 220.
Ändra regeln för port-ACL:en för adressintervallet som är målet och protokollet för en regel:
PS: C:\> $portACLRule = Get-SCPortACLRule -Name "AllowRDPAccess" `` <br/><br/> `` PS: C:\> Set-SCPortACLRule -PortACLRule $portACLRule -RemoteAddressPrefix 172.185.21.0/24 -Protocol Udp
Det första kommandot hämtar regeln "AllowRDPAccess". Det andra ändrar protokollet till UDP och anger målet till undernät 172.185.21.0/24.
Koppla och koppla från port-ACL: er
En port-ACL kan kopplas till globala inställningar, virtuella datornätverk, undernät för virtuella datorer och virtuella nätverkskort. En port-ACL som är kopplad till globala inställningar, virtuella datornätverk, undernät för virtuella datorer och virtuella nätverkskort.
Öppna PowerShell i VMM.
Koppla en portal-ACL med Set-SCVMMServer-cmdleten.
Set-SCVMMServer –VMMServer <VMMServer> [-PortACL <NetworkAccessControlList> | -RemovePortACL ]
Parametrar
Parameter | Information |
---|---|
VMM-server | Namnet på VMM-servern där port-ACL:en är tillämpad. |
PortACL | Kan lägga till den angivna port-ACL:en i de globala inställningarna. |
Exempel
Koppla en ACL till globala inställningar:
Set-SCVMMServer -VMMServer "VMM.Contoso.Local" -PortACL $acl`` <br/><br/> ExampleL: `` Set-SCVMMServer -VMMServer "VMM.Contoso.Local" -PortACL $acl
Koppla från en ACL från globala inställningar:
Set-SCVMMServer -VMMServer "VMM.Contoso.Local" -RemovePortACL
Koppla en ACL till ett virtuellt datornätverk under skapandet:
New-SCVMNetwork [–PortACL <NetworkAccessControlList>] [rest of the parameters]
Koppla en ACL till ett befintligt virtuellt datornätverk:
Set-SCVMNetwork -PortACL $acl`
Koppla en ACL till ett undernät för virtuella datorer under skapandet:
New-SCVMSubnet [–PortACL <NetworkAccessControlList>] [rest of the parameters]
Koppla en ACL till ett befintligt undernät för virtuella datorer:
Set-SCVMSubnet [–PortACL <NetworkAccessControlList> | -RemovePortACL] [rest of the parameters]
Hämta och se port-ACL:er och regler
Öppna PowerShell i VMM.
Kör Get-SCPortACL-cmdleten för att hämta och se en port-ACL:
Get-SCPortACL [[-Name] <String> ] [-ID <Guid> ] [-OnBehalfOfUser <String> ] [-OnBehalfOfUserRole <UserRole> ] [-VMMServer <ServerConnection> ] [ <CommonParameters>]
Kör Get-SCPortACLRule för att hämta och se en regel:
Get-SCPortACLRule [-Name <String> ] [-ID <Guid> ] [-OnBehalfOfUser <String> ] [-OnBehalfOfUserRole <UserRole> ] [-PortACL <PortACL> ] [-VMMServer <ServerConnection> ] [ <CommonParameters>]
Parametrar
Parameter | Information |
---|---|
Inga parametrar | Hämtar alla ACL:er |
Namn/ID | Hämta efter namn eller GUID |
OnBehalfOfUser/OnBehalfOfUserRole | Kör med användarnamn eller roll |
VMMServer | Hämta ACL:er på en specifik VMM-server |
CommonParameters | Läs mer |
Exempel
Hämta en specifik ACL:
PS: C:> $portACL = Get-SCPortACL -Name "DemoPortACL"
Hämta regler för en specifik ACL:
PS: C:> Get-SCPortACLRule -Name "AllowRDPAccess"
Hämta alla regler för ACL:
PS: C:> Get-SCPortACLRule -PortACL $portACL
Definiera port-ACL:er och regler
Öppna PowerShell i VMM.
Kör Set-SCPortACL-cmdleten för att modifiera en port-ACL:
Set-SCPortACL [-PortACL] <PortACL> [[-Description] <String>] [-JobVariable <String>] [-Name <String>] [-OnBehalfOfUser <String>] [-OnBehalfOfUserRole <UserRole>] [-PROTipID <Guid>] [-RunAsynchronously] [-VMMServer <ServerConnection>] [<CommonParameters>]
Kör Remove-SCPortACL för att ta bort en ACL:
Remove-SCPortACL [-PortACL] <PortACL> [-Confirm] [-JobVariable <String>] [-OnBehalfOfUser <String>] [-OnBehalfOfUserRole <UserRole>] [-PROTipID <Guid>] [-RunAsynchronously] [-VMMServer <ServerConnection>] [-WhatIf] [<CommonParameters>]
Parametrar
Parameter | Information |
---|---|
Namn/beskrivning | Namn och beskrivning för port-ACL |
JobVariable | Jobbförloppet lagras |
OnBehalfOfUser/OnBehalfOfUserRole | Kör med användarnamn eller roll. |
ProTipID | ID för ProTip som utlöste åtgärden |
RunAsynchronously | Anger om jobbet körs asynkront eller inte. |
Bekräfta | Frågor innan du kör jobbet |
WhatIf | Visar vad som händer om du inte kör kommandot |
Exempel
Ange en beskrivning för ACL:
PS: C:> $portACL = Get-SCPortACL -Name "DemoPortACL"
PS: C:> Set-SCPortACL -PortACL $portACL -Description "Port ACL Example Non Managed by Network Controller"
Den första cmdlet:en hämtar ACL:en och den andra anger beskrivningen på den.
Ta bort en ACL:
PS: C:> $portACL = Get-SCPortACL -Name "DemoPortACL"
PS: C:> Remove-SCPortACL -PortACL $portACL
Den första cmdlet:en hämtar ACL:en och den andra tar bort den.