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:
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.
Anexe uma ACL de porta às definições globais. Isto aplica a ACL a todas as placas de rede virtuais VM.
Anexe as ACLs de porta às redes VM, sub-redes VM ou placas de redes virtuais VM.
Efetue a gestão das regras da 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 |
---|---|
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
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 |
---|---|
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.
Abra o PowerShell no VMM.
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
Abra o PowerShell no VMM.
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>]
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
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 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.