Ser SSH RDP
Ser SSH RDP
CONTENIDOS
1. ¿Qué es el servicio de acceso y control remoto?
2. El servicio SSH
3. Conceptos básicos sobre encriptación
4. ¿Cómo funciona SSH?
5. ¿Qué es un cliente SSH?
6. ¿Qué es un servidor SSH?
7. Acceso remoto con FreeNX
8. Servidor SSH bajo Windows 2008 Server
9. Servicios de Terminal Server
1
3 Servicio de acceso y control remoto
Los servicios de acceso y control remotos 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 a ellos.
En el caso de que se disponga de equipos que no tienen teclado o pantalla, o bien de servidores apilados
en un rack o que no estén físicamente presentes, es muy importante contar con mecanismos que
permitan administrarlos remotamente de forma cómoda, rápida y segura.
Lógicamente esta función, que parece útil e inofensiva, puede tener consecuencias impredecibles si no se
lleva a cabo con unas condiciones de seguridad bien definidas. Cualquier agujero de seguridad que
presenten dichas herramientas puede permitir el acceso de terceros no deseados a informaciones
confidenciales.
2. En modo gráfico: VNC en entornos Unix GNU/Linux, NX y los servicios de Terminal Server en
Windows.
2
3 Servicio de acceso y control remoto
2. El servicio SSH
.
Esta herramienta permite establecer conexiones seguras entre máquinas remotas. Su funcionamiento se
describe en el RFC 4251.
• Permite su integración con otros sistemas de autenticación como Kerberos, PGP o PAM.
• Todos los datos que se envían y se reciben durante la conexión se transfieren cifrados.
3 • El cliente puede ejecutar aplicaciones gráficas desde el shell (intérprete de órdenes) de forma segura.
3 Servicio de acceso y control remoto
2. El servicio SSH
2.1. Ventajas de utilizar SSH
1. La interceptación de la comunicación entre dos sistemas por parte de una máquina tercera que
copia la información que circula entre ellas y puede introducir modificaciones y reenviarla a la
máquina de destino.
2. La suplantación de un host o enmascaramiento, es decir, que una máquina finja que es la máquina
de destino de un mensaje, en cuyo caso el cliente no se da cuenta de que está siendo engañado y
continúa la transmisión.
Ambos problemas se evitan con el cifrado de paquetes mediante claves que solo son conocidas por
el sistema local y el remoto.
4
3 Servicio de acceso y control remoto
La seguridad de una técnica de cifrado reside en la longitud de la clave utilizada, y por tanto, en el coste
de CPU que requiere para «reventarla», es decir, para obtener el mensaje original descifrado.
b) Integridad: la información no puede ser alterada (sin ser detectado el cambio) en el tránsito del emisor
al destinatario.
c) Autenticación: tanto el emisor como el destinatario pueden confirmar la identidad de la otra parte que
participa en la comunicación.
d) No rechazo: el creador o emisor de la información no puede negar que es el autor. Existen diversos
tipos de encriptación, tal como se verá a continuación.
5
3 Servicio de acceso y control remoto
Es muy eficiente para el cifrado de grandes volúmenes de información, ya que los algoritmos utilizados
son muy rápidos, aunque debe tener más de 40 bits para que sea una clave fuerte. La robustez de la
clave se mide por su tamaño.
Sin embargo, tiene el inconveniente de que tanto el emisor como el receptor han de conocer la clave, lo
cual implica que esta debe viajar por la red.
6
3 Servicio de acceso y control remoto
Según esta técnica cada usuario tiene dos claves: la privada solo la conoce el dueño, mientras que la
pública la conocen los usuarios en otras máquinas. Estas claves se generan al mismo tiempo y dan lugar
a pares biunívocos, de tal forma que la combinación pública-privada es única.
El algoritmo utilizado es sencillo, pero al tener hasta 1.024 bits, el coste de computación es muy elevado.
La legislación de EE.UU. impone el límite de 512 bits para la exportación de software criptográfico. De
esa forma, sus potentes equipos de Inteligencia pueden descifrar los mensajes a base de fuerza bruta.
• Ventaja: la clave privada no se transmite. Basta con que cada usuario tenga su clave doble pública-
privada.
• Desventajas:
a) Esta técnica no utiliza algoritmos eficientes, ya que no son rápidos a la hora de cifrar y descifrar.
b) No es fácil disponer de una garantía de autenticidad de las claves públicas: ¿quién garantiza que la
clave pública de un usuario sea realmente suya? De ahí que se hayan desarrollado certificados digitales.
7
3 Servicio de acceso y control remoto
3. Conceptos básicos sobre encriptación
3.2. Encriptación asimétrica o de clave pública
En el siguiente ejemplo el usuario A cifra el mensaje con su clave privada, obteniendo el mensaje o texto
cifrado que es transmitido al usuario B quien, usando la clave pública del usuario A, obtiene el texto
original. Dado que esa clave es pública, cualquiera puede obtener el mensaje, pero esto garantiza al
usuario B que la única persona que pudo haberlo generado es el usuario A, ya que solamente él conoce
la clave privada con que fue cifrado.
• Ejecución segura de las órdenes remotas, como son las transferencias de archivos.
El servicio SSH garantiza todos estos puntos y funciona según el proceso siguiente:
1. La máquina cliente abre una conexión TCP sobre el puerto 22 del servidor.
2. La máquina cliente y el servidor se ponen de acuerdo en la versión de SSH que van a utilizar. En
este momento se determina el algoritmo de cifrado (simétrico) a utilizar para la transferencia de
datos.
3. El servidor tiene dos claves (pública y privada). El servidor envía su clave pública al cliente.
4. El cliente recibe la clave pública y la compara con la que tiene almacenada para verificar si es
auténtica. La primera vez (como no dispone de esta clave pública), SSH pide que el usuario la
confirme. En este envío se podría producir un cambio y sustituirla por otra. Se trata de su punto
más débil. De hecho, se trata de un tipo de ataque bastante común conocido como man in the
middle. En las ocasiones siguientes, cuando el cliente reciba la clave pública del servidor, la
comparará con la que ya tiene almacenada. Se pueden prevenir ataques man in the middle contra
SSH en una intranet fácilmente. Basta con publicar un listado con las claves de los servidores de la
intranet, para que los usuarios puedan verificarlas antes de aceptarlas.
9 (Continúa…)
3 Servicio de acceso y control remoto
4. ¿Cómo funciona SSH?
(Continuación)
5. El cliente genera una clave de sesión aleatoria y crea un mensaje que contiene la clave aleatoria
generada y el algoritmo seleccionado, todo ello encriptado haciendo uso de la clave pública del
servidor. El cliente envía este paquete cifrado al servidor.
6. Para el resto de la sesión remota se utiliza el algoritmo de cifrado simétrico seleccionado y clave de
sesión aleatoria.
7. Llegados a este punto se autentica el usuario y aquí pueden usarse varios mecanismos, algunos de
los cuales veremos más adelante.
El DNI electrónico, además de identificar al usuario ante terceros, permite la firma electrónica. Es
expedido por la Dirección General de la Policía, que es el único organismo autorizado para emitir
los certificados digitales para el DNI electrónico.
La utilización del DNIe es válida para todo tipo de tramitación telemática: solicitar una beca,
presentar la Declaración de la Renta o impuestos, acceder a los datos de la Seguridad Social o a
información personal en bases de datos públicas, realizar transacciones con empresas, etcétera.
Como se puede deducir, una de las características más importantes de SSH es la seguridad que
ofrece en la conexión, ya que en el momento de establecerse la conexión, antes de que el usuario
se autentique, ya se ha creado un canal cifrado seguro por el cual «circulará» toda la información, y
todo el tráfico generado en la sesión de usuario viajará encriptado.
10
3 Servicio de acceso y control remoto
4. ¿Cómo funciona SSH?
4.1.
. ¿Qué es un túnel SSH?
En su mayoría, los protocolos que se emplean en las comunicaciones están basados en diseños de hace
casi 30 años, cuando la seguridad en redes no era un problema.
Como ya se comentó, Telnet, FTP, POP3 son protocolos muy comunes pero que descuidan la seguridad
y confidencialidad de los datos que envían. ¿De qué sirve proteger los servidores, utilizar una buena
política de contraseñas y actualizar las versiones de las aplicaciones servidoras, si luego cuando un
usuario de POP3, por ejemplo, quiere ver su correo electrónico desde su centro de estudios, envía su
usuario y contraseña en texto plano (sin encriptar) por la red?
• Modificar los protocolos inseguros de forma que se comporten como protocolos seguros.
De estas soluciones, la segunda es mucho más viable, ya que aprovecha gran parte de los servidores y
clientes existentes en el mercado. El objetivo será convertir los protocolos clásicos en protocolos seguros.
A continuación, veremos qué tiene que ver el servicio SSH con ello.
El procedimiento consiste en crear un túnel por el que viajen los datos de manera segura.
En los extremos de dicho túnel se están ejecutando servicios que utilizan protocolos no seguros, como
POP3 o FTP. SSH es capaz de asegurar la comunicación mediante la criptografía y haciendo uso de la
técnica del reenvío de puertos (PortForwarding). SSH toma los datos que el cliente envía en un extremo
del túnel y los reenvía por el canal seguro creado a partir de dicho túnel, hacia el otro extremo donde se
recogen los datos que son reenviados al servidor.
11
3 Servicio de acceso y control remoto
4. ¿Cómo funciona SSH?
4.1.
. ¿Qué es un túnel SSH?
• Para acceder a servicios TCP internos de una LAN con direcciones privadas.
• Para no enviar la clave en texto plano de FTP, Telnet, Messenger, POP3, IMAP o SMTP.
12 El epígrafe 5.3 muestra una aplicación práctica del uso de los túneles. En concreto el reenvío por TCP/IP.
3 Servicio de acceso y control remoto
5. ¿Qué es un cliente SSH?
El cliente SSH es la herramienta de software que permite al usuario, desde una máquina remota, solicitar
el establecimiento de una conexión segura con el servidor SSH.
La conexión SSH se puede llevar a cabo mediante herramientas gráficas o bien desde una consola, en
modo de línea de comandos.
Por ejemplo, la herramienta Webmin ofrece la posibilidad de establecer conexiones SSH. Para utilizar el
cliente SSH de Webmin si el navegador empleado es Firefox y las pruebas se hacen con la distribución
Ubuntu GNU/Linux, hay que tener instalado el complemento para Java-console (JRE). En la pantalla
inicial, si se selecciona la categoría Otros y, a continuación Conexión SSH, se abrirá una ventana de
conexión.
Es posible que muestre un mensaje de seguridad relacionado con el certificado diciendo que lo ha emitido
una fuente que no es de confianza. Bastará con contestar que se confía.
Antes de abrir la conexión se pueden modificar algunos parámetros de la conexión. Para ello, habrá que ir
a Configuración de módulo.
El proceso o demonio que se ejecuta en el cliente
es ssh y se encuentra en el directorio /usr/bin.
La orden scp
Permite realizar transferencias simples desde la línea de comandos. Funciona como el comando cp que
se utiliza para copiar en local, pero de forma remota y, a diferencia del rcp, de forma segura.
Con esta orden pueden hacerse copias seguras de archivos, con conexión segura y encriptada, entre
distintas máquinas, así como directorios completos con el carácter asterisco (*).
Sigue los mismos esquemas de comprobación que SSH. Su funcionamiento dependerá de la manera en
que cada usuario haya configurado SSH; es decir, si dispone de clave propia o no y si la clave tiene frase
de paso o no.
14
3 Servicio de acceso y control remoto
5. ¿Qué es un cliente SSH?
5.1. Transferencia segura de archivos
La orden sftp
Intenta emular la forma de uso de un cliente FTP ordinario para abrir una sesión segura e interactiva de
este tipo.
La sintaxis es la siguiente:
Una vez establecida la conexión, puede utilizarse una serie de comandos específicos en FTP. No
obstante, solo está disponible en OpenSSH 2.5 y versiones superiores.
sftp>help
Este último comando permite visualizar la lista de órdenes ftp disponibles. En esta conexión se asume
que el usuario alumno1 se conecta como alumno1 en la máquina_remota y, por lo tanto, dicho usuario
debe existir en ella.
15
3 Servicio de acceso y control remoto
5. ¿Qué es un cliente SSH?
5.2. Reenvío X11
Una de las funciones de SSH es establecer una línea de órdenes segura, aunque también se
pueden abrir sesiones X por un canal SSH.
Cuando se ejecuta un programa X Window desde una shell segura, el cliente y el servidor SSH
crean un nuevo canal seguro dentro de la conexión SSH actual. Los datos del programa X Window
se envían a la máquina cliente a través de dicho canal como si se realizase una conexión al
servidor X a través de un terminal local.
La figura muestra el esquema de este proceso que consta de los pasos siguientes:
2. Por otro lado, desde la máquina local se ejecuta xterm, que es el terminal virtual utilizado en el
sistema gráfico X Window.
3. Xterm se comunica directamente con el servidor X que está corriendo en la máquina (comunicación
sin cifrar).
16
3 Servicio de acceso y control remoto
5. ¿Qué es un cliente SSH?
5.2.
. Reenvío X11
A partir de ahora, todo lo que se teclea en la ventana de xterm (contraseñas incluidas) se transmite en
texto plano por la red, sin aprovechar las ventajas de utilizar SSH. Sería preferible que se pudiera utilizar
el mismo canal seguro que se establece con SSH para los clientes X. El reenvío (forwarding) de X11 es
un mecanismo que permite la utilización del canal SSH. El esquema de funcionamiento es el que se
muestra en la figura.
La orden que hay que lanzar para establecer la terminal xterm en la máquina remota bajo SSH es:
$ ssh -n usuario@maquina_remota xterm &
Cuando se utiliza esta técnica, el servidor SSH se convierte en un túnel encriptado para el cliente SSH. El
usuario tan solo ha de tener una cuenta en el sistema remoto. Esta técnica también se conoce como
«mapeado de puertos».
El reenvío por TCP/IP puede usarse para aquellos protocolos que no tienen soporte nativo para
comunicaciones cifradas y autenticadas, como por ejemplo POP, IMAP, FTP (cuando no se pueda utilizar
el cliente sftp), etcétera. Los servicios basados en estos protocolos pueden hacerse más seguros
mediante estos túneles SSH.
El protocolo IMAP es un buen ejemplo a la hora de probar el túnel SSH. Los clientes de correo envían
constantemente el login y la contraseña del usuario al servidor de correo para sondear si se han recibido
nuevos mensajes. Toda esta información viaja en texto plano, por lo que puede ser capturada y
analizada, y el usuario perdería la confidencialidad de su correo.
18
3 Servicio de acceso y control remoto
5. ¿Qué es un cliente SSH?
5.3.
. Reenvío por TCP/IP
Tenemos el siguiente ejemplo: el usuario alumno1 quiere comprobar su correo en el servidor (remoto)
mail.servidor.aula mediante el uso de IMAP a través de una conexión segura. Para ello reenviará sus
peticiones IMAP desde el puerto 10143 local a través de la conexión SSH al puerto 143 de la máquina
remota: $ ssh -L 10143:localhost:143 [email protected]
2. Tiene licencia libre que permite su utilización para cualquier propósito, incluido el comercial.
4. Está disponible para plataformas GNU/Linux y Windows, así como Unix, Mac, Solaris, AIX y otras.
8. Compresión de datos.
20
3 Servicio de acceso y control remoto
6. ¿Qué es un servidor SSH?
6.1. Instalación del servidor SSH (GNU/Linux) con
Webmin
Webmin dispone de un módulo específico que permite administrar las conexiones SSH. Este módulo es
estándar, se llama webmin-sshd y está disponible directamente en la web oficial de Webmin.
21
3 Servicio de acceso y control remoto
6. ¿Qué es un servidor SSH?
6.3. Autenticación de usuarios
Existen varios métodos de autenticación de usuarios. A continuación, se explican dos métodos
mutuamente excluyentes, es decir, el servidor y el cliente deben utilizar el mismo, por lo que
automáticamente se descarta el otro.
SSH permite autenticar a un usuario utilizando su contraseña. Para ello, cada vez que el usuario quiera
establecer una conexión, se le pide una contraseña que se envía al servidor. Este comprueba que el
usuario existe y que la clave introducida es correcta. La validación utilizada en el servidor se basará en el
archivo /etc/shadow, el procedimiento típico para los sistemas Unix o basados en él.
Este método, aunque tiene el inconveniente de requerir al usuario su contraseña cada vez que quiera
establecer una sesión, por lo menos no realiza el envío del login y la contraseña en texto plano.
1. Una clave pública, que se copia a todos los servidores a los que el usuario quiere conectarse.
2. Una clave privada que solo posee el usuario. Para mayor seguridad, está cifrada con una frase de
paso.
22
3 Servicio de acceso y control remoto
6. ¿Qué es un servidor SSH?
6.3. Autenticación de usuarios
Ambas claves poseen una característica importante: un texto cifrado con la clave pública solo puede
descifrarse mediante la clave privada correspondiente, mientras que un texto cifrado con la clave privada
solo puede descifrarse mediante su clave pública asociada.
1. Una vez establecida la conexión, el servidor genera un número aleatorio que se conoce con el nombre
de «desafío» (challenge), cifrado con la clave pública del usuario mediante el algoritmo RSA o DSA. Este
texto cifrado se envía al usuario.
2. El usuario debe descifrarlo con la clave, privada correspondiente y devolver la respuesta cifrada al
servidor. De esa forma, demuestra que el usuario es quien dice ser.
4. El servidor compara el texto resultante con el texto original. Si coinciden el servidor acepta al usuario
como correctamente autenticado.
23
3 Servicio de acceso y control remoto
6. ¿Qué es un servidor SSH?
6.4.
. Autenticación SSH por contraseña
La configuración de la autenticación de usuario por contraseña está disponible en la opción de menú:
24
3 Servicio de acceso y control remoto
6. ¿Qué es un servidor SSH?
6.5. Otras opciones del módulo SSH de Webmin
Servidor SSH > Control de Acceso
Desde Servidor SSH también se puede acceder a
Control de Acceso, una opción desde la que se puede
conceder o denegar el paso a los usuarios.
ssh [nombre_usuario@]maquina_remota
26
3 Servicio de acceso y control remoto
6. ¿Qué es un servidor SSH?
6.7. El agente de autenticación ssh-agent
El agente de autenticación permite simplificar el proceso de conexión a una máquina remota en caso de
que se utilice autenticación por clave pública. El agente ssh-agent actúa como almacén de las claves
privadas y las suministra al cliente SSH cada vez que este las necesita.
La orden eval (eval [arg1 [arg2] ...]) expande sus argumentos siguiendo las normas de expansión de la
shell, separándolos por espacios e intenta ejecutar la cadena que resulta como si fuera una orden.
Inicialmente el depósito de claves del agente está vacío. Para añadir nuestra clave privada RSA a este
depósito se utiliza el comando ssh-add:
........................................................................
alumno@servidor:~$
27
3 Servicio de acceso y control remoto
7. Acceso remoto con FreeNX
Esta aplicación permite acceder a un equipo GNU/Linux de forma remota. Utiliza la tecnología NX
(protocolo), que permite la ejecución de sesiones gráficas remotas (X11) mediante conexiones que no
requieren gran ancho de banda. Esta tecnología comprime (ZLIB) todo el tráfico en el servidor gráfico X
Window y lo transmite, haciendo uso del protocolo SSL, a través de una conexión segura SSH.
Es similar en funcionalidad a las herramientas basadas en VNC pero utilizando una tecnología diferente
ya que VNC no transmite la información cifrada.
28
3 Servicio de acceso y control remoto
7. Acceso remoto con FreeNX
7.2. Cliente NX en GNU/Linux
La instalación del cliente FreeNX crea una nueva
entrada en el menú Aplicaciones > Internet > NX
Client for Linux, que a su vez contiene el cliente
propiamente, una herramienta de configuración
NX Connection Wizard, y el administrador de
sesiones cliente NX (NX Session Administrator).
/usr/NX/bin/nxclient -wizard
29
3 Servicio de acceso y control remoto
7. Acceso remoto con FreeNX
7.3. Cliente NX en Windows
Desde un equipo con Windows se puede establecer una sesión remota contra un servidor FreeNX en
GNU/Linux. Para ello hay que descargar e instalar el cliente NX para Windows de la página oficial de
NoMachine.
Al ejecutar NX Client for Windows e introducir la contraseña del usuario alumno se abre la ventana de
conexión al servidor. Al tratarse de la primera vez, pide confirmación sobre la autenticidad del host, inicia
la sesión y finalmente muestra una ventana idéntica a la de la figura.
30
3 Servicio de acceso y control remoto
8. Servidor SSH bajo Windows 2008 Server
Como se indicó en la introducción a esta unidad, la solución a los problemas de seguridad de Telnet se
llama Secure Shell (SSH), en este caso para Windows. Existen varias herramientas SSH para Windows
en el mercado, muchas propietarias y alguna libre. De ellas se ha elegido la opción libre freeSSHd ya que
el nivel de complejidad de OpenSSH para Windows 2008 Server no lo hace recomendable.
Dentro de los servicios de terminal se encuentra Remote Desktop, que proporciona una interfaz gráfica
de usuario para el control remoto de los escritorios dentro de una red de área local.
32
3 Servicio de acceso y control remoto
9. Servicios de Terminal Server
Activación de Remote Desktop: cliente
Los servicios de Terminal Server para el cliente se pueden utilizar de diferentes formas.
Una vez hecha la validación del usuario, se inicia la sesión remota. Si el usuario que se conecta tiene
privilegios de administrador, tendrá la oportunidad de realizar tareas de administración de forma remota.
33
3 Servicio de acceso y control remoto
9. Servicios de Terminal Server
La herramienta rdesktop
Otra herramienta para el control remoto es rdesktop, un cliente Open Source para los servicios de
Terminal Server de Windows. La herramienta rdesktop se comunica de forma nativa con el protocolo de
escritorio remoto (RDP) para ofrecer un escritorio a los usuarios de Windows
La aplicación tsclient
http://gnomepro.com/tsclient
34
3 Servicio de acceso y control remoto
Créditos:
Autores del libro del alumno
Edición
Estudio177.com