Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
HEPCUT ISIPH
Catgorie Technique
Administration et
scurit des rseaux.
Jean-Franois Challe.
J-F Challe
HEPCUT - ISIPH II
J-F Challe
HEPCUT - ISIPH III
J-F Challe
HEPCUT - ISIPH IV
J-F Challe
HEPCUT - ISIPH V
J-F Challe
HEPCUT - ISIPH VI
J-F Challe
HEPCUT - ISIPH VII
J-F Challe
HEPCUT - ISIPH VIII
J-F Challe
HEPCUT - ISIPH 1
Mme dans le cas dun systme offrant des services rseau ne ncessitant pas la gestion de plusieurs utilisateurs, comme
le DNS par exemple, il est essentiel de disposer dau moins un compte autre que celui rserv ladministrateur du
systme (root). Lutilisation du compte root doit tre limite des tches spcifiques qui ne peuvent pas tre ralises
sous lidentit dun utilisateur normal. Lorsquune personne est connecte un systme UNIX sous lidentit root, il a
le droit deffectuer toutes les oprations sans aucune contrainte. Une utilisation abusive de cette identit peut corrompre
compltement lintgrit du systme par le biais de fausses manuvres. Tout administrateur systme doit toujours
disposer du compte root pour raliser les tches administratives critiques mais galement dun compte utilisateur
traditionnel afin deffectuer de petits travaux nexigeant pas de privilges particuliers.
Aprs linstallation dun systme Linux, le compte adminis trateur est cr et un mot de passe y est associ. Si
ladministrateur se connecte la console, il aura toujours la facult de sidentifier et de raliser les travaux ncessaires
la bonne marche de ce systme. Nanmoins, dans de nombreux cas, ladministrateur nutilise que rarement la console.
En rgle gnrale ladministrateur se connecte par lintermdiaire dun poste distant. Pour des raisons de scurit, root
ne peut se connecter directement qu la console. Cette scurit est tablie au travers du fichier de configuration
/etc/securetty. Ce fichier contient la liste des terminaux qui sont considrs comme des points dentre scuriss du
systme. Ces terminaux nengendrent pas de connexion rseau, ce qui rend impossible une coute de la ligne la
recherche du mot de passe du super-utilisateur. Voici un exemple de fichier /etc/securetty :
Ce fichier dcrit que les huit consoles sont des postes de travail scuriss permettant ladministrateur de se connecter
sans risque. Leffacement de ce fichier peut introduire un trou dans la scurit. En labsence du fichier /etc/securetty,
ladministrateur est autoris se connecter directement au systme partir de nimporte quel poste de travail.
Le fichier /etc/securetty doit donc tre protg contre les risques deffacement ou de modification. Les commandes
UNIX traditionnelles ne permettent pas la scurisation dun fichier particulier. De nombreux concepteurs de systmes
UNIX ont apport leurs extensions de manire offrir plus de scurit. Le systme Linux ne fait pas exception cette
rgle et propose une commande permettant de scuriser un fichier. Il sagit de la commande chattr. Elle possde de
nombreuses options dont une protgeant un fichier contre les modifications et leffacement. Voici un exemple de
scurisation du fichier /etc/securetty :
Comme le montre la session interactive suivante, lorsquun fichier possde lattribut i, mme ladministrateur systme
ne peut le supprimer :
J-F Challe
HEPCUT - ISIPH 2
Dans certains cas, ladministrateur doit connatre les attributs associs un fichier. La commande lsattr permet de
visualiser tous les attributs affects un fichier :
Toujours pour des raisons de scurit, seul ladministrateur du systme a le droit demployer la commande lsattr pour
visualiser les attributs affects un fichier. Voici un exemple dutilisation de la commande lsattr par un utilisateur
normal :
Les tches administratives peuvent conduire lutilisateur root modifier un fichier dont les attributs empchent son
effacement. La commande chattr avec loption moins permet denlever une protection. Voici un exemple de
suppression de lattribut i plac sur le fichier /etc/securetty :
Les options de la commande adduser permettent de peaufiner le processus de cration dun nouvel utilisateur. La
cration dun nouveau compte utilisateur par le biais de la version simplifie de la commande donne des valeurs par
dfaut aux options qui ne sont pas spcifies. Cest ainsi que le compte de lutilisateur ne peut pas tre immdiatement
employ aucun mot de passe valide ny a t associ. Ladministrateur du systme doit alors employer la commande
passwd pour donner un mot de passe valide au nouvel utilisateur cr. Voici un exemple dattribution dun mot de
passe un compte utilisateur :
Dans un contexte scolaire o il y a de nombreux comptes utilisateurs crer au mme moment, la procdure qui vient
dtre mentionne peut savrer trs lourde. Non seulement il faut employer la commande adduser pour crer un
compte utilisateur mais galement la commande passwd pour attribuer un mot de passe lutilisateur cr. Cette
modification du mot de passe impose de dactylographier deux fois le mot de passe. Afin de rendre le processus de
cration dun utilisateur moins lourd, il est possible de prciser un argument la commande passwd de sorte quelle
puisse accepter directement un mot de passe.
J-F Challe
HEPCUT - ISIPH 3
Loption stdin informe la commande passwd de ce quelle doit utiliser son entre standard pour obtenir le mot de passe
en clair. Lentre standard peut, comme dans la majorit des cas des commandes UNIX, obtenir ses informations par
lintermdiaire dun pipe.
Supposons que le nom dun utilisateur et son mot de passe soient drivs de son nom et de son prnom. Le nom de
lutilisateur est form de la premire lettre de son prnom suivi de son nom. Le mot de passe est le nom de lutilisateur
crit lenvers. Dans ce cas de figure, il est possible de placer dans un fichier texte, le prnom et le nom de plusieurs
utilisateurs qui doivent recevoir un compte. Il suffit alors dcrire un script UNIX charg de crer les comptes des
utilisateurs. Voici un exemple de script capable de crer automatiquement les comptes utilisateurs partir dun fichier
de donnes :
#!/bin/bash
read a b
while [ "$a" != "" ]; do
a=`expr substr "$a" 1 1`
username=$a$b
l=`expr length $b`
pass=""
while [ "$l" != 0 ]; do
p=`expr substr $b $l 1`
l=`expr $l - 1`
pass=$pass$p
done
pass=$pass$a
adduser $username > /dev/null
echo $pass | passwd --stdin $username >/dev/null
read a b
Lors de la cration dun utilisateur, ladministrateur donne gnralement des renseignements complmentaires sur
lidentit de la personne qui utilisera le compte. Cette information est gnralement constitue du prnom et du nom de
la personne utilisatrice. Ce type dinformation tant gnralement constitue dau moins deux mots spars par un
espace, il ne faut pas que la commande adduser considre ces informations comme tant deux arguments distincts. Pour
contrecarrer le principe gnral de dtection des diffrents arguments sur base de lespacement, il suffit de placer le
prnom et le nom de lutilisateur entre guillemets. Cette identit doit tre prcde de loption c afin dinformer la
commande adduser de ce que largument suivant est le commentaire mmoriser. Voici la commande de cration dun
utilisateur avec un argument commentaire :
Toute commande adduser ajoute les renseignements relatifs au nouvel utilisateur dans les fichiers /etc/passwd,
/et/shadow et /etc/group. Voici un extrait de ces trois fichiers :
Le fichier texte passwd contient la liste des comptes existants sur le systme ainsi que des informations utiles sur ces
comptes, comme lidentification de lutilisateur et de son groupe, la localisation de son rpertoire de travail, etc
Souvent, ce fichier contient aussi le mot de passe chiffr de lutilisateur. Le fichier des mots de passe doit permettre
tout utilisateur de le lire. Par contre, lcriture dans ce fichier ne peut tre effectue que par le super-utilisateur.
Autrefois, aucun problme de scurit ne se posait au sujet de ce droit gnral en lecture. Chacun pouvait consulter les
mots de passe crypts le matriel tant beaucoup trop lent pour dchiffrer les informations. De plus, le principe de base
dUNIX reposait sur une communaut soude dutilisateurs sans intentions nfastes. Actuellement, il est de plus en
J-F Challe
HEPCUT - ISIPH 4
plus recommand dutiliser des systmes de masquage des mots de passe comme shadow. Le fichier /etc/shadow
contient les mots de passe chiffrs, des utilisateurs. Contrairement au fichier /etc/passwd, /etc/shadow nest accessible
que par le super-utilisateur du systme. Lorsque le masquage des mots de passe est activ, le fichier /etc/passwd
contient un x en lieu et place du mot de passe chiffr.
account:passwd:UID:GID:GECOS:directory:shell
Chaque champ est spar du suivant par le caractre : . Voici la signification de ces diffrents champs :
Le fichier texte /etc/group dfinit les groupes auxquels appartient chaque utilisateur. Le format de chaque ligne de ce
fichier est le suivant :
tout groupe possde un nom. Gnralement, tout utilisateur fait partie dau moins un groupe dont le nom est
identique son nom de compte. Par dfaut, lutilisateur est seul dans son groupe ;
gnralement aucun mot de passe nest associ un groupe. Dans ce cas, le champ correspondant est vide ;
le GID est une valeur entire identifiant un groupe de manire univoque ;
la liste des utilisateurs comporte un ensemble de noms de comptes spars par une virgule. Cela permet de
dfinir lensemble des utilisateurs qui appartiennent un groupe.
J-F Challe
HEPCUT - ISIPH 5
Lorsque la commande adduser est utilise sans prcision du rpertoire de travail de lutilisateur, le systme cre un
rpertoire dans /home dont le nom est identique au login. De nombreux administrateurs placent le rpertoire de travail
des utilisateurs dans un sous-rpertoire de /home. Dans un environnement rel, il se pourrait que les utilisateurs soient
regroups suivant le type dactivits quils effectuent. Il existerait alors autant de sous-rpertoires dans /home que de
groupes dutilisateurs (cette notion na pas de rapport avec la notion UNIX de groupe).
Loption d de la commande adduser permet, comme le montre lexemple suivant, de spcifier lemplacement et le nom
du rpertoire de travail de lutilisateur.
Pour que cette commande aboutisse, il faut que le rpertoire /home/staff soit cr.
Les systmes UNIX sont gnralement livrs avec plusieurs interprteurs de commandes, chacun ayant ses
caractristiques propres. Selon lutilis ateur et le travail qui sera ralis, un type dinterprteur de commandes peut tre
choisi au moment de la cration du compte. Les systmes Linux disposent des interprteurs suivants dans le rpertoire
/bin :
ash ;
bash ;
bsh ;
csh ;
ksh ;
sh ;
tcsh ;
zsh ;
Loption s de la commande adduser permet ladministrateur de spcifier le shell par dfaut qui sera employ par
lutilisateur. Voici la syntaxe de la commande adduser permettant de configurer un compte pour quil utilise le korn
shell :
Tous les utilisateurs font partie dau moins un groupe. Par dfaut, la commande adduser cre un groupe dont le nom
sera le mme que celui du login. Au moyen de loption g, il est possible de spcifier un autre groupe par dfaut la
condition que ce groupe existe. Voici la commande permettant de crer un nouvel utilisateur dont le groupe par dfaut
sera celui du super-utilisateur :
Pour affiner les autorisations daccess dun utilisateur, il est possible de le placer dans plusieurs groupes. Cette
opration peut tre effectue au moment de la cration du compte par lintermdiaire de loption G de la commande
adduser.
Lorsque plusieurs utilisateurs forment un groupe de travail pench sur un mme projet, il est intressant quils puissent
se partager des informations. Pour cela, chaque utilisateur est plac dans un groupe qui lui est propre mais gale ment
dans un groupe o tous les acteurs du projet se trouvent. Une autre utilit de la commande consiste donner, certains
utilisateurs, des droits correspondants ceux du super-utilisateur. Dans ce cas, il suffit dinclure galement le nouvel
utilisateur dans le groupe root.
J-F Challe
HEPCUT - ISIPH 6
A chaque utilisateur du systme est associ un entier unique appel User IDentifier. Pour les utilisateurs privilgis du
systme, cet UID a une valeur comprise entre 0 et 99.
Lorsque la commande adduser doit attribuer un UID par dfaut, elle donne toujours une valeur suprieure 99. De
plus, si dautres comptes ont t crs, la commande adduser choisit comme valeur dUID, celle dune unit suprieure
la plus grande valeur utilise.
Ladministrateur a la possibilit dimposer une valeur dUID au moment de la cration dun compte. Cette possibilit
permet au gestionnaire du systme dattribuer, par exemple, un UID compris entre 1000 et 2000 aux utilisateurs du
service commercial et un UID compris en 3000 et 4000 aux utilisateurs du service recherche et dveloppement.
Dans certains cas, des comptes sont crs pour une dure limite. Cest, par exemple, le cas lorsquune socit reoit un
stagiaire. Aprs une certaine date, le compte ne doit plus tre utilis. Loption e de la commande adduser permet de
fixer la date partir de laquelle le compte expire. Cette date peut tre rvise la hausse au moyen de loption f.
Loption e spcifie simplement une date dexpiration alors que loption f donne le nombre de jours de sursis accord
lutilisateur. Voici un exemple de commande crant un compte utilisateur dont lexpiration sera imprativement le 15
janvier 2005 :
La commande usermod permet de modifier toutes les options fixes par la commande adduser. Pour simplifier
lutilisation de cette commande, les options sont identiques celles de la commande adduser. Voici un exemple
dutilisation de la commande usermod :
Dans certains cas, ladministrateur peut tre amen retirer un utilisateur de tous les groupes dont il fait partie, sauf de
son groupe individuel. Voici la syntaxe de la commande employer :
Cela signifie que loption G remplace totalement les informations. Si lutilisateur jchalle fait partie du groupe adm et
que, par lentremise de la commande usermod, il est plac dans le groupe sys, en ralit, il ne fera plus partie du groupe
adm mais uniquement du groupe sys.
J-F Challe
HEPCUT - ISIPH 7
-m : fixe la dure de vie minimale dun mot de passe. Si une valeur nulle est spcifie, le mot de passe peut
tre chang tout moment ;
-M : dtermine la dure de vie maximale dun mo t de passe.
-W : spcifie quun message davertissement doit tre envoy lutilisateur un certain nombre de jours avant
lexpiration du mot de passe ;
-d : fixe la date du dernier changement de mot de passe. La date doit tre exprime sous la forme du nombre
de jours couls depuis le premier janvier 1970;
-E : spcifie la date dexpiration du compte utilisateur. Lorsque cette date est atteinte, lutilisateur devra
contacter ladministrateur du systme afin dobtenir, de nouveau, un accs. Cette date doit tre exprime sous
la forme du nombre de jours couls depuis le premier janvier 1970 ;
-I : dtermine le nombre de jours dinactivit permis avant que le profil de lutilisateur soit bloqu. Une valeur
de zro annihile cette fonctionnalit.
Toutes les dates sont mentionnes sous la forme du nombre de jours couls depuis le premier janvier 1970. Parmi les
commandes du systme, il en existe une retournant le nombre de secondes coules depuis le premier janvier 1970 1
heure du matin. Il faut donc crire un script pour quil soit ais de transmettre les dates la commande chage. Voici un
script recevant une date sous la forme JJ MM AAAA et renvoyant le nombre de jours couls depuis le premier janvier
1970 :
Dans cet exemple, le mot de passe de lutilisateur jchalle est limit 5 jours. Ds que lutilisateur aura conserv son
mot de passe 2 jours (5-3), il sera averti quil doit changer son mot de passe. De plus, ce compte expirera le premier
dcembre 2010. Si le compte nest pas utilis durant une priode de 5 jours, il sera bloqu.
J-F Challe
HEPCUT - ISIPH 8
Voici un exemple de message reu par lutilisateur, deux jours aprs lexcution de la commande chage :
La commande passwd permet de verrouiller et de dverrouiller un compte. Loption l permet de verrouiller le compte
alors que loption u permet de dverrouiller le compte. Voici un exemple dutilisation de cette commande :
Pour que la suppression efface galement tous les fichiers que possdait lutilisateur, il suffit dadjoindre loption r la
commande userdel. Voici un exemple de suppression dun compte utilisateur ainsi que de tous les fichiers quil
possdait dans son rpertoire de travail :
La commande groupadd permet dajouter de nouveaux groupes au systme. La version simplifie de la commande
accepte uniquement le nom du groupe crer. Dans cette situation, le numro de groupe associ est toujours une unit
suprieure celle du plus grand numro de groupe actuellement employ. Voici un exemple simple dutilisation de la
commande groupadd :
Ladministrateur a la possibilit de fixer lui mme le GID qui sera attribu lors de la cration dun groupe. Loption g
de la commande groupadd doit tre suivie du GID attribuer au groupe crer. Voici un exemple dune telle
commande :
J-F Challe
HEPCUT - ISIPH 9
[root@p200 /home]# ls -l
total 24
drwxr-xr-x 6 root root 4096 oct 31 22:48 ftp
drwxr-xr-x 5 root root 4096 oct 31 22:48 httpd
drwx------ 4 jchalle jfchalle 4096 nov 18 12:15 jchalle
drwx------ 6 jfc jfc 4096 nov 15 21:04 jfc
drwx------ 4 rc rc 4096 nov 15 20:45 rc
drwxr-xr-x 2 root root 4096 nov 17 19:08 staff
Voici un exemple de session interactive lorsquun utilisateur tente de se connecter alors que le fichier /etc/nologin
existe :
Login incorrect
Cette mthode ne permet pas dempcher les utilisateurs de continuer travailler mais interdit uniquement les nouvelles
connexions.
8. Message du jour.
Lorsque ladministrateur doit communiquer des informations lensemble de la communaut des utilisateurs, il peut le
faire au moyen dun courrier lectronique qui sera envoy chacun dentre eux. Ce procd engendre de multiples
copies du mme message, ce qui occupe inutilement de la place sur le disque. Pour viter cela, ladministrateur peut
placer, dans le fichier /etc/motd (Message Of The Day), le message dlivrer chaque utilisateur. Voici un exemple de
ce fichier :
J-F Challe
HEPCUT - ISIPH 10
Lorsquun utilisateur se connecte au systme, le texte du message prsent dans le fichier /etc/motd est affich. Voici un
exemple de session interactive lorsquun message du jour est configur :
Larborescence dun systme UNIX tant compos de plusieurs systmes de fichiers, il est ncessaire de placer un
dispositif de quotas sur tous ceux qui peuvent abriter des donnes en provenance des utilisateurs. Gnralement, le
rpertoire /home contenant les comptes des utilis ateurs rside dans un systme de fichiers spar de manire mieux
contrler loccupation du disque. Le mcanisme de quotas doit donc tre mis en place sur ce systme de fichiers.
La limite hard est la limite absolue quun utilisateur ne peut en aucun cas dpasser. La limite soft peut tre dpasse
durant une priode de temps stipule par le dlais de grce. Durant cette priode, des messages sont envoys
lutilisateur pour linformer de ce quil a dpass la limite autorise.
Les quotas sont grs par des fichiers de base de donnes prsents dans la racine des systmes de fichiers contrler.
Le fichier quota.user contient les informations relatives aux limites des diffrents utilisateurs alors que le fichier
quota.group contient les limites relatives aux diffrents groupes du systme. Ces deux fichiers doivent tre accessibles,
en lecture et en criture, uniquement par le super-utilisateur. Voici un exemple de cration des fichiers de base de
donnes de quotas :
Pour que les quotas soient pris en considration, il faut diter le fichier /etc/fstab. Tout systme de fichiers ncessitant
une gestion des quotas soit au niveau des utilisateurs, soit au niveau des groupes ou bien la fois pour les groupes et
pour les utilisateurs doit comporter une indication dans le fichier /etc/fstab. La mention usrquota active les quotas au
niveau des utilisateurs et grpquota active les quotas au niveau des groupes.
J-F Challe
HEPCUT - ISIPH 11
Chaque ligne du fichier /etc/fstab dcrivant un systme de fichiers est constitue de six champs :
Le fichier /etc/fstab ntant lu quau dmarrage du systme, il faut rebooter la machine pour que les modifications
rendent la gestion des quotas active.
Au dpart, les bases de donnes quota.user et quota.group ne sont pas initialises. Dans un premier temps, il est
ncessaire de construire ces bases de donnes sans imposer de limites. La commande quotacheck permet deffectuer
cette opration comme le montre la session interactive suivante :
La commande quotacheck doit construire une base de donnes pour les utilisateurs (option u) ainsi que pour les
groupes (option g). Cette construction est base sur les informations prsentes dans le fichier /etc/fstab (option a).
Gnralement ladministrateur souhaite un rapport dactivit de la commande quotacheck (option v).
Bien que les bases de donnes soient cres, ladministrateur doit enclencher la surveillance des quotas au moyen de la
commande quotaon. Larrt de la surveillance peut tre ralise au moyen de la commande quotaoff. Voici un exemple
de ces deux commandes :
La commande edquota permet dditer les quotas relatifs un utilisateur. Voici un exemple ddition des quotas :
Ladministrateur peut modifier les limites places entre parenthses. Labsence de quotas est indique par des limites
nulles.
J-F Challe
HEPCUT - ISIPH 12
Ds que lune des limites soft est atteinte, lutilisateur voit sa commande chouer et il en est averti par un message.
Voici un exemple de session interactive montrant lchec doprations en raison de la limite des quotas :
Loption g de la commande edquota permet dditer les quotas relatifs un groupe. Voici un exemple ddition des
quotas pour un groupe :
Ds quun des membres du groupe dpasse une limite soft, tous les membres du groupe sont dans lincapacit de
continuer leur travail sans avoir au pralable effac des fichiers afin de rpondre aux critres mis en uvre par le
systme des quotas.
La priode de grce peut tre fix e au moyen de loption t de la commande edquota. Voici un exemple fixant les
dlais 7 jours :
La gestion des quotas peut tre trs lourde lorsquil faut diter les limites relatives chaque utilisateur du systme. Ds
que les limites sont fixes pour un utilisateur, il est possible de les recopier pour dautres. Loption p de la commande
edquota permet de prendre un utilisateur comme base pour fixer les quotas de plusieurs autres. Voici un exemple dune
telle commande :
Dans cet exemple, les utilisateurs jfc, jl et rc reoivent les mmes limites que lutilisateur jchalle.
J-F Challe
HEPCUT - ISIPH 13
Les mmes vrifications peuvent avoir lieu pour les groupes. Pour cela, il suffit de mentionner loption g. Voici un
exemple de vrification des quotas relatifs aux groupes :
J-F Challe
HEPCUT - ISIPH 14
J-F Challe
HEPCUT - ISIPH 15
Le secteur de boot contient un petit programme dont le rle consiste continuer la squence de lancement du systme.
Le code du master boot record examine la table des partitions afin didentifier la partition active. La partition bootable
doit contenir dans son secteur de boot un code permettant le lancement du systme dexploitation. Ce secteur appel le
master boot record de la partition est charg en mmoire et ensuite est excut. Lobjectif du programme, prsent dans
le secteur de boot de la partition, rside dans le but de charger entirement le systme dexploitation en mmoire.
La majorit des distributions de Linux installent un chargeur appel LILO (LInux LOader) soit dans le MBR du disque,
soit dans le MBR de la partition active. Ce chargeur permet lutilisateur de choisir le noyau du systme dexploitation
quil souhaite lancer. Notons que LILO est galement capable de lancer dautres systmes dexploitation que Linux.
Lorsque le choix du noyau est effectu, LILO le place en mmoire. Limage du noyau place en mmoire est une
archive compresse contenant en son dbut le code dextraction. Conscutivement cette opration, le noyau vrifie la
prsence de priphriques (disques durs, lecteurs de disquettes, cartes rseau, ) et les configure de manire
approprie. Durant cette phase, le noyau affiche des messages sur les priphriques quil trouve.
Voici un exemple des messages gnrs par le noyau au moment du dmarrage du systme :
LILO boot :
Loading linux ....................
Linux version 2.2.14-5.0 (root@porky.devel.redhat.com) (gcc version egcs-2.91.66
19990314/Linux (egcs-1.1.2 release)) #1 Tue Mar 7 20:53:41 EST 2000
Detected 200456694 Hz processor.
Console: colour VGA+ 80x25
Calibrating delay loop... 399.77 BogoMIPS
Memory: 95452k/98304k available (1084k kernel code, 412k reserved, 1292k data, 6
4k init, 0k bigmem)
Dentry hash table entries: 262144 (order 9, 2048k)
Buffer cache hash table entries: 131072 (order 7, 512k)
Page cache hash table entries: 32768 (order 5, 128k)
VFS: Diskquotas version dquot_6.4.0 initialized
CPU: Intel Pentium MMX stepping 03
Checking 386/387 coupling... OK, FPU using exception 16 error reporting.
Checking 'hlt' instruction... OK.
Intel Pentium with F0 0F bug - workaround enabled.
POSIX conformance testing by UNIFIX
PCI: PCI BIOS revision 2.10 entry at 0xf0510
PCI: Using configuration type 1
PCI: Probing PCI hardware
Linux NET4.0 for Linux 2.2
Based upon Swansea University Computer Society NET3.039
NET4: Unix domain sockets 1.0 for Linux NET4.0.
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP, IGMP
TCP: Hash tables configured (ehash 131072 bhash 65536)
Initializing RT netlink socket
Starting kswapd v 1.5
Detected PS/2 Mouse Port.
Serial driver version 4.27 with MANY_PORTS MULTIPORT SHARE_IRQ enabled
ttyS00 at 0x03f8 (irq = 4) is a 16550A
ttyS01 at 0x02f8 (irq = 3) is a 16550A
pty: 256 Unix98 ptys configured
J-F Challe
HEPCUT - ISIPH 16
Le noyau essaie ensuite de monter le systme de fichiers racine. Si cette opration choue, le noyau panique et arrte le
systme. Le systme de fichiers racine est normalement mont en lecture seule afin de permettre une vrification de
son intgrit.
Le noyau lance ensuite le programme /sbin/init en tche de fond. Ce processus est lanctre de tous les processus du
systme. Cest partir de ce programme que toutes les fonctionnalits du systme sont dmarres. Lorsque le
processus init arrive la fin de linitialisation de ce systme, il lance de programme getty pour toutes les consoles afin
dautoriser les utilisateurs se connecter.
2. LILO.
2.1. Les arguments du dmarrage.
Le chargeur Linux est le programme responsable du chargement du noyau Linux une fois que le BIOS a pass le
contrle de lordinateur au systme dexploitation. Le chargeur de Linux se manifeste par laffichage de linformation
suivante :
LILO boot:
Cette ligne est affiche par le programme LILO avant que le noyau LINUX nait dmarr. Cette ligne de sortie est
linvite damorage qui permet lutilisateur de choisir une image du noyau, dmarrer ou passer des arguments au
noyau.
La capacit de passer des arguments au noyau est utile. Par exemple, en cas de modification non adquate des
bibliothques du systme ou de la perte de donnes la suite dun problme dalimentation, lutilisateur peut passer des
J-F Challe
HEPCUT - ISIPH 17
arguments au noyau de manire amorcer le systme en mode maintenance. Ce mode de fonctionnement permet
ladministrateur de travailler en mode mono-utilisateur sans tre perturb par les autres utilisateurs. Lactivation de ce
mode est effectu en transmettant largument single au noyau. Voici un exemple de dmarrage du systme en mode
maintenance :
Le passage darguments au noyau peut constituer une faille de scurit. Le plus dangereux est largument init= qui
permet lutilisateur, lors de linvite de LILO, de spcifier un programme init alternatif. Le programme init est
responsable du dmarrage de tous les services, incluant la vrification du nom de compte et du mot de pas se.
Largument init= permet lutilisateur de prciser par exemple lexcution du shell /bin/bash en lieu en place du
programme init traditionnel. Voici un exemple dune telle saisie :
Cette simple ligne peut compromettre lentiret du systme. Lorsque largument init pointe sur /bin/bash, le noyau
Linux dmarre comme premier processus /bin/bash. Cela signifie quaucun service ne sera dmarr, quaucune
demande dauthentification ne sera requise pour utiliser le systme. De plus, le shell est lanc sous lidentit du super-
utilisateur, ce qui permet aux personnes mal intentionnes dengendrer les pires dgts.
Des mesures doivent donc tre prises pour scuriser le chargeur LILO.
Le comportement du chargeur est dirig par le contenu du fichier /etc/lilo.conf. Ce fichier est scind en deux sections
principales. La premire section contient des paramtres gnraux qui sappliquent toutes les autres sections. La
seconde section du fichier dbute par le mot image= ou other= et stend jusqu la fin du fichier. Plusieurs images du
noyau de Linux peuvent tre dfinies au moyen de plusieurs entres image=. Voici un exemple de fichier /etc/lilo.conf :
image=/boot/vmlinuz-2.2.14-5.0smp
label=linux
initrd=/boot/initrd-2.2.14-5.0smp.img
read-only
root=/dev/md0
image=/boot/vmlinuz-2.2.14-5.0
label=linux-up
initrd=/boot/initrd-2.2.14-5.0.img
read-only
root=/dev/md0
Ce fichier dexemple montre deux configurations de dmarrage du systme. La premire permet de charger un noyau
pour un systme multiprocesseurs et la seconde pour un noyau monoprocesseur.
La scurisation du processus de dmarrage du systme consiste imposer un mot de passe. Le mot cl password
permet au systme de demander que lutilisateur entre un mot de passe avant lamorage de limage dun noyau. Le
mot cl password peut tre plac soit dans la premire section, soit dans une partie image=.
J-F Challe
HEPCUT - ISIPH 18
Si le mot cl password est plac dans la section de configuration globale, toutes tentatives damorage exigeront que
lutilisateur fournisse un mot de passe. Si le mot cl password est plac dans une section image=, seul le lancement de
cette image requerra un mot de passe. Voici un exemple de protection globale :
image=/boot/vmlinuz-2.2.14-5.0
label=linux-up
initrd=/boot/initrd-2.2.14-5.0.img
read-only
root=/dev/md0
Ds que le fichier /etc/lilo.conf est modifi, il faut que le secteur de dmarrage reflte cette modification. La commande
lilo permet dcrire un nouveau secteur de dmarrage en fonction de la configuration prsente dans le fichier
/etc/lilo.conf. Voici un exemple dexcution de cette commande :
Dans le cas dune protection par un mot de passe, le systme indique que le fichier /etc/lilo.conf ne puisse tre lisible
que par le super-utilisateur. Sans cela, le mot de passe ne serait quun secret de polichinelle.
Cette mthode de protection exige la prsence de ladministrateur lors dun dmarrage du systme. En ralit, lutilit
du mot de passe na de sens qu une condition : que des paramtres soient transmis au travers de linvite LILO. Le
mot cl restricted force ne LILO demander un mot de passe quuniquement dans le cas o des paramtres sont
transmis au dmarrage. Cela signifie quun dmarrage normal ne ncessitera pas lentre dun mot de passe.
image=/boot/vmlinuz-2.2.14-5.0
label=linux-up
initrd=/boot/initrd-2.2.14-5.0.img
read-only
root=/dev/md0
J-F Challe
HEPCUT - ISIPH 19
3. Le processus init.
Lorsque le noyau a termin son initialisation, il lance le processus init. Ce processus est charg de lancer tous les
services du systme par lintermdiaire de scripts, dont le principal est /etc/rc.d/rc.
Le comportement du processus init est bas sur le contenu du fichier /etc/inittab. Ce fichier dfinit la notion de run
level. Lide de ces run levels est que ladministrateur systme peut souhaiter booter le systme en mode mono
utilisateur, en mode multi-utilisateurs ou bien encore provoquer le dmarrage de X window.
Tout systme UNIX dispose de sept run levels numrots de 0 6. Voici la signification des ces diffrents niveaux
dexcution :
Cette convention de numrotation des niveaux dexcution est parfaitement arbitraire. Rien nempche une distribution
UNIX dattacher dautres significations ces niveaux dexcution. La description du travail qui doit tre ralis en
fonction du niveau dexcution est dcrite dans le fichier /etc/inittab. Voici un exemple de fichier /etc/inittab :
si::sysinit:/etc/rc.d/rc.sysinit
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
ud::once:/sbin/update
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
x:5:respawn:/etc/X11/prefdm nodaemon
id:runlevel:action:process
J-F Challe
HEPCUT - ISIPH 20
id est une squence dun maximum de quatre caractres permettant didentifier la ligne ;
runlevel est le numro de niveau dexcution de cette ligne ;
action dtermine comment le processus doit tre lanc ainsi que laction prendre lorsquil se termine ;
process spcifie le processus qui doit tre excut.
Les actions possibles correspondent des mots cls. Voici la signification de quelque mots cls :
respawn : ds que le processus est termin, il est relanc automatiquement. Ce comportement est
particulirement utile pour la gestion des terminaux. Ds quun utilisateur clture une session interactive, cela
met un terme au processus de gestion du terminal. Pour quune autre personne puisse travailler sur ce terminal
il faut que le processus de gestion soit relanc automatiquement ;
wait : le processus correspondant est lanc une seule fois. Avant de continuer linitialisation du systme, init
doit attendre la fin de lexcution du processus qui vient dtre lanc ;
once : le processus correspondant est excut une seule fois ;
initdefault : cette entre dtermine le niveau dexcution par dfaut employ par init lors dune phase de boot
normale ;
sysinit : le processus correspondant sera excut durant la squence de dmarrage quel que soit le niveau
dexcution par dfaut. En dautres termes, le champ runlevels est ignor ;
powerfail : le processus correspondant est excut ds que lalimentation lectrique nest plus assure. Pour
que cette opration soit possible, il faut que le systme informatique soit connect un UPS ;
powerokwait : le processus correspondant est excut ds que lalimentation lectrique est restaure ;
ctrlaltdel : le processus correspondant est excut ds que la combinaison de touches ctrl-alt-del est enfonce.
A chaque run level correspond lexcution dun ensemble de scripts placs dans le rpertoire /etc/rc.d/rc#.d o le
caractre # doit tre remplac par le numro du niveau dexcution correspondant.
Le rpertoire /etc/rc.d contient un fichier appel rc.local. Ce fichier est un script dont lexcution est dclenche par init
lorsque tous les autres scripts dinitialisation du systme ont t excuts.
Le rpertoire /etc/rc.d contient galement un fichier appel rc.sysinit. Ce script est lanc par le processus init avant tout
autre script dinitialisation.
5. Larrt du systme.
Larrt dun systme UNIX doit seffectuer suivant une procdure bien tablie. Il est hors de question de couper
lalimentation lectrique nimporte quel moment. Si tel est le cas, les systmes de fichiers ainsi que les fichiers
risquent de se trouver en tat dincohrence. Ce risque est bien rel en raison des buffers employs par le systme pour
optimiser les accs aux fichiers.
Une autre raison proscrivant lextinction brutale de la machine est que, dans un systme multi-tches et multi-
utilisateurs, il peut y avoir de nombreux travaux excuts en quasi paralllisme. Lutilisation dun procdure correcte
dextinction permet de terminer proprement tous les processus.
La commande permettant darrter proprement un systme UNIX sappelle shutdown. Elle est gnralement utilise de
deux faon possibles :
J-F Challe
HEPCUT - ISIPH 21
Si le systme est employ uniquement par une seule personne, la faon classique dutiliser la commande
shutdown consiste quitter tous les programmes qui sexcutent, se dconnecter de toutes les consoles, e se
connecter sous le compte root et dactylographier la commande suivante :
Si le systme est employ par plusieurs utilisateurs, il faut leur laisser le temps de terminer les travaux en
cours. Ladministrateur doit donc lancer la commande en demandant que la procdure darrt soit excute de
manire diffre.
maintenance
The system is going DOWN for system halt in 10 minutes !!
Lorsque le procdure darrt se lance aprs le dlai prcis, tous les systmes de fichiers, sauf la racine, sont dmonts,
les processus utilisateur sont tus, les dmons sont arrts et enfin le systme de fichiers racine est dmont. Lorsque
toutes les oprations sont termines, le processus init affiche un message invitant ladministrateur couper
lalimentation lectrique.
6. Le redmarrage du systme.
Ceci peut tre ralis en arrtant dabord compltement le systme en teignant puis en rallumant la machine. Une
faon plus simple consiste demander la commande shutdown de relancer le systme au lieu de simplement larrter.
Ceci est ralis au moyen de loption r de la commande shutdown.
La plupart des systme Linux lancent la commande shutdown r now lorsque la combinaison de touche ctrl-alt-del est
tape au clavier de la console. Cette possibilit peut constituer une faille de scurit dans le systme. Pour inhiber cette
fonctionnalit, il suffit dditer le fichier /etc/inittab et de supprimer la ligne suivante :
ca::ctrlaltdel:/sbin/shutdown t3 r now
J-F Challe
HEPCUT - ISIPH 22
J-F Challe
HEPCUT - ISIPH 23
1. La commande ifconfig.
La commande ifconfig fixe et vrifie la configuration des interfaces rseau. Cette commande affectera les arguments
suivants chacune des interfaces rseau :
ladresse IP ;
le masque de sous-rseau ;
ladresse broadcast.
Voici la commande ifconfig employe lors de la configuration dune interface Ethernet dun pc fonctionnant sous
Linux :
Un grand nombre dautres arguments peuvent tre utiliss avec cette commande. Toutefois, voici ceux permettant de
spcifier les informations de base de TCP/IP pour une interface rseau :
interface. Cest le nom de linterface rseau configurer. Lexemple ci-dessus configure linterface eth0.
adresse. Il est permis de donner soit ladresse IP soit le nom symbolique de la machine. Notre exemple affecte
ladresse 212.68.194.203 linterface eth0. Si linterface rseau est configure au moyen dun nom
symbolique, il faut que la rsolution de ladresse (transformation du nom symbolique en une adresse IP) soit
effectue au moyen du fichier /etc/hosts. Le serveur DNS tant lanc aprs la configuration des interfaces
rseau, il faut ajouter une entre dans le fichier /etc/hosts.
netmask. Cest le masque de sous-rseau pour cette interface. Cet argument peut tre omis uniquement dans
le cas o le masque est driv de la structure de classe traditionnelle. Dans notre exemple, nous avons dcoup
une adresse de classe C en 16 sous-rseaux (adresse rseau sur 28 bits). Le masque doit, dans cet exemple,
possder ses 28 bits de poids fort 1. Le masque est donc 255.255.255.240.
broadcast. Cest ladresse de diffusion du rseau. La plupart des machines utilisent comme adresse par dfaut
ladresse broadcast standard qui correspond une adresse IP dont tous les bits dsignant la machine sont
positionns 1. Linterface eth0 a donc une adresse broadcast qui est 212.68.194.207. Ladresse broadcast
peut galement tre spcifie de manire symbolique. Dans ce cas, ladministrateur placera la valeur soit dans
le fichier /etc/hosts, soit dans le fichier /etc/networks.
212.68.194.207 bcasteth0
En se basant sur le contenu des fichiers dcrits ci-dessus, la commande de configuration de linterface eth0 peut se
rdiger de la manire suivante :
J-F Challe
HEPCUT - ISIPH 24
Lexemple qui suit montre les messages correspondants une machine quipe de 6 cartes Ethernet :
Il nest pas toujours ais de dterminer toutes les interfaces disponibles sur un systme en se basant uniquement sur les
messages fournis par la commande dmesg. Puisquelle donne seulement les informations relatives aux interfaces
physiques. Un systme informatique pouvant tre quip dinterfaces virtuelles, il faut employer les commandes netstat
et ifconfig pour obtenir la liste de toutes les interfaces disponibles. Quant elle la commande netstat permet de
visualiser toutes les interfaces configures.
Loption i de la commande netstat permet de visualiser les statistiques relatives aux cartes rseau installes.
Nanmoins, si une interface nest pas active, aucune information nest fournie par netstat. La liste de toutes les
interfaces est obtenue par le biais de loption -a. Cette option demande laffichage des informations concernant toutes
les interfaces quelles soient actives ou inactives.
MTU : cette valeur correspond la taille en octets de la plus grande trame (paquet) pouvant tre transmise par
linterface sans engendrer de fragmentation.
Met : cette valeur numrique fixe le cot pour emprunter une route. Plus cette valeur est faible plus le cot est
faible.
RX-OK : informe du nombre de trames reues sans erreur.
RX-ERR : informe du nombre de trames endommages qui ont t reues.
RX-DRP : informe du nombre de trames reues qui ont t limines (mmoire insuffisante).
RX-OVR : informe du nombre de trames qui ont t perdues (arrive trop rapide des donnes).
TX-OK : informe du nombre de trames envoyes sans erreur.
TX-ERR : informe du nombre de trames envoyes qui ont t endommages.
TX-DRP : informe du nombre de trames reues qui ont t limines.
TX-OVR :informe du nombre de trames qui ont t perdues (mission trop rapide des donnes).
Flg : donne des informations sur linterface comme le montre le tableau suivant :
J-F Challe
HEPCUT - ISIPH 25
flag signification
B Une adresse broadcast est attribue linterface
L Linterface est de type loopback
M Linterface est configure en mode promiscuous
O Le protocole ARP nest pas utilis avec cette interface
P Cest une connexion point point
R Linterface est oprationnelle (running)
U Linterface est en cours dutilisation (UP)
La commande ifconfig peut galement tre employe pour dterminer les interfaces rseau disponibles. Voici le
rsultat dexcution de la commande ifconfig sur une machine quipe de 6 cartes Ethernet.
gateway:~# ifconfig
eth0 Link encap:Ethernet HWaddr 00:50:04:32:A7:E7
inet addr:192.168.1.10 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3066319 errors:0 dropped:0 overruns:0 frame:0
TX packets:2862439 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
Interrupt:11 Base address:0x6100
J-F Challe
HEPCUT - ISIPH 26
Les champs MTU et Metric montrent les valeurs pour cette interface. Sur un systme Linux le champ Metric nest pas
exploit, il est uniquement dfini pour des raisons de compatibilit. Les lignes RX et TX fournissent des informations
statistiques sur le fonctionnement de linterface, elles correspondent aux champ s retourns par la commande netstat. La
commande ifconfig affiche galement des informations sur les caractristiques physiques du priphrique telles que :
La seconde ligne dinformation stipule ladresse IP, ladresse broadcast ainsi que le masque de sous-rseau attribu
cette interface. La troisime ligne contient sous une forme textuelle la valeur des flags relatifs cette interface (voir
commande netstat).
Voici le rsultat dexcution des commandes ifconfig sur les deux machines concernes.
J-F Challe
HEPCUT - ISIPH 27
Afin dviter toute confusion lors de la dfinition des adresses broadcast dun rseau, il est prfrable de dfinir
explicitement cette adresse en choisissant lun des deux formats disponibles. De nos jours, il est vivement conseill de
suivre la norme RFC 919.
7. Autres options.
Jusqu prsent, la commande ifconfig a t emp loye principalement pour fixer ladresse de linterface, le masque de
sous-rseau et ladresse broadcast. Bien quil sagisse probablement de lutilit majeure de la commande ifconfig, elle
possde dautres options. Elle peut activer ou dsactive :
La commande ifconfig possde deux arguments, up et down pour activer et dsactiver linterface rseau. Largument
up active linterface rseau alors que largument down dsactive linterface rseau qui ne pourra plus tre utilise.
Lors de la modification de ladresse IP associe une interface, il est impratif de dsactiver linterface avant
dattribuer une nouvelle adresse IP. Le changement dadresse IP doit tre effectu en trois temps :
J-F Challe
HEPCUT - ISIPH 28
Le protocole ARP (Address Resolution Protocol) traduit les adresses IP en mac adresses. Ce protocole peut tre activ
au moyen de loption arp de la commande ifconfig. La dsactivation de ce protocole repose sur largument arp de la
commande ifconfig.
Bien que cela ne soit pas recommand, il est donc possible de dsactiver lutilisation du protocole ARP. Cette dcision
de dsactivation ne devrait tre prise quau moment de lutilisation dun rseau exprimental disposant dun matriel
spcifique. Dans ces circonstances trs particulires o des quipement non-standards existent il est important de
disposer de la capacit de dsactivation du protocole ARP.
7.3. Metric.
Sur certains systmes, la commande ifconfig cre une entre dans la table de routage pour chaque interface qui possde
une adresse IP. Chaque interface est une route vers un rseau. Mme si une machine nest pas une passerelle, son
interface est toujours une route vers le rseau local. La commande ifconfig dtermine la route vers le rseau destination
en appliquant le masque de sous-rseau de linterface ladresse IP de linterface. Par exemple, si une interface rseau
possde ladresse IP 192.168.1.10 et un masque de sous-rseau 255.255.255.0 le rseau de destination est 192.168.1.0.
Le protocole RIP (Routing Information Protocol) est un protocole de routage frquemment utilis sous UNIX. Ce
protocole a deux utilits :
Les routes cres par la commande ifconfig sont une des sources dinformations de routage diffuses par le protocole
RIP. Largument metric de cette commande peut tre employ pour contrler lutilisation de cette information au
niveau du protocole RIP.
Le protocole RIP base sa dcision de routage en fonction du cot dune route par une mtrique associe la route.
Cette information ne peut tre quun nombre. Plus le nombre est petit, plus le cot pour emprunter cette route est faible.
Lors de la construction de la table de routage, le protocole RIP favorise les routes faible cot plutt que celles plus
onreuses. Un cot faible est gnralement associ aux rseaux directement connects. Par consquent, le paramtre
metric par dfaut est 0 pour une route passant par une interface directement connecte au rseau. Dans le cas des
systmes Linux, les scripts de dmarrage du systme donnent la valeur 1 au paramtre metric.
En pratique, largument metric nest utilis qu la condition de disposer de plusieurs routes ayant une mme
destination ce qui privilgie lutilisation dune route au dtriment dune autre. Lorsquun systme dispose de plusieurs
interfaces vers une mme destination, une valeur metric faible est associe au rseau de plus haut dbit.
7.4. MTU.
Tout rseau possde un MTU (Maximum Transmission Unit), abrviation qui dsigne la taille du plus grand paquet
pouvant tre transmis sans fragmentation sur le rseau physique. Sur un rseau Ethernet, la taille maximale est de 1500
bytes. Le comportement par dfaut de la commande ifconfig consiste choisir la valeur la plus grande en fonction du
rseau physique employ. Gnralement un MTU de grande taille fournit de meilleures performances, toutefois, une
valeur plus petite peut tre utilise pour les raisons suivantes :
viter la fragmentation. Si les donnes transitent dun rseau FDDI (MTU de 4500) vers un rseau Ethernet
(MTU de 1500), il est prfrable demployer un MTU de 1500 afin dviter une fragmentation des paquets,
origine dune baisse de performance. Naturellement, ladministrateur effectuera cette diminution sil a de
J-F Challe
HEPCUT - ISIPH 29
bonnes raisons de penser que la baisse des performances tire sa source dans la fragmentation des paquets et
cette condition seulement ;
lors de lutilisation dquipements dont la performance est particulirement faible il nest pas possible
dutiliser une taille standard de 1006 bytes. Dans ce cas, il est prfrable de diminuer la valeur du MTU.
Toutefois, une telle solution nest que temporaire car il faudra songer au remplacement du matriel par un
dispositif mieux adapt lapplication employe.
Un rseau broadcast permet une interface de recevoir tous les paquets y compris ceux non destins lhte
propritaire de linterface. Ce mode de fonctionnement de linterface rseau autorise lutilisation doutils danalyse de
paquets, technique de mise en vidence des problmes particulirement malaiss dtecter.
Ce mode de fonctionnement ouvre galement la possibilit doprer des actions illicites. Lon peut en effet visualiser le
nom et le mot de passe des utilisateurs qui se connectent un systme distant. Lors de la configuration dun parc
informatique, il est important de ne pas configurer toutes les interfaces en mode promiscuous. Afin dviter le plus
possible les risques de piratage, il est vivement conseill demployer des systmes de cryptage des informations
transitant au travers dun rseau.
8. Configuration permanente.
Aprs chaque dmarrage du systme, les modifications effectues, au moyen de la commande ifconfig, sont oublies.
Pour les rendre permanentes, il sindique dditer les scripts de dmarrage du systme. Ces scripts utilisent plusieurs
fichiers de configuration qui figurent, dans le cas dun systme Linux RedHat, dans le rpertoire
/etc/sysconfig/network-scripts. Pour chaque interface rseau il existe un fichier ifcfg-eth contenant la configuration de
linterface. Voici le rsultat dexcution de la commande ifconfig sur une machine ainsi que le contenu du fichier de
configuration relatif cette mme interface rseau :
J-F Challe
HEPCUT - ISIPH 30
9. Linuxconf.
La majorit des systmes UNIX offrent des outils permettant dviter la modification manuelle des fichiers de
configuration aux administrateurs. Sous Linux, lutilitaire linuxc onf permet, notamment, la configuration des interfaces
rseau. Voici un exemple des informations affiches par linuxconf lors de la configuration des interfaces rseau :
J-F Challe
HEPCUT - ISIPH 31
La plupart des problmes rencontrs dans la vie quotidienne dun administrateur de rseaux sont causs par une
mauvaise configuration des routeurs et non pas par des erreurs inhrentes aux protocoles de routage.
La configuration de routage dun rseau ne ncessite pas toujours lutilisation dun protocole de routage. Dans le cas o
les informations de routage sont immuables, il suffit de crer la table de routage manuellement. Il existe trois
configurations possibles :
le routage minimum. Un rseau totalement isol de tout autre rseau TCP/IP ne ncessite quun routage
minimum. Bon nombre de systmes crent une table de routage minimale lors de lexcution de la commande
ifconfig. Cela nest pas le cas des systmes Linux o il faut explicitement crer toutes les routes au moyen de
la commande route ;
le routage statique. Un rseau possdant un nombre rduit de passerelles vers dautres rseaux TCP/IP peut
tre configur statiquement. Une table de routage statique est construite manuellement en utilisant la
commande route. Les tables de routage statiques nvoluent pas en fonction des modifications du rseau. Ce
type de configuration est utilis lorsque les routes ne changent pas ;
le routage dynamique. Lorsquun rseau possde plus dune route possible vers la mme destination il est
impratif demployer un routage dynamique. Une table de routage dynamique est gnre partir des
informations changes par les protocoles de routage. Ces protocoles sont conus pour changer des
informations dajustement du contenu des tables de routage en fonction de lvolution des rseaux. Les
protocoles de routage grent des situations complexes de manire sre et efficace.
Cette table de routage dnombre trois interfaces. Pour chaque interface, la commande netstat montre les routes qui ont
t dfinies. La seconde ligne indique quil est possible datteindre au travers de linterface eth0 lhte (indicateur H)
dont ladresse est 212.68.198.221. La troisime ligne prcise que le sous-rseau 212.68.198.208 est joignable par
J-F Challe
HEPCUT - ISIPH 32
lentremise de linterface eth0. La dernire ligne informe de ce que nimporte quelle destination (0.0.0.0) est atteinte
par lintermdiaire de la passerelle (indicateur G) dont ladresse IP est 212.68.198.209.
Les capacits de cette table de routage sont aisment vrifiables au moyen de la commande ping. Cette commande
met le datagramme ICMP Echo Request pour forcer la machine distante mettre un datagramme ICMP Echo
Response vers la machine locale. Si les datagrammes peuvent partir de la machine locale vers la machine destination et
en revenir, les deux machines peuvent communiquer entre elles. Voici un exemple dutilisation de la commande ping.
Le premier argument donn dans cet exemple est loption add. La commande route prend comme premier argument
soit add, soit delete, ce qui lui permet de dterminer si elle doit ajouter une nouvelle route ou dtruire une route
existante. Il ny a pas dopration par dfaut. Si aucun argument nest donn, la commande route affiche le contenu de
la table de routage.
La valeur qui suit est ladresse de destination qui est celle atteinte via cette route.
Le fonctionnement de la commande route peut sembler obscur car rien ne spcifie dans la syntaxe de cette commande,
linterface laquelle la route doit tre applique. Le noyau du systme compare ladresse de destination aux adresses
rseau de toutes les interfaces configures. Seule linterface eth0 a une adresse rseau correspondant ladresse
destination dans la commande route. Ce principe de fonctionnement justifie labsence du nom de linterface rseau
dans la syntaxe de la commande route.
Si loption default est utilise comme adresse de destination, la commande route cre une route par dfaut (ladresse
associe une route par dfaut est 0.0.0.0). La route par dfaut est utilise chaque fois quil ny a pas de route
spcifique vers une destination donne. Lorsquun rseau ne dispose que dune seule passerelle, une route par dfaut
est une solution simple pour rediriger lensemble du trafic destination de rseaux externes.
Loption gw permet dindiquer ladresse IP de la passerelle externe travers laquelle les donnes sont transmises au
destinataire. Cette adresse doit tre celle dune passerelle ou bien celle dun rseau directement connect. Les routes
TCP/IP dfinissent ltape suivante atteindre sur le chemin qui mne les paquets jusqu leur destination. Ce prochain
relais doit tre directement accessible par la machine locale. Il est donc ncessaire quil se trouve sur le mme rseau.
Le dernier argument de la commande route concerne le paramtre metric du routage. Un grand nombre de systmes
exige la prsence de ce paramtre lors de la dfinition dune route.
J-F Challe
HEPCUT - ISIPH 33
Imaginons que toutes les machines du rseau soient configures sauf celle portant ladresse IP 192.168.1.10. Le rseau
dadresse 192.168.1.0 est constitu de deux passerelles, lune donnant accs au rseau 192.168.2.0 et une autre
permettant de rejoindre Internet. La passerelle 192.168.1.1 sera la passerelle par dfaut car utilise par des milliers de
routes. Un nombre plus limit de routes passant par 192.168.1.30 facilite leurs saisies. Le nombre de routes traversant
une passerelle est llment dcisif du choix de la passerelle adopter comme tant par dfaut. Mme si la majorit du
trafic rseau transite par la passerelle 192.168.1.30 pour rejoindre les autres machines du rseau, celle par dfaut devrait
tre 192.168.1.1.
La mise en service de lordinateur portant ladresse IP 192.168.1.10 ncessite lexploitation des commandes ifconfig et
route pour configurer respectivement linterface rseau et le routage. Voici la commande de configuration de linterface
rseau de cet ordinateur :
Afin de rendre cette interface utilisable, il est ncessaire de dfinir des routes. Il faut spcifier que linterface peut :
La commande route doit tre utilise quatre fois de manire garnir correctement la table de routage. Voici les quatre
utilisations de la commande route ncessaires la configuration du routage :
J-F Challe
HEPCUT - ISIPH 34
Loption host, de la commande route, permet de spcifier que la destination est un hte (une machine). Loption net
stipule que la destination est un rseau. Loption default gw prcise que toutes les destinations autres que celles
prsentes dans la table de routage sont joignables par lintermdiaire dune passerelle dont ladresse IP est 192.168.1.1.
Loption default est un moyen de spcifier ladresse 0.0.0.0 dsignant nimporte quelle destination possible. Loption
gw employe seule permet de spcifier la passerelle donnant accs au sous-rseau dadresse 192.168.2.0
Il est possible de dfinir le routage de la machine 192.168.1.10 sans dterminer laccs au rseau 192.168.2.0. Si la
passerelle 192.168.1.1 est correctement configure, sa table de routage dfinit laccs ce sous-rseau. Les paquets
provenant de la machine 192.168.1.10 destination du sous-rseau 192.168.2.0 seraient alors redirigs vers la bonne
passerelle. En ralit, la machine dadresse 192.168.1.10 est informe par la passerelle par dfaut de ce que les
informations doivent tre achemines vers 192.168.1.30. Cest un message ICMP Redirect qui est envoy par la
passerelle par dfaut. Ce message a pour effet de modifier la table de routage de la machine 192.168.1.10 pour tenir
compte du nouveau trajet possible.
Certains administrateurs rseau exploitent ces redirections lors de la conception du rseau. Toutes les machines sont
configures avec une route par dfaut, mme celles connectes un rseau possdant plus dune passerelle. Ces
passerelles changent des informations de routage via les protocoles de routage et redirigent les machines vers la
meilleure passerelle utiliser pour une route donne. Ce type de routage, dpendant des redirections ICMP, est devenu
trs populaire grce lutilisation des ordinateurs personnels. Beaucoup de PC ne peuvent pas excuter de protocole de
routage. Certains le peuvent mais ne possdent pas la commande route et sont limits une seule route par dfaut. De
faon vidente, ce type de routage est ais mettre en place et est bien adapt une configuration via un serveur de
configuration, puisque la mme route par dfaut est utilise sur toutes les machines. Pour ces raisons, certains
administrateurs rseau encouragent la redirection de messages ICMP.
Par contre dautres administrateurs prfrent viter ces redirections et maintiennent directement le contenu des tables de
routage. Au moyen de la commande route, et pour viter ces redirections, des routes spcifiques doivent tre installes
pour chaque sous-rseau.
Le choix dun routage statique impose la modification des scripts de dmarrage afin dy ajouter les routes statiques
souhaites.
Sous un systme Linux RedHat, le fichier /etc/sysconfig/static-routes contient la dfinition des routes statiques. Voici
un exemple de contenu de ce fichier :
J-F Challe
HEPCUT - ISIPH 35
Le systme RedHat ne ncessite donc pas la modification des scripts de dmarrage du systme mais ldition dun
fichier de configuration.
Un protocole interne est utilis lintrieur de systmes rseau indpendants. En utilisant la terminologie TCP/IP, ces
systmes rseau indpendants sont appels des systmes autonomes. Un systme autonome est un ensemble de rseaux
et de passerelles avec son propre mcanisme interne de traitement des informations de routage et de transmission de ces
informations. A lintrieur dun systme autonome, les informations de routage sont donc changes en utilisant un
protocole interne choisi par ladministrateur du systme.
Tous les protocoles de routage internes ralisent les mme oprations de base savoir :
RIP (Routing Information Protocol) est le protocole de routage interne le plus rpandu sur les plates -formes
UNIX. Ce protocole, destin aux rseaux locaux fait partie intgrante des systmes UNIX. RIP choisit la
meilleure route en utilisant le nombre le plus faible dtapes. Il sagit du nombre de passerelles travers
lesquelles les informations doivent transiter avant datteindre leur destination. Le protocole RIP suppose la
meilleure route comme tant celle qui utilise le moins de passerelles. Cette approche est appele algorithme
vecteur de distance.
Hello est un protocole utilisateur du temps comme facteur de dcision lorsquil est amen choisir une route.
Le principe est dexploiter la dure mise par un datagramme pour effectuer un trajet aller-retour entre la source
et la destination. Un paquet Hello contient lheure dexpdition. Lorsque le paquet arrive destination, le
systme rcepteur dtermine le temps mis par le paquet pour atteindre la destination. Hello est un protocole de
moins en moins utilis. A lorigine, il tait employ sur la dorsale NSFNET 56kps.
IS-IS (Intermediate System to Intermediate System) est un protocole interne de routage provenant du modle
OSI. Il sagit dun protocole par state-link (tat des liaisons) de type SPF (Shortest Path First). Ce protocole
est utilis sur les lignes T1 dont la capacit est de 1.544 Mb/s.
OSPF (Open Shortest Path First) est un autre protocole par tat des liaisons dvelopp pour TCP/IP. Il est
particulirement bien adapt aux rseaux importants.
Les protocoles RIP et OSPF seront les seuls tre dvelopps dans la suite de cet expos car ils sont les plus
frquemment employs.
Le protocole RIP est lanc par le dmon de routage routed. Ds son lancement, ce dmon effectue une requte en vue
dobtenir les mises jour en matire de routage ensuite il attend les rponses ses requtes. Lorsquun routeur est
configur pour rpondre ce type de requtes, il rpond par un paquet de mise jour constitu des informations de sa
J-F Challe
HEPCUT - ISIPH 36
table de routage. Ce paquet contient les adresses de destination de la table de routage et les mtriques de routage
associes chaque destination. Ces paquets sont mis non seulement pour rpondre des requtes mais aussi de temps
autre pour que les informations de routage restent valables.
Le dmon routed utilise les informations contenues dans les paquets de mise jour pour construire sa table de routage.
Si ces informations contiennent une route dirige vers une destination qui nexiste pas dans la table de routage locale,
une nouvelle route est cre. Si dans les information de mise jour figure une route dont la destination est dj prsente
dans la table de routage locale, cette nouvelle route nest utilise que si elle est de moindre cot que celle dj
mmorise. Le cot de la nouvelle route est dtermin en additionnant au cot pour atteindre la passerelle mettrice du
paquet de mise jour le cot spcifi dans le paquet. Si la somme obtenue est infrieure la mtrique actuelle de la
route, la nouvelle route est utilise.
Le protocole RIP dtruit galement des routes de la table de routage. Cette opration de destruction est effectue dans
deux cas, si :
la passerelle vers une destination indique que le cot de la route est suprieur 15 ;
RIP prsume quune passerelle qui nenvoie pas rgulirement dinformations de mise jour est hors service.
Toutes les routes passant par cette passerelle sont dtruites si aucune mise jour nest reue aprs un certain
temps. En rgle gnrale, des mises jour sont transmises toutes les 30 secondes. Si une passerelle ne diffuse
pas dinformation aprs 180 secondes, toutes les routes passant par cette passerelle sont supprime de la table
de routage.
Lactivation du protocole RIP ncessite le lancement du dmon routed par lintermdiaire de la commande routed. Le
dmon routed lit le fichier /etc/gateways au moment de son dmarrage. Les informations contenues dans ce fichier sont
ajoutes la table de routage. Le protocole RIP est capable de crer une table de routage fonctionnelle en utilisant les
mises jour reues des diffuseurs RIP. Il est parfois ncessaire de complter cette information par une route initiale par
dfaut ou par des informations concernant une passerelle qui nannonce pas ses routes. Dans ce cas, le fichier
/etc/gateways offre les informations de routage supplmentaires. Ce fichier sert le plus souvent dfinir une route par
dfaut comme le montre lexemple suivant :
Cette entre dbute par le mot-cl net. Toutes les entres commencent soit par net, soit par host pour indiquer que
ladresse qui suit est soit celle dun rseau, soit celle dune machine. Ladresse de destination 0.0.0.0 est ladresse
utilise pour la route par dfaut. Ensuite, le mot-cl gateway est suivi de ladresse de la passerelle quil faut contacter
pour rejoindre la destination spcifie. Aprs cela, le mot-cl metric est suivi dune valeur numrique. Cette valeur
dsigne le cot de la route. Cette mtrique reprsente le nombre de passerelles franchir pour rejoindre la destination.
Toutes les entres du fichier /etc/gateways se terminent soit par passive, soit par active. Le mot-cl passive signifie que
la passerelle donne dans lentre nest pas prendre en considration dans lchange des informations de routage.
Cela peut savrer utile lorsque la passerelle ne diffuse pas dinformations de routage. Dans ce cas, le mot-cl passive
permet dviter la destruction de la route en raison de la non rception dinformations de mises jour. Lutilisation de
loption passive est donc une autre manire de dfinir une route statique sous le contrle du dmon routed. Par contre,
le mot cl active cre une route qui peut tre mise jour par RIP. Une passerelle active est sense produire
rgulirement des informations de mises jour.
Le protocole RIP semble ais implanter et configurer. Nanmoins, RIP possde trois dfauts :
Envergure de rseau limite. La plus longue route gre par RIP est constitue de 15 relais. Un routeur RIP ne
peut maintenir la table de routage dun rseau constitu de plus de 15 passerelles en cascade.
Convergence lente. La destruction dune route ncessite lchange dinformations de mises jour jusqu ce
que le cot atteigne 16 (comptage jusqu linfini). Cela peut se produire lorsquun changement dans la
structure du rs eau loigne une destination. De plus, RIP doit attendre 180 secondes avant de dtruire une
route incorrecte. En claire il faut attendre un dlai relativement important avant que la table de routage reflte
ltat rel du rseau.
Routage sur des classes compltes. Pour le protocole RIP, toutes les adresses font partie des classes A, B ou C.
Cela rend RIP incapable de grer un rseau sans classe.
J-F Challe
HEPCUT - ISIPH 37
Il ne sera pas possible de changer lenvergure du rseau de manire significative car le protocole doit tre capable
datteindre une mtrique dont la valeur est considre comme infinie. Le travail ralis sur le protocole RIP est
concentr sur la convergence lente et sur le routage de classes compltes.
Des fonctionnalits ont t ajoutes au protocole RIP afin de rsoudre le problme de la lenteur de convergence. Afin
de comprendre les amliorations apportes, il faut matriser la notion de comptage jusqu linfini.
Exemple de rseau.
Lexemple ci-dessus montre que A atteint le sous-rseau 3 via les passerelles B et C. Le sous-rseau 3 est deux relais
de A et un relais de B. Donc, B annonce un cot de 1 pour le sous-rseau 3 et A annonce un cot de 2 pour ce mme
sous-rseau. Le trafic est donc rout par B pour atteindre le sous-rseau 3. Ce fonctionnement persiste jusquau
moment o la passerelle C sarrte. Dans ce cas, B attend une information de mise jour manant de C durant 180
secondes. Pendant cette priode, B continue denvoyer A des informations de mises jour stipulant que B se trouve
toujours 1 relais du sous-rseau 3. Lorsque les 180 secondes sont coules, B enlve toutes les routes qui passaient
par C de sa table de routage. Nanmoins, A dispose toujours, dans sa table de routage, dune information stipulant quil
se trouve 2 relais du sous-rseau 3. Une information de mise jour est envoye de A vers B ce qui provoque la mise
jour de la table de routage de B qui considre tre maintenant 3 relais du sous-rseau 3. La machine B envoie la
machine A une information de mise jour stipulant quelle est prsent 3 relais du sous-rseau 3. La machine A met
sa table de routage jour en considrant tre 4 relais du sous-rseau 3. Ce processus dchange et daugmentation du
cot de la route vers le sous-rseau 3 continue jusquau moment o un cot de 16 est atteint sur les deux machines.
Le split horizon (horizon partag) et le poison reverse (retour empoisonn) sont deux fonctionnalits qui tentent
dempcher le comptage jusqu linfini.
J-F Challe
HEPCUT - ISIPH 38
La fonctionnalit split horizon permet une passerelle de ne pas diffuser les informations de mises jour vers
les sous-rseaux qui ont permis la cration de cette information. Cette rgle interdit la passerelle A de
diffuser la passerelle B des informations de routage concernant le sous-rseau 3 car les informations ont t
obtenues partir de la passerelle B.
La fonctionnalit poison reverse est une amlioration du split horizon. Linterdiction de diffusion est la mme
que pour le split horizon. Avec cette fonctionnalit, la passerelle A annonce aux systmes connects par
lintermdiaire du sous-rseau 12 que le sous-rseau 3 a maintenant une mtrique de 16.
En supposant que les fonctionnalits split horizon et poison reverse soient implantes, que se passe-t-il si la passerelle A
cesse son activit ? Avec le split horizon, les passerelles D et E nannoncent pas A la route vers le sous-rseau 12 car
elles ont appris la route de A. Toutefois, elles annoncent la route vers le sous-rseau 12 tous les autres sous-rseaux.
Lorsque la passerelle A sarrte, les passerelles D et E effectuent leur propre comptage jusqu linfini avant de
supprimer la route vers le sous-rseau 12. Ds la fin du comptage linfini, les passerelles D et E envoient un trigger
update (mise jour dclenche) aux autres sous-rseaux afin de limiter le comptage linfini et de minimiser la bande
passante employe. Ainsi, lorsque les passerelles D et E ont termin le comptage linfini, une mise jour dclenche
est envoye aux sous-rseaux 25 et 36 pour quils suppriment la route vers le sous-rseau 12.
Le protocole RIP-2 dfini par le RFC 1723 est une nouvelle version de RIP capable de prendre en charge les rseaux
sans classe. Pour cela, le masque de sous-rseau fait partie intgrante des paquets changs. Par rapport RIP, les
mises jour sont transmises par lintermdiaire de ladresse multicast 224.0.0.9.
Les passerelles qui utilisent toujours le protocole RIP peuvent exploiter les informations du protocole RIP-2. Il suffit
ces routeurs dextraire les donnes dont ils ont besoin des paquets RIP-2.
OSPF, dfini dans le RFC 2178, est un protocole par tat de liaison. Il est trs diffrent de RIP. Un routeur utilisateur
de RIP partage les informations concernant le rseau tout entier (au moins un systme unique autonome) avec ses
voisins. Inversement, un routeur qui utilise OSPF partage ses informations concernant ses voisins avec le rseau tout
entier. OSPF dfinit quelques notions :
Zone (area). Une zone est un ensemble arbitraire de rseaux, de machines, de routeurs interconnects. Les
zones changent des informations de routage avec dautres zones par lintermdiaire de routeurs interzones
(area border routers)
Dorsale (backbone). Une dorsale est une zone particulire qui interconnecte toutes les zones lintrieur dun
systme autonome. Chaque zone doit tre connecte la dorsale car elle est charge de diffuser les
informations de routage entre les zones.
Zone terminale (stub area). Une zone terminale ne possde quun seul routeur interzone. En claire, il ny a
quune seule route vers lextrieur de cette zone. Le routeur doit donc simplement sannoncer comme tant la
route par dfaut.
Un systme autonome de grande taille doit tre divis en zones. Le rseau utilis dans lexemple ci-dessous est petit
mais rien ninterdit de le diviser en zones. Supposons quil soit divis en trois zones : la zone 1 contient le sous-rseau
3, la zone 2 contient les sous-rseaux 1 et 12 et la zone 3 contient les sous-rseaux 25, 36 et les liaisons PPP. De plus,
on pourrait dfinir la zone 1 comme tant une zone terminale car C est dans cette zone le seul routeur interzone. Nous
pourrions galement dfinir la zone 2 comme tant une dorsale car elle interconnecte les deux autres zones et toutes les
informations de routage entre les zones 1 et 3 doivent tre diffuses par la zone 2. La zone 2 contient les routeurs
interzones A et C et un routeur interne, B. La zone 3 contient trois routeurs A, D et E.
Le protocole OSPF offre une grande souplesse de dcoupe des systmes autonomes.
J-F Challe
HEPCUT - ISIPH 39
Tout routeur OSPF construit un graphe orient modlisant le rseau tout entier. Ce graphe est une carte du rseau du
point de vue du routeur. La racine du graphe est le routeur.
C(0)
5
B(5)
10
A(15)
20 20
D(35) E(35)
20 20
E(55) D(55)
Graphe du routeur C.
J-F Challe
HEPCUT - ISIPH 40
Le graphe est construit partir de la base de donnes dtats de liaison. Elle inclut des informations sur les routeurs du
rseau ainsi que sur tous leurs voisins. Pour le systme autonome qui nous occupe il y a 5 routeurs et 10 voisins. Un
cot est dfini pour chaque routeur et chaque liaison. Cela permet au systme de calculer le plus court chemin dans un
graphe ce qui dtermine la route emprunter pour atteindre une destination.
Pour dcouvrir ses voisins, un routeur envoie un paquet hello et attend de recevoir de ses voisins des paquets hello. Le
paquet hello contient le routeur metteur et la liste des routeurs adjacents.
Dans un premier temps, les systmes schangent des messages afin dtablir un dialogue entre les passerelles EGP.
Les participants une communication EGP sont appels des voisins. Lchange dinformations entre les passerelles est
appel acquisition dun voisin.
Ds que les voisins sont acquis, les informations de routage sont demandes. Le voisin rpond en envoyant un paquet
daccessibilit appel mise jour. La passerelle rceptrice utilise ces informations pour garnir sa table de routage. Si
un voisin nest pas mme de rpondre trois demandes successives dinformations de routage, la passerelle
demanderesse supprime les routes qui passent par ce voisin de sa table de routage.
Actuellement, les passerelles centrales dInternet ne sont pas mme de faire face lvolution rapide du rseau.
Aussi, le protocole EGP qui tait employ dans ces passerelles a-t-il t remplac par un protocole distribu sadaptant
lvolution rapide dInternet.
Les politiques de routage ne font pas partie du protocole BGP. Elles sont dfinies de manire externe au moment de la
configuration du systme. Les fournisseurs daccs Internet ont la facult de dvelopper des politiques de routage
bases sur des accords bilatraux avec dautres fournisseurs daccs.
BGP peut tre configur de manire contrler les routes annonces ainsi que les routes acceptes des autres
fournisseurs.
Le protocole BGP est implant au-dessus de TCP/IP, ce qui permet dutiliser un service de transmission fiable. BGP
utilise le port 179. Il contacte ses voisins en utilisant le systme de ngociation TCP, en trois tapes.
Dans le cas o un protocole de routage externe doit tre mis en uvre, le choix oprer dpendra de celui effectu par
le voisin. Pour que deux systmes autonomes puissent schanger des informations de routage, il faut quils exploitent
le mme protocole externe. Dans la majorit des cas, le protocole BGP est adopt.
J-F Challe
HEPCUT - ISIPH 41
Le type dquipement influence galement le choix du protocole. Les routeurs sont gnralement des systmes ddis
grant un grand nombre de protocoles. Les ordinateurs ne font gnralement pas tourner des protocoles de routage.
Permettre des ordinateurs de participer au routage dynamique pourrait rduire le choix de protocoles. Par exemple,
les systmes UNIX sont gnralement livrs avec uniquement le protocole RIP. Toutefois, le dmon gated des
systmes UNIX permet dexploiter un grand nombre de protocoles.
Mme si les performances des systmes ddis sont suprieures celles des systmes UNIX, gated permet dexploiter
une machine UNIX comme routeur.
Le dmon gated prsente lavantage doffrir des fonctionnalits en principe uniquement disponibles sur des routeurs
ddis, elles sont celles ci :
les informations de plusieurs protocoles sont combines par gated de manire choisir les meilleures routes ;
des routes apprises par un protocole interne peuvent tre diffuses en utilisant un protocole externe. Cela
permet dadapter les annonces externes aux changements internes ;
les politiques de routage peuvent tre implantes pour contrler quelles routes sont acceptes et quelles routes
sont diffuses ;
tous les protocoles sont configurs au moyen du fichier /etc/gated.conf ;
le dmon gated est mis jour rgulirement.
Dans toute implantation dun protocole de routage, il existe un aspect externe et un aspect interne. Le ct externe
permet lchange dinformations avec les systmes distants. Le ct interne quant lui utilise les informations reues
des systmes distants pour mettre jour la table de routage. Dans le cas de gated, les fonctions du protocole externe
sont les mmes que celles des autres implantations. Par contre, la partie interne, est propre au systme UNIX.
Chaque protocole possde sa propre mtrique qui dtermine la meilleure route prendre. Aussi, gated doit-il jongler
avec ces diffrentes mtriques pour oprer un choix de routage. Pour cela, gated utilise une valeur permettant de
pondrer les protocoles. Cette valeur est appele prfrence. Ces prfrences permettent gated de combiner en une
seule table de routage les informations de routage manant de diffrentes sources. Le tableau suivant donne la liste des
sources dinformations potentielles reues par gated ainsi que les prfrences associes. Ces valeurs de prfrences
schelonnent de 0 255. La valeur la plus petite indique la route prioritaire.
Les prfrences peuvent tre modifies lors de la configuration du dmon gated. Il est aussi possible daffecter des
prfrences des routes provenant :
J-F Challe
HEPCUT - ISIPH 42
7. Configurer gated.
Le dmon gated lit sa configuration partir du fichier /etc/gated.conf. Les commandes quil contient ressemblent du
code C. Toutes les instructions sont termines par un point-virgule. Les accolades permettent de rassembler les
instructions.
La passerelle B interconnecte le sous-rseau 172.16.9.0 et le sous-rseau 172.16.1.0. Pour les machines du rseau 9, la
passerelle se prsente comme une passerelle par dfaut vers le monde extrieur. Elle utilise RIP-2 et diffuse les routes
sur le sous-rseau 9. Sur le sous-rseau 1, la passerelle B se prsente comme tant la passerelle donnant accs au sous-
rseau 9 en utilisant OSPF. La passerelle C fournit laccs Internet au sous-rseau 1. Puisque la passerelle C fournit
cet accs, elle se prsente comme tant celle par dfaut aux autres systmes du sous-rseau 1 en utilisant OSPF. Vu de
lextrieur, la passerelle C offre un accs au systme autonome, elle utilise BGP pour se prsenter comme tant le
chemin pour atteindre les rseaux quelle dtecte grce OSPF.
rip yes {
nobroadcast;
interface 172.16.9.23
version 2
multicast
authentication simple "password";
};
Linstruction rip yes active RIP. Le mot-cl nobroadcast vite la machine de diffuser ses mises jour par un paquet
broadcast. Cette option est active par dfaut lorsque la machine ne possde quune seule interface rseau.
Le membre interface dfinit les paramtres de linterface pour RIP. Ce memb re indique que les mises jour RIP-2
seront reues sous la forme de multicasts sur linterface dont ladresse IP est 172.16.9.23. De plus, les mises jour
contiendront une authentification sous la forme dun mot de passe en clair qui sera dans notre cas password. Ce mot de
passe permet daccepter des mises jour dun diffuseur RIP mais uniquement dans le cas o le mot de passe fourni est
correct.
J-F Challe
HEPCUT - ISIPH 43
interfaces {
interface 172.16.9.1 passive;
};
routerid 172.16.1.9;
rip yes {
broadcast;
defaultmetric 5;
interface 172.16.9.1
version 2
multicast
authentication simple "password";
};
ospf yes {
backbone {
authtype simple;
interface 172.16.1.9 {
priority 5
authkey "pw";
};
};
};
Linstruction interfaces dfinit les caractristiques du routage des interfaces rseau. Le mot cl passive du membre
interface est utilis pour crer une route statique qui ne sera pas retire de la table de routage. Dans ce cas, la route
permanente passe par une interface rseau directement relie la passerelle. En principe, lorsque gated ne reoit plus
de mises jour de routage par une interface, il considre quelle fonctionne mal. En consquence, son cot est
augment pour ne plus router de trafic via cette interface. Dans cet exemple, la passerelle B est le seul moyen daccs
au rseau 9. Il ny aura pas dinformations de mise jour en provenance de cette interface. Il faut ds lors viter que
gated ne supprime la route vers le rseau suite du manque de rception dinformations de mises jour. En qualifiant
la route de passive, rien ne permettra gated dliminer la route.
Linstruction routerid dfinit lidentification du routeur pour le protocole OSPF, processus ncessaire car, par dfaut,
gated utilise ladresse de la premire interface. Cette instruction permet de spcifier linterface qui utilise vritablement
OSPF.
Par rapport lexemple prcdent, linstruction rip yes contient la dfinition dune mtrique. Le membre defaultmetric
dfinit la mtrique RIP utiliser pour annoncer les routes apprises dautres protocoles de routage. Cette passerelle
utilise les protocoles RIP et OSPF. Il est ncessaire de diffuser les routes apprises par OSPF aux clients RIP. Sans la
prcision dune mtrique par dfaut, les clients RIP ne seraient pas informs des routes transmises par OSPF.
Linstruction ospf yes active le protocole OSPF. La passerelle B fait partie de la zone dorsale. Pour reflter cette
situation, le membre backbone est spcifi.
Le membre authtype simple indique quune authentification simple base sur des mots de passe est utilise dans la zone
dorsale. Deux choix dauthentification sont possibles : simple ou none. Le paramtre none indique quaucune
identification nest effectue. Le paramtre simple prcise quun mot de passe doit tre utilis. Ce mot de passe est
dfinit par authkey.
Linterface qui relie ce routeur la zone dorsale est dfinie par le membre interface.
J-F Challe
HEPCUT - ISIPH 44
autonomoussystem 249;
routerid 172.16.1.1;
rip no;
bgp yes {
preference 50 ;
group type external peeras 164 {
peer 10.6.0.103 ;
peer 10.20.0.72 ;
};
};
ospf yes {
backbone {
authtype simple ;
interface 172.16.1.1 {
priority 10 ;
authkey "pw" ;
} ;
} ;
};
export proto bgp as 164 {
proto direct ;
proto ospf ;
};
export proto ospfase type 2 {
proto bgp as 164 {
all ;
};
};
Cette configuration active la fois le protocole BGP et le protocole OSPF. Chaque systme autonome porte un
identificateur sous forme dun numro. Le protocole BGP doit connatre cet identificateur qui est par exemple 249. Le
protocole OSPF doit connatre lidentification du routeur. Cette information est fournie par la dfinition routerid.
Notons que autonomoussystem et routerid sont des dfinitions et non pas des instructions. Comme dans la majorit des
langages, les dfinitions doivent prcder les instructions.
Par dfaut, le protocole RIP est lanc par gated. Dans cette configuration, RIP nest pas utilis, il faut donc le
dsactiver.
Le protocole BGP est activ au moyen de linstruction bgp yes. Le membre preference 50 fixe la prfrence des routes
reues par BGP 50. Ce membre permet donc de modifier les prfrences par dfaut. Pour rappel, la prfrence par
dfaut pour le protocole BGP est de 170.
Le membre groupe dfinit que la passerelle C se connecte un systme autonome portant lidentification 164. Les
accords de peering permettent de spcifier partir de quelles passerelles les informations de mises jour seront
acceptes. Dans lexemple, nous souhaitons accepter les mises jours en provenance des passerelles 10.6.0.103 et
10.20.0.72. Dans le cas o toutes les mises jour provenant de nimporte quel systme sont acceptes, il suffit de
remplacer le mot peer par allow.
La configuration du protocole OSPF est la mme que celle de lexemple prcdent sauf en ce qui concerne la priorit
qui est de 10 au lieu de 5. La passerelle C doit grer un trafic particulirement important, une priorit moindre lui est
attribue de manire favoriser lutilisation de la passerelle B.
Linstruction export contrle les routes que gated indique aux autres routeurs. La premire instruction export demande
gated dutiliser BGP (proto bgp) pour diffuser les informations de routage au systme autonome 164. Les
informations qui seront diffuses proviennent dinformations directes (proto direct) ou de routes obtenues partir du
J-F Challe
HEPCUT - ISIPH 45
protocole OSPF (proto ospf). Linstruction export spcifie donc vers qui les informations sont transmises alors que le
membre proto dfinit les informations qui seront diffuses.
La seconde instruction export a la signification suivante : les routes obtenues du systme autonome 164 par le protocole
BGP sont diffuses via OSPF. Puisque ces routes proviennent dun systme autonome externe elles sont annonces
ASE. Le protocole de diffusion est donc OSPFASE.
Les routes reues dun systme autonome externe peuvent avoir ou non une mtrique comparable au protocole OSPF.
Dans notre exemple, les mtriques ne sont pas comparables cest la raison pour laquelle le paramtre type 2 est ajout.
Si les mtriques taient comparables le type 1 serait spcifi.
La seconde instruction export prcise galement que la source des routes provient du protocole BGP (proto bgp) en
connexion avec le systme autonome 164.
J-F Challe
HEPCUT - ISIPH 46
J-F Challe
HEPCUT - ISIPH 47
V. Configuration du DNS.
Le service des noms nest pas ncessaire aux ordinateurs pour communiquer entre eux. Il sagit en fait dun service
dont le but est de rendre le rseau plus convivial. Les logiciels peuvent se contenter des adresses IP mais les utilisateurs
prfrent utiliser des noms de machines.
1. Le fichier /etc/hosts.
Les petites infrastructures rseau ne ncessitent pas toujours la configuration dune architecture client/serveur pour
transformer les noms symboliques en adresses IP. Les systmes UNIX disposent du fichier /etc/hosts. Ce fichier
associe un ou plusieurs noms une adresse IP. Lorsquun nom symbolique est employ, le systme consulte, dabord le
contenu de ce fichier dans un but de recherche dune adresse IP correspondant au nom spcifi. Voici un exemple de
fichier /etc/hosts :
Cette configuration nest exploitable que sur la machine o rside le fichier. Cela ne constitue donc pas une base de
donnes distribue, exploitable par dautres htes du rseau. A petite chelle, il est envisageable de configurer plusieurs
ordinateurs de cette manire. A plus grande chelle, cette mthode prsente le dsavantage dimposer la gestion de
multiples copies rigoureusement identiques du mme fichier.
BIND supporte quatre niveaux de services qui peuvent tre dfinis dans les fichiers de configuration :
Les systmes rsolveurs. Le rsolveur est le programme qui demande des informations concernant un domaine
aux serveurs de noms. La majorit des ordinateurs, appels systmes rsolveurs, nexploitent que le rsolveur ;
ils nexcutent pas de serveur de noms. Ces systmes ncessitent uniquement la modification du fichier
/etc/resolv.conf.
Les serveurs primaires. Le serveur primaire de noms est la source officielle de toutes les informations
concernant un domaine spcifique. Les informations relatives au domaine figurent dans un fichier de zone. La
configuration dun serveur primaire implique la cration dun ensemble complexe de fichiers.
Les serveurs secondaires. Un serveur secondaire transfre un ensemble complet dinformations sur le domaine
partir du serveur primaire. Ce transfert est appel un transfert de fichier de zone. Un serveur secondaire
conserve une copie complte de toutes les informations du domaine. Cela lui permet de rpondre aux requtes
manant des clients comme sil tait le serveur primaire. La seule diffrence entre un serveur primaire et un
serveur secondaire est linexistence de fichiers de description des zones au niveau du serveur secondaire. Un
serveur secondaire est galement source officielle dinformations concernant un domaine spcifique. Les
domaines sont gnralement grs par un serveur primaire et un ou plusieurs serveurs secondaires. De cette
manire, en cas de panne du serveur primaire, les informations du domaine seront toujours disponibles. Cela
contribue la robustesse du systme.
Les serveurs caches. Un serveur de cache utilise le programme de serveur de noms mais il ne possde aucun
fichier de configuration de la base de donnes distribue. Un serveur cache se contente dapprendre des
informations provenant dautres serveurs de noms. Lorsquun serveur cache dispose de linformation
demande par un client, aucune requte vers dautres serveurs de noms nest lance. La copie locale de
linformation recherche est envoye au client. Ce type de serveur nest donc pas la source officielle des
informations ces donnes tant de seconde main. Lexploitation dun serveur cache limite le nombre de
J-F Challe
HEPCUT - ISIPH 48
requtes formules aux serveurs qui constituent la source officielle des informations. En corollaire, cette
configuration diminue le trafic rseau et, par le fait mme, conomise la bande passante.
Un serveur peut utiliser nimporte laquelle de ces configuration ou, comme cela est souvent le cas, il peut associer
plusieurs lments de plusieurs configurations.
3. Configurer le rsolveur.
La configuration du rsolveur figure dans le fichier /etc/resolv.conf et ce fichier est lu ds linstant o un processus
utilisant le rsolveur est lanc. En labsence de ce fichier, le rsolveur tente de se connecter au serveur named
fonctionnant sur la machine. Bien que cela puisse fonctionner, cette technique nest pas recommandable. En effet, cela
configure le rsolveur avec des paramtres par dfaut dont les valeurs peuvent varier dun systme lautre.
Il existe certaines variations dpendant du systme utilis mais voici la signification des entres les plus couramment
acceptes par la plupart des systmes :
nameserver. Les entres nameserver indiquent les adresses IP des serveurs auxquelles le rsolveur envoie ses
requtes pour obtenir des informations. Les serveurs de noms sont interrogs dans lordre de leur apparition
dans le fichier. Si aucune rponse nest reue dun serveur, le serveur suivant dans la liste est alors consult
jusqu ce que le nombre maximum de serveurs soit essay. Dans la plupart des configurations, BIND est
capable de grer trois serveurs de noms. Si aucune entre nameserver ne se trouve dans le fichier
/etc/resolv.conf ou si ce fichier nexiste pas, toutes les requtes sont envoyes au serveur de la machine.
Toutefois, si le fichier /etc/resolv.conf contient une entre nameserver, le serveur local nest pas interrog sauf
si une entre nameserver pointe sur elle. Dans le cas o le serveur de nom est implant sur la machine o le
rsolveur est configur, il est prfrable de ne pas employer ladresse loopback de la machine cela pouvant
poser des problmes sur certaines versions dUNIX.
domain. Lentre domain dfinit le nom de domaine par dfaut. Le rsolveur ajoute le nom de domaine par
dfaut nimporte quel nom de machine qui ne contient pas de point. Le rsolveur utilise ensuite le nom
expans dans la requte quil envoie au serveur de noms. Dans lexemple ci-dessus, une requte P100 sera
complte en P100.challe.be.
search. Lentre search dfinit une liste de domaines recherchs lorsquun nom ne contient pas de point. Cela
signifie que les entres domain et search sont redondantes. En ralit, lorsquun nom ne contient pas de point,
lentre domain est en premier lieu utilise pour complter le nom. Si la recherche choue, ce sont les entres
search qui sont exploites dans lordre de leurs apparitions pour tenter de complter le nom. Il nest pas
recommand dutiliser la fois domain et search dans une mme configuration.
Les recherches dans la base de donnes du DNS ignorent la casse des caractres. Les informations peuvent tre saisies
en majuscules, en minuscules ou dans nimporte quel mixage des deux.
J-F Challe
HEPCUT - ISIPH 49
Le premier enregistrement de chacun des fichiers est lenregistrement SOA. Il indique que le serveur de noms est la
meilleure source dinformations pour les donnes de cette zone. Considrons que le serveur de noms a lautorit sur la
zone challe.be
Le nom challe.be. doit commencer la premire colonne du fichier. Ladministrateur doit sassurer de ce que le nom se
termine bien par un point de manire prciser un nom complet depuis la racine de larbre du DNS.
Le mot-cl IN signale que lenregistrement est dans la classe internet. Il existe dautres classes, mais aucune nest
actuellement trs utilise. Le champ classe est facultatif ; sil est omis le systme supposera quil sagit de la classe IN.
Le premier nom aprs SOA (challe.be) est le nom du serveur-maitre primaire. Le second nom est ladresse email de
ladministrateur du domaine. Pour lire correctement cette adresse mail il faut remplacer le premier point par le symbole
@. Les serveurs de noms nutilisent jamais cette adresse email ; elle est l titre indicatif.
Les parenthses permettent de prsenter lenregistrement SOA sur plusieurs lignes. La plupart des champs lintrieur
de lenregistrement SOA sont destins aux serveurs secondaires.
Le mme enregistrement SOA figure au dbut des fichiers de rsolution inverse des noms.
Les enregistrements NS permettent de dfinir les serveurs de noms. Dans notre exemple, il y a un serveur de noms
implant dans lhte P100.
Il faut tablir la correspondance entre les noms et les adresses IP. Il faut ajouter les correspondances au fichier
challe.be.
J-F Challe
HEPCUT - ISIPH 50
P100.challe.be. IN A 192.168.1.1
macii.challe.be. IN A 192.168.1.2
powerpc.challe.be. IN A 192.168.1.3
fuji.challe.be. IN A 192.168.1.4
p166.challe.be. IN A 192.168.1.5
P200.challe.be. IN A 192.168.1.10
P133.challe.be. IN A 192.168.1.20
P166PLUS.challe.be. IN A 192.168.1.30
P2450.challe.be. IN A 192.168.1.40
P2300.challe.be. IN A 192.168.1.50
se30.challe.be. IN A 192.168.1.60
P3450.challe.be. IN A 192.168.1.70
P2366.challe.be. IN A 192.168.1.80
modem.challe.be. IN A 192.168.1.100
HP4.challe.be. IN A 192.168.1.192
Le premier bloc de lignes fait correspondre une adresse IP chaque nom (le A signifie adresse). Un mme nom peut
apparatre dans plusieurs enregistrements et par le fait mme tre associ plus dune adresse IP. A la diffrence de la
recherche dans la table /etc/hosts, une recherche dans le DNS peut conduire au renvoi de plusieurs adresses par nom. Si
le client et le serveur de noms sont sur le mme rseau, certains serveurs indiquent en premier lieu ladresse la plus
proche du client.
Le dernier bloc de lignes est la table dalias. Ces enregis trements sont dfinis par la clause CNAME (Canonical Name).
Lorsquun serveur recherche un nom et trouve un enregistrement CNAME, il remplace le nom par le nom canonique et
procde une nouvelle recherche. Par exemple : si lors de la recherche de www, le serveur trouve un enregistrement
CNAME qui dsigne P100, il recherche alors P100 et renvoie ladresse correspondante.
Le serveur DNS doit galement contenir une correspondance entre les adresses IP et les noms. Il sagit de la rsolution
inverse. Voici un exemple de table inverse pour le rseau 192.168.1 :
1.168.192.in-addr.arpa. NS P200.challe.be.
J-F Challe
HEPCUT - ISIPH 51
Le serveur de noms a besoin dun autre fichier de correspondance inverse pour le rseau loopback. Ce rseau est utilis
par un hte pour communiquer avec lui-mme. Le numro de ce rseau est toujours 127.0.0 et ladresse de lhte est
toujours 127.0.0.1. Voici le fichier de rsolution inverse pour ladresse loopback :
0.0.127.in-addr.arpa. NS localhost.
Ce fichier, en apparence anodin, est indispensable aux serveurs de noms. Aucun serveur na reu la dlgation pour le
rseau 127 et malgr son utilisation relle, chaque serveur doit en tre responsable pour lui-mme. Lomission de ce
fichier permettra au serveur de fonctionner mais la recherche de 127.0.0.1 chouera car le serveur racine ne peut raliser
la correspondance 127.0.0.1 lhte local.
Le serveur DNS a aussi besoin de connatre lemplacement des serveurs de noms de la racine. Lobjectif du fichier
named.ca consiste dfinir lemplacement des serveurs de la racine. Gnra lement, les configurations de serveurs de
noms possdent dj un tel fichier. Voici un exemple de ce fichier :
J-F Challe
HEPCUT - ISIPH 52
. 3600000 IN NS A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4
;
; formerly NS1.ISI.EDU
;
. 3600000 NS B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET. 3600000 A 128.9.0.107
;
; formerly C.PSI.NET
;
. 3600000 NS C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12
;
; formerly TERP.UMD.EDU
;
. 3600000 NS D.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90
;
; formerly NS.NASA.GOV
;
. 3600000 NS E.ROOT-SERVERS.NET.
E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10
;
; formerly NS.ISC.ORG
;
. 3600000 NS F.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241
;
; formerly NS.NIC.DDN.MIL
;
. 3600000 NS G.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4
;
; formerly AOS.ARL.ARMY.MIL
;
. 3600000 NS H.ROOT-SERVERS.NET.
H.ROOT-SERVERS.NET. 3600000 A 128.63.2.53
;
; formerly NIC.NORDU.NET
;
. 3600000 NS I.ROOT-SERVERS.NET.
I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17
;
; temporarily housed at NSI (InterNIC)
;
. 3600000 NS J.ROOT-SERVERS.NET.
J.ROOT-SERVERS.NET. 3600000 A 198.41.0.10
;
; housed in LINX, operated by RIPE NCC
;
. 3600000 NS K.ROOT-SERVERS.NET.
K.ROOT-SERVERS.NET. 3600000 A 193.0.14.129
;
; temporarily housed at ISI (IANA)
;
. 3600000 NS L.ROOT-SERVERS.NET.
L.ROOT-SERVERS.NET. 3600000 A 198.32.64.12
;
; housed in Japan, operated by WIDE
;
. 3600000 NS M.ROOT-SERVERS.NET.
J-F Challe
HEPCUT - ISIPH 53
Le nom de domaine . est celui du domaine racine. Cette liste de serveur tant susceptible dvoluer, il est conseill
de tlcharger rgulirement la dernire version de ce fichier. Certains serveurs de noms sont capables de tlcharger
automatiquement les mises jour de ce fichier. Nanmoins, cette fonctionnalit ne sest pas montre la hauteur des
exigences.
zone "." IN {
type hint;
file "named.ca";
};
zone "localhost" IN {
type master;
file "localhost";
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "0.0.127";
};
zone "challe.be" IN {
type master;
file "challe.be";
};
zone "1.168.192.in-addr.arpa" IN {
type master;
file "1.168.192";
};
Habituellement, les fichiers de configuration contiennent une ligne indiquant le rpertoire dans lequel sont situs les
fichiers de donnes (directory "/var/named "). Le serveur de noms lutilise comme rpertoire de travail, ce qui permet
dutiliser des chemins relatifs pour accder aux fichiers de donnes.
Sur un serveur-matre primaire, le fichier de configuration contient un enregistrement zone pour chaque fichier de
donnes lire. Le mot zone est suivi du nom du domaine grer. Le mot IN indique que la classe est internet. Le type
master permet dinformer le dmon BIND de ce que le serveur est primaire. Le dernier paramtre indique
lemplacement du fichier de donnes au moyen dun chemin relatif.
Jusqu prsent, les fichiers de donnes du serveur de noms ont t pleinement qualifis car aucune forme raccourcie
pouvant prter confusion n t employe.
Linformation place entre guillemets dans lenregistrement zone indique le nom de domaine. Ce nom est la cl de la
plupart des abrviations utilisables. Ce domaine est lorigine de toutes les donnes du fichier de base de donnes. Cette
J-F Challe
HEPCUT - ISIPH 54
origine est ajoute tous les noms ne se terminant pas par un point. Cela permet de modifier les fichier challe.be et
1.168.192 de la manire suivante :
P100 IN A 192.168.1.1
macii IN A 192.168.1.2
powerpc IN A 192.168.1.3
fuji IN A 192.168.1.4
p166 IN A 192.168.1.5
P200 IN A 192.168.1.10
P133 IN A 192.168.1.20
P166PLUS IN A 192.168.1.30
P2450 IN A 192.168.1.40
P2300 IN A 192.168.1.50
se30 IN A 192.168.1.60
P3450 IN A 192.168.1.70
P2366 IN A 192.168.1.80
modem IN A 192.168.1.100
HP4 IN A 192.168.1.192
NS P200.challe.be.
1 IN PTR P100.challe.be.
2 IN PTR macii.challe.be.
3 IN PTR powerpc.challe.be.
4 IN PTR fuji.challe.be.
5 IN PTR P166.challe.be.
10 IN PTR P200.challe.be.
20 IN PTR P133.challe.be.
30 IN PTR P166PLUS.challe.be.
40 IN PTR P2450.challe.be.
50 IN PTR P2300.challe.be.
60 IN PTR se30.challe.be.
70 IN PTR P3450.challe.be.
80 IN PTR P2366.challe.be.
100 IN PTR modem.challe.be.
192 IN PTR HP4.challe.be.
J-F Challe
HEPCUT - ISIPH 55
Si le nom de domaine est le mme que celui de lorigine prcise dans le fichier named.conf, le nom peut tre remplac
par le caractre @. Ceci est gnralement le cas dans le lenregistrement SOA. Notons que dans le cas de la clause NS,
le caractre @ est implicite.
P100 IN A 192.168.1.1
macii IN A 192.168.1.2
powerpc IN A 192.168.1.3
fuji IN A 192.168.1.4
p166 IN A 192.168.1.5
P200 IN A 192.168.1.10
P133 IN A 192.168.1.20
P166PLUS IN A 192.168.1.30
P2450 IN A 192.168.1.40
P2300 IN A 192.168.1.50
se30 IN A 192.168.1.60
P3450 IN A 192.168.1.70
P2366 IN A 192.168.1.80
modem IN A 192.168.1.100
HP4 IN A 192.168.1.192
www IN CNAME P100
ftp IN CNAME P100
irc IN CNAME P100
mail IN CNAME P100
pop IN CNAME P100
news IN CNAME P100
[root@P200 named]# cat 1.168.192
@ IN SOA P200.challe.be. root.challe.be (
1998120701 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
NS P200.challe.be.
1 IN PTR P100.challe.be.
2 IN PTR macii.challe.be.
3 IN PTR powerpc.challe.be.
4 IN PTR fuji.challe.be.
5 IN PTR P166.challe.be.
10 IN PTR P200.challe.be.
20 IN PTR P133.challe.be.
30 IN PTR P166PLUS.challe.be.
40 IN PTR P2450.challe.be.
50 IN PTR P2300.challe.be.
60 IN PTR se30.challe.be.
70 IN PTR P3450.challe.be.
80 IN PTR P2366.challe.be.
100 IN PTR modem.challe.be.
192 IN PTR HP4.challe.be.
J-F Challe
HEPCUT - ISIPH 56
Le dmarrage du serveur de noms ncessite lutilisation du compte root car BIND exploite un port privilgi. Le
lancement du serveur ncessite la dactylographie de la commande suivante :
Ds que le serveur de noms est lanc, il est possible de lui envoyer des requtes au moyen de la commande nslookup.
Par exemple, la recherche de ladresse IP de lhte P2300 est ralise au moyen de la commande suivante :
Name: p2300.challe.be
Address: 192.168.1.50
Si la recherche choue, la commande nslookup se termine avec un message derreur, comme le montre lillustration
suivante :
Lorsquune adresse IP est fournie, la commande nslookup sait quelle doit rechercher un enregistrement PTR dans la
table de rsolution inverse. Voici un exemple dinterrogation du domaine in-addr.arpa :
Name: HP4.challe.be
Address: 192.168.1.192
Le serveur de noms actuellement configur est capable dinterroger les serveurs racine lorsquune requte concerne un
autre domaine. Voici un exemple dune telle interrogation :
Name: www.redhat.com
Addresses: 216.148.218.197, 216.148.218.195
Le serveur de noms peut tre interrog partir dune autre machine. Pour cela, la commande nslookup doit prciser le
nom de lhte dont ladresse est recherche ainsi que le nom du serveur de noms interroger. Voici un exemple de
cette situation :
Name: hp4.challe.be
Address: 192.168.1.192
J-F Challe
HEPCUT - ISIPH 57
Un serveur-esclave peut tre la rplique exacte dun serveur-matre. Cela oblige ladministrateur grer deux bases de
donnes qui doivent tre rigoureusement identiques. Une autre mthode de configuration consiste stipuler que le
serveur-esclave obtiendra ses donnes automatiquement du serveur-matre. Pour effectuer cette configuration, il suffit
dindiquer dans le fichier /etc/named.conf que le serveur est de type slave pour une certaine zone. En plus de cela, il
faut indiquer ladresse IP du serveur-matre qui constitue la source dinformation.
Bien quun serveur-esclave naie pas ncessairement besoin de fichiers pour mmoriser les bases de donnes, il est
prfrable de stipuler un nom de fichier dans le champ file. De cette manire, lors de son premier lancement le serveur-
esclave placera une copie des informations provenant du matre dans ces fichiers. En cas de dfaillance du matre,
lesclave possdera toujours une copie des informations.
Jusqu prsent, la signification des valeurs places entre parenthses na pas encore t donne.
Le numro de srie sapplique toutes les donnes de la zone. De nombreux administrateurs utilisent la date du jour
suivi dun numro de squence. Le format est donc AAAAMMJJSS. Chaque fois quune mise jour du fichier est
ralise, il est important dincrmenter le numro de srie.
J-F Challe
HEPCUT - ISIPH 58
Lorsquun esclave demande les donnes de la zone un serveur matre, il fournit dabord son numro de srie. Si celui
de lesclave est infrieur celui du matre, les donnes de lesclave sont obsoltes. Dans ce cas, lesclave tlcharge
une nouvelle copie de la zone. Quand un serveur-esclave dmarre et quil ne possde pas de fichier de sauvegarde, il
tlcharge toujours la zone.
En gnral, des dures plus longues diminuent la charge du serveur de noms et augmentent le dlai de propagation des
mises jour. Inversement, des dures plus courtes augmentent la charge du serveur de noms et diminuent le dlai de
propagation. La RFC 1537 recommande les valeurs suivantes :
Un serveur de noms est capable de grer plusieurs zones simultanment. Il suffit pour cela dajouter autant
denregistrements de type zone que de zones grer. Il reste ensuite configurer les fichiers de la base de donnes en
consquence.
zone "bureau1.challe.be" {
type stub;
file "db.bureau1";
masters { 192.168.1.40; };
};
Le type stub informe le serveur de noms du domaine parent de ce quune dlgation a lieu pour la zone
bureau1.challe.be. Il faut alors spcifier ladresse IP du serveur-enfant au moyen du champ masters.
J-F Challe
HEPCUT - ISIPH 59
La dlgation de la rsolution inverse des noms est beaucoup plus complexe. En substance, il faut dcouper le rseau
en sous-rseaux (au niveau des adresses IP) et dlguer chaque sous-rseau.
6. La scurit.
Lun des moyens permettant daugmenter la scurit des serveurs de noms consiste installer la version de BIND la
plus rcente. La version 8 de BIND est plus robuste que la version 4 en raison des nouvelles fonctions de scurit
quelle apporte. Nanmoins, cela ne suffit pas car de nouvelles attaques apparaissent tous les jours.
Loption allow-query permet de configurer un contrle daccs bas sur ladresse IP du client lorigine de la requte.
Ce contrle peut concerner soit une zone particulire, soit lensemble des requtes reues. La liste daccs stipule
quelles adresses IP sont habilites envoyer des requtes au serveur.
Pour indiquer un serveur de noms de ne rpondre quaux requtes provenant du rseau 192.168.1.0 ainsi qu la
machine dont ladresse IP est 212.68.194.200, il suffit dajouter ces informations la liste globale des permissions.
Voici un exemple de permissions :
J-F Challe
HEPCUT - ISIPH 60
Le serveur de noms BIND permet galement lapplication dune liste daccs une zone particulire. Dans ce cas, il
suffit dutiliser la clause allow-query dans la dfinition de la structure de zone protger.
Tout serveur, quil soit matre ou esclave, peut appliquer un contrle daccs une zone. Les listes spcifiques une
zone sont prpondrantes sur la liste globale. En labsence dune liste spcifique une zone, cest la liste globale qui
est utilise.
La clause allow-transfer permet aux administrateurs dappliquer une liste daccs aux transferts de zones. Cette clause
est apte limiter les transferts dune zone spcifique ou bien limiter les transferts de toutes les zones.
La limitation globale du transfert de zone est effectue en plaant la clause allow-transfer dans la structure option du
fichier /etc/named.conf. Voici la structure de ce fichier lorsque ladministrateur accepte de transfrer toutes les zones
au serveur-esclave dont ladresse IP est 192.168.1.40 :
J-F Challe
HEPCUT - ISIPH 61
zone "0.0.127.in-addr.arpa" {
type master;
file "named.local";
};
zone "challe.be" {
type master;
file "challe.be";
};
zone "challe.yi.org" {
type master;
file "challe.yi.org";
};
zone "1.168.192.in-addr.arpa" {
type master;
file "1.168.192";
};
Afin de rendre plus fin le contrle de transfert de zone, la clause allow-transfer sera place dans une structure de zone.
Dans lexemple qui suit, le transfert de la zone challe.be sera accepte uniquement dans le cas o le serveur-esclave a
pour adresse IP 192.168.1.40.
Les transferts de zones peuvent galement seffectuer au dpart dun serveur-esclave. Il ne faut donc pas oublier de
scuriser galement ces serveurs.
Dans le cas o une liste globale de permissions de transfert de zone est spcifie ainsi que des listes locales, la
prpondrance est donne aux listes locales.
Il est concevable quun administrateur configure un serveur de noms de manire telle quil accepte les transferts de zone
vers toutes les machines du sous-rseau 192.168.1 mais que seul lhte 192.168.1.40 puisse demander un transfert de la
zone challe.be. Cette configuration ncessite deux listes de permissions :
une globale ;
une locale.
J-F Challe
HEPCUT - ISIPH 62
La liste globale permet daccepter les transferts vers les machines du sous-rseau 192.16.1 alors que la liste locale
permet uniquement la machine 192.168.1.40 deffectuer un transfert de la zone challe.be. Voici un exemple dune
telle configuration :
Lexcution de BIND par un utilisateur privilgi tel que root pourrait tre dangereuse et cest ce qui se passe par
dfaut. Si un pirate trouve une faille dans le serveur de noms lui permettant de lire ou dcrire des fichiers, il
obtiendrait un accs privilgi au systme de fichiers. Sil peut exploiter une imperfection lui permettant dexcuter des
commandes, il le fera sous lidentit de lutilisateur privilgi.
Le serveur BIND a t conu de manire changer lidentit de lutilisateur et du groupe pour le compte de qui il
sexcute. Le serveur de noms peut donc tre excut avec moins de privilges. De cette manire, si un pirate utilise
BIND pour sintroduire dans le systme, il nobtiendra pas les droits de root.
-u : impose lidentit de lutilisateur qui excute BIND lissue de son dmarrage (named u named).
-g : impose lidentit du groupe qui excute BIND lissue de son dmarrage (named g other). Si loption u
nest pas utilise conjointement avec loption g, le serveur utilise le groupe primaire de lutilisateur spcifi.
-t : indique la racine du systme de fichiers vu par BIND.
La meilleure manire de protger le systme consiste crer un nouvel utilisateur sans privilge, comme par exemple,
named et dexcuter BIND sous cette identit. Puisque le serveur de noms lit le fichier named.conf avant dabandonner
les privilges de root, il nest pas ncessaire de changer les autorisations daccs sur ce fichier. Par contre, il faut
modifier les permissions et les proprits des fichiers de donnes afin que lutilisateur sans privilge puisse les lire.
7. La commande nslookup.
Loutil nslookup permet de vrifier de manire efficace la configuration des serveurs de noms. La commande nslookup
gnre des requtes soit comme un resolver, soit comme un serveur de noms. Cependant, nslookup nutilise pas les
J-F Challe
HEPCUT - ISIPH 63
fonctions du resolver mais ses propres procdures pour interroger les serveurs de noms. Aussi son comportement bien
que trs similaire celui dun resolver diffre -t-il lgrement.
La commande nslookup peut tre utilise soit de manire interactive, soit de manire non interactive. Le lancement
dune session interactive exige simplement le lancement sans paramtre de la commande nslookup. Par contre
lexcution de nslookup en mode non interactif impose dexploiter nslookup avec des paramtres.
>
Pour obtenir de laide, il suffit de taper help ou ? . Pour quitter nslookup, il faut taper ctrl-D.
En mode non interactif, il faut donner un nom rechercher sur la ligne de commande :
Name: p2300.challe.be
Address: 192.168.1.50
En mode interactif dispose dun ensemble doptions qui peuvent tre visualises au moyen de la commande set all :
Set options:
nodebug defname search recurse
nod2 novc noignoretc port=53
querytype=A class=IN timeout=5 retry=2
root=a.root-servers.net.
domain=challe.be
srchlist=challe.be
>
La commande nslookup informe lutilisateur de ce que le serveur par dfaut est lhte p100.challe.be dont ladresse IP
est 192.168.1.1. Cela signifie que toutes les requtes gnres par nslookup seront envoyes ce serveur.
Les options qui ne sont pas suivies dun signe gal sont boolennes ; elles sont soit inhibes, soit actives. Pour inhiber
une option boolenne, il suffit dajouter le prfixe no au nom de loption. Dans lexemple ci-dessus, nodebug
signifie que le dbogage est inhib.
La modification dune option de nslookup varie selon que nslookup est utilis en mode interactif ou non. Dans une
session interactive, la commande set permet de modifier une option : set debug. En ligne de commande, le mot set est
remplac par le caractre tiret : nslookup debug brutele.be.
J-F Challe
HEPCUT - ISIPH 64
Par dfaut, nslookup recherche ladresse correspondant un nom ou le nom correspondant une adresse. Dautres
types de recherche peuvent tre effectue en employant loption q .
> P200
Server: P100.challe.be
Address: 192.168.1.1
Name: P200.challe.be
Address: 192.168.1.10
challe.be
origin = challe.be
mail addr = root.localhost
serial = 1998120701
refresh = 28800 (8H)
retry = 14400 (4H)
expire = 3600000 (5w6d16h)
minimum ttl = 86400 (1D)
> set q=a
> p200
Server: P100.challe.be
Address: 192.168.1.1
Name: p200.challe.be
Address: 192.168.1.10
>
La premire fois que nslookup recherche un nom distant, la rponse fait autorit, alors quelle ne le fait plus la seconde
fois.
La premire fois que le serveur local recherche www.isiph.be, il contacte un serveur de isiph.be dont la rponse fait
autorit. Le serveur local retransmet cette rponse nslookup et la place galement dans sa mmoire-cache. Lors de la
seconde recherche de www.isiph.be, le serveur local utilise linformation stocke dans sa mmoire -cache, ce qui produit
une rponse ne faisant pas autorit.
Dans lexemple qui suit, les noms recherchs sont totalement qualifis (point terminal) mais le rsultat serait le mme
sans le point terminal. Lutilisation du point terminal nest en effet pas toujours indispensable. Au lieu dhsiter sur la
J-F Challe
HEPCUT - ISIPH 65
mise ou non dun point terminal, il est prfrable den mettre un systmatiquement ds que le nom est totalement
qualifi.
> www.isiph.be.
Server: P100.challe.be
Address: 192.168.1.1
Name: email.isiph.be
Address: 212.68.213.100
Aliases: www.isiph.be
> www.isiph.be.
Server: P100.challe.be
Address: 192.168.1.1
Non-authoritative answer:
Name: email.isiph.be
Address: 212.68.213.100
Aliases: www.isiph.be
>
La commande nslookup peut interroger directement un serveur spcifique. Pour cela, il suffit de dfinir le nom du
serveur interroger par lintermdiaire de loption server. Pour retourner au serveur local, il suffit demployer loption
lserver.
> www.isiph.be
Server: email.isiph.be
Address: 212.68.213.100
Puisque le nouveau serveur ne rpond pas, il est possible de revenir au serveur dorigine en utilisant loption server.
Le serveur email.isiph.be nest pas capable de retrouver ladresse du serveur p100.challe.be. Aussi, la commande
lserver permet-elle dinterroger le serveur local afin deffectuer cette opration.
> www.isiph.be.
Server: p100.challe.be
J-F Challe
HEPCUT - ISIPH 66
Address: 192.168.1.1
Non-authoritative answer:
Name: email.isiph.be
Address: 212.68.213.100
Aliases: www.isiph.be
>
Le nom du serveur interroger peut tre plac comme second argument de la requte. Linterrogation du serveur yi.org
au sujet de endor.yi.org donne la rponse suivante :
Non-authoritative answer:
Name: endor.yi.org
Address: 212.68.199.229
>
Non-authoritative answer:
Name: endor.yi.org
Address: 212.68.199.229
En validant loption debug, nslookup peut visualiser les requtes expdies et les rponses reues.
section den-tte ;
section de la question ;
section des rponses ;
section des serveurs faisant autorit ;
section des enregistrements complmentaires.
La section den-tte est prsente dans chaque question et dans chaque rponse. Le code de lopration est toujours gal
QUERY. Lidentificateur id sert associer une rponse une requte ainsi qu dtecter les duplications. Le champ
des drapeaux (header flags), diffrencie la requte de la rponse. La chane want recursion indique le souhait de
lexpditeur de la requte de voir le serveur excuter la totalit du travail. La chane auth answer indique que cette
rponse fait autorit, cest--dire que la rponse provient dun serveur faisant autorit et non dune mmoire cache.
Il y a toujours une section question dans un paquet DNS. Cette section contient le nom, le type et la classe de
linformation recherche. En raison de la structure du paquet DNS, il nest pas possible de poser simultanment
plusieurs questions.
La section des rponses contient les enregistrements qui rpondent la question pose.
J-F Challe
HEPCUT - ISIPH 67
La section des enregistrements complmentaires est destine fournir des informations complmentaires celles
dautres sections. Par exemple, si un serveur est mentionn dans la section des serveurs faisant autorit, ladresse de ce
serveur apparat dans cette section.
QUESTIONS:
P200.challe.be, type = A, class = IN
ANSWERS:
-> P200.challe.be
internet address = 192.168.1.10
ttl = 86400 (1D)
AUTHORITY RECORDS:
-> challe.be
nameserver = P100.challe.be
ttl = 86400 (1D)
ADDITIONAL RECORDS:
-> P100.challe.be
internet address = 192.168.1.1
ttl = 86400 (1D)
------------
Name: P200.challe.be
Address: 192.168.1.10
>
La commande nslookup peut envoyer des requtes la manire dun serveur de noms. Pour cela, il nest pas ncessaire
deffectuer une recherche rcursive. De plus, il ne faut pas utiliser la liste de recherche du resolver. Il sindique ds
lors, de dsactiver les fonctions rcursive et de recherche. La dsactivation de la consultation de la liste de recherche
nest pas ncessaire si les noms sont entirement qualifis.
Lorsque nslookup fonctionne en mode rcursif, le serveur interrog doit de lui-mme interroger dautres serveurs
distants pour rpondre la question. Par contre, en mode non rcursif, le serveur se contente de donner la rponse la
plus proche.
Dans la recherche de www.isiph.be, la meilleure rponse que puisse fournir un serveur de noms est la liste des serveurs
de be.
J-F Challe
HEPCUT - ISIPH 68
Name: www.isiph.be
Served by:
- AUTH02.NS.UU.NET
198.6.1.82
be
- NS.EU.NET
192.16.202.11
be
- NS.BELNET.be
193.190.198.10, 193.190.198.2
be
- DNS.CS.KULEUVEN.AC.be
134.58.40.4
be
- SECDNS.EUNET.be
193.74.208.139
be
- SUNIC.SUNET.SE
192.36.125.2
be
- MASTER.DNS.be
194.7.171.243
be
> www.isiph.be.
Server: auth02.ns.UU.net
Address: 198.6.1.82
Name: www.isiph.be
Served by:
- ns.isiph.be
212.68.213.98
isiph.be
- brutele01.brutele.be
212.68.193.32
isiph.be
Le serveur auth02.ns.UU.net spcifie la liste des serveurs isiph.be. Il suffit prsent dinterroger lun de ces serveurs
pour obtenir linformation recherche.
J-F Challe
HEPCUT - ISIPH 69
> www.isiph.be.
Server: ns.isiph.be
Address: 212.68.213.98
Name: email.isiph.be
Address: 212.68.213.100
Aliases: www.isiph.be
>
Cet exemple montre le mcanisme de recherche utilis par un serveur de noms. Tout au long de ces manipulations, la
question tait : quelle est ladresse de www.isiph.be ? Si un serveur de be avait eu la rponse en mmoire-cache, il
aurait envoy la rponse au lieu de fournir des renseignements sur les serveurs de isiph.be.
Il est possible la commande nslookup de transfrer la totalit dune zone au moyen de loption ls. Comme il est
possible de rediriger la visualisation vers un fichier. Soit pour des raisons de scurit, soit pour limiter leur charge
certains serveurs peuvent refuser de transfrer leur zone.
> ls challe.be.
[P100.challe.be]
$ORIGIN challe.be.
P3450 1D IN A 192.168.1.70
P2366 1D IN A 192.168.1.80
macii 1D IN A 192.168.1.2
powerpc 1D IN A 192.168.1.3
P100 1D IN A 192.168.1.1
se30 1D IN A 192.168.1.60
P2450 1D IN A 192.168.1.40
P166PLUS 1D IN A 192.168.1.30
P2300 1D IN A 192.168.1.50
P133 1D IN A 192.168.1.20
P2450 1D IN A 192.168.1.40
HP4 1D IN A 192.168.1.192
fuji 1D IN A 192.168.1.4
P166 1D IN A 192.168.1.5
modem 1D IN A 192.168.1.100
P200 1D IN A 192.168.1.10
>
J-F Challe
HEPCUT - ISIPH 70
J-F Challe
HEPCUT - ISIPH 71
Un certain nombre de programmes de transport de mails (Mail Transport Agent) ont t implments sur les systmes
UNIX. Le MTA le plus connu est sendmail. Cette application ncessite la cration dun fichier de configuration afin
dy imposer des rgles dfinissant le comportement du programme de transport de mails.
du corps du message ;
de donnes dadministration.
Le corps du message est uniquement compos du texte du message alors que les donnes dadministration sont
composes dinformations concernant les destinataires du message, le moyen de transport utilis, etc
Les informations administratives peuvent tre rassembles en deux catgories. La premire est constitue de toutes les
informations relatives au transport de linformation comme les adresses de lexpditeur et du destinataire. Cette
catgorie est appele lenveloppe. Ces informations peuvent tre modifies par les logiciels de transport. La seconde
catgorie est constitue des informations permettant de manipuler le message. Cette catgorie regroupe donc des
informations qui ne sont pas spcifiques au mcanisme de transport des informations. Dans cette catgorie figurent le
sujet du message, la liste de tous les destinataires ainsi que la date dexpdition du dit message. Ces informations
forment len-tte du mail. La structure de len-tte en dfinie par la RFC-822.
Lvolution dans lutilisation des mails a ncessit des changements en vue dune adaptation au chiffrement des
informations, lutilisation dun jeu de caractres international, Ces changements dans lutilisation du courrier
lectronique ont conduit la cration dautres standards. Nanmoins, dans tous ces standards, len-tte est constitu de
plusieurs lignes spares les unes des autres par un caractre de fin de ligne. Une ligne est compose dun nom de
champ suivi du caractre deux points et dun espace. A la suite de cette description figure la valeur du champ.
Gnralement, tous les en-ttes sont gnrs par le programme qui est utilis pour rdiger les mails. Voici la liste des
en-ttes les plus employs ainsi que leurs significations :
J-F Challe
HEPCUT - ISIPH 72
La livraison dun courrier local est plus quun simple ajout dun nouveau message dans une boite de rception. Les
MTA peuvent traiter des alias ainsi que le forwarding. De plus, si un message ne peut tre dlivr en raison de la non
existence du destinataire, par exemple, le MTA doit tre capable denvoyer automatiquement un message derreur
lexpditeur.
La livraison de courriers distants est gnralement effectue au moyen du protocole SMTP (Simple Mail Transfer
Protocol). Ce protocole est conu pour dlivrer directement le courrier la machine du destinataire. En ralit, une
ngociation a lieu entre les dmons SMTP des machines source et destination.
4. Le routage du courrier.
Le processus consistant diriger les mails vers un hte est appel le routage. A partir du moment o ladresse IP du
destinataire est connue, la majorit du travail de routage est ralis par la couche IP.
Ladresse dun destinataire est constitue dun nom dutilisateur et dun nom de domaine. Lorsquun courrier doit tre
dlivr un certain domaine, il est ncessaire de savoir quelle machine est capable de grer larrive de mails. Pour
effectuer ce travail il faut faire appel au DNS. Les fichiers de configuration du DNS peuvent contenir un
enregistrement MX (Mail eXchanger).
Les enregistrements MX dsignent un hte appel changeur de messages qui tantt traite le courrier, et tantt le
retransmet. Le traitement du courrier consiste en la livraison du courrier ladresse indique. La retransmission du
courrier concerne son envoi vers sa destination finale ou vers un autre changeur de messages proche de la destination.
Chaque enregistrement MX possde une valeur de prfrence code sur 16 bits. Cette valeur indique, au routeur,
lordre de priorit utiliser lors du choix dun changeur de messages.
NS P100.challe.be.
MX 10 P100.challe.be.
J-F Challe
HEPCUT - ISIPH 73
Dans cet exemple, la machine P100.challe.be est lchangeur de messages pour le domaine challe.be. Cela signifie que
si un mail stipule une adresse dans le domaine challe.be, cest lhte P100.challe.be qui est mme de recevoir
linformation.
5. Sendmail.
La diversit des programmes et des protocoles utiliss en matire de courrier lectronique complique la configuration de
sendmail. Le protocole SMTP envoie le courrier lectronique travers les rseaux TCP/IP. Un autre programme
envoie du courrier lectronique entre les utilisateurs situs sur la mme machine. Chacun de ces systmes de courrier
lectronique possde son propre programme de distribution et son propre systme dadressage.
Lapplication sendmail supprime la plus grande partie des problmes engendrs par lutilisation de plusieurs
programmes de livraison de courrier lectronique. Le programme sendmail route le courrier lectronique vers le
programme de livraison correct en se basant sur ladresse email. Il accepte du courrier provenant dun programme de
courrier lectronique de niveau utilisateur (MUA), interprte ladresse, la rcrit sous une forme approprie pour le
programme de livraison et enfin route le courrier vers le bon programme de livraison. De plus, pour tout courrier
arrivant, sendmail interprte ladresse et, soit dlivre le courrier, soit le renvoie un autre systme.
En plus de router le courrier entre les programmes utilisateurs et les programmes de livraison, sendmail joue deux rles
supplmentaires :
Par dfaut, sendmail est capable de recevoir un courrier SMTP en provenance du rseau. Pour effectuer cela, il suffit de
lancer sendmail au dmarrage du systme. Ds son lancement, sendmail scrute le port TCP numro 25. Il traite ainsi le
courrier lectronique entrant. Le fichier de dmarrage automatique de sendmail contient gnralement deux options
comme le montre un extrait du fichier /etc/rc.d/init.d/sendmail :
La seconde option de lancement de sendmail (-q) spcifie le rythme de traitement des courriers lectroniques de la file
dattente. Dans lexemple ci-dessus, la file dattente est traite toutes les 15 minutes. Lorsque temporairement un
message ne peut pas tre dlivr, il est plac dans une file dattente. Cette mise en attente peut tre provoque par une
indisponibilit temporaire de la machine rceptrice du message. Lorsque le message aura t dlivr, il sera retir de la
file dattente.
La premire option (-bd) concerne directement la rception du courrier lectronique par SMTP. Cette option ordonne
sendmail de fonctionner en tant que dmon et de scruter le port TCP 25 pour rceptionner le courrier lectronique.
Lemploi de cette option est impratif dans le cas o le systme doit tre en mesure de recevoir du courrier lectronique
via TCP/IP.
Le programme sendmail est gourmand en ressources CPU. Si un administrateur est confront la configuration dun
petit site ne recevant pas beaucoup de courriers ou un serveur modeste, il est prfrable de choisir un autre MTA. De
plus, bien que des amlioration dans le processus de configuration exista, sendmail reste un des serveurs de courriers
lectroniques les plus difficiles configurer.
J-F Challe
HEPCUT - ISIPH 74
Lobjectif est de configurer un serveur de courriers lectroniques pour une utilisation interne. Les diffrents utilisateurs
dun systme UNIX doivent avoir la possibilit de schanger des messages sans pour autant envoyer des mails vers
lextrieur.
Tout fichier de macros doit contenir la directive OSTYPE afin de spcifier le systme dexploitation utilis. Le
paramtre est le nom dun fichier contenant des informations sur :
Cette option est donc obligatoire et devrait apparatre au dbut de tout fichier de configuration.
La macro MAILER permet de spcifier comment le courrier doit tre distribu. Dans cette configuration, les mails
doivent uniquement tre changs entre les utilisateurs du systme. Sous Linux, lagent de distribution local est le
programme procmail. Il faut donc spcifier largument procmail au niveau de la macro MAILER.
Le programme procmail rside un endroit prcis de la hirarchie du systme de fichier. Cet emplacement est dfini au
moyen de la macro FEATURE. Le paramtre local_procamail de cette macro stipule notamment quel est le chemin
daccs au programme procmail.
La premire ligne du fichier est destine inclure des dfinitions servant une bonne gnration du fichier sendmail.cf.
Ds que le fichier sendmail.mc est encod, il faut gnrer le fichier sendmail.cf au moyen de la commande suivante :
Cette commande demande au macro processeur m4 de lire le fichier sendmail.mc et de gnrer un fichier sendmail.cf
qui sera plac dans le rpertoire /etc. Le serveur de courriers lectroniques doit prsent tre redmarr afin quil
applique la nouvelle configuration.
A prsent, les utilisateurs peuvent schanger du courrier localement en utilisant la commande mail. Voici un exemple
de message envoy par lutilisateur root lutilisateur jfc.
Lutilisateur jfc reoit un message lui indiquant quun courrier est arriv. Il suffit jfc dutiliser la commande mail sans
paramtre pour activer le mode interactif de ce programme afin de relever le courrier. La commande p lui permet de
visualiser le texte du message. La commande d permet deffacer un message alors que la commande q permet de quitter
le logiciel mail.
J-F Challe
HEPCUT - ISIPH 75
Monsieur,
& d
& q
[jfc@P100 jfc]$
Dans cette configuration, il faut que le serveur de courriers lectroniques soit la fois capable denvoyer du courrier
vers un destinataire connu dInternet mais galement den recevoir en provenance dInternet.
Sur Internet, les courriers sont changs au moyen du protocole SMTP. Il faut donc que sendmail soit capable de grer
ce type de connexion. Pour cela, il faut ajouter MAILER(smtp) la configuration prcdente. De cette manire,
lagent de transport SMTP est connu de sendmail.
Lorsque les mails arrivent, ils contiennent le nom complet du destinataire, nom complet qui doit tre accept en local.
Pour cela, il faut stipuler, dans le fichier sendmail.cw, le nom de domaine qui dans ce cas est challe.yi.org. Ce fichier
doit contenir la liste de tous les domaines pour lesquels sendmail doit accepter les messages Voici le contenu des
fichiers sendmail.mc et sendmail.cw :
Aprs avoir activ ces modifications, sendmail permet denvoyer du courrier vers des utilisateurs distants ainsi que den
recevoir en provenance dutilisateurs distants.
Un grand nombre de configurations sont tablies de telle sorte que des utilisateurs sous Windows puissent envoyer du
courrier en utilisant le serveur SMTP prsent oprationnel. Dans ltat actuel des choses, cette opration se soldera
par un chec car pour des raisons de scurit le serveur de mail refuse dtre serveur relais. Pour cela, il faut alors
dfinir dans la base de donnes des accs que certaines machines peuvent exploiter le serveur de mails comme serveur
relais. De plus, la configuration de sendmail doit tre modifie afin quil puisse consulter cette base de donnes. Il faut
pour cela ajouter la macro FEATURE(`access_db).
J-F Challe
HEPCUT - ISIPH 76
Supposons que le serveur de mails soit un routeur entre un rseau local et internet. Supposons galement que le rseau
local soit dans le domaine challe.be. Il faut alors diter le fichier /etc/mail/access afin dautoriser les machines du
domaine challe.be utiliser le serveur en tant que serveur relais.
Le fichier /etc/mail/access nest quune version lisible du vritable fichier de base de donnes qui est
/etc/mail/access.db. Afin de rendre actives, les modifications prsentes dans le fichier texte, il faut gnrer la base de
donnes au moyen du makefile prsent dans le rpertoire /etc/mail. Cette cration ncessite simplement lutilisation de
la commande make.
Le fichier /etc/mail/access peut contenir dautres spcifications que RELAY. Voici la liste des spcifications les plus
courantes :
Valeur Action
OK Accepter le courrier mme si dautres rgles opposent un refus.
RELAY Accepter le message mme sil nest pas destin lhte excutant sendmail
REJECT Rejeter le message en envoyant un message de refus
Dans le mme ordre dide, les utilisateurs dInternet relvent leur courrier distance. Pour cela, ils configurent leur
programme de gestion du courrier lectronique pour quil se connecte un serveur POP (Post Office Protocol) afin dy
tlcharger le courrier. Cette fonctionnalit, qui ne fait pas partie de sendmail, constitue un outil annexe. Pour quun
systme UNIX agisse comme serveur POP, il suffit quil excute le dmon pop. Le lancement de ce dmon est effectu
par le super dmon inetd. Le fichier de configuration de inetd est /etc/inetd.conf. Il faut que les lignes concernant POP
ne soient pas places en commentaire pour que le serveur POP puisse fonctionner.
#
# Pop and imap mail services et al
#
pop-2 stream tcp nowait root /usr/sbin/tcpd ipop2d
pop-3 stream tcp nowait root /usr/sbin/tcpd ipop3d
imap stream tcp nowait root /usr/sbin/tcpd imapd
#
Ces entres supposent que lexcutable se trouve dans le rpertoire /etc/sbin. Les ports de communication utiliss par
ces services sont dfinis dans le fichier /etc/services. Voici un extrait du fichier /etc/services :
J-F Challe
HEPCUT - ISIPH 77
Lorsque des courriers locaux sont changs, le nom de la machine nest pas indiqu aprs le nom de lutilisateur. Pour
remdier cette situation, il faut explicitement demander sendmail dajouter el nom de domaine au moyen de
FEATURE (always_add_domain). Voici le nouveau fichier de configuration de sendmail permettant cette
fonctionnalit.
Lenvoi dun courrier ne ncessite pas lutilisation dun nom complet car sendmail modifiera lui mme ladresse du
destinataire. Il est donc permis denvoyer un mail local de la manire suivante :
Lutilisateur remarque que le mail provient de root@ns.challe.yi.org et non pas simplement de root.
bonjour
&
Dans le cadre dune utilisation normale dInternet, des gens souscrivent des listes de discussion, publient des articles
du UseNet, Ces oprations diffusent ladresse de courrier lectronique. Certains font la chasse aux adresses mails
pour les revendre des publicistes vantant leurs produits via Internet. Des personnes reoivent ainsi des courriers non
sollicits appels spam.
Fort heureusement, sendmail permet dliminer les spams. Pour cela, il faut se rfrer The Real-time blackhole List,
organisation qui maintient une base de donnes dadresses mails source de spams. Le programme sendmail peut
exploiter cette base de donnes et refuser des mails provenant dadresses qui figurent sur cette liste noire. Pour activer
J-F Challe
HEPCUT - ISIPH 78
cette fonctionnalit, il suffit dajouter FEATURE(rbl) au fichier de configuration de sendmail. Voici la nouvelle
version du fichier sendmail.mc :
Lorsque des messages sont envoys, sendmail ajoute automatiquement ladresse de lexpditeur le nom de domaine
pleinement qualifi. Avec la configuration actuelle, tous les mails envoys ont une adresse dexpdition de la forme
utilisateur@ns.challe.yi.org. Pour viter que le nom de la machine soit ajout au nom de domaine, il suffit de dfinir ce
dernier la main au moyen dune macro define comme le montre lexemple suivant :
Lexemple suivant montre que le nom de domaine nest plus pleinement qualifi.
Bonjour Monsieur
&
J-F Challe
HEPCUT - ISIPH 79
Ces alias sont dfinis dans le fichier /etc/aliases. Le format des entres de ce fichier est :
Le mot alias est le nom de lutilisateur qui le courrier lectronique est adress. Les mots destinataire spcifient
les noms qui le courrier est vritablement destin. Le destinataire peut tre le nom dun utilisateur du systme, un
autre alias ou bien une adresse lectronique complte contenant la fois le nom dun utilisateur et celui dune machine.
Un courrier envoy alias sera envoy tous les destinataires spcifis dans la liste. Cette mthode permet la cration
dune liste de discussion.
Les 14 premires lignes de ce fichier sont les alias par dfaut du systme. La quinzime ligne du fichier indique que
tous les mails envoys jfchalle sont redirigs vers lutilisateur jfc. La dernire ligne du fichier cre une liste de
discussion. Cela signifie que tous les mails envoys mailinglist seront envoys aux utilisateurs jfc, rc et root ainsi
qu lutilisateur jfc de la machine p200.challe.be.
Le programme sendmail nexploite pas directement le fichier /etc/aliases. Ce fichier doit tre trait de manire
gnrer une base de donnes qui sera exploite par sendmail. Pour transformer le fichier /etc/aliases en une base de
donnes, il faut utiliser la commande newaliases ou bien la commande sendmail avec loption bi.
Chaque fois que le fichier des aliases est modifi, il faut gnrer une nouvelle base de donnes afin que les
modifications soient prises en compte par sendmail. Voici les deux exemples de cration de la base de donnes des
alias :
J-F Challe
HEPCUT - ISIPH 80
Voici un exemple de fichier .forward ou lutilisateur jfc redirige lui-mme son courrier vers jfc@p200.challe.be :
Les commandes SMTP vrfy et expn sont gnralement interdites car elles fournissent des informations sur les adresses
de messageries disponibles sur le serveur. Voici une session telnet lance sur le port SMTP partir de la machine
e xcutant le serveur sendmail :
Pour interdire lutilisation de ces commandes, il faut dfinir confPRIVACY_FLAGS comme le montre lexemple
suivant :
Les drapeaux novrfy et noexpn permettent dinterdire respectivement les commandes vrfy et expn. Voici un exemple
de session interactive lorsque les commandes vrfy et expn sont interdites :
J-F Challe
HEPCUT - ISIPH 81
Pour des raisons de scurit, il ncessaire dempcher laccs la file des messages par des personnes ne disposant pas
des autorisations ncessaires. Cette option est active en positionnant le drapeau restrictmailq.
Les utilisateurs souhaitant utiliser le serveur SMTP peuvent galement tre invits sidentifier avant de pouvoir
envoyer un message. Pour cela, il suffit dimposer le drapeau needmailhelo. Voici le fichier sendmail.mc modifi :
Par dfaut, sendmail envoie un certain nombre dinformations lorsquun client se connecte au serveur de messagerie.
Ces informations permettent de dcouvrir sans effort, la version de sendmail utilise ainsi que la version du fichier
sendmail.cf. Le drapeau confSMTP_LOGIN_MSG permet de dfinir un nouveau message daccueil. Voici la nouvelle
version du fichier sendmail.mc
J-F Challe
HEPCUT - ISIPH 82
Le paquetage TCP Wrappers permet deffectuer un contrle et un filtrage au niveau des connexions rseau faites sur le
systme. Il est possible de contrler les connexions par adresse IP, nom de machine ou nom de domaine. Il est ainsi
possible dutiliser les fichiers /etc/hosts.allow et /etc/hosts.deny pour autoriser ou non les connexions au serveur de
messagerie.
Pour des raisons de scurit, le fichier /etc/hosts.deny devrait toujours contenir ALL:ALL. Cela signifie que tout ce qui
nest pas explicitement autoris dans /etc/hosts.allow est interdit.
Si ladministrateur souhaite autoriser tout serveur communiquer avec sendmail lexception la machine mail.isiph.be,
il faut placer les informations suivantes dans les fichiers /etc/hosts.allow et /etc/hosts.deny :
De nombreux paramtres peuvent tre configurs dans le fichier sendmail.mc afin doffrir une rsistance plus
importante aux attaques visant saturer les ressources du systme. Voici une liste des variables intressantes :
Variable Signification
define(`confMin_FREE_BLOCKS,`100) Dfinition du nombre minimum de blocs libres dans la
queue pour accepter les nouveaux messages.
define(`confMAX_MESSAGE_SIZE,`50000000) Dtermine la taille maximale des messages qui sont
accepts (taille exprime en bits).
define(`confAUTO_REBUIL,`FALSE) Interdiction de la recompilation automatique des alias.
define(`confQUEUE_LA,`8) Cette valeur indique une charge (nombre de messages
traiter simultanment) partir de laquelle les messages ne
sont plus dlivrs mais placs en file dattente. Il est
conseill de donner une valeur correspondant 8 fois le
nombre de processeurs disponibles dans la machine.
define(`confREFUSE_LA,`12) Lorsque la charge moyenne exprime en terme de nombre
de messages traiter au cours de la dernire minute
dpasse la valeur indique, sendmail refuse les messages.
Il est conseill de donner une valeur correspondant 12
fois le nombre de processeurs disponibles dans la
machine.
Bien que la programmation de sendmail soit soigne, il est possible de le dtourner de son but premier en lobligeant
excuter certaines commandes au niveau du shell. Pour protger le systme contre ce type dattaque, il suffit de limiter
les commandes qui peuvent tre excutes par sendmail. Pour cela, il sindique dimposer sendmail lutilisation dun
shell restreint lorsquil doit excuter des commandes. Ce shell est smrsh (SendMail Restricted Shell).
J-F Challe
HEPCUT - ISIPH 83
Voici le fichier sendmail.mc modifi pour imposer sendmail demployer un shell restreint :
J-F Challe
HEPCUT - ISIPH 84
J-F Challe
HEPCUT - ISIPH 85
VII. NFS.
1. Introduction.
Le systme de fichiers partags (Network File System) est un systme de fichiers distribus fournissant un mcanisme
transparent daccs des systmes de fichiers distants. Le systme NFS permet de centraliser ladministration des
disques plutt que de dupliquer des rpertoires comme /usr/local sur tous les systmes. Le systme de fichiers
distribus partage un ou plusieurs rpertoires de sorte quil nexiste quune seule copie des informations sur lesquelles
des systmes distants peuvent oprer. Par le biais de NFS, les utilisateurs ne doivent pas se connecter au moyen dune
session telnet pour accder aux informations. Dans le mme ordre dide, il nest pas ncessaire dutiliser une disquette
ou une bande magntique pour transporter les donnes dun systme lautre. Ds que NFS est correctement configur,
les utilisateurs peuvent exploiter les fichiers distants comme sils rsidaient sur la machine locale.
2. Configuration de NFS.
La mise en uvre de NFS sur le serveur et sur les postes clients ncessite le lancement de dmons qui implantent le
protocole NFS. De plus, des dmons auxiliaires sont lancs afin dassurer des services tels que le verrouillage des
fichiers, lexportation des systmes de fichiers et le montage des partages. Ces dmons sont lancs par les scripts de
dmarrage du systme.
La table des systmes de fichiers exports figure dans le fichier /etc/exports. En plus des fichiers initialement exports,
le super-utilisateur a tout moment la possibilit dexporter dautres systmes de fichiers au moyen de la commande
exportfs. Lors du dmarrage du systme, le fichier /etc/exports est lu. Pour chacune des entres de ce fichier, le
systme excute la commande exportfs correspondante de manire rendre les systmes de fichiers exports
disponibles pour les clients. Lorsquun client monte un systme de fichiers exp ort, le serveur conserve la trace de
lutilisation de la ressource dans le fichier /var/lib/nfs/xtab.
Tout systme de fichiers ou tout sous-rpertoire dun systme de fichiers peut tre export par un serveur.
Cela permet dexporter un nombre trs limit de fichiers. Cette mthode est fortement employe par les
stations de travail qui ne possdent pas de disque.
Il est permis dexporter nimporte quel sous-rpertoire dun systme de fichiers export la condition quil
rside sur des disques diffrents. Par exemple, si le rpertoire /home rside sur le disque /dev/hda1 et que le
rpertoire /home/jfc rside sur le disque /dev/dha2 il est permis dexporter ces deux systmes de fichiers.
Il est interdit dexporter un rpertoire parent dun systme de fichier export sauf sil rside sur des disques
diffrents. Cette rgle est identique la prcdente sauf que les permissions sont exprimes en terme de
rpertoire parent au lieu de rpertoire enfant.
Seuls les systmes de fichiers locaux peuvent tre exports.
J-F Challe
HEPCUT - ISIPH 86
Dans cet exemple, les rpertoires /mnt/cdrom et /mnt/floppy de lhte P100 sont accessibles en lecture seule partir de
tous les htes du rseau.
La modification du fichier /etc/exports na pas de rpercussion immdiate sur les permissions daccs aux systmes de
fichiers. En effet, le fichier /etc/exports est lu au moment du dmarrage du systme. De ce fait, si le super-utilisateur
dcide de modifier le fichier des exportations, il doit, aprs avoir effectu les changements, les faire prendre en
considration par le systme. Pour cela, il lui suffit demployer la commande exportfs en demandant une relecture du
fichier /etc/exports. Voici la syntaxe de la commande exportfs forant la relecture du fichier des exportations :
Cette commande permet de monter le systeme de fichiers /mnt/cdrom rsidants sur lhte P100 dans le rpertoire /mnt
de la machine P200. Ds que cette commande est excute, il est possible dexploiter les fichiers placs dans le
rpertoi