Partilhar via


Gerir ACLs de porta no VMM

Importante

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

No System Center - Virtual Machine Manager (VMM), pode configurar e gerir centralmente as listas de controlo de acesso à porta hyper-V (ACLs). As ACLs de porta podem ser configuradas para recursos de infraestrutura geridos pelo Controlador de Rede e para redes que não são geridas pelo Controlador de Rede.

  • Uma ACL de porta é um conjunto de regras que filtra o tráfego ao nível da porta da camada 2. Uma ACL de porta no VMM filtra o acesso a um objeto do VMM específico. Um objeto de rede não pode ter mais do que uma ACL de porta anexada.
  • Uma ACL contém regras e pode ser anexada a qualquer número de objetos de rede. Pode criar uma ACL sem regras e adicionar regras mais tarde. Cada regra da ACL corresponde apenas a uma ACL de porta.
  • Se uma ACL tiver múltiplas regras, estas são aplicadas com base na prioridade. Após uma regra corresponder aos critérios e ser aplicada, as outras regras não são processadas.
  • Uma ACL de porta de definições globais é aplicada a todas as placas de rede virtuais VM numa infraestrutura. Não existe um tipo de objeto separado para definições globais. Em alternativa, a ACL de porta de definições globais é anexada ao servidor de gestão do VMM.
  • As definições da ACL de Porta são expostas apenas através de cmdlets do PowerShell no VMM e não podem ser configuradas na consola do VMM.
  • As ACLs de porta podem ser aplicadas a:
    • Placas de rede e sub-redes virtuais numa implementação do Controlador de Rede.
    • Sub-redes virtuais, placas de rede, redes VM e ao servidor de gestão do VMM em redes que não são geridas pelo Controlador de Rede.

Antes de começar

  • Para aplicar uma ACL a objetos geridos pelo Controlador de Rede, utilize o sinalizador ManagedByNC e defina-o como Verdadeiro. Se não estiver definida como Verdadeiro, a ACL aplica-se apenas a objetos de rede que não são geridos pelo Controlador de Rede.
  • Os tipos de ACL não são intercambiáveis. Não pode aplicar uma ACL com o ManagedByNC definido como falso, a objetos geridos pelo Controlador de Rede e vice-versa.
  • A principal diferença entre estes dois tipos de ACLs é que tem de remediar cada placa de rede depois de aplicar a ACL em objetos que não são geridos pelo Controlador de Rede.
  • Também existe uma diferença nos intervalos de prioridade:
    • ACLs de porta do Hyper-V (não gerido pelo Controlador de Rede): 1 - 65535
    • ACLs de porta do SDN (gerido pelo Controlador de Rede): 1 - 64500
  • Precisa de todas as permissões de administrador do VMM para anexar uma ACL de porta às definições globais. Para anexar a ACL a objetos VMM (redes VM, sub-redes, adaptadores de rede virtual), tem de ser um administrador do VMM ou administrador de inquilinos ou um utilizador self-service.

Cenários não suportados

Eis uma lista de cenários não suportados:

  • Gerir regras individuais para uma única instância, quando a ACL é partilhada com múltiplas instâncias. Todas as regras são geridas centralmente nas respetivas ACLs principais e são aplicadas onde quer que a ACL esteja anexada.
  • Anexar mais do que uma ACL a uma entidade.
  • Aplicar ACLs de porta a placas de rede virtuais na partição principal do Hyper-V (sistema operativo de gestão).
  • Criar regras da ACL de porta no VMM que incluam protocolos de nível de IP (que não sejam TCP ou UDP). O Hyper-V ainda suporta nativamente outros protocolos.
  • 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 suportados.

Passos da implementação

Utilize a interface do PowerShell do VMM para fazer o seguinte:

  1. Defina ACLs de porta e regras.

    • As regras são aplicadas a portas de comutador virtual nos servidores do Hyper-V como "ACLs de porta expandidas" (VMNetworkAdapterExtendedAcl). Tal significa que apenas podem ser aplicadas aos anfitriões com o Windows Server 2012 R2 ou posterior porque o VMM não cria ACLs de porta do Hyper-V legadas (VMNetworkAdapterAcl) para versões anteriores.
    • As regras são aplicadas a portas de comutador virtual nos servidores do Hyper-V como "ACLs de porta expandidas" (VMNetworkAdapterExtendedAcl). Isto significa que só podem aplicar-se a anfitriões em execução Windows Server 2016 ou posteriores porque o VMM não cria ACLs de porta Hyper-V legados (VMNetworkAdapterAcl) para versões anteriores.
    • Todas as regras da ACL de porta definidas no VMM têm monitorização de estado para o TCP. Não pode criar regras da ACL de TCP sem monitorização de estado.
  2. Anexe uma ACL de porta às definições globais. Isto aplica a ACL a todas as placas de rede virtuais VM.

  3. Anexe as ACLs de porta às redes VM, sub-redes VM ou placas de redes virtuais VM.

  4. Efetue a gestão das regras da ACL de porta.

