Bueno, aquí estamos otra vez. En esta ocasión vamos a meternos con el protocolo SSH. SSH son las iniciales del protocolo Secure SHel, utilizado ampliamente para conectarse a un host u otros equipos y poder administrarlos mediante una consola. Todo el tráfico que se intercambie entre el servidor (el equipo al que nos conectamos) y el cliente (equipo desde el cual nos vamos a conectar) irá cifrado, incluso las credenciales utilizadas para loguearnos. A diferencia de Telnet en el que el tráfico viaja en texto claro, SSH nos ofrece unas garantías de seguridad importantes.
Aunque los equipos de red también pueden ser administrados vía Web o incluso por medio SNMP, SSH está ampliamente extendido. Su implementación es sencilla, basta con configurar unos parámetros y ya podremos conectarnos. Sin embargo en esta ocasión vamos a ir un poco más allá y vamos a ver cómo podemos afinar un poco más este protocolo, y mejorar el acceso nuestros dispositivos de red. Obviamente esta no es la única media, se podrían hacer otras muchas más configuraciones a nivel de equipo, con otros protocolos, otros parámetros, pero este no es este el caso. Hoy nos centraremos en SSH.
Al lío, las pruebas las he realizado con un switch de acceso del fabricante, para variar, Cisco. Será uno de la serie 2960 en concreto un WS-C2960-24TC-L con una IOS c2960-lanbasek9-mz.122-50.SE5.bin
Para configurar SSH bastaría con asignar un nombre al equipo, un dominio, y generar las claves para SSH. Mejor que describirlo os paso un ejemplo:
Switch#conf t
Switch(config)#hostname LAB_TEST
LAB_TEST(config)#ip domain-name LABTEST.lcl
LAB_TEST(config)#crypto key generate rsa
The name for the keys will be: LAB_TEST.LABTEST.lcl
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, keys will be non-exportable…[OK]
*Mar 1 00:02:01.139: %SSH-5-ENABLED: SSH 1.99 has been enabled
Con lo anterior ya tendríamos configurado la parte de SSH pero aún nos queda algunos pasos más, como son:
Creación de una cuenta de usuario y contraseña local; y otra contraseña para el acceso a los permisos de la configuración del dispositivo:
LAB_TEST(config)#username labtest secret labtest
LAB_TEST(config)#enable secret labtest
Luego, configuraremos el acceso remoto siendo el protocolo entrante SSH. Se nos pedirá un login mediante usuario y contraseña almacenado en local. EL usuario y contraseña es el que hemos configurado en el paso anterior, usuario labtest y contraseña labtest
LAB_TEST(config)#line vty 0 4
LAB_TEST(config-line)#transport input ssh
LAB_TEST(config-line)#login local
LAB_TEST(config-line)#exit
También, aprovecharemos para permitir acceso a la línea de consola de la misma manera que en el paso anterior en lo que credenciales se refiere. Obviamente como entramos por consola, conectado directamente al equipo no le indicamos el protocolo de entrada.
LAB_TEST(config)#line console 0
LAB_TEST(config-line)#login local
LAB_TEST(config-line)#exit
Deshabilitamos la VLAN 1.
LAB_TEST(config)#interface vlan 1
LAB_TEST(config-if)#shutdown
LAB_TEST(config-if)#exit
Creamos una VLANnueva , en este caso la 10 y le asignamos un nombre.
LAB_TEST(config)#vlan 10
LAB_TEST(config-vlan)#name LAB_TEST
LAB_TEST(config-vlan)#exit
Para accede remotamente al equipo creamos una interfaz virtual, la levantamos y le asignamos una IP, en este caso la 192.168.10.10. Al switch también le tenemos que indicar una puerta de enlace que será la 192.168.10.1 para acceso desde otra red.
LAB_TEST(config)#interface vlan 10
LAB_TEST(config-if)#ip address 192.168.10.10 255.255.255.0
LAB_TEST(config-if)#no shutdown
LAB_TEST(config-if)#exit
LAB_TEST(config)#ip default-gateway 192.168.1
Configuramos el resto de puertos como puertos de acceso y los asignamos a la VLAN 10. La velocidad y el dúplex lo dejamos por defecto, es decir auto-auto.
LAB_TEST(config)#interface range fastEthernet 0/1 – 24
LAB_TEST(config-if-range)#switchport mode access
LAB_TEST(config-if-range)#switchport access vlan 10
LAB_TEST(config-if-range)#exit
Para hacer las pruebas, he configurado un servidor DHCP en el switch para que asigne IPs al PC físico que he pinchado a uno de los puertos configurados en el punto anterior, más algún parámetro más como el Gateway, nombre de dominio un servidor DNS, etc. Luego le indico que excluya las 20 primeras IPs de aquellas que pueda asignar según peticiones DHCP. Estaba muy vago para andar configurando IPs estáticas, 😉
LAB_TEST(config)#ip dhcp pool LABTEST
LAB_TEST(dhcp-config)#network 192.168.10.0 255.255.255.0
LAB_TEST(dhcp-config)#default-router 192.168.10.1
LAB_TEST(dhcp-config)#domain-name LABTEST.lcl
LAB_TEST(dhcp-config)#dns-server 192.168.10.10
LAB_TEST(dhcp-config)#exit
LAB_TEST(config)#ip dhcp excluded-address 192.168.10.1 192.168.10.20
Y por supuesto guardamos la configuración.
LAB_TEST(config)#do wr
Building configuration…
[OK]
LAB_TEST(config)#
Bueno con todo esto ya podríamos decir que nos podemos conectar con un cliente SSH, como puede ser Putty a la IP 192.168.10.10.
Luego nos logueamos con labtest como “usuario”, “contraseña” y “enable”, y “pá dentro”
Si entramos en modo de configuración global y entramos en el menú de ssh, veremos que nos aparecen distintas opciones:
LAB_TEST(config)#ip ssh ?
authentication-retries Specify number of authentication retries
dscp IP DSCP value for SSH traffic
logging Configure logging for SSH
precedence IP Precedence value for SSH traffic
source-interface Specify interface for source address in SSH connections
time-out Specify SSH time-out interval
version Specify protocol version supported
Pues configuremos entonces:
LAB_TEST(config)#ip ssh authentication-retries 2
Con este comando lo utilizaremos para la cantidad de intentos que se nos permitirá meter la contraseña de forma incorrecta. Con el parámetro 2, permitiremos 3 intentos, 0=1 intentos, 1=2 intentos y 2=3 intentos.
LAB_TEST(config)#ip ssh logging events
Con este otro registraremos los eventos relacionados, apareciéndonos en la consola.
LAB_TEST(config)#ip ssh source-interface vlan 10
Este parámetro no va a ser tanto para las conexiones entrante sino las salientes. Es decir, podremos realizar conexiones ssh contra otros equipos. En ese caso con este comando, le indicaremos qué dirección IP de origen queremos utilizar. En este caso le decimos que la misma que la que tenga la VLAN 10, o sea la 192.168.10.10.
LAB_TEST(config)#ip ssh time-out 15
Con este otro le decimos que el tiempo de espera para que un usuario introduzca la contraseña será de 15 segundos. OJO, una vez logueado estará sometido al tiempo que hayamos configurado para la interfaz virtual con el comando “exec-timeout”
LAB_TEST(config)#ip ssh version 2
Finalmente especificamos la version ssh a utilizar, en este caso la 2.
Pero ¿porqué afinar si ya con lo que hemos hecho al principio ya teneos un acceso seguro?
Bueno pues la respuesta la dejamos para el siguiente post, ¿si? A lo dicho, un saludo y…
Seguiremos informando.
Pingback: Syslog y sus avisos | Enredando con redes ...
Reblogged this on principia technologica and commented:
Fenomenal explicación de cómo se configura ssh en un switch, y perfectamente justificado en tu siguiente post, donde atacas con THC-Hydra al switch de laboratorio. Me ha gustado mucho.