Vous êtes sur la page 1sur 30

Gestion des quipements rseau avec GNU/Linux

Philippe Latu
philippe.latu(at)linux-france.org
http://www.linux-france.org/prj/inetdoc/
Historique des versions $Revision: 1429 $ $Date: 2009-10-28 22:55:30 +0100 (mer. 28 oct. 2009) $ $Author: latu $

Nouvelle dition de la section sur le service TFTP avec tftpd-hpa Rsum Cet article prsente les principaux modes de gestion d'quipements rseau (routeurs, commutateurs, points d'accs, etc.) partir d'un systme GNU/Linux.

Table des matires


1. Copyright et Licence .............................................................................................................................. 3 1.1. Mta-information ........................................................................................................................ 3 1.2. quipements tests ...................................................................................................................... 3 1.3. Logiciels utiliss ......................................................................................................................... 3 2. Scurit et architecture ........................................................................................................................... 4 2.1. Outils GNU/Linux ....................................................................................................................... 5 3. Accs la console ................................................................................................................................. 5 3.1. Ports srie .................................................................................................................................. 6 3.2. Administration des accs ............................................................................................................. 6 3.3. Installation et configuration par dfaut de minicom ......................................................................... 7 3.3.1. Paramtres du port srie .................................................................................................... 7 3.3.2. Fichier de configuration par dfaut ..................................................................................... 7 3.4. Configuration utilisateur .............................................................................................................. 8 3.5. Exemples d'utilisation de minicom ................................................................................................ 9 3.5.1. Squences Break .............................................................................................................. 9 3.5.2. Transfert d'une image systme via xmodem ....................................................................... 10 4. Echanges avec le protocole TFTP .......................................................................................................... 12 4.1. Installation et configuration du service tftpd ................................................................................. 12 4.2. Exemples d'utilisation du service tftpd ......................................................................................... 16 4.2.1. Mise jour systme d'un routeur Cisco 2851 ..................................................................... 16 4.2.2. Mise jour systme d'un commutateur Cisco 2950 ............................................................. 17 4.2.3. Sauvegarde de la configuration d'un quipement ................................................................. 17 4.2.4. Mise jour de la configuration d'un quipement ................................................................. 17 4.3. Un soupon de scurit .............................................................................................................. 18 5. Collecte des journaux ........................................................................................................................... 19 5.1. Installation et configuration du service syslog ............................................................................... 19 5.2. Exemple d'utilisation du service syslog ........................................................................................ 19 5.3. Utilisation de syslog-ng ............................................................................................................. 20 5.4. Traitement des journaux ............................................................................................................. 21 5.5. Un soupon de scurit .............................................................................................................. 21 6. Synchronisation des horloges avec le protocole NTP ................................................................................ 23 6.1. Installation et configuration du service ntp ................................................................................... 23 6.2. Validation de la configuration ntp ............................................................................................... 23 6.3. Encore un soupon de scurit .................................................................................................... 23 7. Introduction la mtrologie avec mrtg ................................................................................................... 25 7.1. Installation et configuration du service mrtg ................................................................................. 25 7.2. Exemple d'utilisation sur un commutateur 2950 ............................................................................ 25

Gestion des quipements rseau avec GNU/Linux $Revision: 1429 $

Gestion des quipements rseau avec GNU/Linux 7.3. Encore un soupon de scurit .................................................................................................... 26 8. Pour aller plus loin ! ............................................................................................................................ 28 A. Configuration type du filtrage rseau ..................................................................................................... 29

Gestion des quipements rseau avec GNU/Linux $Revision: 1429 $

Gestion des quipements rseau avec GNU/Linux

1. Copyright et Licence
Copyright (c) 2000,2009 Philippe Latu. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". Copyright (c) 2000,2009 Philippe Latu. Permission est accorde de copier, distribuer et/ou modifier ce document selon les termes de la Licence de Documentation Libre GNU (GNU Free Documentation License), version 1.2 ou toute version ultrieure publie par la Free Software Foundation ; sans Sections Invariables ; sans Texte de Premire de Couverture, et sans Texte de Quatrime de Couverture. Une copie de la prsente Licence est incluse dans la section intitule Licence de Documentation Libre GNU .

1.1. Mta-information
Cet article est crit avec DocBook1 XML sur un systme Debian GNU/Linux2. Il est disponible en version imprimable aux formats PDF et Postscript : devmgmt.pdf3|devmgmt.ps.gz4.

1.2. quipements tests


Tous les tests prsents dans cet article sont effectus sur des quipements Cisco. Cela ne signifie pas que ces quipements sont les seuls tre grs de cette faon. Bien au contraire ! Les outils de gestion dcrits sont utilisables avec n'importe quel quipement offrant la fonctionnalit tudie.

1.3. Logiciels utiliss


Toutes les commandes utilises dans ce document ne sont pas spcifiques une version particulire des systmes UNIX ou GNU/Linux. Comme la distribution Debian GNU/Linux est utilise pour l'ensemble des supports du projet inetdoc.LINUX, voici une liste des paquets contenant les commandes ncessaires : minicom - friendly menu driven serial communication program. lrzsz - Tools for zmodem/xmodem/ymodem file transfer. tftpd-hpa - HPA's tftp server. sysklogd - System Logging Daemon. syslog-ng - Next generation logging daemon. logcheck - Mails anomalies in the system logfiles to the administrator. ntp - Network Time Protocol: daemon for simple systems. mrtg - multi router traffic grapher.

1 2

http://www.docbook.org http://www.debian.org 3 http://www.linux-france.org/prj/inetdoc/telechargement/devmgmt.pdf 4 http://www.linux-france.org/prj/inetdoc/telechargement/devmgmt.ps.gz

Gestion des quipements rseau avec GNU/Linux $Revision: 1429 $

Gestion des quipements rseau avec GNU/Linux

2. Scurit et architecture
Par dfinition, la scurit d'un systme d'information est une chane de fonctions dont la rsistance est gale celle du maillon le plus faible. La thmatique de cet article peut tre considre comme une fonction de scurit. En effet, il est essentiel d'avoir un accs sr et continu aux quipements d'interconnexion et|ou d'tre capable de redmarrer avec des jeux de configurations fiables en cas de dfaut. L'objet de cet article n'est pas de dvelopper en dtails les aspects scurit de la gestion des quipements rseau. Pour autant, on peut essayer d'noncer la rgle d'or de la scurisation des quipements partir l'expression consacre en anglais : toutes les oprations de gestion des quipements doivent s'effectuer hors de la bande passante utilisateur. En anglais, on retrouve trs frquemment l'acronyme OOB pour Out Of Band management. Dans la conception d'une architecture d'interconnexion rseau moderne, on doit systmatiquement prvoir un primtre ddi la gestion de l'infrastructure. Les contours d'un tel primtre varient en fonction du contexte. minima, ce primtre peut tre constitu d'un VLAN pour un commutateur unique. Ds que le nombre des quipements s'toffe un peu on doit disposer d'un rseau IP spcifique et de services complets : SSH, TFTP, SysLog, NTP, SNMP, DNS, WWW, etc. Voici un exemple d'architecture type dans laquelle les signes ',-<' matrialisent les accs de gestion sur les quipements :
,-< pare-feu _V_____ .--. ,-< / \ (_______) | X|,-< __V________ / /______ | Internet . . .|__|routeur|__| X|__ |_=_=_=_=_=_/ /_=_=_=_| \_ . . . . __/ (_______) | X| `----' | / / | |\__ __/ ,-< -----| ,-< |primtre | \___/ __V________ | __V______ |accs .--' |_=_=_=_=_=_| | |_=_=_=_=_|| |..... | | primtre | | '--' .------,~ .--.| | services | |..... | mgmt |' | .|, `------------' .------,~ | || .--| =| |client|' \------ / | .| | _________ | ||--,~ ======/\ .--| -----|_=_=_=_=_| \------ /nt|' console \ | .| | primtre| ======/ ||--,~ \ | -----gestion| \------ /nt|' ___\ | | .--.| ======/ || \ -----,-< | .|, \------ / \ _V_____ =|services ======/ \ ligne spcialise (_______) |gestion des \________________________|routeur|--- quipements (_______) _/ \__ ___/ __ \_

