stringtranslate.com

Servicios de escritorio remoto

Remote Desktop Services ( RDS ), conocido como Terminal Services en Windows Server 2008 y versiones anteriores, [1] es uno de los componentes de Microsoft Windows que permiten a un usuario iniciar y controlar una sesión interactiva [2] en un equipo remoto o máquina virtual a través de una conexión de red . RDS se lanzó por primera vez en 1998 como Terminal Server en Windows NT 4.0 Terminal Server Edition , una edición independiente de Windows NT 4.0 Server que permitía a los usuarios iniciar sesión de forma remota. A partir de Windows 2000 , se integró bajo el nombre de Terminal Services como un componente opcional en las ediciones de servidor de la familia de sistemas operativos Windows NT , [3] recibiendo actualizaciones y mejoras con cada versión de Windows. [4] Los Servicios de Terminal luego fueron renombrados a Servicios de Escritorio Remoto con Windows Server 2008 R2 [5] en 2009.

RDS es la implementación de la arquitectura de cliente ligero de Microsoft , donde el software de Windows y todo el escritorio de la computadora que ejecuta RDS se hacen accesibles a cualquier máquina cliente remota que admita el Protocolo de escritorio remoto (RDP). Las interfaces de usuario se muestran desde el servidor al sistema cliente y la entrada del sistema cliente se transmite al servidor, donde se lleva a cabo la ejecución del software. [6] Esto contrasta con los sistemas de transmisión de aplicaciones , como Microsoft App-V , en los que los programas de computadora se transmiten al cliente a pedido y se ejecutan en la máquina cliente.

RemoteFX se agregó a RDS como parte de Windows Server 2008 R2 Service Pack 1.

Descripción general

Windows incluye cuatro componentes de cliente que utilizan RDS:

  1. Asistencia rápida (Windows 10 y posteriores) y Asistencia remota de Windows (Windows XP a Windows 8.1)
  2. Conexión a Escritorio Remoto (RDC)
  3. Cambio rápido de usuario
  4. Subsistema de Windows para Linux (a través de MSRDC )

Las dos primeras son utilidades individuales que permiten a un usuario operar una sesión interactiva en una computadora remota a través de la red. En caso de Asistencia remota, el usuario remoto necesita recibir una invitación y el control es cooperativo. Sin embargo, en caso de RDC, el usuario remoto abre una nueva sesión en la computadora remota y tiene todos los poderes otorgados por los derechos y restricciones de su cuenta de usuario. [6] [7] [8] El Cambio rápido de usuario permite a los usuarios cambiar entre cuentas de usuario en la computadora local sin salir del software y cerrar sesión. El Cambio rápido de usuario es parte de Winlogon y utiliza RDS para lograr su función de cambio. [9] [10] Los desarrolladores de terceros también han creado software cliente para RDS. Por ejemplo, rdesktop admite plataformas Unix .

Aunque RDS se incluye en la mayoría de las ediciones de todas las versiones de Windows NT desde Windows 2000, [3] su funcionalidad difiere en cada versión. Windows XP Home Edition no acepta ninguna conexión RDC, reservando RDS únicamente para Cambio rápido de usuario y Asistencia remota. Otras versiones cliente de Windows sólo permiten que un máximo de un usuario remoto se conecte al sistema a costa de que el usuario que ha iniciado sesión en la consola se desconecte. Windows Server permite que dos usuarios se conecten al mismo tiempo. Este esquema de licencias, llamado "Escritorio remoto para administración", facilita la administración de computadoras desatendidas o sin cabeza . Sólo adquiriendo licencias adicionales (además de la de Windows) una computadora que ejecuta Windows Server puede dar servicio a varios usuarios remotos a la vez y lograr una infraestructura de escritorio virtual . [5] [9]

Para una organización, RDS permite al departamento de TI instalar aplicaciones en un servidor central en lugar de en varias computadoras. [11] Los usuarios remotos pueden iniciar sesión y usar esas aplicaciones a través de la red. Esta centralización puede facilitar el mantenimiento y la resolución de problemas. Los sistemas de autenticación de Windows y RDS evitan que usuarios no autorizados accedan a aplicaciones o datos.

