内容

概要

背景

問題

解決方法

一時的なオプション1:ssh cipher-mode weakコマンド(NXOS 7.0(3)I4(6)以降で使用可能)

一時オプション2:sshd_configファイルを変更し、脆弱な暗号を明示的に再追加するためにBashを使用する

概要

このドキュメントでは、コードのアップグレード後にNexus 9000に対するSSHの問題をトラブルシューティングおよび解決する方法について説明します。

背景

SSHの問題の原因を説明する前に、Nexus 9000プラットフォームに影響を与える「SSHサーバCBCモード暗号が有効でSSH弱いMACアルゴリズムが有効」の脆弱性について知っておく必要があります。

CVE ID:CVE-2008-5161（SSHサーバのCBCモードの暗号が有効で、SSHの脆弱なMACアルゴリズムが有効）

問題の説明：SSHサーバのCBCモードで暗号機能が有効になっている脆弱性（SSHサーバのCBCモードで暗号機能が有効になっている）

SSHサーバは、Cipher Block Chaining(CBC)暗号化をサポートするように設定されています。これにより、攻撃者は暗号文からプレーンテキストメッセージを回復できる可能性があります。このプラグインはSSHサーバのオプションのみをチェックし、脆弱なソフトウェアバージョンはチェックしないことに注意してください。

推奨ソリューション：CBCモードの暗号化を無効にし、カウンタ(CTR)モードまたはGalois/Counter Mode(GCM)暗号化モードの暗号化を有効にします

参考：National Vulnerability Database - CVE-2008-5161詳細

問題

コードを7.0(3)I2(1)にアップグレードした後、Nexus 9000にSSH接続できず、次のエラーが表示されます。

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)以降にアップグレードした後、Nexus 9000にSSH接続できない理由は、脆弱な暗号がCisco Bug ID CSCuv39937の修正によって無効になっているためです。

この問題の長期的な解決策は、古い脆弱な暗号が無効になっている最新のSSHクライアントを使用することです。

一時的な解決策は、Nexus 9000に弱い暗号を追加し直すことです。コードのバージョンに応じて、一時的な解決策には2つのオプションがあります。

一時的なオプション1:ssh cipher-mode weakコマンド(NXOS 7.0(3)I4(6)以降で使用可能)

- Cisco Bug 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:sshd_configファイルを変更し、脆弱な暗号を明示的に再追加するためにBashを使用する

/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

古い暗号を追加すると、弱い暗号の使用に戻るため、セキュリティ上のリスクがあることに注意してください。