Gestion et surveillance de réseau Utilisation de 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 "RTR-GW>" 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 postfix (le système de messagerie que nous utilisons) $ sudo bash # apt-get install postfix Il est possible qu'un message d'invite apparaisse lors de l'installation de Postfix, sélectionnez "Internet Site" A l'invite suivante, entrez votre nom d'hôte (pcxx.ws.nsrc.org par exemple) # service postfix status Vérifiez également que le client de messagerie 'mutt' est installé, ainsi que telnet et subversion : # apt-get install mutt telnet subversion 3. Créez un alias pour l'utilisateur rancid dans le fichier /etc/aliases # vi /etc/aliases rancid-all: sysadm rancid-admin-all: sysadm Enregistrez le fichier, puis exécutez : # newaliases 4. Installez l'application Rancid proprement dite # apt-get install rancid Un message d'avertissement "Really continue?" (voulez-vous vraiment continuer) s'affichera. Sélectionnez Oui. 5. Modifiez /etc/rancid/rancid.conf # vi /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="all" (Sans "#" en début de ligne) En outre nous voulons utiliser Subversion, et non CVS : Trouvez la ligne contenant le paramètre RCSSYS, et modifiez-la comme suit : RCSSYS=svn; export RCSSYS Et la ligne contenant CVSROOT : CVSROOT=$BASEDIR/SVN; export CSVROOT 6. Devenez utilisateur rancid À l'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 obtenir ce type d'information (les chiffres peuvent être différents): uid=104(rancid) gid=109(rancid) groups=109(rancid) ***** IF YOU ARE NOT USER RANCID NOW, do NOT continue ****** (Si vous n'êtes pas actuellement utilisateur rancid, ne continuez pas) 7. Créez /var/lib/rancid/.cloginrc $ vi /var/lib/rancid/.cloginrc Ajoutez les lignes suivantes: add user 10.10.* cisco add password 10.10.* cisco cisco (Le premier "cisco" correspond au nom d'utilisateur, le deuxième et le troisième "cisco" sont le mot de passe et le mot de passe enable utilisé pour se connecter à votre routeur. L'astérisque dans l'IP signifie que Rancid va essayer d'utiliser ce nom d'utilisateur et ce mot de passe pour tous les routeurs du réseau 10.10.) Protégez maintenant ce fichier afin qu'il ne puisse pas être lu par d'autres utilisateurs : $ chmod 600 /var/lib/rancid/.cloginrc En réalité, vous voulez créer un utilisateur RANCID supplémentaire sur le réseau Cisco, doté de droits limités. 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 10.10.0.X (Remplacez le x par votre n° de groupe. - 1 - 10) Vous devriez voir s'afficher un message du type : spawn ssh -c 3des -x -l cisco 10.10.0.X The authenticity of host '10.10.0.X (10.10.0.X)' 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 10.10.0.X added to the list of known hosts. Warning: Permanently added '10.10.0.X' (RSA) to the list of known hosts. Password: rtr2>enable Password: rtr2# Quittez le routeur rtr2#exit 9. Initialiser le dépôt SVN pour rancid : $ /usr/lib/rancid/bin/rancid-cvs Vous devriez obtenir ce type d'information : 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. ***** Si vous avez des problèmes ****** 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 all $ rm -rf SVN Maintenant, essayez d'exécuter à nouveau la commande rancid-cvs : $ /usr/lib/rancid/bin/rancid-cvs ******************************** 10. Créez router.db $ vi /var/lib/rancid/all/router.db Ajoutez cette ligne : 10.10.0.x:cisco:up (N'oubliez pas de remplacer les xxx) 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 all.* 13. Regardez les configs $ cd /var/lib/rancid/all/configs $ less 10.10.0.x 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 10.10.0.x À 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 rtr5(config)# interface Loopback17 (si votre PC porte le numéro 17) Vous obtenez l'invite suivante : rtr2(config-if)# Saisissez : rtr2(config-if)# description rtr2(config-if)# end Vous obtenez maintenant l'invite suivante : rtr2# Pour enregistrer la configuration en mémoire : rtr2# write memory Vous devriez voir le message suivant : Building configuration... [OK] Sortez ensuite en tapant : exit 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/all/configs $ ls -l Vous devriez voir tous les fichiers de config routeur $ svn log 10.10.0.x (où xxx est l'adresse IP de votre routeur, .1 ou .2 ou .3) Notez les révisions et observez la différence entre les deux versions : $ svn diff -r 5:6 10.10.0.x | less ... voyez-vous vos modifications ? Ou celles d'autres utilisateurs en même temps ? 17. Consultez votre messagerie Nous allons maintenant quitter ces shells afin de redevenir utilisateur "sysadm" et 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. (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) $ sudo bash # crontab -e -u rancid Rancid va vous demander votre éditeur favori. Ajoutez cette ligne : */30 * * * * /usr/lib/rancid/bin/rancid-run ... puis sauvegardez et quittez 19. Ajoutez maintenant tous les autres routeurs Notez les adresses IP des routeurs 10.10.0.x où x est compris entre 1 et 8 Mettez à jour le fichier router.db # su -s /bin/bash rancid $ vi /var/lib/rancid/all/router.db Ajoutez dans le fichier d'autres routeurs de classe. Le résultat devrait ressembler à ce qui suit : 10.10.0.1:cisco:up 10.10.0.2:cisco:up ... jusqu'à... 10.10.0.10: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 all.YYYYMMDD.HHMMSS 22. Regardez les configs $ cd /var/lib/rancid/all/configs $ more 10.10.* 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) 23. Essayez clogin : $ /usr/lib/rancid/bin/clogin -c "show clock" 10.10.0.x Que remarquez-vous ? Encore mieux: $ editor /tmp/config ... dans ce fichier, ajoutez les commandes: configure terminal username afnog secret 0 afn0g exit write Sauvez le fichier, et tapez les commandes suivantes: $ for r in 1 2 3 4 do /var/lib/rancid/bin/clogin -x /tmp/config 10.10.0.$r done ... observez! Que s'est-il passé ? 24. 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 le configurer maintenant * Faites OK pour la question suivante concernant la prise en charge de différents serveurs web * Créez deux fois le répertoire /var/lib/rancid/SVN lorsque cela vous sera demandé dans les écrans suivants. Veillez à ce que "SVN" soit en majuscules. * Faites OK pour l'écran suivant relatif aux autorisations 25. Définissez les permissions. Le serveur Web doit pouvoir lire l'archive SVN # chgrp -R www-data /var/lib/rancid/SVN # chmod g+w -R /var/lib/rancid/SVN 26. Parcourez les fichiers avec votre navigateur web http://pcXXX.ws.nsrc.org/websvn Parcourez les fichiers du répertoire "all/configs". Tous vos fichiers de configuration de routeur se trouvent ici. 27. Examinez les révisions Si vous voulez juxtaposer différentes révisions afin de les comparer, vous pouvez également le faire avec WebSVN. Cependant les différences entre les révisions ne sont pas visibles dans le paquet livré avec Ubuntu 10.04 LTS, problème résolu dans la dernière version Corrigez ce bug avec un simple fichier correctif : # apt-get install wget patch # cd /usr/share/websvn/include # wget http://noc.ws.nsrc.org/downloads/patch-svn # patch < patch-svn Vous pouvez désormais également afficher les différences entre les révisions de fichier avec WebSVN. Accédez de nouveau à http://pcXXX.ws.nsrc.org/websvn, allez à "all configs" Sélectionnez le fichier de votre routeur (10.10.0.x) et cliquez sur "Compare with Previous" (comparer avec version précédente) Vous devriez maintenant voir les dernières modifications côte-à-côte.