Administración de ACL de puertos en VMM

Importante

Esta versión de Virtual Machine Manager (VMM) ha llegado al final del soporte técnico. Se recomienda actualizar a VMM 2022.

En System Center - Virtual Machine Manager (VMM), puede configurar y administrar de manera centralizada las listas de control de acceso (ACL) a puertos 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 luego agregarlas posteriormente. 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. Después de que una regla coincida con los criterios y se aplique, no se procesa ninguna otra.
  • Se aplica una ACL de puerto de configuración global a todos los adaptadores de red virtual de máquinas virtuales en una infraestructura. No hay ningún tipo de objeto independiente para la configuración global. En su lugar, la ACL de puerto de configuración global se adjunta al servidor de administración de VMM.
  • La configuración de ACL de 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:
    • Los adaptadores y subredes virtuales en una implementación de controladora de red.
    • Las subredes virtuales, adaptadores de red, redes de máquinas virtuales y el servidor de administración de VMM en redes que no estén administradas por controladora de red.

Antes de empezar

  • Para aplicar una ACL a objetos administrados por controladora de red, use la marca ManagedByNC y establézcala 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 establecido en false, a objetos administrados por controladora de red y viceversa.
  • La diferencia clave entre estos dos tipos de ACL es que es necesario corregir cada adaptador de red después de aplicar la ACL en los 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-65535
    • ACL de puerto de SDN (administradas por controladora de red) : 1-64500
  • Necesita permisos de administrador de VMM completos para adjuntar una ACL de puerto a la configuración global. Para asociar la ACL a objetos VMM (redes de VM, subredes, adaptadores de red virtual), debe ser un administrador de VMM o 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 manera centralizada dentro de sus ACL principales y se aplican dondequiera que se adjunte la ACL.
  • Adjuntar más de una ACL a una entidad.
  • Aplicar las ACL de puerto a adaptadores de red virtual en la partición principal de Hyper-V (sistema operativo de administración).
  • Crear reglas de ACL de puerto en VMM que incluyan protocolos a nivel de dirección IP (distintos de TCP o UDP). Hyper-V sigue admitiendo otros protocolos de manera 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 para VMM para hacer lo siguiente:

  1. Definir las reglas y las ACL de puerto.

    • Las reglas se aplican a puertos de conmutador virtual en servidores de Hyper-V como "ACL extendidas de puerto" (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 puertos de conmutador virtual en servidores de Hyper-V como "ACL extendidas de puerto" (VMNetworkAdapterExtendedAcl). Esto significa que solo se pueden aplicar a los hosts que ejecutan Windows Server 2016 o versiones posteriores, ya que VMM no crea ACL de puerto de Hyper-V heredadas (VMNetworkAdapterAcl) para versiones anteriores.
    • Todas las reglas de ACL de puerto definidas en VMM están con estado para TCP. No puede crear reglas de ACL de 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 máquina virtual.

  3. Adjunte las ACL de puerto a las redes de máquina virtual, subredes de máquina virtual o adaptadores de red virtual de máquina virtual.

  4. Administre las reglas de ACL de puerto.

Crear ACL de puerto

  1. Abra PowerShell en VMM.

  2. Cree una ACL de puerto con el 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 Detalles
Nombre; Descripción Nombre y descripción de la ACL de puerto
JobVariable Almacena el progreso de trabajo
ManagedByNC Especifica si los objetos están administrados por controladora de red
OnBehalfOfUser/OnBehalfOfRole Ejecuta el trabajo con el rol o el nombre de usuario
Propietario Especifica el propietario de un objeto de VMM en forma de cuenta de usuario de dominio válida. Ejemplo: Contoso\PattiFuller o PattiFuller@Contoso
ProTipID Id. de 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 VMM
CommonParameters Más información

Ejemplos

Cree una ACL de puerto para los objetos administrados por controladora de red "DemoACLManagedByNC":

PS: C:\> New-SCPortACL -Name "DemoACLManagedByNC" -Description "PortACL Example Managed by NC" -ManagedByN

Cree una ACL de puerto para los objetos que no están administrados por controladora de red "DemPortACL":

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

Definición de las reglas de ACL de puerto de una ACL de puerto

  1. Abra PowerShell en VMM.

  2. Cree 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)
