簡介
本文描述如何在代碼升級後對Nexus 9000的SSH問題進行故障排除/解決。
背景
在解釋SSH問題的原因之前,必須瞭解影響Nexus 9000平台的「已啟用SSH伺服器CBC模式密碼和SSH弱項MAC演算法已啟用」漏洞。
CVE ID - CVE- 2008-5161(啟用SSH伺服器CBC模式密碼和啟用SSH弱MAC演算法)
問題描述 — SSH伺服器CBC模式密碼啟用漏洞(SSH伺服器CBC模式密碼啟用)
SSH伺服器配置為支援密碼塊連結(CBC)加密。這使得攻擊者能夠從密文恢復明文消息。請注意,此外掛僅檢查SSH伺服器的選項,而不檢查是否存在易受攻擊的軟體版本。
建議的解決方案 — 禁用CBC模式密碼加密,並啟用計數器(CTR)模式或Galois/計數器模式(GCM)密碼模式加密
參考 — 國家漏洞資料庫 — CVE-2008-5161詳細資訊
問題
將代碼升級到7.0(3)I2(1)後,您將無法通過SSH連線到Nexus 9000並收到以下錯誤:
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
解決方案
升級到代碼7.0(3)I2(1)和更新版本後,無法通過SSH連線到Nexus 9000的原因是,弱密碼已通過Cisco錯誤ID CSCuv39937修復程式禁用。
此問題的長期解決方案是使用已禁用舊弱密碼的更新/最新SSH客戶端。
臨時解決方案是在Nexus 9000上新增弱密碼。臨時解決方案有兩種可能的選項,具體取決於代碼的版本。
臨時選項1. ssh cipher-mode weak命令(隨NXOS 7.0(3)I4(6)或更高版本提供)
- 由Cisco錯誤ID CSCvc71792引入 — 實作一個可允許弱密碼的旋鈕aes128-cbc、aes192-cbc、aes256-cbc。
- 新增對這些弱密碼的支援 — aes128-cbc、aes192-cbc和aes256-cbc。
- 仍然不支援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
臨時選項2.使用Bash修改sshd_config檔案並顯式重新新增弱密碼
如果從/isan/etc/sshd_config檔案中註釋掉密碼行,則支援所有預設密碼(包括aes128-cbc、3des-cbc、aes192-cbc和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
請注意,重新新增舊密碼後,將恢復使用弱密碼,因此存在安全風險。