Gerenciar ACLs de porta no VMM

Importante

Esta versão do VMM (Virtual Machine Manager) chegou ao fim do suporte. Recomendamos que você atualize para o VMM 2022.

No System Center – Virtual Machine Manager (VMM), você pode configurar centralmente e gerenciar listas de controle de acesso de porta de Hyper-V (ACLs). As ACLs de porta podem ser configuradas para uma malha gerenciada pelo Controlador de Rede e para redes que não são gerenciadas pelo Controlador de Rede.

  • Uma ACL de porta é um conjunto de regras que filtram o tráfego no nível de porta de camada 2. Uma ACL de porta no VMM filtra o acesso a um determinado objeto do VMM. Um objeto de rede pode ter não mais de uma ACL de porta anexada.
  • Uma ACL contém regras e pode ser anexada a qualquer número de objetos de rede. Você pode criar uma ACL sem regras e, em seguida, adicionar regras em um momento posterior. Cada regra de ACL corresponde a apenas uma ACL de porta.
  • Se uma ACL tiver várias regras, elas serão aplicadas com base na prioridade. Depois que uma regra corresponde aos critérios e é aplicada, nenhuma outra regra é processada.
  • Uma ACL de porta de configurações globais é aplicada a todos os adaptadores de rede virtual VM em uma infraestrutura. Não há nenhum tipo de objeto separado para configurações globais. Em vez disso, a ACL de porta de configurações globais está anexada ao servidor de gerenciamento do VMM.
  • As configurações de ACL de porta são expostas somente por meio de cmdlets do PowerShell no VMM e não podem ser configuradas no console do VMM.
  • ACLs de porta podem ser aplicadas a:
    • Subredes virtuais e adaptadores em uma implantação do controlador de rede.
    • Subredes virtuais, adaptadores de rede, redes VM e o servidor de gerenciamento do VMM em redes que não são gerenciadas por controlador de rede.

Antes de começar

  • Para aplicar uma ACL de objetos gerenciados por controlador de rede, você deve usar o sinalizador ManagedByNC e defini-lo como True. Se ele não estiver definido como True, a ACL só se aplicará a objetos de rede que não são gerenciados pelo Controlador de Rede.
  • Os tipos de ACL não são intercambiáveis. Você não pode aplicar uma ACL com ManagedByNC definido como false, a objetos gerenciados pelo Controlador de Rede e vice-versa.
  • A principal diferença entre esses dois tipos de ACLs é que você precisa corrigir cada adaptador de rede depois de aplicar ACL em objetos que não são gerenciados pelo Controlador de Rede.
  • Também há uma diferença em intervalos de prioridade:
    • ACLs de porta Hyper-V (não gerenciadas por controlador de rede) : 1 a 65535
    • ACLs de porta SDN (gerenciadas por controlador de rede) : 1 a 64500
  • Você precisa de permissões completas de administrador do VMM para anexar uma ACL de porta para configurações globais. Para anexar a ACL a objetos VMM (redes de VM, sub-redes, adaptadores de rede virtual), você precisa ser um administrador do VMM ou administrador de locatário ou um usuário de autoatendimento.

Cenários sem suporte

Aqui está uma lista de cenários sem suporte:

  • Gerenciar regras individuais para uma única instância quando a ACL é compartilhada com várias instâncias. Todas as regras são gerenciadas centralmente dentro de suas ACLs pais e se aplicam sempre que a ACL é anexada.
  • Anexar mais de uma ACL a uma entidade.
  • Aplicar ACLs de porta a adaptadores de rede virtual na partição pai do Hyper-V (sistema operacional de gerenciamento).
  • Criar regras de ACL de porta que incluem protocolos de nível de IP (que não sejam TCP nem UDP). Outros protocolos ainda tem suporte nativamente pelo Hyper-V.
  • Aplique ACLs de porta a redes lógicas, sites de rede (definições de rede lógica), VLANs de sub-rede e outros objetos de rede do VMM que não são mencionados como compatíveis.

Etapas de implantação

