ONU

Unidad 06 Teoría Acceso Remoto

📙Descargar PDF

ÍNDICE

INTRODUCCIÓN

Los servicios de acceso y control remoto permiten, mediante la utilización de determinadas aplicaciones de software, establecer conexiones con equipos a distancia y administrarlos de manera centralizada sin necesidad de acceder directamente a ellos. Estos servicios siguen el modelo cliente-servidor. De esta manera la máquina a acceder y controlar remotamente deberá tener instalada una aplicación de tipo servidor y la máquina con la que nos conectamos una aplicación de tipo cliente.

Servicios Acceso Remoto

USOS

Los usos más frecuentes del acceso remoto son:

CONDICIONES

Para poder utilizar un servicio de acceso remoto se debe tener en cuenta algunos aspectos:

TIPOS

Básicamente existen dos tipos de acceso remoto, dependiendo de si se utiliza una interfaz de texto o una interfaz gráfica.

Interfaz de Texto

Los servicios de acceso remoto con interfaz de texto o consola normalmente utilizan protocolos de la pila TCP/IP como telnet, r-commands o ssh. No requieren un gran ancho de banda y, por tanto, funcionan adecuadamente con latencias altas.

Telnet

Es un protocolo muy antiguo que abre sesiones de terminal remotas enviando todos los datos sin encriptar, incluso los datos de autenticación, y por tanto son susceptibles de ser capturadas con un sniffer como WireShark. Esta herramienta se considera obsoleta y no se aconseja utilizarla. Sin embargo, la herramienta telnet es muy útil para entender el funcionamiento de los protocolos más importantes de la capa de aplicación de red como http y https (servicio web), ftp (servicio de transferencia de archivos) y smtp, pop e imap (servicio de correo electrónico).

Telnet utiliza los siguientes puertos:

Aplicación Puerto
Servidor 23 TCP
Cliente Puerto efímero TCP

R-commands

Es una suite de herramientas diseñadas en la universidad de Berkeley para posibilitar a usuarios Unix acceder a sistemas Unix de forma remota y sencilla. Algunas de las herramientas de la suite son rcp, rexec, rlogin, rsh, ... Se trata también de conexiones sin encriptar por lo que también están en desuso.

R-commands utiliza los siguientes puertos:

Aplicación Daemon Puerto
rcp rshd 514 TCP
rexec rexecd 512 TCP
rlogin rlogind 513 TCP
rsh rshd 514 TCP
rstat rstatd UDP
ruptime rwhod 513 UDP
rwho rwhod 513 UDP

SSH

Es un protocolo de acceso remoto que se desarrolló como alternativa segura a telnet y r-commands. SSH (Secure Shell) es un protocolo de red que permite establecer una conexión segura entre dos equipos, normalmente entre un cliente y un servidor, para realizar tareas de administración remota o transferencia de archivos.
Actualmente, es el protocolo más utilizado para abrir sesiones de terminal remotas en modo texto. Con ssh se establece una sesión remota con un equipo de manera que toda la información se envía encriptada, incluida la información de autenticación. Este protocolo utiliza certificados digitales para controlar el acceso y asegurar que la información viaja encriptada. Además, ssh permite el uso de túneles para encriptar y transmitir la información de otras aplicaciones.

SSH utiliza los siguientes puertos:

Aplicación Puerto
Servidor 22 TCP
Cliente Puerto efímero TCP

Interfaz Gráfica

Los servicios de acceso remoto con interfaz gráfica son aplicaciones para establecer sesiones gráficas. Normalmente son muy dependientes del sistema operativo, es decir, cliente y servidor deben tener el mismo tipo de sistema operativo. Requieren un gran ancho de banda y, por tanto, solo funcionan adecuadamente con latencias bajas.

RDP (Remote Desktop Protocol)

Este protocolo es propietario de Microsoft y permite la transmisión de la información gráficamente entre un cliente y un servidor Windows. La información gráfica que genera el servidor es convertida a un formato propio del protocolo RDP y enviada al cliente. En el cliente, la información del protocolo RDP es interpretada y se reconstruye la imagen gráfica para mostrarla en su terminal. En el cliente, las pulsaciones de teclado, movimiento y pulsaciones del ratón son redirigidas al servidor también en formato RDP, para que el servidor las ejecute. La información transmitida entre cliente y servidor está cifrada y comprimida para mejorar la seguridad y la latencia de la conexión. Las aplicaciones más características de RDP son los servidores RDS (Remote Desktop Services) antes Terminal Server en el servidor Windows y los clientes RDC (Remote Desktop Connections) en los sistemas Windows de tipo desktop, como Windows 10 o Windows 11. En Linux existe también una versión open source de servidor RDP llamada XRPD, se puede utilizar cualquier cliente RDP como FreeRDP, rdesktop o incluso RDC de Windows para realizar la conexión.

