Gerenciar ACLs de porta no VMM
No System Center Virtual Machine Manager (VMM), você pode configurar e gerenciar centralmente as ACLs (listas de controle de acesso) de porta Hyper-V. 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 da porta da camada 2. Uma ACL de porta no VMM filtra o acesso a um determinado objeto do VMM. Um objeto de rede não pode ter 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 adicioná-las posteriormente. 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 de VM em uma infraestrutura. Não há nenhum tipo de objeto separado para configurações globais. Em vez disso, a ACL da porta de configurações globais é 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.
- As ACLs de porta podem ser aplicadas a:
- Sub-redes e adaptadores virtuais em uma implantação do Controlador de Rede.
- Sub-redes virtuais, adaptadores de rede, redes VM e o servidor de gerenciamento do VMM em redes que não são gerenciadas pelo Controlador de Rede.
Antes de começar
- Para aplicar uma ACL a objetos gerenciados pelo Controlador de Rede, use o sinalizador ManagedByNC e defina-o como True. Se 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 a ACL em objetos que não são gerenciados pelo Controlador de Rede.
- Há também uma diferença nos intervalos de prioridade:
- ACLs de porta Hyper-V (não gerenciadas pelo Controlador de Rede): 1 - 65535
- ACLs de porta SDN (gerenciadas pelo Controlador de Rede): 1 - 64500
- Você precisa de permissões completas de administrador do VMM para anexar uma ACL de porta às configurações globais. Para anexar a ACL a objetos do VMM (redes VM, sub-redes, adaptadores de rede virtual), você precisa ser um administrador do VMM ou administrador de locatários ou um usuário de autoatendimento.
Cenários sem suporte
Aqui está uma lista de cenários sem suporte:
- Gerencie regras individuais para uma única instância quando a ACL é compartilhada com várias instâncias. Todas as regras são gerenciadas centralmente em suas ACLs pai e se aplicam onde quer que a ACL esteja anexada.
- Anexe mais de uma ACL a uma entidade.
- Aplique ACLs de porta a adaptadores de rede virtual na partição pai do Hyper-V (sistema operacional de gerenciamento).
- Crie regras de ACL de porta no VMM que incluam protocolos de nível IP (diferentes de TCP ou UDP). Outros protocolos ainda têm suporte nativo do 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 suportados.
Etapas de implantação
Use a interface do PowerShell do VMM para fazer o seguinte:
Defina ACLs e regras de porta.
- As regras são aplicadas a portas de comutador virtual em servidores Hyper-V como ACLs de porta estendida (VMNetworkAdapterExtendedAcl). Isso significa que eles podem ser aplicados 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 de comutador virtual em servidores Hyper-V como "ACLs de porta estendida" (VMNetworkAdapterExtendedAcl). Isso significa que eles podem ser aplicados somente a hosts que executam o Windows Server 2016 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 de comutador virtual em servidores Hyper-V como ACLs de porta estendida (VMNetworkAdapterExtendedAcl). Isso significa que eles podem ser aplicados somente a hosts que executam o Windows Server 2019 ou posterior, pois o VMM não cria ACLs de porta Hyper-V herdadas (VMNetworkAdapterAcl) para versões anteriores.
- Todas as regras de ACL de porta definidas no VMM são com estado para TCP. Você não pode criar regras de ACL TCP sem estado.
Anexe uma ACL de porta às configurações globais. Isso aplica a ACL a todos os adaptadores de rede virtual da VM.
Anexe as ACLs de porta a redes VM, sub-redes VM ou adaptadores de rede virtual VM.
Gerencie regras de ACL de porta.
Criar ACLs de porta
Abra o PowerShell no VMM.
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 |
---|---|
Nome; Descrição | Nome e descrição da ACL da porta |
Variável de trabalho | Armazena o progresso do trabalho |
Gerenciado porNC | Especifica se os objetos são gerenciados pelo Controlador de Rede |
OnBehalfOfUser/OnBehalfOfRole | Executar trabalho com 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álida. Exemplo: Contoso\PattiFuller ou PattiFuller@Contoso |
ProTipID | ID da ProTip que acionou a ação |
RunAsychronously | Indica se o trabalho é executado de forma assíncrona |
UserRole | Especifica a função do usuário |
VMMServer | Especifica o servidor VMM |
CommonParameters | Saiba mais |
Exemplos
Crie uma ACL de porta para objetos gerenciados 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 gerenciados pelo 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
Abra o PowerShell no VMM.
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 |
---|---|
Nome, Descrição | Nome e descrição da regra |
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 o endereço IP de origem ou sub-rede usado para identificar o tráfego que deve ser filtrado |
Intervalo de portas locais | Especifica o intervalo de portas de origem usado para identificar o tráfego |
Prefixo de endereço remoto | Especifica o endereço IP ou sub-rede de destino usado para identificar o tráfego para filtragem |
Intervalo de portas remotas | 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. As regras são aplicadas de acordo com a ordem. Defina uma prioridade entre 1 e 65535, em que o número mais baixo tem prioridade mais alta. As regras de ACLs de porta para objetos gerenciados pelo Controlador de Rede devem ser definidas como iguais ou superiores a 100. O Controlador de Rede não dá suporte a 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 o 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 o protocolo de 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 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 a configurações globais, redes VM, sub-redes VM e adaptadores de rede virtual. Uma ACL de porta anexada às configurações globais se aplica por padrão a todos os adaptadores de rede virtual da VM.
Abra o PowerShell no VMM.
Anexe uma ACL do portal usando o cmdlet Set-SCVMMServer .
Set-SCVMMServer –VMMServer <VMMServer> [-PortACL <NetworkAccessControlList> | -RemovePortACL ]
Parâmetros
Parâmetro | Detalhes |
---|---|
Servidor VMM | Nome do servidor VMM no qual a ACL de porta é aplicada |
PortaACL | Opcionalmente, anexa a ACL de porta especificada às 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
Desanexar 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 de VM durante a criação:
New-SCVMSubnet [–PortACL <NetworkAccessControlList>] [rest of the parameters]
Anexe uma ACL a uma sub-rede de VM existente:
Set-SCVMSubnet [–PortACL <NetworkAccessControlList> | -RemovePortACL] [rest of the parameters]
Recuperar e visualizar ACLs e regras de porta
Abra o PowerShell no VMM.
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>]
Execute o 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 nome de usuário ou função |
VMMServer | Recuperar ACLs em um 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"
Obtenha todas as regras para ACL:
PS: C:> Get-SCPortACLRule -PortACL $portACL
Modificar ACLs e regras de porta
Abra o PowerShell no VMM.
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>]
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 da porta |
Variável de trabalho | Armazena o progresso do trabalho |
OnBehalfOfUser/OnBehalfOfUserRole | Executar com nome de usuário ou função |
ProTipID | ID da ProTip que acionou a ação |
ExecutarDe forma assíncrona | Indica se o trabalho é executado de forma assíncrona |
Confirmar | Prompts 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.
Remover uma ACL:
PS: C:> $portACL = Get-SCPortACL -Name "DemoPortACL"
PS: C:> Remove-SCPortACL -PortACL $portACL
O primeiro cmdlet recupera a ACL; o segundo o remove.