7. Introduction à la métrologie avec mrtg

Il est impossible de prétendre faire de la gestion d'équipement réseau sans parler de métrologie. Qui dit métrologie, dit système de gestion intégré ou Network Management System (NMS). Ces systèmes intégrés sont trop souvent des «usines à gaz» au coût d'installation et d'administration prohibitif (on n'ose même plus parler du coût de licence !). L'optique de ce document étant de présenter des services simples à mettre en œuvre, mrtg est l'outil GNU/Linux le plus répandu qui convient bien à cette présentation.

mrtg s'appuie sur le protocole SNMP (Simple Network Management Protocol) dont la première version est décrite dans le document RFC1157 Simple Network Management Protocol (SNMP). Ce protocole permet à mrtg d'interroger la base d'informations (MIB ou Management Information Base) d'un équipement capable de traiter les messages SNMP. À part pour les équipements de très bas de gamme, tous les constructeurs d'équipements réseau fournissent des bases d'informations MIB pour leurs lignes de produits.

Le principe de fonctionnement est relativement simple : le programme mrtg est exécuté périodiquement pour interroger les bases d'informations MIB des équipements en fonction d'un fichier de configuration. Le résultat de ces interrogation sert à construire des images qui sont rangées dans un répertoire de page Web.

7.1. Installation et configuration du service mrtg

Au niveau de chaque équipement, le service snmp doit être activé et la chaîne de caractères de définition de communauté paramétrée. Voici un exemple de configuration IOS ; toujours pour un commutateur 2950 :

snmp-server trap-source Vlan21
snmp-server enable traps syslog
no snmp-server community public ro
!
no access-list 51
access-list 51 permit 192.168.2.12
snmp-server community m3tr0l0g13 ro 513

1

Les messages SNMP émis par l'équipement ont une adresse IP source unique : celle de l'interface Vlan2.

2

La liste de contrôle d'accès numéro 51 n'autorise que l'adresse IP 192.168.2.1 à interroger la base d'informations MIB.

3

La définition de communauté m3tr0l0g13 n'a qu'un accès en lecture seule.

Côté système GNU/Linux, on a déjà indiqué dans la Section 1.3, « Logiciels utilisés », que seuls les paquets de la distribution Debian GNU/Linux sont présentés ici. L'installation de mrtg et du serveur web de visualisation apache se résume donc à l'instruction suivante :

# apt-get install mrtg apache

L'installation des paquets Debian GNU/Linux couvre toutes les opérations de configuration de base :

  • Création du répertoire /var/www/mrtg/ et copie des icônes de base des pages HTML produites par mrtg.

  • Planification de l'exécution périodique de la commande mrtg via le service cron avec le fichier /etc/cron.d/mrtg.

  • L'URL de consultation des résultats est : http://192.168.2.1/mrtg/.

7.2. Exemple d'utilisation sur un commutateur 2950

Pour chaque équipement supervisé, il faut créer ou compléter un fichier de configuration puis construire l'index de page web correspondant.

La configuration est obtenue à l'aide de la commande cfgmaker. Voici l'exemple de la création d'un nouveau fichier de configuration pour l'équipement paramétré ci-avant (Voir Section 7.1, « Installation et configuration du service mrtg ») :

# cfgmaker m3tr0l0g13@192.168.2.2 >mrtg.cfg
# mv /etc/mrtg.cfg /etc/mrtg.cfg.dpkg-dist
# cp mrtg.cfg /etc

Une fois le fichier de configuration créé, il est possible de l'éditer pour l'adapter à ses propres besoins. La modification la plus classique consiste à renommer et|ou renuméroter les interfaces.

La construction de l'index se fait à l'aide de la commande indexmaker. Voici la suite du traitement de l'exemple du commutateur 2950 :

# indexmaker --output /var/www/mrtg/index.html /etc/mrtg.cfg

Il est aussi possible d'éditer ce fichier d'index pour l'adapter à ses besoins. Il est cependant préférable de faire appel aux options de la commande indexmaker. Ces options sont fournies dans les pages de manuels : man indexmaker.

Le résultat obtenu est de la forme suivante pour la page d'index principale :

Pour une interface, le résultat se présente sous la forme suivante :

7.3. Encore un soupçon de sécurité

Comme tous les autres services présentés ci-avant, le protocole SNMP ne fait pas exception. Ce n'est pas un modèle en matière de sécurité. Il existe plusieurs versions de ce protocole : SNMPv1 de 1990, SNMPv2c de 1996 a 2002 et SNMPv3 à partir de 2000. Plus ces versions ont évolué, plus les fonctions de sécurité se sont étoffées. Les équipements réseau actuels intègrent le plus souvent la version SNMPv2c qui est très limitée.

On se retrouve donc dans une situation identique à celle des autres services présentés. Il est souhaitable de bien encadrer l'utilisation du protocole. On configure le contrôle d'accès avec une règle de filtrage réseau par équipement.

Voici un extrait du fichier /var/lib/iptables/active utilisé par le script d'initialisation du paquet iptables.

*filter
:INPUT DROP [0:0]
<snip/>
-A INPUT -s 192.168.2.2 -p udp --dport 162 -m conntrack --ctstate NEW -j ACCEPT
<snip/>

Pour un exemple complet, voir Annexe A, Configuration type du filtrage réseau.