Microsoft tiene un acuerdo de larga data con Citrix para facilitar el intercambio de tecnologías y licencias de patentes entre Microsoft Terminal Services y Citrix XenApp (anteriormente Citrix MetaFrame y Citrix Presentation Server ). En este acuerdo, Citrix tiene acceso al código fuente clave para la plataforma Windows, lo que permite a sus desarrolladores mejorar la seguridad y el rendimiento de la plataforma Terminal Services. A fines de diciembre de 2004, las dos compañías anunciaron una renovación de cinco años de este acuerdo para cubrir Windows Vista . [12]

Componentes del servidor

El componente de servidor clave de RDS es Terminal Server ( termdd.sys), que escucha en el puerto TCP 3389. Cuando un cliente de Protocolo de escritorio remoto (RDP) se conecta a este puerto, se etiqueta con un SessionID único y se asocia con una sesión de consola recién creada (Sesión 0, solo interfaz de usuario de teclado, mouse y modo de caracteres). Luego se inicia el subsistema de inicio de sesión (winlogon.exe) y el subsistema de gráficos GDI , que maneja el trabajo de autenticar al usuario y presentar la GUI. Estos ejecutables se cargan en una nueva sesión, en lugar de la sesión de consola. Al crear la nueva sesión, los controladores de dispositivos de gráficos y teclado/mouse se reemplazan con controladores específicos de RDP: RdpDD.sysy RdpWD.sys. El RdpDD.syses el controlador del dispositivo y captura las llamadas de representación de la IU en un formato que se puede transmitir a través de RDP. RdpWD.sysactúa como controlador de teclado y mouse; recibe la entrada del teclado y mouse a través de la conexión TCP y las presenta como entradas de teclado o mouse. También permite la creación de canales virtuales , que permiten redirigir otros dispositivos, como discos, audio, impresoras y puertos COM, es decir, los canales actúan como reemplazo de estos dispositivos. Los canales se conectan al cliente a través de la conexión TCP; a medida que se accede a los canales para obtener datos, el cliente es informado de la solicitud, que luego se transfiere a través de la conexión TCP a la aplicación. Todo este procedimiento lo realizan el servidor de terminales y el cliente, con el RDP mediando la transferencia correcta, y es completamente transparente para las aplicaciones. [13] Las comunicaciones RDP se cifran utilizando el cifrado RC4 de 128 bits . A partir de Windows Server 2003, puede utilizar un esquema de cifrado compatible con FIPS 140 , o cifrar las comunicaciones utilizando el estándar Transport Layer Security . [6] [14]

Una vez que un cliente inicia una conexión y se le informa de una invocación exitosa de la pila de servicios de terminal en el servidor, carga el dispositivo y los controladores del teclado y el mouse. Los datos de la interfaz de usuario recibidos a través de RDP se decodifican y se representan como interfaz de usuario, mientras que las entradas del teclado y el mouse a la ventana que aloja la interfaz de usuario son interceptadas por los controladores y transmitidas a través de RDP al servidor. También crea los otros canales virtuales y configura la redirección. La comunicación RDP se puede cifrar; utilizando cifrado bajo, medio o alto. Con cifrado bajo, la entrada del usuario (datos salientes) se cifra utilizando un cifrado débil (RC4 de 40 bits). Con cifrado medio, los paquetes de la interfaz de usuario (datos entrantes) también se cifran utilizando este cifrado débil. La configuración "Cifrado alto (sin exportación)" utiliza cifrado RC4 de 128 bits y "Cifrado alto (exportación)" utiliza cifrado RC4 de 40 bits. [15] Al configurar la capa de seguridad en 'SSL (TLS 1.0)', está disponible la seguridad de la capa de transporte hasta la versión 1.2. [16]

Servidor de terminales

