ssh (secure shell): telnet y ftp seguros

Download SSH (Secure Shell): Telnet y FTP seguros

Post on 12-Jun-2015

1.373 views

Category:

Documents

0 download

Embed Size (px)

DESCRIPTION

xD - Dar las gracias no toma mas de 5 segundos"!

TRANSCRIPT

SSH (Secure Shell): Telnet y FTP segurosJuan David Gonzlez Cobas Mayo de 2005

0-0

Login remotoEl protocolo Telnet suministra una conexin TCP como servicio de terminal virtual, cuya funcin ms corriente es la posibilidad de establecer sesiones (i.e., login o shell remoto). Ms propiamente debiramos hablar de ejecucin remota de programas. El mayor peligro inherente al uso de Telnet como shell remoto es que la autenticacin (casi siempre por contrasea) est expuesta a escucha por terceras partes, al no blindar criptogrcamente la conexin TCP. Es tambin fcil suplir un servicio Telnet por un troyano. Es decir, sufrimos autenticacin dbil ausencia de condencialidad autenticacin nula del servidor El objeto inicial del protocolo SSH (Secure Shell) es resolver estas deciencias, proporcionando adems otros servicios adicionales.1

Transferencia de cheros FTPEl protocolo FTP (File Transfer Protocol) es en la prctica el medio universal de transferencia de cheros entre hosts, nicamente reemplazado en parte por HTTP. Permite la transferencia de cheros entre un cliente y un servidor previa autenticacin del cliente. Tambin permite sesiones annimas para recuperacin de contenidos en servidores de cheros. FTP se distingue de otros servicios en que usa dos conexiones TCP para la comunicacin control Es la conexin que transporta los comandos FTP y las respuestas del servidor. datos Es la portadora efectiva de los datos que se transeren. Esto inuye en la posibilidad de tunelizar FTP (dicultndola).2

Autenticacin rhosts: rlogin/rsh/rcpAunque menos utilizada actualmente, existe una serie de programas muy popular en UNIX para la ejecucin de procedimientos remotos y la transmisin de cheros: la serie rsh/rcp/rlogin. Su objeto era proporcionar una forma conveniente de login y transferencia de cheros entre hosts circunvalando la autenticacin por contrasea. Para ello, el usuario dena en su directorio $HOME un chero .rhosts indicando las direcciones de hosts remotos, y usuarios en ellos, en los que conaba para hacer login en su nombre. Los hosts de conanza podan denirse tambin globalmente para todo el sistema en /etc/hosts.equiv

3

Ejemplo de chero .rhosts#### fichero .rhosts en /home/cobas de di015.edv.uniovi.es #### todos estos puede entrar como cobas en di015 via rlogin #### o copiar ficheros via rcp di011.edv.uniovi.es 156.35.94.1 cobas 156.35.31.1 cobas 156.35.31.1 jdgc # cualquier usuario de di011 puede entrar # cobas en 156.35.94.1 puede entrar # cobas en 156.35.31.1 puede entrar # jdgc en la misma maquina

No hace falta decir que este mecanismo es seriamente desaconsejable.

4

rsh y rcpAdems de rlogin (el equivalente a Telnet), se ofrecan un par de programas para ejecucin remota de procedimientos y copia remota de cheros. Suponiendo que yo sea cobas@di015$ rsh cobas@156.35.171.71 cat datos.txt >> datos_aqui.txt $ rcp cobas@156.35.171.71:datos.txt cobas@pinon:datos_alla.txt

funcionarn si di015 y mi identidad en l se encuentran registrados en el chero .rhosts de cobas de los sitios 156.35.171.71 y pinon, respectivamente.

5

Secure Shell (SSH)SSH es un reemplazo de los programas rlogin, rsh, rcp, escrito por Tatu Ylnen (1996). Los programas ssh y scp presentan una interfaz similar a rsh y rcp, pero envuelta en un protocolo de comunicaciones seguro y mecanismos de autenticacin variadsimos y congurables a voluntad. Existen dos versiones del protocolo, llamadas versin 1 y versin 2. La primera posee debilidades conocidas y se recomienda el uso exclusivo de la segunda. Ninguna de ellas es perfecta, sin embargo. En conjunto, SSH proporciona Privacidad por blindaje criptogrco de la conexin TCP Autenticacin del cliente por una mirada de mecanismos Autenticacin del servidor, idem. Protocolo de transferencia de cheros (scp/sftp) Creacin de tneles por port forwarding Soporte de autenticacin por agentes6

Autenticacin del clienteSSH puede autenticar autorizar el acceso al cliente mediante varios mtodos rhosts al estilo BSD (basada en host) rhosts con claves pblicas de host Clave pblica contraseas (al modo clsico de Telnet, con transferencia cifrada). desafo/respuesta Para aportar conveniencia, SSH soporta el uso de un agente de autenticacin.

7

