Control remoto de System Center 2012 R2
Se aplica a: System Center 2012 R2 Virtual Machine Manager
La consola remota es una característica que se introdujo en System Center 2012 R2. La consola remota proporciona a los inquilinos la posibilidad de obtener acceso a la consola de sus máquinas virtuales en escenarios en que otras herramientas remotas (o Escritorio remoto) no están disponibles. Los inquilinos pueden utilizar la consola remota para tener acceso a las máquinas virtuales cuando la máquina virtual está en una red aislada, en una red que no es de confianza o a través de Internet.
La consola remota necesita lo siguiente para ejecutarse:
Microsoft® Hyper-V® Server 2012 R2
System Center 2012 R2 Virtual Machine Manager
System Center 2012 R2 Service Provider Foundation
Paquete de Windows Azure para Windows Server
Nota
Los inquilinos necesitan un equipo cliente que admita el Protocolo de escritorio remoto 8.1. Por ejemplo, los usuarios que ejecutan Windows 8 deben actualizar a Windows 8.1. Además, los clientes que usan Windows 7 SP1 deben instalar KB2830477.
En esta versión, la consola remota admite la funcionalidad limitada. No se admiten características tales como el portapapeles, el sonido, la redirección de impresoras y la asignación de unidades. La consola remota funciona de forma similar a la de la conexión del teclado, el vídeo y el mouse (KVM) que utilizan los equipos físicos.
Autenticación del usuario
Hyper-V en Windows Server 2012 R2 admite la autenticación basada en certificados, que se utiliza para garantizar que los inquilinos sólo tienen acceso a las máquinas virtuales que se les han asignado. El portal web de Paquete de Windows Azure para Windows Server, Service Provider Foundation y Virtual Machine Manager (VMM) autentican y autorizan el acceso a las máquinas virtuales, y ofrecen un token que el host de Hyper-V utiliza para conceder acceso a una única máquina virtual.
El siguiente diagrama ilustra los componentes que son necesarios para el acceso de la consola remota cuando los inquilinos tienen acceso a una máquina virtual a través de una red que no es de confianza, como Internet. La puerta de enlace de Escritorio remoto se omite si este entorno se implementa en una red corporativa.
Las claves privadas y públicas de un certificado se utilizan para establecer una relación de confianza. En la siguientes secciones se describe cómo crear los certificados necesarios.
Creación de un certificado para el acceso remoto
Un certificado se utiliza para crear una relación de confianza entre el servidor de puerta de enlace de Escritorio remoto, los hosts de Hyper-V y VMM. El certificado permite que la puerta de enlace de Escritorio remoto y los hosts de Hyper-V acepten tokens de solicitudes emitidos por la puerta de enlace de Escritorio remoto de VMM. Se puede usar el mismo certificado o certificados diferentes para la validación de la puerta de enlace de Escritorio remoto y los hosts de Hyper-V. Los certificados válidos deben cumplir los siguientes requisitos:
El certificado no debe haber expirado.
El campo de uso de la clave debe contener una firma digital.
El campo de uso mejorado de clave debe contener el siguiente identificador de objeto de autenticación del cliente: (1.3.6.1.5.5.7.3.2)
Los certificados raíz para de la entidad de certificación (CA) que emitió el certificado deben instalarse en el almacén de certificados de entidades de certificación raíz de confianza.
El proveedor de servicios criptográficos del certificado debe admitir SHA256.
Puede obtener un certificado válido de una entidad de certificación comercial, una entidad de certificación empresarial o con un certificado autofirmado.
Nota
Puede obtener un certificado válido de una entidad de certificación comercial, una entidad de certificación empresarial o con un certificado autofirmado. Al utilizar un certificado autofirmado, debe colocar la clave pública del certificado en el almacén de certificados de entidades de certificación raíz de confianza de la puerta de enlace de Escritorio remoto y los hosts de Hyper-V.
Uso de la herramienta MakeCert para crear un certificado de prueba
Con fines de prueba, puede utilizar la herramienta MakeCert para crear un certificado autofirmado. MakeCert forma parte de Windows SDK.
Para descargar el SDK, consulte Windows SDK for Windows 7 (Windows SDK para Windows 7).
Para obtener más información, consulte MakeCert en el Centro de desarrollo de Windows.
El código siguiente proporciona un ejemplo de cómo crear un certificado autofirmado:
makecert -n "CN=Remote Console Connect" -r -pe -a sha256 -e <mm/dd/yyyy> -len 2048 -sky signature -eku 1.3.6.1.5.5.7.3.2 -ss My -sy 24 "<CertificateName>.cer"
donde:
firma -sky | Se utiliza para firmar |
-r | Crear certificado autofirmado |
-n “CN=Conexión de la consola remota” | Nombre de sujeto (conexión de la consola remota) |
-pe | La clave privada es exportable |
-a sha256 | algoritmo |
-len 2048 | Longitud de clave |
-e <dd/mm/aaaa> | Fecha de vencimiento |
-eku 1.3.6.1.5.5.7.3.2 | Uso mejorado de clave (identificador de objeto de autenticación del cliente) |
-ss My | Almacenar la clave privada en el almacén de certificados My |
-sy 24 | Tipo de proveedor de servicios criptográficos (admite SHA256) |
"<Nombre de certificado>.cer" | Nombre de la clave pública |
Usar una entidad de certificación
Cuando solicita un certificado de una entidad de certificación, un archivo .inf de plantilla de certificado similar al siguiente puede utilizarse con la herramienta Certreq. Para obtener más información, consulte Certreq.
[Version]
Signature="$Windows NT$"
[NewRequest]
; Change to your,country code, company name and common name
Subject = "C=US, O=Contoso, CN=wap-rdg.contoso.com"
; Indicates both encryption and signing
KeySpec = 1
; Length of the public and private key, use 2048 or higher
KeyLength = 2048
; Certificate will be put into the local computer store
MachineKeySet = TRUE
PrivateKeyArchive = FALSE
RequestType = PKCS10
UserProtected = FALSE
; Allow the key to be shared between multiple computers
Exportable = TRUE
SMIME = False
UseExistingKeySet = FALSE
; ProviderName and ProviderType must be for a CSP that supports SHA256
ProviderName = "Microsoft Enhanced RSA and AES Cryptographic Provider"
ProviderType = 24
; KeyUsage must include DigitalSignature. 0xA0 also includes Key Encipherment
KeyUsage = 0xa0
[EnhancedKeyUsageExtension]
OID=1.3.6.1.5.5.7.3.2
Puede validar que un certificado de un archivo .pfx cumple los requisitos de algoritmo y uso mejorado de clave al ejecutar el siguiente script de Windows PowerShell:
$cert = Get-PfxCertificate <cert.pfx>
if ($cert.PrivateKey.CspKeyContainerInfo.ProviderName -ne "Microsoft Enhanced RSA and AES Cryptographic Provider")
{
Write-Warning "CSP may not support SHA256"
}
if (! (Test-Certificate $cert -EKU "1.3.6.1.5.5.7.3.2") )
{
Write-Warning "Certificate is not valid"
}
Instalar el certificado
Una vez creado el certificado, debe instalarlo y configurar Virtual Machine Manager para utilizar el certificado para emitir tokens de notificaciones. Después, la clave privada del certificado se importa en la base de datos de Virtual Machine Manager. Para ello, utilice el cmdlet de Windows PowerShell Set-SCVMMServer, por ejemplo:
PS C:\> $mypwd = ConvertTo-SecureString "password" -AsPlainText -Force
PS C:\> $cert = Get-ChildItem .\RemoteConsoleConnect.pfx
PS C:\> $VMMServer = VMMServer01.Contoso.com
PS C:\> Set-SCVMMServer -VMConnectGatewayCertificatePassword $mypwd -VMConnectGatewayCertificatePath $cert -VMConnectHostIdentificationMode FQDN -VMConnectHyperVCertificatePassword $mypwd -VMConnectHyperVCertificatePath $cert -VMConnectTimeToLiveInMinutes 2 -VMMServer $VMMServer
En este ejemplo se utiliza el mismo certificado para la puerta de enlace de Escritorio remoto y los hosts de Hyper-V, y los tokens tienen una duración de dos minutos. Puede seleccionar una duración para los tokens de 1 a 60 minutos.
El servidor de host se identifica por su nombre de dominio completo (FQDN). Como alternativa, los hosts pueden identificarse por la dirección IPv4, la dirección IPv6 y el nombre de host. La identidad del host se incluye en el archivo del Protocolo de escritorio remoto (RDP) que se envía a los inquilinos.
Nota
VMMServer01.Contoso.com
se utiliza como el nombre de ejemplo del servidor de host. Cámbielo por el nombre real de su servidor.
%%78%%%
Cuando se actualiza cada host en Virtual Machine Manager, este instala el certificado en el almacén de certificados personales del host de Hyper-V y configura el host de Hyper-V para que valide los tokens usando el certificado. Puede utilizar el siguiente comando de Windows PowerShell para forzar una actualización de todos los hosts de Hyper-V:
PS C:\> Get-SCVMHost -VMMServer "VMMServer01.Contoso.com" | Read-SCVMHost
Hosts de Hyper-V
Al autenticar tokens, Hyper-V sólo acepta los tokens que están firmados con certificados específicos y algoritmos hash. Virtual Machine Manager realiza la configuración necesaria de los hosts de Hyper-V. Sólo Hyper-V en Windows Server 2012 R2 admite la funcionalidad de la consola remota.
Si utiliza un certificado autofirmado, debe importar la clave pública del certificado en el almacén de certificados de entidades de certificación raíz de confianza del host de Hyper-V. El script siguiente proporciona un ejemplo de cómo usar Windows PowerShell para importar la clave pública:
PS C:\> Import-Certificate -CertStoreLocation cert:\LocalMachine\Root -Filepath "<certificate path>.cer"
Debe reiniciar el servicio Administración de máquinas virtuales de Hyper-V si instala un certificado después de configurar Virtual Machine Manager.
Puede comprobar que el host de Hyper-V está configurado correctamente para la consola remota de la siguiente manera:
Compruebe que el certificado está en el almacén de certificados personales del host de Hyper-V, y que es de confianza.
Compruebe la configuración hash del certificado del emisor de confianza.
El siguiente script proporciona un ejemplo de cómo usar Windows PowerShell para comprobar que el certificado está instalado en el almacén de certificados personales del host de Hyper-V:
PS C:\> dir cert:\localmachine\My\ | Where-Object { $_.subject -eq "CN=Remote Console Connect" }
El script siguiente proporciona un ejemplo de cómo usar Windows PowerShell para comprobar la configuración hash del certificado del emisor de confianza:
PS C:\> $TSData = Get-WmiObject -computername $Server -NameSpace "root\virtualization\v2" -Class "Msvm_TerminalServiceSettingData"
La matriz TrustedIssuerCertificateHashes debe contener la huella digital del certificado que se utiliza para conectar la consola remota. La matriz AllowedHashAlgorithms debe estar vacía o contener el algoritmo SHA256. Cuando la matriz está vacía, los valores predeterminados son SHA256 o SHA512.
Nota
Virtual Machine Manager genera tokens SHA256.
Puerta de enlace de Escritorio remoto
La puerta de enlace de Escritorio remoto sólo puede utilizarse para el acceso de la consola a las máquinas virtuales. Al configurar la puerta de enlace de Escritorio remoto, se produce un cambio de configuración, lo que hace que la puerta de enlace quede inutilizable para otros fines. Las siguientes tareas se completan al configurar la puerta de enlace de Escritorio remoto:
Implemente la puerta de enlace de Escritorio remoto e instale el complemento de autenticación.
Instale el certificado.
Configure los certificados del emisor de confianza (mediante WMI).
Cree un certificado para la puerta de enlace de Escritorio remoto.
Para admitir la autenticación federada, es necesario instalar la puerta de enlace de conexión de la consola de Microsoft System Center Virtual Machine Manager en el servidor de puerta de enlace de Escritorio remoto. Empiece por crear una máquina virtual y, a continuación, habilite los Servicios de Escritorio remoto.
A continuación, instale el componente de la puerta de enlace de conexión de la consola de System Center Virtual Machine Manager. Encontrará los archivos binarios de instalación de este componente en la siguiente carpeta de medios de instalación de Virtual Machine Manager: CDLayout.EVAL\amd64\Setup\msi\RDGatewayFedAuth. Para una configuración de alta disponibilidad, instale varias cantidades de puertas de enlace de Escritorio remoto con el componente de la puerta de enlace de conexión de la consola detrás de un equilibrador de carga.
A continuación, importe la clave pública del certificado en el almacén de certificados personales en cada servidor de puerta de enlace de Escritorio remoto. Para ello, puede usar Windows PowerShell como se muestra en el ejemplo siguiente:
PS C:\> Import-Certificate -CertStoreLocation cert:\LocalMachine\My -Filepath "<certificate path>.cer"
Al utilizar un certificado autofirmado, debe importar la clave pública del certificado en el almacén de certificados de entidades de certificación raíz de confianza de la cuenta de equipo. Para ello, puede usar Windows PowerShell como se muestra en el ejemplo siguiente:
PS C:\> Import-Certificate -CertStoreLocation cert:\LocalMachine\Root -Filepath "<certificate path>.cer"
Al autenticar tokens, la puerta de enlace de Escritorio remoto sólo acepta los tokens que están firmados con certificados específicos y algoritmos hash. Para esto, es necesario definir la configuración de las propiedades TrustedIssuerCertificateHashes y AllowedHashAlgorithms de la clase FedAuthSettings de WMI. Debe tener credenciales administrativas para definir estas propiedades.
La propiedad TrustedIssuerCertificateHashes es una matriz de huellas digitales de certificado que se almacenan en el servidor de puerta de enlace de Escritorio remoto. Puede utilizar el siguiente comando de Windows PowerShell para establecer la propiedad TrustedIssuerCertificateHashes:
$Server = "rdgw.contoso.com"
$Thumbprint = "95442A6B58EB5E443313C1B4AFD2665991D354CA"
$TSData = Get-WmiObject -computername $Server -NameSpace "root\TSGatewayFedAuth2" -Class "FedAuthSettings"
$TSData.TrustedIssuerCertificates = $Thumbprint
$TSData.Put()
El último paso consiste en seleccionar o crear un certificado autofirmado para la puerta de enlace de Escritorio remoto. Para ello, abra el Administrador de puerta de enlace de Escritorio remoto, haga clic con el botón secundario en Puerta de enlace de Escritorio remoto y, a continuación, haga clic en Propiedades. En el cuadro de diálogo Propiedades, haga clic en la pestaña Certificado SSL.
Este certificado lo utilizan los equipos cliente inquilinos para comprobar la identidad del servidor de puerta de enlace de Escritorio remoto. El nombre CN del certificado debe coincidir con el FQDN del servidor de puerta de enlace de Escritorio remoto. Abra el Administrador de puerta de enlace de Escritorio remoto y asigne o cree un certificado autofirmado.
Nota
Utilice un certificado autofirmado sólo para las pruebas. Un certificado autofirmado nunca debe utilizarse en una implementación de producción. Usar un certificado autofirmado también requiere que el certificado esté instalado en todos los equipos inquilinos que se conectan a través de la puerta de enlace de Escritorio remoto.
Puede comprobar la configuración de la puerta de enlace de Escritorio remoto mediante los pasos siguientes:
Asegúrese de que la puerta de enlace de Escritorio remoto está configurada para utilizar la puerta de enlace de conexión de la consola a efectos de autenticación y autorización. Para ello, puede usar Windows PowerShell como se muestra en el ejemplo siguiente:
PS C:\> Get-WmiObject -Namespace root\CIMV2\TerminalServices -Class Win32_TSGatewayServerSettings
Compruebe que las propiedades AuthenticationPlugin y AuthorizationPlugin están definidas como FedAuthorizationPlugin.
Asegúrese de que se ha instalado un certificado en el almacén de certificados personales de la cuenta de la máquina. Para ello, puede usar Windows PowerShell como se muestra en el ejemplo siguiente:
PS C:\> dir cert:\localmachine\My\ | Where-Object { $_.subject -eq "CN=Remote Console Connect" }
Compruebe la configuración de la puerta de enlace de conexión de la consola. Para ello, puede usar Windows PowerShell como se muestra en el ejemplo siguiente:
PS C:\> Get-WmiObject -computername $Server -NameSpace "root\TSGatewayFedAuth2" -Class "FedAuthSettings"
La matriz TrustedIssuerCertificates debe contener la huella digital de certificado de la puerta de enlace de conexión de la consola.
Paquete de Windows Azure para Windows Server para la consola remota
Puede habilitar el acceso a la consola remota según el plan de que se trate a través del servicio de nubes de máquinas virtuales del módulo de Windows Azure para Windows Server. En el panel del plan, seleccione Nubes de máquina virtual en los servicios del plan y seleccione Conectar a la consola de las máquinas virtuales en la configuración adicional.
Si ha instalado una puerta de enlace de Escritorio remoto, lea el procedimiento Configurar el Paquete de Windows Azure para utilizar Puerta de enlace de Escritorio remoto.
Recomendaciones de seguridad
Recomendamos que realice las tareas siguientes para mejorar la seguridad:
Nombre | Amenaza | Recomendación |
---|---|---|
Acceso de token | El acceso al almacén de certificados My puede utilizarse para generar tokens de acceso para cualquier máquina virtual. | Utilice grupos de seguridad de Active Directory para restringir el acceso al servidor de Virtual Machine Manager que genera tokens. |
Duración del token | El archivo del protocolo de escritorio remoto contiene el token EndpointFedAuth y disponer de este archivo permite tener acceso a la consola de una máquina virtual específica. | Configure un tiempo de vencimiento corto para el token. Un minuto es el tiempo de vencimiento recomendado. Utilice el cmdlet SetSCVMMServer de Windows PowerShell para definir la duración del token. |
Acceso compartido | Otro usuario solicita y obtiene acceso a la sesión de consola, que finaliza la sesión actual. Esto incluye un host que tiene acceso a la consola de un usuario que ha iniciado sesión y, a continuación, obtiene acceso a recursos inquilinos. Las sesiones de consola son similares a las sesiones de KVM para hosts físicos. Una sesión de equipo virtual está disponible para todos los usuarios a los que se ha concedido el privilegio de operaciones de lectura o de lectura/escritura de la consola en la directiva de autorización. De manera predeterminada, este acceso se concede a cualquier administrador. |
Usuarios inquilinos: No mantenga abierta la sesión de la consola cuando no trabaje de manera activa. Asegúrese de que el sistema operativo se bloquea tras un breve período de inactividad. Proveedores de servicios de hosting: Utilice directivas de autorización para restringir el acceso de lectura y escritura. |
Usuarios malintencionados | Los usuarios malintencionados pueden tratar de conectarse a los puertos a través de la puerta de enlace de Escritorio remoto cuando no están autorizados. Por ejemplo, un usuario malintencionado puede tratar de conectarse al puerto de RDP en un host de Hyper-V para probar las combinaciones de nombre y contraseña de usuario. | Configure directivas de autorización de recursos de Escritorio remoto en el servidor de puerta de enlace de Escritorio remoto para bloquear a usuarios para que no puedan conectarse directamente al puerto 3389 en el servidor de Hyper-V. Solo se necesitan las conexiones al puerto 2179. Para obtener más información, consulte Administrar directivas de autorización de recursos de Escritorio remoto (RAP de RD). |
Ataque de tipo "Man in the middle" | Un problema de seguridad para cuya resolución está diseñado Hyper-V consiste en ofrecer una protección mejorada frente a ataques de tipo "Man in the middle" (conocidos también como MITM). La utilización de certificados de confianza para identificar el host de Hyper-V puede ayudar a protegerse frente a ataques MITM. Hyper-V utiliza un agente de escucha de un puerto que utiliza certificados de confianza para la autenticación de servidor. En determinadas circunstancias, Hyper-V emite un certificado autofirmado que se utiliza para la autenticación de servidor. Como alternativa a este enfoque, puede configurar Hyper-V para utilizar un certificado diferente, como uno emitido por una entidad de certificación (CA). | Utilice un certificado de host de Hyper-V con una cadena de certificados válida que está conectada a un certificado raíz de confianza. Esto impide que se genere un mensaje de error que dice que no se puede comprobar la identidad del equipo remoto. Para obtener más información, consulte Configuring Certificates for Virtual Machine Connection (Configuración de certificados para la conexión de máquina virtual). |
Supervisión de la sesión | Cuando está activa una conexión de la consola, es posible que el personal del host realice una instantánea de la máquina virtual y exporte la máquina virtual a otro servidor, o que recopile imágenes en miniatura de la consola. | Utilice directivas de autorización para restringir el acceso de lectura y escritura. Revele a los inquilinos las situaciones en que su personal puede tener acceso a las sesiones de consola. |
Configuración de red | Un usuario malintencionado puede utilizar las propiedades del archivo RDP para obtener información detallada acerca de una configuración de red. | Determine si se debe usar el nombre de host o la dirección IP para conectarse a un servidor que ejecuta Hyper-V. Esta información se incluye en el archivo RDP que se envía al cliente del servicio. También se encuentra en el certificado presentado por el servidor que ejecuta Hyper-V cuando se inicia la conexión de la consola. Establezca la configuración de red para asegurarse de que los servidores que ejecutan Hyper-V no son accesibles directamente desde Internet o desde la máquina virtual de un usuario. Una dirección IP (en particular, una dirección IPv6) reduce la cantidad de información que se divulga. |
Vea también
Configurar el Paquete de Windows Azure para utilizar Puerta de enlace de Escritorio remoto