SSH: Secure SHell.
Todos los derechos reservados. The McGraw-Hill Companies o CISCO Systems Inc.
1
Introducción a los protocolos de la capa de aplicación • Tema 2 – Introducción a la capa de aplicación – Aplicaciones cliente-servidor • SSH
Material complementario: •TCP/IP Protocol Suite 4/e: •Tema: 20, 21. •NetAcad CISCO: •Capítulo: 3 Todos los derechos reservados. The McGraw-Hill Companies o CISCO Systems Inc.
2
Introducción:telnet • Inicialmente, la aplicación usada para hacer login en una máquina remota ha sido Telnet. • El servidor Telnet usa el puerto 23 TCP. • Se le conoce como el cliente universal ya que el cliente Telnet puede conectarse a servidores que usen comandos en modo texto (ASCII) para interactuar con ellos. • Para realizar un acceso remoto se solicita un login y un password al usuario. • Un atacante que se encuentre entre el cliente y el servidor Telnet puede usar un sniffer para ver los contenidos de los paquetes telnet y por lo tanto acceder al login y password del usuario, ya que este se envía en modo texto. Todos los derechos reservados. The McGraw-Hill Companies o CISCO Systems Inc.
3
Introducción: ftp • Inicialmente, la aplicación para la transferencia de ficheros ha sido ftp. • Al igual que telnet, ftp solicita un login y un password al usuario que quiere enviar o recibir un fichero del servidor. • El login y el password viajan en texto plano por Internet por lo que son susceptibles de ser observados mediante el uso de un sniffer. • FTP usa dos conexiones TCP: una para los comandos y otra para la transmisión de datos. • Los puertos del servidor son el 21 para los comandos y el 20 para los datos, pero solo se usa el 20 cuando es un servidor activo (inicia la conexión de datos). • La siguientes figuras muestran las diferencias entre servidor ftp activo y pasivo. Todos los derechos reservados. The McGraw-Hill Companies o CISCO Systems Inc.
4
Introducción: ftp • Conexiones TCP del FTP. Servidor activo.
Todos los derechos reservados. The McGraw-Hill Companies o CISCO Systems Inc.
5
Introducción: ftp • Conexiones TCP del FTP. Servidor pasivo.
Todos los derechos reservados. The McGraw-Hill Companies o CISCO Systems Inc.
6
Introducción: SSH • SSH permite cifrar los contenidos de una conexión de acceso remoto, o de transferencia de ficheros, de forma que el uso de un sniffer no permite obtener el login, password, o ficheros transmitidos de forma legible para el atacante. • SSH realiza un cifrado transparente de los datos enviados por la red. • SSH usa una arquitectura cliente-servidor usando el puerto 22. • Aunque hablemos del protocolo SSH, actualmente hay dos implementaciones de SSH incompatibles: la SSH-1.5 y la SSH2. • SSH permite: autentificación, cifrado e integridad. – Autentificación: Se puede verificar el remitente. – Cifrado: los datos reales no son visibles por terceros – Integridad: los datos no se han cambiado en transito.
Todos los derechos reservados. The McGraw-Hill Companies o CISCO Systems Inc.
7
Introducción: SSH • SSH permite: – Acceso Remoto seguro: • $> ssh
[email protected] • El cliente SSH autentifica al usuario leo en el ordenador remoto usando una conexión cifrada, por lo que el login y el password se cifran antes de dejar la máquina local. • El cifrado es transparente y la conexión se realiza como en un telnet.
– Transferencia de ficheros segura: • Para transferir ficheros podríamos usar ftp. Cifrando el fichero mediante PGP en origen, transferirlo al destino y descrifrarlo allí. • SSH realiza un proceso similar pero de forma transparente al usuario. • $> scp Tema12.ppt
[email protected]:public_html/redes2/ppt
Todos los derechos reservados. The McGraw-Hill Companies o CISCO Systems Inc.
8
Introducción: SSH • SSH permite (Cont): – Ejecución segura de comandos remotos: • Por ejemplo si como administradores queremos ver los usuarios que hay en varias máquinas: dali, iron y miro, podemos hacerlo mediante la ejecución del siguiente script y los datos viajaran por la red de forma segura: #!/bin/sh for maquina in dali iron miro do ssh $maquina /usr/bin/w done
Todos los derechos reservados. The McGraw-Hill Companies o CISCO Systems Inc.
9
SSH • Hosts conocidos: – Al instalar el servidor ssh, este crea una clave asimétrica RSA para identificarse con los clientes. Cuando un cliente se conecta por primera vez a un servidor este le dice: $ ssh -l pat shell.isp.com The authenticity of host 'shell.isp.com (192.168.0.2)' can't be established. RSA key fingerprint is 77:a5:69:81:9b:eb:40:76:7b:13:04:a9:6c:f4:9c:5d. Are you sure you want to continue connecting (yes/no)?
– Si respondemos yes: Warning: Permanently added 'shell.isp.com,192.168.0.2' (RSA) to the list of known hosts
– Unos de los métodos es el password authentication, en el cual el password del usuario viaja cifrado con la clave pública del servidor.
Todos los derechos reservados. The McGraw-Hill Companies o CISCO Systems Inc.
10
SSH • Hosts conocidos:
– Si el servidor ha cambiado su clave, porque se ha reinstalado el ssh o nos estamos conectado a un servidor que suplanta al original, obtendremos este mensaje: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that the RSA host key has just been changed. The fingerprint for the RSA key sent by the remote host is 77:a5:69:81:9b:eb:40:76:7b:13:04:a9:6c:f4:9c:5d. Please contact your system administrator. Add correct host key in /home/smith/.ssh/known_hosts to get rid of this message. Offending key in /home/smith/.ssh/known_hosts:36
– Podemos cambiar la clave pública del servidor almacenada en el cliente, si la sabemos o borrarla y aceptar la que nos manda, como si nunca nos hubiéramos conectado. – Se puede realizar también autentificación de usuario, pero no se verá.
Todos los derechos reservados. The McGraw-Hill Companies o CISCO Systems Inc.
11
SSH: Arquitectura • SSH tiene cuatro componentes como se ve en la figura: – – – –
SSH Transport Layer Protocol (SSH-TRANS) SSH Authentication Protocol (SSH-AUTH) SSH Connection Protocol (SSH-CONN) SSH Application. Por Ejemplo, SSH File Transfer Protocol (SSHSFTP)
Todos los derechos reservados. The McGraw-Hill Companies o CISCO Systems Inc.
12
SSH: Arquitectura • SSH-TRANS: – Como TCP no es un protocolo de transporte con seguridad,SSH usa SSH-TRANS para establecer un canal seguro sobre TCP entre origen y destino. – Primero se usa una conexión TCP insegura para intercambiar parámetros y claves que permitan tener un canal seguro que de los siguientes servicios: • Privacidad o confidencialidad del mensaje intercambiado. • Integridad de los datos: los datos no se han cambiado por un atacante. • Autentificación del servidor: el usuario puede verificar que el servidor es quien dice ser. • Compresión: para mejorar la eficiencia de las comunicaciones.
Todos los derechos reservados. The McGraw-Hill Companies o CISCO Systems Inc.
13
SSH: Arquitectura • SSH-AUTH: – Después de establecer un canal seguro entre el cliente y el servidor es autentificado por el cliente, el servidor puede usar otro software para autentificar al cliente y/o al usuario. Por ejemplo, solicitando el login y password del usuario.
• SSH-CONN: – Después de establecer un canal seguro y de autentificar a servidor y cliente SSH-CONN permite tener varias conexiones de datos entre cliente y servidor.
• SSH-APP: – Se permiten a varias aplicaciones usar la conexión segura. Cada aplicación puede crear un canal de SSH-CONN. Ejemplo de aplicaciones: • Login Remoto • Transferencia de ficheros • Redireccionamiento de puertos.
Todos los derechos reservados. The McGraw-Hill Companies o CISCO Systems Inc.
14
SSH: redireccionamiento de puertos • SSH permite el acceso a una aplicación que no aporta seguridad, para que los mensajes de la aplicación viajen por un canal SSH seguro. Por ejemplo, telnet, smtp, ftp, etc. • Este mecanismo se denomina a veces SSH tunneling.
Todos los derechos reservados. The McGraw-Hill Companies o CISCO Systems Inc.
15
SSH: redireccionamiento de puertos • El comando SSH ejecutado en el cliente SSH es el siguiente: – ssh –L [Host-Local]PuertoLocal:Host-Remoto:PuertoRemoto HostSSH-Remoto
– La siguiente figura muestra cuando el cliente de la aplicación y el cliente SSH se encuentran en el mismo computador. Análogo para los servidores. – Para el cliente de la aplicación es como si su servidor estuviera en el mismo ordenador A y puerto P. – SSH se encarga de establecer un túnel y acceder al servidor real. – Se establece el túnel con A># ssh –L P:B:W B
Todos los derechos reservados. The McGraw-Hill Companies o CISCO Systems Inc.
16
SSH: redireccionamiento de puertos • La siguiente figura muestra cuando el cliente de la aplicación y el cliente SSH se encuentran en distintos computadores . Análogo para los servidores de la aplicación y de SSH. – Se establece el túnel SSH en A># ssh –L P:S:W B – El cliente accede a la aplicación S:W mediante C># cliente A:P
Todos los derechos reservados. The McGraw-Hill Companies o CISCO Systems Inc.
17