Cet outil a pour but la gestion d'équipement Cisco propulsé sous IOS (IOS 12 & 15).
Cet outil, à destination d’équipement Cisco propulsé sous IOS, a pour but :
- l’automatisation d’un ensemble d’instruction destiné à améliorer la sécurité
- la récupération des "running-config"
- le "factory reset" des équipements
- C7200
- C3745
- C2960
- IOSvL2
- IOSvL3
Afin d’utiliser cet outil, il sera nécessaire d’installer les bons paquets:
sudo apt install -y python3-pip
sudo apt install -y build-essential libssl-dev libffi-dev
sudo apt install -y python3-dev
python3 -m pip install cryptography
python3 -m pip install netmiko
chmod +x cisco_management.py
Afin de pouvoir utiliser ce script, il est nécessaire de configurer le SSH sur les équipements et d'avoir initié une première connexion sur ces derniers.
Vous devrez renseigner dans les fichiers ‘switch.list’ et ‘router.list’, toutes les adresses IP de vos commutateurs sous forme X.X.X.X.
Exemple:
Dans les fichiers ‘configuration_l3’ et ‘configuration_l2’, se trouvent les instructions qui seront envoyées aux équipements. Avant d’ajouter des instructions dans ces fichiers, il est vivement conseillé de les tester directement sur au moins un équipement, afin de s'assurer du comportement en résultant. De plus, si vous utilisez les fichiers fournis ici, adapter la 'range' des 'line vty' selon vos besoins.
Le fichier 'CONFIGURATION_COMMENTED' explique brièvement l'usage des commandes, ne pas l'utiliser avec ce script.
Il faudra définir la destination de la sauvegarde, via la variable 'bckp_path'.
La fonction 'reload' permet de planifier le redémarrage des équipements au bout de 2min, par défaut. Valeur minimum 1min, le programme ne pourra pas se terminer correctement si l'équipement redémarre pendant l'envoie d'instruction.
Si vous utilisez ce script avec GNS3, sur un IOSvL2, la valeur 'config-register' est à 0x0. Le mode ROMMON n'étant pas supporté pour la changer, l'envoie d'un 'reload' via SSH, sera impossible. Pensez donc, dans ce cas, à modifier la fonction comme suit:
De plus, certains IOS (c7200, c3745, c3725) figent lors d'un 'reload'. Privilégier l'utilisation d'IOSvL3 dans ce cas. (En savoir plus)
Enfin, suite à un 'write erase', il se peut que l'équipement émulé ne fasse pas apparaître un prompt de type:
'System configuration has been modified. Save? [yes/no]'
Auquel cas, modifier la fonction 'reload' comme suit:
python3 cisco_management.py
Cette fonctionnalité permet d’envoyer une liste d’instruction visant à:
- Vérifier si l'équipement a déjà été configuré par ce script
- Désactiver les services non utilisés
- Amélioration de la sécurité
Cette fonctionnalité permet de récupérer les 'running-config' sous forme de fichier '.txt', et de le sauvegarder dans le repértoire définit dans la variable 'path_backup', se trouvant dans la fonction 'save'. Le dossier aura pour nom, le 'hostname'.
Cette foncionnalité permet de faire un effacement:
- de la ‘startup-config’
- du fichier ‘vlan.dat’ pour les commutateurs
Et, de planifier un redémarrage des équipements.