RDP utiliza los siguientes puertos:

Aplicación Puerto
Servidor 3389 TCP, UDP
Cliente Puerto efímero TCP, UDP

X Window

Este sistema implementa las funciones necesarias para controlar los gráficos como las ventanas, el ratón y el teclado en un ordenador. X Window se utiliza en la mayor parte de las versiones de Unix y sus derivados para implementar la interfaz gráfica. La versión actual es la 11, por lo que se dice X11. Entornos de escritorio tan conocidos en GNU/Linux como gnome, kde o xfce utilizan internamente X Window a pesar de que son escritorios con apariencia diferente y que cada uno tiene sus particularidades.
Una de las características de X Window es que es independiente del sistema operativo empleado, ya que se trata de una capa de aplicación que además se pensó para trabajar en red. Con el concepto de transparencia de red, X Window puede separar la estación donde se representa la interfaz gráfica de la estación donde se ejecuta la aplicación, evidentemente también puede tratarse de la misma estación.
En la terminología X Window, el software que permite dibujar las ventanas e interactuar con ellas se llama servidor X y los programas que envían las peticiones para dibujar las ventanas y reciben las interacciones con ellas se llaman cliente X.

X Window

En el ejemplo, el host cliente tiene instalado X Window en modo servidor. Una aplicación cliente 1 del propio host está utilizando el servidor X Window para mostrar información gráfica en la pantalla. Al mismo tiempo, el host cliente está ejecutando las aplicaciones cliente 2 y cliente 3 en el servidor, pero estas aplicaciones interactúan con el servidor X Window instalado en el host cliente, por tanto dibujan y muestran la información gráfica en el host cliente.

G cluster_C CLIENTE cluster_S SERVIDOR CX1 Cliente 1 X Window SX Servidor X Window SX->CX1 CX2 Cliente 2 X Window SX->CX2 CX3 Cliente 3 X Window SX->CX3 Protocolo X Window SOC Sistema Operativo SOS Sistema Operativo

La comunicación entre las aplicaciones clientes X Window y el servidor X Window se realiza sin ningún tipo de encriptación, por lo que si se quiere dotar de seguridad a la transmisión será necesario emplear, por ejemplo, SSH para tunelizar el tráfico X Window o bien utilizar sistemas VPN.

X Windows utiliza los siguientes puertos:

Aplicación Puerto
Servidor 6000+N (número de pantalla) TCP
Cliente Puerto efímero TCP

XDMCP

Normalmente al iniciar un ordenador GNU/Linux aparece una pantalla gráfica para realizar el login del sistema. Este programa, que en caso de autenticar correctamente al usuario carga todo el escritorio, es un administrador de pantalla. El protocolo que controla el administrador de pantalla se llama XDMCP (X display manager control protocol) y funciona sobre un servidor X Window. Hay diferentes implementaciones de este programa, las más usuales son: gdm (gnome), kdm (kde) y xdm (genérico).
En la mayor parte de los casos el administrador de pantallas solamente permite gestionar un servidor X Windows local, pero gracias al protocolo XDMCP también se puede gestionar servidor X11 remotos. En este caso, un equipo puede mostrar la pantalla de login y después mostrar el escritorio completo, no solo la ventana de una aplicación concreta. La configuración de XDMCP puede ser muy compleja.

XDMCP utiliza los siguientes puertos:

Aplicación Puerto
Servidor 177 TCP
Cliente Puerto efímero TCP

VNC (Virtual Network Computing)

Este sistema permite mostrar y controlar gráficamente un escritorio remoto. Utiliza el protocolo RFB (Remote Frame Buffer Protocol) que se limita a transmitir cada uno de los píxeles del buffer gráfico de la memoria de vídeo del servidor al cliente y los eventos de teclado y ratón del cliente al servidor. Las últimas versiones de RFB han sido ampliadas para soportar nuevas funcionalidades como, por ejemplo, la transferencia de archivos entre el cliente y el servidor. Por defecto, RFB es un protocolo no seguro, lo que significa que las transmisiones se realizan sin cifrar. La única transmisión que se cifra es la contraseña, aunque tanto la clave de cifrado como la contraseña cifrada pueden ser conseguidas mediante un sniffer y, por tanto, pueden ser descubiertas.
VNC es independiente de la plataforma, hay cliente y servidor para muchos tipos de sistemas operativos y también para Java. Un servidor VNC puede atender a varios clientes al mismo tiempo. El uso del protocolo RFB hace que VNC necesite un ancho de banda grande, por lo que se han desarrollado varios métodos para codificar los píxeles de una manera más comprimida (encoders). VNC permite negociar al cliente y al servidor qué tipo de encoder utilizará en la conexión. El encoder por defecto transmite cada uno de los píxeles de la memoria de vídeo que forman la pantalla completa, después solamente envía los píxeles que cambian.
Una característica fundamental del sistema VNC es que el cliente no conserva ningún estado de la conexión. Así es posible cerrar un cliente y volverlo a abrir, incluso en otro equipo, como si se tratara de un monitor virtual.
Dado que RFB es un protocolo no seguro, si se utiliza VNC en una red que no es de confianza, será necesario combinar su uso con un túnel SSH o con una VPN.
Hay que recalcar que tanto VNC como RFB se distribuyen con licencia libre de tipo GPL, es decir, que su código se puede reutilizar y modificar, lo que ha hecho que haya numerosas versiones.

