소개
이 문서에서는 코드 업그레이드 후 Nexus 9000에 대한 SSH 문제를 해결/해결하는 방법에 대해 설명합니다.
배경
SSH 문제의 원인을 설명하기 전에 Nexus 9000 플랫폼에 영향을 미치는 'SSH Server CBC Mode Ciphers Enabled & SSH Weak MAC Algorithms Enabled' 취약성에 대해 알아야 합니다.
CVE ID - CVE- 2008-5161(SSH 서버 CBC 모드 암호 활성화 및 SSH Weak MAC 알고리즘 활성화)
문제점 설명 - SSH Server CBC Mode Ciphers 활성화 취약성(SSH Server CBC Mode Ciphers 활성화)
SSH 서버는 CBC(Cipher Block Chaining) 암호화를 지원하도록 구성됩니다. 이를 통해 공격자는 암호문에서 평문 메시지를 복구할 수 있다. 이 플러그인은 SSH 서버의 옵션만 확인하며 취약한 소프트웨어 버전은 확인하지 않습니다.
권장 솔루션 - CBC 모드 암호화 비활성화, CTR(카운터) 모드 또는 GCM(Galois/카운터 모드) 암호화 활성화
참조 - 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 버그 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
이전 암호를 다시 추가하면 약한 암호를 다시 사용하게 되므로 보안 위험이 따릅니다.