Acción Especifica si la ACL permite o bloquea el tráfico (Permitir o Denegar)
LocalAddressPrefix Especifica la subred o dirección IP de origen 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 subred o dirección IP de destino que se usa para identificar el tráfico que se filtrará.
RemotePortRange Especifica el intervalo de puertos de destino que se usa para identificar el tráfico.
Protocol Especifica el protocolo para el que se aplica la regla.
Prioridad Especifique la prioridad de la regla en la ACL del puerto. Las reglas se aplican según el orden. Establezca una prioridad entre 1 y 65535, donde el número menor tiene prioridad. Las reglas de ACL de puerto para los objetos administrados por la controladora de red deben establecerse en un valor igual o mayor que 100. La controladora de red no admite una prioridad inferior a 100.

Ejemplos

Cree una ACL de puerto y almacene el objeto en $portACL:

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

Cree 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

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

Modifique la regla de ACL de puerto para el intervalo de direcciones de destino y el protocolo de 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.

Adjuntar y desasociar las ACL de puerto

Una ACL de puerto se puede adjuntar a la configuración global, redes de máquinas virtuales, subredes de máquinas virtuales y adaptadores de red virtual. Una ACL de puerto que se adjunta a la configuración global se aplica de forma predeterminada a todos los adaptadores de red virtual de máquina virtual.

  1. Abra PowerShell en VMM.

  2. Adjunte una ACL de portal con 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 de puerto.
PortACL De manera opcional, adjunta la ACL de puerto especificada a la configuración global.

Ejemplos

Adjunte 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

Desasocie una ACL de la configuración global:

Set-SCVMMServer -VMMServer "VMM.Contoso.Local" -RemovePortACL

Adjunte una ACL a una red de máquina virtual durante la creación:

New-SCVMNetwork [–PortACL <NetworkAccessControlList>] [rest of the parameters]

Adjunte una ACL a una red de máquina virtual existente:

Set-SCVMNetwork -PortACL $acl`

Adjunte una ACL a una subred de máquina virtual durante la creación:

New-SCVMSubnet [–PortACL <NetworkAccessControlList>] [rest of the parameters]

Adjunte una ACL a una subred de máquina virtual existente:

Set-SCVMSubnet [–PortACL <NetworkAccessControlList> | -RemovePortACL] [rest of the parameters]

Recuperar y ver las reglas y las ACL de puerto

  1. Abra PowerShell en 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. Ejecute 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
Nombre o Id. Recuperar por nombre o GUID
OnBehalfOfUser y OnBehalfOfUserRole Ejecutar con el rol o el nombre de usuario
VMMServer Recuperar las ACL en el servidor VMM específico
CommonParameters Más información

Ejemplos

Recupere una ACL específica:

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

Obtenga reglas para una ACL específica:

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

Obtenga todas las reglas de ACL:

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

Modificar las reglas y las ACL de puerto

  1. Abra PowerShell en 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. Ejecute 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 de puerto
JobVariable Almacena el progreso de trabajo
OnBehalfOfUser y OnBehalfOfUserRole Ejecutar con el rol o el nombre de usuario.
ProTipID Id. de ProTip que ha desencadenado la acción
RunAsynchronously Indica si el trabajo se ejecuta de forma asincrónica.
Confirmar Mensajes antes de ejecutar el trabajo
WhatIf Muestra lo que ocurre sin ejecutar el comando

Ejemplos

Establezca una descripción de 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.

Quite una ACL:

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

El primer cmdlet recupera la ACL, el segundo, la quita.