Criar ACLs de porta

  1. Abra o PowerShell no VMM.

  2. Crie 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
Name; Description Nome e descrição da ACL de porta
JobVariable Armazena o progresso da tarefa
ManagedByNC Especifica se os objetos são geridos pelo Controlador de Rede
OnBehalfOfUser/OnBehalfOfRole Executa a tarefa com o nome de utilizador ou função
Proprietário Especifica o proprietário de um objeto do VMM sob a forma de uma conta de utilizador de domínio válida. Exemplo: Contoso\PattiFuller ou PattiFuller@Contoso
ProTipID ID da Sugestão Pro que ativou a ação
RunAsychronously Indica se a tarefa é executada de modo assíncrono
UserRole Especifica a função de utilizador
VMMServer Especifica o servidor VMM
CommonParameters Saiba mais

Exemplos

Crie uma porta de ACL para objetos geridos pelo 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 geridos pelo Controlador de Rede "DemPortACL":

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

Definir regras da ACL de porta para uma ACL de porta

  1. Abra o PowerShell no VMM.

  2. Crie 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
Name, Description Nome da regra e descrição
Tipo Especifica a direção do tráfego para a 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 a sub-rede ou o endereço IP de origem que é utilizado para identificar o tráfego que deve ser filtrado.
LocalPortRange Especifica o intervalo de portas de origem que é utilizado para identificar o tráfego.
RemoteAddressPrefix Especifica o endereço IP de destino ou sub-rede utilizado para identificar o tráfego para filtragem.
RemotePortRange Especifica o intervalo de portas de destino que é utilizado para identificar o tráfego.
Protocolo Especifica o protocolo para o qual a regra é aplicada.
Prioridade Especifique a prioridade da regra na ACL de porta. As regras são aplicadas de acordo com a ordem. Defina uma prioridade entre 1 e 65535, em que o menor número tem a prioridade mais alta. As regras de ACLs de porta para objetos geridos pelo Controlador de Rede devem ser definidas como iguais ou superiores a 100. O Controlador de Rede não suporta uma prioridade abaixo de 100.

Exemplos

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

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

Crie uma regra da ACL de porta para permitir o acesso RDP a partir 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 da 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 da ACL de porta "AllowRDPAccess". O segundo comando altera a prioridade da regra para 220.

Modifique a regra da ACL de porta para o protocolo e intervalo de endereços de destino 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 obtém a regra "AllowRDPAccess". O segundo altera 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 às definições globais, redes VM, sub-redes VM e placas de rede virtuais. Uma ACL de porta anexada às definições globais é aplicada por predefinição a todas as placas de redes virtuais VM.

  1. Abra o PowerShell no VMM.

  2. Anexe uma ACL de porta com o cmdlet Set-SCVMMServer.

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

Parâmetros

Parâmetro Detalhes
VMM server Nome do servidor VMM no qual a ACL de porta é aplicada.
PortACL Anexa opcionalmente a ACL de porta especificada às definições globais.

Exemplos

Anexe uma ACL às definiçõ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 definiçõ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]

Obter e ver ACLs de porta e regras

  1. Abra o PowerShell no VMM.

  2. Execute o cmdlet Get-SCPortACL para obter e ver uma ACL de porta:

    Get-SCPortACL [[-Name] <String> ] [-ID <Guid> ] [-OnBehalfOfUser <String> ] [-OnBehalfOfUserRole <UserRole> ] [-VMMServer <ServerConnection> ] [ <CommonParameters>]
    
  3. Execute o cmdlet Get-SCPortACLRule para obter e ver 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 Obtém todas as ACLs
Name/ID Obtém pelo nome ou GUID
OnBehalfOfUser/OnBehalfOfUserRole Executa com o nome de utilizador ou função
VMMServer Obtém ACLs no servidor VMM específico
CommonParameters Saiba mais

Exemplos

Obtém uma ACL específica:

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

Obtém regras para uma ACL específica:

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

Obtém todas as regras para a ACL:

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

Modificar ACLs de porta e regras

  1. Abra 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 cmdlet 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
Name/Description Nome e descrição da ACL de porta
JobVariable Armazena o progresso da tarefa
OnBehalfOfUser/OnBehalfOfUserRole Executa com o nome de utilizador ou função.
ProTipID ID da Sugestão Pro que ativou a ação
RunAsynchronously Indica se a tarefa é executada de modo assíncrono.
Confirmar Pede antes de executar a tarefa
WhatIf Mostra o que acontece sem executar o comando

Exemplos

Defina uma descrição da 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 obtém 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 obtém a ACL, o segundo remove-a.