Administración de ACL de puerto en VMM
En System Center Virtual Machine Manager (VMM), puede configurar y administrar de forma centralizada listas de control de acceso de puertos (ACL) de Hyper-V. Las ACL de puerto se pueden configurar para un tejido administrado por controladora de red y para redes que no están administradas por controladora de red.
- Una ACL de puerto es un conjunto de reglas que filtran el tráfico en el nivel de puerto de capa 2. Una ACL de puerto en VMM filtra el acceso a un objeto VMM determinado. Un objeto de red no puede tener más de una ACL de puerto conectada.
- Una ACL contiene reglas y se puede adjuntar a cualquier número de objetos de red. Puede crear una ACL sin reglas y, a continuación, agregar reglas más adelante. Cada regla de ACL corresponde solo a una ACL de puerto.
- Si una ACL tiene varias reglas, se aplican en función de la prioridad. Una vez que una regla coincide con los criterios y se aplica, no se procesan otras reglas.
- Una ACL de puerto de configuración global se aplica a todos los adaptadores de red virtual de máquina virtual de una infraestructura. No hay ningún tipo de objeto independiente para la configuración global. En su lugar, la ACL del puerto de configuración global está conectada al servidor de administración de VMM.
- La configuración de ACL del puerto solo se expone a través de cmdlets de PowerShell en VMM y no se puede configurar en la consola VMM.
- Las ACL de puerto se pueden aplicar a:
- Subredes virtuales y adaptadores en una implementación de controladora de red.
- Subredes virtuales, adaptadores de red, redes de VM y el servidor de administración de VMM en redes que no están administradas por controladora de red.
Antes de comenzar
- Para aplicar una ACL a objetos administrados por controladora de red, usa la marca ManagedByNC y establécela en True. Si no se establece en True, la ACL solo se aplica a los objetos de red que no están administrados por controladora de red.
- Los tipos de ACL no son intercambiables. No se puede aplicar una ACL con ManagedByNC establecida en false a objetos administrados por la controladora de red y viceversa.
- La diferencia clave entre estos dos tipos de ACL es que debes corregir cada adaptador de red después de aplicar ACL en objetos que no administra la controladora de red.
- También hay una diferencia en los intervalos de prioridad:
- ACL de puerto de Hyper-V (no administradas por controladora de red): 1 a 65535
- ACL de puerto SDN (administradas por controladora de red): 1 - 64500
- Necesitas permisos completos de administrador de VMM para adjuntar una ACL de puerto a la configuración global. Para adjuntar la ACL a objetos de VMM (redes de VM, subredes, adaptadores de red virtual), debes ser un administrador de VMM, un administrador de inquilinos o un usuario de autoservicio.
Escenarios no admitidos
Esta es una lista de escenarios no admitidos:
- Administrar reglas individuales para una sola instancia cuando la ACL se comparte con varias instancias. Todas las reglas se administran de forma centralizada dentro de sus ACL primarias y se aplican siempre que se adjunte la ACL.
- Adjunte más de una ACL a una entidad.
- Aplicar ACL de puerto a adaptadores de red virtual en la partición primaria de Hyper-V (sistema operativo de administración).
- Cree reglas de ACL de puerto en VMM que incluyan protocolos de nivel IP (distintos de TCP o UDP). Hyper-V sigue admitiendo otros protocolos de forma nativa.
- Aplique ACL de puerto a redes lógicas, sitios de red (definiciones de red lógicas), VLAN de subred y otros objetos de red VMM que no se mencionan como compatibles.
Pasos de implementación
Use la interfaz de PowerShell de VMM para hacer lo siguiente:
Definir las ACL y las reglas de puerto.
- Las reglas se aplican a los puertos de conmutador virtual en servidores de Hyper-V como ACL de puerto extendidos (VMNetworkAdapterExtendedAcl). Esto significa que pueden aplicarse únicamente a los hosts que ejecutan Windows Server 2012 R2 o posterior, ya que VMM no crea ACL de puerto de Hyper-V heredadas (VMNetworkAdapterAcl) para las versiones anteriores.
- Las reglas se aplican a los puertos de conmutador virtual en los servidores de Hyper-V como "ACL de puerto extendido" (VMNetworkAdapterExtendedAcl). Esto significa que pueden aplicarse únicamente a los hosts que ejecutan Windows Server 2016 o posterior, ya que VMM no crea ACL de puerto de Hyper-V heredadas (VMNetworkAdapterAcl) para las versiones anteriores.
- Las reglas se aplican a los puertos de conmutador virtual en servidores de Hyper-V como ACL de puerto extendidos (VMNetworkAdapterExtendedAcl). Esto significa que solo se pueden aplicar a hosts que ejecutan Windows Server 2019 o versiones posteriores porque VMM no crea ACL de puerto de Hyper-V heredadas (VMNetworkAdapterAcl) para versiones anteriores.
- Todas las reglas de ACL de puerto definidas en VMM tienen estado para TCP. No se pueden crear reglas de ACL TCP sin estado.
Adjunte una ACL de puerto a la configuración global. Esto aplica la ACL a todos los adaptadores de red virtual de la VM.
Conecta las ACL del puerto a las redes de la VM, las subredes de la VM o los adaptadores de red virtual de la VM.
Administra las reglas de ACL del puerto.
Crea las ACL del puerto
Abre PowerShell en el VMM.
Crea una ACL del puerto con el New-SCPortACL cmdlet.
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 | Detalles |
---|---|
Nombre; Descripción | Nombre y descripción de la ACL del puerto |
JobVariable | Almacena el progreso del trabjo |
ManagedByNC | Especifica si los objetos se administran con controladores de red. |
OnBehalfOfUser/OnBehalfOfRole | Ejecución de un trabajo con el nombre de usuario o el rol |
Owner | Especifica el propietario de un objeto VMM en forma de una cuenta de usuario de dominio válida. Ejemplo: Contoso\PattiFuller o PattiFuller@Contoso |
ProTipID | Identificador del ProTip que ha desencadenado la acción |
RunAsychronously | Indica si el trabajo se ejecuta de forma asincrónica |
UserRole | Especifica el rol de usuario. |
VMMServer | Especifica el servidor del VMM. |
CommonParameters | Más información |
Ejemplos
Crea una ACL del puerto para los objetos administrados por el controlador de red "DemoACLManagedByNC":
PS: C:\> New-SCPortACL -Name "DemoACLManagedByNC" -Description "PortACL Example Managed by NC" -ManagedByN
Cree una ACL de puerto para los objetos no administrados por la controladora de red "DemPortACL":
PS: C:\> New-SCPortACL -Name "DemoPortACL" -Description "Port ACL Example Non Managed by NC"
Definición de reglas de ACL de puerto para una ACL de puerto
Abre PowerShell en el VMM.
Crea una o varias reglas con el 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 | Detalles |
---|---|
Nombre, Descripción | Nombre y descripción de la regla |
Tipo | Especifica la dirección del tráfico para la que se aplica la ACL (entrante o saliente). |
Action | Especifica si la ACL permite o bloquea el tráfico (Permitir o Denegar) |
LocalAddressPrefix | Especifica la dirección IP de origen o la subred que se usa para identificar el tráfico que se debe filtrar. |
LocalPortRange | Especifica el intervalo de puertos de origen que se usa para identificar el tráfico. |
RemoteAddressPrefix | Especifica la dirección IP de destino o la subred que se usa para identificar el tráfico para el filtrado. |
RemotePortRange | Especifica el intervalo de puertos de destino que se usa para identificar el tráfico. |
Protocolo | Especifica el protocolo para el que se aplica la regla. |
Priority | Especifica la prioridad de la regla en la ACL del puerto. Las reglas se aplican según el orden. Establece una prioridad entre 1 y 65535, donde el número más bajo tiene prioridad más alta. Las reglas de ACL de puerto para los objetos administrados por controladora de red deben establecerse iguales o superiores a 100. La controladora de red no admite la prioridad inferior a 100. |
Ejemplos
Crea una ACL de puerto y almacena el objeto en $portACL:
PS: C:\> $portACL = New-SCPortACL -Name "RDP ACL" -Description "Acl on RDP access"
Crea una regla de ACL de puerto para permitir el acceso RDP desde una subred 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
Modifica la prioridad de una regla de ACL:
PS: C:\> $portACLRule = Get-SCPortACLRule -Name "AllowRDPAccess" `` <br/><br/> `` PS: C:\> Set-SCPortACLRule -PortACLRule $portACLRule -Priority 220
El primer comando obtiene la regla de ACL de puerto "AllowRDPAccess". El segundo comando cambia la prioridad de la regla a 220.
Modifica la regla de ACL de puerto para el intervalo de direcciones de destino y el protocolo para una regla:
PS: C:\> $portACLRule = Get-SCPortACLRule -Name "AllowRDPAccess" `` <br/><br/> `` PS: C:\> Set-SCPortACLRule -PortACLRule $portACLRule -RemoteAddressPrefix 172.185.21.0/24 -Protocol Udp
El primer comando recupera la regla AllowRDPAccess. El segundo cambia el protocolo a UDP y establece el destino en la subred 172.185.21.0/24.
Asociación y desasociación de ACL de puerto
Una ACL de puerto se puede conectar a la configuración global, las redes de VM, las subredes de máquina virtual y los adaptadores de red virtual. Una ACL de puerto conectada a la configuración global se aplica de forma predeterminada a todos los adaptadores de red virtual de máquina virtual.
Abre PowerShell en el VMM.
Adjunta una ACL del portal mediante el cmdlet Set-SCVMMServer.
Set-SCVMMServer –VMMServer <VMMServer> [-PortACL <NetworkAccessControlList> | -RemovePortACL ]
Parámetros
Parámetro | Detalles |
---|---|
Servidor VMM | Nombre del servidor VMM en el que se aplica la ACL del puerto |
PortACL | Opcionalmente, asocia la ACL de puerto especificada a la configuración global. |
Ejemplos
Adjunta una ACL a la configuración global:
Set-SCVMMServer -VMMServer "VMM.Contoso.Local" -PortACL $acl`` <br/><br/> ExampleL: `` Set-SCVMMServer -VMMServer "VMM.Contoso.Local" -PortACL $acl
Desasocia una ACL de la configuración global:
Set-SCVMMServer -VMMServer "VMM.Contoso.Local" -RemovePortACL
Conecta una ACL a una red de máquina virtual durante la creación:
New-SCVMNetwork [–PortACL <NetworkAccessControlList>] [rest of the parameters]
Adjunta una ACL a una red de máquina virtual existente:
Set-SCVMNetwork -PortACL $acl`
Conecta una ACL a una subred de máquina virtual durante la creación:
New-SCVMSubnet [–PortACL <NetworkAccessControlList>] [rest of the parameters]
Adjunta una ACL a una subred de máquina virtual existente:
Set-SCVMSubnet [–PortACL <NetworkAccessControlList> | -RemovePortACL] [rest of the parameters]
Recuperación y visualización de ACL y reglas de puerto
Abre PowerShell en el VMM.
Ejecute el cmdlet Get-SCPortACL para recuperar y ver una ACL de puerto:
Get-SCPortACL [[-Name] <String> ] [-ID <Guid> ] [-OnBehalfOfUser <String> ] [-OnBehalfOfUserRole <UserRole> ] [-VMMServer <ServerConnection> ] [ <CommonParameters>]
Ejecuta Get-SCPortACLRule para recuperar y ver una regla:
Get-SCPortACLRule [-Name <String> ] [-ID <Guid> ] [-OnBehalfOfUser <String> ] [-OnBehalfOfUserRole <UserRole> ] [-PortACL <PortACL> ] [-VMMServer <ServerConnection> ] [ <CommonParameters>]
Parámetros
Parámetro | Detalles |
---|---|
Sin parámetros | Recupera todas las ACL |
Identificador de nombre | Recuperación por nombre o GUID |
OnBehalfOfUser/OnBehalfOfUserRole | Ejecutar con el nombre de usuario o el rol |
VMMServer | Recuperación de ACL en un servidor VMM específico |
CommonParameters | Más información |
Ejemplos
Recuperar una ACL específica:
PS: C:> $portACL = Get-SCPortACL -Name "DemoPortACL"
Obtener reglas para una ACL específica:
PS: C:> Get-SCPortACLRule -Name "AllowRDPAccess"
Obtener todas las reglas para la ACL:
PS: C:> Get-SCPortACLRule -PortACL $portACL
Modificar las ACL y las reglas de puerto
Abre PowerShell en el VMM.
Ejecute el cmdlet Set-SCPortACL para modificar una ACL de puerto:
Set-SCPortACL [-PortACL] <PortACL> [[-Description] <String>] [-JobVariable <String>] [-Name <String>] [-OnBehalfOfUser <String>] [-OnBehalfOfUserRole <UserRole>] [-PROTipID <Guid>] [-RunAsynchronously] [-VMMServer <ServerConnection>] [<CommonParameters>]
Ejecuta Remove SCPortACL para quitar una ACL:
Remove-SCPortACL [-PortACL] <PortACL> [-Confirm] [-JobVariable <String>] [-OnBehalfOfUser <String>] [-OnBehalfOfUserRole <UserRole>] [-PROTipID <Guid>] [-RunAsynchronously] [-VMMServer <ServerConnection>] [-WhatIf] [<CommonParameters>]
Parámetros
Parámetro | Detalles |
---|---|
Nombre/descripción: | Nombre y descripción de la ACL del puerto |
JobVariable | Almacena el progreso del trabjo |
OnBehalfOfUser/OnBehalfOfUserRole | Ejecutar con el nombre de usuario o el rol |
ProTipID | Identificador del ProTip que ha desencadenado la acción |
RunAsynchronously | Indica si el trabajo se ejecuta de forma asincrónica |
Confirm | Avisos antes de ejecutar el trabajo |
WhatIf | Muestra lo que sucede sin ejecutar el comando |
Ejemplos
Establece una descripción de la ACL:
PS: C:> $portACL = Get-SCPortACL -Name "DemoPortACL"
PS: C:> Set-SCPortACL -PortACL $portACL -Description "Port ACL Example Non Managed by Network Controller"
El primer cmdlet recupera la ACL; el segundo establece la descripción de la ACL.
Eliminación de una aplicación:
PS: C:> $portACL = Get-SCPortACL -Name "DemoPortACL"
PS: C:> Remove-SCPortACL -PortACL $portACL
El primer cmdlet recupera la ACL; el segundo lo quita.