martes, 17 de febrero de 2009

Secure Shell

SSH son las siglas de Secure SHell, cuya traducción sería intérprete de comandos seguro. Es un protocolo de comunicación seguro para controlar un ordenador remoto a través de una Interfaz de Línea de Comandos, también llamada "shell".

SSH es el reemplazo del telnet, rsh, rcp y ftp, utiliza métodos de autenticación por clave pública para establecer una conexión encriptada y segura entre el cliente y el servidor por el puerto 22 (por defecto).

En este apunte vamos a realizar SSH en un Router Cisco 1800


1° Debemos verificar si la IOS de tu router soporta SSH, en mi caso, el router Cisco 1800 no lo soporta, por lo tanto, se debe actualizar la IOS. Una vez se realiza la actualización de la IOS verificamos con show version, debemos ver un k8, si el cifrado llega hasta los 64 bits y k9 si el cifrado supera los 64 bits.

SSH se empezó a implementar apartir de las versiones 12.0.5.S de las IOS Cisco.

2° Procedemos ha configurar un nombre para el router y un nombre de dominio, esto es básico e indispensable a la hora de configurar el servidor ssh, ya que por medio del nombre y del dominio el router generará el nombre de la llave. Recordemos que se debe estar en modo de configuracion global. Así:

Configurando nombre: Server_SSH
Router(config)#hostname Server_SSH
Configurando nombre del dominio: sena.edu.co
Server_SSH(config)#ip domain-name sena.edu.co

3° Ahora generamos un par de llaves RSA. El rango para esta llave es de 360 a 2048 bits, por defecto esta llave es de 512 bits, recordemos que entre mas larga sea la llave, más seguridad tendrá ésta. En este caso vamos a trabajar con una llave de 1024 bits.
Esto habilitará automáticamente el SSH.
Server_SSH(config)#crypto key generate rsa

The name for the keys will be: SERVIDOR SSH.sena.edu.co
Choose the size of the key modulus in the range of 360 to 2048
for your General Purpose Keys. Choosing a key modulus greater than
512 may take a few minutes.
How many bits in the modulus [512]: 1024
% Generating 1024 bit RSA keys ...[OK]
*Feb 18 00:17:13.337: %SSH-5-ENABLED: SSH 1.99 has been enabled

Como puedes ver en el ejemplo anterior, después de que el sistema genera la llave se recibirá un mensaje indicandonos que se ha activado automáticamente SSH 1.99 en el router. Es decir, que el sistema de este router ha permitido el apoyo de ambas versiones, tanto la SSH1, como la SSH2, pero por defecto esta se encuentra activada en SSH1. Cuando sale que se ha habilitado en el router Cisco la versión 1.5 de SSH, nos esta indicando que este enrutador ejecutará SSH1, y para finalizar si el sistema sólo ha permitido el apoyo a SSH2, el mensaje diría SSH 2.0.

Como lo dijimos anteriormente, aunque nuestra IOS soporta ambas versiones, por defecto esta se encuentra con SSH1. Para habilitar la versión 2 de SSH ingresamos el siguiente comando.
Server_SSH(config)#ip ssh version 2

4° Una vez se haya habilitado debemos configurar adecuadamente el servidor SSH. Podemos empezar estableciendo el tiempo de espera para la autenticación de SSH. El tiempo máximo no puede exceder los 120 segundos, que también es el valor por defecto, este tiempo se debe establecer en segundos.
Server_SSH(config)#ip ssh time-out 60

Ahora establecemos los reintentos para la autenticación de SSH. El máximo número de reintentos es de cinco, sin embargo, el valor por defecto es tres.
Server_SSH(config)#ip ssh authentication-retries 4

5° Posteriormente creamos algunos usuarios a los cuales se le permitirá el accesso ssh al router.
Server_SSH(config)#username yenith password yenith123
Server_SSH(config)#username victor password victor123
Server_SSH(config)#username kate password kate123

6° Lo que realizaremos a continuación, se hace con el fin de no permitir conexiones diferentes a las SSH.
Server_SSH(config)#line vty 0 4
Server_SSH(config-line)#transport input ssh
Server_SSH(config-line)#login local

Listo! Con esto ya se ha realizado la configuración del servidor SSH en el router.

Algunos apuntes:

Las llaves que se han generado, no son llaves exportables, para que sean exportables debemos utilizar el siguiente comando:
Server_SSH(config)#crypto key generate rsa general-keys exportable

Para verificar si el SSH se encuentra habilitado y ver la versión que esta corriendo, podemos utilizar show ip ssh
Server_SSH#show ip ssh

Para ver la llave que hemos generado utilizamos:
Server_SSH#show crypto key mypubkey rsa.

Cliente SSH (Desde el router2)
Al utilizar el cliente ssh, se debe tener en cuenta que el comando se ejecuta en el modo EXEC y no es necesario realizar una configuración previa en el router.
Cliente_SSH#ssh -l yenith 10.10.10.2

Fuente:
http://www.cisco.com/en/US/tech/tk583/tk617/technologies_tech_note09186a00800949e2.shtml
http://thepingman.wordpress.com/2008/09/02/configurando-ssh-en-routers-cisco/
Implementing SSH por Himanshu Dwivedi

1 comentario:

ccamilozt dijo...

pero en esta configuración yo sigo usando contraseñas para la autenticacion, contraseñas que no superan, normalmente, un ataque de fuerza bruta. Sera posible utilizar autenticacion de llave publica, para autenticar a los usuarios, en las IOS de CISCO?