On retrouve ici les deux grandes catgories d'accs pour la gestion des quipements hors de la bande passante utilisateur. Ligne spcialise L'utilisation d'une ligne spcialise est gnralement prconise pour obtenir un accs physique indpendant l'infrastructure moindre cot. Une ligne spcialise prsente une scurit intrinsque puisque le canal de communication est ddi et la limitation du dbit ne pose pas de problme puisque les oprations de gestion des quipements ne consomment que trs peu de bande passante. Cette solution est gnralement propose dans les offres d'hbergements externaliss. Rseau priv virtuel Dans le cas o l'on ne dispose pas d'une deuxime voie d'accs physique l'infrastructure, l'utilisation d'un rseau priv virtuel rserv la gestion permet d'accder aux quipements. Le principal dfaut de cette solution est vident : le routeur de tte devient un point d'entre encore plus sensible. Si on perd l'accs ce routeur, on est coup du reste de l'infrastructure.

Gestion des quipements rseau avec GNU/Linux $Revision: 1429 $

Gestion des quipements rseau avec GNU/Linux

2.1. Outils GNU/Linux


Relativement l'architecture type prsente ci-dessus, les systmes GNU/Linux conviennent parfaitement la mise en uvre d'un ensemble de services spcifiques ddis la gestion des quipements rseau. Tout d'abord, le serveur qui hberge les services du primtre doit fonctionner avec GNU/Linux. C'est cette condition que l'on pourra dployer les fonctions dcrites dans la suite du document : Routage directement intgr au serveur avec Quagga5. Voir Initiation au routage6. Dans le cas d'un systme d'information utilisant le protocole de routage OSPF, Quagga7 peut trs bien servir de dmon de rfrence dans les calculs de topologie du rseau effectus par les autres quipements. Centralisation des accs de configuration. Voir Section 3, Accs la console . Centralisation des copies de sauvegarde des configurations. Voir Section 4, Echanges avec le protocole TFTP . [FIXME: complter avec les autres fonctions de gestion]. Ensuite, pour accder distance aux services du primtre de gestion des quipements, les outils GNU/Linux fournissent tout un panel de solutions de transmissions chiffres. : On peut utiliser OpenSSH8 pour ouvrir une console distance et effectuer les oprations de configuration. Voir Section 3, Accs la console . On peut utiliser Stunnel9 pour chiffrer et|ou translater les communications sur un service (ou numro de port) unique. Il est tout fait possible d'changer des fichiers d'image systme ou de configuration via TFTP travers un rseau public. Stunnel10 sert alors chiffrer les communications sur le numro de port 69 aprs avoir authentifi les deux extrmits l'aide de leurs certificats respectifs. Voir Section 4, Echanges avec le protocole TFTP . Enfin, on peut utiliser OpenVPN11 pour un chiffrement global des communications entre la console et le serveur travers un rseau public. Le cot de mise en uvre de cet outil est tellement drisoire relativement aux solutions propritaires, qu'il ne faut pas rater une occasion de l'utiliser !

