Gestire gli ACL della porta in VMM

Importante

Questa versione di Virtual Machine Manager (VMM) ha raggiunto la fine del supporto. È consigliabile eseguire l'aggiornamento a VMM 2022.

In System Center Virtual Machine Manager (VMM) è possibile configurare e gestire centralmente gli elenchi di controllo di accesso (ACL, Access Control List) di una porta Hyper-V. 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 della porta è un set di regole che filtrano il traffico al livello 2 del livello della porta. Un ACL di porta in VMM filtra l'accesso a un determinato oggetto VMM. Non è possibile associare più di un ACL della porta a un oggetto di rete.
  • Un ACL contiene regole e può essere collegato a qualsiasi numero di oggetti di rete. È possibile creare un ACL senza regole e quindi aggiungere le regole in un secondo momento. Ogni regola ACL corrisponde a una sola porta ACL.
  • Se un ACL include più regole, vengono applicate in base alla priorità. Dopo l'applicazione di una regola corrispondente ai criteri non vengono elaborate altre regole.
  • Un ACL della porta delle impostazioni globali viene applicato a tutte le schede di rete virtuali delle macchine virtuali nell'infrastruttura. Non è disponibile un tipo di oggetto separato per le impostazioni globali. L'ACL della porta delle impostazioni globali viene invece collegato al server di gestione VMM.
  • Le impostazioni dell'elenco di accesso alla porta vengono esposte solo tramite i cmdlet di PowerShell in VMM e non possono essere configurate nella console VMM.
  • Gli ACL della porta possono essere applicati a:
    • Subnet virtuali e schede in una distribuzione di Controller di rete.
    • Subnet virtuali, schede di rete, reti VM e server di gestione di VMM nelle reti che non sono gestite da Controller di rete.

Prima di iniziare

  • Per applicare un ACL agli oggetti gestiti da Controller di rete è necessario usare il flag ManagedByNC e impostarlo su true. Se non è impostato su True, l'ACL si applica solo agli oggetti di rete non gestiti dal controller di rete.
  • I tipi di ACL non sono intercambiabili. Non è possibile applicare un elenco di controllo di accesso con ManagedByNC impostato su false, agli oggetti gestiti da Controller di rete e viceversa.
  • La differenza chiave tra questi due tipi di elenchi di controllo di accesso è che è necessario correggere ogni scheda di rete dopo aver applicato ACL agli oggetti che non sono gestiti da Controller di rete.
  • Esiste anche una differenza per gli intervalli di priorità:
    • ACL di porta Hyper-V (non gestiti da Controller di rete) : tra 1 e 65535
    • ACL di porta SDN (gestiti da Controller di rete) : tra 1 e 64500
  • Sono necessarie autorizzazioni di amministrazione VMM complete per collegare un ACL della porta alle impostazioni globali. Per collegare l'ACL agli oggetti VMM (reti VM, subnet, schede di rete virtuale), è necessario essere un amministratore O un amministratore del tenant VMM 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 è condiviso con più istanze. Tutte le regole sono gestite a livello centrale all'interno degli ACL padre e vengono applicate ogni qualvolta l'ACL viene collegato.
  • Collegare più di un ACL a un'entità.
  • Applicare gli ACL della porta a schede di rete virtuali nella partizione padre Hyper-V (sistema operativo di gestione).
  • Creare regole ACL della porta in VMM che includono protocolli a livello IP (diversi da TCP o UDP). Gli altri protocolli sono ancora supportati in modo nativo da Hyper-V.
  • Applicare gli ACL di porta alle reti logiche, ai siti di rete (definizioni di rete logica), alle subnet VLAN e ad altri oggetti di rete VMM non indicati come supportati.

Passaggi per la distribuzione

Usare l'interfaccia PowerShell di VMM per eseguire le operazioni seguenti:

  1. Definire gli ACL della porta e le regole.

    • Le regole vengono applicate alle porte di commutatori virtuali su server Hyper-V come "ACL estesi della porta" (VMNetworkAdapterExtendedAcl). Questo significa che possono essere applicati solo agli host che eseguono Windows Server 2012 R2 o versione successiva, in quanto VMM non consente di creare ACL della porta Hyper-V legacy (VMNetworkAdapterAcl) per le versioni precedenti.
    • Le regole vengono applicate alle porte di commutatori virtuali su server Hyper-V come "ACL estesi della porta" (VMNetworkAdapterExtendedAcl). Ciò significa che possono essere applicati solo agli host che eseguono Windows Server 2016 o versioni successive perché VMM non crea gli ACL di porta Hyper-V legacy (VMNetworkAdapterAcl) per le versioni precedenti.
    • Tutte le regole ACL di porta definite in VMM sono regole con stato per il protocollo TCP. Non è possibile creare regole ACL TCP senza stato.
  2. Collegare un ACL della porta alle impostazioni globali. L'ACL viene così applicato a tutte le schede di rete virtuali delle macchine virtuali.

  3. Collegare gli ACL di porta a reti VM, subnet VM o schede di rete virtuali VM.

  4. Gestire le regole dell'ACL della porta.

Creare ACL della porta

  1. Aprire PowerShell in VMM.

  2. Creare un ACL della 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 Informazioni dettagliate
