Cada grupo tiene 4 dispositivos de red:
Cada uno de estos dispositivos tiene el usuario campusY configurado con una contraseña de inicio de sesión y contraseña de modo privilegiado. Inicialmente solo telnet está habilitado en estos dispositivos y ssh aún no está configurado.
Trabajando en grupo, debe actualizar los cuatro dispositivos para que cuando finalice esta práctica de laboratorio, pueda iniciar una sesión como campusY solo con ssh y con la contraseña que se proporcionará en el taller.
Primero, inicie una sesión en su máquina virtual (hostX-campusY.ws.nsrc.org).
Luego, conéctese al dispositivo de red en el que estará trabajando:
$ telnet <dispositivo>-campusY.ws.nsrc.org
username: campusY
password: \<DADO EN EL TALLER\>
Para visualizar información sobre su enrutador:
<dispositivo>-campusY> enable
Password: (password dado en el taller)
<dispositivo>-campusY# show run (utilize la barra espaciadora para continuar)
<dispositivo>-campusY# show int GigabitEthernet0/0 (o especifíque otra interfaz que esté arriba)
<dispositivo>-campusY# show ? (presenta todas las opciones para el comando)
Nota: Presione “q” para salir de la pantalla de opciones antes de llegar al final, o presione la <BARRA ESPACIADORA> para moverse una página a la vez hasta el final.
Los pasos en este ejercicio servirán para:
Debería estar conectado a su enrutador o switch y en modo privilegiado. Su sesión deberá lucir algo como:
<dispositivo>-campusY#
Y, ahora haga lo siguiente:
<dispositivo>-campusY# configure terminal (conf t)
<dispositivo>-campusY(config)# aaa new-model
<dispositivo>-campusY(config)# ip domain-name ws.nsrc.org
<dispositivo>-campusY(config)# crypto key generate rsa
How many bits in the modulus [512]: 2048
Deberá esperar mientras la clave es generada. Despues de terminar, usted podrá definir nuevas contraseñas y estás serán encriptadas. Para empezar, vamos a remover temporalmente el usuario “campusY” y recrearlo:
IMPORTANTE! IMPORTANTE! IMPORTANTE!
POR FAVOR NO UTILICE NINGUN OTRA CONTRASEÑA QUE NO SEA LA CONTRASEÑA DE LA CLASE Y EL USUARIO “campusY”
Si utiliza otro nombre de usuario o contraseña, interrumpirá los ejercicios para los otros participantes en el taller durante la semana. ¡Gracias!
<dispositivo>-campusY(config)# no username campusY
Vas a ver el mensaje:
This operation will remove all username related configurations with same name.Do you want to continue? [confirm]
Apreta <ENTER> para continuar:
<dispositivo>-campusY(config)# username campusY secret 0 <CONTRASEÑA DEL TALLER>
(Primera clave usado para hacer un login en su enrutador).
La contraseña (<CONTRASEÑA DEL TALLER>) del usuario campusY está encriptada. Ahora encriptemos la contraseña para acceder al modo privilegiado también:
<dispositivo>-campusY(config)# enable secret 0 <CONTRASEÑA DE MODO PRIVILEGIADO>
(Clave usado despues que tipeas enable en la linea de
comando del enrutador.)
Ahora vamos a configurar el enrutador para que solo acepte conexiones de SSH para las cinco (5) terminales que hemos definido (vty0-vty4):
<dispositivo>-campusY(config)# line vty 0 4
<dispositivo>-campusY(config-line)# transport input ssh
<dispositivo>-campusY(config-line)# exit
El comando “exit”, al final del bloque, nos saca del nivel de configuración de linea y nos pone en el modo de configuración general. Ahora vamos a decirle al enrutador que registre eventos relacionados con SSH y que solo acepte conexiones vía SSH versión 2:
<dispositivo>-campusY(config)# ip ssh logging events
<dispositivo>-campusY(config)# ip ssh version 2
Ahora que hemos terminado, podemos salir del modo de configuración:
<dispositivo>-campusY(config)# exit
Y grabe estos cambios en la memoria permanente de los enrutadores:
<dispositivo>-campusY# write memory (wr mem)
Overwrite the previous NVRAM configuration?[confirm] (Apreta <ENTER>)
Ok, eso es todo. Ya no puede usar telnet para conectarte a tu enrutador. Debe conectarse usando SSH con el usuario campusY y la contraseña <CONTRASEÑA DEL TALLER>. La contraseña de modo provilegiado es, <CONTRASEÑA DE MODO PRIVILEGIADO>
Naturalmente, en una situación real se usarían contraseñas mucho más seguras.
Antes de salir de su sesión de Telnet, asegúrese de probar la conectividad via ssh desde otra PC en su grupo (o abra otra ventana de terminal). Haga esto para validar que no haya cometido un error y así evitar bloquear su enrutador.
Primero, intente la conexión nuevamente con telnet desde su máquina virtual:
$ telnet <dispositivo>-campusY.ws.nsrc.org
Que pasó? … Debió haber visto algo parecido a:
Trying 100.68.1.2... (for example only)
telnet: Unable to connect to remote host: Connection refused
Ahora vamos a tratar de conectarnos utilizando una sesión de SSH:
$ ssh campusY@<dispositivo>-campusY.ws.nsrc.org
(Si recibe un error al intentar conectarse, consulte la sección Resolución de Problemas a continuación)
Deberá ver algo parecido a:
The authenticity of host 'core1-campus1.ws.nsrc.org (2001:db8:1:0::2)' can't be established.
RSA key fingerprint is SHA256:pqcy5VRxckdnf/X3IcO4LY83wzeh231NUXA8Qb+74b8.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])?
Escriba “yes” y presione <ENTER> para continuar …
Ahora verá lo siguiente:
Password: <CONTRASEÑA DEL TALLER>
Tipea la clave del curso y terminas en una linea de comando asi:
<dispositivo>-campusY>
Escriba “enable” para entrar al mode de comandos privilegiados:
<dispositivo>-campusY> enable
Password: <CONTRASEÑA DE MODO PRIVILEGIADO>
<dispositivo>-campusY#
Ahora veamos la configuración actual del enrutador:
<dispositivo>-campusY# show running (sh run)
Presione la barra espaciadora para continuar. Observe que algunas de las entradas que usted había configurado antes estén en la configuración:
enable secret 5 $1$wGtR$bKZqFAPXYjmV6OrLCC3hP.
.
.
.
username campusY secret 5 $1$DQAd$qB0su4clCXPaSE7miLVcB0
.
. (muchas líneas más abajo)
.
line vty 0 4
exec-timeout 0 0
transport preferred none
transport input ssh
Podrá observar que las contraseñas para el nivel privilegiado y para el usuario “campusY” han sido encriptadas. Esto es lo que queremos ver y que hace “service password-encryption” y, en general, es bueno.
Ahora debe desconectarse del enrutador para completar este ejercicio:
<dispositivo>-campusY# exit
Y, si todavía tiene su sesión de Telnet anterior en otra ventana, asegúrese de salir de ella también.
Si intentó iniciar sesión y recibió un mensaje como este:
Unable to negotiate with 10.1.0.2 port 22: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1
La versión del software en su dispositivo de red está utilizando sistemas de cifrado muy antiguos y vulnerables. Para resolver esto, hay un par de opciones que puede considerar:
$ ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 campusY@<dispositivo>-campusY.ws.nsrc.org
Es posible que va a recibir un error como esto:
Unable to negotiate with 100.68.6.1 port 22: no matching host key type found. Their offer: ssh-rsa
Asi, necesitamos hacer otra opción mas:
ssh -oKexAlgorithms=+diffie-hellman-group14-sha1 -oHostKeyAlgorithms=+ssh-rsa campusY@<device-name>-campusY.ws.nsrc.org
Y, como pueden ver esto es doloroso como proceso.
Ahora, vamos a hacer una actualización en el cliente de ssh de su maquina virtual para permitir intercambios de llaves mas antiguos que los enrutadores Cisco siguen usando:
Crear un archivo nuevo como root:
$ sudo editor /etc/ssh/ssh_config.d/cisco.conf
En el archivo pega lo siguiente:
Host *.ws.nsrc.org
KexAlgorithms +diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1
HostKeyAlgorithms +ssh-rsa
Guarde el archivo y salga. Esto le indica a ssh que permita la
criptografía menos segura, pero solo cuando se conecte a hosts cuyo
nombre termine en .ws.nsrc.org.
Ahora intente conectarse a su dispositivo de red nuevamente:
$ ssh campusY@<DEVICE-NAME>-campusY.ws.nsrc.org
###Problemas de Clave de Cifrado en Versiones de Linux mas Antiguo###
(Nota: en versiones anteriores de Linux, el directorio
ssh_config.d puede no estar disponible, en cuyo caso deberá
agregar su nueva configuración al final de
/etc/ssh/ssh_config)
Crea un archivo, como el usuario root:
$ sudo editor /etc/ssh/ssh_config.d/cisco.conf
Adentro el archivo, pegar lo siguiente:
Host *.ws.nsrc.org
KexAlgorithms +diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1
HostKeyAlgorithms +ssh-rsa
Graba el archivo y salga. Esto dice a ssh a permitir una forma de
cripto menos seguro, pero solo cuando se conecta a hosts cuyo nombre
termina en .ws.nsrc.org.
Ahora intente conectarse de nuevo a su dispositivo de red:
$ ssh campusY@<DEVICE-NAME>-campusY.ws.nsrc.org
(Nota: en versiones anteriores de Linux, es posible que el directorio
ssh_config.d no esté disponible, en este caso debe agregar
su nueva configuración al final de archivo
/etc/ssh/ssh_config)
Con nuevas versiones del cliente ssh en Ubuntu, es posible que obtenga otro error:
Unable to negotiate with 10.1.0.2 port 22: no matching cipher found. Their offer: aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc”
Igual que el error anterior, esto se debe a que la versión del software en su dispositivo de red está utilizando sistemas de cifrado que no están habilitados por defecto en nuevas versiones de OpenSSH.
Puede agregar -oCiphers=+aes256-cbc al comando ssh, pero
es más eficiente editar el archivo de configuración del cliente ssh, de
la siguiente manera:
$ sudo editor /etc/ssh/ssh_config
Al final del archivo, agregue la siguiente línea:
Ciphers +aes256-cbc
Graba el archivo y cierre el editor. Ahora intente conectarse nuevamente a su dispositivo de red:
$ ssh campusY@<DISPOSITIVO>-campusY.ws.nsrc.org
Tal vez pueden eligir otra persona en su grupo para hacer los siguientes pasos.
Lo primero conectarse a su enrutador:
$ ssh campusY@<dispositivo>-campusY.ws.nsrc.org
Ahora habilitaremos el protocolo de tiempo de red (NTP) para sincronizar el tiempo de su enrutador con el tiempo de su PC, para que todos los dispositivos en nuestra red local tengan el mismo tiempo. Para hacer esto, siga estos pasos:
<device-name>-campusY> enable (en)
Password:
<device-name>-campusY# configure terminal (conf t)
<device-name>-campusY(config)# ip name-server 100.64.0.1
<device-name>-campusY(config)# ip domain-lookup
<device-name>-campusY(config)# ntp server ntp.ws.nsrc.org
<device-name>-campusY(config)# no clock timezone
<device-name>-campusY(config)# exit
<device-name>-campusY# write memory (wr mem)
Esto usa el servidor de tiempo NTP del salón de clases (si no tiene
uno, entonces pool.ntp.org es una alternativa razonable).
Esto también indica que Ud. desea utilizar la hora UTC (igual que la
hora GMT) para este enrutador.
Para verificar el estado de NTP, las asociaciones de servidores NTP y el tiempo informado en su enrutador:
<device-name>-campusY# show ntp status (sh ntp stat)
Después de un tiempo, verá algo como (es posible que vea “no sincronizado” por un tiempo):
bdr1-campus6#sh ntp status
Clock is synchronized, stratum 4, reference is 100.64.0.1
nominal freq is 1000.0003 Hz, actual freq is 999.5733 Hz, precision is 2**19
ntp uptime is 344600 (1/100 of seconds), resolution is 1001
reference time is E6DEFA9B.B49F3848 (16:53:47.705 UTC Wed Sep 28 2022)
clock offset is -44.9735 msec, root delay is 6.90 msec
root dispersion is 94.79 msec, peer dispersion is 1.83 msec
loopfilter state is 'CTRL' (Normal Controlled Loop), drift is 0.000426985 s/s
system poll interval is 128, last update was 41 sec ago.
… y para ver las asociaciones de servidores NTP:
<device-name>-campusY# show ntp associations (sh ntp assoc)
address ref clock st when poll reach delay offset disp
*~100.64.0.1 10.12.255.11 3 68 128 377 0.925 -44.973 1.836
* sys.peer, # selected, + candidate, - outlyer, x falseticker, ~ configured
y, finalmente, para ver la hora actual de su enrutador:
rtrN# show clock (sh clo)
Debería ver algo como:
*19:10:36.093 UTC Mon Nov 7 2022
Ahora puede salir (exit) de su enrutador:
<device-name>-campusY# exit
Asegúrese de que su equipo termine de trabajar en los otros dispositivos de su grupo. si alguien tiene problemas conectarse a un dispositivo, consulte la sección Resolución de problemas (Troubleshooting) anterior.