El servidor de terminales es el componente servidor de los servicios de terminales. Se encarga de la autenticación de los clientes y de hacer que las aplicaciones estén disponibles de forma remota. También se encarga de restringir a los clientes según el nivel de acceso que tengan. El servidor de terminales respeta las políticas de restricción de software configuradas, de modo que restringe la disponibilidad de cierto software a un grupo determinado de usuarios. La información de la sesión remota se almacena en directorios especializados, denominados directorio de sesiones , que se almacenan en el servidor. Los directorios de sesiones se utilizan para almacenar información de estado sobre una sesión y se pueden utilizar para reanudar sesiones interrumpidas. El servidor de terminales también tiene que gestionar estos directorios. Los servidores de terminales también se pueden utilizar en un clúster . [6]

En Windows Server 2008 , se ha revisado significativamente. Al iniciar sesión, si el usuario inició sesión en el sistema local utilizando una cuenta de dominio de Windows Server , las credenciales del mismo inicio de sesión se pueden usar para autenticar la sesión remota. Sin embargo, esto requiere que Windows Server 2008 sea el sistema operativo del servidor de terminal, mientras que el sistema operativo del cliente está limitado a Windows Server 2008, Windows Vista y Windows 7. Además, el servidor de terminal se puede configurar para permitir la conexión a programas individuales, en lugar de a todo el escritorio, por medio de una característica llamada RemoteApp. Terminal Services Web Access (TS Web Access) hace que una sesión de RemoteApp sea invocable desde el navegador web . Incluye el control de componente web de TS Web Access que mantiene la lista de RemoteApps implementadas en el servidor y mantiene la lista actualizada. Terminal Server también se puede integrar con el Administrador de recursos del sistema de Windows para limitar el uso de recursos de las aplicaciones remotas. [4]

El servidor de terminales se administra mediante el complemento de la consola de administración de Microsoft del Administrador de servidores de terminales . Se puede utilizar para configurar los requisitos de inicio de sesión, así como para aplicar una única instancia de sesión remota. También se puede configurar mediante la directiva de grupo o el Instrumental de administración de Windows . Sin embargo, no está disponible en las versiones cliente del sistema operativo Windows, donde el servidor está preconfigurado para permitir solo una sesión y aplicar los derechos de la cuenta de usuario en la sesión remota, sin ninguna personalización. [6]

Puerta de enlace de escritorio remoto

El componente de servicio Remote Desktop Gateway , también conocido como RD Gateway , puede tunelizar la sesión RDP mediante un canal HTTPS . [17] Esto aumenta la seguridad de RDS al encapsular la sesión con Transport Layer Security (TLS). [18] Esto también permite la opción de usar Internet Explorer como cliente RDP. El cliente MS RDP oficial para macOS admite RD Gateway a partir de la versión 8. También está disponible para iOS y Android.

Esta característica se introdujo en los productos Windows Server 2008 y Windows Home Server .

En octubre de 2021, Thincast, el principal colaborador del proyecto FreeRDP, publicó la primera solución de puerta de enlace de escritorio remoto que se ejecuta de forma nativa en Linux. [19]

Roles

Puerta de enlace de escritorio remoto
Permite a los usuarios autorizados conectarse a escritorios virtuales, programas de aplicaciones remotas y escritorios basados ​​en sesiones a través de una red privada o Internet.
Rol de agente de conexión a Escritorio remoto
Permite a los usuarios volver a conectarse a sus escritorios virtuales existentes, programas RemoteApp y escritorios basados ​​en sesiones. Permite una distribución uniforme de la carga entre los servidores host de sesión de Escritorio remoto en una colección de sesiones o entre escritorios virtuales agrupados en una colección de escritorios virtuales agrupados, y brinda acceso a los escritorios virtuales en una colección de escritorios virtuales.
Host de sesión de escritorio remoto
Permite que un servidor aloje programas RemoteApp como escritorios basados ​​en sesiones. Los usuarios pueden conectarse a servidores de host de sesión de Escritorio remoto en una colección de sesiones para ejecutar programas, guardar archivos y utilizar recursos en esos servidores. Los usuarios pueden acceder al servidor de host de sesión de Escritorio remoto mediante el cliente de Conexión a Escritorio remoto o mediante programas RemoteApp.
Host de virtualización de escritorio remoto
Permite a los usuarios conectarse a escritorios virtuales mediante RemoteApp y Desktop Connection.
Acceso web a escritorio remoto
Permite a los usuarios acceder a RemoteApp and Desktop Connection a través del menú Inicio o de un navegador web. RemoteApp and Desktop Connection ofrece a los usuarios una vista personalizada de los programas RemoteApp, los escritorios basados ​​en sesiones y los escritorios virtuales.
Licencias de escritorio remoto
Permite que un servidor administre las licencias de acceso de cliente RDS (CAL de RDS) que se requieren para que cada dispositivo o usuario se conecte a un servidor host de sesión de Escritorio remoto. Las CAL de RDS se administran mediante la aplicación Administrador de licencias de Escritorio remoto. [20]