Você pode usar a interface do PowerShell do VMM para fazer o seguinte:

  1. Definir ACLs de porta e regras.

    • As regras são aplicadas a portas do comutador virtual em servidores Hyper-V como "ACLs de porta estendida" (VMNetworkAdapterExtendedAcl). Isso significa que elas podem se aplicar somente a hosts que executam o Windows Server 2012 R2 ou posterior, pois o VMM não cria ACLs de porta Hyper-V herdadas (VMNetworkAdapterAcl) para versões anteriores.
    • As regras são aplicadas a portas do comutador virtual em servidores Hyper-V como "ACLs de porta estendida" (VMNetworkAdapterExtendedAcl). Isso significa que eles só podem ser aplicados a hosts que executam Windows Server 2016 ou posterior porque o VMM não cria ACLs de porta herdadas do Hyper-V (VMNetworkAdapterAcl) para versões anteriores.
    • Todas as regras de ACL de porta definidas no VMM têm monitoração de estado para TCP. Você não pode criar regras para TCP ACL sem monitoração de estado.
  2. Anexe uma ACL de porta às configurações globais. Isso aplica a ACL a todos os adaptadores de rede virtual da VM.

  3. Anexe as ACLs de porta a redes VM, sub-redes VM ou adaptadores de rede virtual da VM.

  4. Gerenciar regras de ACL de porta.

Criar ACLs de porta

  1. Abrir o PowerShell no VMM.

  2. Criar uma ACL de porta com o 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>]
    

Parâmetros

Parâmetro Detalhes
Nome; Descrição Nome e descrição da ACL de porta
JobVariable Armazena o trabalho em andamento
ManagedByNC Especifica se os objetos são gerenciados por controlador de rede
OnBehalfOfUser/OnBehalfOfRole Executar o trabalho com o nome de usuário ou função
Proprietário Especifica o proprietário de um objeto do VMM na forma de uma conta de usuário de domínio válido. Exemplo: Contoso\PattiFuller ou PattiFuller@Contoso
ProTipID ID de ProTip que disparou a ação
RunAsychronously Indica se o trabalho é executado de forma assíncrona
UserRole Especifica a função de usuário
VMMServer Especifica o servidor do VMM
CommonParameters Saiba mais

Exemplos

Crie uma ACL de porta para objetos gerenciados por controlador de rede "DemoACLManagedByNC":

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

Crie uma ACL de porta para objetos não gerenciados por controlador de rede "DemPortACL":

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

Definir regras de ACL de porta para uma ACL de porta

  1. Abrir o PowerShell no VMM.

  2. Criar uma ou mais regras com o 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>]
    

Parâmetros

Parâmetro Detalhes
Nome, Descrição Nome e descrição da regra
Digite Especifica a direção do tráfego para o qual a ACL é aplicada (entrada ou saída)
Ação Especifica se a ACL permite ou bloqueia o tráfego (permitir ou negar)
LocalAddressPrefix Especifica o endereço IP de origem ou a sub-rede que é usada para identificar o tráfego que deve ser filtrado.
LocalPortRange Especifica o intervalo de porta de origem que é usado para identificar o tráfego.
RemoteAddressPrefix Especifica o endereço IP de origem ou a sub-rede usada para identificar o tráfego para filtragem.
RemotePortRange Especifica o intervalo de porta de destino que é usado para identificar o tráfego.
Protocolo Especifica o protocolo para o qual a regra é aplicada.
Prioridade Especifique a prioridade da regra na ACL da porta. Regras são aplicadas de acordo com a ordem. Defina uma prioridade entre 1 e 65535, na qual o número mais baixo tem a prioridade mais alta. Regras de ACLs de porta para objetos gerenciados por controlador de rede devem ser definidas para igual ou maior que 100. O controlador de rede não dá suporte a uma prioridade abaixo de 100.

Exemplos

Crie uma ACL de porta e armazene o objeto em $portACL:

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

Crie uma regra de ACL de porta para permitir acesso RDP de uma sub-rede 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

Modifique a prioridade de uma regra de ACL:

PS: C:\> $portACLRule = Get-SCPortACLRule -Name "AllowRDPAccess" `` <br/><br/> `` PS: C:\> Set-SCPortACLRule -PortACLRule $portACLRule -Priority 220

O primeiro comando obtém a regra de ACL de porta "AllowRDPAccess". O segundo comando altera a prioridade da regra para 220.

Modifique a regra de ACL de porta para o intervalo de endereços de destino e protocolo para uma regra:

PS: C:\> $portACLRule = Get-SCPortACLRule -Name "AllowRDPAccess" `` <br/><br/> `` PS: C:\> Set-SCPortACLRule -PortACLRule $portACLRule -RemoteAddressPrefix 172.185.21.0/24 -Protocol Udp

