Condividi tramite


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 associato.
  • Una ACL contiene delle regole e può essere collegata 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 ACL ha più regole, vengono applicate in base alla priorità. Dopo che una regola corrisponde ai criteri e viene applicata, non vengono elaborate altre regole.
  • Una ACL di porta delle impostazioni globali viene applicata a tutte le schede di rete virtuale della VM 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 Network Controller.

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 agli oggetti VMM (reti VM, subnet, schede di rete virtuali), è necessario essere un amministratore VMM, 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 dei loro ACL (elenchi di controllo degli accessi) padre e si applicano ovunque siano collegati.
  • 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:

  1. 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 delle porte estese" (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.
  2. Collegare un ACL di porta alle impostazioni globali. Questo applica l'elenco di controllo di accesso a tutti gli adattatori di rete virtuali della VM.

  3. Collegare gli elenchi di controllo di accesso delle porte alle reti VM, alle subnet VM o agli adattatori di rete virtuali VM.

  4. Gestire le regole ACL delle porte.

Creare elenchi di controllo di accesso per le porte

  1. Aprire PowerShell in VMM.

  2. 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
Variabile di lavoro Archivia l'avanzamento del lavoro
ManagedByNC Specifica se gli oggetti vengono gestiti dal controller di rete
PerContoDiUtente/PerContoDiRuolo 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 ProTip che ha attivato l'azione
RunAsychronously Indica se il processo viene eseguito in modo asincrono
RuoloUtente Specifica il ruolo utente
VMMServer Specifica il server VMM
ParametriComuni 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 per una 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 Dettagli
Nome, Descrizione Nome e descrizione della regola
Tipo Specifica la direzione del traffico per cui viene applicata l'ACL (in ingresso o in uscita)
Azione Specifica se l'ACL consente o blocca il traffico (Consenti o Nega)
PrefissoIndirizzoLocale 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
PrefissoIndirizzoRemoto 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

Una ACL di porta può essere collegata alle impostazioni globali, alle reti VM, alle subnet VM e alle schede di rete virtuali. Un'ACL di porta collegata alle impostazioni globali si applica per impostazione predefinita a tutti gli adattatori di rete virtuali delle VM.

  1. Aprire PowerShell in VMM.

  2. 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

Associare un ACL alle impostazioni globali:

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

Disassociare 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`

Collega un'ACL a una subnet di VM durante la creazione.

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

Associare 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

  1. Aprire PowerShell in VMM.

  2. 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>]
    
  3. Esegui 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 Recupera in base al nome o al GUID
Per conto di utente/Per conto del ruolo utente Eseguire con nome utente o ruolo
VMMServer Recuperare elenchi di controllo di accesso in un server VMM specifico
ParametriComuni Ulteriori informazioni

Esempi

Recupera un ACL specifico:

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

Ottenere regole per un ACL specifico:

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

Ottieni tutte le regole per l'ACL.

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

Modificare gli ACL e le regole delle porte

  1. Aprire PowerShell in VMM.

  2. 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>]
    
  3. 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
VariabileDiLavoro Archivia l'avanzamento del lavoro
UtentePerContoDi/RuoloUtentePerContoDi Esegui con nome utente o ruolo
ProTipID ID del ProTip che ha attivato l'azione
EseguiAsincronamente Indica se il processo viene eseguito in modo asincrono
Conferma Richieste prima dell'esecuzione del processo
Whatif Mostra cosa accade senza eseguire il comando

Esempi

Definire 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 sull'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.