Compartir a través de


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:

  1. 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.
  2. Adjunte una ACL de puerto a la configuración global. Esto aplica la ACL a todos los adaptadores de red virtual de la VM.

  3. 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.

  4. Administra las reglas de ACL del puerto.

Crea las ACL del puerto

  1. Abre PowerShell en el VMM.

  2. 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

  1. Abre PowerShell en el VMM.

  2. 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.

  1. Abre PowerShell en el VMM.

  2. 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

  1. Abre PowerShell en el VMM.

  2. 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>]
    
  3. 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

  1. Abre PowerShell en el VMM.

  2. 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>]
    
  3. 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.