Está en la página 1de 34

Tema 5: Acceso y control

remoto
Parte I

Servicios en Red
Servicio de acceso y control
remoto
 Los servicios de acceso y control remoto permiten,
mediante la utilización de determinadas aplicaciones
software, establecer conexiones con equipos remotos y
realizar su administración centralizada sin necesidad de
acceder a ellos localmente.

 Si se dispone de equipos que no tienen teclado y/o pantalla


o se trata de servidores apilados en un rack o simplemente
no están físicamente presentes, es muy importante
disponer de mecanismos que permitan realizar de forma
cómoda, rápida y segura la administración remota sobre
ellos.
Servicio de acceso y control
remoto
 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.

 En la actualidad las herramientas de administración remota


más utilizadas son:
 En modo texto: telnet, rlogin y secure shell (ssh)
 En modo gráfico: VNC en entornos UNIX/Linux; NX y los
servicios de Terminal Server en Windows, TeamViewer.
Telnet
 Antes de que la www hiciera posible la "navegación gráfica", los
ordenadores conectados a internet solo entendían "secuencias de
comandos", al estilo DOS o UNIX.

 El servicio de terminal remota permite realizar una conexión desde un


ordenador (cliente) a otro ordenador (servidor), ya esté al lado o a miles de
kilómetros de distancia, para ejecutar una sesión de shell o consola en el
servidor que interactúa con la pantalla y teclado del ordenador cliente.
Funcionamiento de Telnet
 Telnet funciona de la siguiente manera: cada vez que se pulsa una
tecla en nuestro ordenador, ésta se envía al servidor donde
estamos conectados. Cada vez que el servidor remoto produce
una respuesta, se la envía a nuestro ordenador, que la muestra en
pantalla. El resultado final es que nuestro teclado y nuestra
pantalla parecen estar conectados directamente al  sistema
remoto.

 El usuario se convierte de hecho en un terminal del sistema del


servidor remoto y, por lo tanto, puede trabajar como si estuviese
directamente conectado a ese servidor.

 Así, si el usuario  teclea  por ejemplo un comando, éste se ejecuta


en el servidor remoto (no en nuestro ordenador).

 Observa el aspecto típico de una pantalla de Telnet:


Funcionamiento de Telnet

 Nota: Telnet es una aplicación que funciona siempre en modo


texto (aunque la uses en un entorno gráfico, como Windows), por
tanto desde telnet no podemos ejecutar las aplicaciones gráficas
del sistema remoto.
Funcionamiento de Telnet
 Para poder hacer telnet es necesario estar dado
de alta como usuario en el sistema al que se
conecta, tener un nombre de usuario (login) y
una contraseña (password).

 Todos los privilegios que tuviera un usuario en un


computador los seguirá teniendo cuando se
conecta en modo remoto a través de un servicio
Telnet.
Uso de Telnet
 Para poder usar el programa telnet podemos escribir en el
intérprete de órdenes de MS-DOS:

>telnet nombre.completo.de.servidor

 También podemos escribirlo en el cuadro de la opción de


“Ejecutar” del menú de inicio, como se muestra en la figura
siguiente.

 O bien desde el navegador escribir telnet://nombre_del_servidor.


Uso de Telnet
 El puerto 23 es el puerto público normalizado para el terminal virtual
de telnet.

 Cuando un cliente se conecta al puerto 23, la respuesta normal es un


cursor para introducir un identificador de conexión y una contraseña.

 Pero, telnet se diseñó como herramienta general de comunicaciones


entre aplicaciones, por lo que incluye la posibilidad de conectar el
cliente a cualquier puerto. Por ejemplo, en el diálogo que aparece a
continuación se produce una conexión a un servidor de correo
(popper) que funciona en el puerto 110.
> telnet post.uv.es 110
Trying...
Connected to gong.ci.uv.es.
Escape character is '^]'.
+OK gong POP3 Server (Version 2.5-UV) ready.
quit /* Comando tecleado para terminar la conexión */
+OK gong POP3 Server (Version 2.5-UV) shutdown.
Connection closed by foreign host.
Desventaja Telnet
 Sin embargo, telnet tiene un inconveniente notable que
