Gestire gli ACL delle porte in VMM
In System Center Virtual Machine Manager (VMM) è possibile configurare e gestire centralmente gli elenchi di controllo di accesso alle porte Hyper-V (ACL). Gli ACL di porta possono essere configurati sia per un'infrastruttura gestita dal controller di rete che per le reti non gestite dal controller di rete.
- Un ACL di porta è un set di regole che filtrano il traffico a livello di porta di livello 2. Un ACL di porta in VMM filtra l'accesso a un oggetto VMM specifico. Un oggetto di rete non può avere più di un ACL di porta collegato.
- Un elenco di controllo di accesso contiene regole e può essere collegato a un numero qualsiasi di oggetti di rete. È possibile creare un elenco di controllo di accesso senza regole e quindi aggiungere regole in un secondo momento. Ogni regola ACL corrisponde a un solo ACL di porta.
- Se un elenco di controllo di accesso ha più regole, vengono applicate in base alla priorità. Dopo che una regola corrisponde ai criteri e viene applicata, non vengono elaborate altre regole.
- Un ACL di porta delle impostazioni globali viene applicato a tutte le schede di rete virtuale della macchina virtuale in un'infrastruttura. Non esiste alcun tipo di oggetto separato per le impostazioni globali. Al contrario, l'ACL della porta delle impostazioni globali è collegato al server di gestione VMM.
- Le impostazioni ACL delle porte vengono esposte solo tramite i cmdlet di PowerShell in VMM e non possono essere configurate nella console VMM.
- Gli ACL di porta possono essere applicati a:
- Subnet virtuali e schede in una distribuzione del controller di rete.
- Subnet virtuali, schede di rete, reti VM e server di gestione VMM in reti non gestite dal controller di rete.
Prima di iniziare
- Per applicare un ACL agli oggetti gestiti dal controller di rete, usare il flag ManagedByNC e impostarlo su True. Se non è impostata su True, l'ACL si applica solo agli oggetti di rete non gestiti dal controller di rete.
- I tipi ACL non sono intercambiabili. Non è possibile applicare un elenco di controllo di accesso con ManagedByNC impostato su false, agli oggetti gestiti dal controller di rete e viceversa.
- La differenza principale tra questi due tipi di ACL consiste nel fatto che è necessario correggere ogni scheda di rete dopo aver applicato ACL agli oggetti non gestiti dal controller di rete.
- Esiste anche una differenza negli intervalli di priorità:
- ACL di porta Hyper-V (non gestiti dal controller di rete): 1 - 65535
- ACL porta SDN (gestito dal controller di rete): 1 - 64500
- Sono necessarie autorizzazioni di amministratore VMM complete per collegare un ACL di porta alle impostazioni globali. Per collegare l'ACL a oggetti VMM (reti VM, subnet, schede di rete virtuali), è necessario essere un amministratore VMM o un amministratore tenant o un utente self-service.
Scenari non supportati
Ecco un elenco di scenari non supportati:
- Gestire singole regole per una singola istanza quando l'ACL viene condiviso con più istanze. Tutte le regole vengono gestite centralmente all'interno degli elenchi di controllo di accesso padre e si applicano ovunque sia collegato l'ACL.
- Collegare più ACL a un'entità.
- Applicare gli ACL di porta alle schede di rete virtuali nella partizione padre Hyper-V (sistema operativo di gestione).
- Creare regole ACL di porta in VMM che includono protocolli a livello di IP (diversi da TCP o UDP). Altri protocolli sono ancora supportati in modo nativo da Hyper-V.
- Applicare ACL di porta a reti logiche, siti di rete (definizioni di rete logica), VLAN subnet e altri oggetti di rete VMM non indicati come supportati.
Passaggi per la distribuzione
Usare l'interfaccia di PowerShell VMM per eseguire le operazioni seguenti:
Definire elenchi di controllo di accesso e regole delle porte.
- Le regole vengono applicate alle porte del commutatore virtuale nei server Hyper-V come ACL di porta estesa (VMNetworkAdapterExtendedAcl). Ciò significa che possono essere applicati solo agli host che eseguono Windows Server 2012 R2 o versione successiva, perché VMM non crea ACL di porta Hyper-V legacy (VMNetworkAdapterAcl) per le versioni precedenti.
- Le regole vengono applicate alle porte del commutatore virtuale nei server Hyper-V come "ACL porta estesa" (VMNetworkAdapterExtendedAcl). Ciò significa che possono essere applicati solo agli host che eseguono Windows Server 2016 o versione successiva perché VMM non crea ACL di porta Hyper-V legacy (VMNetworkAdapterAcl) per le versioni precedenti.
- Le regole vengono applicate alle porte del commutatore virtuale nei server Hyper-V come ACL di porta estesa (VMNetworkAdapterExtendedAcl). Ciò significa che possono essere applicati solo agli host che eseguono Windows Server 2019 o versione successiva perché VMM non crea ACL di porta Hyper-V legacy (VMNetworkAdapterAcl) per le versioni precedenti.
- Tutte le regole ACL di porta definite in VMM sono con stato per TCP. Non è possibile creare regole ACL TCP senza stato.
Collegare un ACL di porta alle impostazioni globali. Questo applica l'elenco di controllo di accesso a tutte le schede di rete virtuale della macchina virtuale.
Collegare gli elenchi di controllo di accesso delle porte alle reti VM, alle subnet vm o alle schede di rete virtuale della macchina virtuale.
Gestire le regole ACL delle porte.
Creare elenchi di controllo di accesso per le porte
Aprire PowerShell in VMM.
Creare un ACL di porta con il 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>]
Parametri
Parametro | Dettagli |
---|---|
Nome; Descrizione | Nome e descrizione dell'ACL di porta |
JobVariable | Archivia lo stato del processo |
ManagedByNC | Specifica se gli oggetti vengono gestiti dal controller di rete |
OnBehalfOfUser/OnBehalfOfRole | Eseguire il processo con nome utente o ruolo |
Proprietario | Specifica il proprietario di un oggetto VMM sotto forma di account utente di dominio valido. Esempio: Contoso\PattiFuller o PattiFuller@Contoso |
ProTipID | ID del suggerimento protip che ha attivato l'azione |
RunAsychronously | Indica se il processo viene eseguito in modo asincrono |
UserRole | Specifica il ruolo utente |
VMMServer | Specifica il server VMM |
CommonParameters | Ulteriori informazioni |
Esempi
Creare un ACL di porta per gli oggetti gestiti dal controller di rete "DemoACLManagedByNC":
PS: C:\> New-SCPortACL -Name "DemoACLManagedByNC" -Description "PortACL Example Managed by NC" -ManagedByN
Creare un ACL di porta per gli oggetti non gestiti dal controller di rete "DemPortACL":
PS: C:\> New-SCPortACL -Name "DemoPortACL" -Description "Port ACL Example Non Managed by NC"
Definire le regole ACL di porta per un ACL di porta
Aprire PowerShell in VMM.
Creare una o più regole con il 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>]
Parametri
Parametro | Dettagli |
---|---|
Nome, Descrizione | Nome e descrizione della regola |
Type | Specifica la direzione del traffico per cui viene applicato l'elenco di controllo di accesso (in ingresso o in uscita) |
Azione | Specifica se l'ACL consente o blocca il traffico (Consenti o Nega) |
LocalAddressPrefix | Specifica l'indirizzo IP o la subnet di origine usati per identificare il traffico che deve essere filtrato |
LocalPortRange | Specifica l'intervallo di porte di origine usato per identificare il traffico |
RemoteAddressPrefix | Specifica l'indirizzo IP o la subnet di destinazione usati per identificare il traffico per il filtro |
RemotePortRange | Specifica l'intervallo di porte di destinazione usato per identificare il traffico. |
Protocollo | Specifica il protocollo per il quale viene applicata la regola |
Priorità | Specificare la priorità della regola nell'ACL della porta. Le regole vengono applicate in base all'ordine. Impostare una priorità compresa tra 1 e 65535, dove il numero più basso ha la priorità più alta. Le regole ACL delle porte per gli oggetti gestiti dal controller di rete devono essere impostate su o su un valore maggiore di 100. Il controller di rete non supporta la priorità inferiore a 100. |
Esempi
Creare un ACL di porta e archiviare l'oggetto in $portACL:
PS: C:\> $portACL = New-SCPortACL -Name "RDP ACL" -Description "Acl on RDP access"
Creare una regola ACL di porta per consentire l'accesso RDP da una subnet remota:
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
Modificare la priorità di una regola ACL:
PS: C:\> $portACLRule = Get-SCPortACLRule -Name "AllowRDPAccess" `` <br/><br/> `` PS: C:\> Set-SCPortACLRule -PortACLRule $portACLRule -Priority 220
Il primo comando ottiene la regola ACL della porta "AllowRDPAccess". Il secondo comando modifica la priorità della regola su 220.
Modificare la regola ACL della porta per l'intervallo di indirizzi di destinazione e il protocollo per una regola:
PS: C:\> $portACLRule = Get-SCPortACLRule -Name "AllowRDPAccess" `` <br/><br/> `` PS: C:\> Set-SCPortACLRule -PortACLRule $portACLRule -RemoteAddressPrefix 172.185.21.0/24 -Protocol Udp
Il primo comando recupera la regola AllowRDPAccess. Il secondo modifica il protocollo in UDP e imposta la destinazione sulla subnet 172.185.21.0/24.
Collegare e scollegare gli ACL delle porte
Un ACL di porta può essere collegato alle impostazioni globali, alle reti VM, alle subnet vm e alle schede di rete virtuale. Un ACL di porta collegato alle impostazioni globali si applica per impostazione predefinita a tutte le schede di rete virtuale della macchina virtuale.
Aprire PowerShell in VMM.
Collegare un ACL del portale usando il cmdlet Set-SCVMMServer .
Set-SCVMMServer –VMMServer <VMMServer> [-PortACL <NetworkAccessControlList> | -RemovePortACL ]
Parametri
Parametro | Dettagli |
---|---|
Server VMM | Nome del server VMM in cui viene applicato l'ACL della porta |
PortACL | Facoltativamente, collega l'ACL di porta specificato alle impostazioni globali |
Esempi
Allegare un elenco di controllo di accesso alle impostazioni globali:
Set-SCVMMServer -VMMServer "VMM.Contoso.Local" -PortACL $acl`` <br/><br/> ExampleL: `` Set-SCVMMServer -VMMServer "VMM.Contoso.Local" -PortACL $acl
Scollegare un elenco di controllo di accesso dalle impostazioni globali:
Set-SCVMMServer -VMMServer "VMM.Contoso.Local" -RemovePortACL
Collegare un ACL a una rete VM durante la creazione:
New-SCVMNetwork [–PortACL <NetworkAccessControlList>] [rest of the parameters]
Collegare un ACL a una rete VM esistente:
Set-SCVMNetwork -PortACL $acl`
Collegare un elenco di controllo di accesso a una subnet della macchina virtuale durante la creazione:
New-SCVMSubnet [–PortACL <NetworkAccessControlList>] [rest of the parameters]
Collegare un elenco di controllo di accesso a una subnet di vm esistente:
Set-SCVMSubnet [–PortACL <NetworkAccessControlList> | -RemovePortACL] [rest of the parameters]
Recuperare e visualizzare gli ACL e le regole delle porte
Aprire PowerShell in VMM.
Eseguire il cmdlet Get-SCPortACL per recuperare e visualizzare un ACL di porta:
Get-SCPortACL [[-Name] <String> ] [-ID <Guid> ] [-OnBehalfOfUser <String> ] [-OnBehalfOfUserRole <UserRole> ] [-VMMServer <ServerConnection> ] [ <CommonParameters>]
Eseguire Get-SCPortACLRule per recuperare e visualizzare una regola:
Get-SCPortACLRule [-Name <String> ] [-ID <Guid> ] [-OnBehalfOfUser <String> ] [-OnBehalfOfUserRole <UserRole> ] [-PortACL <PortACL> ] [-VMMServer <ServerConnection> ] [ <CommonParameters>]
Parametri
Parametro | Dettagli |
---|---|
Nessun parametro | Recupera tutti gli ACL |
Nome/ID | Recuperare in base al nome o al GUID |
OnBehalfOfUser/OnBehalfOfUserRole | Eseguire con nome utente o ruolo |
VMMServer | Recuperare elenchi di controllo di accesso in un server VMM specifico |
CommonParameters | Ulteriori informazioni |
Esempi
Recuperare un ACL specifico:
PS: C:> $portACL = Get-SCPortACL -Name "DemoPortACL"
Ottenere regole per un ACL specifico:
PS: C:> Get-SCPortACLRule -Name "AllowRDPAccess"
Ottenere tutte le regole per ACL:
PS: C:> Get-SCPortACLRule -PortACL $portACL
Modificare gli ACL e le regole delle porte
Aprire PowerShell in VMM.
Eseguire il cmdlet Set-SCPortACL per modificare un ACL di porta:
Set-SCPortACL [-PortACL] <PortACL> [[-Description] <String>] [-JobVariable <String>] [-Name <String>] [-OnBehalfOfUser <String>] [-OnBehalfOfUserRole <UserRole>] [-PROTipID <Guid>] [-RunAsynchronously] [-VMMServer <ServerConnection>] [<CommonParameters>]
Eseguire Remove-SCPortACL per rimuovere un ACL:
Remove-SCPortACL [-PortACL] <PortACL> [-Confirm] [-JobVariable <String>] [-OnBehalfOfUser <String>] [-OnBehalfOfUserRole <UserRole>] [-PROTipID <Guid>] [-RunAsynchronously] [-VMMServer <ServerConnection>] [-WhatIf] [<CommonParameters>]
Parametri
Parametro | Dettagli |
---|---|
Nome/Descrizione | Nome e descrizione dell'ACL di porta |
JobVariable | Archivia lo stato del processo |
OnBehalfOfUser/OnBehalfOfUserRole | Eseguire con nome utente o ruolo |
ProTipID | ID del suggerimento protip che ha attivato l'azione |
RunAsynchronously | Indica se il processo viene eseguito in modo asincrono |
Confirm | Richieste prima dell'esecuzione del processo |
Whatif | Mostra cosa accade senza eseguire il comando |
Esempi
Impostare una descrizione ACL:
PS: C:> $portACL = Get-SCPortACL -Name "DemoPortACL"
PS: C:> Set-SCPortACL -PortACL $portACL -Description "Port ACL Example Non Managed by Network Controller"
Il primo cmdlet recupera l'ACL; il secondo imposta la descrizione nell'ACL.
Rimuovere un elenco di controllo di accesso:
PS: C:> $portACL = Get-SCPortACL -Name "DemoPortACL"
PS: C:> Remove-SCPortACL -PortACL $portACL
Il primo cmdlet recupera l'ACL; il secondo lo rimuove.