Name; Description Nome e descrizione dell'ACL della porta
JobVariable Archivia lo stato di avanzamento del processo
ManagedByNC Specifica se gli oggetti vengono gestiti da Controller di rete
OnBehalfOfUser/OnBehalfOfRole Esegue 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 di 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
Parametri comuni Altre informazioni

Esempi

Creare un ACL della porta per gli oggetti gestiti da Controller di rete "DemoACLManagedByNC":

PS: C:\> New-SCPortACL -Name "DemoACLManagedByNC" -Description "PortACL Example Managed by NC" -ManagedByN

Creare un ACL della porta per gli oggetti non gestiti da Controller di rete "DemPortACL":

PS: C:\> New-SCPortACL -Name "DemoPortACL" -Description "Port ACL Example Non Managed by NC"

Definire le regole per un ACL della porta

  1. Aprire PowerShell in VMM.

  2. 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 Informazioni dettagliate
Name, Description Nome e descrizione della regola
Tipo Specifica la direzione del traffico per il quale viene applicato l'ACL (in ingresso o in uscita)
Azione Specifica se l'elenco ACL consente o blocca il traffico (Allow o Deny)
LocalAddressPrefix Specifica l'indirizzo IP di origine o la subnet 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 di destinazione o la subnet usati per identificare il traffico che deve essere filtrato.
RemotePortRange Specifica l'intervallo di porte di destinazione utilizzato per identificare il traffico.
Protocollo Specifica il protocollo per il quale viene applicata la regola.
Priorità Specificare la priorità della regola nell'elenco di controllo di accesso alla porta. Le regole vengono applicate in base all'ordine. Impostare una priorità compresa tra 1 e 65535, dove il numero più basso corrisponde alla priorità più alta. Le regole ACL delle porte per gli oggetti gestiti da Controller di rete devono essere impostate su o maggiori di 100. Controller di rete attualmente non supporta una priorità inferiore a 100.

Esempi

Creare un ACL della porta e archiviare l'oggetto in $portACL:

PS: C:\> $portACL = New-SCPortACL -Name "RDP ACL" -Description "Acl on RDP access"

Creare una regola ACL della 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 in 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 comando imposta il protocollo UDP e imposta la destinazione sulla subnet 172.185.21.0/24.

Collegare e scollegare gli ACL della porta

Un ACL della porta può essere collegato a impostazioni globali, reti VM, subnet VM e schede di rete virtuali. Un ACL della porta collegato a impostazioni globali viene applicato per impostazione predefinita a tutte le schede di rete virtuali delle macchine virtuali.

  1. Aprire PowerShell in VMM.

  2. Collegare un ACL della porta tramite il cmdlet Set-SCVMMServer.

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

Parametri

Parametro Informazioni dettagliate
Server di VMM Nome del server VMM in cui viene applicato l'ACL della porta.
PortACL Collega facoltativamente l'ACL della porta specificato alle impostazioni globali.

Esempi

Collegare un ACL alle impostazioni globali:

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

Scollegare un ACL 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 ACL a una subnet VM durante la creazione:

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

Collegare un ACL a una subnet VM esistente:

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

Recuperare e visualizzare ACL della porta e regole

  1. Aprire PowerShell in VMM.

  2. Eseguire il cmdlet Get-SCPortACL per recuperare e visualizzare un ACL della porta:

    Get-SCPortACL [[-Name] <String> ] [-ID <Guid> ] [-OnBehalfOfUser <String> ] [-OnBehalfOfUserRole <UserRole> ] [-VMMServer <ServerConnection> ] [ <CommonParameters>]
    
  3. Eseguire il cmdlet 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 Informazioni dettagliate
Nessun parametro Recupera tutti gli ACL
Name/ID Esegue il recupero in base a nome o GUID
OnBehalfOfUser/OnBehalfOfUserRole Esegue il processo con nome utente o ruolo
VMMServer Recupera gli ACL nel server VMM specifico
Parametri comuni Altre informazioni

Esempi

Recuperare un ACL specifico:

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

Recuperare le regole per un ACL specifico:

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

Recuperare tutte le regole per l'ACL:

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

Modificare gli ACL della porta e le regole

  1. Aprire PowerShell in VMM.

  2. Eseguire il cmdlet Set-SCPortACL per modificare un ACL della porta:

    Set-SCPortACL [-PortACL] <PortACL> [[-Description] <String>] [-JobVariable <String>] [-Name <String>] [-OnBehalfOfUser <String>] [-OnBehalfOfUserRole <UserRole>] [-PROTipID <Guid>] [-RunAsynchronously] [-VMMServer <ServerConnection>] [<CommonParameters>]
    
  3. Eseguire il cmdlet 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 Informazioni dettagliate
Name/Description Nome e descrizione dell'ACL della porta
JobVariable Archivia lo stato di avanzamento del processo
OnBehalfOfUser/OnBehalfOfUserRole Esegue il processo con nome utente o ruolo
ProTipID ID di ProTip che ha attivato l'azione
RunAsynchronously Indica se il processo viene eseguito in modo asincrono
Confirm Richiede conferma prima di eseguire il processo
WhatIf Mostra cosa succede senza eseguire il comando

Esempi

Impostare la descrizione di un 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 ACL:

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

Il primo cmdlet recupera l'ACL, il secondo lo rimuove.