hace desaconsejable su uso: la información entre cliente y
servidor se envía sin cifrar, por lo que resulta muy sencillo
interceptar los datos transmitidos durante cualquier sesión
siempre que se tenga acceso a alguna de las redes por las
que viaja la información entre cliente y servidor.

 Como parte de la información vulnerable son las


contraseñas y nombres de usuario, el riesgo de que nuestra
identidad sea suplantada y/o el servidor sea accedido
ilegítimamente es elevado.

 Además permite la conexión como root y no guarda


información acerca de los intentos fallidos de conexión.
Desventajas Telnet
 Por esta razón dejó de usarse, casi totalmente, hace unos
años, cuando apareció y se popularizó el SSH, que puede
describirse como una versión cifrada de telnet
(actualmente se puede cifrar toda la comunicación del
protocolo durante el establecimiento de sesión si cliente y
servidor lo permiten)
Ejemplo de telnet
Instalación del servidor
Telnet
apt-get install telnetd
SSH: Introducción
 Cuando se realiza una conexión a un servidor remoto
usando por ejemplo el comando telnet o ftp, el
login(usuario) y password(contraseña) son
transmitidos en la red de forma clara, lo cual representa un
gran riesgo si llega a existir sobre la red un programa que
capture la información, basándose en el modo promiscuo
de las redes ethernet (comúnmente llamado sniffer),
ocasionando obtener tanto el login como el password y
pudiendo posteriormente irrumpir en el servidor con esta
información.
SSH: Introduccion
 Este tipo de problemáticas ha llevado al diseño de herramientas
que permitan evitar estas situaciones siendo el caso de Secure
Shell (ssh).

 El servicio SSH permite establecer conexiones seguras entre


máquinas remotas.

 Secure Shell permite realizar la comunicación y transferencia de


información de forma cifrada proporcionando fuerte autenticación
sobre el medio inseguro. Este tipo de conexión se muestra en la
ilustración siguiente:
Servicio SSH
 Las principales características del servicio SSH son las
siguientes:
 Utiliza el puerto 22 (TCP y UDP) y el protocolo SSH, y
sigue el modelo cliente/servidor.
 El cliente puede verificar que se está conectando a un
determinado servidor.
 La información de autenticación es cifrada.
 Todo el tráfico de datos enviados y recibidos son
cifrados.
 Es posible enviar aplicaciones gráficas lanzadas desde el
intérprete de comandos (reenvío por X11 o X11
Forwarding).
Versiones SSH
 Existen dos variedades de SSH actualmente (versión 1 y
versión 2).
 La versión 1 de SSH hace uso de muchos algoritmos de
encriptación patentados (sin embargo, algunas de estas
patentes han expirado) y tiene problemas de seguridad que
potencialmente permite a un intruso insertar datos en la
corriente de comunicación.
 La versión 2 tiene un algoritmo de intercambio de claves
mejorado que no es vulnerable a los problemas de seguridad
software de la versión 1, obviamente la versión recomendada y
que hoy en día se instala por defecto es la 2.

 El paquete ssh que incluye Debian recoge OpenSSH, la


implementación libre de SSH (versiones 1 y 2) que lleva a
cabo principalmente OpenBSD. Dentro del paquete, se
encuentra un conjunto de herramientas seguras que
estudiaremos a continaución como son: ssh, scp, sftp, . . .
Versiones SSH
Características básicas
 Secure Shell, también llamado SSH, es un protocolo utilizado para
login y ejecución de procesos remotos.

 Resumiendo SSH nos permite:


 Iniciar sesiones (login) en servidores remotos.
 Ejecutar comandos remotamente.
 Copiar archivos entre distintos hosts.
 Ejecutar aplicaciones X11 remotamente.
 Realizar túneles IP cifrados (Reenvío de puertos).

 SSH no es solo un reemplazo de telnet, rlogin, rexec, ftp, XDMCP y


otros. Además de brindar todas estas posibilidades con,
básicamente, un único programa, brinda comunicaciones seguras
(cifradas) entre el cliente y el servidor.
Ventajas de usar SSH
 Con la utilización de SSH se evita:
 La interceptación de la comunicación entre dos sistemas
