Académique Documents
Professionnel Documents
Culture Documents
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.
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
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
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.
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
.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
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.
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.
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.
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.
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
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.
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
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
2.
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
10
11
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
12
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
13
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
14
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 '*'.
15
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
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)
16
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.
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.
17
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.
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/>
18
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.
http://www.faqs.org/rfcs/rfc3164.html
19
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
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)); };
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.
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) ->
http://www.logwatch.org/ http://logcheck.org/
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/>
22
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 !
http://www.faqs.org/rfcs/rfc1119.html
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/>
24
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/.
http://www.faqs.org/rfcs/rfc1157.html
25
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 :
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
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/>
27
28
# 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
29
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.
30