L'objectif de cet article est de décrire les étapes permettant de déclencher la copie des fichiers de configuration à partir d'un commutateur Cisco Business via le protocole SNMP (Simple Network Management Protocol).
Les fichiers de configuration sont généralement copiés à partir d'un commutateur à l'aide de l'interface graphique utilisateur (GUI) ou de l'interface de ligne de commande (CLI). Une méthode plus inhabituelle consiste à déclencher la tâche de copie via SNMP.
Lors de la copie d'un fichier de configuration contenant des données sensibles, la tâche de copie peut exclure les données sensibles, les inclure sous forme chiffrée, les inclure en texte clair ou utiliser une méthode par défaut. La spécification du traitement des données sensibles est facultative et la valeur par défaut sera utilisée si elle n'est pas spécifiée.
Pour accéder au menu de gestion des données sensibles à l'aide de l'interface graphique utilisateur, accédez au menu Administration > File Operations > File Management.
L'option Sensitive Data Handling apparaît uniquement en mode de fichier de sauvegarde pour TFTP ou SCP.
À partir de la ligne de commande, la commande copy peut être utilisée :
copy {running-config | startup-config} dst-url [exclude | include-encrypted | include-plaintext]
Exemple :
copy running-config tftp://192.168.101.99/destination-file.txt exclude
La valeur par défaut est le mode de lecture de session SSD (Secure Sensitive Data) défini sur. Pour afficher le mode actuel, entrez show ssd session, ou entrez show running-config et recherchez l'indicateur de fichier SSD. Avec les paramètres d'usine par défaut, le mode de lecture de session SSD attendu est chiffré.
C1300# show ssd session
Nom d'utilisateur / Niveau : utilisateur1 / Niveau 15
Autorisation de lecture utilisateur : Les deux
Mode de lecture de la session actuelle : Chiffré
C1300# show running-config | include SSD
fichier SSD indicateur chiffré
Si la commande copy a été entrée sans aucune option spécifiée, la copie est effectuée comme si l'option « include-encryption » avait été sélectionnée.
copy running-config tftp://192.168.101.99/destination-file.txt
Cependant, la valeur de lecture de session peut être modifiée :
ssd session read {exclude | encrypted | plaintext}
Cette commande a un impact sur le résultat de show running-config et show startup-config, ainsi qu'en agissant comme valeur par défaut pour le traitement des données sensibles par la commande copy.
Exemple :
C1300(config)# ssd session read plaintext
C1300(config)# exit
C1300# copy running-config tftp://192.168.101.99/destination-file.txt
Le fichier résultant inclura des données sensibles en texte clair, tout comme le résultat de "show running-config" et "show startup-config", donc il faut faire attention avec le mode de lecture de session SSD. Laisser la valeur par défaut est plus sûr.
Si la sortie de show running-config ou de show startup-config n'affiche pas tout ce qui est attendu, par exemple, les utilisateurs SNMP v3 avec des informations d'identification chiffrées qui sont visibles dans l'interface graphique utilisateur, assurez-vous que la valeur de lecture de la session SSD n'est pas définie sur « exclude ».
Les commutateurs de la gamme Catalyst 1200/Catalyst 1300/CBSx50 utilisent l'identificateur d'objet (OID) SNMP appelé rlCopyOptionsRequestedSsdAccess pour contrôler l'option de données sensibles. L'objet est un entier et à première vue, les valeurs qu'il accepte semblent équivalentes à celles de la commande copy :
L'option 3, qui copie les données sensibles en texte clair, ne peut pas être utilisée avec SNMP v2c, ni avec SNMP v3, à moins que l'authentification et la confidentialité (authPriv) ne soient utilisées.
Définir l'option de texte clair pour copier le fichier en utilisant un protocole non sécurisé comme TFTP n'est pas une bonne idée.
SNMP v3 avec authPriv est uniquement utilisé pour déclencher la copie, de sorte que ses paramètres de confidentialité ne sont pas utiles pour la protection du fichier de configuration lui-même pendant le transfert. La copie à l'aide du protocole Secure Copy Protocol (SCP), par exemple, serait plus sécurisée.
L'option 4, l'option par défaut, ne se comporte pas comme on pourrait s'y attendre. Il n'agit pas comme la commande copy, et la valeur de session de lecture SSD n'a aucune influence sur le résultat de copie lors de l'utilisation de SNMP. L'option 4 est identique à l'option 1 (exclure), à une exception près : Si vous utilisez SNMP v3 avec authPriv, l'option 4 est identique à l'option 3 (texte clair).
Le comportement est résumé dans le tableau ci-dessous :
1 (exclure) |
2 (crypté) |
3 (texte clair) |
manquer à ses obligations |
|
copie CLI |
exclus |
chiffré |
texte brut |
Valeur SSD |
SNMP v2c |
exclus |
chiffré |
échoue |
exclus |
SNMP v3 authPriv |
exclus |
chiffré |
texte brut |
texte brut |
SNMP v3 authNoPriv |
exclus |
chiffré |
échoue |
exclus |
SNMP v3 noAuthNoPriv |
exclus |
chiffré |
échoue |
exclus |
SNMP v3 avec authPriv n'est pas spécifiquement requis pour déclencher la tâche de copie, mais comme il offre une plus grande flexibilité et sécurité, il est recommandé par rapport aux autres variantes SNMP et sera celui utilisé pour les exemples suivants.
Exemple de configuration :
snmp-server server
snmp-server engineID local 8000000903f01d2da99341
snmp-server group snmpAdmin v3 priv write Default
encrypted snmp-server user sbscadmin snmpAdmin v3 auth sha [authentication_password] priv [privacy_password]
La configuration ci-dessus permet à l'utilisateur nommé sbscadmin d'envoyer des commandes SNMP v3 au commutateur pour déclencher la copie du fichier. L'utilisateur sbscadmin est membre du groupe snmpAdmin, qui a reçu des privilèges d'écriture SNMP v3 complets sur le commutateur.
Notez que l'utilisateur dispose à la fois d'un mot de passe d'authentification (auth) et d'un mot de passe de confidentialité (priv), c'est-à-dire authPriv, et que le groupe snmpAdmin a un jeu de mots de passe "priv" (qui inclut également l'authentification puisque la confidentialité ne peut pas être utilisée sans elle).
L'exemple suivant est un exemple de commande snmpset qui déclenche la tâche de copie. Il est long tant qu'il doit définir plusieurs valeurs d'objet. La commande est entrée sur une seule ligne, mais une barre oblique inverse peut être utilisée comme caractère d'échappement pour séparer chaque élément sur sa propre ligne si nécessaire. Ceci a été fait ci-dessous pour améliorer la lisibilité. L'entrée est affichée en bleu et la sortie en blanc.
blake@MintBD:~$ snmpset -v 3 -u snmpuser -l authPriv \
-a SHA -A [authentication_password] \
-x AES -X [privacy_password] -m +CISCOSB-COPY-MIB 192.168.111.253 \
rlCopyOptionsRequestedSsdAccess.1 = include-encrypted \
rlCopyRowStatus.1 = createAndGo \
rlCopySourceLocation.1 = local \
rlCopySourceIpAddress.1 = 0.0.0.0 \
rlCopySourceUnitNumber.1 = 1 \
rlCopySourceFileType.1 = runningConfig \
rlCopyDestinationLocation.1 = tftp \
rlCopyDestinationIpAddress.1 = 192.168.111.18 \
rlCopyDestinationFileName.1 = v3-2.txt \
rlCopyDestinationFileType.1 = backupConfig
CISCOSB-COPY-MIB::rlCopyOptionsRequestedSsdAccess.1 = INTEGER: include-encrypted(2)
CISCOSB-COPY-MIB::rlCopyRowStatus.1 = INTEGER: createAndGo(4)
CISCOSB-COPY-MIB::rlCopySourceLocation.1 = INTEGER: local(1)
CISCOSB-COPY-MIB::rlCopySourceIpAddress.1 = IpAddress: 0.0.0.0
CISCOSB-COPY-MIB::rlCopySourceUnitNumber.1 = INTEGER: 1
CISCOSB-COPY-MIB::rlCopySourceFileType.1 = INTEGER: runningConfig(2)
CISCOSB-COPY-MIB::rlCopyDestinationLocation.1 = INTEGER: tftp(3)
CISCOSB-COPY-MIB::rlCopyDestinationIpAddress.1 = IpAddress: 192.168.111.18
CISCOSB-COPY-MIB::rlCopyDestinationFileName.1 = STRING: v3-2.txt
CISCOSB-COPY-MIB::rlCopyDestinationFileType.1 = INTEGER: backupConfig(4)
Une fois la tâche de copie exécutée, la valeur de rlCopyOptionsRequestedSsdAccess revient à 4 (valeur par défaut).
L'utilisation de noms symboliques pour les objets et leurs valeurs est rendue possible par CISCOSB-COPY-MIB, qui est décrit en détail dans le fichier "CISCOSB-copy.mib", inclus avec les fichiers MIB sur la page de téléchargement pour le commutateur.
Le tableau suivant fait correspondre le nom symbolique de chaque objet à son OID.
Nom symbolique |
Identificateur d'objet (OID) |
TableauOptionsCopieURL |
1.3.6.1.4.1.9.6.1.101.87.12 |
RlCopyOptionsRequestedSsdAccess |
1.3.6.1.4.1.9.6.1.101.87.12.1.2 |
TableCopieRL |
1.3.6.1.4.1.9.6.1.101.87.2 |
RlCopyRowStatus |
1.3.6.1.4.1.9.6.1.101.87.2.1.17 |
RlCopySourceLocation |
1.3.6.1.4.1.9.6.1.101.87.2.1.3 |
AdresseIpSourceCopieRl |
1.3.6.1.4.1.9.6.1.101.87.2.1.4 |
RlCopySourceUnitNumber |
1.3.6.1.4.1.9.6.1.101.87.2.1.5 |
TypeFichierSourceCopieRL |
1.3.6.1.4.1.9.6.1.101.87.2.1.7 |
RlCopyDestinationLocation |
1.3.6.1.4.1.9.6.1.101.87.2.1.8 |
AdresseIpDestinationCopieURL |
1.3.6.1.4.1.9.6.1.101.87.2.1.9 |
NomFichierDestinationCopieURL |
1.3.6.1.4.1.9.6.1.101.87.2.1.11 |
TypeFichierDestinationCopieURL |
1.3.6.1.4.1.9.6.1.101.87.2.1.12 |
Si les fichiers MIB ne sont pas utilisés, la copie de fichier peut être déclenchée à l'aide des OID au lieu des noms symboliques, bien que l'entrée et la sortie soient moins intuitives.
blake@MintBD:~$ snmpset -v 3 -u sbscadmin -l authPriv \
-a SHA -A [authentication_password] \
-x AES -X [privacy_password] 192.168.111.253 \
1.3.6.1.4.1.9.6.1.101.87.12.1.2.1 i 1 \
1.3.6.1.4.1.9.6.1.101.87.2.1.17.1 i 4 \
1.3.6.1.4.1.9.6.1.101.87.2.1.3.1 i 1 \
1.3.6.1.4.1.9.6.1.101.87.2.1.4.1 a 0.0.0.0 \
1.3.6.1.4.1.9.6.1.101.87.2.1.5.1 i 1 \
1.3.6.1.4.1.9.6.1.101.87.2.1.7.1 i 2 \
1.3.6.1.4.1.9.6.1.101.87.2.1.8.1 i 3 \
1.3.6.1.4.1.9.6.1.101.87.2.1.9.1 a 192.168.111.18 \
1.3.6.1.4.1.9.6.1.101.87.2.1.11.1 s destination-file.txt \
1.3.6.1.4.1.9.6.1.101.87.2.1.12.1 i 4
iso.3.6.1.4.1.9.6.1.101.87.12.1.2.1 = INTEGER: 1
iso.3.6.1.4.1.9.6.1.101.87.2.1.17.1 = INTEGER: 4
iso.3.6.1.4.1.9.6.1.101.87.2.1.3.1 = INTEGER: 1
iso.3.6.1.4.1.9.6.1.101.87.2.1.4.1 = IpAddress: 0.0.0.0
iso.3.6.1.4.1.9.6.1.101.87.2.1.5.1 = INTEGER: 1
iso.3.6.1.4.1.9.6.1.101.87.2.1.7.1 = INTEGER: 2
iso.3.6.1.4.1.9.6.1.101.87.2.1.8.1 = INTEGER: 3
iso.3.6.1.4.1.9.6.1.101.87.2.1.9.1 = IpAddress: 192.168.111.18
iso.3.6.1.4.1.9.6.1.101.87.2.1.11.1 = STRING: "destination-file.txt"
iso.3.6.1.4.1.9.6.1.101.87.2.1.12.1 = INTEGER: 4
Un simple "=" symbole n'a pas été utilisé pour définir les valeurs car, sans la MIB, la commande doit explicitement définir chaque type d'objet ("i" pour entier, "a" pour adresse et "s" pour chaîne). Les noms des valeurs ("local", "runningConfig", etc.) ne peuvent pas non plus être utilisés car ils sont définis par la MIB, de sorte que les entiers représentant ces options doivent être définis directement.
Les outils de gestion SNMP peuvent être utiles à des fins de test et de dépannage. Cet article utilise la commande snmpset incluse avec Net-SNMP, une suite d'outils SNMP libres et open-source.
Afin d'utiliser les fichiers MIB du commutateur avec Net-SNMP, assurez-vous d'abord que les propres fichiers MIB de Net-SNMP sont placés dans un emplacement où Net-SNMP les recherchera, par exemple, $HOME/.snmp/mibs. Si les fichiers MIB de Net-SNMP ne sont pas installés, les MIB du commutateur ne fonctionneront pas correctement.
Les fichiers MIB du commutateur peuvent être décompressés et placés au même emplacement que les fichiers MIB de Net-SNMP, mais pour éviter les problèmes de compatibilité, n'écrasez pas les versions Net-SNMP des fichiers qui se chevauchent entre les deux ensembles.
Une fois que tous les fichiers MIB se trouvent dans un emplacement approprié, les MIB appropriées peuvent être appelées à l'aide de l'argument "-m" avec la commande souhaitée.
Exemple :
snmpget -v 3 -u snmpuser -l authPriv \
-a SHA -A [authentication_password] \
-x AES -X [privacy_password] \
-m +CISCOSB-COPY-MIB 192.168.111.253 rlCopyOptionsRequestedSsdAccess.1
"CISCOSB-COPY-MIB" est le nom de la MIB elle-même et non le fichier qui la décrit, qui est CISCOSB-copy.mib.
Pour plus d'informations sur l'utilisation des outils Net-SNMP, consultez la documentation et les didacticiels disponibles sur le site Web Net-SNMP.
Vous connaissez maintenant toutes les étapes à suivre pour déclencher la copie des fichiers de configuration d'un commutateur Cisco Business vers un serveur TFTP via SNMP.
Révision | Date de publication | Commentaires |
---|---|---|
1.0 |
28-Mar-2025 |
Première publication |