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 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'elenco di controllo di accesso viene condiviso con più istanze. Tutte le regole vengono gestite centralmente all'interno degli ACL 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 n la 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 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.
    • 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 tutte le schede di rete virtuale della macchina virtuale.

  3. Collegare gli elenchi di controllo di accesso delle porte alle reti VM, alle subnet vm o alle schede di rete virtuale della macchina virtuale.

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

  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
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 da filtrare.
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 superiori a 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.

  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

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

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

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