23 de julio de 2015

Implementación de SSH en Cisco IOS

La gestión remota de dispositivos de red es una práctica extendida y necesaria en el ámbito de la administración de la infraestructura de red.
La gestión remota implica un riesgo de seguridad: la información de configuración y monitoreo de los dispositivos circula en sesiones TCP atravesando diferentes secciones de red, muchas de las cuales no están bajo nuestro control y que por lo tanto han de ser consideradas inseguras. Sin embargo son muchos los que aún utilizan para esta tarea sesiones Telnet.
Telnet es un protocolo adecuado para la gestión remota de dispositivos pero inseguro. Las sesiones Telnet viajan por la red sin cifrar, y por lo tanto quien capture el tráfico de esas sesiones accederá no solo a la información de configuración sino también a las claves que ingresemos que estarán viajando por la red en texto plano.
Es por esto necesario implementar para estas tareas SSH.
Para poder implementar SSH se requieren dos condiciones básicas:
  • Que el sistema del dispositivo al que deseamos acceder soporte el servicio SSH.
    Cisco IOS hoy soporta SSH en todas sus imágenes, aún las conocidas como IP Base.
  • Contar con un cliente SSH.
    Esto también es posible ya que no sólo clientes licenciados, sino también otros de acceso libre (p.e. Putty y Tera Term) soportan SSH.
Habilitación de SSH en routers Cisco IOS
Los dispositivos Cisco IOS por defecto tienen habilitado el servicio de Telnet, no el de SSH. Por lo tanto, la utilización de SSH requiere de varios pasos de configuración:

1. Habilitar el servicio SSH.

Router(config)#hostname LAB
Router(config)#ip domain-name ccnp.com
Router(config)#crypto key generate rsa modulus 2048
    Genera una llave de cifrado RSA (en este caso de 2048 bits), que luego utilizará SSH.Para que se genere la llave de cifrado es necesario antes contar con hostname y nombre de dominio ya que son elementos utilizados para generar la llave.
Router(config)#username admin privilege 15 secret Clave_4A
    Crea un usuario de nivel 15, con su clave de acceso, que será luego utilizado por SSH.Dado que la clave está definida como secret, se guardará cifrada en el archivo de configuración.
Router(config)#ip ssh version 2
    Elige utilizar SSH versión 2 solamente para las conexiones remotas que se establezcan.
2. Dado que SSH requiere autenticación utilizando username y clave, hay que habilitar la autenticación local.

Router(config)#line vty 0 5
Router(config-line)#transport input ssh

    Define que el único protocolo para el acceso remoto utilizando terminal virtual es SSH.
Router(config-line)#login local
    Habilita la autenticación local utilizando las credenciales de usuario y clave que se definieron antes.
Router(config-line)#exit

3. Restringir el acceso exclusivamente desde un conjunto de direcciones IP específicas.

Router(config)#ip access-list standard SSH
Router(config-std-nacl)#permit 192.168.100.0 0.0.0.255
Router(config-std-nacl)#deny any log
Router(config-std-nacl)#exit
    Crea una lista de acceso estándar que sólo permite el paso de tráfico generado en la subred 192.168.100.0/24.
El resto del tráfico está denegado, y se guardará registro de los intentos rechazados.

Router(config)#line vty 0 5
Router(config)#access-class SSH in

    Aplica la ACL llamada SSH que se creó antes a los accesos por terminal virtual, limitando de esta manera a las direcciones IP de la red 192.168.100.0/24 el acceso por SSH al dispositivo.

Enlaces útiles:

2 comentarios:

  1. Estimado Oscar, tengo un problema habilitando http y https para poder ingresar desde mi navegador (IE), estoy aplicando los comandos: ip http secure-server , ip http server y ip http authentication local.
    tengo creado un usuario local: username admin secret cisco. estoy trabajando con GNS3 emulando un router C2691, desde mi pc hago un telnet al router y puedo ingresar sin problemas con el usuario local, pero desde el navegador con https://Ip me sale un mensaje que no se puede mostrar la pagina, y con http://Ip me pide usuario y contraseña escribo los mismos datos del usuario local con los que ingreso por telnet( usuario: admin , pass: cisco) pero no los acepta me vuelve a pedir usuario y contraseña... me falta configurar algo???

    ResponderEliminar
    Respuestas
    1. Marco.
      Aparentemente es correcto, pero habría que revisar si hay algún otro elemento de configuración que esté generando conflicto (p.e. que esté habilitado AAA new model).
      Te paso el enlace de la página de Cisco con el procedimiento para habilitar el servicio HTTP: http://www.cisco.com/c/en/us/td/docs/ios/12_2/configfun/command/reference/ffun_r/frf005.html

      Eliminar

Gracias por tu comentario.
En este blog los comentarios están moderados, por lo que su publicación está pendiente hasta la revisión del mismo.