Este documento describe los pasos para agregar (o eliminar) cifrados, MAC y algoritmos Kex en las plataformas Nexus.
Cisco recomienda que comprenda los aspectos básicos de Linux y Bash.
La información que contiene este documento se basa en estas versiones de software y hardware.
La información que contiene este documento se creó a partir de los dispositivos en un ambiente de laboratorio específico. Todos los dispositivos que se utilizan en este documento se pusieron en funcionamiento con una configuración verificada (predeterminada). Si tiene una red en vivo, asegúrese de entender el posible impacto de cualquier comando.
Algunos análisis de seguridad pueden detectar métodos de encriptación débiles que utilizan los dispositivos Nexus. Si esto sucede, se requieren cambios en el archivo dcos_sshd_config en los switches para eliminar los algoritmos inseguros.
Para confirmar qué cifrados, MAC y algoritmos Kex utiliza una plataforma, verifíquelo desde un dispositivo externo. Puede utilizar estas opciones:
Abra una línea CMD en un PC que pueda alcanzar el dispositivo Nexus y ejecute el comando ssh -vvv
C:\Users\xxxxx>ssh -vvv <hostname>
--------- snipped ------------
debug2: peer server KEXINIT proposal
debug2: KEX algorithms: diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group-exchange-sha256,ecdh-sha2-nistp256,ecdh-sha2-nistp384,curve25519-sha256@libssh.org <--- Kex algorithms
debug2: host key algorithms: ssh-rsa
debug2: ciphers ctos: aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,aes192-cbc,aes256-cbc
debug2: ciphers stoc: aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,aes192-cbc,aes256-cbc <--- encryption algorithms
debug2: MACs ctos: hmac-sha1
debug2: MACs stoc: hmac-sha1 <--- mac algorithms
debug2: compression ctos: none,zlib@openssh.com
debug2: compression stoc: none,zlib@openssh.com <--- compression algorithms
Esto se aplica a:
1. Habilite la función bash-shell y en el modo bash:
switch(config)# feature bash-shell
switch(config)#
switch(config)# run bash
bash-4.3$
2. Revise el contenido del archivo dcos_sshd_config:
bash-4.3$ cat /isan/etc/dcos_sshd_config
Nota: Puede utilizar egrep para ver líneas específicas: cat /isan/etc/dcos_sshd_config | grep MAC
Esto se aplica a:
Pasos:
1. Abra un caso TAC para obtener el archivo dplug que coincida con la versión de NXOS que se ejecuta en el switch.
2. Cargue el archivo dplug en bootflash y cree una copia del mismo.
switch# copy bootflash:nuova-or-dplug-mzg.7.3.8.N1.1 bootflash:dp
Nota: Se crea una copia ("dp") del archivo dplug original en bootflash, de modo que sólo se quita la copia después de cargar dplug y el archivo dplug original permanece en bootflash para las ejecuciones posteriores.
3. Cargue la copia del dplug ejecutando el comando load.
n5k-1# load bootflash:dp
Loading plugin version 7.3(8)N1(1)
###############################################################
Warning: debug-plugin is for engineering internal use only!
For security reason, plugin image has been deleted.
###############################################################
Successfully loaded debug-plugin!!!
Linux(debug)#
Linux(debug)#
2. Revise el archivo dcos_sshd_config.
Linux(debug)# cat /isan/etc/dcos_sshd_config
1. Envíe una copia del archivo dcos_sshd_config a bootflash:
Linux(debug)# cd /isan/etc/
Linux(debug)# copy dcos_sshd_config /bootflash/dcos_sshd_config
Linux(debug)# exit
2. Confirme que la copia está en bootflash:
switch(config)# dir bootflash: | i ssh
7372 Mar 24 02:24:13 2023 dcos_sshd_config
3. Exportar a un servidor:
switch# copy bootflash: ftp:
Enter source filename: dcos_sshd_config
Enter vrf (If no input, current vrf 'default' is considered): management
Enter hostname for the ftp server: <hostname>
Enter username: <username>
Password:
***** Transfer of file Completed Successfully *****
Copy complete, now saving to disk (please wait)...
Copy complete.
4. Complete los cambios necesarios en el archivo y vuelva a importar a bootflash.
1. Cargue el archivo dcos_sshd_config modificado para iniciar flash.
switch# copy ftp: bootflash:
Enter source filename: dcos_sshd_config_modified.txt
Enter vrf (If no input, current vrf 'default' is considered): management
Enter hostname for the ftp server: <hostname>
Enter username: <username>
Password:
***** Transfer of file Completed Successfully *****
Copy complete, now saving to disk (please wait)...
Copy complete.
switch#
Sustituyendo el archivo dcos_sshd_config existente en /isan/etc/ por un archivo dcos_sshd_config modificado ubicado en bootflash. Este proceso no es persistente en los reinicios
ssh config en bootflash:switch# dir bootflash: | i ssh
7372 Mar 24 02:24:13 2023 dcos_sshd_config_modified
2. Mientras esté en el modo bash o Linux (debug)#, sobrescriba el archivo dcos_sshd_config existente con el que se encuentra en bootflash:
bash-4.3$ sudo su
bash-4.3# copy /bootflash/dcos_sshd_config_modified /isan/etc/dcos_sshd_config
3. Confirme que los cambios se realizaron correctamente:
bash-4.3$ cat /isan/etc/dcos_sshd_config
Al utilizar un script EEM, se activa cuando el registro "VDC_MGR-2-VDC_ONLINE" se actualiza después de una recarga. Si se dispara el EEM, se ejecuta un script py y reemplaza el archivo dcos_sshd_config existente en /isan/etc/ con un archivo dcos_sshd_config modificado ubicado en bootflash. Esto sólo se aplica a las versiones de NX-OS que soportan "feature bash-shell".
switch# dir bootflash: | i ssh
7404 Mar 03 16:10:43 2023 dcos_sshd_config_modified_7k
switch#
2. Cree un script de pago que aplique los cambios al archivo dcos_sshd_config. Asegúrese de guardar el archivo con la extensión "py".
#!/usr/bin/env python
import os
os.system("sudo usermod -s /bin/bash root")
os.system("sudo su -c \"cp /bootflash/dcos_sshd_config_modified_7k /isan/etc/dcos_sshd_config\"")
3. Cargue el script Python en bootflash.
switch# dir bootflash:///scripts
175 Mar 03 16:11:01 2023 ssh_workaround_7k.py
Nota: Los scripts de Python son prácticamente iguales en todas las plataformas, excepto en N7K que contiene algunas líneas adicionales para superar el ID de bug de Cisco CSCva14865.
4. Asegúrese de que el nombre del archivo dcos_sshd_config del archivo de comandos y de la memoria de inicialización (en el paso 1) es el mismo:
switch# dir bootflash: | i ssh
7404 Mar 03 16:10:43 2023 dcos_sshd_config_modified_7k
switch#
switch# show file bootflash:///scripts/ssh_workaround_7k.py
#!/usr/bin/env python
import os
os.system("sudo usermod -s /bin/bash root")
os.system("sudo su -c \"cp /bootflash/dcos_sshd_config_modified_7k /isan/etc/dcos_sshd_config\"")
switch#
5. Ejecute el archivo de comandos una vez, por lo que se cambia el archivo dcos_sshd_config.
switch# source ssh_workaround_7k.py
switch#
6. Configure un script EEM, una vez que se ejecuta el script py cada vez que se reinicia el switch, vuelve a activarse.
EEM N7K:
event manager applet SSH_workaround
event syslog pattern "vdc 1 has come online"
action 1.0 cli command "source ssh_workaround_7k.py"
action 2 syslog priority alerts msg "SSH Workaround implemented"
Nota: La sintaxis de EEM puede variar en diferentes versiones de NXOS (algunas versiones requieren "action cli" y otras "action cli command"), asegúrese de que los comandos de EEM sean precisos.
switch# dir | i i ssh
7732 Jun 18 16:49:47 2024 dcos_sshd_config
7714 Jun 18 16:54:20 2024 dcos_sshd_config_modified
switch#
2. Cree un script de pago que aplique los cambios al archivo dcos_sshd_config. Asegúrese de guardar el archivo con la extensión "py".
#!/usr/bin/env python
import os
os.system("sudo su -c \"cp /bootflash/dcos_sshd_config_modified /isan/etc/dcos_sshd_config\"")
3. Cargue el script python en bootflash.
switch# dir | i i .py
127 Jun 18 17:21:39 2024 ssh_workaround_9k.py
switch#
4. Asegúrese de que el nombre del archivo dcos_sshd_config del archivo de comandos y de la memoria de inicialización (Paso 1.) es el mismo:
switch# dir | i i ssh
7732 Jun 18 16:49:47 2024 dcos_sshd_config
7714 Jun 18 16:54:20 2024 dcos_sshd_config_modified
127 Jun 18 17:21:39 2024 ssh_workaround_9k.py
switch#
switch# sh file bootflash:ssh_workaround_9k.py
#!/usr/bin/env python
import os
os.system("sudo su -c \"cp /bootflash/dcos_sshd_config_modified /isan/etc/dcos_sshd_config\"")
switch#
5. Ejecute el archivo de comandos una vez, de modo que se cambie el archivo dcos_sshd_config.
switch# python bootflash:ssh_workaround_9k.py
6. Configure un script EEM, una vez que se ejecuta el script py cada vez, el switch se reinicia y vuelve a activarse.
EEM N9K y N3K:
event manager applet SSH_workaround
event syslog pattern "vdc 1 has come online"
action 1.0 cli python bootflash:ssh_workaround_9k.py
action 2 syslog priority alerts msg SSH Workaround implemented
Nota: La sintaxis de EEM puede variar en diferentes versiones de NXOS (algunas versiones requieren "action cli" y otras "action cli command"), asegúrese de que los comandos de EEM sean precisos.
Se creó un archivo dplug modificado mediante el ID de bug de Cisco CSCvr23488 para eliminar estos algoritmos Kex:
Los archivos dpug provistos a través del ID de bug de Cisco CSCvr23488 no son los mismos que se utilizan para acceder al Shell de Linux. Abra un caso TAC para obtener el dplug modificado del ID de bug Cisco CSCvr23488.
C:\Users\user>ssh -vvv admin@<hostname>
---- snipped ----
debug2: peer server KEXINIT proposal
debug2: KEX algorithms: ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1, diffie-hellman-group14-sha1,diffie-hellman-group1-sha1 <--- kex algorithms
debug2: host key algorithms: ssh-rsa
debug2: ciphers ctos: aes128-ctr,aes192-ctr,aes256-ctr
debug2: ciphers stoc: aes128-ctr,aes192-ctr,aes256-ctr <--- encryption algorithms
debug2: MACs ctos: hmac-sha1
debug2: MACs stoc: hmac-sha1 <--- mac algorithms
debug2: compression ctos: none,zlib@openssh.com
debug2: compression stoc: none,zlib@openssh.com <--- compression algorithms
2. Cree una copia del archivo dplug modificado.
switch# copy bootflash:nuova-or-dplug-mzg.7.3.14.N1.1_CSCvr23488.bin bootflash:dp
Nota: Se crea una copia ("dp") del archivo dplug original en bootflash, solo se quita la copia después de cargar dplug y el archivo dplug original permanece en bootflash para las ejecuciones posteriores.
3. Aplique el archivo dplug del ID de bug de Cisco CSCvr23488 manualmente:
switch# load bootflash:dp2
Loading plugin version 7.3(14)N1(1)
###############################################################
Warning: debug-plugin is for engineering internal use only!
For security reason, plugin image has been deleted.
###############################################################
Successfully loaded debug-plugin!!!
Workaround for CSCvr23488 implemented
switch#
4. Compruebe la nueva configuración de dcos_sshd_config:
C:\Users\user>ssh -vvv admin@<hostname>
---- snipped ----
debug2: peer server KEXINIT proposal
debug2: KEX algorithms: diffie-hellman-group14-sha1,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521
debug2: host key algorithms: ssh-rsa
debug2: ciphers ctos: aes128-ctr,aes192-ctr,aes256-ctr
debug2: ciphers stoc: aes128-ctr,aes192-ctr,aes256-ctr
debug2: MACs ctos: hmac-sha1
debug2: MACs stoc: hmac-sha1
debug2: compression ctos: none,zlib@openssh.com
debug2: compression stoc: none,zlib@openssh.com
5. Asegúrese de que este cambio sea persistente en los reinicios con un script EEM:
event manager applet CSCvr23488_workaround
event syslog pattern "VDC_MGR-2-VDC_ONLINE"
action 1 cli command "copy bootflash:nuova-or-dplug-mzg.7.3.14.N1.1_CSCvr23488.bin bootflash:dp"
action 2 cli command "load bootflash:dp"
action 3 cli command "conf t ; no feature ssh ;feature ssh"
action 4 syslog priority alerts msg "CSCvr23488 Workaround implemented"
Nota: Después de aplicar el dplug modificado, la función SSH debe restablecerse en esta plataforma. El archivo dplug debe estar presente en bootflash y el EEM debe configurarse con el nombre de archivo dplug adecuado. El nombre de archivo dplug puede variar en función de la versión del switch; asegúrese de modificar el script según sea necesario. La acción 1 crea una copia del archivo dplug original en bootflash en otro archivo denominado "dp", de modo que el archivo dplug original no se elimina una vez cargado.
F241.06.24-N7706-1(config)# feature bash-shell
F241.06.24-N7706-1(config)# run bash
bash-4.3$ sudo su
Cannot execute /isanboot/bin/nobash: No such file or directory <---
bash-4.3$
Para superar esto, ejecute:
bash-4.3$ sudo usermod -s /bin/bash root
Después de ejecutar el comando anterior, "sudo su" funciona:
bash-4.3$ sudo su
bash-4.3#
Nota: Este cambio no sobrevive a una recarga.
Hay un archivo dcos_sshd_config separado para cada VDC; si los parámetros SSH deben modificarse en un VDC diferente, asegúrese de modificar el archivo dcos_sshd_config correspondiente.
N7K# run bash
bash-4.3$ cd /isan/etc/
bash-4.3$ ls -la | grep ssh
-rw-rw-r-- 1 root root 7564 Mar 27 13:48 dcos_sshd_config <--- VDC 1
-rw-rw-r-- 1 root root 7555 Mar 27 13:48 dcos_sshd_config.2 <--- VDC 2
-rw-rw-r-- 1 root root 7555 Mar 27 13:48 dcos_sshd_config.3 <--- VDC 3
Ejemplo de CLI de un switch que ejecuta 10.5(1):
switch(config)# ssh ?
cipher-mode Set Cipher-mode for ssh
ciphers Ciphers to encrypt the connection <<<<<<<<<
idle-timeout SSH Client session idle timeout value
kexalgos Key exchange methods that are used to generate per-connection keys <<<<<<<<<
key Generate SSH Key
keytypes Public key algorithms that the server can use to authenticate itself to the client
login-attempts Set maximum login attempts from ssh
login-gracetime Set login gracetime for ssh connection
macs Message authentication codes used to detect traffic modification <<<<<<<<<
port Set port number for ssh
rekey Renegotiate ssh key
switch(config)# ssh ciphers ?
WORD Algorithm name to be configured (Max Size 128)
aes256-gcm <Deprecated> enable aes256-gcm
all Control known weak SSH algorithms in current version of NX-OS in addition to the base set of strong algorithms
switch(config)# ssh macs ?
WORD Algorithm name to be configured (Max Size 128)
all Control known weak SSH algorithms in current version of NX-OS in addition to the base set of strong algorithms
switch(config)# ssh kexalgos ?
WORD Algorithm name to be configured (Max Size 128)
all Control known weak SSH algorithms in current version of NX-OS in addition to the base set of strong algorithms
Para las plataformas que ejecutan código anterior, puede agregar Ciphers, MACs y KexAlgorithms. Estas versiones no ofrecen la opción de seleccionar algoritmos específicos individualmente; solo se admite la opción 'all'.
N9000(config)# ssh macs ?
all Enable algorithms supported in current version of SSH
N9000(config)# ssh kexalgos ?
all Enable algorithms supported in current version of SSH
ecdh-sha2-nistp384 Enable ecdh-sha2-nistp384
N9000(config)# ssh ciphers ?
aes256-gcm Enable aes256-gcm
all Enable algorithms supported in current version of SSH
Nota: Estos comandos están disponibles en Nexus 7000 con las versiones 8.3(1) y posteriores. Para la plataforma Nexus 3000/9000, el comando está disponible en la versión 7.0(3)I7(8) y posteriores. (Todas las versiones 9.3(x) también tienen este comando. Consulte la Guía de configuración de seguridad de NX-OS para Cisco Nexus serie 9000, versión 9.3(x).
| Revisión | Fecha de publicación | Comentarios |
|---|---|---|
2.0 |
31-Jul-2026
|
Actualización de ortografía, gramática, título, líneas horizontales insertadas para separar secciones/legibilidad, alertas fijas de CCW. |
1.0 |
01-Jul-2024
|
Versión inicial |