Aplicación remota

RemoteApp (o TS RemoteApp ) es un modo especial de RDS, disponible en Windows Server 2008 R2 y posteriores, donde la configuración de la sesión remota está integrada en el sistema operativo del cliente. El cliente RDP 6.1 se entrega con Windows XP SP3, KB952155 para usuarios de Windows XP SP2, [21] Windows Vista SP1 y Windows Server 2008. La interfaz de usuario de RemoteApp se representa en una ventana sobre el escritorio local y se administra como cualquier otra ventana para aplicaciones locales. El resultado final de esto es que las aplicaciones remotas se comportan en gran medida como aplicaciones locales. La tarea de establecer la sesión remota, así como redirigir los recursos locales a la aplicación remota, es transparente para el usuario final. [22] Se pueden iniciar múltiples aplicaciones en una sola sesión de RemoteApp, cada una con sus propias ventanas. [23]

Una RemoteApp puede empaquetarse como un .rdparchivo o distribuirse a través de un paquete .msi de Windows Installer . Cuando se empaqueta como un .rdparchivo (que contiene la dirección del servidor RemoteApp, los esquemas de autenticación que se utilizarán y otras configuraciones), se puede iniciar una RemoteApp haciendo doble clic en el archivo. Invocará el cliente de Conexión a Escritorio remoto, que se conectará al servidor y mostrará la interfaz de usuario. La RemoteApp también se puede empaquetar en una base de datos de Windows Installer , cuya instalación puede registrar la RemoteApp en el menú Inicio y crear accesos directos para iniciarla. Una RemoteApp también se puede registrar como controlador de tipos de archivos o URI. Al abrir un archivo registrado con RemoteApp, primero se invocará Conexión a Escritorio remoto, que se conectará al servidor de terminal y luego abrirá el archivo. Cualquier aplicación a la que se pueda acceder a través de Escritorio remoto se puede utilizar como una RemoteApp. [22]

Windows 7 incluye soporte integrado para la publicación de RemoteApp, pero debe habilitarse manualmente en el registro, ya que no hay una consola de administración de RemoteApp en las versiones cliente de Microsoft Windows. [24]

Uso compartido del escritorio de Windows

A partir de Windows Vista , Terminal Services también incluye una capacidad de compartir escritorios entre varias partes conocida como Windows Desktop Sharing . A diferencia de Terminal Services, que crea una nueva sesión de usuario para cada conexión RDP, Windows Desktop Sharing puede alojar la sesión remota en el contexto del usuario conectado actualmente sin crear una nueva sesión y hacer que el escritorio, o un subconjunto de él, esté disponible a través de RDP. [25] Windows Desktop Sharing se puede utilizar para compartir el escritorio completo, una región específica o una aplicación en particular. [26] Windows Desktop Sharing también se puede utilizar para compartir escritorios con varios monitores. Al compartir aplicaciones individualmente (en lugar de todo el escritorio), las ventanas se administran (ya sea que estén minimizadas o maximizadas) de forma independiente en el servidor y en el lado del cliente. [26]

