% Gestion et surveillance de réseau % Utilisation de RANCID # Introduction ## Objectifs * Apprendre à utiliser RANCID # Notes : * Les commandes précédées de "$" signifient que vous devez exécuter la commande en tant qu'utilisateur général - et non en tant qu'utilisateur root. * Les commandes précédées de "#" signifient que vous devez travailler en tant qu'utilisateur root. * Les commandes comportant des lignes de commande plus spécifiques (par exemple "rtrX" ou "mysql>") signifient que vous exécutez des commandes sur des équipements à distance, ou dans un autre programme. # Exercices # 1. Connectez-vous à votre PC en utilisant ssh # 2. Devenez utilisateur root et installez Subversion, le système de versionnage. En plus de Subversion, on installera telnet et le client mail mutt. Ces deux paquetages doivent déjà être installés par les labos précédents. Sinon, pas de problème - la command apt-get ne les réinstallera pas. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ $ sudo -s # apt-get install mutt telnet subversion ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # 3. Installez l'application Rancid proprement dite ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # apt-get install rancid ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Un message d'avertissement "Really continue?" (voulez-vous vraiment continuer) s'affichera. Sélectionnez puis ENTREE pour continuer. - Un second avertissement apparaîtra pour vous recommander de faire une sauvegarde de vos données Rancid. Nous n'avions pas de données, donc sélectionnez et ENTREE pour continuer. # 4. Créez un alias pour l'utilisateur rancid dans le fichier /etc/aliases RANCID envoie par défaut des mails aux utilisateurs rancid-nom_de_groupe et rancid-admin-nom_de_groupe. Nous voulons que ces mails soient envoyés à l'utilisateur sysadm à la place, et nous utiliserons la fonction alias pour ceci. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # editor /etc/aliases ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ rancid-routers: sysadm rancid-admin-routers: sysadm ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Enregistrez le fichier, puis exécutez : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # newaliases ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # 5. Modifiez /etc/rancid/rancid.conf ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # editor /etc/rancid/rancid.conf ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Recherchez la ligne suivante dans rancid.conf: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #LIST_OF_GROUPS="sl joebobisp" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Et, en dessous ajoutez la ligne suivante : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ LIST_OF_GROUPS="routers" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (Sans "#" en début de ligne) En outre nous voulons utiliser Subversion, et non CVS, donc recherchez la ligne contenant le paramètre RCSSYS: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ RCSSYS=cvs; export RCSSYS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ et modifiez-la comme suit : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ RCSSYS=svn; export RCSSYS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Ainsi que la ligne contenant CVSROOT : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CVSROOT=$BASEDIR/CVS; export CSVROOT ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Et remplacez la par: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CVSROOT=$BASEDIR/svn; export CSVROOT ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Notez bien le "svn" en *minuscules*. Sauver, et quitter le fichier. 6. Devenez utilisateur rancid # ATTENTION ATTENTION ATTENTION ! # ATTENTION ATTENTION ATTENTION ! # ATTENTION ATTENTION ATTENTION ! Faites très attention au compte utilisateur avec lequel vous agirez pour le reste de ce labo! Si vous êtes dans le doute, il suffit de taper la commande "id" sur la ligne de commande, à tout moment. Depuis une invite root, changez d'identité pour devenir l'utilisateur "rancid" : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # su -s /bin/bash rancid ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Vérifiez que vous êtes BIEN l'utilisateur rancid : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ $ id ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Vous devriez voir quelque chose de similaire (les chiffres peuvent être différents): ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ uid=104(rancid) gid=109(rancid) groups=109(rancid) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # SI VOUS N'ÊTES PAS UTILISATEUR RANCID APRÈS AVOIR TAPÈ "id" # NE CONTINUEZ PAS # 7. Créez /var/lib/rancid/.cloginrc ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ $ editor /var/lib/rancid/.cloginrc ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Ajoutez les lignes suivantes: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ add user *.ws.nsrc.org cisco add password *.ws.nsrc.org nsrc+ws nsrc+ws ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (Le premier "cisco" correspond au nom d'utilisateur, le deuxième et le troisième "nsrc+ws" sont le mot de passe et le mot de passe enable utilisé pour se connecter à votre routeur. L'astérisque dans le nom signifie que Rancid va essayer d'utiliser ce nom d'utilisateur et ce mot de passe pour tous les routeurs dont le nom finit en .ws.nsrc.org). (Note: il est également possible d'utiliser des adresses IP, et on pourrait alors écrire: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ add user 10.10.* cisco add password 10.10.* nsrc+ws nsrc+ws) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Quitter et sauver ce fichier. Protégez maintenant ce fichier afin qu'il ne puisse pas être lu par d'autres utilisateurs : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ $ chmod 600 /var/lib/rancid/.cloginrc ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 8. Testez l'ouverture de session sur le routeur de votre groupe Connectez-vous à votre routeur avec clogin. Il se peut que vous ayez à répondre "oui" (yes) au premier message d'avertissement alerte, mais vous ne devriez pas avoir besoin d'entrer un mot de passe, ceci devrait être automatique. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ $ /var/lib/rancid/bin/clogin rtrX.ws.nsrc.org ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (Remplacez le X par votre no. de groupe. Par exemple, Groupe 1 = rtr1) Vous devriez voir un message du type : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ spawn ssh -c 3des -x -l cisco rtrX.ws.nsrc.org The authenticity of host 'rtrX.ws.nsrc.org (10.10.X.254)' can't be established. RSA key fingerprint is 73:f3:f0:e8:78:ab:49:1c:d9:5d:49:01:a4:e1:2a:83. Are you sure you want to continue connecting (yes/no)? Host rtrX.ws.nsrc.org added to the list of known hosts. Warning: Permanently added 'rtrX.ws.nsrc.org' (RSA) to the list of known hosts. Password: rtrX>enable Password: rtrX# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Quittez le routeur: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ rtrX# exi ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~t # 9. Initialiser le dépôt SVN pour rancid : Assurez-vous que vous êtes l'utilisateur rancid avant de continuer : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ $ id ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Si vous ne voyez pas quelque chose similaire à: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ uid=108(rancid) gid=113(rancid) groups=113(rancid) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ... ne PAS CONTINUER avant que vous ayez réussi à devenir l'utilisateur rancid. Voir l'étape 6 pour plus de détails. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ $ /usr/lib/rancid/bin/rancid-cvs ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Vous devriez obtenir ce type d'informations : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Committed revision 1. Checked out revision 1. At revision 1. A configs Adding configs Committed revision 2. A router.db Adding router.db Transmitting file data . Committed revision 3. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # La section suivante n'est valable que SI vous avez eu des problèmes cités ci-dessus Si cela ne fonctionne pas, alors il vous manque le paquet subversion, ou bien quelque chose n'a pas été correctement configuré au cours des étapes précédentes. Vous devez vérifier que subversion est installé puis, avant de lancer à nouveau la commande cvs-rancid, effectuer l'opération suivante : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ $ exit # apt-get install subversion # su - /bin/bash rancid $ cd /var/lib/rancid $ rm -rf routers $ rm -rf svn ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Maintenant, essayez d'exécuter à nouveau la commande rancid-cvs : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ $ /usr/lib/rancid/bin/rancid-cvs ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # 10. Créez router.db ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ $ editor /var/lib/rancid/routers/router.db ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Ajoutez cette ligne (PAS d'espaces au début!): ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ rtrX.ws.nsrc.org:cisco:up ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (N'oubliez pas de remplacer X comme convenu) # 11. Lancez rancid ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ $ /usr/lib/rancid/bin/rancid-run ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (Ceci devrait prendre environ 30 secondes) Lancez-le à nouveau, étant donné qu'il pourrait ne pas fonctionner correctement la première fois : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ $ /usr/lib/rancid/bin/rancid-run ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # 12. Consultez les journaux : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ $ cd /var/lib/rancid/logs $ ls -l ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ... Visualisez le contenu du/des fichier(s) : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ $ less routers.* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # 13. Regardez les configs ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ $ cd /var/lib/rancid/routers/configs $ less rtrX.ws.nsrc.org ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ... en remplaçant "X" avec le numéro de votre groupe. Si tout s'est bien déroulé, vous voyez maintenant le fichier config du routeur. # 14. Modifions maintenant une description d'interface sur le routeur : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ $ /usr/lib/rancid/bin/clogin rtrX.ws.nsrc.org ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ... en remplaçant "X" avec le numéro de votre groupe. À l'invite "rtrX#", saisissez la commande : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ rtrX# conf term ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Vous devriez voir le message suivant : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Enter configuration commands, one per line. End with CNTL/Z. rtrX(config)# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Saisissez : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ rtrX(config)# interface LoopbackXX (remplacez XX par le numéro de votre PC) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ par exemple ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ rtrX(config)# interface Loopback17 (si votre PC porte le numéro 17) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Vous obtenez l'invite suivante : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ rtrX(config-if)# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Saisissez : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ rtrX(config-if)# description rtrX(config-if)# end ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Vous obtenez maintenant l'invite suivante : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ rtrX# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Pour enregistrer la configuration en mémoire : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ rtrX# write memory ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Vous devriez voir le message suivant : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Building configuration... [OK] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Sortez ensuite en tapant : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ rtrX# exit ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Vous devriez maintenant vous retrouver à l'invite système, en tant qu'utilisateur rancid. # 15. Exécutons de nouveau rancid : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ $ /usr/lib/rancid/bin/rancid-run ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Examinez la configuration et les journaux ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ $ ls /var/lib/rancid/logs/ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # 16. Observons les différences : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ $ cd /var/lib/rancid/routers/configs $ ls -l ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Vous devriez voir tous les fichiers de config routeur ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ $ svn log rtrX.ws.nsrc.org ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (où xxx est le numéro de votre routeur) Notez les révisions. Vous devriez voir de numéros. différents tels que r5 et r7. Choisir le numéro le plus bas et le plus haut. Observez la différence entre les deux versions: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ $ svn diff -r 5:7 rtrX.ws.nsrc.org | less ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ... voyez-vous vos modifications ? Notez que l'outil en ligne de commande svn (Subversion) est utilisé pour gérer le versionnage de l'information. Si vous tapez: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ $ ls -lah ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ... vous verrez un répertoire caché appelé ".svn". Ceci contient en fait toutes les informations concernant les changements de la configuration de votre routeur, à chaque fois que vous avez lancé rancid via la commande /usr/lib/rancid/bin/rancid-run Surtout, ne JAMAIS toucher le répertoire .svn à la main! # 17. Consultez votre messagerie Nous allons maintenant quitter le shell de l'utilisateur rancid et celui de l'utilisateur root afin de redevenir utilisateur "sysadm". Ensuite on va exécuter "mutt" pour visualiser les messages que rancid a envoyés : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ $ exit # exit $ id ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ... vérifiez que vous êtes maintenant redevenu l'utilisateur "sysadm". Dans le cas contraire déconnectez-vous avant de vous reconnecter. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ $ mutt ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (Au message de sollicitation vous demandant de créer le répertoire courrier (Mail), répondez oui) Si tout se déroule comme prévu, vous devriez être en mesure de lire les messages envoyés par Rancid. Vous pouvez sélectionner un message envoyé par "rancid@pcX.ws.nsrc.org" et le visualiser pour voir à quoi cela ressemble. Notez que c'est bien votre routeur, ainsi que tout changement effectué depuis la dernière fois ou la commande rancid-run a été lancée. Maintenant, quittez mutt. (tapez une première fois 'q' pour revenir à l'index des messages, et une seconde fois pour quitter mutt) # 18. Faisons en sorte que rancid s'exécute automatiquement toutes les 30 minutes au moyen d'une tâche cron cron est un système sous UNIX qui gère l'éxécution automatique de tâches. On va repasser root: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ $ sudo -s ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Maintenant on va créer une tâche pour l'utilisateur Rancid: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # crontab -e -u rancid ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Rancid va vous demander votre éditeur favori. Ajoutez cette ligne à la fin du fichier (copier & coller) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */30 * * * * /usr/lib/rancid/bin/rancid-run ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ... puis sauvegardez et quittez. C'est tout. La commande "rancid-run" sera éxécutée automatiquement à partir de maintenant, et ce toutes les 30 minutes, tout le temps (tous les jours, semaines, mois) # 19. Ajoutez maintenant tous les autres routeurs Notez les noms de de machine des routeurs rtrX.ws.nsrc.org, où X va de 1 à 9 Mettez à jour le fichier router.db ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # su -s /bin/bash rancid $ editor /var/lib/rancid/routers/router.db ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Ajoutez dans le fichier d'autres routeurs de classe. Le résultat devrait ressembler à ce qui suit : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ rtr1.ws.nsrc.org:cisco:up rtr2.ws.nsrc.org:cisco:up rtr3.ws.nsrc.org:cisco:up rtr4.ws.nsrc.org:cisco:up rtr5.ws.nsrc.org:cisco:up rtr6.ws.nsrc.org:cisco:up rtr7.ws.nsrc.org:cisco:up rtr8.ws.nsrc.org:cisco:up rtr9.ws.nsrc.org:cisco:up ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (Notez que "cisco" signifie qu'il s'agit d'un équipement Cisco - cela indique à Rancid que nous nous attendons ici à communiquer avec un dispositif Cisco. Vous pouvez également communiquer avec un dispositif Juniper, HP...) # 20. Exécutez de nouveau rancid : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ $ /usr/lib/rancid/bin/rancid-run ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (Ceci devrait maintenant prendre une minute ou plus, soyez patient) # 21. Consultez les journaux : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ $ cd /var/lib/rancid/logs $ ls -l ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ... Choisissez le fichier le plus récent et affichez-le ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ $ less routers.YYYYMMDD.HHMMSS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C'est à dire le dernier fichier listé par la commande "ls -l" # 22. Regardez les configs ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ $ cd /var/lib/rancid/routers/configs $ more *.ws.nsrc.org ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Utiliser la barre ESPACE pour défiler le contenu de chaque fichier. Ou alors, on peut faire ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ $ less *.ws.nsrc.org ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Puis, ESPACE pour faire défiler, et ":n" pour passer au fichier suivant. Souvenez-vous, dans les deux cas, vous pouvez appuyer sur "q" pour quitter à tout moment. Si tout s'est bien déroulé, vous voyez les configs de TOUS les routeurs. # 23. Exécutez de nouveau RANCID juste au cas où quelqu'un aurait modifié la configuration sur le routeur ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ $ /usr/lib/rancid/bin/rancid-run ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (patience) # 24. Essayez clogin : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ $ /usr/lib/rancid/bin/clogin -c "show clock" rtrX.ws.nsrc.org ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ... où "X" est le numéro de votre groupe. Que remarquez-vous ? Encore mieux, voici la puissance d'un simple script utilisé pour effectuer des changements sur plusieurs machines rapidement ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ $ editor /tmp/newuser ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ... dans ce fichier, ajoutez les commandes: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ configure terminal username NewUser secret 0 NewPassword exit write ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Sauvez le fichier, et tapez les commandes suivantes: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ $ for r in 1 2 3 4 Votre invite va se transformer en ">". Continuez et tapez: > do > /var/lib/rancid/bin/clogin -x /tmp/newuser rtr$r.ws.nsrc.org > done ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Votre invite va redevenir "$" et la commande rancid clogin va s'éxécuter et lancer les commandes que vous avez tapés ci-dessus sur les routeurs rtr1, rtr2, rtr3, etc. C'est un simple exemple de script shell sous Linux, mais très puissant. Q: Comment vérifier que la commande a été éxécutée correctement ? Indice: "show run | inc" A: Connectez-vous à rtr1, 2, 3 et 4 (si actif). Taper "enable" et ensuite "show run | inc username" pour vérifier que l'utilisateur NewUser existe désormais. Exit pour quitter chaque routeur. Évidemment, on peut automatiser ceci comme on l'a fait dans l'exemple ci-dessus. # 25. Ajoutez le dépôt RANCID SVN dans SVNWeb Si vous êtes toujours logué en tant qu'utilisateur rancid, reprenez l'identité de root ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ $ exit # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Installez SVNWeb : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # apt-get install websvn ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * Répondez Yes à la question si vous voulez configurer WebSVN maintenant, et appuyer sur ENTREE * Faites OK pour la question suivante concernant la prise en charge de différents serveurs web, et appuyer sur ENTREE * Quand on vous pose la question du "svn parent repositories", remplacer le chemin par: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /var/lib/rancid/svn ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Choisir OK et appuyer sur ENTREE. Faire la même chose quand on vous demande le chemin pour "svn repositories". C'est à dire, mettre le chemin: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /var/lib/rancid/svn ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (effacer ce qui est y était sur la ligne avant) Choisir OK et appuyer sur ENTREE * Faites OK pour l'écran suivant relatif aux autorisations, et appuyer sur ENTREE # 26. Corriger les permissions. Le serveur Web doit pouvoir lire le contenu du dossier svn ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # chgrp -R www-data /var/lib/rancid/svn # chmod g+w -R /var/lib/rancid/svn ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # 27. Parcourez les fichiers avec votre navigateur web http://pcX.ws.nsrc.org/websvn Parcourez les fichiers du répertoire "routers/configs". Tous vos fichiers de configuration de routeur se trouvent ici. # 28. Examinez les révisions WebSVN vous permet de voire facilement les changements entre les versions. * Naviguer sur http://pcX.ws.nsrc.org/websvn de nouveau, cliquer sur "routers", puis "configs" * Cliquer sur le fichier avec le nom du routeur (rtrX.ws.nsrc.org). Vous allez avoir un nouvel écran * Cliquer sur "Compare with Previous" en haut de l'écran. * Vous devriez voir les changements surlignés en couleur. * Cliquer sur "REPOS 1" pour revenir en arrière à la page principale WebSVN: * Cliquer sur "routers/" sous "Path" * Cliquer sur "configs/" * Sélectionnez deux des routeurs qui sont côte à côte, par exemple: rtr1 et rtr2, rtr3 et rtr4 * Cliquer sur "Compare Paths" Ceci vous montrera les différences de configuration entre deux routeurs distincts. WebSVN est pratique pour voir à l'aide d'une interface graphique, la différence entre les différentes version d'un fichier de configuration. Note: c'est possiblement un trou de sécurité, donc il vaut mieux restreindre l'accès à http://host/websvn en utilisant des mots de passe (et SSL), ou avec des listes d'accès. # 29 Facultatif: Récupérer les configurations avec un utilisateur `rancid` non-privilégié Dans un environnement en production, on voudra probablement ajouter un utilisateur `rancid` sur les équipements, qui n'a pas de droits de configuration, mais qui a le droit d'éxécuter un `show running-config`. Une façon de faire ceci, est d'ajouter un utilisateur (en mode configuration): ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ rtrX# conf term Enter configuration commands, one per line. End with CNTL/Z. rtrX(config)# username rancid privilege 4 secret password rtrX(config)# privilege exec level 4 show running-config view full ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Ceci crée un utilisateur `rancid` avec un niveau de privilège 4. Sur la ligne suivante, on autorise cet utilisateur à éxécuter `show running-config` Vous aurez également besoin d'ajouter cet utilisateur et le mot de passe au fichier .cloginrc You also need to add the username and password to your .cloginrc ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ add user *.ws.nsrc.org rancid add password *.ws.nsrc.org password add autoenable *.ws.nsrc.org 1 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Le `autoenable` signifie que l'utilisateur sera directement au niveau de privilège adéquat après s'être logé et n'aura donc pas besoin de passer en mode enable pour faire `show running-config`. Note: essayez de voir la manpage `clogin` pour voir comment faire pour indiquer un autre utilisateur (par exemple: cisco) quand on utilise clogin de manière interactive, pour faire des changements avec -c ou -x (voir plus haut). Plus d'info à: http://www.toms-blog.com/backup-cisco-config-with-rancid-and-an-un-priviledged-user/