Autenticacin por contraseaDH Key Agreement ssh (cliente) Canal SSH criptogrficamente protegido OK 22 sshd (servidor)

/etc/passwd

cuenta de pepe

pepe miclave

8

Autenticacin por clave pblica RSADH Key Agreement ssh (cliente) id_sesion firma(id_sesion) 22 sshd (servidor)

Canal SSH criptogrficamente protegido OK

.ssh/id_rsa

.ssh/authorized_keys cuenta de pepe

pepe miclave

9

Autenticacin por rhosts con clave pblica156.35.69.69 DH Key Agreement ssh (cliente) pepe,156.35.69.69,firma(id_sesion) Canal SSH criptogrficamente protegido OK 22 sshd (servidor)

/etc/ssh/id_rsa

.ssh/known_hosts cuenta de pepe

pepe miclave

10

Autenticacin por dos factoresDH Key Agreement ssh (cliente) id_sesion firma(id_sesion) 22 sshd (servidor)

Canal SSH criptogrficamente protegido OK

.ssh/id_rsa

.ssh/authorized_keys cuenta de pepe

pepe miclave_para_id_dsa

11

Autenticacin del servidorEn SSH, la autenticacin fuerte es recproca. Cada usuario mantiene un registro de las claves de host con que ha hablado hasta el momento. El cliente ssh emite una FUERTE advertencia (puede llegar a abortar la sesin) si percibe un cambio en la clave de host. Esto previene autenticacin por contrasea contra un troyano (caza-claves) ataques man-in-the-middle No hay provisin para autenticacin del servidor por dos factores.

12

Autenticacin del servidorDH Key Agreement ssh (cliente) firma(session_id) Canal SSH criptogrficamente protegido 22 sshd (servidor)

/etc/ssh/known_hosts

/etc/ssh/host_key .ssh/known_hosts

pepe

13

Transferencia de cherosAdems de un protocolo de autenticacin para login remoto que mejora la autenticacin rhosts, SSH proporciona un mecanismo de transferencia de cheros que reemplaza al clsico FTP para transferencias no annimas mediante el comando scp, cuya sintaxis es semejante a la de rcp.$ scp mi_fichero_de_aqui.txt infor24.epv.uniovi.es:nombre_alla.txt

La versin 2 de SSH incorpora un comando sftp similar al cliente FTP clsico de lnea de comandos. Existen muchos programas sosticados que implementan transferencia SSH adems del clsico FTP: lftp, yafc para Linux, WinSCP y la serie de programas putty para Windows.

14

Agente SSHPara facilitar la autenticacin por dos factores durante una misma sesin, SSH nos proporciona un agente de autenticacin. Esencialmente, se trata de un proceso que se mantiene vivo a la vez que una sesin de un usuario, y mantiene un cach de claves privadas descifradas. Cada nuevo login remoto se efecta solicitando la autenticacin al agente, sin que el usuario tenga que intervenir una vez ms. Es posible incluso que el agente autentique remotamente, mediante un proceso conocido como agent forwarding.

15

Agente de autenticacinDH Key Agreement ssh (cliente) id_sesion firma(id_sesion) 22 sshd (servidor)

Canal SSH criptogrficamente protegido OK sshagent.ssh/id_rsa

... .ssh/authorized_keys cuenta de pepe .ssh/id_rsa

pepe miclave_para_id_dsa

16

Port forwardingSSH permite realizar port forwarding o reenvo de puertos; en otras palabras, tunelizar conexiones TCP a travs de una sesin SSH. Existen dos formas de port forwarding: local y remota. forward local Ejemplo $ ssh -L 6969:frodo.inforg.uniovi.es:netbios di015.edv.uniovi.es forward remoto Otro ejemplo $ ssh -R 7070:smtp.telefonica.net:smtp \ di015.edv.uniovi.es \

17

Forward localmicasa.telefonica.net di015.edv.uniovi.es SSHD Server SSH clnt Sesion SSH

6969

NetBIOS clnt

frodo.inforg.uniovi.es 139 NetBIOS server

18

Forward remotomicasa.telefonica.net 22 di015.edv.uniovi.es SSHD Server SSH clnt Sesion SSH

7070

Mail clnt

smtp.telefonica.net 25 Mail server

19

FicherosFichero $HOME/.ssh/id_rsa $HOME/.ssh/id_rsa.pub $HOME/.ssh/authorized_keys Signicado Clave privada RSA de un usuario Clave pblica correspondiente al mismo usuario Lista de claves pblicas e identidades que el usuario considera autorizadas para autenticarse como l por clave pblica Lista de claves pblicas de hosts conocidos hasta ahora, utilizadas para autenticacin de host remoto. Misma lista vlida para todos los usuarios del sistema. Clave del host, para autenticacin del mismo ante los usuarios que acceden a l

$HOME/.ssh/known_hosts /etc/ssh/ssh_known_hosts /etc/ssh/ssh_host_key

20