La funcionalidad solo se proporciona a través de una API pública , que puede ser utilizada por cualquier aplicación para proporcionar la funcionalidad de compartir pantalla. La API de uso compartido de escritorio de Windows expone dos objetos: RDPSessionpara la sesión de uso compartido y RDPViewerpara el visor. Se pueden crear instancias de varios objetos de visor para un objeto de sesión. Un visor puede ser un visor pasivo, que solo puede ver la aplicación como una captura de pantalla , o un visor interactivo, que puede interactuar en tiempo real con la aplicación remota. [25] El RDPSessionobjeto contiene todas las aplicaciones compartidas, representadas como Applicationobjetos, cada una con Windowobjetos que representan sus ventanas en pantalla. Los filtros por aplicación capturan las ventanas de la aplicación y las empaquetan como Windowobjetos. [27] Un visor debe autenticarse antes de poder conectarse a una sesión de uso compartido. Esto se hace generando un Invitationutilizando el RDPSession. Contiene un ticket de autenticación y una contraseña. El objeto se serializa y se envía a los espectadores, que deben presentar el Invitational conectarse. [25] [27]

La API de uso compartido de escritorio de Windows es utilizada por Windows Meeting Space y Windows Remote Assistance para proporcionar funcionalidad de uso compartido de aplicaciones entre pares de la red . [26]

Autenticación a nivel de red

La autenticación a nivel de red ( NLA ) es una característica del servidor RDP o de la conexión a Escritorio remoto (cliente RDP) que requiere que el usuario que se conecta se autentique antes de establecer una sesión con el servidor.

Originalmente, si un usuario abría una sesión RDP (escritorio remoto) en un servidor, se cargaba la pantalla de inicio de sesión del servidor para el usuario. Esto consumía recursos del servidor y era un área potencial para ataques de denegación de servicio , así como ataques de ejecución de código remoto (consulte BlueKeep ). La autenticación a nivel de red delega las credenciales del usuario del cliente a través de un proveedor de soporte de seguridad del lado del cliente y solicita al usuario que se autentique antes de establecer una sesión en el servidor.

La autenticación a nivel de red se introdujo en RDP 6.0 y se admitió inicialmente en Windows Vista . Utiliza el nuevo proveedor de soporte de seguridad, CredSSP, que está disponible a través de SSPI en Windows Vista. Con Windows XP Service Pack 3, se introdujo CredSSP en esa plataforma y el cliente RDP 6.1 incluido admite NLA; sin embargo, CredSSP debe habilitarse primero en el registro. [28] [29]

Ventajas

Las ventajas de la autenticación a nivel de red son:

Desventajas

Software de cliente

Remote Desktop Connection es un cliente principal para Remote Desktop Services. RDC presenta la interfaz de escritorio (o GUI de la aplicación) del sistema remoto, como si se accediera a ella localmente. [32] Microsoft Remote Desktop fue creado en 2012 por Microsoft como un cliente con una interfaz táctil. Además, existen varios clientes que no son de Microsoft .

Véase también