3. Accs la console
Mme s'il est souvent possible de configurer un quipement partir d'une interface Web, la console a toujours t l'interface de configuration la plus srieuse. Voici quelques arguments pour tayer cette ide : Les conditions de scurit des accs Web de configuration d'quipement ont toujours t mdiocres jusqu' prsent. Soit le serveur Web inclus dans l'quipement contient de nombreux trous de scurit (il suffit d'interroger les bases de rapport d'incidents du CERT: Vulnerabilities, Incidents & Fixes12 pour s'en convaincre) ; soit le cot financier et humain de modification de l'infrastructure d'accs aux quipements est trop important relativement aux bnfices attendus. Les interfaces Web ne permettent pas d'apprhender globalement les paramtres de configuration. En effet, ds que le nombre des paramtres et des options devient important, les formulaires Web deviennent trs lourds grer. Naviguer d'un paramtre l'autre suppose plusieurs manipulations de formulaires alors que la mme opration est immdiate la console. Sur les systmes GNU/Linux, minicom est le couteau suisse idal pour toutes les manipulations sur les liaisons sries. Avant d'aborder sa configuration et sont utilisation, on vrifie que le systme offre bien les fonctions ncessaires : Section 3.1, Ports srie et Section 3.2, Administration des accs .

5 6

http://www.quagga.net/ http://www.linux-france.org/prj/inetdoc/guides/index.html#routage 7 http://www.quagga.net/ 8 http://openssh.org/ 9 http://www.stunnel.org/ 10 http://www.stunnel.org/ 11 http://openvpn.net/ 12 http://www.cert.org/nav/index_red.html

Gestion des quipements rseau avec GNU/Linux $Revision: 1429 $

Gestion des quipements rseau avec GNU/Linux

3.1. Ports srie


Avant de s'attaquer la configuration du logiciel, il faut s'assurer que le port srie que l'on veut utiliser est disponible. Comme il s'agit d'un priphrique matriel, c'est dans le noyau Linux que l'on trouve les informations utiles. Normalement, tous les noyaux livrs avec les distributions intgrent directement les pilotes des ports srie. Il est facile de vrifier que les ports sont disponibles l'aide de la commande dmesg :
$ dmesg | less <snip/> Serial: 8250/16550 ttyS0 at I/O 0x3f8 ttyS1 at I/O 0x2f8 ttyS0 at I/O 0x3f8 ttyS1 at I/O 0x2f8

driver (irq = (irq = (irq = (irq =

.Revision: 1.4 . 48 ports, IRQ sharing enabled 4) is a 16550A 3) is a 16550A 4) is a 16550A 3) is a 16550A

Les informations ci-dessus indiquent que l'on dispose de deux ports : ttyS0 et ttyS1 pilots par le composant 16550A. Dans le cas o l'on utilise un noyau compil maison, il faut retenir les options indiques ci-dessous partir des menus de configuration du noyau :
Linux Kernel Configuration Device Drivers Character devices Serial drivers <*> 8250/16550 and compatible serial support [*] Console on 8250/16550 and compatible serial port < > 8250/16550 PCMCIA device support [ ] 8250/16550 device discovery via ACPI namespace (4) Maximum number of non-legacy 8250/16550 serial ports [*] Extended 8250/16550 serial driver options [*] Support more than 4 legacy serial ports [*] Support for sharing serial interrupts [ ] Autodetect IRQ on standard ports (unsafe) [*] Support special multiport boards [*] Support RSA serial ports --- Non-8250 serial port support

3.2. Administration des accs


Une fois que le noyau Linux assure le pilotage des ports srie, il faut administrer les droits d'accs ces ports. Par dfaut, les priphriques du systme de fichiers correspondant aux ports srie appartiennent au groupe dialout :
$ ls -l /dev/ttyS? crw-rw---- 1 root crw-rw---- 1 root crw-rw---- 1 root crw-rw---- 1 root dialout dialout dialout dialout 4, 4, 4, 4, 64 65 66 67 2003-02-13 2002-03-14 2002-03-14 2002-03-14 16:41 22:51 22:51 22:51 /dev/ttyS0 /dev/ttyS1 /dev/ttyS2 /dev/ttyS3

Pour qu'un utilisateur normal ait accs aux ports srie, il doit appartenir au groupe dialout :
# adduser etu dialout Ajout de l'utilisateur etu au groupe dialout... Fait.

L'utilisateur etu doit se reconnecter pour bnficier des ces nouveaux droits d'accs.

Gestion des quipements rseau avec GNU/Linux $Revision: 1429 $

Gestion des quipements rseau avec GNU/Linux

3.3. Installation et configuration par dfaut de minicom


Comme indiqu dans la section Section 1.3, Logiciels utiliss , seuls les paquets de la distribution Debian GNU/ Linux sont prsents ici. L'installation de minicom se rsume donc l'instruction suivante :
# apt-get install minicom lrzsz

Aprs cette tape, il faut crer le fichier de configuration par dfaut. Ce fichier sert de dnominateur commun l'chelle du systme. Les paramtres de ce fichier : /etc/minicom/minirc.dfl sont activ chaque lancement du programme minicom. L'utilisateur est ensuite libre de tout modifier et de se crer ses propres paramtres de configuration par dfaut. Voici un exemple de premire excution du programme :
# minicom -s <snip/> -------------[configuration]------------| Noms de fichers et chemins | | Protocoles de transfert | | Configuration du port srie | Modem et appel | | Ecran et clavier | | Enregistrer config. sous dfl | Enregistrer la configuration sous... | | Sortir | | Sortir de Minicom | -----------------------------------------

Pour aller au plus simple, on se contente de fixer les paramtres du port srie et de sauvegarder. Premire tape, le port srie : voir Section 3.3.1, Paramtres du port srie Enregistrement du fichier /etc/minicom/minirc.dfl.

3.3.1. Paramtres du port srie


Les valeurs prsents ci-dessous correspondent la grande majorit des paramtres par dfaut des quipements d'interconnexion.
----------------------------------------------------------------------| A Port srie : /dev/ttyS0 | B - Emplacement du fichier de verrouillage : /var/lock | | C Programme d'appel intrieur : | | D Programme d'appel extrieur : | | E Dbit/Parit/Bits : 9600 8N1 | F Contrle de flux matriel : Oui | G Contrle de flux logiciel : Non | | | | Changer quel rglage ? | -----------------------------------------------------------------------

En fonction de la liste des ports srie disponibles (voir Section 3.1, Ports srie ), on saisit le nom du premier port srie. En fonction des paramtres de l'quipement grer, on fixe les paramtres de la liaison l'aide du menu suivant : Toujours en fonction de l'quipement grer, on choisit le contrle de flux matriel. C'est le mode le plus fiable.

3.3.2. Fichier de configuration par dfaut


Voici une exemple de fichier /etc/minicom/minirc.dfl obtenu partir des rglages ci-dessus.
# Fichier gnr automatiquement - utilisez minicom -s

Gestion des quipements rseau avec GNU/Linux $Revision: 1429 $

Gestion des quipements rseau avec GNU/Linux


# pour changer les paramtres pu port /dev/ttyS0 pu baudrate 9600 pu bits 8 pu parity N pu stopbits 1 pu scriptprog /usr/bin/runscript pu minit ~^M~ATZ^M~ pu mreset ~^M~ATZ^M~ pu escape-key Escape (Meta)

Il est aussi possible d'effacer toutes les commandes Hayes de dialogue avec les modems. Comme minicom possde une option de dmarrage liminant tous les dialogues modems, il n'est pas ncessaire de traiter ce problme au niveau systme. Il se peut qu'un utilisateur ait effectivement besoin d'un modem.

3.4. Configuration utilisateur


Le jeu des fonctionnalits de minicom est trs riche. Il suffit de consulter les pages de manuels pour s'en convaincre : man minicom. L'objet de ce document n'tant de dresser un catalogue exhaustif de ces fonctions, voici un exemple type de configuration utilisateur :
$ MINICOM="-o -8 -l -m -con -t linux" ; export MINICOM

Option -o : minicom n'excute pas les codes d'initialisation. C'est cette option qui permet d'viter les commandes Hayes au dmarrage. Dans le contexte de connexion un quipement rseau, les dialogues modems sont totalement inutiles. Option -8 : les caractres cods sur 8 bits sont transmis sans aucune modification. Cette option permet d'afficher les caractres accentus en franais. Option -l : traduction littrale des caractres avec le bit de poids fort 1. Avec cette option minicom n'essaie pas de traduire les caractres IBM en ASCII. Option -m : redfinit la touche de commande avec la touche Meta ou Alt. Avec un systme GNU/Linux, on rencontre deux cas de figure classiques : Sans interface graphique

$ env | grep -i term TERM=linux

Il vaut mieux viter l'option -m et utiliser la squence de touches Ctrl+a pour accder aux fonctions. Par exemple, on accde au menu principal avec la squence Ctrl+a puis z. Avec interface graphique
$ env | grep -i term TERM=xterm

L'option -m est utile pour simplifier l'appel aux fonctions. Il suffit d'utiliser la touche Alt. Par exemple, on accde au menu principal avec la squence Alt+z. Option -c : utilisation de la couleur. On ajoute on ou off pour activer ou dsactiver l'affichage des couleurs. Option -t : dfinition du type de terminal : linux dans ce cas. Cette option est trs pratique pour conserver les dimensions de la console avec les environnements graphiques utilisateur. Il est frquent que la mme fentre de consoles serve grer plusieurs quipements et de la documentation. Sans cette option, minicom redimensionne la console avec une largeur de 80 caractres. Positionnement de la variable d'environnement MINICOM. Cette variable est consulte chaque excution de minicom.

Une fois que l'on est satisfait de son jeu d'options minicom, il est possible de le conserver dans la configuration du shell :
$ echo export MINICOM=\"-o -8 -l -m -con -t linux\" >>~/.bash_profile

De cette faon, toute ouverture d'un nouveau shell comprendra la variable d'environnement MINICOM et ses options.

Gestion des quipements rseau avec GNU/Linux $Revision: 1429 $

Gestion des quipements rseau avec GNU/Linux

3.5. Exemples d'utilisation de minicom


3.5.1. Squences Break
Les exemples d'utilisation des squences Break sont nombreux. Le plus souvent, il s'agit d'interrompre brutalement le chargement du systme d'exploitation sur un quipement. la suite de cette opration, on peut charger une nouvelle image systme ou reprendre la main sur un quipement dont on a perdu les mots de passe. Suivant la configuration de minicom, les squences de touches diffrent. Avec un codage clavier sur 7 bits, la squence est : Ctrl+a puis f. Avec un codage clavier sur 8 bits, la squence est : Alt+f. Initialisation d'un commutateur Cisco 2950 Pour interrompre le chargement du systme d'un commutateur de ce modle il faut que la variable d'environnement ENABLE_BREAK soit pralablement positionne sur on.
sw1#sh boot BOOT path-list: Config file: Private Config file: Enable Break: Manual Boot: HELPER path-list: NVRAM/Config file buffer size:

flash:/config.text flash:/private-config.text ON no

32768

Lors du redmarrage de l'quipement il est possible d'utiliser la squence Ctrl+a puis f pour envoyer un Break et interrompre le chargement du systme. Rsultat de la squence Break.

flashfs[0]: Bytes available: 3169792 flashfs[0]: flashfs fsck took 7 seconds. ...done initializing flash. Boot Sector Filesystem (bs:) installed, fsid: 3 Parameter Block Filesystem (pb:) installed, fsid: 4 Loading "flash:/c2950-i6q4l2-mz.121-22.EA2.bin"...###########################bad Error loading "flash:/c2950-i6q4l2-mz.121-22.EA2.bin" Interrupt within 5 seconds to abort boot process. Boot process failed... The system is unable to boot automatically. The BOOT environment variable needs to be set to a bootable image. switch:

Initialisation d'un routeur Cisco 2500 Pour interrompre le chargement du systme IOS d'un routeur de cette marque, il faut envoyer un Break pendant les 60 premires secondes aprs la mise sous tension de l'quipement. Comme cet exemple est trait via un portable avec une interface graphique, la squence de touches est : Alt+f. Rsultat de la squence Break.

System Bootstrap, Version 11.0(10c)XB2, PLATFORM SPECIFIC RELEASE SOFTWARE (fc1) Copyright (c) 1986-1998 by cisco Systems 2500 processor with 14336 Kbytes of main memory Abort at 0x11198B6 (PC) > >o/r 0x2142

Gestion des quipements rseau avec GNU/Linux $Revision: 1429 $

Gestion des quipements rseau avec GNU/Linux


> >b

3.5.2. Transfert d'une image systme via xmodem


En reprenant le cas du commutateur Cisco 2950, on peut transfrer une image du systme d'exploitation via la connexion srie avec le protocole xmodem. Ce n'est certainement pas la mthode la plus rapide mais lorsque toutes les informations de la mmoire flash ont t dtruite, il ne reste pas beaucoup d'autre solution. Voici un exemple de catastrophe provoque : 1. On commence par dtruire le contenu de la mmoire flash.

switch: format flash: Are you sure you want to format "flash:" (all data will be lost) (y/n)?y flashfs[0]: 0 files, 1 directories flashfs[0]: 0 orphaned files, 0 orphaned directories flashfs[0]: Total bytes: 7741440 flashfs[0]: Bytes used: 1024 flashfs[0]: Bytes available: 7740416 flashfs[0]: flashfs fsck took 5 seconds. Filesystem "flash:" formatted switch: dir flash: Directory of flash:/ 2 -rwx 285 <date> env_vars

7739904 bytes available (1536 bytes used) switch:

2.

On prpare le transfert d'image systme via xmodem sur le commutateur.

switch: flash_init Initializing Flash... ...The flash is already initialized. switch: load_helper copy xmodem: flash:c2950-i6q4l2-mz.121-22.EA2.bin Begin the Xmodem or Xmodem-1K transfer now... C

3.

On lance le transfert partir de la squence de touches Crtl+A puis s. Slection du protocole de transfert. Slection du fichier image systme transfrer. Transfert du fichier image systme.
+-[Envoyer]--+ | zmodem | | ymodem | | xmodem | kermit | | ascii | +------------+

<snip/> +-----------[Slectionner un fichier pour envoyer]------------+ |Rpertoire : /home/etu | | [..] | | [ios] | | .bash_history | | .bash_profile | | .bashrc | | .viminfo | | c2950-i6q4l2-mz.121-22.EA2.bin

Gestion des quipements rseau avec GNU/Linux $Revision: 1429 $

10

Gestion des quipements rseau avec GNU/Linux


| c2950-i6q4l2-tar.121-22.EA2.tar | | minicom.log | | | | | | (chap pour sortir, Espace pour marquer) | +-------------------------------------------------------------+ [Aller] [Prc.] [Voir] <snip/> +-----[xmodem envoyer - Appuyez sur CTRL-C pour quitter]------+ |Sending c2950-i6q4l2-mz.121-22.EA2.bin, 24111 blocks: Give yo| |ur local XMODEM receive command now. | |Xmodem sectors/kbytes sent: 138/17k | | | | | | | | +-------------------------------------------------------------+ [Marq.] [Dm .] [OK]

Gestion des quipements rseau avec GNU/Linux $Revision: 1429 $

11

Gestion des quipements rseau avec GNU/Linux

4. Echanges avec le protocole TFTP


Le protocole TFTP est dfini dans le document RFC1350 The TFTP Protocol (Revision 2)13. C'est une mthode simple utilise pour transfrer des fichiers. Il s'appuie sur le protocole UDP au niveau transport. Il se limite l'criture et la lecture de fichiers entre deux htes rseau. Il ne possde pas de fonction d'authentification et il est impossible de lister les fichiers distance. L'absence de complexit de ce protocole fait qu'il peut tre implant dans un espace mmoire rduit. C'est la raison pour laquelle on le retrouve dans la majorit des quipements rseau comme moyen d'change d'images firmware des systmes d'exploitation (et|ou) de fichiers de configuration. Dans le contexte de ce document, le poste avec le systme GNU/Linux doit changer les fichiers avec l'quipement rseau. Il s'agit donc de configurer un service tftpd avec un minimum de prcautions au niveau scurit.

4.1. Installation et configuration du service tftpd


Comme indiqu dans la Section 1.3, Logiciels utiliss , seuls les paquets de la distribution Debian GNU/Linux sont prsents ici. l'heure actuelle, la distribution comprend trois paquets pour ce service : tftpd, atftpd et tftpdhpa. Les principales diffrences entre ces trois paquets se situent au niveau des tailles maximales des fichiers transfrs et de la gestion des droits sur l'arborescence du service TFTP. Le paquet tftpd-hpa offre le plus de possibilits dans ces domaines. Son installation et sa configuration sont prsentes ici. L'installation de tftpd-hpa et le contrle de la version installe se rsument aux instructions suivantes :
# apt-get install tftpd-hpa <snipped/> # dpkg -l *tftpd* | grep ^ii ii tftpd-hpa 5.0-7

HPA's tftp server

Le paquet propose plusieurs menus de configuration qui couvrent les oprations de mise en uvre d'une arborescence de service, le contrle d'accs et les options spcifiques ce service telles que la cration de fichiers depuis l'quipement rseau distant. Dfinition de l'utilisateur systme propre au service TFTP.

Menu de configuration 1 du paquet tftpd-hpa - vue complte14 Dfinition de l'arborescence racine du service TFTP.
13 14

http://www.faqs.org/rfcs/rfc1350.html http://www.linux-france.org/prj/inetdoc/articles/devmgmt/images/tftpd-hpa-1.png

Gestion des quipements rseau avec GNU/Linux $Revision: 1429 $

12

Gestion des quipements rseau avec GNU/Linux

Menu de configuration 2 du paquet tftpd-hpa - vue complte15 Dfinition de l'adresse IP sur laquelle le service TFTP est en coute.

Menu de configuration 3 du paquet tftpd-hpa - vue complte16 Dfinition des options spcifiques au service TFTP.

15 16

http://www.linux-france.org/prj/inetdoc/articles/devmgmt/images/tftpd-hpa-2.png http://www.linux-france.org/prj/inetdoc/articles/devmgmt/images/tftpd-hpa-3.png

Gestion des quipements rseau avec GNU/Linux $Revision: 1429 $

13

Gestion des quipements rseau avec GNU/Linux

Menu de configuration 4 du paquet tftpd-hpa - vue complte17 Dans le cas o l'on souhaite configurer manuellement ce service, voici les tapes quivalentes celles prsentes dans les copies d'cran ci-dessus. Compte utilisateur systme et arborescence Cette partie comprend plusieurs tapes dont le but est de mettre en place une arborescence dont l'accs est rserv un utilisateur et un groupe systme ddi. L'accs cette arborescence est ensuite conditionn l'appartenance au groupe systme en question. On commence justement par la cration du groupe systme baptis tftp.
# addgroup --system tftp Ajout du groupe tftp (identifiant 130)... Termin.

On passe ensuite la cration du compte utilisateur systme proprement dit ; baptis lui aussi tftp. Ce compte fait partie du groupe cr ci-dessus. Il dispose d'une arborescence dont la racine est place au niveau du rpertoire /var/lib/tftp/ et, comme ce compte est de type systme, il ne doit tre utilisable que par le service TFTP.
# adduser --system --ingroup tftp \ --home /var/lib/tftp --disabled-password --disabled-login tftp Ajout de l'utilisateur systme tftp (identifiant : 122)... Ajout du nouvel utilisateur tftp (identifiant : 122) avec le groupe tftp ... Cration du rpertoire personnel /var/lib/tftp ...

On complte le masque des permissions sur la racine de l'arborescence en donnant les droits d'criture aux membres du groupe tftp.
# chmod 2775 /var/lib/tftp

On peut contrler le rsultat des oprations prcdentes en visualisant les droits sur l'arborescence.
# ls -lAh /var/lib/ |grep tftp drwxrwsr-x 2 tftp tftp 4,0K sep 27 11:31 tftp

Enfin, on contrle le contenu du fichier /etc/default/tftpd-hpa pour vrifier qu'il est en conformit avec les oprations ralises, soit manuellement, soit l'aide des menus de configuration du paquet tftpd-hpa.
# /etc/default/tftpd-hpa ## The configuration of this file is managed by debconf as long ## as a line beginning with the '#DEBCONF#' token is included.
17

http://www.linux-france.org/prj/inetdoc/articles/devmgmt/images/tftpd-hpa-4.png

Gestion des quipements rseau avec GNU/Linux $Revision: 1429 $

14

Gestion des quipements rseau avec GNU/Linux


## ## Do not edit this file manually, use: ## dpkg-reconfigure tftpd-hpa #DEBCONF# TFTP_USERNAME="tftp" TFTP_DIRECTORY="/var/lib/tftp" TFTP_ADDRESS="0.0.0.0:69" TFTP_OPTIONS="--secure --create"

Contrle d'accs local au service la suite des oprations dcrites ci-dessus, seuls les membres du groupe tftp, ont le droit d'crire dans l'arborescence du service TFTP. Tous les utilisateurs du systme ont le droit de lire le contenu de cette mme arborescence. Pour autoriser un utilisateur crire dans le rpertoire /var/lib/tftp/, il suffit de l'ajouter au groupe systme ddi. Voici un exemple :
# adduser etu tftp Ajout de l'utilisateur etu au groupe tftp ... Ajout de l'utilisateur etu au groupe tftp Termin.

Les droits sur le systme de fichiers du serveur TFTP attribus de cette faon permettent un utilisateur normal (pas ncessairement le super-utilisateur) de dposer des images de systmes d'exploitation (et|ou) des de fichiers de configuration. Attention, ce type de modification des droits d'un compte utilisateur n'est active qu'aprs une dconnexion/reconnexion. Contrle d'accs rseau au service Les options disponibles pour la configuration du dmon sont extraites des pages de manuels du service : # man in.tftpd. L'option --user permet de dsigner les identifiants (IDs) de l'utilisateur et du groupe propritaires du processus du service. Comme nous avons cr un utilisateur systme tftp ddi au service, c'est cet utilisateur qui doit tre affect ici. L'option --secure dsigne la racine du service dans l'arborescence du systme de fichiers du serveur. Cette racine est la seule accessible depuis les htes distants. L'option --create autorise la cration de fichier partir de l'quipement rseau. Sans cette option, le comportement par dfaut du service n'autorise pas l'upload. Cette option est trs utile pour la sauvegarde directe des fichiers de configuration des quipements. Ensuite, on redmarre le service pour valider les paramtres de configuration mis en place et on visualise le rsultat.
# /etc/init.d/tftpd-hpa restart Restarting HPA's tftpd: in.tftpd. # lsof -i | grep tftp in.tftpd 16621 root

4u

IPv4 1211314

0t0

UDP *:tftp

Le rsultat de la commande lsof montre bien que le dmon in.tftpd est en coute sur le port 69/udp sans restriction sur les adresses IP avec le caractre '*'.

Gestion des quipements rseau avec GNU/Linux $Revision: 1429 $

15

Gestion des quipements rseau avec GNU/Linux

4.2. Exemples d'utilisation du service tftpd


4.2.1. Mise jour systme d'un routeur Cisco 2851
Dans ce cas de figure, le transfert se fait du poste GNU/Linux vers l'quipement. Il n'y a donc aucun problme li aux accs sur le systme de fichiers ct GNU/Linux. Il suffit de placer une copie du fichier transfrer dans le rpertoire /var/lib/tftp/. Cet exemple est particulier puisque la taille du fichier image du systme d'exploitation est importante. Le service tftpd est assur partir du paquet tftp-hpa qui autorise le transfert de blocs de donnes importants.
$ cd /var/lib/tftp $ ll c2800nm-advipservicesk9-mz.124-11.T1.bin -rw-r--r-- 1 etu tftp 38M 2007-03-20 21:10 c2800nm-advipservicesk9-mz.124-11.T1.bin

Ct routeur, il faut s'assurer que la mmoire flash dispose d'un espace libre suffisant pour accueillir la nouvelle image du systme d'exploitation IOS. Au besoin, il faut effacer le fichier image en cours d'excution.
router#sh flash: -#- --length-- -----date/time------ path 1 1826 Jul 5 2006 23:53:52 +02:00 2 4734464 Jul 5 2006 23:54:12 +02:00 3 833024 Jul 5 2006 23:54:26 +02:00 4 1052160 Jul 5 2006 23:54:40 +02:00 5 1038 Jul 5 2006 23:54:54 +02:00 6 102400 Jul 5 2006 23:55:06 +02:00 7 491213 Jul 5 2006 23:55:18 +02:00 8 1684577 Jul 5 2006 23:55:38 +02:00 9 398305 Jul 5 2006 23:55:56 +02:00

sdmconfig-28xx.cfg sdm.tar es.tar common.tar home.shtml home.tar 128MB.sdf securedesktop-ios-3.1.1.27-k9.pkg sslclient-win-1.1.0.154.pkg

54702080 bytes available (9314304 bytes used)

On lance le transfert en indiquant le fichier image sur le serveur TFTP comme source et la mmoire flash comme destination.
router#copy tftp://192.168.2.1/c2800nm-advipservicesk9-mz.124-11.T1.bin flash: Destination filename [c2800nm-advipservicesk9-mz.124-11.T1.bin]? Accessing tftp://192.168.2.1/c2800nm-advipservicesk9-mz.124-11.T1.bin... Loading c2800nm-advipservicesk9-mz.124-11.T1.bin from 192.168.2.1 \ (via GigabitEthernet0/1): !!!!!!!!!!!!!!!!!! <snip/> [OK - 39798360 bytes] 39798360 bytes copied in 580.728 secs (68532 bytes/sec) router#sh flash: -#- --length-- -----date/time------ path 1 1826 Jul 5 2006 23:53:52 +02:00 sdmconfig-28xx.cfg 2 4734464 Jul 5 2006 23:54:12 +02:00 sdm.tar 3 833024 Jul 5 2006 23:54:26 +02:00 es.tar 4 1052160 Jul 5 2006 23:54:40 +02:00 common.tar 5 1038 Jul 5 2006 23:54:54 +02:00 home.shtml 6 102400 Jul 5 2006 23:55:06 +02:00 home.tar 7 491213 Jul 5 2006 23:55:18 +02:00 128MB.sdf 8 1684577 Jul 5 2006 23:55:38 +02:00 securedesktop-ios-3.1.1.27-k9.pkg 9 398305 Jul 5 2006 23:55:56 +02:00 sslclient-win-1.1.0.154.pkg 10 39798360 Mar 24 2007 17:04:52 +01:00 c2800nm-advipservicesk9-mz.124-11.T1.bin 14901248 bytes available (49115136 bytes used)

Gestion des quipements rseau avec GNU/Linux $Revision: 1429 $

16

Gestion des quipements rseau avec GNU/Linux

4.2.2. Mise jour systme d'un commutateur Cisco 2950


Comme dans l'exemple prcdent, le transfert se fait du poste GNU/Linux vers l'quipement et le fichier transfrer est dans le rpertoire /var/lib/tftp/. Ct quipement, il faut un minimum de configuration rseau IP pour communiquer avec le poste GNU/Linux.
sw1#sh run Building configuration... <snip/> ! interface Vlan1 no ip address no ip route-cache shutdown ! interface Vlan2 ip address 192.168.2.2 255.255.255.0 no ip route-cache !

On peut ensuite lancer le transfert partir de l'interface de commande de l'quipement. Voici un exemple de mise jour via tftpd :
sw1#archive tar /x tftp://192.168.2.1/c2950-i6q4l2-tar.121-22.EA2.tar flash:

L'accs l'interface de commande de l'quipement rseau peut tre obtenu l'aide de minicom ou de telnet.

4.2.3. Sauvegarde de la configuration d'un quipement


Ici, le transfert se fait depuis l'quipement rseau vers le poste GNU/Linux sur lequel le service tftpd est excut. Avec la configuration mise en place dans la partie Contrle d'accs rseau au service, on a autoris la cration de fichiers dans l'arborescence sur service TFTP avec l'option -c du dmon in.tftpd fourni avec le paquet tftpd-hpa. En reprenant l'exemple du commutateur 2950, voici l'opration se rsume au transfert de la configuration active.
sw1#copy run tftp://192.168.2.1 Address or name of remote host [192.168.2.1]? Destination filename [sw1-confg]? !! 2748 bytes copied in 1.116 secs (2462 bytes/sec)

Dans les faits, il est beaucoup plus frquent que l'on dite la configuration sur le poste GNU/Linux avant de la transfrer vers l'quipement. Cette mthode permet d'assurer un suivi des volutions de configuration via un systme de contrle de version tel que CVS ou SVN. On dispose ainsi d'un dpt centralis des configurations.

4.2.4. Mise jour de la configuration d'un quipement


On retrouve dans ce cas un transfert depuis le poste GNU/Linux vers l'quipement rseau. C'est le cas le plus simple du point de vue de la gestion des droits. Une fois la nouvelle configuration dite, on place le fichier correspondant dans le rpertoire /var/lib/tftp/ et on lance le transfert partir de l'interface en ligne de commande de l'quipement.
sw1#copy tftp://192.168.2.1/new-confg run Destination filename [running-config]? Accessing tftp://192.168.2.1/new-confg... Loading new-confg from 192.168.2.1 (via Vlan2): ! [OK - 2756 bytes] 2756 bytes copied in 19.984 secs (138 bytes/sec) sw1#

Gestion des quipements rseau avec GNU/Linux $Revision: 1429 $

17

Gestion des quipements rseau avec GNU/Linux


2d00h: %SYS-5-CONFIG_I: Configured from tftp://192.168.2.1/new-confg by console sw1# <snip/> sw1#copy run start Destination filename [startup-config]? Building configuration... [OK]

Il est prfrable de copier la configuration en RAM dans un premier temps. Si la nouvelle configuration provoque un dysfonctionnement rseau, on a toujours la possibilit de rinitialiser compltement l'quipement. Il reprendra la configuration stocke en NVRAM (la version correcte prcdente). Autrement, aprs avoir effectu les tests d'usage, on sauvegarde la nouvelle configuration en RAM dans la NVRAM.

4.3. Un soupon de scurit


Comme le service tftpd n'est pas un modle en matire de scurit, il est souhaitable de bien encadrer son utilisation. Gnralement, on complte le contrle d'accs (voir Contrle d'accs rseau au service) par une rgle de filtrage rseau pour chaque quipement. Ct quipement on fixe l'adresse IP ou l'interface utilise pour les transactions TFTP avec des instructions du type : Pour un commutateur :
interface Vlan2 ip address 192.168.2.2 255.255.255.0 no ip proxy-arp no ip route-cache ! ip tftp source-interface Vlan2

Pour un routeur :
interface Loopback0 ip address 192.168.2.2 255.255.255.255 no ip redirects no ip unreachables no ip directed-broadcast no ip proxy-arp ! ip tftp source-interface Loopback0

Ct service tftpd, on n'autorise les accs TFTP (port 69/udp) qu' partir des adresses IP fixes sur les quipements. 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 69 -m state --state NEW -j ACCEPT <snip/>

Pour un exemple complet, voir Annexe A, Configuration type du filtrage rseau.

Gestion des quipements rseau avec GNU/Linux $Revision: 1429 $

18

Gestion des quipements rseau avec GNU/Linux

5. Collecte des journaux


Les journaux, ou logs dans le jargon, servent enregistrer tous les vnements qui surviennent sur un systme. Historiquement, le service syslog a t dvelopp pour la branche Unix des systmes BSD. Depuis, ce service a t trs largement adopt. On le retrouve sur tous les systmes Unix, GNU/Linux et surtout sur les quipements rseau de nombreux constructeurs. Le protocole syslog est dcrit dans le document RFC3164 The BSD Syslog Protocol18. Dans le contexte de ce document, les messages syslog mis par les quipements rseau doivent tre collects par une machine avec un systme GNU/Linux. Ce type de machine constitue un dpt de rfrence avec horodatage des vnements survenus sur le systme d'information. Du point de vue scurit c'est un maillon essentiel du contrle d'intgrit. Dans le cas o des quipements ont t compromis, il subsistera toujours des messages permettant de remonter l'instant d'origine de l'attaque. Une fois les messages collects, il faut les traiter. La problmatique du traitement des journaux est un sujet d'tude part entire qui sort du cadre de ce document. La Section 5.4, Traitement des journaux donne juste quelques pistes.

5.1. Installation et configuration du service syslog


Comme indiqu dans la Section 1.3, Logiciels utiliss , seuls les paquets de la distribution Debian GNU/Linux sont prsents ici. L'installation de sysklogd se rsume donc l'instruction suivante :
# apt-get install sysklogd

Par dfaut, la configuration du service ne prvoit pas de recevoir des messages via le rseau. Il faut donc diter le fichier /etc/init.d/sysklogd pour que le dmon syslogd accepte les messages sur le port 514/udp. Voici une copie des 15 premires lignes du fichier /etc/init.d/sysklogd :
#! /bin/sh # /etc/init.d/sysklogd: start the system log daemon. PATH=/bin:/usr/bin:/sbin:/usr/sbin pidfile=/var/run/syslogd.pid binpath=/sbin/syslogd test -x $binpath || exit 0 # Options for start/restart the daemons # For remote UDP logging use SYSLOGD="-r" # SYSLOGD="-r"

On se retrouve ici dans une situation voisine de celle du service tftpd une diffrence importante prs. Il n'est pas possible d'utiliser le tcpwrapper du super-dmon inetd pour mettre en place un contrle d'accs. Il ne reste que le filtrage pour limiter les accs rseau au dmon syslogd. Voir Section 5.5, Un soupon de scurit . Pour finir de configurer le service, il faut paramtrer la destination des messages reus via le rseau. Cette opration se fait en ajoutant une ou plusieurs lignes au fichier /etc/syslog.conf. En reprenant l'exemple du commutateur 2950, voici un exemple :
local6.* /var/log/sw1.log

Ici, tous les messages du niveau de gravit 6 (Informational) seront placs dans le fichier /var/log/sw1.log. Le codage des niveaux de gravit dpend de l'quipement qui met les messages de journalisation.

5.2. Exemple d'utilisation du service syslog


Une fois encore, c'est la syntaxe de l'IOS Cisco qui sert d'exemple de configuration. On ne traite qu'un seul exemple sachant que les commandes de configuration sont identiques entre routeurs et commutateurs. Voici un rsum des commandes permettant d'mettre des messages syslog sur le rseau.
18

http://www.faqs.org/rfcs/rfc3164.html

Gestion des quipements rseau avec GNU/Linux $Revision: 1429 $

19

Gestion des quipements rseau avec GNU/Linux


logging logging service service ! logging ! logging logging ! logging on buffered 16384 sequence-numbers timestamp log datetime msec localtime show-timezone 192.168.2.1 facility local6 trap Informational source-interface Vlan2

Une fois cette configuration implante, le fichier de journalisation reoit les messages mis par l'quipement. Voici un extrait conscutif un chargement de fichier de configuration via le service TFTP :
Jan 25 13:18:45 192.168.2.2 146: 000143: 2w0d: %LINEPROTO-5-UPDOWN: \ Line protocol on Interface FastEthernet0/24, changed state to up Jan 25 14:06:31 192.168.2.2 156: 000153: Jan 25 14:06:30.534 CET: %SYS-5-CONFIG_I: \ Configured from tftp://192.168.2.1/sw1-confg by console

5.3. Utilisation de syslog-ng


Le service syslog, tel qu'il a t introduit, prsente au moins deux dfauts : la scurit et la non discrimination des sources. Le volet scurit sort du cadre de ce document. On se contente de donc de contrler simplement les sources de messages : voir Section 5.5, Un soupon de scurit . Ensuite, on donne quelques pistes sur le contrle d'intgrit des messages au point Journalisation systme de la Section 8, Pour aller plus loin ! . La non discrimination des sources d'mission de messages de journalisation est beaucoup plus gnante du point de vue exploitation. En effet, la configuration prsente ci-dessus (voir Section 5.1, Installation et configuration du service syslog ) a ouvert le port 514/udp en coute et tous les messages reus par ce canal sont rangs dans le fichier /var/ log/sw1.log. Ce cas de figure convient trs bien pour un quipement unique. Dans le cas o le nombre d'quipement augmente, ce point de stockage unique devient trs vite difficile grer. L'utilisation de syslog-ng permet de traiter cette difficult simplement. Le dmon syslog-ng se substitue compltement au dmon syslog prcdent. L'installation du paquet Debian GNU/Linux n'est pas diffrente des prcdentes et le remplacement de syslog est automatique :
# apt-get install syslog-ng

La grande diffrence se situe au niveau du fichier de configuration du service : /etc/syslog-ng/syslog-ng.conf. Pour chaque catgorie de journalisation, on doit composer avec une dfinition de source, de filtre et de destination. Voici un exemple reprenant le cas du commutateur : Dfinition d'une source
source net { # journalisation via eth2 -> commutateur sw1 udp(ip(192.168.2.1)); };

Dfinition d'un filtre


filter f_sw1 { host(192.168.2.2) and level(info,notice,warn,crit,err); };

Dfinition d'une destination


destination d_net_devices { file("/var/log/$HOST.log" owner("root") group("adm") perm(0640)); };

Gestion des quipements rseau avec GNU/Linux $Revision: 1429 $

20

Gestion des quipements rseau avec GNU/Linux Utilisation des trois dfinitions
log { source(net); filter(f_sw1); destination(d_net_devices); };

L'application de cette configuration entrane la cration d'un fichier /var/log/192.168.2.2.log qui reoit tous les messages du commutateur sw1 qui a l'adresse IP 192.168.2.2. Le fichier de destination est cr avec un nom correspondant l'adresse IP de l'quipement parce qu'aucun service DNS n'a t configur. En exploitation relle, on installe gnralement un service DNS ddi au primtre de gestion de l'infrastructure. Dans ce cas, les fichiers de journalisation portent le nom d'hte de l'quipement. L'ajout de tout nouvel quipement avec un autre nom et une autre adresse IP entranera le cration d'un nouveau fichier de journalisation. On pourra alors traiter les alertes sparment pour chaque quipement.

5.4. Traitement des journaux


La problmatique du traitement des journaux bute sur la motivation trs limite des responsables d'exploitation. On entend trop souvent que la lecture des journaux est fastidieuse et inutile. Pourtant, on ne compte plus les exemples d'intrusions qui auraient pu tre vites facilement si les logs avaient t consults rgulirement. L'offre des outils de traitement de logs est trs diverse. Voici deux propositions d'outils choisis avec un parti pris vident : imposer la lecture des journaux via le courrier lectronique. Logwatch19 logwatch met un rapport toutes les 24h synthtisant les vnements par service. Dans le contexte de ce document, on active un service correspondant tous les journaux mis par les quipements rseau. La grande force de logwatch, c'est la sommation des entres rptitives qui optimise la taille du rapport. Logcheck20 logcheck est un outil conu partir des paquets Debian GNU/Linux. Il met un rapport toutes les heures en fonction de trois niveaux d'utilisation : poste de travail, serveur et paranoaque. Plus on avance vers la paranoa, plus le nombre de messages retenus est important. Pour chaque niveau d'utilisation, la synthse des vnements comprend trois niveaux de priorit de traitement : alerte, scurit et systme. Dans le contexte de ce document, on ajoute les fichiers de journalisation des quipements rseau la liste des fichiers traits par logcheck. Aprs la lecture de quelques rapports, on est capable d'diter ses propres rgles de slection en s'inspirant des rgles existantes pour les autres services du systme. La grande majorit des oprations de slection effectues par logcheck sont prdfinies par des utilisateurs trs expriments : les responsables des paquets. C'est un avantage considrable pour les dbutants. On gagne ainsi un temps trs important dans l'apprentissage du travail d'analyse. Voici un extrait de rapport relatif l'utilisation d'une rgle de filtrage sur un routeur :
Security Events =-=-=-=-=-=-=-= Jan 24 23:12:06 list inbound Jan 24 23:15:06 list inbound Jan 24 23:20:06 list inbound

Router denied Router denied Router denied

20656: Jan 25 00:12:05.856 udp aaa.aaa.aaa.aaa(53) -> 20660: Jan 25 00:15:05.884 udp bbb.bbb.bbb.bbb(53) -> 20666: Jan 25 00:20:05.932 udp bbb.bbb.bbb.bbb(53) ->

GMT: %SEC-6-IPACCESSLOGP: ddd.ddd.ddd.ddd(33434), 3 GMT: %SEC-6-IPACCESSLOGP: ddd.ddd.ddd.ddd(33434), 2 GMT: %SEC-6-IPACCESSLOGP: ddd.ddd.ddd.ddd(33434), 1

\ packets \ packets \ packet

5.5. Un soupon de scurit


Comme tftpd, le service syslogd n'est pas un modle en matire de scurit. Il est donc souhaitable de bien encadrer son utilisation. On configure le contrle d'accs avec une rgle de filtrage rseau par quipement.
19 20

http://www.logwatch.org/ http://logcheck.org/

Gestion des quipements rseau avec GNU/Linux $Revision: 1429 $

21

Gestion des quipements rseau avec GNU/Linux 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 514 -m state --state NEW -j ACCEPT <snip/>

Pour un exemple complet, voir Annexe A, Configuration type du filtrage rseau.

Gestion des quipements rseau avec GNU/Linux $Revision: 1429 $

22

Gestion des quipements rseau avec GNU/Linux

6. Synchronisation des horloges avec le protocole NTP


La mise en uvre du protocole NTP suppose que l'on ait besoin d'un horodatage prcis des vnements qui surviennent sur les quipements rseau. Classiquement, le serveur du primtre de gestion excute un dmon ntpd qui sert de rfrence tous les quipements. Le protocole ntp est dcrit dans le document RFC1119 Network Time Protocol (version 2) specification and implementation21.

6.1. Installation et configuration du service ntp


Comme indiqu dans la Section 1.3, Logiciels utiliss , seuls les paquets de la distribution Debian GNU/Linux sont prsents ici. L'installation du paquet ntp se rsume donc l'instruction suivante :
# apt-get install ntp

L'avantage de ce paquet, c'est qu'il ne ncessite aucune configuration. On peut donc passer ct quipement. Voici un exemple de configuration type commun aux routeurs et aux commutateurs :
! ntp server 192.168.2.1 source Vlan2 clock timezone CET +1 clock summer-time EDT recurring !

6.2. Validation de la configuration ntp


La syntaxe IOS de contrle de l'tat du service sur l'quipement est la suivante :
sw1#sh ntp status Clock is synchronized, stratum 4, reference is 192.168.2.1 nominal freq is 250.0000 Hz, actual freq is 249.9962 Hz, precision is 2**18 reference time is C5A12468.AFE91280 (21:02:48.687 CET Tue Jan 25 2005) clock offset is 0.0817 msec, root delay is 78.25 msec root dispersion is 122.21 msec, peer dispersion is 0.03 msec sw1#sh ntp associations address ref clock st when poll reach delay offset disp *~192.168.2.1 213.161.8.44 3 33 64 377 2.0 0.08 0.0 * master (synced), # master (unsynced), + selected, - candidate, ~ configured

L'utilitaire ntpq fournit les mmes information pour le systme GNU/Linux :


# ntpq ntpq> associations ind assID status conf reach auth condition last_event cnt =========================================================== 1 26588 9614 yes yes none sys.peer reachable 1 2 26589 9014 yes yes none reject reachable 1 ntpq> peer remote refid st t when poll reach delay offset jitter ============================================================================== *cpe1-8-44.cable 164.8.100.2 2 u 865 1024 377 79.463 -11.913 33.217 LOCAL(0) LOCAL(0) 13 l 39 64 377 0.000 0.000 0.004

6.3. Encore un soupon de scurit


Comme tftpd et syslogd, le service ntpd n'est pas un modle en matire de scurit. Il est donc souhaitable de bien encadrer son utilisation. On configure le contrle d'accs avec une rgle de filtrage rseau par quipement.
21

http://www.faqs.org/rfcs/rfc1119.html

Gestion des quipements rseau avec GNU/Linux $Revision: 1429 $

23

Gestion des quipements rseau avec GNU/Linux Voici encore 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 123 -m state --state NEW -j ACCEPT <snip/>

Pour un exemple complet, voir Annexe A, Configuration type du filtrage rseau.

Gestion des quipements rseau avec GNU/Linux $Revision: 1429 $

24

Gestion des quipements rseau avec GNU/Linux

7. Introduction la mtrologie avec mrtg


Il est impossible de prtendre faire de la gestion d'quipement rseau sans parler de mtrologie. Qui dit mtrologie, dit systme de gestion intgr ou Network Management System (NMS). Ces systmes intgrs sont trop souvent des usines gaz au cot d'installation et d'administration prohibitif (on n'ose mme plus parler du cot de licence !). L'optique de ce document tant de prsenter des services simples mettre en uvre, mrtg est l'outil GNU/Linux le plus rpandu qui convient bien cette prsentation. mrtg s'appuie sur le protocole SNMP (Simple Network Management Protocol) dont la premire version est dcrite dans le document RFC1157 Simple Network Management Protocol (SNMP)22. 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 trs bas de gamme, tous les constructeurs d'quipements rseau fournissent des bases d'informations MIB pour leurs lignes de produits. Le principe de fonctionnement est relativement simple : le programme mrtg est excut priodiquement pour interroger les bases d'informations MIB des quipements en fonction d'un fichier de configuration. Le rsultat de ces interrogation sert construire des images qui sont ranges dans un rpertoire de page Web.

7.1. Installation et configuration du service mrtg


Au niveau de chaque quipement, le service snmp doit tre activ et la chane de caractres de dfinition de communaut paramtre. Voici un exemple de configuration IOS ; toujours pour un commutateur 2950 :
snmp-server trap-source Vlan2 snmp-server enable traps syslog no snmp-server community public ro ! no access-list 51 access-list 51 permit 192.168.2.1 snmp-server community m3tr0l0g13 ro 51

Les messages SNMP mis par l'quipement ont une adresse IP source unique : celle de l'interface Vlan2. La liste de contrle d'accs numro 51 n'autorise que l'adresse IP 192.168.2.1 interroger la base d'informations MIB. La dfinition de communaut m3tr0l0g13 n'a qu'un accs en lecture seule.

Ct systme GNU/Linux, on a dj indiqu dans la Section 1.3, Logiciels utiliss , que seuls les paquets de la distribution Debian GNU/Linux sont prsents ici. L'installation de mrtg et du serveur web de visualisation apache se rsume donc l'instruction suivante :
# apt-get install mrtg apache

L'installation des paquets Debian GNU/Linux couvre toutes les oprations de configuration de base : Cration du rpertoire /var/www/mrtg/ et copie des icnes de base des pages HTML produites par mrtg. Planification de l'excution priodique de la commande mrtg via le service cron avec le fichier /etc/cron.d/ mrtg. L'URL de consultation des rsultats est : http://192.168.2.1/mrtg/.

7.2. Exemple d'utilisation sur un commutateur 2950


Pour chaque quipement supervis, il faut crer ou complter 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 cration d'un nouveau fichier de configuration pour l'quipement paramtr ci-avant (Voir Section 7.1, Installation et configuration du service mrtg ) :
# cfgmaker m3tr0l0g13@192.168.2.2 >mrtg.cfg
22

http://www.faqs.org/rfcs/rfc1157.html

Gestion des quipements rseau avec GNU/Linux $Revision: 1429 $

25

Gestion des quipements rseau avec GNU/Linux


# 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 renumroter 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 prfrable de faire appel aux options de la commande indexmaker. Ces options sont fournies dans les pages de manuels : man indexmaker. Le rsultat obtenu est de la forme suivante pour la page d'index principale :

Index mrtg - vue complte23 Pour une interface, le rsultat se prsente sous la forme suivante :

Interface mrtg - vue complte24

7.3. Encore un soupon de scurit


Comme tous les autres services prsents ci-avant, le protocole SNMP ne fait pas exception. Ce n'est pas un modle en matire de scurit. Il existe plusieurs versions de ce protocole : SNMPv1 de 1990, SNMPv2c de 1996 a 2002 et
23 24

http://www.linux-france.org/prj/inetdoc/articles/devmgmt/images/index.mrtg.png http://www.linux-france.org/prj/inetdoc/articles/devmgmt/images/interface.mrtg.png

Gestion des quipements rseau avec GNU/Linux $Revision: 1429 $

26

Gestion des quipements rseau avec GNU/Linux SNMPv3 partir de 2000. Plus ces versions ont volu, plus les fonctions de scurit se sont toffes. Les quipements rseau actuels intgrent le plus souvent la version SNMPv2c qui est trs limite. On se retrouve donc dans une situation identique celle des autres services prsents. Il est souhaitable de bien encadrer l'utilisation du protocole. On configure le contrle d'accs avec une rgle de filtrage rseau 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 state --state NEW -j ACCEPT <snip/>

Pour un exemple complet, voir Annexe A, Configuration type du filtrage rseau.

Gestion des quipements rseau avec GNU/Linux $Revision: 1429 $

27

Gestion des quipements rseau avec GNU/Linux

8. Pour aller plus loin !


Les outils GNU/Linux permettent de structurer la centralisation de la gestion des quipements rseau. La force du logiciel libre c'est la capacit adapter son infrastructure au plus prs de ses besoins. Cette capacit d'adaptation a un cot non ngligeable. En phase de conception ou d'volution d'un systme d'information, il faut tudier attentivement le rapport contraintes d'exploitation sur cot d'acquisition. Il est frquent de constater qu'au del du cot d'acquisition d'une solution propritaire, les fonctionnalits offertes sont trs|trop nombreuses et ne rpondent pas ncessairement aux besoins. l'inverse, la mise en uvre des fonctionnalits dcrites dans ce document permet d'atteindre rapidement et simplement des rsultats faciles exploiter. Pour tudier plus en dtails les modalits d'exploitation des quipements rseau voici quelques rfrences documentaires : Guides de la NSA De plus en plus souvent, les conseils sur les bonnes pratiques de gestion des quipements sont inclues dans les document relatifs la scurit. Les guides de la NSA sont les exemples emblmatiques de cette tendance. Mme si ces guides ne traitent que des quipements Cisco, il ne devrait pas tre trop difficile de les adapter aux interfaces| langages de configuration des autres marques. Cisco IOS Switch Security Configuration Guide Le guide Swicth guide version 1.0125 est ddi aux commutateurs. Il prsente bien sr beaucoup plus de fonctions que ce document. Router Security Configuration Guide Le guide Router guide version 1.1b26 est une excellente rfrence sur la scurisation d'une architecture d'interconnexion rseau. Il va bien au del de la configuration des quipements. Executive Summary La feuille Executive Summary27 est une checklist dfinitivement indispensable pour configurer les quipements. Journalisation systme On reproche beaucoup au service syslog son manque de scurit intrinsque. C'est oublier un peu vite que pour que ce type de service soit largement adopt, il doit tre lger et facile implanter dans un espace mmoire rduit. La scurisation des changes de messages syslog est relativement facile obtenir en canalisant ces messages hors de la bande passante utilisateur dans des VLANs ou des rseaux privs virtuels spcifiques. Voici quelques rfrences permettant d'argumenter sur cette question : Groupe de travail Syslog de l'IETF Page Web du groupe de travail : IETF Syslog Working Group Home Page28. Prsentation HSC Si cette prsentation sur Normes utiles en scurit rseau29 ne traite pas directement de la journalisation, elle met en vidence son importance en tant qu'outil d'audit et de veille. Voil ! On dispose maintenant d'une batterie de fonctions et d'outils de gestion des quipements rseau. Il ne reste plus qu' composer son systme de gestion personnel. Si vous avez dj eu administrer un systme lourd et coteux vous raliserez plus facilement et plus vite combien cette facilit d'adaptation est avantageuse.
25 26

http://www.nsa.gov/snac/os/switch-guide-version1_01.pdf http://www.nsa.gov/snac/routers/cisco_scg-1.1b.pdf 27 http://www.nsa.gov/snac/routers/cisco_exec_sum.pdf 28 http://www.employees.org/~lonvick/ 29 http://www.hsc.fr/ressources/presentations/dnac03/

Gestion des quipements rseau avec GNU/Linux $Revision: 1429 $

28

Gestion des quipements rseau avec GNU/Linux

A. Configuration type du filtrage rseau


Aprs avoir donn plusieurs exemples de rgles de filtrage pour les services de gestion d'quipements rseau prsents, voici un fichier /var/lib/iptables/active/ complet. Mme si le filtrage rseau sort du cadre de ce document, cette configuration essaie de respecter au mieux la rgle d'or : dcrire le plus prcisement possible le premier paquet d'une nouvelle communication et faire confiance au suivi d'tat ensuite. Attention ! Le fichier ci-dessous est fourni titre d'exemple sans aucune garantie de quelque nature que ce soit. Pour activer l'ensemble des rgles il faut saisir une commande du type : iptables-restore iptables/active.
</var/lib/

# Configuration type du filtrage rseau # pour un serveur de gestion d'quipement rseau # #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Dfinition des interfaces #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # # . eth0 : interface rseau public # . eth2 : interface primtre gestion # #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Tables de traduction d'adresses #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *nat :PREROUTING ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A POSTROUTING -o eth0 -j MASQUERADE COMMIT #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Tables de filtrage #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *filter :INPUT DROP [0:0] :FORWARD DROP [0:0] :OUTPUT ACCEPT [0:0] # # -> Chane INPUT # . toutes les communications internes sont autorises -A INPUT -i lo -j ACCEPT # . suivi de communication -A INPUT -p udp -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m state --state ESTABLISHED -m tcp ! --syn -j ACCEPT -A INPUT -p tcp -m state --state RELATED -m tcp --syn -j ACCEPT -A INPUT -p icmp -m state --state ESTABLISHED -j ACCEPT -A INPUT -p icmp --icmp-type destination-unreachable \ -m state --state RELATED -j ACCEPT -A INPUT -p icmp --icmp-type time-exceeded -m state --state RELATED -j ACCEPT # . administration du serveur avec SSH -A INPUT -i eth0 -p tcp --syn --dport 22 -m state --state NEW -j ACCEPT # . services de gestion d'quipements rseau # . exemple d'un commutateur 2950 avec l'@ IP 192.168.2.2 -A INPUT -i eth2 -s 192.168.2.2 -p udp --dport 69 -m state --state NEW -j ACCEPT -A INPUT -i eth2 -s 192.168.2.2 -p udp --dport 514 -m state --state NEW -j ACCEPT -A INPUT -i eth2 -s 192.168.2.2 -p udp --dport 123 -m state --state NEW -j ACCEPT -A INPUT -i eth2 -s 192.168.2.2 -p udp --dport 162 -m state --state NEW -j ACCEPT

Gestion des quipements rseau avec GNU/Linux $Revision: 1429 $

29

Gestion des quipements rseau avec GNU/Linux


# . poubelle propre -A INPUT -m state --state INVALID -j DROP -A INPUT -p tcp -j REJECT --reject-with tcp-reset -A INPUT -p udp -j REJECT --reject-with icmp-port-unreachable # # -> Chane FORWARD # . suivi de communication -A FORWARD -p udp -m state --state RELATED,ESTABLISHED -j ACCEPT -A FORWARD -p tcp -m state --state ESTABLISHED -m tcp ! --syn -j ACCEPT -A FORWARD -p tcp -m state --state RELATED -m tcp --syn -j ACCEPT -A FORWARD -p icmp -m state --state ESTABLISHED -j ACCEPT -A FORWARD -p icmp --icmp-type destination-unreachable \ -m state --state RELATED -j ACCEPT -A FORWARD -p icmp --icmp-type time-exceeded -m state --state RELATED -j ACCEPT # . poubelle propre -A FORWARD -m state --state INVALID -j DROP -A FORWARD -p tcp -j REJECT --reject-with tcp-reset -A FORWARD -p udp -j REJECT --reject-with icmp-port-unreachable COMMIT

Il est possible de simplifier la syntaxe de filtrage des communications par quipement en groupant les services ouverts. En prenant l'exemple ci-dessous on perd en lisibilit puisque le compteur d'utilisation de la rgle ne permet pas de distinguer le service utilis dans la liste.
-A INPUT -i eth2 -s 192.168.2.2 -p udp -m multiport --dports 69,123,162,514 \ -m state --state NEW -j ACCEPT

Dans le but de mieux respecter la rgle d'or du filtrage, il est possible de tester les adresses MAC source des quipements grs. De cette faon, on limite les possibilits d'arp spoofing.

Gestion des quipements rseau avec GNU/Linux $Revision: 1429 $

30