Introduction
Este documento descreve como solucionar/resolver problemas de SSH para um Nexus 9000 após uma atualização de código.
Antes que a causa dos problemas SSH seja explicada, é necessário saber sobre a vulnerabilidade 'SSH Server CBC Mode Ciphers Enabled & SSH Weak MAC Algorithms Enabled' (Ciphers de Modo CBC do Servidor SSH Habilitados e Algoritmos MAC Fracos do SSH Habilitados) que afeta a plataforma Nexus 9000.
CVE ID - CVE- 2008-5161 (SSH Server CBC Mode Ciphers Enabled e SSH Weak MAC Algorithms Enabled)
Descrição do problema - Vulnerabilidade habilitada do modo CBC do servidor SSH (Ciphers do modo CBC do servidor SSH ativados)
O servidor SSH é configurado para suportar a criptografia CBC (Cipher Block Chaining). Isso pode permitir que um invasor recupere a mensagem de texto simples do texto cifrado. Observe que esse plug-in verifica apenas as opções do servidor SSH e não verifica as versões de software vulneráveis.
Solução recomendada - Desative a criptografia de cifra do modo CBC e ative o modo de contador (CTR) ou a criptografia do modo cifra Galois/Counter Mode (GCM)
Referência - National Vulnerability Database - CVE-2008-5161 Detail
Problema
Depois de atualizar o código para 7.0(3)I2(1), você não poderá usar SSH no Nexus 9000 e receber este erro:
no matching cipher found: client aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc,rijndael-cbc@lysator.liu.se server
aes128-ctr,aes192-ctr,aes256-ctr
Solução
O motivo pelo qual você não consegue fazer SSH no Nexus 9000 depois de atualizar para o código 7.0(3)I2(1) e posterior é porque as cifras fracas estão desabilitadas através da correção do ID de bug da Cisco CSCuv39937.
A solução a longo prazo para esse problema é usar o cliente SSH atualizado/mais recente com cifras antigas e fracas desativadas.
A solução temporária é adicionar cifras fracas de volta ao Nexus 9000. Há duas opções possíveis para a solução temporária, que depende da versão do código.
Opção temporária 1. Comando ssh cipher-mode fraco (disponível com NXOS 7.0(3)I4(6) ou posterior)
- Apresentado através do bug da Cisco ID CSCvc71792 - implemente um botão para permitir cifras fracas aes128-cbc,aes192-cbc,aes256-cbc.
- Adiciona suporte para esses cifras fracos - aes128-cbc, aes192-cbc e aes256-cbc.
- Ainda não há suporte para a cifra 3des-cbc.
! baseline: only strong Ciphers aes128-ctr,aes192-ctr,aes256-ctr allowed
9k# conf t
Enter configuration commands, one per line. End with CNTL/Z.
9k(config)# feature bash
9k(config)# run bash sudo grep -i cipher /isan/etc/dcos_sshd_config
#secure ciphers and MACs
#CSCun41202
: Disable weaker Ciphers and MACs
Ciphers aes128-ctr,aes192-ctr,aes256-ctr <<----- only strong ciphers
! enable the weak aes-cbc ciphers with NXOS command
! Note that weak cipher 3des-cbc is still disabled.
9k# conf t
Enter configuration commands, one per line. End with CNTL/Z.
9k(config)# ssh cipher-mode weak
9k(config)# end
!! verification:
9k# run bash sudo grep -i cipher /isan/etc/dcos_sshd_config
#secure ciphers and MACs
#CSCun41202
: Disable weaker Ciphers and MACs
Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,aes192-cbc,aes256-cbc <<---
! rollback: use the 'no' form of the command
9k# conf t
Enter configuration commands, one per line. End with CNTL/Z.
9k(config)# no ssh cipher-mode weak
9k(config)# end
Opção temporária 2. Use Bash para modificar o arquivo sshd_config e readicione explicitamente os Weak Ciphers
Se você comenta a linha de cifra do arquivo /isan/etc/sshd_config, todos os cifras padrão são suportados (isso inclui aes128-cbc, 3des-cbc, aes192-cbc e aes256-cbc).
n9k#Config t
n9k(config)#feature bash-shell
n9k(config)#Run bash
bash-4.2$ sudo su -
root@N9K-1#cd /isan/etc
root@N9K-1#cat dcos_sshd_config | egrep Cipher
#CSCun41202 : Disable weaker Ciphers and MACs
Ciphers aes128-ctr,aes192-ctr,aes256-ctr <<<< only allowed ciphers (eliminate known vulnerability).
!! Create a back up of the existing SSHD_CONFIG
root@N9K-1#mv dcos_sshd_config dcos_sshd_config.backup
!! comment out the cipher line and save to config (effectively removing the restriction)
cat dcos_sshd_config.backup | sed 's@^Cipher@# Cipher@g' > dcos_sshd_config
!! Verify
root@N9K-1#cat dcos_sshd_config | egrep Cipher
#CSCun41202 : Disable weaker Ciphers and MACs
# Ciphers aes128-ctr,aes192-ctr,aes256-ctr << see inserted comment # before Cipher (to remove the limitation)
root@N9K-1#exit
logout
bash-4.2$ exit
exit
N9K-1(config)# no feature bash
N9K-1(config)# exit
Observe que quando você adiciona cifras antigas de volta, você usará cifras fracas e, portanto, é um risco à segurança.