Dieses Dokument beschreibt die Schritte zum Hinzufügen (oder) Entfernen von Ciphers, MACs und Kex Algorithms in Nexus-Plattformen.
Cisco empfiehlt, dass Sie die Grundlagen von Linux und Bash verstehen.
Die Informationen in diesem Dokument basieren auf folgenden Hardware- und Software-Versionen:
Die Informationen in diesem Dokument beziehen sich auf Geräte in einer speziell eingerichteten Testumgebung. Alle Geräte, die in diesem Dokument benutzt wurden, begannen mit einer gelöschten (Nichterfüllungs) Konfiguration. Wenn Ihr Netzwerk in Betrieb ist, stellen Sie sicher, dass Sie die möglichen Auswirkungen aller Befehle kennen.
Bei einigen Sicherheits-Scans werden möglicherweise schwache Verschlüsselungsmethoden von Nexus-Geräten erkannt. In diesem Fall sind Änderungen an der Datei dcos_sshd_config auf Switches erforderlich, um unsichere Algorithmen zu entfernen.
Um zu bestätigen, welche Chiffren, MACs und Kex-Algorithmen eine Plattform verwendet, überprüfen Sie dies von einem externen Gerät. Sie können folgende Optionen verwenden:
Öffnen Sie eine CMD-Zeile auf einem PC, der das Nexus-Gerät erreichen kann, und führen Sie den Befehl ssh -vv aus.
C:\Users\xxxxx>ssh -vvv <hostname>
--------- 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
Dies gilt für:
1. Aktivieren Sie die Funktion bash-shell und im bash-Modus:
switch(config)# feature bash-shell
switch(config)#
switch(config)# run bash
bash-4.3$
2. Überprüfen Sie den Inhalt der Datei dcos_sshd_config:
bash-4.3$ cat /isan/etc/dcos_sshd_config
Anmerkung: Sie können egrep verwenden, um bestimmte Zeilen anzuzeigen: cat /isan/etc/dcos_sshd_config | grep MAC
Dies gilt für:
Schritte:
1. Öffnen Sie ein TAC-Ticket, um die dplug-Datei zu erhalten, die mit der auf dem Switch ausgeführten NXOS-Version übereinstimmt.
2. Laden Sie die dplug-Datei auf bootflash hoch und erstellen Sie eine Kopie davon.
switch# copy bootflash:nuova-or-dplug-mzg.7.3.8.N1.1 bootflash:dp
Anmerkung: Eine Kopie ("dp") der ursprünglichen dplug-Datei wird im bootflash erstellt, sodass nur die Kopie entfernt wird, nachdem der dplug geladen wurde und die ursprüngliche dplug-Datei für die nachfolgenden Läufe im bootflash verbleibt.
3. Laden Sie die Kopie des dplug, indem Sie den Befehl load ausführen.
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. Überprüfen Sie die Datei dcos_sshd_config.
Linux(debug)# cat /isan/etc/dcos_sshd_config
1. Senden Sie eine Kopie der dcos_sshd_config-Datei an bootflash:
Linux(debug)# cd /isan/etc/
Linux(debug)# copy dcos_sshd_config /bootflash/dcos_sshd_config
Linux(debug)# exit
2. Vergewissern Sie sich, dass die Kopie im Bootflash ist:
switch(config)# dir bootflash: | i ssh
7372 Mar 24 02:24:13 2023 dcos_sshd_config
3. Auf einen Server exportieren:
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. Schließen Sie alle notwendigen Änderungen an der Datei ab und importieren Sie zurück nach bootflash.
1. Laden Sie die geänderte dcos_sshd_config-Datei in den Bootflash hoch.
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#
Durch Ersetzen der vorhandenen dcos_sshd_config-Datei unter /isan/etc/ durch eine geänderte dcos_sshd_config-Datei im Bootflash. Dieser Prozess ist bei Neustarts nicht persistent.
ssh config Datei in den Bootflash hochladen:switch# dir bootflash: | i ssh
7372 Mar 24 02:24:13 2023 dcos_sshd_config_modified
2. Überschreiben Sie im bash- oder Linux (debug)#-Modus die vorhandene dcos_sshd_config-Datei mit der Datei im bootflash:
bash-4.3$ sudo su
bash-4.3# copy /bootflash/dcos_sshd_config_modified /isan/etc/dcos_sshd_config
3. Bestätigen Sie, dass die Änderungen erfolgreich waren:
bash-4.3$ cat /isan/etc/dcos_sshd_config
Mithilfe eines EEM-Skripts wird dies ausgelöst, wenn das Protokoll "VDC_MGR-2-VDC_ONLINE" nach einem Neuladen aktualisiert wird. Wenn der EEM ausgelöst wird, wird ein py-Skript ausgeführt, das die vorhandene dcos_sshd_config-Datei unter /isan/etc/ durch eine geänderte dcos_sshd_config-Datei im Bootflash ersetzt. Dies gilt nur für NX-OS-Versionen, die "feature bash-shell" unterstützen.
switch# dir bootflash: | i ssh
7404 Mar 03 16:10:43 2023 dcos_sshd_config_modified_7k
switch#
2. Erstellen Sie ein py-Skript, das Änderungen an der Datei dcos_sshd_config anwendet. Stellen Sie sicher, dass Sie die Datei mit der Erweiterung "py" speichern.
#!/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. Laden Sie das Python-Skript auf bootflash hoch.
switch# dir bootflash:///scripts
175 Mar 03 16:11:01 2023 ssh_workaround_7k.py
Anmerkung: Python-Skripte sind auf allen Plattformen fast gleich, mit Ausnahme von N7K, das einige zusätzliche Zeilen enthält, um den Fehler in der Cisco-ID CSCva14865 zu beheben.
4. Stellen Sie sicher, dass der Dateiname dcos_sshd_config aus dem Skript und bootflash (in Schritt 1) identisch sind:
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#
5. Führen Sie das Skript einmal aus, sodass die Datei dcos_sshd_config geändert wird.
switch# source ssh_workaround_7k.py
switch#
6. Konfigurieren Sie ein EEM-Skript. Sobald das PY-Skript bei jedem Neustart des Switches ausgeführt wird, wird es wieder aktiviert.
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"
Anmerkung: Die EEM-Syntax kann je nach NXOS-Version variieren (bei einigen Versionen ist "action cli" und bei anderen "action cli command" erforderlich). So wird sichergestellt, dass die EEM-Befehle korrekt sind.
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. Erstellen Sie ein py-Skript, das Änderungen an der Datei dcos_sshd_config anwendet. Stellen Sie sicher, dass Sie die Datei mit der Erweiterung "py" speichern.
#!/usr/bin/env python
import os
os.system("sudo su -c \"cp /bootflash/dcos_sshd_config_modified /isan/etc/dcos_sshd_config\"")
3. Laden Sie das Python-Skript auf bootflash hoch.
switch# dir | i i .py
127 Jun 18 17:21:39 2024 ssh_workaround_9k.py
switch#
4. Stellen Sie sicher, dass der Dateiname dcos_sshd_config aus dem Skript und bootflash (Schritt 1.) identisch sind:
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#
5. Führen Sie das Skript einmal aus, sodass die Datei dcos_sshd_config geändert wird.
switch# python bootflash:ssh_workaround_9k.py
6. Konfigurieren Sie ein EEM-Skript. Sobald das PY-Skript jedes Mal ausgeführt wird, wird der Switch neu gestartet und wieder aktiviert.
EEM N9K und 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
Anmerkung: Die EEM-Syntax kann je nach NXOS-Version variieren (bei einigen Versionen ist "action cli" und bei anderen "action cli command" erforderlich). So wird sichergestellt, dass die EEM-Befehle korrekt sind.
Eine modifizierte dplug-Datei wurde mit der Cisco Bug-ID CSCvr23488 erstellt, um diese Kex Algorithms zu entfernen:
Die über die Cisco Bug-ID CSCvr23488 bereitgestellten Debugdateien unterscheiden sich von den Dateien, die für den Zugriff auf die Linux Shell verwendet werden. Öffnen Sie ein TAC-Ticket, um die modifizierte dplug von der Cisco Bug-ID CSCvr23488 zu erhalten.
C:\Users\user>ssh -vvv admin@<hostname>
---- 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. Erstellen Sie eine Kopie der geänderten dplug-Datei.
switch# copy bootflash:nuova-or-dplug-mzg.7.3.14.N1.1_CSCvr23488.bin bootflash:dp
Anmerkung: Eine Kopie ("dp") der ursprünglichen dplug-Datei wird im bootflash erstellt, nur die Kopie wird entfernt, nachdem der dplug geladen wurde und die ursprüngliche dplug-Datei für weitere Läufe im bootflash verbleibt.
3. Wenden Sie die dplug-Datei aus der Cisco Bug-ID CSCvr2348 manuell an:
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. Überprüfen Sie die neuen dcos_sshd_config-Einstellungen:
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. Stellen Sie sicher, dass diese Änderung bei Neustarts mit einem EEM-Skript erhalten bleibt:
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"
Anmerkung: Nachdem der geänderte dplug angewendet wurde, muss die SSH-Funktion auf dieser Plattform zurückgesetzt werden. Die dplug-Datei muss im Bootflash vorhanden sein, und der EEM muss mit dem richtigen dplug-Dateinamen konfiguriert werden. Der dplug-Dateiname kann je nach Version des Switches variieren. Stellen Sie sicher, dass Sie das Skript nach Bedarf ändern. Aktion 1 erstellt eine Kopie der ursprünglichen dplug-Datei im Bootflash in eine andere Datei namens "dp", sodass die ursprüngliche dplug-Datei nach dem Laden nicht gelöscht wird.
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$
Führen Sie folgende Schritte aus, um dies zu überwinden:
bash-4.3$ sudo usermod -s /bin/bash root
Nachdem Sie den vorherigen Befehl ausgeführt haben, funktioniert "sudo su":
bash-4.3$ sudo su
bash-4.3#
Anmerkung: Diese Änderung überlebt ein erneutes Laden nicht.
Wenn SSH-Parameter in einem anderen VDC geändert werden müssen, müssen Sie die entsprechende dcos_sshd_config-Datei separat ändern. Für jeden VDC gibt es eine separate Datei "dcos_sshd_config".
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
Beispiel-CLI eines Switches mit 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
Für Plattformen, auf denen früherer Code ausgeführt wird, können Sie Ciphers, MACs und KexAlgorithms hinzufügen. Diese Versionen bieten nicht die Möglichkeit, bestimmte Algorithmen einzeln auszuwählen. wird nur die Option 'all' unterstützt.
N9000(config)# ssh macs ?
all Enable algorithms supported in current version of SSH
N9000(config)# ssh kexalgos ?
all Enable algorithms supported in current version of SSH
ecdh-sha2-nistp384 Enable ecdh-sha2-nistp384
N9000(config)# ssh ciphers ?
aes256-gcm Enable aes256-gcm
all Enable algorithms supported in current version of SSH
Anmerkung: Diese Befehle sind auf dem Nexus 7000 mit Version 8.3(1) und höher verfügbar. Für die Nexus 3000-/9000-Plattform ist der Befehl ab Version 7.0(3)I7(8) verfügbar. (Dieser Befehl steht auch allen 9.3(x)-Versionen zur Verfügung. Siehe Cisco Nexus Serie 9000 NX-OS - Sicherheitskonfigurationsleitfaden, Version 9.3(x).
| Überarbeitung | Veröffentlichungsdatum | Kommentare |
|---|---|---|
2.0 |
31-Jul-2026
|
Aktualisierte Rechtschreibung, Grammatik, Titel, eingefügte horizontale Linien für einzelne Abschnitte/Lesbarkeit, korrigierte CCW-Warnungen. |
1.0 |
01-Jul-2024
|
Erstveröffentlichung |