por parte de una tercera máquina que copia la
información que circula entre ellas, y puede introducir
modificaciones y reenviarla a la máquina destino.
 La suplantación de un host o enmascaramiento, es decir,
que una máquina pueda fingir que es la máquina destino
de un mensaje. 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 sólo son conocidas por el sistema local
y el remoto.
¿Cómo funciona SSH?
 Las claves de una correcta conexión remota son las
siguientes:
 No transmitir las contraseñas en texto plano.
 Proceso de autenticación con garantías
 Ejecución segura de las órdenes remotas, como son las
transferencias de archivos
 Sesiones gráficas X11 seguras (entornos GNU/Linux)

 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.
¿Cómo funciona SSH?
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 confirmación al
usuario para aceptarla como válida. En este envío se podría
producir un cambio en esa clave pública y sustituirla por otra.
Este es el punto débil del servicio, y este ataque, bastante común,
se llama “man in the middle”. Las veces siguientes cuando el
cliente recibe la clave pública del servidor la compara 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.
¿Cómo funciona SSH?
5. El cliente genera una clave de sesión aleatoria y crea un
mensaje que contiene esta clave aleatoria que ha
generado y el algoritmo seleccionado. Todo ello se
encripta 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 una clave se 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.
8. Por último se inicia la sesión de usuario.
¿Cómo funciona SSH?
 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.
Mecanismos de
autenticación
 Existen múltiples mecanismos de
autenticación/autentificación y los más importantes que
implementa ssh son los siguientes:
 Contraseña: Es el método utilizado por defecto, y en el
que para conectarnos a un host, tenemos que indicar
nombre de usuario y contraseña en dicho usuario en ese
host. Todo el procedimiento de autenticación se realiza
cifrado.
 Clave pública/privada Basado en los mecanismos de
cifrado asimétrico RSA y DSA. Este método nos da la
posibilidad de conectar con el host sin indicar la
contraseña del usuario en el host.
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?
Túnel SSH
 Para evitarlo, hay dos posibles soluciones:
 Crear o utilizar protocolos seguros.
 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.
Túnel SSH
 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.
Túnel SSH
Cliente SSH
 El cliente SSH es la herramienta software que permite al
usuario solicitar desde una máquina remota el
establecimiento de una conexión segura con el servidor
SSH

 La conexión SSH se puede realizar utilizando herramientas


gráficas o en modo línea de comandos desde una terminal.

 Como herramienta gráfica podemos usar Putty o FreeNX y


para arrancar el cliente en modo consola escribimos:

Ssh [usuario@]host
Transferencia segura de
archivos
 Para la transferencia de archivos en GNU/linux existen 2
alternativas: la orden scp y la orden sftp.

 Secure Copy o SCP es un medio de transferencia segura


de archivos informáticos entre un host local y otro remoto o
entre dos hosts remotos, usando el protocolo Secure Shell
(SSH).

 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.
Transferencia segura de
archivos
 La orden scp permite hacer copias seguras (con conexión
segura y encriptada) de archivos entre distintas máquinas.
También permite copiar directorios completos utilizando el
carácter *.

 Normalmente, la sintaxis del programa scp es similar a la


sintaxis de la orden cp:

scp usuario@host:/directorio/ArchivoOrigen ArchivoDestino

scp ArchivoOrigen usuario@host:/directorio/ArchivoDestino

scp /directorio/* usuario@host:/directorio/


Transferencia segura de
archivos
 La orden sftp se utiliza para abrir una sesión segura e
interactiva tipo FTP.

 Esta orden intenta emular la forma de uso de un cliente FTP


ordinario. Su sintaxis es:

sftp servidor.dominio.es

 Una vez establecida la conexión se puede utilizar una serie


de comandos específicos tipo FTP.
Reenvío X11
 Una de las funciones de SSH es establecer una línea de
órdenes segura. Pero también se puede abrir sesiones X por
un canal SSH

 Cuando se ejecuta un programa X Windows desde una shell


segura, el cliente y el servidor SSH crean un canal seguro
dentro de la conexión SSH actual, y los datos del programa
X Windows se envían a la máquina cliente a través de este
canal, aparentando que se está conectado al servidor X a
través de una terminal local.

También podría gustarte