Sauvegarde CISCO avec Rancid

Sauvegarder la configuration de CISCO Catalyst, Nexus, AiroNet, PiX, ASA,... Peut devenir un casse tête, avec de gros réseaux informatiques qui comportent des dizaines d'équipements. Nicolargo présentait, sur son blog, la mise en oeuvre de sauvegardes TFTP. Je vous propose d'utiliser Rancid pour automatiser la mise en configuration CVS des backups CISCO.

Présentation de Rancid

Rancid permet d'automatiser la sauvegarde des équipements réseaux de plusieurs fabricants. Rancid réalise les sauvegardes dans un dépôt CVS ou Subversion, pour garder l'historique des changements de configuration. Dés lors qu'une modification est détectée, un email est envoyé. Les avantages sont donc multiples:

  • backup automatisé des équipements réseaux
  • mise en configuration permettant de revenir en arrière
  • détection de changement de configuration

Ainsi, vous sécurisez vos équipements et configurations réseaux.

Installer et configurer Rancid sur Ubuntu en 5 minutes

On attaque l'installation de Rancid pour backuper notre infrastructure CISCO :

sudo aptitude install rancid

Éditez le fichier /etc/rancid/rancid.conf, mettre dans la variable LIST_OF_GROUPS votre "découpage logique de votre réseau", pour moi, par exemple, les différents sites d'implantation de ma société :

LIST_OF_GROUPS="batiment1 batiment2 batiment3"

Ensuite, on démarre la création du repository CVS, avec les commandes :

rancid-run
sudo su -c /var/lib/rancid/bin/rancid-cvs -s /bin/bash -l rancid

Le repository CVS Rancid est créé dans le répertoire /var/lib/rancid/

Pour chaque "découpage logique de votre réseau", vous édité le fichier /var/lib/rancid//router.db, pour moi :

/var/lib/rancid/batiment1/router.db
/var/lib/rancid/batiment2/router.db
/var/lib/rancid/batiment3/router.db

Vous indiquez les adresses ip ou nom DNS des équipements CISCO qui doivent être pris en charge :

192.168.222.1:cisco:up
switch-bat1.mondomaine.com:cisco:up
wifi1-bat1.mondomaine.com:cisco:up
catalyst-bat1.mondomaine.com:cisco:up

Vous éditez, maintenant, le fichier /var/lib/rancid/.cloginrc, qui va contenir les informations de login sur vos différents équipements : ATTENTION FICHIER SENSIBLE !!!

# Batiment 1 switch1 en SSH avec auto-enable
add autoenable  switch1-bat1.mondomaine.com 1
add method      switch1-bat1.mondomaine.com ssh
add user        switch1-bat1.mondomaine.com root
add password    switch1-bat1.mondomaine.com passwdssh

Batiment 1 wifi1 en telnet avec auto-enable

add autoenable wifi1-bat1.mondomaine.com 1 add method wifi1-bat1.mondomaine.com telnet add user wifi1-bat1.mondomaine.com adminPower add password wifi1-bat1.mondomaine.com asswdtelnet

Batiment 2 pix1 en ssh SANS auto-enable

add autoenable pix1-bat1.mondomaine.com 0 add method pix1-bat1.mondomaine.com ssh add user pix1-bat1.mondomaine.com rootMan add password pix1-bat1.mondomaine.com passwdssh passwdenable

Pour des raisons de sécurité, Rancid refusera de s’exécuter, si vous ne procédez pas aux modifications suivantes sur le fichier /var/lib/rancid/.cloginrc :

  • chown rancid: /var/lib/rancid/.cloginrc
  • chmod o-r /var/lib/rancid/.cloginrc

Avant d'automatiser les sauvegardes, je vous propose de vérifier votre configuration pour chaque équipement, pour voir si la connexion se passe correctement :

sudo su -c "/var/lib/rancid/bin/clogin \
-f /var/lib/rancid/.cloginrc -u root "

Vous avez vérifié toutes vos connexions, automatisons la sauvegarde, avec cron, éditez le fichier /etc/crontab et ajoutez les lignes suivantes :

# RANCID
# run config differ hourly
1   * * * *  rancid /usr/lib/rancid/bin/rancid-run
# clean out config differ logs
50 23 * * *  rancid /usr/bin/find \
/var/log/rancid -type f -mtime +2 -exec rm {} \;

Pour permettre l'envoie des emails de détection de changement de configuration, vous devez éditer le fichier /etc/aliases en ajoutant ces lignes :

rancid-bat1: email@mondomaine.com
rancid-admin-bat1: email@mondomaine.com
rancid-bat2: email@mondomaine.com
rancid-admin-bat2: email@mondomaine.com
rancid-bat3: email@mondomaine.com
rancid-admin-bat3: email@mondomaine.com

Enfin, lancer la commande newaliases.

Pour lancer la vérification/sauvegarde des configurations CISCO avec Rancid manuellement, lancer la commande (cela peut durer plusieurs minutes suivant votre configuration) :

sudo su -c /var/lib/rancid/bin/rancid-run -s /bin/bash -l rancid

Installer CVSWeb, pour suivre la mise en configuration de son réseau CISCO

Pour visualiser, de façon simple, les configurations sauvegardées, je propose d'installer cvsweb avec la commande :

sudo aptitude install cvsweb

Ensuite je crée un lien symbolique, vers /var/www/, avec la commande :

ln -s /usr/share/cvsweb /var/www/cvsweb

Modifiez le fichier /etc/cvsweb/cvsweb.conf, en indiquant l'emplacement de votre repository Rancid :

'local'   => ['Local Repository', '/var/lib/rancid/CVS/'],

Accéder au serveur web cvs, allez à l'adresse http:///cgi-bin/cvsweb

Vue du serveur CVSWeb :

Vue de l’arborescence du découpage logique :

Vue des équipements CISCO :

Conclusion sur la sauvegarde automatisé de gros réseaux CISCO

Rancid est particulière bien adapter, à la sauvegarde de mon réseau CISCO, la gestion des configurations permet de revenir en arrière en cas de détection de problèmes, ou de fausses manipulations ! Vous renforcez ainsi la sécurité du système d'information, améliorez la qualité de service, limitez les interruptions de services, toujours néfaste pour le business !

Rancid supporte également les équipements suivants :

Device Description
alteon An Alteon WebOS switches.
baynet A Bay Networks router.
cat5 A Cisco catalyst series 5000 and 4000 switches (i.e.: running the catalyst OS, not IOS).
cisco A Cisco router, PIX, or switch such as the 3500XL or 6000 running IOS (or IOS-like) OS.
css A Cisco content services switch.
enterasys An enterasys NAS. This is currently an alias for the riverstone device type.
erx A Juniper E-series edge router.
Extreme An Extreme switch.
ezt3 An ADC-Kentrox EZ-T3 mux.
force10 A Force10 router.
foundry A Foundry router, switch, or router-switch. This includes HP Procurve switches that are OEMs of Foundry products, such as the HP9304M.
hitachi A Hitachi routers.
hp A HP Procurve switch such as the 2524 or 4108 procurve switches. Also see the foundry type.
mrtd A host running the (merit) MRTd daemon.
netscalar A Netscalar load balancer.
netscreen A Netscreen firewall.
redback A Redback router, NAS, etc.
tnt A lucent TNT.
zebra Zebra routing software.
riverstone A Riverstone NAS or Cabletron (starting with version ~9.0.3) router.
juniper A Juniper router.