El conjunto de documentos para este producto aspira al uso de un lenguaje no discriminatorio. A los fines de esta documentación, "no discriminatorio" se refiere al lenguaje que no implica discriminación por motivos de edad, discapacidad, género, identidad de raza, identidad étnica, orientación sexual, nivel socioeconómico e interseccionalidad. Puede haber excepciones en la documentación debido al lenguaje que se encuentra ya en las interfaces de usuario del software del producto, el lenguaje utilizado en función de la documentación de la RFP o el lenguaje utilizado por un producto de terceros al que se hace referencia. Obtenga más información sobre cómo Cisco utiliza el lenguaje inclusivo.
Cisco ha traducido este documento combinando la traducción automática y los recursos humanos a fin de ofrecer a nuestros usuarios en todo el mundo contenido en su propio idioma. Tenga en cuenta que incluso la mejor traducción automática podría no ser tan precisa como la proporcionada por un traductor profesional. Cisco Systems, Inc. no asume ninguna responsabilidad por la precisión de estas traducciones y recomienda remitirse siempre al documento original escrito en inglés (insertar vínculo URL).
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.
A veces, los 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 eldcos_sshd_config
archivo de los switches para eliminar estos algoritmos inseguros.
Para confirmar qué Cifras, MAC y Algoritmos Kex utiliza una plataforma y verificar esto desde un dispositivo externo, puede utilizar estas opciones:
Abra una línea CMD en un PC que pueda alcanzar el dispositivo Nexus y utilice el comando ssh -vvv
.
C:\Users\xxxxx>ssh -vvv
--------- 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:
Pasos:
switch(config)# feature bash-shell
switch(config)#
switch(config)# run bash
bash-4.3$
2. Revise el contenido deldcos_sshd_config
archivo:
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 elimina 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 a través delload
comando.
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 eldcos_sshd_config
archivo.
Linux(debug)# cat /isan/etc/dcos_sshd_config
1. Envíe una copia deldcos_sshd_config
archivo 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. Realice los cambios necesarios en el archivo y vuelva a importar a bootflash.
1. Cargue el archivo modificadodcos_sshd_config
en la memoria flash de arranque.
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#
Al reemplazar eldcos_sshd_config
archivo existente en/isan/etc/
por un archivo modificadodcos_sshd_config
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 eldcos_sshd_config
archivo existente con el de 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
Utilizando un script EEM que se activa cuando el registro "VDC_MGR-2-VDC_ONLINE" aparece después de una recarga. Si se dispara el EEM, se ejecuta un script py y reemplaza eldcos_sshd_config
archivo existente en/isan/etc/
por un archivo modificadodcos_sshd_config
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 aldcos_sshd_config
archivo. 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 eldcos_sshd_config
nombre de archivo de la secuencia de comandos y la memoria de inicialización (Paso 1.) son iguales:
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#
4. Ejecute el archivo de comandos una vez, de modo que se cambie eldcos_sshd_config
archivo.
switch# source ssh_workaround_7k.py
switch#
5. Configure un script EEM, de modo que el script py se ejecute cada vez que el switch se reinicia y vuelve a funcionar.
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 <id> cli" y otras "action <id> cli command"), por lo que debe asegurarse de que los comandos de EEM se ejecutan correctamente.
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 aldcos_sshd_config
archivo. 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 eldcos_sshd_config
nombre de archivo de la secuencia de comandos y de bootflash (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#
4. Ejecute el archivo de comandos una vez, de modo que se cambie eldcos_sshd_config
archivo.
switch# python bootflash:ssh_workaround_9k.py
5. Configure un script EEM, de modo que el script py se ejecute cada vez que 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 <id> cli" y otras "action <id> cli command"), por lo que debe asegurarse de que los comandos de EEM se ejecutan correctamente.
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.
dcos_sshd_config
:C:\Users\user>ssh -vvv admin@
---- 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 para que sólo se elimine la copia después de cargar dplug y el archivo dplug original permanezca 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 nuevadcos_sshd_config
configuración:
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. Haga 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:
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 solucionar este problema, escriba:
bash-4.3$ sudo usermod -s /bin/bash root
Después de esto "sudo su" funciona:
bash-4.3$ sudo su
bash-4.3#
Nota: Este cambio no sobrevive a una recarga.
dcos_sshd_config
para cada VDC, en caso de que los parámetros SSH deban modificarse en un VDC diferente, asegúrese de modificar el archivo correspondientedcos_sshd_config
.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
dcos_sshd_config
archivo no persisten durante los reinicios en cualquier plataforma Nexus. Si los cambios deben ser persistentes, se puede utilizar un EEM para modificar el archivo cada vez que el switch se inicia. 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
Ejemplo de CLI de un switch que ejecuta 10.3(6):
switch(config)# ssh kexalgos ?
all Enable algorithms supported in current version of SSH
ecdh-sha2-nistp384 Enable ecdh-sha2-nistp384
switch(config)# ssh ciphers ?
aes256-gcm Enable aes256-gcm
all Enable algorithms supported in current version of SSH
switch(config)# ssh macs ?
all Enable algorithms supported in current version of SSH
Existen otros cifrados, MAC y KexAlgorithms que se pueden agregar si es necesario:
switch(config)# ssh kexalgos [all | key-exchangealgorithm-name]
switch(config)# ssh macs [all | mac-name]
switch(config)# ssh ciphers [ all | cipher-name ]
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 |
---|---|---|
1.0 |
01-Jul-2024
|
Versión inicial |