Définition de rancid :
Rancid est un logiciel open-source basé sur cvs (gestion de version) permettant de sauvegarder les configurations de vos équipements réseaux et en conserver les differentes versions. Il est compatible avec un grand nombre d'équipements et de marque tel que cisco, nortel, juniper....
Grâce à cvsweb, nous pouvons visualiser les différentes confs via l'http.
Pré-requis :
Installer les packages nécessaire à l'installation de rancid sur redhat linux :
* = fourni sur le cd rhel
Pour installer les fichiers rpm fournis sur le cd de rhel, effectuer cette commande :
rpm -Uvh package.rpm
Installation de CVSWEB :
Vous pouvez télécharger cvsweb en tar.gz sur http://www.freebsd.org/projects/cvsweb.html
décompresser l'archive :
tar xvzf cvsweb-3.0.6.tar.gz
Se placer dans le repertoire contenant les fichiers décompréssés.
Copier cvsweb.conf dans /etc
cp -p cvsweb.conf /etc/
Copier le script cgi dans /var/www/cgi-bin/ et le renommer en cvsweb
cp -p cvsweb.cgi /var/www/cgi-bin/cvsweb
Créer le répertoire /var/www/html/cvsweb qui contiendra les images et les css :
mkdir /var/www/html/cvsweb
Copier les répertoires icons et css dans /var/www/html/
cp -Rp icons /var/www/html/cvsweb/
cp -Rp css /var/www/html/cvsweb/
Voici les droits que j'ai pour les differents répertoires :
[root@admin1 cvsweb-3.0.6]# ls -l /var/www | grep cvsweb
drwxr-xr-x 4 root root 4096 ao� 13 18:38 cvsweb[root@admin1 cvsweb-3.0.6]# ls -l /www/cvsweb
drwxr-xr-x 2 root root 4096 jui 20 2004 css
drwxr-xr-x 2 root root 4096 ao� 1 2003 icons[root@admin1 cvsweb-3.0.6]# ls -l /var/www/cgi-bin/ | grep cvsweb
-rwxr-xr-x 1 root root 126573 ao� 13 18:47 cvsweb[root@admin1 cvsweb-3.0.6]# ls -l /etc/cvsweb | grep cvsweb
-rw-r-r- 1 root root 23044 ao� 14 08:35 cvsweb.conf
Modifier le fichier cvsweb.conf pour avoir ces chemins :
my $iconsdir = '/cvsweb/icons';
$cssurl = '/cvsweb/css/cvsweb.css';
Modifier le fichier http.conf pour créer un virtualhost special pour cvsweb :
NameVirtualHost *
<VirtualHost *>
DocumentRoot /var/www/html/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>ScriptAlias /cgi-bin/ /var/www/cgi-bin/
<Directory " /var/www/cgi-bin ">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
CustomLog /var/log/httpd/rancid_access.log common
ErrorLog /var/log/httpd/rancid_error.log
</VirtualHost>
Recharger le service httpd après toutes modification d'un de ses fichiers de configuration :
service httpd graceful
Maintenant vous pouvez tester la configuration en allant sur http://127.0.0.1/cvsweb/
Installation de rancid :
Créer un utilisateur du nom de rancid :
useradd -d /home/rancid rancid
passwd rancid
Spécifiez un mot de passe.
Télécharger rancid à cet endroit : http://www.shrubbery.net/rancid/
Décomprésser l'archive :
tar xvzf rancid-2.3.1.tar.gz
Aller dans le répertoire décompressé et faire :
./configure -prefix=/home/rancid
make install
Ainsi, nous installons rancid.
Une fois l'installation effectué, nous devons modifier les droits sur l'arborescence de rancid.
Pour cela, vous devez effectuer cette commande :
chown -R rancid.apache /home/rancid
chmod 770 /home/rancid
Configuration de rancid :
Création de groupe d'équipement :
Nous allons maintenant créer des groupes d'équipements. Il vous faudra créer autant de groupe que de site que vous administré pour une meilleur visibilité sur cvsweb. Il vous faut créé au moins un groupe. Pour cela, editez le fichier de configuration /home/rancid/etc/rancid.conf et ajoutez :
LIST_OF_GROUPS= "Paris "
Les noms de groupes doivent être séparé par un espace :
LIST_OF_GROUPS= "Paris Lyon Marseille "
Configuration de l'accès aux équipements :
Il est nécessaire de configurer un fichier appelé " .cloginrc " contenant les mot de passe nécessaire pour accéder aux équipements réseaux.
Pour le créer, il faut renommer le fichier " cloginrc.sample " en " .cloginrc ".
cp /home/rancid/share/rancid/cloginrc.sample /home/rancid/.cloginrc
Ensuite,Nous éditons le nouveau fichier " .cloginrc " où on peut trouver des exemples de
syntaxe basées sur le type d'équipement (Cisco, Juniper, etc...) et de connexion
(telnet, ssh, ...)
Dans notre exemple, nous allons utiliser telnet pour accéder à un switch Cisco ayant une
adresse IP de 192.168.26.254
Editez /home/rancid/.cloginrc.
Mettez des commentaires sur chaque ligne qui ne l'ai pas (mettre # devant chaque ligne). Puis ajoutez cette ligne :
add password 192.168.26.254 {vty_password} {enable_password}
Cela signifie que pour l'équipement 192.168.26.254 le mot de passe telnet sera vty_password et le mot de passe enable sera enable_password.
Vous pouvez voir des exemples de configuration dans le fichier .cloginrc.
Voici un autre exemple :
Si vous avez un switch Cisco sur lequel vous devez vous authentifier avec un nom d'utilisateur et un mot de passe et qu'en rentrant votre compte d'accès, vous arrivez directement en mode enable, voici la configuration à ajouter :
add password 192.168.0.254 {motdepasse}
add user 192.168.0.254 admin
add autoenable 192.168.0.254 1
add userprompt 192.168.0.254 {" Username: "}
autoenable à la valeur 1 signifie qu'après l'authentification rancid sera directement en mode enable.
userprompt correspond à ce que l'équipement affiche lors d'une demande de connexion telnet.
Vérifier bien que le fichier .cloginrc est accessible seulement par l'utilisateur rancid car il contient les mots de passe en claire :
chmod 600 /home/rancid/.cloginrc
chown -R rancid:rancid /home/rancid
Création de l'arborescence CVS :
su rancid
rancid@linux#/home/rancid/bin/rancid-cvs
Cette commande va générer automatiquement une arborescence pour le CVS à partir de votre fichier rancid.conf. Celle-ci est construite dans /home/rancid/var/.
Voici un exemple d'arborescence générée :
[rancid@linux PARIS]$ ls -l
total 8
drwxr-x- 3 rancid rancid 4096 ao� 14 13:46 configs
drwxr-x- 2 rancid rancid 4096 ao� 14 13:46 CVS
-rw-r-- 1 rancid rancid 0 ao� 14 13:46 router.db
-rw-r-- 1 rancid rancid 0 ao� 14 14:10 routers.all
-rw-r-- 1 rancid rancid 0 ao� 14 14:10 routers.down
-rw-r-- 1 rancid rancid 0 ao� 14 14:10 routers.up
Ajoutons un équipement dans un groupe :
editons le fichier router.db situé dans home/rancid/var/ "group_name "/router.db
et ajoutons nos équipements de cette façon :
192.168.0.254:cisco:up
Vous pouvez consulter le man de router.db à cette adresse : http://www.shrubbery.net/rancid/man/router.db.5.html
A présent, nous pouvons tester la connection à l'équipement :
[rancid@linux]$ /home/rancid/bin/clogin 192.168.0.254
192.168.0.254
spawn telnet 192.168.0.254
Trying 192.168.0.254...
Connected to 192.168.0.254 (192.168.0.254).
Escape character is '^]'.
C
******************************************
* Unauthorized access prohibited *
******************************************User Access Verification
Username: admin
Password:
router#
Si vous n'avez pas un résultat positif, regardez les exemples de configurations dans le fichier .cloginrc
Démarrons rancid avec cette commande :
rancid@linux#/home/rancid/bin/rancid-run
Vous pouvez vérifier les journaux (logs) dans le répertoire
/home/rancid/var/logs/ .
Configuration de cvsweb pour rancid :
Modifier le fichier de configuration de cvsweb en remplacant :
@CVSrepositories = (
'local' => ['Local Repository', '/var/cvs'],
# 'freebsd' => ['FreeBSD', '/var/ncvs'],
# 'openbsd' => ['OpenBSD', '/var/ncvs'],
# 'netbsd' => ['NetBSD', '/var/ncvs'],
# 'ruby' => ['Ruby', '/var/anoncvs/ruby'],
);
par :
@CVSrepositories = (
'My_Config' => ['My Config', '/home/rancid/var/CVS'],
# 'local' => ['Local Repository', '/var/cvs'],
# 'freebsd' => ['FreeBSD', '/var/ncvs'],
# 'openbsd' => ['OpenBSD', '/var/ncvs'],
# 'netbsd' => ['NetBSD', '/var/ncvs'],
# 'ruby' => ['Ruby', '/var/anoncvs/ruby'],
);
Puis allez sur :
http://127.0.0.1/cgi-bin/cvsweb
Permettre à rancid de nous envoyer des emails
Si ce n'est pas déjà le cas, installer postfix. Par défaut, sur rhel, le relais smtp est sendmail. Personnalement, je préfère postfix. Il est fourni en rpm sur le cd de rhel. Installez le avec la commande rpm -Uvh postfix-*.rpm et profitez-en pour installer system-switch-mail.
Une fois ces deux packages installés, editez le fichier /etc/postfix/main.cf et modifier :
relayhost = [votre_serveur_de_messagerie]
puis redémarrez postfix:
service postfix restart
Lancer la commande :
system-switch-mail
Selectionnez postfix comme relais smtp par defaut.
Editez le fichier /etc/aliases et ajouter :
#utilisateur rancid
rancid-PARIS: [email protected]rancid-admin-PARIS: [email protected]
où PARIS et le nom d'un de vos groupe.
Mettre à jour les alias en tapant :
newaliases
Les logs de postfix se situe dans /var/log/maillog
Automatisation du check de rancid
Il faut ajouter la commande permettant à rancid de vérifier les nouvelles configurations dans le crontab de l'utilisateur rancid :
crontab -e -u rancid
# Veuillez, svp, lancer le script rancid-run tous les jours Ã| 00:30
30 00 * * * /home/rancid/bin/rancid-run
# supprime les anciens logs tous les premiers jours de chaque mois Ã| 00:15
15 00 1 * * find /home/rancid/var/logs -type f -mtime +30 -exec rm {} ;
Ici rancid sera lancé à 00h30. La deuxième commande permet de supprimer les fichiers logs de rancid qui datent de plus de 30jours. Donc à ajouter obligatoirement.
Allez, Bon courage pour l'ajout de vos équipements
Auteur de ce Blog, je partage quelques unes de mes notes que je juge utile à vous comme à moi. Je suis très heureux de voir que mon blog a de plus en plus d'affluence. Merci à vous!