Secure Shell
脥ndice
1. Introducci贸n
2. Seguridad
3. Historia
4. Manejo de SSH
5. Programas / Distribuciones
6. Fuentes
1. Introducci贸n
SSH (Secure SHell) es el nombre de un protocolo y del programa que lo implementa, y sirve para acceder a m谩quinas remotas a trav茅s de una red. Permite:
- Manejar por completo el ordenador mediante un int茅rprete de comandos.
- Redirigir el tr谩fico de X para poder ejecutar programas gr谩ficos si tenemos un Servidor X arrancado en el ordenador local. 脡sto se hace redirigiendo la variable DISPLAY del ordenador remoto para que apunte a la pantalla X del ordenador local.
- Copiar datos de forma segura (tanto ficheros sueltos como simular sesiones FTP cifradas, SFTP)
- Gestionar claves RSA para no escribir claves al conectar a las m谩quinas.
- Pasar los datos de cualquier otra aplicaci贸n por un canal seguro de SSH mediante un t煤nel SSH.
2. Seguridad
SSH trabaja de forma similar a como se hace con TelNet. La diferencia principal es que SSH usa t茅cnicas de cifrado que hacen que la informaci贸n que viaja por el medio de comunicaci贸n vaya de manera no legible y ninguna tercera persona pueda descubrir el usuario y contrase帽a de la conexi贸n ni lo que se escribe durante toda la sesi贸n; aunque es posible atacar este tipo de sistemas por medio de ataques de replay y manipular as铆 la informaci贸n entre destinos.
3. Historia
Al principio s贸lo exist铆an los r-commands, que eran los basados en el programa rlogin, el cual funciona de una forma similar a telnet.
La primera versi贸n del protocolo y el programa eran libres y los cre贸 un sueco llamado Tatu Yl枚nen, pero su licencia fue cambiando y termin贸 apareciendo la compa帽铆a `SSH Communications Security', que lo ofrec铆a gratuitamente para uso dom茅stico y acad茅mico, pero exig铆a el pago a otras empresas.
En el a帽o 1997 (dos a帽os despu茅s de que se creara la primera versi贸n) se propuso como borrador en la IETF.
A principios de 1999 se empez贸 a escribir una versi贸n que se convertir铆a en la implementaci贸n libre por excelencia, la de OpenBSD, llamada OpenSSH.
A partir de entonces han salido muchas versiones de programas que lo implementan. Cabe destacar la ausencia de SSH en el ?HyperTerminal de Windows en todas sus versiones.
4. Manejo de SSH
El protocolo SSH cuenta con dos versiones. La primera de ellas se mantiene por motivos de compatibilidad, pero se recomienda generalmente el uso de la segunda, por su mayor seguridad.
Tal como se describe en uno de los borradores de la especificaci贸n temporal "SSH Protocol Architecture" ( http://www.ietf.org/internet-drafts/draft-ietf-secsh-architecture-13.txt ) ssh es un protocolo para iniciar sesiones en m谩quinas remotas que ofrece autenticaci贸n, confidencialidad e integridad. Consta de tres componentes:
- Protocolo de transporte. Que normalmente opera sobre TCP/IP dando autenticidad, confidencialidad e integridad.
- Protocolo de autenticaci贸n de usuario. Que autentica al usuario ante el servidor.
- Protocolo
de conexi贸n. Que multiplexa un canal encriptado en diversos canales
l贸gicos. 脡ste requiere que los servidores tengan "llaves", las cuales
son usadas por los clientes cada vez que se conectan a un servidor para
verificar que no fue suplantado. Una llave es un n煤mero codificado y
encriptado en un archivo. Para la encriptaci贸n de llaves, OpenSSH
ofrece los algoritmos RSA y DSA (de los cuales para la versi贸n 2 se
recomienda DSA).
Para instalar un servidor OpenSSH, que le permita conectarse a su sistema de forma segura, instale el paquete ssh preferiblemente tomando la versi贸n m谩s reciente.
Unas opciones comunes de configuraci贸n del servidor SSH son:
?PermitRootLogin [yes/no]: Permite entrar al usuario root (administrador) de manera remota.
RSAAuthentication [yes/no]: Permite usar la identificaci贸n RSA para autentificar los usuarios/servidores remotos y as铆 no tener que escribir las contrase帽as.
?PubkeyAuthentication [yes/no]: Permite usar la identificaci贸n por clave p煤blica para autentificar los usuarios/servidores remotos y as铆 no tener que escribir las contrase帽as.
?RhostsAuthentication [yes/no]: Es un m茅todo de identificaci贸n basado en la combinaci贸n del m茅todo rhosts o hosts.equiv combinado con autentificaci贸n basada en RSA.
hostsRSAAuthentication [yes/no]: Es un m茅todo de identificaci贸n basado en autentificaci贸n mediante RSA.
?HostbasedAuthentication [yes/no]: Es un m茅todo de identificaci贸n basado en la llave p煤blica del host.
?X11Forwarding [yes/no]: Permite hacer un t煤nel para forwaddear las X y poder ejecutar aplicaciones X en el servidor mientras vemos las ventanas en la m谩quina local.
Un usuario tambi茅n puede crear un par de llaves que le faciliten su autentificaci贸n al emplear ssh o scp. Estos programas por defecto piden clave al usuario que se conecte a un servidor SSH. Si un usuario genera sus llaves p煤blica y privada, puede saltarse esta autentificaci贸n pues se har谩 de forma autom谩tica con las llaves. Para lograrlo su llave p煤blica debe estar en el servidor al cual se conecta (en ~/.ssh/authorized_keys) y su llave privada en el ordenador loca (normalmente en ~/.ssh/id_dsa).
La generaci贸n de llaves puede hacerse con:
ssh-keygen -t dsa
que por defecto dejar谩 su llave p煤blica en ~/.ssh/id_dsa.pub y su llave privada en ~/.ssh/id_dsa (que adem谩s quedar谩 protegida por una palabra clave que usted especifica). Como el nombre lo indica la llave privada no debe compartirla, por el contrario la llave p煤blica puede transmitirla y puede ser vista por cualquiera.
En el computador en el que desee conectarse, agregue en el archivo ~/.ssh/authorized_keys (o ~/.ssh/authorized_keys2 si usa DSA y una versi贸n de OpenSSH anterior a la 3.1), su llave p煤blica.
5. Programas / Distribuciones
SSH Tectia - http://www.ssh.com - Servidor y cliente SSH comercial. Versiones para much铆simos sistemas operativos, tanto Windows como UNIX.
OpenSSH - http://www.openssh.com - Implementaci贸n SSH (servidor, cliente y utilidades) gratuita y para sistemas UNIX-like. Est谩 desarrollado por OpenBSD.
ossh - ftp://ftp.pdc.kth.se/pub/krypto/ossh/ - Implementaci贸n gratuita del protocolo SSH (servidor y cliente) para sistemas UNIX-like. Dispone de compresi贸n de datos (incluye los datos de las X) y alta seguridad.
Dropbear SSH - http://matt.ucc.asn.au/dropbear/dropbear.html - Implementaci贸n del protocolo SSH (servidor y cliente) para sistemas UNIX-like. Hace hincapi茅 en el consumo m铆nimo de recursos, para servidores limitados o con alta carga.
?MindTerm - http://www.appgate.com/products/80_MindTerm/ - Cliente JAVA para SSH. Deb ido a estar hecho en java es altamente portable.
PuTTY - http://www.chiark.greenend.org.uk/~sgtatham/putty/ - Cliente gr谩fico SSH, Telnet, rlogin... Muy popular debido a su simplicidad y que no necesita instalarse, es un 煤nico EXE. En la versi贸n en desarrollo tiene soporte para terminales en el puerto s茅rie. Dispone de versi贸n Windows y UNIX-like (requiere X).
- otras:
Existen otras soluciones SSH, miles, y muchas mas si tenemos en cuenta
la ingente cantidad de programas FTP que soportan SFTP.
6. Fuentes
http://es.wikipedia.org/wiki/Secure_Shell
http://www.ietf.org/internet-drafts/draft-ietf-secsh-architecture-13.txt
http://rcfile.org/ssh/
http://www.akadia.com/services/ssh_scp_without_password.html
http://packages.gentoo.org/search/?sstring=ssh
http://www.ssh.com/
http://www.openssh.com/
ftp://ftp.pdc.kth.se/pub/krypto/ossh/
http://matt.ucc.asn.au/dropbear/dropbear.html
http://www.appgate.com/products/80_MindTerm/
http://www.chiark.greenend.org.uk/~sgtatham/putty/