O primeiro comando recupera a regra "AllowRDPAccess". O segundo muda o protocolo para UDP e define o destino para a sub-rede 172.185.21.0/24.

Anexar e desanexar ACLs de porta

Uma ACL de porta pode ser anexada a configurações globais, redes VM, sub-redes VM e adaptadores de rede virtual. Uma ACL de porta anexada a configurações globais é aplicada por padrão para todos os adaptadores de rede virtual da VM.

  1. Abrir o PowerShell no VMM.

  2. Anexar uma ACL de portal usando o cmdlet Set-SCVMMServer.

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

Parâmetros

Parâmetro Detalhes
Servidor VMM Nome do servidor do VMM no qual a ACL de porta é aplicada.
PortACL Opcionalmente, anexa a ACL de porta especificada a configurações globais.

Exemplos

Anexe uma ACL às configurações globais:

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

Desanexe uma ACL das configurações globais:

Set-SCVMMServer -VMMServer "VMM.Contoso.Local" -RemovePortACL

Anexe uma ACL a uma rede VM durante a criação:

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

Anexe uma ACL a uma rede VM existente:

Set-SCVMNetwork -PortACL $acl`

Anexe uma ACL a uma sub-rede VM durante a criação:

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

Anexe uma ACL a uma sub-rede VM existente:

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

Recuperar e exibir regras e ACLs de porta

  1. Abrir o PowerShell no VMM.

  2. Execute o cmdlet Get-SCPortACL para recuperar e exibir uma ACL de porta:

    Get-SCPortACL [[-Name] <String> ] [-ID <Guid> ] [-OnBehalfOfUser <String> ] [-OnBehalfOfUserRole <UserRole> ] [-VMMServer <ServerConnection> ] [ <CommonParameters>]
    
  3. Execute o cmdlet Get-SCPortACLRule para recuperar e exibir uma regra:

    Get-SCPortACLRule [-Name <String> ] [-ID <Guid> ] [-OnBehalfOfUser <String> ] [-OnBehalfOfUserRole <UserRole> ] [-PortACL <PortACL> ] [-VMMServer <ServerConnection> ] [ <CommonParameters>]
    

Parâmetros

Parâmetro Detalhes
Sem parâmetros Recupera todas as ACLs
Nome/ID Recuperar por nome ou GUID
OnBehalfOfUser/OnBehalfOfUserRole Executar com o nome de usuário ou função
VMMServer Recuperar ACLs no servidor VMM específico
CommonParameters Saiba mais

Exemplos

Recupere uma ACL específica:

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

Obtenha regras para uma ACL específica:

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

Obter todas as regras para ACL:

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

Modificar ACLs de porta e regras

  1. Abrir o PowerShell no VMM.

  2. Execute o cmdlet Set-SCPortACL para modificar uma ACL de porta:

    Set-SCPortACL [-PortACL] <PortACL> [[-Description] <String>] [-JobVariable <String>] [-Name <String>] [-OnBehalfOfUser <String>] [-OnBehalfOfUserRole <UserRole>] [-PROTipID <Guid>] [-RunAsynchronously] [-VMMServer <ServerConnection>] [<CommonParameters>]
    
  3. Execute o Remove-SCPortACL para remover uma ACL:

    Remove-SCPortACL [-PortACL] <PortACL> [-Confirm] [-JobVariable <String>] [-OnBehalfOfUser <String>] [-OnBehalfOfUserRole <UserRole>] [-PROTipID <Guid>] [-RunAsynchronously] [-VMMServer <ServerConnection>] [-WhatIf] [<CommonParameters>]
    

    Parâmetros

Parâmetro Detalhes
Nome/Descrição Nome e descrição da ACL de porta
JobVariable Armazena o trabalho em andamento
OnBehalfOfUser/OnBehalfOfUserRole Executar com o nome de usuário ou função.
ProTipID ID de ProTip que disparou a ação
RunAsynchronously Indica se o trabalho é executado de forma assíncrona.
Confirmar Avisa antes de executar o trabalho
WhatIf Mostra o que acontece sem executar o comando

Exemplos

Defina uma descrição de ACL:

PS: C:> $portACL = Get-SCPortACL -Name "DemoPortACL"
PS: C:> Set-SCPortACL -PortACL $portACL -Description "Port ACL Example Non Managed by Network Controller"

O primeiro cmdlet recupera a ACL, o segundo define a descrição na ACL.

Remova uma ACL:

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

O primeiro cmdlet recupera a ACL, o segundo a remove.