Referencias

  1. ^ "Servicios de Escritorio remoto de Windows destacado" . Consultado el 18 de noviembre de 2010 .
  2. ^ QuinnRadich (19 de agosto de 2020). "Sesiones de escritorio remoto: aplicaciones Win32". docs.microsoft.com . Consultado el 9 de julio de 2022 .
  3. ^ ab "Conexión a escritorio remoto". PC World . IDG . 17 de agosto de 2011.
  4. ^ ab "Novedades de Terminal Services en Windows Server 2008" . Consultado el 23 de julio de 2007 .
  5. ^ ab Russel, Charlie; Zacker, Craig (2009). "4: Servicios de escritorio remoto y VDI: centralización de la administración de escritorios y aplicaciones" (PDF) . Presentación de Windows Server 2008 R2 . Redmond, WA : Microsoft Press . Archivado desde el original (PDF) el 29 de agosto de 2017. Consultado el 11 de enero de 2014 .
  6. ^ abcde "Descripción técnica de los servicios de terminal en Windows Server 2003". Microsoft . Archivado desde el original el 26 de enero de 2003 . Consultado el 23 de julio de 2007 .
  7. ^ "Cómo cambiar el puerto de escucha para Escritorio remoto" . Consultado el 18 de noviembre de 2010 .
  8. ^ "Preguntas frecuentes sobre Escritorio remoto". Microsoft . Consultado el 23 de julio de 2007 .
  9. ^ de Russinovich, Mark ; Solomon, David A.; Ionescu, Alex (2012). Windows Internals (6.ª ed.). Redmond, WA : Microsoft Press . Págs. 20-21. ISBN 978-0-7356-4873-9.
  10. ^ "Arquitectura del cambio rápido de usuario". Soporte . Microsoft . 15 de enero de 2006 . Consultado el 11 de enero de 2014 .
  11. ^ "Servicios remotos". Iniciar sesión 123 .
  12. ^ "Citrix y Microsoft firman un acuerdo de colaboración y licencia tecnológica". Citrix . 2004-12-21. Archivado desde el original el 2011-07-05 . Consultado el 2012-04-13 .
  13. ^ "Cómo funcionan los servicios de terminal". Microsoft. 28 de marzo de 2003. Consultado el 23 de julio de 2007 .
  14. ^ "Configuración de autenticación y cifrado: Servicios de Terminal Server". 8 de octubre de 2009.
  15. ^ "Configuración de la conexión en Terminal Server". Soporte (edición 5.0). Microsoft . 22 de junio de 2014.
  16. ^ "Se muestra TLS incorrecto - Windows Server". 5 de junio de 2024.
  17. ^ "Puerta de enlace de servicios de terminal (TS Gateway)". Microsoft TechNet . Consultado el 10 de septiembre de 2009 .
  18. ^ "Protocolo de escritorio remoto". Microsoft Developer Network (MSDN) . Consultado el 10 de septiembre de 2009 .
  19. ^ "Documentación de la puerta de enlace de Escritorio remoto". Thincast . Consultado el 17 de octubre de 2021 .
  20. ^ TechNet: Licencias de escritorio remoto
  21. ^ "Descripción de la actualización del cliente de Conexión a Escritorio remoto 6.1 para Terminal Services en Windows XP Service Pack 2" . Consultado el 18 de noviembre de 2010 .
  22. ^ ab "Terminal Services RemoteApp (TS RemoteApp)" . Consultado el 23 de julio de 2007 .
  23. ^ "Lógica de terminación de sesión de RemoteApp de Terminal Services" . Consultado el 2 de octubre de 2007 .
  24. ^ "Cómo habilitar RemoteApp (a través de RDP 7.0) en VirtualBox o VMWare con Windows 7, Vista SP1+ o Windows XP SP3" . Consultado el 18 de noviembre de 2010 .
  25. ^ abc "Compartir escritorio de Windows" . Consultado el 11 de octubre de 2007 .
  26. ^ abc "API de uso compartido de escritorio de Windows" . Consultado el 11 de octubre de 2007 .
  27. ^ ab "Acerca de la función Compartir escritorio de Windows" . Consultado el 11 de octubre de 2007 .
  28. ^ "Descripción del proveedor de soporte de seguridad de credenciales (CredSSP) en Windows XP Service Pack 3". Archivado desde el original el 18 de septiembre de 2017.
  29. ^ "Descripción de la actualización del cliente de Conexión a Escritorio remoto 6.1 para Terminal Services". Microsoft . 2011-09-23 . Consultado el 2020-05-07 .
  30. ^ Simon Pope (14 de mayo de 2019). "Prevenir un gusano actualizando los Servicios de Escritorio remoto (CVE-2019-0708)". Centro de respuesta de seguridad de Microsoft . Consultado el 7 de mayo de 2020 .
  31. ^ "Configurar la autenticación a nivel de red para conexiones de Servicios de Escritorio remoto". Microsoft TechNet . 2009-11-17 . Consultado el 2020-05-07 .
  32. ^ "Descripción técnica de los servicios de terminal en Windows Server 2003". Microsoft . Archivado desde el original el 26 de enero de 2003 . Consultado el 23 de julio de 2007 .

Enlaces externos