O conjunto de documentação deste produto faz o possível para usar uma linguagem imparcial. Para os fins deste conjunto de documentação, a imparcialidade é definida como uma linguagem que não implica em discriminação baseada em idade, deficiência, gênero, identidade racial, identidade étnica, orientação sexual, status socioeconômico e interseccionalidade. Pode haver exceções na documentação devido à linguagem codificada nas interfaces de usuário do software do produto, linguagem usada com base na documentação de RFP ou linguagem usada por um produto de terceiros referenciado. Saiba mais sobre como a Cisco está usando a linguagem inclusiva.
A Cisco traduziu este documento com a ajuda de tecnologias de tradução automática e humana para oferecer conteúdo de suporte aos seus usuários no seu próprio idioma, independentemente da localização. Observe que mesmo a melhor tradução automática não será tão precisa quanto as realizadas por um tradutor profissional. A Cisco Systems, Inc. não se responsabiliza pela precisão destas traduções e recomenda que o documento original em inglês (link fornecido) seja sempre consultado.
Este documento descreve as etapas para adicionar (ou) remover Cifras, MACs e algoritmos Kex em plataformas Nexus.
A Cisco recomenda que você compreenda os conceitos básicos do Linux e do Bash.
As informações neste documento são baseadas nas seguintes versões de hardware e software:
As informações neste documento foram criadas a partir de dispositivos em um ambiente de laboratório específico. Todos os dispositivos utilizados neste documento foram iniciados com uma configuração (padrão) inicial. Se a rede estiver ativa, certifique-se de que você entenda o impacto potencial de qualquer comando.
Às vezes, as verificações de segurança podem encontrar métodos de criptografia fracos usados pelos dispositivos Nexus. Se isso acontecer, alterações no arquivodcos_sshd_config
nos switches serão necessárias para remover esses algoritmos não seguros.
Para confirmar quais Cifras, MACs e Algoritmos Kex uma plataforma usa e verificar isso de um dispositivo externo, você pode usar estas opções:
Abra uma linha CMD em um PC que possa acessar o dispositivo Nexus e use o 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
Aplicável a:
Etapas:
switch(config)# feature bash-shell
switch(config)#
switch(config)# run bash
bash-4.3$
2. Revise o conteúdo do arquivodcos_sshd_config
:
bash-4.3$ cat /isan/etc/dcos_sshd_config
Note: Você pode usar egrep para examinar linhas específicas: cat /isan/etc/dcos_sshd_config | grep MAC
Aplicável a:
Etapas:
1. Abra um caso TAC para obter o arquivo dplug que corresponde à versão do NXOS em execução no switch.
2. Carregue o arquivo dplug no bootflash e crie uma cópia dele.
switch# copy bootflash:nuova-or-dplug-mzg.7.3.8.N1.1 bootflash:dp
Note: Uma cópia ("dp") do arquivo dplug original é criada no bootflash, de modo que somente a cópia seja removida depois que o dplug for carregado e o arquivo dplug original permaneça no bootflash para execuções subsequentes.
3. Carregue a cópia do dplug por meio doload
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. Revisardcos_sshd_config
arquivo.
Linux(debug)# cat /isan/etc/dcos_sshd_config
1. Envie uma cópia do arquivodcos_sshd_config
para o bootflash:
Linux(debug)# cd /isan/etc/
Linux(debug)# copy dcos_sshd_config /bootflash/dcos_sshd_config
Linux(debug)# exit
2. Confirme se a cópia está no bootflash:
switch(config)# dir bootflash: | i ssh
7372 Mar 24 02:24:13 2023 dcos_sshd_config
3. Exportar para um 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. Faça as alterações necessárias no arquivo e importe-o de volta para o bootflash.
1. Carregue o arquivo modificadodcos_sshd_config
na memória flash de inicialização.
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#
Substituindo o arquivo existentedcos_sshd_config
em/isan/etc/
por um arquivo modificadodcos_sshd_config
localizado no bootflash. Esse processo não é persistente nas reinicializações
ssh config
no bootflash:switch# dir bootflash: | i ssh
7372 Mar 24 02:24:13 2023 dcos_sshd_config_modified
2. Enquanto estiver no modo bash ou Linux(debug)#, substitua o arquivo existentedcos_sshd_config
pelo que estiver no bootflash:
bash-4.3$ sudo su
bash-4.3# copy /bootflash/dcos_sshd_config_modified /isan/etc/dcos_sshd_config
3. Confirme se as alterações foram bem-sucedidas:
bash-4.3$ cat /isan/etc/dcos_sshd_config
Usando um script EEM que é acionado quando o registro "VDC_MGR-2-VDC_ONLINE" é ativado após um recarregamento. Se o EEM for acionado, um script py será executado e substituirá o arquivo existentedcos_sshd_config
em/isan/etc/
por um arquivo modificadodcos_sshd_config
localizado no bootflash. Isso se aplica somente às versões do NX-OS que oferecem suporte a "feature bash-shell".
switch# dir bootflash: | i ssh
7404 Mar 03 16:10:43 2023 dcos_sshd_config_modified_7k
switch#
2. Crie um script de cópia que aplique alterações aodcos_sshd_config
arquivo. Certifique-se de salvar o arquivo com a extensão "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. Carregue o script Python no bootflash.
switch# dir bootflash:///scripts
175 Mar 03 16:11:01 2023 ssh_workaround_7k.py
Note: Os scripts Python são praticamente os mesmos em todas as plataformas, exceto no N7K, que contém algumas linhas adicionais para superar o bug da Cisco ID CSCva14865.
4. Certifique-se de que o nome dodcos_sshd_config
arquivo do script e do bootflash (Etapa 1.) sejam os mesmos:
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. Execute o script uma vez, para que o arquivo sejadcos_sshd_config
alterado.
switch# source ssh_workaround_7k.py
switch#
5. Configure um script EEM para que o script py seja executado sempre que o switch for reinicializado e voltar 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"
Note: A sintaxe do EEM pode variar em diferentes versões do NXOS (algumas versões exigem "action <id> cli" e outras "action <id> cli command"), portanto, verifique se os comandos do EEM foram executados corretamente.
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. Crie um script de cópia que aplique alterações aodcos_sshd_config
arquivo. Certifique-se de salvar o arquivo com a extensão "py".
#!/usr/bin/env python
import os
os.system("sudo su -c \"cp /bootflash/dcos_sshd_config_modified /isan/etc/dcos_sshd_config\"")
3. Carregue o script python no bootflash.
switch# dir | i i .py
127 Jun 18 17:21:39 2024 ssh_workaround_9k.py
switch#
4. Certifique-se de que o nome dodcos_sshd_config
arquivo do script e do bootflash (Etapa 1.) sejam os mesmos:
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. Execute o script uma vez, para que o arquivo sejadcos_sshd_config
alterado.
switch# python bootflash:ssh_workaround_9k.py
5. Configure um script EEM para que o script py seja executado sempre que o switch for reinicializado e voltar a funcionar.
EEM N9K e 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
Note: A sintaxe do EEM pode variar em diferentes versões do NXOS (algumas versões exigem "action <id> cli" e outras "action <id> cli command"), portanto, verifique se os comandos do EEM foram executados corretamente.
Um arquivo dplug modificado foi criado através do bug da Cisco ID CSCvr23488 para remover estes algoritmos Kex:
Os arquivos dpug fornecidos através do bug da Cisco ID CSCvr23488 não são os mesmos que os usados para acessar o Linux Shell. Abra um caso no TAC para obter o conector modificado a partir da ID de bug da 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. Crie uma cópia do arquivo dplug modificado.
switch# copy bootflash:nuova-or-dplug-mzg.7.3.14.N1.1_CSCvr23488.bin bootflash:dp
Note: Uma cópia ("dp") do arquivo dplug original é criada no bootflash para que somente a cópia seja removida depois que o dplug for carregado e o arquivo dplug original permaneça no bootflash para execuções subsequentes.
3. Aplique o arquivo dplug da ID de bug da 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. Verifique as novasdcos_sshd_config
configurações:
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. Torne essa alteração persistente nas reinicializações com um 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"
Note:
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 isso, digite:
bash-4.3$ sudo usermod -s /bin/bash root
Depois que este "sudo su" funciona:
bash-4.3$ sudo su
bash-4.3#
Note: Essa alteração não sobrevive a uma recarga.
dcos_sshd_config
para cada VDC, caso os parâmetros SSH precisem ser modificados em um VDC diferente, certifique-se de modificar o arquivodcos_sshd_config
correspondente.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
não são persistentes nas reinicializações em qualquer plataforma Nexus. Se as alterações precisarem ser persistentes, um EEM poderá ser usado para modificar o arquivo toda vez que o switch for inicializado. Exemplo de CLI de um switch executando 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
Exemplo de CLI de um switch executando 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
Existem Ciphers, MACs e KexAlgorithm adicionais que podem ser adicionados se necessário:
switch(config)# ssh kexalgos [all | key-exchangealgorithm-name]
switch(config)# ssh macs [all | mac-name]
switch(config)# ssh ciphers [ all | cipher-name ]
Note: Esses comandos estão disponíveis no Nexus 7000 com versões 8.3(1) e posteriores. Para a plataforma Nexus 3000/9000, o comando fica disponível com a versão 7.0(3)I7(8) e posterior. (Todas as versões 9.3(x) também têm esse comando. Consulte o Guia de configuração de segurança do Cisco Nexus 9000 Series NX-OS, versão 9.3(x) )
Revisão | Data de publicação | Comentários |
---|---|---|
1.0 |
01-Jul-2024
|
Versão inicial |