Versiones VNC:

Versión Descripción
VNC Es el software original. Solo se utiliza como referencia y pruebas de compatibilidad.
TightVNC Gratis con licencia GPL. Tiene encoders muy avanzados que permiten utilizar menos ancho de banda y además permite la transmisión de archivos entre cliente y servidor.
ReaLVNC Es la versión desarrollada por algunos de los creadores originales. Hay versión gratuita y empresarial.
UltraVNC Ofrece una función de transmisión de archivos, ha mejorado los encoders y tiene una función de chat. Además, permite controlar una sola ventana en lugar de todo el escritorio.
xVNC Configura un servidor VNC para conectar internamente con el sistema X Windows. Por tanto, en lugar de que RFB utilice el buffer de vídeo, utiliza el sistema X Windows.

VNC utiliza los siguientes puertos:

Aplicación Puerto
Servidor 5900+N (número de pantalla) TCP
Servidor WEB con applet Java 5800+N (número de pantalla) TCP
Cliente en modo listening 5500 TCP
El servidor es el que inicia la conexión.
Cliente Puerto efímero TCP

NX

Este sistema permite mostrar y controlar gráficamente un escritorio remoto. NX está basado en el protocolo DXPC (Differential X Protocol Compressor) para un sistema X Windows. Con NX se realiza una compresión del protocolo X Windows, lo que mejora notablemente la latencia. Además, se utiliza el protocolo SSH para encriptar las transmisiones, mejorando la seguridad. NX es una tecnología propietaria de la empresa NoMachine, aunque la empresa ha distribuido con licencia GPL el núcleo de compresión del protocolo, lo que ha permitido que se desarrollen algunas distribuciones freeware como FreeNX o X2Go.

NX utiliza los siguientes puertos:

Aplicación Puerto
Servidor 4000 TCP
Cliente Puerto efímero TCP

OTROS TIPOS DE ACCESO REMOTO

Además de los accesos mediante interfaz de texto o gráfica, existen otros métodos de acceso remoto que se pueden clasificar en:

Aplicaciones Locales

Existen aplicaciones diseñadas específicamente para la administración remota de dispositivos o servicios concretos, como impresoras, cámaras de vigilancia, dispositivos de domótica o equipos de red (por ejemplo, puntos de acceso, switches o routers). Estas aplicaciones pueden ser programas instalados localmente en el ordenador del administrador o interfaces web proporcionadas por el propio dispositivo, a las que se accede mediante un navegador.

En muchos casos, estas aplicaciones están hechas a medida para cada tipo de dispositivo, permitiendo su gestión remota de forma sencilla y adaptada a sus características.

Además, también es posible administrar remotamente los servicios instalados en un servidor, como Apache (servidor web), BIND (servidor DNS) o Samba (servidor CIFS), utilizando gestores de administración de servicios como Webmin, que ofrece una interfaz web accesible habitualmente a través del puerto 10000 TCP.

Administración Remota

Sistemas y protocolos diseñados para la administración remota de equipos y servicios, generalmente orientados a la gestión y automatización de tareas administrativas. Incluyen tecnologías como WinRM, que permiten ejecutar comandos y gestionar sistemas de forma remota, habitualmente a través de protocolos estándar y seguros.

WinRM

Es la implementación de Microsoft del protocolo WS-Management (Web Service for Management), un protocolo estándar basado en el protocolo SOAP (Simple Object Access Protocol) que permite que interoperen el hardware y los sistemas operativos de diferentes proveedores.
La implementación actual del protocolo WS-Management se basa en las siguientes especificaciones estándar: HTTPS, SOAP mediante HTTP (perfil WS-I), SOAP 1.2, WS-Addressing, WS-Transfer, WS-Enumeration y WS-Eventing. Para obtener más información sobre los estándares WS-Management y los esquemas XML, consulte https://dmtf.org/standards/wsman.

Se pueden ejecutar órdenes de administración remota en equipos Windows con la consola WinRS o estableciendo una conexión remota mediante PowerShell. Para establecer la conexión es evidente que tanto en el servidor como en el cliente el servicio WinRM debe estar en funcionamiento.
WinRM utiliza los siguientes puertos:

Aplicación Puerto
Servidor 5985 TCP para HTTP
Servidor 5986 TCP para HTTPS
Cliente Puerto efímero TCP