In dem Dokumentationssatz für dieses Produkt wird die Verwendung inklusiver Sprache angestrebt. Für die Zwecke dieses Dokumentationssatzes wird Sprache als „inklusiv“ verstanden, wenn sie keine Diskriminierung aufgrund von Alter, körperlicher und/oder geistiger Behinderung, Geschlechtszugehörigkeit und -identität, ethnischer Identität, sexueller Orientierung, sozioökonomischem Status und Intersektionalität impliziert. Dennoch können in der Dokumentation stilistische Abweichungen von diesem Bemühen auftreten, wenn Text verwendet wird, der in Benutzeroberflächen der Produktsoftware fest codiert ist, auf RFP-Dokumentation basiert oder von einem genannten Drittanbieterprodukt verwendet wird. Hier erfahren Sie mehr darüber, wie Cisco inklusive Sprache verwendet.
Cisco hat dieses Dokument maschinell übersetzen und von einem menschlichen Übersetzer editieren und korrigieren lassen, um unseren Benutzern auf der ganzen Welt Support-Inhalte in ihrer eigenen Sprache zu bieten. Bitte beachten Sie, dass selbst die beste maschinelle Übersetzung nicht so genau ist wie eine von einem professionellen Übersetzer angefertigte. Cisco Systems, Inc. übernimmt keine Haftung für die Richtigkeit dieser Übersetzungen und empfiehlt, immer das englische Originaldokument (siehe bereitgestellter Link) heranzuziehen.
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.
In manchen Fällen können Sicherheits-Scans schwache Verschlüsselungsmethoden finden, die von Nexus-Geräten verwendet werden. In diesem Fall sind Änderungen an derdcos_sshd_config
Datei auf den Switches erforderlich, um diese unsicheren Algorithmen zu entfernen.
Um zu bestätigen, welche Chiffren, MACs und Kex-Algorithmen eine Plattform verwendet, und dies von einem externen Gerät aus zu überprüfen, können Sie folgende Optionen verwenden:
Öffnen Sie eine CMD-Zeile auf einem PC, der das Nexus-Gerät erreichen kann, und verwenden Sie den Befehl ssh -vvv
.
C:\Users\xxxxx>ssh -vvv
--------- 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:
Schritte:
switch(config)# feature bash-shell
switch(config)#
switch(config)# run bash
bash-4.3$
2. Überprüfen Sie den Inhalt derdcos_sshd_config
Datei:
bash-4.3$ cat /isan/etc/dcos_sshd_config
Anmerkung: Sie können egrep verwenden, um bestimmte Posten 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 über denload
Befehl.
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. Datei überprüfendcos_sshd_config
.
Linux(debug)# cat /isan/etc/dcos_sshd_config
1. Senden Sie eine Kopie derdcos_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. Nehmen Sie die notwendigen Änderungen an der Datei vor und importieren Sie zurück nach bootflash.
1. Laden Sie die geändertedcos_sshd_config
Datei in den Boot-Flash.
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 vorhandenendcos_sshd_config
Datei unter/isan/etc/
durch eine geändertedcos_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 vorhandenedcos_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
Durch die Verwendung eines EEM-Skripts, das ausgelöst wird, wenn das Protokoll "VDC_MGR-2-VDC_ONLINE" nach einem Neuladen hochgeladen wird. Wenn der EEM ausgelöst wird, wird ein py-Skript ausgeführt, das die vorhandenedcos_sshd_config
Datei unter/isan/etc/
durch eine geändertedcos_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 die Änderungen auf diedcos_sshd_config
Datei 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 derdcos_sshd_config
Dateiname aus dem Skript und bootflash (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#
4. Führen Sie das Skript einmal aus, sodass diedcos_sshd_config
Datei geändert wird.
switch# source ssh_workaround_7k.py
switch#
5. Konfigurieren Sie ein EEM-Skript, sodass das py-Skript bei jedem Neustart des Switches und bei jedem erneuten Hochfahren ausgeführt wird.
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 (einige Versionen erfordern "action <id> cli" und andere "action <id> cli command"). Stellen Sie deshalb sicher, dass die EEM-Befehle ordnungsgemäß ausgeführt werden.
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 die Änderungen auf diedcos_sshd_config
Datei 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 derdcos_sshd_config
Dateiname vom Skript und vom 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#
4. Führen Sie das Skript einmal aus, sodass diedcos_sshd_config
Datei geändert wird.
switch# python bootflash:ssh_workaround_9k.py
5. Konfigurieren Sie ein EEM-Skript, sodass das PY-Skript bei jedem Neustart des Switches und bei jedem erneuten Einschalten ausgeführt wird.
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 (einige Versionen erfordern "action <id> cli" und andere "action <id> cli command"). Stellen Sie deshalb sicher, dass die EEM-Befehle ordnungsgemäß ausgeführt werden.
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.
dcos_sshd_config
Standardeinstellungen:C:\Users\user>ssh -vvv admin@
---- 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, 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. 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 neuendcos_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. Halten Sie diese Änderung über Neustarts hinweg mit einem EEM-Skript aufrecht:
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:
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$
Geben Sie Folgendes ein, um dies zu überwinden:
bash-4.3$ sudo usermod -s /bin/bash root
Danach funktioniert "sudo su":
bash-4.3$ sudo su
bash-4.3#
Anmerkung: Diese Änderung überlebt ein erneutes Laden nicht.
dcos_sshd_config
Datei für jeden VDC. Falls SSH-Parameter in einem anderen VDC geändert werden müssen, stellen Sie sicher, dass die entsprechendedcos_sshd_config
Datei geändert wird.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
dcos_sshd_config
Datei bleiben bei Neustarts auf Nexus-Plattformen nicht erhalten. Wenn Änderungen dauerhaft sein müssen, kann ein EEM verwendet werden, um die Datei bei jedem Start des Switches zu ändern. 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
Beispiel-CLI eines Switches mit 10.3(6):
switch(config)# ssh kexalgos ?
all Enable algorithms supported in current version of SSH
ecdh-sha2-nistp384 Enable ecdh-sha2-nistp384
switch(config)# ssh ciphers ?
aes256-gcm Enable aes256-gcm
all Enable algorithms supported in current version of SSH
switch(config)# ssh macs ?
all Enable algorithms supported in current version of SSH
Es gibt weitere Ciphers, MACs und KexAlgorithms, die bei Bedarf hinzugefügt werden können:
switch(config)# ssh kexalgos [all | key-exchangealgorithm-name]
switch(config)# ssh macs [all | mac-name]
switch(config)# ssh ciphers [ all | cipher-name ]
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 - Sicherheitskonfigurationshandbuch, Version 9.3(x) )
Überarbeitung | Veröffentlichungsdatum | Kommentare |
---|---|---|
1.0 |
01-Jul-2024
|
Erstveröffentlichung |