Académique Documents
Professionnel Documents
Culture Documents
HEPCUT ISIPH
Catgorie Technique
Administration et
scurit des rseaux.
Jean-Franois Challe.
HEPCUT - ISIPH
2
2
2
3
3
5
5
5
6
6
6
6
7
8
8
8
9
9
10
10
10
11
11
12
12
12
13
16
16
17
17
J-F Challe
HEPCUT - ISIPH
II
27
27
28
28
28
29
8. Configuration permanente.__________________________________________________ 29
9. Linuxconf. ________________________________________________________________ 30
IV. Configuration du routage. ____________________________________________________ 31
1. Configuration gnrale du routage.___________________________________________ 31
2. Table de routage minimale. _________________________________________________ 31
3. Cration dune table de routage statique. ______________________________________ 32
3.1. Ajouter des routes statiques. _______________________________________________ 33
3.2. Ajouter des routes statiques lamorage. ____________________________________ 34
4. Les protocoles de routage internes. ___________________________________________
4.1. Le protocole RIP. _______________________________________________________
4.2. RIP version 2. __________________________________________________________
4.3. OSPF : Open Shortest Path First. ___________________________________________
35
35
38
38
40
40
40
40
42
42
42
43
44
J-F Challe
HEPCUT - ISIPH
III
49
49
49
50
51
53
53
56
57
57
58
59
59
59
60
60
60
61
62
62
64
64
65
66
67
69
J-F Challe
73
73
73
73
74
75
75
77
79
80
80
80
81
81
HEPCUT - ISIPH
IV
81
82
82
82
VII. NFS._____________________________________________________________________ 85
1. Introduction. ______________________________________________________________ 85
2. Configuration de NFS.______________________________________________________ 85
3. Exportation dun systme de fichiers. _________________________________________ 85
3.1. Rgles dexportation des systmes de fichiers. ________________________________ 85
3.2. Exportation simple dun systme de fichiers. __________________________________ 85
4. Montage dun systme de fichiers. ____________________________________________ 86
5. Les options dexportation. ___________________________________________________ 86
6. Les options de montage. ____________________________________________________ 87
6.1. Les arguments gnraux. _________________________________________________ 87
6.2. Les arguments spcifiques. ________________________________________________ 88
7. Le montage permanent._____________________________________________________ 88
8. La rsolution des liens symboliques. __________________________________________ 88
VIII. NIS. ____________________________________________________________________ 89
1. Introduction. ______________________________________________________________ 89
2. Les notions de matres, esclaves et clients. _____________________________________ 89
3. Fondements de la gestion NIS. _______________________________________________
3.1. Installation du serveur NIS matre. __________________________________________
3.2. Configuration des clients NIS. _____________________________________________
3.3. Ajout dun serveur NIS esclave. ____________________________________________
90
90
91
92
4. Les commandes-clients._____________________________________________________
4.1. ypmatch. ______________________________________________________________
4.2. ypcat._________________________________________________________________
4.3. ypwhich. ______________________________________________________________
4.4. yppasswd. _____________________________________________________________
93
93
93
93
94
97
97
97
97
98
X. DHCP._____________________________________________________________________ 99
1. Introduction. ______________________________________________________________ 99
2. Le fichier dhcpd.conf. ______________________________________________________ 99
J-F Challe
HEPCUT - ISIPH
103
103
105
106
106
106
106
107
107
107
108
108
110
110
110
110
111
111
111
112
113
113
113
113
115
115
116
116
117
119
119
119
119
120
121
121
121
122
J-F Challe
HEPCUT - ISIPH
VI
128
128
129
129
130
130
134
134
134
135
136
136
136
138
139
139
139
140
140
J-F Challe
144
144
144
145
145
145
145
146
146
146
HEPCUT - ISIPH
VII
146
146
146
147
147
147
147
147
148
148
148
148
149
149
J-F Challe
149
149
150
151
151
151
152
152
154
154
155
156
156
156
156
156
157
157
158
158
158
161
161
162
162
163
164
164
165
165
165
165
166
166
HEPCUT - ISIPH
VIII
166
166
167
167
J-F Challe
HEPCUT - ISIPH
J-F Challe
HEPCUT - ISIPH
J-F Challe
HEPCUT - ISIPH
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
J-F Challe
HEPCUT - ISIPH
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.
Une entre du fichier /etc/passwd est de la forme suivante :
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 :
nom du groupe:mot de passe:GID:liste dutilisateurs
Voici la signification des diffrents champs :
J-F Challe
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.
HEPCUT - ISIPH
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 :
[root@p200 /root]# adduser s /bin/ksh jchalle
3.3.4. Les groupes.
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 :
[root@p200 /root]# adduser g root jchalle
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.
[root@p200 /root]# adduser G adm,sys jchalle
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
J-F Challe
HEPCUT - ISIPH
-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 :
[root@p200 /root]# cat dt
#!/bin/bash
DATE=$2"/"$1"/"$3
ns=`convdate -n $DATE`
ns=`expr $ns + 3600`
nj=`expr $ns / 86400`
echo $nj
Voici un exemple dutilisation de la commande chage :
[root@p200 /root]# ./dt 01 12 2010
14944
[root@p200 /root]# chage -m 0 -M 5 W 3 -E 14944 -I 5 jchalle
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
Voici un exemple de message reu par lutilisateur, deux jours aprs lexcution de la commande chage :
Red Hat Linux release 6.2 (Zoot)
Kernel 2.2.14-5.0 on an i586
login: jchalle
Password:
Warning: your password will expire in 5 days
[jchalle@p200 jchalle]$
J-F Challe
HEPCUT - ISIPH
root
root
jfchalle
jfc
rc
root
4096
4096
4096
4096
4096
4096
oct
oct
nov
nov
nov
nov
31
31
18
15
15
17
22:48
22:48
12:15
21:04
20:45
19:08
ftp
httpd
jchalle
jfc
rc
staff
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 :
[root@p200 /etc]# cat motd
Un nouveau serveur DNS est maintenant installe.
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 :
Red Hat Linux release 6.2 (Zoot)
Kernel 2.2.14-5.0 on an i586
login: jfc
Password:
Last login: Sun Nov 18 20:59:26 from P2366
Un nouveau serveur DNS est maintenant configure.
[jfc@p200 jfc]$
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.
Sous Linux, les quotas sont grs selon trois paramtres :
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.
/]#
/]#
/]#
/]#
touch
touch
chmod
chmod
quota.user
quota.group
600 quota.user
600 quota.group
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.
Voici un exemple dactivation des quotas pour le systme de fichiers racine :
J-F Challe
HEPCUT - ISIPH
11
ext2
ext2
iso9660
auto
proc
devpts
swap
defaults,usrquota,grpquota
defaults
noauto,owner,ro
noauto,owner
defaults
gid=5,mode=620
defaults
1
1
0
0
0
0
0
1
2
0
0
0
0
0
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 :
[root@p200 /]# quotacheck avug
Scanning /dev/hda5 [/] done
Checked 4393 directories and 85060 files
Using quotafile /quota.user
Using quotafile /quota.group
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 :
[root@p200 /etc]# quotaon /
[root@p200 /etc]# quotaoff /
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 :
[jchalle@p200 jchalle]$ man ls > m
/: write failed, user disk limit reached.
[jchalle@p200 jchalle]$ touch fichier
/: warning, user file quota exceeded
9.3.2. Quotas dun groupe.
Loption g de la commande edquota permet dditer les quotas relatifs un groupe. Voici un exemple ddition des
quotas pour un groupe :
[root@p200 /etc]# edquota -g jchalle
Quotas for group jchalle:
/dev/hda5: blocks in use: 148, limits (soft = 0, hard = 0)
inodes in use: 49, limits (soft = 0, hard = 0)
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.
9.3.3. Priode de grce.
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 :
[root@p200 /etc]# edquota -t
Time units may be: days, hours, minutes, or seconds
Grace period before enforcing soft limits for users:
/dev/hda5: block grace period: 7 days, file grace period: 7 days
9.3.4. Attribution des quotas plusieurs utilisateurs.
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 :
[root@p200 /etc]# edquota -p jchalle jfc jl rc
Dans cet exemple, les utilisateurs jfc, jl et rc reoivent les mmes limites que lutilisateur jchalle.
J-F Challe
HEPCUT - ISIPH
13
grace
none
used
88539
3
236
16
41
2
458
1
3
1
2
60
45
51
File limits
soft hard
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
50
60
50
60
50
60
grace
none
7days
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 :
[root@p200 /etc]# repquota -g /
Block limits
User
used
soft
hard
root
-- 1445028
0
0
bin
-52
0
0
daemon
-88
0
0
sys
-0
0
0
tty
-932
0
0
disk
-0
0
0
lp
-88
0
0
kmem
-108
0
0
mail
-2064
0
0
news
-5944
0
0
uucp
-1244
0
0
man
-7696
0
0
floppy
-0
0
0
games
-832
0
0
slocate
-888
0
0
utmp
-424
0
0
squid
-8
0
0
postgres -6572
0
0
gdm
-4
0
0
xfs
-8
0
0
ftp
-4
0
0
nobody
-4
0
0
jfc
-236
0
0
rc
-180
0
0
jchalle
-148
0
0
J-F Challe
grace
used
81528
3
21
283
655
3753
4
5
10
239
461
1791
20
56
5
4
2
458
1
3
1
2
56
45
49
File limits
soft hard
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
grace
HEPCUT - ISIPH
J-F Challe
14
HEPCUT - ISIPH
15
J-F Challe
HEPCUT - ISIPH
16
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 :
LILO boot: linux single
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 :
LILO boot: linux init=/bin/bash
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 superutilisateur, ce qui permet aux personnes mal intentionnes dengendrer les pires dgts.
Des mesures doivent donc tre prises pour scuriser le chargeur LILO.
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 :
[root@P2450 /etc]# cat lilo.conf
boot=/dev/sda5
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
default=linux
password= "qwerty"
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
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 :
[root@p2450 /etc]# lilo
Warning: /etc/lilo.conf should be readable only for root if using PASSWORD
Added linux *
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.
[root@P2450 /etc]# cat lilo.conf
boot=/dev/sda5
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
default=linux
password= "qwerty"
restricted
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
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 :
Run level
0
1
2
3
4
5
6
Signification
Arrt du systme (/etc/rc.d/rc0.d)
dmarrage du systme en mode mono utilisateur (/etc/rc.d/rc1.d)
dmarrage du systme en mode multi-utilisateurs mais sans le support NFS (/etc/rc.d/rc2.d)
dmarrage du systme en mode mult i-utilisateurs (/etc/rc.d/rc3.d)
non utilis (/etc/rc.d/rc4.d)
dmarrage du systme en mode multi-utilisateurs mais en lanant X window (/etc/rc.d/rc5.d)
redmarrer le systme (/etc/rc.d/rc6.d)
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 :
[root@p200 /etc]# cat inittab
id:3:initdefault:
si::sysinit:/etc/rc.d/rc.sysinit
l0:0:wait:/etc/rc.d/rc
l1:1:wait:/etc/rc.d/rc
l2:2:wait:/etc/rc.d/rc
l3:3:wait:/etc/rc.d/rc
l4:4:wait:/etc/rc.d/rc
l5:5:wait:/etc/rc.d/rc
l6:6:wait:/etc/rc.d/rc
0
1
2
3
4
5
6
ud::once:/sbin/update
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"
pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"
1:2345:respawn:/sbin/mingetty
2:2345:respawn:/sbin/mingetty
3:2345:respawn:/sbin/mingetty
4:2345:respawn:/sbin/mingetty
5:2345:respawn:/sbin/mingetty
6:2345:respawn:/sbin/mingetty
tty1
tty2
tty3
tty4
tty5
tty6
x:5:respawn:/etc/X11/prefdm nodaemon
Chaque ligne de ce fichier est de la forme :
id:runlevel:action:process
Voici la signification des champs de cette ligne :
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.
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 multiutilisateurs, 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.
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
J-F Challe
22
HEPCUT - ISIPH
23
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 :
ifconfig eth0 212.68.194.203 netmask 255.255.255.240 broadcast 212.68.194.207
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.
localhost localhost.localdomain
gateway
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 :
ifconfig eth0 gateway netmask 255.255.255.240 broadcast bcasteth0
J-F Challe
HEPCUT - ISIPH
24
11
12
5
5
at
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.
Voici un exemple dutilisation de la commande netstat :
gateway:~# netstat -ia
Kernel Interface table
Iface
MTU Met
RX-OK RX-ERR RX-DRP RX-OVR
eth0
1500
0 1107745
0
0
0
eth1
1500
0
126495
1
0
0
eth2
1500
0
72856
14
0
0
eth3
1500
0
0
0
0
0
eth4
1500
0
18739
0
0
0
eth5
1500
0
972754
0
0
0
eth5: 1500
0
- no statistics available
eth5: 1500
0
- no statistics available
eth5: 1500
0
- no statistics available
lo
3924
0
65491
0
0
0
J-F Challe
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 :
HEPCUT - ISIPH
25
flag
B
L
M
O
P
R
U
signification
Une adresse broadcast est attribue linterface
Linterface est de type loopback
Linterface est configure en mode promiscuous
Le protocole ARP nest pas utilis avec cette interface
Cest une connexion point point
Linterface est oprationnelle (running)
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
eth1
eth2
eth3
eth4
eth5
J-F Challe
HEPCUT - ISIPH
26
eth5:0
eth5:1
eth5:2
lo
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).
J-F Challe
HEPCUT - ISIPH
27
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 :
J-F Challe
HEPCUT - ISIPH
28
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 :
J-F Challe
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
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.
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 :
[root@P100 network-scripts]# ifconfig eth1
eth1
Lien encap:Ethernet HWaddr 00:00:C0:36:4B:2E
inet adr:192.168.1.1 Bcast:192.168.1.255 Masque:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Paquets Reus:1783 erreurs:0 jets:0 dbordements:0 trames:0
Paquets transmis:1479 erreurs:0 jets:0 dbordements:0 carrier:0
collisions:1 lg file transmission:100
Interruption:10 Adresse de base:0x230 Mmoire:dc000-e0000
[root@P100 network-scripts]# cat ifcfg-eth1
DEVICE="eth1"
USERCTL=no
ONBOOT="yes"
BOOTPROTO="none"
BROADCAST=192.168.1.255
NETWORK=192.168.1.0
NETMASK="255.255.255.0"
IPADDR="192.168.1.1"
IPXNETNUM_802_2=""
IPXPRIMARY_802_2="no"
IPXACTIVE_802_2="no"
IPXNETNUM_802_3=""
IPXPRIMARY_802_3="no"
IPXACTIVE_802_3="no"
IPXNETNUM_ETHERII=""
IPXPRIMARY_ETHERII="no"
IPXACTIVE_ETHERII="no"
IPXNETNUM_SNAP=""
IPXPRIMARY_SNAP="no"
IPXACTIVE_SNAP="no"
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
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.
Genmask
255.255.255.255
255.255.255.255
255.255.255.240
255.255.255.0
255.0.0.0
0.0.0.0
Indic
UH
UH
U
U
U
UG
MSS
0
0
0
0
0
0
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.
[root@P100 /root]# ping 212.68.198.209
PING 212.68.198.209 (212.68.198.209) from 212.68.198.221 : 56(84) bytes
64 bytes from gateway (212.68.198.209): icmp_seq=0 ttl=64 time=56.8 ms
64 bytes from gateway (212.68.198.209): icmp_seq=1 ttl=64 time=78.1 ms
64 bytes from gateway (212.68.198.209): icmp_seq=2 ttl=64 time=53.7 ms
64 bytes from gateway (212.68.198.209): icmp_seq=3 ttl=64 time=26.2 ms
64 bytes from gateway (212.68.198.209): icmp_seq=4 ttl=64 time=53.7 ms
64 bytes from gateway (212.68.198.209): icmp_seq=5 ttl=64 time=50.1 ms
64 bytes from gateway (212.68.198.209): icmp_seq=6 ttl=64 time=55.9 ms
64 bytes from gateway (212.68.198.209): icmp_seq=7 ttl=64 time=87.1 ms
64 bytes from gateway (212.68.198.209): icmp_seq=8 ttl=64 time=56.7 ms
64 bytes from gateway (212.68.198.209): icmp_seq=9 ttl=64 time=50.1 ms
64 bytes from gateway (212.68.198.209): icmp_seq=10 ttl=64 time=25.1 ms
64 bytes from gateway (212.68.198.209): icmp_seq=11 ttl=64 time=53.7 ms
--- 212.68.198.209 ping statistics --12 packets transmitted, 12 packets received, 0% packet loss
round-trip min/avg/max = 25.1/53.9/87.1 ms
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 :
[root@P200 /root]# ifconfig eth0 192.168.1.10 netmask 255.255.255.0
[root@P200 /root]# ifconfig eth0
eth0
Lien encap:Ethernet HWaddr 00:A0:24:72:4C:A3
inet adr:192.168.1.10 Bcast:192.168.1.255 Masque:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Paquets Reus:9713 erreurs:0 jets:0 dbordements:0 trames:0
Paquets transmis:8864 erreurs:0 jets:0 dbordements:0 carrier:0
collisions:2 lg file transmission:100
Interruption:14 Adresse de base:0xe000
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
[root@P200
[root@P200
[root@P200
[root@P200
34
/root]#
/root]#
/root]#
/root]#
route
route
route
route
add
add
add
add
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
[root@P200 /root]# netstat -nr
Table de routage IP du noyau
Destination
Passerelle
192.168.2.0
192.168.1.30
192.168.1.0
0.0.0.0
127.0.0.0
0.0.0.0
0.0.0.0
192.168.1.1
Genmask
255.255.255.0
255.255.255.0
255.0.0.0
0.0.0.0
Indic
UG
U
U
UG
MSS
0
0
0
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.
[root@P200 /root]# netstat nr
Table de routage IP du noyau
Destination
Passerelle
192.168.2.0
192.168.1.30
192.168.1.0
0.0.0.0
127.0.0.0
0.0.0.0
0.0.0.0
192.168.1.1
Genmask
255.255.255.0
255.255.255.0
255.0.0.0
0.0.0.0
Indic
UGD
U
U
UG
MSS
0
0
0
0
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.
J-F Challe
HEPCUT - ISIPH
35
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.
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 :
[root@P200 /etc]# cat gateways
net 0.0.0.0
gateway 192.168.1.1
metric 1 passive
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 :
J-F Challe
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.
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.
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)
20
E(35)
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.
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.
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.
Type de route
Route directe
OSPF
Route par dfaut gnre de manire interne
Redirection ICMP
Route statique
Protocole Hello
RIP
Route OSPF ASE
BGP
EGP
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 sousrseau 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.
J-F Challe
HEPCUT - ISIPH
43
J-F Challe
HEPCUT - ISIPH
44
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
J-F Challe
46
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 :
[root@P100 /etc]# cat hosts
127.0.0.1
P100.challe.be
212.68.198.209 gateway
212.68.194.200 isec1
212.68.194.201 isec2
212.68.194.202 isec3
212.68.194.203 isec4
212.68.245.203 jmb
P100
localhost.localdomain
localhost
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.
J-F Challe
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
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.
Voici un exemple de fichier /etc/resolv.conf :
[root@P200 /etc]# cat resolv.conf
domain challe.be
search brutele.be challe.yi.org
nameserver 192.168.1.1
nameserver 192.168.1.50
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.
J-F Challe
HEPCUT - ISIPH
49
P200.challe.be.
root.challe.be. (
1998120701; Serial
28800
; Refresh
14400
; Retry
3600000
; Expire
86400 )
; Minimum
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.
4.1.2. Les enregistrements NS (Name Server).
Les enregistrements NS permettent de dfinir les serveurs de noms. Dans notre exemple, il y a un serveur de noms
implant dans lhte P100.
Voici un extrait du fichier de base de donnes contenant un enregistrement NS.
[root@P200 named]# cat challe.be
challe.be.
IN
SOA
challe.be.
IN
NS
P200.challe.be.
root.challe.be. (
1998120701; Serial
28800
; Refresh
14400
; Retry
3600000
; Expire
86400 )
; Minimum
P200.challe.be.
J-F Challe
HEPCUT - ISIPH
50
P200.challe.be.
root.challe.be. (
1998120701; Serial
28800
; Refresh
14400
; Retry
3600000
; Expire
86400 )
; Minimum
P200.challe.be.
challe.be.
IN
NS
P100.challe.be.
macii.challe.be.
powerpc.challe.be.
fuji.challe.be.
p166.challe.be.
P200.challe.be.
P133.challe.be.
P166PLUS.challe.be.
P2450.challe.be.
P2300.challe.be.
se30.challe.be.
P3450.challe.be.
P2366.challe.be.
modem.challe.be.
HP4.challe.be.
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
192.168.1.1
192.168.1.2
192.168.1.3
192.168.1.4
192.168.1.5
192.168.1.10
192.168.1.20
192.168.1.30
192.168.1.40
192.168.1.50
192.168.1.60
192.168.1.70
192.168.1.80
192.168.1.100
192.168.1.192
www.challe.be.
ftp.challe.be.
irc.challe.be.
mail.challe.be.
pop.challe.be.
news.challe.be.
IN
IN
IN
IN
IN
IN
CNAME
CNAME
CNAME
CNAME
CNAME
CNAME
P100.challe.be.
P100.challe.be.
P100.challe.be.
P100.challe.be.
P100.challe.be.
P100.challe.be.
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.
4.1.4. Les enregistrements PTR (Pointer).
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 :
[root@P200 named]# cat 1.168.192
1.168.192.in-addr.arpa.
IN
(
SOA
P200.challe.be.
1998120701
28800
14400
3600000
86400 )
1.168.192.in-addr.arpa.
NS
1.1.168.192.in-addr.arpa.
IN
J-F Challe
;
;
;
;
;
root.challe.be
Serial
Refresh
Retry
Expire
Minimum
P200.challe.be.
PTR
P100.challe.be.
HEPCUT - ISIPH
2.1.168.192.in-addr.arpa.
3.1.168.192.in-addr.arpa.
4.1.168.192.in-addr.arpa.
5.1.168.192.in-addr.arpa.
10.1.168.192.in-addr.arpa.
20.1.168.192.in-addr.arpa.
30.1.168.192.in-addr.arpa.
40.1.168.192.in-addr.arpa.
50.1.168.192.in-addr.arpa.
60.1.168.192.in-addr.arpa.
70.1.168.192.in-addr.arpa.
80.1.168.192.in-addr.arpa.
100.1.168.192.in-addr.arpa.
192.1.168.192.in-addr.arpa.
51
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
PTR
PTR
PTR
PTR
PTR
PTR
PTR
PTR
PTR
PTR
PTR
PTR
PTR
PTR
macii.challe.be.
powerpc.challe.be.
fuji.challe.be.
P166.challe.be.
P200.challe.be.
P133.challe.be.
P166PLUS.challe.be.
P2450.challe.be.
P2300.challe.be.
se30.challe.be.
P3450.challe.be.
P2366.challe.be.
modem.challe.be.
HP4.challe.be.
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 :
[root@P200 named]# cat 0.0.127
0.0.127.in-addr.arpa.
0.0.127.in-addr.arpa.
IN
NS
SOA
P200.challe.be.
1998120701
28800
14400
3600000
86400 )
;
;
;
;
;
root.challe.be (
Serial
Refresh
Retry
Expire
Minimum
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.
4.1.5. Les donnes de la zone racine.
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 :
[root@P100 named]# cat named.ca
;
This file holds the information on root name servers needed to
;
initialize cache of Internet domain name servers
;
(e.g. reference this file in the "cache . <file>"
;
configuration file of BIND domain name servers).
;
;
This file is made available by InterNIC registration services
;
under anonymous FTP as
;
file
/domain/named.root
;
on server
FTP.RS.INTERNIC.NET
;
-OR- under Gopher at
RS.INTERNIC.NET
;
under menu
InterNIC Registration Services (NSI)
;
submenu
InterNIC Registration Archives
;
file
named.root
;
;
last update:
Aug 22, 1997
;
related version of root zone:
1997082200
;
;
; formerly NS.INTERNIC.NET
;
J-F Challe
HEPCUT - ISIPH
.
3600000 IN NS
A.ROOT-SERVERS.NET.
3600000
A
;
; formerly NS1.ISI.EDU
;
.
3600000
NS
B.ROOT-SERVERS.NET.
3600000
A
;
; formerly C.PSI.NET
;
.
3600000
NS
C.ROOT-SERVERS.NET.
3600000
A
;
; formerly TERP.UMD.EDU
;
.
3600000
NS
D.ROOT-SERVERS.NET.
3600000
A
;
; formerly NS.NASA.GOV
;
.
3600000
NS
E.ROOT-SERVERS.NET.
3600000
A
;
; formerly NS.ISC.ORG
;
.
3600000
NS
F.ROOT-SERVERS.NET.
3600000
A
;
; formerly NS.NIC.DDN.MIL
;
.
3600000
NS
G.ROOT-SERVERS.NET.
3600000
A
;
; formerly AOS.ARL.ARMY.MIL
;
.
3600000
NS
H.ROOT-SERVERS.NET.
3600000
A
;
; formerly NIC.NORDU.NET
;
.
3600000
NS
I.ROOT-SERVERS.NET.
3600000
A
;
; temporarily housed at NSI (InterNIC)
;
.
3600000
NS
J.ROOT-SERVERS.NET.
3600000
A
;
; housed in LINX, operated by RIPE NCC
;
.
3600000
NS
K.ROOT-SERVERS.NET.
3600000
A
;
; temporarily housed at ISI (IANA)
;
.
3600000
NS
L.ROOT-SERVERS.NET.
3600000
A
;
; housed in Japan, operated by WIDE
;
.
3600000
NS
J-F Challe
52
A.ROOT-SERVERS.NET.
198.41.0.4
B.ROOT-SERVERS.NET.
128.9.0.107
C.ROOT-SERVERS.NET.
192.33.4.12
D.ROOT-SERVERS.NET.
128.8.10.90
E.ROOT-SERVERS.NET.
192.203.230.10
F.ROOT-SERVERS.NET.
192.5.5.241
G.ROOT-SERVERS.NET.
192.112.36.4
H.ROOT-SERVERS.NET.
128.63.2.53
I.ROOT-SERVERS.NET.
192.36.148.17
J.ROOT-SERVERS.NET.
198.41.0.10
K.ROOT-SERVERS.NET.
193.0.14.129
L.ROOT-SERVERS.NET.
198.32.64.12
M.ROOT-SERVERS.NET.
HEPCUT - ISIPH
M.ROOT-SERVERS.NET.
; End of File
53
3600000
202.12.27.33
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.
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 :
[root@P200 named]# cat challe.be
challe.be.
IN
SOA
P100
macii
powerpc
fuji
p166
P200
P133
P166PLUS
P2450
P2300
se30
P3450
P2366
modem
HP4
P200.challe.be.
root.challe.be. (
1998120701; Serial
28800
; Refresh
14400
; Retry
3600000
; Expire
86400 )
; Minimum
IN
NS
P200
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
192.168.1.1
192.168.1.2
192.168.1.3
192.168.1.4
192.168.1.5
192.168.1.10
192.168.1.20
192.168.1.30
192.168.1.40
192.168.1.50
192.168.1.60
192.168.1.70
192.168.1.80
192.168.1.100
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
1.168.192.in-addr.arpa.
IN
(
SOA
P200.challe.be.
1998120701
28800
14400
3600000
86400 )
NS
1
2
3
4
5
10
20
30
40
50
60
70
80
100
192
J-F Challe
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
P200.challe.be.
PTR
PTR
PTR
PTR
PTR
PTR
PTR
PTR
PTR
PTR
PTR
PTR
PTR
PTR
PTR
P100.challe.be.
macii.challe.be.
powerpc.challe.be.
fuji.challe.be.
P166.challe.be.
P200.challe.be.
P133.challe.be.
P166PLUS.challe.be.
P2450.challe.be.
P2300.challe.be.
se30.challe.be.
P3450.challe.be.
P2366.challe.be.
modem.challe.be.
HP4.challe.be.
;
;
;
;
;
root.challe.be
Serial
Refresh
Retry
Expire
Minimum
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.
Voici la nouvelle version des fichiers de donnes :
[root@P200 named]# cat challe.be
@
IN
SOA
P200.challe.be.
IN
NS
root.challe.be. (
1998120701; Serial
28800
; Refresh
14400
; Retry
3600000
; Expire
86400 )
; Minimum
P200
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
28800
14400
3600000
86400 )
NS
1
2
3
4
5
10
20
30
40
50
60
70
80
100
192
J-F Challe
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
P200.challe.be.
PTR
PTR
PTR
PTR
PTR
PTR
PTR
PTR
PTR
PTR
PTR
PTR
PTR
PTR
PTR
P100.challe.be.
macii.challe.be.
powerpc.challe.be.
fuji.challe.be.
P166.challe.be.
P200.challe.be.
P133.challe.be.
P166PLUS.challe.be.
P2450.challe.be.
P2300.challe.be.
se30.challe.be.
P3450.challe.be.
P2366.challe.be.
modem.challe.be.
HP4.challe.be.
;
;
;
;
;
Serial
Refresh
Retry
Expire
Minimum
HEPCUT - ISIPH
56
J-F Challe
HEPCUT - ISIPH
57
(
Serial
Refresh
Retry
Expire
TTL
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.
Les quatre champs suivants indiquent des intervalles de temps en seconde :
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 :
86400
7200
2592000
345600
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.
J-F Challe
HEPCUT - ISIPH
60
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";
};
6.2.2. Limitation du transfert une zone.
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.
[root@P100 /etc]# cat named.conf
options {
directory "/var/named";
};
zone "." {
type hint;
file "named.ca";
};
zone "0.0.127.in-addr.arpa" {
type master;
file "named.local";
};
zone "challe.be" {
type master;
file "challe.be";
allow-transfer { 192.168.1.40; };
};
zone "challe.yi.org" {
type master;
file "challe.yi.org";
};
zone "1.168.192.in-addr.arpa" {
type master;
file "1.168.192";
};
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 :
J-F Challe
une globale ;
une locale.
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 :
[root@P100 /etc]# cat named.conf
options {
directory "/var/named";
allow-transfer { 192.168.1/24; };
};
zone "." {
type hint;
file "named.ca";
};
zone "0.0.127.in-addr.arpa" {
type master;
file "named.local";
};
zone "challe.be" {
type master;
file "challe.be";
allow-transfer { 192.168.1.40; };
};
zone "challe.yi.org" {
type master;
file "challe.yi.org";
};
zone "1.168.192.in-addr.arpa" {
type master;
file "1.168.192";
};
-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.
Voici un exemple de session interactive :
[root@P100 /root]# nslookup
Default Server: P100.challe.be
Address: 192.168.1.1
>
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 :
[root@P100 /root]# nslookup p2300.challe.be
Server: P100.challe.be
Address: 192.168.1.1
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 :
[root@P100 /root]# nslookup
Default Server: P100.challe.be
Address: 192.168.1.1
> set all
Default Server: P100.challe.be
Address: 192.168.1.1
Set options:
nodebug
defname
nod2
novc
querytype=A
class=IN
root=a.root-servers.net.
domain=challe.be
srchlist=challe.be
search
noignoretc
timeout=5
recurse
port=53
retry=2
>
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 se rpartissent en deux catgories :
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
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.
[root@P100 /root]# nslookup
Default Server: P100.challe.be
Address: 192.168.1.1
> 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
>
J-F Challe
HEPCUT - ISIPH
Address:
66
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 :
[root@P100 /root]# nslookup
Default Server: P100.challe.be
Address: 192.168.1.1
> endor.yi.org yi.org
Server: yi.org
Address: 139.142.244.62
Non-authoritative answer:
Name:
endor.yi.org
Address: 212.68.199.229
>
Ce type dopration peut galement tre ralise de manire non interactive :
[root@P100 /root]# nslookup endor.yi.org yi.org
Server: yi.org
Address: 139.142.244.62
Non-authoritative answer:
Name:
endor.yi.org
Address: 212.68.199.229
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
J-F Challe
HEPCUT - ISIPH
68
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.
J-F Challe
1D
1D
1D
1D
1D
1D
1D
1D
1D
1D
1D
1D
1D
1D
1D
1D
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
192.168.1.70
192.168.1.80
192.168.1.2
192.168.1.3
192.168.1.1
192.168.1.60
192.168.1.40
192.168.1.30
192.168.1.50
192.168.1.20
192.168.1.40
192.168.1.192
192.168.1.4
192.168.1.5
192.168.1.100
192.168.1.10
HEPCUT - ISIPH
J-F Challe
70
HEPCUT - ISIPH
71
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.
Voici un exemple den-tte :
From jfc@isec.be Sat Oct 27 11:48:11 2001
Return-Path: <jfc@isec.be>
Received: from gateway1.isec.net (root@isec4 [212.68.194.203])
by mail.challe.yi.org (8.9.3/8.9.3) with ESMTP id LAA02458;
Sat, 27 Oct 2001 11:48:10 +0200
From: jfc@isec.be
Received-Date: Sat, 27 Oct 2001 11:48:10 +0200
Received: (from jfc@localhost)
by gateway1.isec.net (8.9.3/8.9.3/Debian 8.9.3-21) id LAA28363;
Sat, 27 Oct 2001 11:56:07 +0200
Date: Sat, 27 Oct 2001 11:56:07 +0200
Message-Id: <200110270956.LAA28363@gateway1.isec.net>
To: jfc@challe.yi.org
Subject: tst
Cc: root@challe.yi.org
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
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.
Voici une partie du fichier /var/named/challe.be :
[root@P100 named]# cat challe.be | more
@
IN
SOA
challe.be. root.localhost.
1998120701 ;
28800
;
14400
;
3600000
;
86400 )
;
NS
MX
J-F Challe
P100.challe.be.
10
P100.challe.be.
(
Serial
Refresh
Retry
Expire
Minimum
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.
J-F Challe
HEPCUT - ISIPH
74
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 :
[root@P100 sendmail] m4 sendmail.mc > /etc/sendmail.cf
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.
[root@P100 sendmail] /etc/rc.d/init.d/sendmail restart
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.
[root@P100 sendmail]# mail jfc
Subject: Nouveau serveur de mails
Monsieur,
Le serveur de mails est des maintenant disponible sur ce systeme.
.
Cc:
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
15/405
Monsieur,
Le serveur de mails est des maintenant disponible sur ce systeme.
& d
& q
[jfc@P100 jfc]$
5.3.2. Configurer le mail distant.
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 :
[root@P100 sendmail] cat sendmail.mc
include(`/usr/lib/sendmail-cf/m4/cf.m4')
OSTYPE(`linux')
FEATURE(use_cw_file)
FEATURE(local_procmail)
MAILER(procmail)
MAILER(smtp)
[root@P100 sendmail]# cd /etc
[root@P100 /etc]# cat sendmail.cw
# sendmail.cw - include all aliases for your machine here.
challe.yi.org
Aprs avoir activ ces modifications, sendmail permet denvoyer du courrier vers des utilisateurs distants ainsi que den
recevoir en provenance dutilisateurs distants.
5.3.3. Agir comme serveur relais.
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).
Voici la nouvelle configuration prsente dans le fichier sendmail.mc :
J-F Challe
HEPCUT - ISIPH
76
Action
Accepter le courrier mme si dautres rgles opposent un refus.
Accepter le message mme sil nest pas destin lhte excutant sendmail
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.
Voici extrait du fichier inetd.conf relatif au serveur POP :
#
# Pop and imap mail services et
#
pop-2
stream tcp
nowait
pop-3
stream tcp
nowait
imap
stream tcp
nowait
#
al
root
root
root
/usr/sbin/tcpd
/usr/sbin/tcpd
/usr/sbin/tcpd
ipop2d
ipop3d
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
pop2
pop2
pop3
pop3
imap2
imap2
imap3
imap3
77
109/tcp
109/udp
110/tcp
110/udp
143/tcp
143/udp
220/tcp
220/udp
pop-2
pop-2
pop-3
pop-3
imap
imap
postoffice
# POP version 2
# POP version 3
# Interim Mail Access Proto v2
# Interactive Mail Access
# Protocol v3
13/353
"message"
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 :
[root@P100 sendmail]# cat sendmail.mc
include(`/usr/lib/sendmail-cf/m4/cf.m4')
OSTYPE(`linux')
FEATURE(rbl)
FEATURE(always_add_domain)
FEATURE(use_cw_file)
FEATURE(local_procmail)
MAILER(procmail)
MAILER(smtp)
FEATURE(`access_db')
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 :
[root@P100 sendmail]# cat sendmail.mc
include(`/usr/lib/sendmail-cf/m4/cf.m4')
OSTYPE(`linux')
define(`confDOMAIN_NAME',`challe.yi.org')
FEATURE(rbl)
FEATURE(always_add_domain)
FEATURE(use_cw_file)
FEATURE(local_procmail)
MAILER(procmail)
MAILER(smtp)
FEATURE(`access_db')
Lexemple suivant montre que le nom de domaine nest plus pleinement qualifi.
[root@P100 /root]# mail jfc
Subject: Bonjour
Bonjour Monsieur
.
Cc:
[jfc@P100 jfc]$ mail
Mail version 8.1 6/6/93. Type ? for help.
"/var/spool/mail/jfc": 1 message 1 new
>N 1 root@challe.yi.org
Tue Nov 6 13:32
& p
Message 1:
From root Tue Nov 6 13:32:42 2001
Date: Tue, 6 Nov 2001 13:32:42 +0100
From: root <root@challe.yi.org>
To: jfc@challe.yi.org
Subject: Bonjour
Bonjour Monsieur
&
J-F Challe
13/350
"Bonjour"
HEPCUT - ISIPH
79
Ces alias sont dfinis dans le fichier /etc/aliases. Le format des entres de ce fichier est :
alias: destinataire {,destinataire, }
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.
Voici un exemple de fichier /etc/aliases :
[root@P100 /etc]# cat aliases
MAILER-DAEMON: postmaster
postmaster:
root
bin:
root
daemon:
root
games:
root
ingres:
root
nobody:
root
system:
root
toor:
root
uucp:
root
manager:
root
dumper:
root
operator:
root
decode:
root
jfchalle:
jfc
jf.challe:
jfc
mailinglist:
jfc, rc, root, jfc@p200.challe.be
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 :
[root@P100 /etc]# sendmail -bi
/etc/aliases: 18 aliases, longest 34 bytes, 243 bytes total
[root@P100 /etc]# newaliases
/etc/aliases: 18 aliases, longest 34 bytes, 243 bytes total
J-F Challe
HEPCUT - ISIPH
80
J-F Challe
HEPCUT - ISIPH
81
J-F Challe
HEPCUT - ISIPH
82
define(`confREFUSE_LA,`12)
Signification
Dfinition du nombre minimum de blocs libres dans la
queue pour accepter les nouveaux messages.
Dtermine la taille maximale des messages qui sont
accepts (taille exprime en bits).
Interdiction de la recompilation automatique des alias.
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.
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.
J-F Challe
HEPCUT - ISIPH
Voici le fichier sendmail.mc modifi pour imposer sendmail demployer un shell restreint :
[root@P100 sendmail]# cat sendmail.mc
include(`/usr/lib/sendmail-cf/m4/cf.m4')
OSTYPE(`linux')
define(`confPRIVACY_FLAGS',authwarnings novrfy noexpn restrictmailq needmailhelo)
define(`confSMTP_LOGIN_MSG,Bonjour)
define(`confDOMAIN_NAME',`challe.yi.org')
FEATURE(`smrsh,`/usr/sbin/smrsh)
FEATURE(rbl)
FEATURE(always_add_domain)
FEATURE(use_cw_file)
FEATURE(local_procmail)
MAILER(procmail)
MAILER(smtp)
FEATURE(`access_db')
J-F Challe
83
HEPCUT - ISIPH
J-F Challe
84
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.
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 :
[root@P100 /etc]# exportfs -r
rw : permet aux clients NFS de lire et dcrire sur le systme de fichiers export
ro : empche les clients NFS dcrire sur le systme de fichiers.
J-F Challe
HEPCUT - ISIPH
87
Bien que ce soit le super-utilisateur de la machine P200 qui tente de crer un fichier dans le rpertoire /home de lhte
P100, lopration choue. Lorsquun utilisateur dUID 0 (root) accde un systme de fichiers export, son UID est
transform en lUID de lutilisateur nobody ou bien en la valeur 65534 si lutilisateur nobody nexiste pas sur le
systme client. Cette technique constituant le comportement par dfaut porte le nom de root squashing. Ce
comportement peut tre inhib au moyen de loption no_root_squash. Voici le fichier /etc/exports modifi :
[root@P100 /etc]# cat exports
/mnt/cdrom
192.168.1.0/255.255.255.0(rw)
/mnt/floppy
(ro)
/home
P200(rw,no_root_squash)
Une session interactive sur lhte P200 montre que lutilisateur root de la machine P200 est considr comme tant le
super-utilisateur de la machine P100.
[root@p200
[root@p200
[root@p200
[root@p200
total 28
-rw-r--r-drwxr-xr-x
drwxr-xr-x
drwx-----drwx-----drwx-----drwx-----drwx------
root
root
root
jfc
504
502
503
501
root
root
root
jfc
504
502
503
501
0
4096
4096
4096
4096
4096
4096
4096
nov
oct
jui
nov
avr
ao
nov
oct
10
25
26
10
9
14
16
29
19:48
18:56
2000
17:53
2001
2000
2000
11:59
ess
ftp
httpd
jfc
jl
multi
pppuser
rc
J-F Challe
HEPCUT - ISIPH
88
7. Le montage permanent.
Lors du dmarrage du systme, le fichier /etc/fstab est lu afin de monter les systmes de fichiers qui y sont spcifis. Il
est permis de placer dans ce fichier, une entre stipulant le montage dun systme de fichiers NFS lors du dmarrage du
systme. Voici un exemple de fichier fstab :
[root@p200 /etc]# cat fstab
/dev/hda5
/
ext2
defaults
/dev/hda1
/boot
ext2
defaults
/dev/cdrom
/mnt/cdrom
iso9660 noauto,owner,ro
/dev/fd0
/mnt/floppy
auto
noauto,owner
none
/proc
proc
defaults
none
/dev/pts
devpts gid=5,mode=620
/dev/hda6
swap
swap
defaults
192.168.1.1:/home /mnt/floppy nfs rw,rsize=8192,wsize=8192,soft
1
1
0
0
0
0
0
0
1
2
0
0
0
0
0
0
J-F Challe
HEPCUT - ISIPH
89
VIII. NIS.
1. Introduction.
Le protocole NIS (Network Information Service) est un exemple de service dannuaire. Pour comprendre dutilit dun
tel service, prenons lexemple du service des renseignements tlphoniques. Lorsque un abonn au tlphone souhaite
connatre le numro dappel dun correspondant, il peut exploiter le service des renseignements. Lappelant est un
client du service dannuaire alors que loprateur, qui se trouve lautre bout de la ligne, est considr comme tant le
serveur. Loprateur consulte une base de donnes afin de rpondre la demande du client. Dans un systme
informatique, loprateur est remplac par un programme qui consulte une base de donnes. La partie client est un
ensemble de fonctions de bibliothque pouvant contacter lapplication distante ayant accs la base de donnes. Le
DNS qui a t tudi prcdemment est un exemple de service dannuaire.
Le protocole NIS a t dvelopp au milieu des annes 80 par la socit Sun Microsystem dsireuse de rsoudre le
problme de gestion dun grand nombre de stations sous UNIX. Lorsque les fonctionnalits de TCP/IP ont t ajoutes
aux systmes UNIX, les administrateurs ont prouv des difficults de gestion des fichiers /etc/hosts et /etc/passwd.
Ajouter un systme dans un rseau comptant plus de 100 htes et grer les utilisateurs correspondants devenait
problmatique. Pour le fichier /etc/hosts, le DNS a t invent et pour la gestion centralise des informations relatives
aux utilisateurs, NIS a t dvelopp. A lorigine NIS tait galement appel le service des Yellow Pages (YP)
Un problme majeur dans un environnement distribu comportant plusieurs systmes UNIX est de maintenir de
multiples copies des fichiers de mots de passe et de groupes. Dans une architecture distribue, un utilisateur doit avoir
la possibilit dexploiter nimporte quelle machine du rseau pour effectuer son travail. Cela impose un partage la
fois des informations relatives lidentification des utilisateurs mais aussi des donnes manipules par les utilisateurs.
Le partage des donnes des utilisateurs entre les diffrentes machines du rseau est ralis au moyen de NFS. Le
partage des informations dauthentification des utilisateurs est opr au moyen du protocole NIS.
Le protocole NIS distribue une base de donnes qui remplace les informations locales concernant les utilisateurs. Au
lieu de maintenir de multiples copies des fichiers /etc/passwd et /etc/group, ladministrateur doit uniquement maintenir,
dans un tat cohrent, une base de donnes localise sur un serveur NIS. Les machines ayant besoin dinformations
relatives aux utilisateurs doivent simplement se connecter au serveur NIS pour obtenir les renseignements souhaits. Le
couple de services NIS et NFS permet de partager la fois le rpertoire /home et les donnes dauthentification entre les
htes du rseau.
J-F Challe
HEPCUT - ISIPH
passwd:
shadow:
group:
hosts:
bootparams:
ethers:
netmasks:
networks:
protocols:
rpc:
services:
netgroup:
publickey:
automount:
aliases:
90
Lentre hosts du fichier /etc/nsswitch.conf contient les valeurs files, nisplus, nis et dns. Lorsquune requte de
conversion dun nom dhte en adresse IP est requise, le fichier /etc/hosts est tout dabord consult. Si le fichier ne
contient pas linformation recherche, la recherche se poursuit au moyen des services NIS+ et NIS. En dautres termes,
un serveur NIS est contact afin de pouvoir exploiter les informations prsentes dans le fichier /etc/hosts du serveur. Si
le serveur NIS ne possde pas linformation recherche, cest au serveur DNS dintervenir. Une entre du fichier
/etc/nsswitch.conf stipule dans quel ordre les services de rsolution de noms doivent tre employs.
Le rseau dune entreprise peut tre compos de deux groupes de machines. Il peut en exister un groupe utilis par les
services administratifs de lentreprise et un autre groupe par le service recherche et dveloppement. Bien que ces deux
groupes de machines soient interconnects par le biais du mme rseau, les politiques de partage dinformations entre
les htes diffrent suivant quune machine appartient lun ou lautre groupe. Pour reflter une diffrence potentielle
de gestion des groupes de machines, NIS propose la notion de domaine. Un doma ine est un ensemble de machines qui
partagent un mme ensemble de maps NIS.
installation dun nouvel environnement NIS sur les serveurs matre et esclave ;
lancement du dmon ypserv permettant un hte dagir en tant que serveur ;
ajout de nouveaux serveurs esclaves en fonction de la croissance du rseau et des performances souhaites.
modification des fichiers de configuration du systme afin de permettre au client de tirer parti des avantages de
NIS ;
lancement du dmon ypbind permettant un client deffectuer des requtes NIS.
J-F Challe
HEPCUT - ISIPH
91
NETWORKING=yes
HOSTNAME="P100.challe.yi.org"
GATEWAY=212.68.198.209
FORWARD_IPV4=yes
GATEWAYDEV=eth0
NISDOMAIN=DOMAINENIS
Cette mmorisation du nom de domaine NIS peut galement tre ralise au moyen de lutilitaire linuxconf. Il faut
alors choisir Configuration/Rseau/Tches clientes/NIS. Aprs avoir effectu ce choix, une fentre permet dencoder le
nom de domaine NIS.
Ds que cette opration est ralise, il faut lancer le client NIS par lintermdiaire de la commande :
J-F Challe
HEPCUT - ISIPH
92
Pour que limpression denrichissement soit possible, il faut que le fichier /etc/nsswitch.conf prcise que les copies
locales des fichiers doivent tre consultes avant dexploiter la base de donnes NIS. Cest par exemple le cas pour les
fichiers :
passwd ;
shadow ;
group ;
hosts.
Le partage par NIS des fichiers passwd, shadow et group permet un utilisateur nayant pas de compte sur une machine
de se connecter avec le nom dutilisateur et le mot de passe quil possde au niveau du serveur NIS. En utilisant NIS
conjointement avec le service NFS, des utilisateurs pourront se connecter nimporte quelle machine et exploiter le s
donnes quils possdent dans leur rpertoire.
Le partage du fichier hosts permet de remplacer, dans une certaine mesure, la notion de DNS. Les projets NIS et DNS
ont t dvelopps en parallle. Cela signifie quau dbut de la conception de NIS, le service DNS nexistait pas. Le
service NIS a ds lors t charg de distribuer les informations du fichier hosts de sorte quune seule copie des
informations soit ncessaire.
Le service NIS ne peut cependant pas remplacer compltement les fichiers locaux. En effet, le service NIS nest pas
lanc immdiatement au dmarrage du systme. Il faut donc que les copies locales des fichiers puissent fournir les
renseignements ncessaires au dmarrage du systme avant que le service NIS soit lanc. Si le serveur NIS tombe en
panne, il est ncessaire que les clients puissent toujours assurer un service minimum. Lexistence des fichiers locaux
permet de ne pas interrompre compltement les services de ces machines.
J-F Challe
HEPCUT - ISIPH
93
La liste des serveurs disponibles fait partie de la base de donnes NIS. Une modification du fichier ypservers doit donc
tre suivie dune reconstruction des maps au moyen de la commande make.
4. Les commandes-clients.
Les utilisateurs de systmes fonds sur NIS ont la possibilit dinteragir avec la base de donnes au moyen de
diffrentes commandes.
4.1. ypmatch.
La commande ypmatch est une commande grep pour les maps NIS. Cette commande recherche une chane dans une
map et imprime les donnes correspondantes.
Le premier paramtre de la commande ypmatch est la chane rechercher et le second paramtre est le nom de la map
dans laquelle il faut effectuer la recherche. Voici un exemple dutilisation de la commande ypmatch :
[jfc@p200 jfc]$ ypmatch jfc passwd
jfc:$1$RTbs4X0mVLTKq2A0CQnysr0:500:500:Jean-Francois Challe:/home/jfc:/bin/bash
[jfc@p200 jfc]$ ypmatch isec1 hosts
212.68.194.200 isec1
[jfc@p200 jfc]$
4.2. ypcat.
La commande ypcat est lquivalent de la commande cat. Cette commande permet de visualis er le contenu dune map.
Le paramtre de la commande est donc le nom dune map. Voici un exemple dexcution de la commande ypcat :
[jfc@p200 jfc]$
127.0.0.1
212.68.194.201
127.0.0.1
127.0.0.1
212.68.194.203
212.68.245.203
212.68.194.200
127.0.0.1
212.68.198.209
212.68.194.202
ypcat hosts
P100.challe.be
isec2
P100.challe.be
P100.challe.be
isec4
jmb
isec1
P100.challe.be
gateway
isec3
P100
localhost.localdomain
localhost
P100
P100
localhost.localdomain
localhost.localdomain
localhost
localhost
P100
localhost.localdomain
localhost
4.3. ypwhich.
La commande ypwhich permet de connatre ladresse IP du serveur NIS actuellement employ par un client. Voici un
exemple dutilisation de cette commande :
[jfc@p200 jfc]$ ypwhich
192.168.1.1
La commande ypwhich avec loption x permet de connatre lensemble des maps disponibles :
[jfc@p200 jfc]$
Use "ethers"
Use "aliases"
Use "services"
Use "protocols"
Use "hosts"
Use "networks"
Use "group"
Use "passwd"
J-F Challe
ypwhich
for map
for map
for map
for map
for map
for map
for map
for map
x
"ethers.byname"
"mail.aliases"
"services.byname"
"protocols.bynumber"
"hosts.byname"
"networks.byaddr"
"group.byname"
"passwd.byname"
HEPCUT - ISIPH
94
4.4. yppasswd.
Lorsquun utilisateur souhaite changer de mot de passe, il ne doit plus utiliser la commande passwd mais la commande
yppasswd pour que les modifications soient effectues au niveau du serveur.
J-F Challe
HEPCUT - ISIPH
95
IX. LPD.
1. Introduction.
Les imprimantes connectes un systme Linux sont gnralement branches par lintermdiaire du port parallle.
Chaque port parallle du systme correspond un device dans le rpertoire /dev. Le premier port parallle est /dev/lp0,
le second /dev/lp1 et le troisime /dev/lp2.
Si une imprimante est branche sur le premier port parallle (/dev/lp0), il est possible de dclencher limpression en
envoyant directement des informations vers le priphrique. Voici un exemple dune telle opration :
[root@P100 /root]# cat ess.c > /dev/lp0
Procder de la sorte pour imprimer un document est de loin la plus mauvaise mthode. Durant tout le processus
dimpression, lutilisateur na pas la possibilit deffectuer dautres travaux. De plus, dautres utilisateurs nauront pas
la possibilit dimprimer tant que le port est en cours dutilisation par un autre processus.
Comme la majorit des systmes dexploitation dignes de ce nom, Linux possde la notion de spool dimpression. Cela
permet aux utilisateurs de soumettre leurs travaux au spooler qui se chargera dimprimer le document correctement.
Cette technique permet un partage de la ressource dimpression sans y imposer un accs exclusif.
Sous UNIX, le dmon LPD (Line Printer Daemon) est le serveur dimpression pour les utilisateurs locaux et distants. Il
gre les diffrentes imprimantes ainsi que leurs files dattente respectives.
2. Le fichier /etc/printcap.
Lorsque LPD est lanc, il lit le fichier /etc/printcap pour dcouvrir les imprimantes existantes. Ce fichier dfinit les
imprimantes et leurs caractristiques. Configurer ce fichier est la partie la plus dlicate du travail car lanalyseur qui
exploite ce fichier est trs tatillon et la syntaxe des paramtres du fichier est particulirement obscure. La plupart des
problmes de syntaxe et de lecture du fichier peuvent tre vits en suivant quelques rgles :
commencer chaque entre par un nom dimprimante la premire colonne du fichier. Aucun espace ne doit
prcder le premier nom dune imprimante. Plusieurs noms dimprimante peuvent tre utiliss la condition
quils soient spars par le caractre |. Lune des entres doit absolument porter le nom lp. Si plusieurs
imprimantes sont connectes, ce nom doit tre affect limprimante par dfaut ;
les entres du fichier printcap peuvent tre rdiges sur plusieurs lignes la condition que soit utilis le
caractre dchappement \ la fin de chaque ligne et en commenant toute nouvelle ligne par une tabulation.
Aucun espace ne doit se trouver avant le caractre \. De plus, le caractre suivant \ doit obligatoirement tre un
retour de chariot ;
tout champ, autre que le nom de limprimante, commence et se termine par le caractre deux-points. Le
caractre prcdent \ ou suivant une tabulation doit tre le caractre deux-points.
Les paramtres de configuration utiliss dans le fichier /etc/printcap dcrivent les caractristiques de limprimante. Le
dmon LPD besoin de connatre ces caractristiques afin de communiquer avec limprimante. Les paramtres, cods
sur deux caractres, peuvent gnralement tre affects dune valeur. La syntaxe des paramtres varie lgrement en
fonction du type de la valeur affecte. Les paramtres sont de trois types :
boolen : toutes les valeurs de ce type sont par dfaut faux. Spcifier une valeur boolenne active sa
fonction. Ces paramtres sont spcifis en utilisant leur nom. Par exemple, :rc: active les mesure de scurit
pour les utilisateurs distants ;
numrique : il est permis daffecter une valeur numrique certains paramtres. Par exemple, :br#9600 fixe la
vitesse de communication avec une imprimante srie ;
chane de caractres : certains paramtres peuvent utiliser une valeur sous la forme dune chane de caractres.
Par exemple, :rp=laserjet: dfinit le nom dune imprimante distante.
Les serveurs dimpression nont en gnral quune ou deux imprimantes directement connectes. Toutes les autres
dfinies dans le fichier /etc/printcap sont probablement des imprimantes distantes.
J-F Challe
HEPCUT - ISIPH
96
J-F Challe
HEPCUT - ISIPH
97
4. Utilisation de LPD.
4.1. Envoyer une requte dimpression.
Les documents imprimer sont envoys au dmon dimpression via la commande lpr (Line Printer Remote). La
commande lpr possde un grand nombre darguments, mais en gnral, on donne juste le nom de limprimante ainsi que
le fichier imprimer. Voici un exemple denvoi dune requte dimpression vers limprimante hp4 :
[root@P100 /etc]# lpr -P hp4 printcap
Sans le paramtre P, la commande lpr envoie la requte dimpression vers limprimante par dfaut portant le nom lp.
Sans argument prcis, la commande lpc entre en mode interactif. Par contre, si des arguments sont spcifis, la
commande lpc interprte le premier comme tant une commande et les autres comme tant des paramtres. Voici la
liste des commandes reconnues par lpc :
-P :indique une imprimante particulire. Sans cette options, limprimante par dfaut est consulte. Tous les
autres arguments sont interprts comme des noms dutilisateurs ou des numros de travaux ;
-l : toute linformation disponible sur un travail est affiche.
J-F Challe
HEPCUT - ISIPH
98
Total Size
23552 bytes
53 bytes
-P :indique quelle imprimante est concerne. Sans cela, cest limprimante par dfaut qui est employe ;
- : un seul signe moins permet de supprimer toutes les requtes appartenant un utilisateur. Si lutilisateur est
root, tous les travaux sont supprims ;
utilisateur : la commande lprm tente de supprimer tous les travaux de lutilisateur ou des utilisateurs spcifis.
Cette option nest exploitable que par le super-utilisateur ;
job # : un utilisateur peut supprimer des travaux de manire individuelle en prcisant leur numro.
J-F Challe
HEPCUT - ISIPH
99
X. DHCP.
1. Introduction.
Le protocole DHCP (Dynamic Host Configuration Protocol) permet de configurer dynamiquement des clients.
Lorsquun hte doit tre connect un rseau, il faut configurer :
ladresse IP ;
le masque de sous-rseau ;
ladresse de diffusion ;
ladresse de la passerelle ;
ladresse du serveur DNS ;
le nom de la machine.
allocation manuelle. Ladministrateur garde un contrle total sur les adresses en les affectant de manire
spcifique aux clients ;
allocation automatique. Le serveur DHCP affecte de faon permanente une adresse partir dun ensemble
dadresses disponibles. Ladministrateur nintervient pas de faon prcise dans laffectation dune adresse un
client ;
allocation dynamique. Le serveur affecte une adresse un client DHCP pour une dure limite. Cette dure
de vie limite de ladresse est appele un bail. Le client peut renvoyer ladresse au serveur nimporte quel
moment. Le serveur rclame automatiquement ladresse aprs lexpiration du bail.
Lallocation dynamique est utile dans les rseaux de grande taille o un grand nombre de machines sont ajoutes et
supprimes. Les adresses inutilises retrouvent lensemble des adresses libres sans que les utilisateurs ou
ladministrateur naient intervenir. Lallocation dynamique permet un rseau davoir une utilisation maximale dun
ensemble rduit dadresses. Cela est particulirement recommand dans le cas de systmes mobiles qui passent dun
sous-rseau lautre et qui doivent donc se voir raffecter une nouvelle adresse chaque endroit o ils sont connects.
Lallocation dynamique dadresses ne fonctionne pas sur tous les systmes (les serveurs de noms, de courrier
lectronique, etc ). En dautres termes, tous les systmes accessibles au moyen dune rsolution de nom ne peuvent
recevoir une adresse dynamiquement. Ces systmes doivent donc tre configurs manuellement.
Laffectation dadresse dynamique a principalement une rpercussion sur le DNS. Le DNS est ncessaire pour faire
correspondre un nom de machine une adresse IP. Il ne peut pas jouer son rle si les adresses IP changent sans arrt
sans quil ne soit tenu au courant de ces modifications. Pour faire en sorte que laffectation dadresses dynamiques
fonctionne avec tous les systmes, il est ncessaire davoir un nouveau type de DNS qui puisse tre mis jour
dynamiquement par le serveur DHCP. Une norme de DNS dynamique est actuellement ltude.
2. Le fichier dhcpd.conf.
La configuration du serveur DHCP figure dans le fichier /etc/dhcpd.conf. Ce fichier de configuration contient les
instructions indiquant au serveur quels sous-rseaux et quelles machines il sert ainsi que les informations de
configuration quil leur fournit.
J-F Challe
HEPCUT - ISIPH
100
default-lease-time 86400;
get-lease-hostnames true;
option subnet-mask 255.255.255.0;
option domain-name "challe.be";
option domain-name-servers 192.168.1.1;
option lpr-servers 192.168.1.192;
option interface-mtu 1500;
subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.1;
option broadcast-address 192.168.1.255;
range 192.168.1.200 192.168.1.240;
}
Loption default-lease-time indique au serveur, la dure en seconde dun bail dadresse. Lorsque le nombre de secondes
prcis expirera, ladresse sera rcupre par le serveur. Loption get-lease-hostnames demande au serveur DHCP de
fournir un nom de machine chaque fois quun client reoit une adresse dynamique. De plus, le nom de machine est
obtenu via le DNS. Ce paramtre est un boolen. Sil est positionn faux, ce qui est la valeur par dfaut, le client
reoit une adresse mais pas de nom. Rechercher le nom de machine pour toute adresse dynamique possible allonge
sensiblement le temps de rponse une demande dattribution dune adresse.
Les cinq lignes suivantes du fichier /etc/dhcpd.conf dfinissent des valeurs qui seront utilises par les clients pour
mener bien leur processus de configuration. La signification de ces options est clairement indique par leur nom.
Dans cet exemple, les clients recevront :
Linstruction subnet dfinit le rseau que le serveur DHCP va servir. Lidentit de chaque rseau est dtermine par
ladresse et le masque du rseau. Ces deux lments sont requis par cette instruction. Les options et les paramtres
dfinis dans une instruction subnet ne sappliquent quau sous-rseau et ses clients. Les options utilises dans cet
exemple indiquent aux clients, ladresse du router et ladresse de diffusion utiliser.
Le paramtre range dfinit lintervalle des adresses disponibles pour lallocation dynamique dadresses. Ce range se
trouve toujours associ une instruction subnet. Lintervalle de ce paramtre est dfini par les adresses de dbut et de
fin. La premire est ladresse la plus petite qui puisse tre automatiquement affecte et la seconde est ladresse la plus
grande pouvant tre automatiquement affecte.
Une instruction subnet peut contenir plusieurs clauses range. Cela permet dadapter la configuration du serveur DHCP
la structure dun rseau dj existant. Dans un grand nombre de sites, un serveur DHPC est ajout une configuration
existante. Dans ce cas, les adresses fixes ont dj t attribues. Le protocole DHCP doit donc sadapter lexistant.
J-F Challe
HEPCUT - ISIPH
101
J-F Challe
HEPCUT - ISIPH
102
Le problme pos par ce type de configuration consiste en la connaissance des adresses MAC. La commande arp
permet de connatre la liste de toutes les adresses MAC. Voici un exemple dexcution de cette commande :
[root@P100 /etc]# arp
Adresse
powerpc.challe.be
P3450.challe.be
P2450.challe.be
P200.challe.be
P133.challe.be
P2300.challe.be
gateway
P166PLUS.challe.be
P2366.challe.be
HP4.challe.be
J-F Challe
TypeMap
ether
ether
ether
ether
ether
ether
ether
ether
ether
ether
AdresseMat
00:05:02:B4:5F:5B
00:00:C0:F8:B2:A4
00:10:4B:DC:A2:8E
00:80:C8:C1:3A:78
00:00:C0:64:21:67
00:00:C0:E1:20:67
00:00:77:95:5D:54
00:00:C0:BC:F1:A3
00:60:97:8E:8A:A6
00:60:B0:13:6F:D5
Indicateurs
C
C
C
C
C
C
C
C
C
C
Iface
eth1
eth1
eth1
eth1
eth1
eth1
eth0
eth1
eth1
eth1
HEPCUT - ISIPH
103
XI. Samba.
1. Introduction.
Samba est une suite dapplications UNIX utilisant le protocole SMB (Server Message Block). La plupart des systmes
dexploitation, comme Windows et OS/2, prennent en charge la communication rseau laide de SMB. Grce ce
protocole, Samba permet des serveurs Unix de communiquer avec des produits Microsoft Windows. Ainsi, une
machine UNIX dote de Samba peut elle tre vue comme un serveur de rseau Microsoft, en proposant les services
suivants :
La suite Samba sarticule autour de deux dmons UNIX fournissant des ressources partages des clients SMB du
rseau. Ces dmons sappellent :
smbd : qui permet le partage de fichiers et dimprimantes sur un rseau SMB et prend en charge
lauthentification et les droits daccs des clients SMB ;
nmbd : qui est associ au service WINS et prend en charge la rsolution de noms.
Plusieurs raisons peuvent conduire la mise en uvre dun serveur Samba, elles sont :
la recherche des fonctionnalits offertes par un serveur Windows NT sans tre dans lobligation den acheter
un ;
le souhait de crer un espace commun pour les donnes des utilisateurs afin de remplacer un serveur Windows
par un serveur UNIX ou inversement ;
le souhait de partager des imprimantes entre des stations de travail sous Windows et sous UNIX ;
la ncessit daccder des fichiers rsidant sous Windows depuis un serveur UNIX.
Supposons dans la suite de cette section que lon dispose dun rseau o la machine de nom P100 est un serveur Samba
faisant partie du groupe PRIVE.
J-F Challe
HEPCUT - ISIPH
104
Sous Windows, les noms dhtes combinent des majuscules et des minuscules. La casse na pas dimportance pour les
noms dhtes : dans les crans daffichage et les rsultats des commandes, P100 et p100 par exemple, font rfrence au
mme ordinateur.
En cliquant deux fois sur licne P100, Windows affiche les ressources partages appartenant ce serveur. Cette action
tablit un partage avec le serveur et lui demande la liste des partages proposs, cest--dire les ressources de fichiers et
les ressources dimprimantes. Dans le cas prsent, le serveur compte les imprimantes hp4 et seikosha ainsi que les
partages de disques ftp et jfc.
Cet exemple montre que grce Samba, un client Windows considre le serveur UNIX comme tant un serveur SMB.
Il est prsent sous la forme dune ressource accessible comme nimporte quelle autre.
Loption connecter un lecteur rseau de lexplorateur Windows permet dattribuer une lettre de lecteur un rpertoire
rseau recens. La lettre de lecteur devient un raccourci pratique auquel se rfrent les applications pour accder au
dossier rseau concern. Il est permis dy stocker des donnes, dy installer et dy lancer des programmes.
Le paramtre Chemin de la bote de dialogue connecter un lecteur rseau est une autre manire de reprsenter un
rpertoire dune machine rseau. Dans le monde Windows, cette notation obit la convention UNC (Universal
Naming Convention).
Une fois le lecteur rseau dfini, Windows et ses logiciels se comportent comme si le rpertoire tait un disque dur
local. Cette unit peut alors recevoir les applications acceptant un fonctionnement multi-utilisateurs. Lillustration
suivante montre lunit rseau comme si elle faisait partie des priphriques de stockage appartenant au client. Licne
particulire du lecteur H : indique quil sagit dune unit rseau et non pas dune unit locale.
J-F Challe
HEPCUT - ISIPH
105
J-F Challe
HEPCUT - ISIPH
106
No locked files
Share mode memory usage (bytes):
1048464(99%) free + 56(0%) used + 56(0%) overhead = 1048576(100%) total
Par ailleurs, le rseau doit avoir le moyen de rsoudre un nom NetBIOS en une adresse IP. Cette fois encore, deux
approches sont possibles :
J-F Challe
chaque machine transmet son adresse IP lorsquelle entend une demande de diffusion de son nom NetBIOS ;
le serveur de noms NetBIOS transforme le nom en adresse IP.
HEPCUT - ISIPH
107
J-F Challe
HEPCUT - ISIPH
108
Dans un domaine Windows, lorsquun client non authentifi demande laccs aux partages dun serveur, ce dernier
interroge le contrleur de domaine pour savoir si lutilisateur est authentifi ou non. Dans laffirmative, le serveur
tablit une connexion de session porteuse des droits daccs enregistrs pour le service et lutilisateur. Dans la ngative,
la connexion est refuse. Lorsque le contrleur de domaine authentifie un utilisateur, un jeton spcial est renvoy au
client de sorte que lutilisateur nait pas sidentifier nouveau pour accder aux autres ressources du domaine. A cette
tape, lutilisateur est connect au domaine.
La redondance est un concept important des domaines Windows. Le contrleur actif dun domaine sappelle le PDC
(Primary Domain Controller). Un domaine peut comporter un ou plusieurs BDC (Backup Domain Controller). Un
BDC prend le relais dun PDC en cas de dysfonctionnement ou de dfaillance de celui-ci. Les BDC synchronisent
rgulirement leurs donnes SAM avec le PDC.
Certains aspects sont communs un groupe de travail Windows et un domaine Windows puisque le concept de
domaine Windows na pas volu depuis Windows NT 3.51 et que les domaines Windows doivent tre compatibles
avec les groupes de travail Windows for Workgroups 3.1. En fait, un domaine Windows est un groupe de travail
Windows comprenant un ou plusieurs contrleurs de domaine.
A partir de la version 2.1, Samba peut tre configur comme PDC. Par contre, il est incapable de remplir la fonction de
BDC tant donn le caractre ferm du protocole Microsoft employ pour la synchronisation des donnes SAM.
Lvolution du produit Samba provient de la volont dune quipe deffectuer du reverse engineering de manire
dcouvrir les secrets de fabrication de Microsoft.
1.5.2. Exploration.
Lexploration est la rponse la question formule par les utilisateurs : Quelles sont les machines connectes au
rseau ? . Les utilisateurs doivent connatre le nom de lordinateur auquel ils souhaitent se connecter, puis doivent
entrer le chemin daccs la ressource avant dexplorer,.
Il existe donc deux types dexploration :
Pour que lexploration de premier type soit possible, un ordinateur doit tenir jour une liste des machines accessibles
sur le rseau. Lordinateur dtenant cette liste est appel lexplorateur principal local et la liste est appele la liste
dexploration. Lorsquun ordinateur doit explorer le rseau, il demande la liste dexploration lexplorateur principal
local.
Pour explorer les ressources dune machine, lutilisateur doit sy connecter. Si lauthentification russit, la machine
sollicite revoie la liste des ressources auxquelles lutilisateur a le droit daccder.
Dans un groupe de travail Windows, chaque serveur doit annoncer non seulement sa prsence lexplorateur principal
local aprs lenregistrement de son nom NetBIOS, mais aussi son dpart lorsquil est mis hors tension. Toute machine
Windows (2000, NT, 95, 98, Me) peut jouer le rle dexplorateur principal local. Comme le contrleur de domaine,
lexplorateur principal local peut, en cas de panne, tre assist dun ou de plusieurs explorateurs secondaires. Pour
assurer une fluidit de fonctionnement, les explorateurs secondaires synchronisent rgulirement leur liste dexploration
avec lexplorateur principal.
Lorsque lexplorateur principal sarrte, il convient dlire un nouvel explorateur principal. Lalgorithme dlection
permet plusieurs ordinateurs de choisir lequel dentre eux devient explorateur principal, les autres tant alors
explorateurs secondaires. Une lection peut tre provoque nimporte quel moment. Lors de la mise en route dun
ordinateur, il signale sa prsence et provoque une lection au cours de laquelle lexplorateur principal peut tre remis en
cause.
1.5.3. Le service WINS.
Le service WINS est limplmentation par Microsoft dun serveur de noms NetBIOS. De plus, WINS est dynamique :
lors de sa premire connexion, un client doit fournir ses noms dhte, son adresse et son groupe au serveur WINS local.
J-F Challe
HEPCUT - ISIPH
109
Ce dernier mmorise ces informations tant que le client met priodiquement jour son enregistrement WINS, signifiant
ainsi quil est toujours connect au rseau.
Bien quil soit possible de configurer plusieurs serveurs WINS qui doivent cooprer entre eux, ce mcanisme devient
trs rapidement lourd et peu efficace. Lidal est de codifier au niveau de chaque client, ladresse dun serveur WINS
qui sera le mme pour tous.
2. Configuration de Samba.
2.1. Fichier de configuration de base pour Samba.
La configuration de Samba exige la modification du fichier /etc/samba/smb.conf. Ce fichier est lunique source de
renseignements ncessaires la configuration de Samba.
Le logiciel Samba peut tre configur de manire telle que le serveur fasse partie dun groupe de travail ou dun
domaine. Voici un exemple de configuration de Samba pour un groupe de travail :
[root@p200 samba]# cat smb.conf
[global]
workgroup = PRIVE
[test]
comment = Test et mise au point de Samba
path = /home/tst
read only = no
guest ok = yes
Ce fichier de configuration appelle, test le partage du serveur Samba. Ce dernier devient galement membre du groupe
PRIVE, auquel doit appartenir chaque client. Pour que les clients puissent utiliser le partage test, il faut quil
corresponde un rpertoire du systme UNIX. Dans cet exemple, le rpertoire UNIX correspondant est /home/tst.
Ladministrateur doit donc crer ce rpertoire veillant, par exemple, permettre tous le monde dy accder pour y lire
et y crire des donnes. Voici les commandes excuter pour le rpertoire cr et pour lui donner les permissions
daccs suffisantes :
[root@p200 /root]# mkdir /home/tst
[root@p200 /root]# chmod 777 /home/tst
La clause read only = no indique Samba de laisser un accs en lecture et en criture aux donnes du partage. Si la
valeur de cette clause avait t fixe yes, personne naurait pu crire dinformations dans le partage.
Sous Windows 98 ainsi qu partir de Windows NT 4.0 Service Pack 3, les mots de passe qui transitent sur le rseau
sont crypts. Par dfaut, Samba sattend recevoir les mots de passe en clair. Dans ce type denvironnement, il faut
que Samba soit configur pour recevoir des informations chiffres. Voici le fichier /etc/samba/smb.conf modifi pour
accepter les mots de passe crypts :
[root@p200 samba]# cat smb.conf
[global]
workgroup = PRIVE
encrypt passwords = yes
[test]
comment = Test et mise au point de Samba
path = /home/tst
read only = no
guest ok = yes
Dans ce cas de figure, le mot de passe ne transite plus en clair sur le rseau. En ralit, le client chiffre linformation et
la transmet au serveur qui la comparera avec sa version crypte. Si les deux informations sont identiques, le client aura
accs la ressource. Cela signifie que le serveur Samba doit disposer dune version crypte des mo ts de passe. La
commande smbpasswd permet dajouter un utilisateur la base de donnes des noms/mots de passe. Cette base de
donnes sera consulte par le serveur pour dterminer si un client peut accder aux informations. Voici un exemple de
commande qui ajoute un utilisateur UNIX existant la base de donnes :
J-F Challe
HEPCUT - ISIPH
110
Error was
Le message derreur gnr par le systme nest pas important : la premire fois quun utilisateur est ajout la base de
donnes, cela provoque la cration du fichier des mots de passe qui nexistait pas.
Une autre technique permet des clients Windows NT et Windows 2000 de se connecter un serveur Samba sans que
ce dernier soit dans lobligation de chiffrer les mots de passe. La base de registre de Windows contient une entre
imposant le chiffrement des mots de passe. Il suffit de modifier cette entre pour indiquer que les mots de passe doivent
transiter en clair sur le rseau. Lentre de la base de registre modifier dans le cas de Windows NT est :
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Rdr\Parameters]
"EnablePlainTextPassword"=dword :00000001
Dans le cas de Windows 2000, lentre de la base de registre modifier est :
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkStation
\Parameters]"EnablePlainTextPassword"=dword :00000001
3. Partages de disque.
3.1. Structure du fichier de configuration.
Le fichier /etc/samba/smb.conf est constitu de rubriques qui, lexception de la rubrique [global], dsignent chacune
un partage de disque ou dimprimante accessibles aux clients ouvrant une session avec le serveur Samba. Les autres
lignes sont des options propres au partage considr. Le contenu dune rubrique est compris entre le titre entre crochets
et le titre suivant ou, sil sagit de la dernire rubrique, la fin du fichier de configuration. Chaque option de
configuration se prsente sous la forme dun nom, suivi du signe dgalit, lui mme suivi de la valeur de loption.
Le fichier de configuration peut tre modifi lors de lexcution du dmon Samba. Par dfaut, Samba vrifie le fichier
de configuration toutes les 60 secondes. Sil y trouve des modifications, celles-ci prennent immdiatement effet.
Certaines modifications ne sont pas directement prises en compte par les clients. Par exemple, des modifications
apportes un partage en cours dutilisation ne le seront que lorsque le client sen dconnecte et sy reconnecte. Les
paramtres propres au serveur comme le nom du groupe de travail nentrent pas en vigueur immdiatement. Cela vite
que les clients actifs soient dconnects brusquement ou rencontrent des problmes daccs lorsquune session est
ouverte.
J-F Challe
HEPCUT - ISIPH
111
Prenons lexemple de loption read only. Si elle est dfinie la fois dans la section global et dans la section test, cest la
dclaration de la section test qui prvaut.
[root@p200 samba]# cat smb.conf
[global]
workgroup = PRIVE
encrypt passwords = yes
read only = yes
[test]
comment = Test et mise au point de Samba
path = /home/tst
read only = no
3.2.2. La section homes.
Si un client tente de se connecter un partage ne figurant pas dans le fichier smb.conf, Samba recherche un partage
homes dans le fichier de configuration. Sil en trouve un, le nom de partage non identifi est assimil un nom
dutilisateur UNIX qui est alors recherch dans la base des mots de passe du serveur Samba. Si le nom dutilisateur
existe, le serveur considre que le client est un utilisateur UNIX tentant de se connecter son rpertoire personnel. Cela
signifie que Samba cre dynamiquement des partages qui ne figurent pas dans le fichier de configuration.
3.2.3. La section printers.
Si un client souhaite accder un partage qui nest pas dfini dans le fichier de configuration et que ce nom ne
correspond pas un utilisateur UNIX, Samba vrifie sil sagit dune imprimante. Pour ce faire, il recherche le nom du
partage dans le fichier /etc/printcap.
Dans le cas o un partage homes est dclar dans le fichier de configuration, il est inutile dassocier un partage chaque
imprimante du systme. Au besoin, Samba consulte la dclaration des imprimantes UNIX pour les mettre la
disposition des clients.
J-F Challe
HEPCUT - ISIPH
112
Le partage test est associ au rpertoire /home/tst et possde un libell descriptif ainsi quun nom de volume. Le
partage est accessible en criture, ce qui permet aux utilisateurs dy inscrire des donnes. Par dfaut, un partage est
dfini en lecture seule. Pour modifier cette proprit, il faut spcifier writeable = yes. Les options read only et
writeable produisent le mme effet. Dfinir loption read only = yes revient dfinir writeable = no. Ces options sont
donc des alternatives possibles pouvant tre considres comme des synonymes inverss.
Loption path indique le chemin daccs la racine du partage de fichiers ou celui de limpression. Il est permis de
choisir nimporte quel rpertoire du serveur Samba la condition que le propritaire du processus dispose dun accs en
lecture et en criture ce rpertoire. Sil concerne un partage dimpression, le chemin daccs doit pointer vers un
rpertoire temporaire dans lequel les fichiers transitent avant dtre dirigs vers le spool de limprimante
si aucune option allow ou deny ne figure dans le fichier de configuration, Samba autorise les connexions
partir de toutes les machines autorises par le systme lui-mme ;
les options hosts allow et hosts deny figurant dans la section global sappliquent tous les partages mme si
des options de substitution sont dfinies pour certains dentre eux ;
si seule loption hosts allow est associe un partage, seuls les htes spcifis ont accs celui-ci. Tous les
autres sont exclus ;
si seule une option hosts deny est associe un partage, celui-ci est accessible par toutes les machines ne
figurant pas dans la liste ;
si une option hosts allow et une option hosts deny sont dfinies, lhte doit figurer dans la liste des htes
autoriss et pas dans la liste des htes exclus pour pouvoir accder au partage. Autrement, il na pas accs.
En standard, Samba nenvoie des donnes que par lintermdiaire de linterface rseau principale. Pour transmettre des
donnes via plusieurs interfaces, il faut indiquer la liste complte de interfaces. Si Samba est connect aux sous-rseaux
192.168.1.0 et 212.68.198.208, il faut indiquer, en paramtre de loption interfaces, la liste de tous les rseaux qui
doivent tre desservis par Samba. Le rseau 212.68.198.208 tant une connexion vers Internet, il est prfrable de
limiter laccs Samba au rseau interne. Cette configuration est ncessaire car rien ne dit que Samba considre
linterface desservant le rseau interne comme interface principale.
Loption bind interfaces only demande Samba de naccepter des messages broadcast quen provenance des rseaux
dfinis dans la clause interfaces. Leffet de cette option est diffrent de celui des options hosts allow et hosts deny qui
empchent des machines de se connecter aux services mais pas de recevoir des messages de diffusion. Loption bind
J-F Challe
HEPCUT - ISIPH
113
interfaces only est un bon moyen dempcher le serveur Samba de recevoir des datagrammes manant dautres sousrseaux et de rduire le nombre de rseaux desservis par Samba.
Remarque
--------------------------------------------------\\P100
P100
\\P200
serveur Samba de l'hote P200
\\P2366
\\P3450
La commande s'est termine correctement.
4.1.1. Blocage de lexploration.
Loption boolenne browseable permet de ne pas afficher un partage dans le voisinage rseau. Bien quun partage
standard de disque soit le plus souvent affich, loption browseable est utile au cas o le partage est homes. Ce partage,
regroupant les rpertoires personnels des utilisateurs, est souvent protg en exploration de sorte que ses ressources ne
soient pas consultables, ce qui nempche pas chaque utilisateur daccder son rpertoire personnel chaque fois quil
se connecte au partage. Voici un exemple de limitation de lexploration :
[root@p200 samba]# cat smb.conf
[global]
netbios name = P200
server string = serveur Samba de l'hote P200
workgroup = PRIVE
encrypt passwords = yes
[test]
comment = Disque de donnees
volume = exemple-de-partage
path = /home/tst
writeable = yes
browseable = yes
[homes]
comment = Home directory
read only = no
browseable = no
4.1.2. Election dexplorateurs.
Une machine dun rseau conserve la liste de toutes les machines actives. Cette liste est appele liste dexploration et le
serveur qui la gre est appel explorateur local principal. Ce dernier met continuellement la liste jour et la diffuse la
demande, sur le rseau.
Un ordinateur devient explorateur local principal lissue dune lection. Cette lection peut avoir lieu tout moment.
Le serveur Samba peut provoquer une lection pour de multiples raisons et notamment pour faire en sorte dtre
toujours lexplorateur principal ou, au contraire, de ne jamais le devenir.
J-F Challe
HEPCUT - ISIPH
114
Toute machine candidate une lection doit diffuser des informations concernant :
Pour le moment, toutes les machines utilisent la mme version du protocole dlection. Ce paramtre nentre donc pas
en ligne de compte pour dterminer llu. A chaque version du systme dexploitation correspond une valeur entire
comme le montre le tableau suivant :
Systme
Windows NT Server 4.0
Windows NT Server 3.51
Windows NT Workstation 4.0
Windows NT Workstation 3.51
Windows 98
Windows 95
Windows 3.1 for Workgroups
Valeur
33
32
17
16
2
1
1
En fonction des informations diffuses, chaque ordinateur du rseau reoit une valeur qui dtermine son rle :
Rle
Contrleur principal de domaine
Client WINS
Explorateur principal favori
Explorateur principal actif
Explorateur en attente
Explorateur secondaire actif
Valeur
128
32
8
4
2
1
En conclusion, si ladministrateur du serveur UNIX souhaite que Samba joue le rle dexplorateur local principal, il
suffit de modifier le paramtre os level et de lui donner la valeur 34.
Un serveur Windows NT jouant le rle de contrleur principal de domaine possde une valeur cache lui permettant,
dans certaines conditions, de jouer le rle dexplorateur local principal. Cette valeur est appele bit de lexplorateur
principal favori. Sur un serveur Samba, ce bit peut tre positionn laide de loption preferred master. Voici un
exemple de fichier de configuration forant Samba tre un explorateur local principal :
[root@p200 samba]# cat smb.conf
[global]
netbios name = P200
server string = serveur Samba de l'hote P200
workgroup = PRIVE
encrypt passwords = yes
os level = 33
preferred master = yes
[test]
comment = Disque de donnees
volume = exemple-de-partage
path = /home/tst
writeable = yes
browseable = yes
[homes]
comment = Home directory
read only = no
browseable = no
J-F Challe
HEPCUT - ISIPH
115
J-F Challe
HEPCUT - ISIPH
116
writeable = yes
browseable = yes
[homes]
comment = Home directory
read only = no
browseable = no
hide dot files = yes
hide files = /mbox/D*/
Pour empcher laffichage des fichiers, quelle que soit loption de visualisation choisie dans lexplorateur de fichiers, il
faut utiliser loption veto files. De mme syntaxe que loption hide files, elle permet de dfinir la liste des fichiers qui
seront toujours masqus lutilisateur. Par exemple, les fichiers dbutant par le caractre point devraient toujours tre
masqus quelle que soit loption daffichage des rpertoires. Voici une configuration permettant ce comportement :
[root@p200 samba]# cat smb.conf
[global]
netbios name = P200
server string = serveur Samba de l'hote P200
workgroup = PRIVE
encrypt passwords = yes
os level = 33
preferred master = yes
[test]
comment = Disque de donnees
volume = exemple-de-partage
path = /home/tst
writeable = yes
browseable = yes
[homes]
comment = Home directory
read only = no
browseable = no
veto files = /.*/
Les fichiers masqus par loption veto files deviennent purement et simplement inaccessibles par les clients Windows.
lecture seule ;
systme ;
cach ;
archive ;
Thoriquement, Samba est capable de traiter les attributs Windows en affectant une signification particulires aux droits
sur les fichiers UNIX. Exprimentalement, la version 2.2.2 de Samba nest capable de grer que les attributs lecture
seule et archive. Lattribut lecture seule consiste retirer le droit dcriture au propritaire du fichier alors que lattribut
archive consiste ajouter le droit dexcution au propritaire du fichier
J-F Challe
HEPCUT - ISIPH
117
J-F Challe
HEPCUT - ISIPH
118
Certains utilisateurs ou groupes dutilisateurs devraient ne pas tre autoriss se connecter via Samba. En
consquence, loption globale invalid users permet dinterdire lutilis ation des services de Samba certains utilisateurs.
Voici un exemple permettant dinterdire lutilisateur root dexploiter Samba :
[root@p200 samba]# cat smb.conf
[global]
netbios name = P200
server string = serveur Samba de l'hote P200
workgroup = PRIVE
encrypt passwords = yes
os level = 34
preferred master = yes
invalid users = root
[test]
comment = Disque de donnees
volume = exemple-de-partage
path = /home/tst
writeable = yes
browseable = yes
valid users = @staff
[homes]
comment = Home directory
read only = no
browseable = no
Des partages peuvent tre dclars accessibles uniquement sous lidentit dun utilisateur par dfaut. La configuration
dorigine de Samba fixe lutilisateur anonyme nobody alors que loption guest account permet de spcifier une autre
identit.
Supposons que ladministrateur souhaite laisser un accs libre au site ftp de la machine UNIX. Tous les fichiers
prsents dans le rpertoire /home/ftp doivent appartenir lutilisateur ftp. De plus, seul cet utilisateur a les autorisations
suffisantes pour tout effectuer dans ce rpertoire. Voici un exemple de configuration dun partage sous lidentit dun
utilisateur par dfaut :
[root@p200 samba]# cat smb.conf
[global]
netbios name = P200
server string = serveur Samba de l'hote P200
workgroup = PRIVE
encrypt passwords = yes
os level = 34
preferred master = yes
invalid users = root
[test]
comment = Disque de donnees
volume = exemple-de-partage
path = /home/tst
writeable = yes
browseable = yes
valid users = @staff
[homes]
comment = Home directory
read only = no
browseable = no
[ftp]
path=/home/ftp
comment = site ftp de l'hote P200
writeable = yes
guest ok = yes
guest account = ftp
guest only = yes
J-F Challe
HEPCUT - ISIPH
119
Loption guest account fixe lidentit de lutilisateur invit alors que les options guest ok et guest only permettent
respectivement daccepter un accs au partage par un utilisateur invit et uniquement par celui-ci. Lide de partage
total du rpertoire ftp nest pas ncessairement un exemple mettre en uvre mais elle peut tre applique dautres
partages moins sensibles.
scurit de niveau partage. Chaque partage dun groupe de travail dispose dun ou de plusieurs mots de passe.
Quiconque connat lun deux peut se connecter au partage ;
scurit de niveau utilisateur. Chaque partage dun groupe de travail est configur pour autoriser laccs de
certains utilisateurs. A chaque nouvelle connexion, le serveur Samba vrifie si les utilisateurs et leurs mots de
passe sont rpertoris. Dans laffirmative, il autorise laccs au partage ;
scurit de niveau serveur. Dans cette stratgie de scurit semblable la prcdente, le serveur Samba valide
les utilisateurs et leurs mots de passe laide dun serveur SMB spar avant daccorder laccs au partage ;
scurit de niveau domaine. Samba authentifie les utilisateurs auprs du PDC dont il est membre. Aprs
authentification, lutilisateur reoit un jeton spcial qui lui donne accs nimporte quel partage du domaine,
la condition de possder les permissions appropries. Grce au jeton, le PDC na pas valider le mot de passe
chaque fois que lutilisateur tente daccder un autre partage du domaine.
J-F Challe
HEPCUT - ISIPH
120
J-F Challe
simplicit de la configuration ;
meilleure intgration des serveurs NT dans le rseau Samba ;
HEPCUT - ISIPH
121
A laide de la commande smbpasswd, il faut ajouter la machine P200 au domaine NT dont le PDC est P166PLUS.
Voici la syntaxe de la commande employer :
[root@p200 samba]# smbpasswd j DOMPRIVE r P166PLUS
Afin que le serveur Samba soit serveur membre du domaine NT, il faut modifier le fichier de configuration de la
manire suivante :
[root@p200 samba]# cat smb.conf
[global]
netbios name = P200
server string = serveur Samba de l'hote P200
workgroup = DOMPRIVE
security = domain
password server = P166PLUS
encrypt passwords = yes
os level = 34
preferred master = yes
invalid users = root
[homes]
comment = Home directory
read only = no
browseable = no
Le serveur Samba est maintenant configur pour utiliser la scurit de niveau domaine.
J-F Challe
HEPCUT - ISIPH
122
aux partages nexige pas une nouvelle authentification de la part de lutilisateur. En effet, le PDC revoie un jeton
lordinateur client au moment de lacceptation de louverture dune session. Cela vite de multiplier les consultations
de la base de donnes du PDC lors de chaque connexion une ressource. Ce mcanisme transparent pour lutilisateur
permet de diminuer considrablement le trafic rseau.
5.3.2. Configuration PDC pour des clients Windows NT.
Pour tre contrleur principal de domaine, le dmon Samba doit employer la scurit de niveau utilisateur ainsi que les
mots de passe chiffrs. De plus, lauthentification des utilisateurs doit tre effectue au moment de la demande de
connexion au domaine. Loption boolenne domain logons permet dactiver cette fonctionnalit.
Les diffrents clients Windows doivent avoir un accs une ressource appele netlogon. Cette ressource prive doit
tre protge contre lcriture.
Voici un exemple de fichier de configuration de Samba pour quil devienne PDC :
[root@p200 samba]# cat smb.conf
[global]
netbios name = P200
server string = serveur Samba de l'hote P200
workgroup = DOMPRIVE
security = user
domain logons = yes
encrypt passwords = yes
os level = 34
preferred master = yes
domain master = yes
local master = yes
[netlogon]
comment = Service de connexion au domaine
path = /home/logon
public = no
writeable = no
browseable = no
[homes]
comment = Home directory
read only = no
browseable = no
Tous les clients Windows NT se connectant un PDC font usage de comptes approuvs. Ces comptes permettent un
ordinateur de se connecter au PDC, ce qui permet ce dernier dapprouver toutes les connexions. A tout point de vue,
les comptes dapprobation traits par le serveur Samba sont des comptes dutilisateurs UNIX standard. Le nom de
connexion dun compte dapprobation dune machine est le nom de cette dernire auquel un signe dollar est ajout. Si
la machine Windows NT sappelle P2450, le nom de connexion sera P2450$. Le mot de passe initial du compte est le
nom de la machine en minuscule. Pour crer un compte dapprobation sur le serveur Samba, il faut crer un compte
UNIX avec le nom de la machine et un mot de passe chiffr dans la base de donnes smbpasswd.
Le fichier /etc/passwd doit tre modifi pour y ajouter un nouvel utilisateur. Il nest pas ncessaire demployer la
procdure standard de cration des profiles utilisateurs, lutilisateur ne devant pas avoir de rpertoire personnel ni de
shell associ. Voici un exemple dentre ajouter dans le fichier /etc/passwd :
p2450$:*:1000:900:Compte approbation:/dev/null:/dev/null
Lastrisque signifie que le champ mot de passe est dsactiv. Le dmon Samba stockera le mot de passe dans le fichier
smbpasswd ; de plus aucun utilisateur ne pourra se connecter la machine via telnet en utilisant ce profil. Hormis le
nom de compte, la seule valeur significative est son UID (1000) utilis galement dans la base de mots de passe
chiffrs.
Il faut ensuite ajouter le mot de passe chiffr laide de la commande smbpasswd comme le montre lexemple suivant :
J-F Challe
HEPCUT - ISIPH
123
Il ne faut surtout pas cocher la case Crer un compte dordinateur dans le domaine car Samba ne gre pas encore
cette fonctionnalit.
J-F Challe
HEPCUT - ISIPH
124
6. Impression.
Une imprimante raccorde un serveur Samba apparat dans la liste des partages affichs dans le voisinage rseau. Si
le client possde le pilote de priphrique appropri, il peut aisment envoyer des travaux une imprimante connecte
un serveur Samba.
Si le partage printers est dfini dans le fichier /etc/samba/smb.conf, le dmon Samba lit automatiquement le fichier de
dfinition des imprimantes et cre les partages dimpression pour chacune des imprimantes accessibles sous UNIX.
Voici un exemple de configuration :
[root@P100 /etc]# cat smb.conf
[global]
workgroup = PRIVE
server string = P100
encrypt passwords = yes
[homes]
comment = Home Directories
read only = No
browseable = No
[printers]
comment = All Printers
path = /var/spool/samba
print ok = Yes
browseable = No
7. Rsolution de noms.
Avant lapparition de serveurs de noms NetBIOS, la rsolution de noms seffectuait exclusivement par diffusion. Dans
ce mode, pour connatre ladresse dune machine, il suffisait de diffuser son nom sur le rseau et la machine concerne
renvoyait, en principe, linformation. Cette technique nest pas approprie que ce soit pour lexploration ou pour
lenregistrement et la rsolution des noms car elle ne traverse pas aisment un inter-rseau, de plus, elle a tendance
surcharger les rseaux. Pour y remdier, Microsoft propose le service WINS, vritable serveur de noms NetBIOS.
Ladministrateur peut installer un serveur WINS sur une machine et fournir son adresse tous les clients du rseau. En
consquence, la diffrence des diffusions les demandes denregistrement et de rsolution de noms peuvent tre
adresses une seule et mme machine, depuis nimporte quel point du rseau.
Le serveur Samba peut tre configur pour tre un client WINS ou pour tre un serveur WINS.
La configuration dun serveur Samba comme client WINS exige lemploi de loption wins server. Cette option doit
avoir pour valeur ladresse IP de la machine agissant comme serveur WINS.
[root@P100 /etc]# cat smb.conf
[global]
workgroup = PRIVE
server string = P100
encrypt passwords = yes
wins server = 192.168.1.80
[homes]
comment = Home Directories
read only = No
browseable = No
[printers]
comment = All Printers
path = /var/spool/samba
print ok = Yes
browseable = No
Pour que Samba soit serveur WINS, il faut dfinir deux options dans le fichier de configuration. Loption wins support
suffit rendre Samba serveur WINS. Lorsque Samba est serveur WINS, les administrateurs utilisent souvent loption
J-F Challe
HEPCUT - ISIPH
125
name resolver order. Cette option indique lordre des mthodes de rsolution de noms NetBIOS. Quatre mthodes de
rsolution des noms sont possibles :
lmhosts : le fichier LMHOSTS de type LAN Manager est utilis. Ce fichier est semblable au fichier /etc/hosts
si ce nest que les noms sont de type NetBIOS ;
hosts : cet argument indique une mthode de rsolution standard sous UNIX. Cette rsolution stipule quil faut
utiliser le fichier /etc/hosts ou le DNS ou le protocole NIS ou encore une combinaison des trois ;
wins : cet argument impose lemploi du serveur WINS ;
bcast : utilise une mthode de diffusion.
J-F Challe
HEPCUT - ISIPH
J-F Challe
126
HEPCUT - ISIPH
127
XII. APACHE.
1. Introduction.
Lors de laccs un site Web, par exemple http://www.challe.be/doc, un ensemble de donnes sont envoyes via
Internet, la machine disposant de cette adresse IP. Une telle requte appele URL (Universal Resource Locator) est
constitue de trois parties :
une mthode qui dans notre exemple est http. Cela signifie lutilisation du protocole HTTP (HyperText
Transfer Protocol) ;
un nom dhte qui est dans ce cas www.challe.be;
un nom de rpertoire qui est ici doc.
En utilisant un navigateur, cette requte parvient au port 80 de lhte www.challe.be. Le serveur a deux possibilits de
traduction de lURL :
soit par un nom de fichier et en ce cas il doit renvoyer son contenu au client ;
soit sous un nom de programme et renvoyer ses sorties au client.
Dans tous les cas, le serveur doit excuter un serveur Web qui est lcoute du rseau et qui ragit aux requtes qui lui
sont soumissent en renvoyant des messages. Le programme Apache est un serveur Web pouvant fonctionner sur un
grand nombre de systmes dexploitation multitches. Cette caractristique fait dApache le serveur Web le plus utilis.
Au repos, le serveur Apache ne fait rien dautre qucouter les ports TCP des adresses IP indiques dans son fichier de
configuration. Lorsquune requte http se prsente sur un port valide, Apache la reoit et en analyse les en-ttes. Il
applique alors les rgles quil trouve dans le fichier de configuration et agit en consquence.
Le principal contrle exerc sur Apache, par ladministrateur, passe par le fichier de configuration. Ladministrateur
dispose denviron 150 directives infrant sur le comportement dApache.
J-F Challe
HEPCUT - ISIPH
128
configuration dans le fichier /etc/httpd/conf/httpd.conf. Il faut donc informer le dmon APACHE que les deux autres
fichiers ne doivent pas tre employs. Les options AccessConfig et ResourceConfig indiquent lemplacement des
fichiers supplmentaires de configuration. Dans lexemple prcdent, ces fichiers de configuration ne sont pas utiliss.
Cela est indiqu par le nom de fichier /dev/null.
3. Un vritable site.
3.1. Interprtation du code HTML.
Lexemple prcdent ne donne pas des rsultats satisfaisants avec tous les browsers. La navigation vers lURL
http://p200.challe.be/index.html naffiche une page correcte que par lutilisation de Microsoft Internet Explorer.
Lemploi de Netscape Navigator ou de lynx fait apparatre le code HTML de la page et non pas son interprtation. En
effet, ces navigateurs exploitent lextension du fichier pour dterminer la manire dont il doit tre interprt. Aussi, un
fichier de type .html doit-il tre interprt comme contenant du code HTML. Cette interprtation est rendue possible
par lintermdiaire du fichier /etc/mime.types. Ce fichier contient, pour chaque extension, la raction approprie du
navigateur. Lutilisation du fichier /etc/mime.types est prcise par loption TypesConfig suivie du nom du fichier
mime.
Toutes les versions dAPACHE ne sont pas compiles de manire prendre en compte la gestion mime. Dans certains
cas, lutilisation de mime dpend du chargement dun module spcifique contenant des extensions dAPACHE. Ces
extensions peuvent tre charges au moyen des options LoadModule et AddModule. Le programme APACHE a t
conu pour tre excut sur un grand nombre de systmes dont les interfaces de programmation diffrent. Les
diffrentes fonctionnalits dAPACHE tant parfois dpendantes du systme dexploitation sous-jacent, il est plus
commode de rdiger le programme en le dcoupant en plusieurs modules. Les modules spcifiques aux diffrents
systmes seront ainsi rcrits plusieurs fois. Cette approche modulaire prsente galement lavantage de rduire au
strict minimum la taille du code excutable. En effet, toutes les implmentations dAPACHE ne ncessitent pas
toujours les mmes fonctionnalits. De ce fait, APACHE a t dcoup en plusieurs modules chargeables la demande.
Pour quAPACHE puisse charger dynamiquement des modules, il faut lui adjoindre le code de gestion de ces modules.
Loption AddModule permet de charger le module mod_so.c autorisant le chargement dynamique de modules. Le
principe de chargement dun module se passe en deux tapes, il y a dune part son chargement et dautre part son ajout
la liste des modules. Loption LoadModule permet le chargement alors que loption AddModule permet lajout.
Dans le cas qui nous occupe actuellement, il faut charger le module mime. Voici le contenu du fichier de configuration
dAPACHE :
[root@p200 conf]# cat httpd.conf
ServerType standalone
ServerRoot "/etc/httpd"
LoadModule mime_module
modules/mod_mime.so
ClearModuleList
AddModule mod_mime.c
AddModule mod_so.c
User nobody
Group nobody
ServerAdmin root@p200.challe.be
DocumentRoot "/home/httpd/html"
TypesConfig /etc/mime.types
Loption ServerType dtermine comment le serveur Web est lanc. Il peut tre activ de manire autonome ou par
lintermdiaire du dmon inetd. Gnralement, APACHE est configur en standalone bien que la scurit soit meilleure
sil est excut par inetd. Les administrateurs prfrent ignorer la scurit car un lancement par inetd implique que lors
de chaque demande de connexion, une nouvelle instance du serveur Web est cre. Ds que la connexion est termine,
le serveur est arrt. Ce comportement peut dgrader les performances du systme.
Pour quAPACHE soit en mesure de trouver les modules quil doit charger, il doit localiser le rpertoire contenant les
informations de configuration. Le rpertoire /etc/httpd est la racine dun sous-rpertoire contenant les fichiers de
configuration, les fichiers denregistrement des erreurs ainsi que les fichiers correspondant aux diffrents modules.
Loption ServerRoot fixe lemplacement de la racine du systme de fichiers contenant les informations prcites.
J-F Challe
HEPCUT - ISIPH
129
Le serveur est fourni avec une liste de modules actifs. Cette liste peut tre vide au moyen de loption
ClearModuleList. Cette option prsume que la liste sera reconstruite en utilisant loption AddModule.
J-F Challe
HEPCUT - ISIPH
130
3.5. Remarque.
Les distributions dAPACHE sont fournies avec un fichier /etc/httpd/conf/httpd.conf prtabli contenant de nombreuses
options et proposant beaucoup de fonctionnalits. Gnralement, ladministrateur considre ce fichier comme une base
la configuration du serveur Web. A partir de maintenant, les modifications seront directement appliques au fichier
de base fourni avec APACHE.
J-F Challe
HEPCUT - ISIPH
131
P100.challe.be.
10
P100.challe.be.
P100
www
ftp
irc
mail
pop
news
A
CNAME
CNAME
CNAME
CNAME
CNAME
CNAME
192.168.1.1
P100
P100
P100
P100
P100
P100
P200
wwww
wwwww
P2450
P133
macii
powerpc
fuji
P166
P166PLUS
P2300
se30
HP4
PHASER560
P3450
P2366
modem
A
CNAME
CNAME
A
A
A
A
A
A
A
A
A
A
A
A
A
A
192.168.1.10
P200
P200
192.168.1.40
192.168.1.20
192.168.1.2
192.168.1.3
192.168.1.4
192.168.1.5
192.168.1.30
192.168.1.50
192.168.1.60
192.168.1.192
192.168.1.193
192.168.1.70
192.168.1.80
192.168.1.100
(
Serial
Refresh
Retry
Expire
Minimum
La configuration des htes virtuels exige la modification du fichier de configuration fourni avec APACHE en y ajoutant
les lignes suivantes :
NameVirtualHost 192.168.1.10
<VirtualHost 192.168.1.10>
ServerAdmin root@challe.be
DocumentRoot /home/httpd/html/
ServerName p200.challe.be
</VirtualHost>
J-F Challe
HEPCUT - ISIPH
132
<VirtualHost 192.168.1.10>
ServerAdmin root@challe.be
DocumentRoot /home/httpd/html/wwwww
ServerName wwwww.challe.be
</VirtualHost>
<VirtualHost 192.168.1.10>
ServerAdmin root@challe.be
DocumentRoot /home/httpd/html/wwww
ServerName wwww.challe.be
</VirtualHost>
Loption NameVirtualHost indique APACHE que les requtes vers cette adresse IP seront subdivises par noms. Il
peut sembler que les options ServerName jouent un rle primordial. En fait elles ne font que de fournir un nom
quAPACHE devra envoyer aux clients.
J-F Challe
HEPCUT - ISIPH
133
XIII. SQUID.
1. Introduction.
Le logiciel SQUID est un serveur mandataire (proxy server) dont lobjectif est double :
mandater l'accs aux serveurs Web. En fonction du mandat qui lui est attribu, SQUID va participer la
protection des rseaux internes connects Internet. La consquence importante de ce mandat est que l'adresse
IP source d'une requte n'est plus celle du client mais celle du serveur mandataire ;
garder en mmoire cache les pages HTML et dautres objets (images, animations...) tlchargs sur le Web
pour ainsi amliorer la rapidit de la connexion Internet. Les objets sont priodiquement limins ou
rafrachis.
Le serveur SQUID est form de deux dmons : squid et unlinkd. Le dmon unlinkd aide squid dans la gestion de la
mmoire cache place sur le disque.
2. Protocoles utiliss.
Les clients qui s'adressent SQUID doivent employer le protocole HTTP sur TCP. Un client FTP ne pourra donc pas se
servir de SQUID, au mme titre que les clients btis sur UDP, ce qui exclut un grand nombre de programmes
multimdias. Le serveur SQUID est toutefois capable de grer les accs et d'aller chercher des informations sur les
serveurs suivants :
Pour la gestion de sa mmoire cache et des communications entre les serveurs mandataires, SQUID utilise les
protocoles suivants :
HTTP servant retirer les objets des mmoires cache, des autres serveurs mandataires ;
ICP (Internet Cache Protocol), sur UDP. Le protocole ICP est la base des communications inter-mandataires ;
Cache digests, particulirement utile pour amliorer les communications inter-mandataires. Chaque serveur
proxy cre, toutes les dix minutes, une petite table qui reprend tous les objets mmoriss. Cette table, appele
cache digest, est transfrable vers les serveurs voisins en utilisant le protocole HTTP. Cette faon de procder
rduit considrablement le trafic rseau et le temps de latence ncessaire la dcouverte d'un objet. Dans 5 %
des cas, un objet prsent dans la liste n'est plus sur le disque dur, le contenu du disque voluant vite. Dans ce
cas, SQUID effectue un accs direct au Web ;
SNMP (Simple Network Management Protocol) ;
CARP (Cache Array Routing Protocol) ;
HTCP (Hyper Text Caching Protocol).
3. Configuration matrielle.
Le serveur SQUID utilise une grande quantit de mmoire vive comme mmoire cache car elle est d'accs bien plus
rapide qu'un disque dur. Pour chaque objet conserv en mmoire cache disque, il y a 56 octets situs en mmoire vive :
les meta donnes (metadata). C'est ce qu'on appelle la StoreEntry data structure. Pour chaque StoreEntry, il y a en plus
en mmoire vive 16 octets destins une somme de contrle. S'il y a un million d'objets sur le disque dur, il faut 70
MO de mmoire vive rien que pour les meta donnes.
A cela s'ajoutent la mmoire vive utilise par le dmon SQUID lui-mme, par les objets tlchargs non encore placs
sur disque, par les tables des caches IP, par des informations sur l'tat des requtes en cours, par diffrentes statistiques
mises en place par le dmon SQUID... Tant et si bien que si ladministrateur souhaite calculer la quantit de mmoire
vive consomme par SQUID, il doit multiplier par deux ou trois la valeur dfinie la ligne cache_mem du fichier
J-F Challe
HEPCUT - ISIPH
134
/etc/squid/squid.conf. Un ralentissement progressif de SQUID traduit la plupart du temps une quantit de mmoire vive
insuffisante.
Les facteurs matriels les plus importants pour la performance d'un dmon SQUID sont, par ordre dcroissant
d'importance, la rapidit du disque dur, la quantit de mmoire vive et la puissance du processeur.
5. Contourner SQUID.
Lorsque la configuration du navigateur Web est termine, il est possible utiliser SQUID pour se connecter Internet.
Dans le cas de Netscape Navigator, l'utilisation du bouton "Recharger" (Reload) permet d'aller chercher la page Web
directement sur le site d'origine, sans passer par la mmoire cache.
Si, pour des raisons d'authentification (site bancaire...), l'adresse IP source des paquets doit tre celle du client Web, il
faut indiquer dans la configuration du client lobligation de ne pas passer par le serveur mandataire pour atteindre telle
ou telle adresse IP.
6. Configuration de SQUID.
La configuration de SQUID se fait l'aide du fichier de configuration /etc/squid.conf. Les lignes qui suivent montrent
une configuration de base, apte fonctionner sur la plupart des machines.
J-F Challe
HEPCUT - ISIPH
135
fqdncache_size 1024
La mmoire vive destine au cache fqdn est apte retenir un maximum de 1024 entres. Les entres de ce cache
retiennent les concordances entre les adresses IP et les noms d'hte correspondants. Il sagit donc dune correspondance
inverse au sens du DNS.
La structure d'une entre du cache fqdn est la suivante :
adresse_IP flags lstref TTL N nom_d'hte
La signification de ces champs est identique celle correspondant loption ipcache_size.
J-F Challe
HEPCUT - ISIPH
136
Le niveau de dbogage est fix 1 pour toutes les sections. Le niveau maximal est 9 mais il donne un flux
d'informations trs important. Les messages de dbogage sont stocks dans les fichiers d'historique.
6.5. Timeouts
connect_timeout 120 seconds
Certains systmes d'exploitation, dont Linux, ne stoppent pas les requtes de connexion aux serveurs Web de faon
suffisamment performante. C'est la raison pour laquelle SQUID peut tre configur pour stopper d'autorit les requtes
qui ne seraient pas honores par exemple aprs deux minutes.
J-F Challe
HEPCUT - ISIPH
137
l'adresse IP source, cest--dire l'adresse IP de la machine qui adresse une requte SQUID ou bien l'adresse
IP destination qui est l'adresse IP du serveur Web sollicit. Les trois premires lignes de la configuration de
base dfinissent trois classes sur base des adresses IP source compltes par leur masque de sous-rseau. Pour
utiliser les adresses IP destination, on remplace src par dst. Il y a moyen de dfinir plusieurs groupes
d'adresses IP qui forment une classe, par exemple acl local src 192.168.0.0/255.255.255.0
192.168.1.0/255.255.255.0.
un nom de domaine source ou destination. Si ladministrateur dsire limiter l'accs SQUID aux personnes
qui appartiennent au domaine challe.be, il suffit de crer une classe base sur le filtre srcdomain challe.be.
Pour le domaine de destination, il faut remplacer srcdomain pour dstdomain.
certains mots au sein de lURL demande. Dans l'exemple qui suit, SQUID refusera de se connecter sur un
site qui contient le mot sexe :
Le mot regex signifie regular expression et le drapeau -i sert la prise en compte des majuscules aussi bien que
des minuscules.
la date et l'heure courantes. Afin de permettre les connexions tel ou tel moment de la journe. La syntaxe
est :
le numro de port destination. Les deux dernires lignes acl dfinissent deux groupes de ports destination. Les
ports 443 et 563 sont les ports d'coute standards des serveurs HTTP et NNTP scuriss par SSL. Les ports 70
et 210 sont les ports par dfaut utiliss par les serveurs Gopher et WAIS.
le protocole utilis par SQUID pour satisfaire une requte (FTP, HTTP, SSL...). Dans la configuration de base
prsente plus haut, une ligne acl manager proto cache_object est prsente. Le serveur SQUID utilise le
protocole cache_object pour donner des informations telles que les statistiques d'utilisation, de performance et
dautres qui ne sont pas destines n'importe qui. Cette ligne existe par dfaut pour permettre au gestionnaire
de cache de grer et d'obtenir des informations sur la mmoire cache de SQUID. Prenons un autre exemple :
J-F Challe
Ces option font en sorte quaucune machine du rseau ne pourra adresser une requte un serveur FTP via
SQUID.
la mthode que le protocole HTTP utilise pour aller chercher les objets. Le serveur SQUID en reconnat
plusieurs. En voici quelques -unes : GET (recherches simples et rapatriement d'objets), HEAD (rapatriement de
meta donnes), POST (pour soumettre des objets un programme), PUT (pour envoyer des objets un site
(uploader), DELETE (pour supprimer des objets), TRACE, OPTIONS, CONNECT (pour les connexions via
tunnel SSL), ICP_QUERY, PURGE (pour enlever les objets du cache), PROPFIND (pour connatre les
proprits d'un objet), PROPATCH, MKCOL, MOVE, COPY, LOCK (pour bloquer les modifications d'un
objet), UNLOCK... C'est grce la requte que lui envoie le client que SQUID sait quelle mthode il doit
utiliser.
le nom d'utilisateur et le mot de passe. Le filtre mettre en place est proxy_auth. Voici un exemple :
HEPCUT - ISIPH
138
http_access, icp_access. L'oprateur http_access est le plus rpandu, il sert ouvrir ou au contraire limiter
l'accs des clients SQUID.
no_cache. Cet oprateur sert prvenir la mise en mmoire cache de certaines pages, les pages locales du
rseau par exemple. De cette faon, la mmoire cache est rserve de faon beaucoup plus efficace pour les
pages recherches sur Internet.
ident_lookup_access. Cet oprateur demande SQUID de vrifier l'identit des machines qui font appel ses
services et de l'enregistrer dans ses fichiers d'historique. Il ne s'agit pas ici proprement parler d'une
restriction d'accs mais plutt d'un stockage d'information dans un but de protection contre les attaques
extrieures notamment. Pour exemple, les deux rgles qui suivent demandent SQUID de vrifier les identits
des machines qui ne font pas partie du rseau local :
Puisque cette vrification prend du temps et retarde SQUID, il faut qu'elle soit utilise bon escient.
miss_access. Cet oprateur, suivi de deny, force SQUID donner uniquement ses clients des objets dj
prsents sur le disque dur. En d'autres termes, il est interdit d'aller chercher un objet sur Internet pour rpondre
une requte. Cette option est surtout utile pour rgler les relations inter-mandataires : entre serveurs SQUID
pairs, seules les donnes dj prsentes sur le disque dur sont partages. Un serveur mandataire ne doit pas
raliser une demande d'objets via un autre serveur pair, sauf en cas de tentative de piratage. En crant une
classe regroupant les serveurs SQUID pairs et en utilisant cet oprateur suivi de deny, seuls les objets sur le
disque dur seront changs.
delay_classes. Cet oprateur permet de diminuer la bande passante attribue certains sites. On peut imaginer,
dans une institution scolaire, de diminuer la bande passante attribue des serveurs de jeux.
Il est souvent ncessaire de combiner plusieurs classes par oprateur. Les classes utilises dans les exemples qui suivent
ont t reprises des exemples prcdents :
http_access deny local nuit va interdire au membres de la classe local l'accs au serveur SQUID pendant la nuit.
http_access deny all !local va interdire l'accs au serveur SQUID toutes les adresses IP source l'exception de celles
du rseau local.
http_access allow local auth va autoriser l'accs aux seuls membres du groupe local et cela aprs authentification.
Les combinaisons de classes rendent la configuration de SQUID trs souple.
J-F Challe
HEPCUT - ISIPH
139
7. Configuration avance.
7.1. Bannir des sites.
Certaines socits ne souhaitent pas que leurs employs puissent visualiser le contenu de sites sensibles. Pour cela, la
configuration de SQUID peut tre adapte en crant des rgles dinterdiction de consultation de sites. Voici un exemple
dune telle configuration :
http_port 8080
ftp_user jfc@challe.yi.org
acl all src 0.0.0.0/0.0.0.0
acl local src 192.168.1.0/255.255.255.0
acl localhost src 127.0.0.1/255.255.255.255
acl bannirsites url_regex -i "/etc/squid/bannir"
http_access deny bannirsites
http_access allow local
http_access allow localhost
http_access deny all
Les options acl dfinissent quatre groupes :
Contrairement aux options http_access lordre de dfinition des groupes na aucune importance. Lorsque SQUID doit
dterminer si un accs est autoris ou interdit, il parcourt la liste des options http_access dans lordre de leur apparition.
Ds quune option http_access est valable, lexploration des rgles daccs prend fin. Cela signifie, par exemple, quil
ne faut pas placer la rgle http_access deny all en premier lieu. En effet, cette rgle sera toujours valable, ce qui
interdira toute utilisation du serveur mandataire. Lalgorithme de dtermination si un client a le droit demployer le
serveur mandataire est le suivant :
si demande daccs un site interdit alors
refuser laccs
sinon
si le client fait partie du rseau local alors
autoriser laccs
sinon
si le client est la machine serveur alors
autoriser laccs
sinon
interdit laccs
fsi
fsi
fsi
Cette imbrication de vrification peut amener ladministrateur autoriser un client tout effectuer. Supposons que
lutilisateur de la machine 192.168.1.80 soit autoris accder aux sites bannis. Cette configuration exige lajout dune
classe correspondant la machine qui doit tre autorise tout faire, lajout aussi dune rgle daccs place au dbut de
la liste des options http_access autorisant toujours cette machine employer les services de SQUID. Voici un exemple
de ce type de configuration :
J-F Challe
HEPCUT - ISIPH
140
http_port 8080
ftp_user jfc@challe.yi.org
acl all src 0.0.0.0/0.0.0.0
acl local src 192.168.1.0/255.255.255.0
acl localhost src 127.0.0.1/255.255.255.255
acl bannirsites url_regex -i "/etc/squid/bannir"
acl P2366 src 192.168.1.80/255.255.255.255
http_access allow P2366
http_access deny bannirsites
http_access allow local
http_access allow localhost
http_access deny all
Dans les deux exemples qui prcdent, loption acl bannirsites se fonde sur une vrification dURL prsentes dans le
fichier /etc/squid/bannir. Ce fichier contient la lis te des sites qui doivent tre inaccessibles. Voici un exemple dun tel
fichier :
[root@p200 squid]# cat bannir
http://www.msn.com
http://www.microsoft.com
Les sites dont lURL dbute soit par http://www.msn.com, soit par http://www.microsoft.com ne peuvent tre rejoints
par les clients du serveur mandataire. Notons que lensemble de ces sites est banni car les diffrentes lignes du fichier
reprsentent des expressions rgulires.
Si ladministrateur effectue des modifications dans le fichier des sites bannis, il faut imprativement relancer le serveur
SQUID, les expressions rgulires prsentes dans ce fichier ntant lues que lors du lancement du serveur mandataire.
J-F Challe
HEPCUT - ISIPH
141
Le programme dauthentification doit effectuer une boucle jusquau moment o la fin du fichier est rencontre au
niveau de lentre standard.
Voici un exemple de programme permettant de grer les authentifications :
[root@p200 squid]# cat auth.c
#include <stdio.h>
#include <string.h>
#define BUFSIZE 512
void main () {
char buffer[BUFSIZE],*p;
int continuer=1;
if (setvbuf(stdout,NULL,_IOLBF,0)==0)
while (continuer) {
if (fgets(buffer,BUFSIZE,stdin)==NULL)
continuer=0;
else {
if ((p=strchr(buffer,'\n'))!=NULL)
*p='\0';
if ((p=strchr(buffer,' '))==NULL)
printf("ERR\n");
else {
*p++='\0';
if ((strcmp(buffer,"jfc")==0)&&(strcmp(p,"azerty")==0))
printf("OK\n");
else
printf("ERR\n");
}
}
}
}
Lactivation du processus dauthentification ncessite la modification du fichier de configuration de SQUID. Loption
authenticate_program dtermine lemplacement du programme dauthentification alors que loption acl passwd
proxy_auth REQUIRED exige que tout utilisateur correctement identifi fasse partie de cette classe. Pour autoriser
laccs, il faut ajouter une option http_access comme le montre lexemple suivant :
[root@p200 squid]# cat squid.conf
http_port 8080
ftp_user jfc@challe.yi.org
authenticate_program /etc/squid/auth
acl all src 0.0.0.0/0.0.0.0
acl local src 192.168.1.0/255.255.255.0
acl localhost src 127.0.0.1/255.255.255.255
acl bannirsites url_regex -i "/etc/squid/bannir"
acl passwd proxy_auth REQUIRED
http_access deny bannirsites
http_access deny !local !localhost
http_access allow passwd
http_access deny all
J-F Challe
HEPCUT - ISIPH
J-F Challe
142
HEPCUT - ISIPH
143
XIV. IPCHAINS.
1. Introduction.
Un firewall est un routeur filtre de paquets implant dans le systme dexploitation. Son champ dopration couvre le
rseau IP et les couches du protocole de transport. Il protge le systme en prenant des dcisions de routage aprs avoir
filtr les paquets en se basant sur linformation contenue dans len-tte dun paquet IP.
Un firewall filtre de paquets consiste en une liste de rgles dacceptation et de refus. Ces rgles dfinissent
explicitement les paquets qui seront et ne seront pas autoriss traverser linterface rseau. Les rgles utilisent les
champs den-tte du paquet pour dcider si un paquet doit tre :
Un firewall filtre de paquets fonctionne sur les couches rseau (IP et ICMP) et transport (UDP et TCP) du modle de
rfrence TCP/IP.
Lide gnrale suppose le contrler avec attention de ce qui passe entre la machine et Internet auquel elle y est
directement connecte. Il faut filtrer individuellement aussi exactement que possible ce qui vient de lextrieur et ce qui
sort de la machine. Le firewall filtre, indpendamment ce qui entre et ce qui sort travers linterface. Le filtrage
dentre et le filtrage de sortie peuvent reposer sur des rgles compltement diffrentes sont appeles chanes, les listes
des rgles dfinissant ce qui peut entrer et ce qui peut sortir sont appeles chanes. Elles sont ainsi appeles car un
paquet est compar individuellement chaque rgle de la liste jusqu ce quune correspondance soit trouve ou que la
liste soit puise.
Cette configuration est relativement puissante mais nest pas un mcanisme de scurit trs fiable. Elle constitue
seulement une partie de la stratgie de scurit qui doit tre mise en place. Ce type de scurit est dun niveau trop bas
pour permettre une authentification et un contrle daccs raffins. Ces services de scurit doivent tre fournis des
niveaux plus levs. Le protocole IP ne possde pas la capacit de vrifier lidentit de lmetteur. La seule
information didentification porte sur ladresse IP de lmetteur du paquet. Ni le rseau, ni la couche transport ne
peuvent vrifier que ladresse IP est exacte. Nanmoins, par rapport ce qui peut tre mis en uvre des niveaux plus
levs, le niveau paquet permet un contrle tendu de laccs direct aux ports.
La politique du tout interdire est lapproche recommande. Cette approche permet plus aisment la configuration dun
firewall scuritaire, mais chaque service souhait doit tre explicitement activ. Cela signifie quune bonne
J-F Challe
HEPCUT - ISIPH
144
comprhension du protocole de communication activer est ncessaire. Cette approche requiert plus de travail avant de
rendre disponible un accs Internet.
La politique du tout accepter permet une mise en uvre aise et immdiate, mais elle oblige ladministrateur anticiper
chaque type daccs concevable dsactiver. Le danger consiste ne pas anticiper un type daccs dangereux avant
quil ne soit trop tard ou ultrieurement rendre disponible un service peu sr. Dvelopper un firewall, selon cette
politique, prsente beaucoup plus de travail et de difficults et augmente considrablement le risque derreurs.
l'envoi dune rponse derreur augmente le trafic sur le rseau. La majorit des paquets ignors le sont parce
quils sont malveillants et non parce quils reprsentent une tentative innocente daccder un service qui ne
se trouve pas offert ;
tout paquet ayant donn lieu une rponse peut tre utilis pour une attaque par dni de service ;
toute rponse, mme un message derreur, procure un cracker potentiel de linformation utile.
l'adresse source ;
ladresse de destination ;
le port source ;
le port destination ;
lidentificateur de ltat TCP.
J-F Challe
adresse IP du firewall. Aucun paquet entrant ne peut lgalement afficher lidentit du firewall. Puisque
ladresse source est la seule information disponible et quelle peut tre modifie, il sagit dune forme de
spoofing dtectable au niveau du filtrage de paquets ;
adresses IP prives de classe A, B et C. Les sries dadresses dans chacun des intervalles des classes A, B et C
sont rserves une utilisation au sein dun rseau local. Elles ne sont pas destines un usage sur Internet.
Comme telles, ces adresses peuvent tre utilises par nimporte quel Intranet sans quil lui soit ncessaire
dacqurir des adresses IP enregistres en bonne et due forme. Les adresses source prives sont souvent
rencontres sur les sous-rseaux locaux des fournisseurs daccs Internet en raison de systmes mal
configurs aussi bien que sur des sites ayant fait lobjet dune attaque par spoofing. Les adresses prives de
classe A se voient assigner les intervalles de 10.0.0.0 10.255.255.255. Les adresses prives de classe B se
voient assigner les intervalles de 172.16.0.0 172.31.255.255. Les adresses prives de classe C se voient
assigner les intervalles de 192.168.0.0 192.168.255.255 ;
HEPCUT - ISIPH
145
Adresses IP multicast de classe D. Les adresses IP, dans lintervalle de la classe D, sont mises part pour une
utilisation en tant quadresses destination lorsquelles participent un broadcast rseau en mode multicast.
Elle se rpartissent entre 224.0.0.0 et 239.255.255.255 ;
adresses IP rserves de classe E. Les adresses IP dans lintervalle de la classe E sont mises de ct pour une
utilisation future titre exprimental et ne sont pas assignes au public. Elles stendent de 240.0.0.0
247.255.255.255 ;
adresses dinterface loopback. Linterface loopback est une interface prive utilise par les systmes UNIX
pour les services locaux. Plutt que denvoyer le trafic local travers le pilote de linterface rseau et pour une
meilleure performance le systme dexploitation emprunte un raccourci travers linterface loopback. Par
dfinition, le trafic loopback est destin tre gnr par le systme. Il ne sort pas du rseau. Ladresse
loopback va de 127.0.0.0 127.255.255.255. Gnralement les systmes sy rfrent sous la forme 127.0.01,
localhost ou interface loopback, lo ;
adresses broadcast mal formes. Les adresses broadcast sont des adresses spciales qui sappliquent toutes
les machines sur un rseau. Ladresse source de broadcast sera soit 0.0.0.0, soit une adresse IP normale. Seuls
les clients DHCP verront des paquets broadcast entrants provenant de ladresse source 0.0.0.0. Il ne semble
pas que ladresse 0.0.0.0 soit rencontre dans dautres situations. Il ne sagit pas dune adresse point point
valable.
le service POP ;
lassignation dynamique dadresses IP ;
les rponses DNS.
La seconde classe de paquets entrants vient de clients distants accdant aux services offerts par le site mis en place. L
encore, alors que certaines connexions de services peuvent provenir de partout (Web), dautres services locaux ne
seront offerts qu un petit nombre dutilisateurs distants, de confiance. Les exemples de services locaux restreints
pourraient tre telnet, ssh, finger.
J-F Challe
HEPCUT - ISIPH
146
le matriel ;
le systme dexploitation ;
les versions de logiciels.
Les cibles sont souvent sondes en vue de la recherche des vulnrabilits spcifiques, tel un serveur de mails non
scuris. Chaque jour, les journaux des firewalls font tat de tentatives de connexions rates de toutes sortes. Il sagit
gnralement de tentatives de piratages avortes ne compromettant pas lintgrit du systme car les ports sont bloqus,
le firewall remplissant bien son office
J-F Challe
HEPCUT - ISIPH
147
un systme de fichiers peut tre satur par lenregistrement dune grande quantit :
J-F Challe
HEPCUT - ISIPH
148
Il pourrait tre judicieux de configurer les limites des ressources et de prvoir une partition spare pour les
systmes de fichiers qui croissent rapidement ;
les serveurs peuvent tre bloqus si un grand nombre de donnes leur sont envoyes et que les buffers
dbordent. Plusieurs faiblesses connues sont les buffers overflows.
Les connexions manant des programmes clients proviennent la plupart du temps dun port source sans privilge. Le
firewall doit donc imposer aux clients lemploi de ports sans privilge.
Les paquets sortants manant des programmes serveurs proviennent toujours dun port source dtermin. Les serveurs
doivent donc tre limits, par une rgle du firewall, un port dtermin. Il est par exemple exclu quun serveur Web
prsente un port source autre que 80.
J-F Challe
HEPCUT - ISIPH
149
J-F Challe
HEPCUT - ISIPH
150
Voici le format de la commande ipchains ainsi que la signification des diffrentes options :
ipchains -A|-I [chain] [-i interface] [-p protocol] [[!]y] [-s address
[port[:port]]] [-d address [port[:port]]] j policy [-l]
Option
-A [chain]
-I [chain]
-i <interface>
-p <protocol>
-y
! y
-s <address> [<port>]
-d <address> [<port>]
-j <policy>
-l
Description
Ajoute une rgle la fin dune chane. Les chanes utilisables sont input, output et forward.
Si une chane nest pas spcifie, la rgle sapplique alors toutes les chanes.
Insre une rgle au dbut dune chane. . Les chanes utilisables sont input, output et forward.
Si une chane nest pas spcifie, la rgle sapplique alors toutes les chanes.
Spcifie linterface rseau laquelle la rgle sapplique. Si linterface nest pas spcifie, la
rgle sapplique toutes les interfaces.
Spcifie le protocole IP auquel la rgle sapplique. Si loption p nest pas employe, la rgle
sapplique tous les protocoles. Les noms de protocoles supports sont tcp, udp, icmp et all.
Les noms ou les numros des protocoles de /etc/protocols sont galement permis.
Lindicateur SYN doit tre inscrit et lindicateur ACK doit tre enlev du message TCP,
indiquant ainsi une requte pour ltablissement dune connexion. Si loption y napparat
pas, les bits indicateurs TCP ne sont pas vrifis.
Lindicateur ACK doit tre inscrit dans le message TCP, indiquant une rponse initiale une
requte de connexion ou une continuation dune connexion tablie. Si ! -y napparat pas
comme argument, les bit indicateurs TCP ne sont pas vrifis.
Spcifie ladresse source du paquet. Si une adresse source nest pas spcifie, toutes les
adresses unicast sources sont sous-entendues. Si un port ou une srie de ports est donn, la
rgle ne sapplique qu ces ports. Sans la spcification dun port, la rgle sapplique tous
les ports source. Une srie de ports est dfinie par des nombres identifiant les ports de dbut
et de fin, spars par deux-points. Si un port est inscrit, une adresse doit tre donne.
Spcifie ladresse de destination dun paquet. Si une adresse de destination nest pas
spcifie, toutes les adresses unicast de destination sont sous-entendues. Si un port ou une
srie de ports est donn, la rgle ne sapplique qu ces ports. Sans la spcification dun port,
la rgle sapplique tous les ports de destination. Une srie de ports est dfinie par des
nombres indiquant les ports de dbut et de fin, spars par deux-points. Si un port est inscrit,
une adresse doit tre donne.
Spcifie la directive dacheminement des paquets, soit ACCEPT, DENY ou REJECT. La
chane forward peut galement prendre la directive MASQ.
Ecrit un message informatif du noyau dans le journal du systme, par dfaut, chaque fois
quun message satisfait une rgle.
J-F Challe
HEPCUT - ISIPH
151
J-F Challe
HEPCUT - ISIPH
152
A
A
A
A
A
A
A
A
A
A
A
A
-l
-l
-l
-l
-l
-l
Il faut galement refuser les paquets possdant une adresse source rserve linterface loopback :
ipchains A input i $INTERNETETH s $LOOPBACK j DENY
ipchains A output i $INTERNETETH s $LOOPBACK j DENY -l
Les paquets broadcast peuvent avoir une adresse source ou une adresse destination illgale. Un paquet entrant
possdant une adresse source 255.255.255.255 est certainement illgal car ladresse source ne peut tre que 0.0.0.0.
Dans le mme ordre dide, un paquet entrant possdant une adresse destination 0.0.0.0 est certainement illgal car
ladresse destination ne peut tre que 255.255.255.255. En rsum, les paquets entrants ayant une adresse source
correspondant une adresse broadcast de destination doivent tre limins de mme que les paquets entrants ayant une
adresse de destination correspondant une adresse broadcast source. Cette inversion dans lutilisation des adresses
broadcast nest pas une erreur mais une sonde employe pour identifier les machines utilisant UNIX.
ipchains A input i $INTERNETETH s $BROADCASTDEST j DENY
ipchains A input i $INTERNETETH d $BROADCASTSRC j DENY -l
Les adresses multicast ne sont lgales qu la condition dtre une adresse de destination. Cela signifie que les paquets
possdant une adresse source de type multicast sont des attaques par spoofing.
ipchains A input i $INTERNETETH s $CLASSED j DENY l
ipchains A output i $INTERNETETH s $CLASSED j REJECT l
J-F Challe
HEPCUT - ISIPH
153
De plus, le firewall ne doit pas envoyer des paquets multicast vers Internet. La rgle suivante bloque lenvoi des
paquets multicast :
ipchains A output i $INTERNETETH d $CLASSED j REJECT l
Si la machine firewall nest pas inscrite un service broadcast, il est permis au moyen de la rgle suivante, de refuser
tous les paquets multicast entrants :
ipchains A input i $INTERNETETH d $CLASSED j REJECT l
Les adresses de la classe E sont rserves un usage exprimental et ne sont, par consquent, pas employes sur
Internet. Il faut donc refuser tous les paquets entrants prtendant provenir dun rseau de classe E.
ipchains A input i $INTERNETETH s $CLASSEE j DENY l
LInternet Assigned Numbers Authority (IANA) administre la distribution et lenregistrement des espaces dadresses IP
du monde entier. Quelques blocs dadresses sont identifis comme tant rservs lIANA. Ces adresses ne devraient
pas apparatre dans le rseau public Internet. Voici les plages dadresses rserves lIANA :
Dbut
1.0.0.0
2.0.0.0
5.0.0.0
7.0.0.0
23.0.0.0
27.0.0.0
31.0.0.0
37.0.0.0
39.0.0.0
41.0.0.0
42.0.0.0
58.0.0.0
60.0.0.0
65.0.0.0
66.0.0.0
67.0.0.0
68.0.0.0
Fin
1.255.255.255
2.255.255.255
5.255.255.255
7.255.255.255
23.255.255.255
27.255.255.255
31.255.255.255
37.255.255.255
39.255.255.255
41.255.255.255
42.255.255.255
58.255.255.255
60.255.255.255
65.255.255.255
66.255.255.255
67.255.255.255
68.255.255.255
Dbut
69.0.0.0
70.0.0.0
71.0.0.0
72.0.0.0
73.0.0.0
74.0.0.0
75.0.0.0
76.0.0.0
77.0.0.0
78.0.0.0
79.0.0.0
80.0.0.0
96.0.0.0
112.0.0.0
113.0.0.0
114.0.0.0
115.0.0.0
Fin
69.255.255.255
70.255.255.255
71.255.255.255
72.255.255.255
73.255.255.255
74.255.255.255
75.255.255.255
76.255.255.255
77.255.255.255
78.255.255.255
79.255.255.255
95.255.255.255
111.255.255.255
112.255.255.255
113.255.255.255
114.255.255.255
115.255.255.255
Dbut
116.0.0.0
117.0.0.0
118.0.0.0
119.0.0.0
120.0.0.0
121.0.0.0
122.0.0.0
123.0.0.0
124.0.0.0
125.0.0.0
126.0.0.0
217.0.0.0
218.0.0.0
219.0.0.0
220.0.0.0
Voici les rgles du firewall refusant les paquets provenant soit-disant de lIANA :
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
J-F Challe
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
input
input
input
input
input
input
input
input
input
input
input
input
input
input
input
input
input
input
input
input
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
$INTERNETETH
$INTERNETETH
$INTERNETETH
$INTERNETETH
$INTERNETETH
$INTERNETETH
$INTERNETETH
$INTERNETETH
$INTERNETETH
$INTERNETETH
$INTERNETETH
$INTERNETETH
$INTERNETETH
$INTERNETETH
$INTERNETETH
$INTERNETETH
$INTERNETETH
$INTERNETETH
$INTERNETETH
$INTERNETETH
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
1.0.0.0/8 j DENY l
2.0.0.0/8 j DENY l
5.0.0.0/8 j DENY l
7.0.0.0/8 j DENY l
23.0.0.0/8 j DENY l
27.0.0.0/8 j DENY l
31.0.0.0/8 j DENY l
37.0.0.0/8 j DENY l
39.0.0.0/8 j DENY l
41.0.0.0/8 j DENY l
42.0.0.0/8 j DENY l
58.0.0.0/8 j DENY l
60.0.0.0/8 j DENY l
65.0.0.0/8 j DENY l
66.0.0.0/8 j DENY l
67.0.0.0/8 j DENY l
68.0.0.0/8 j DENY l
69.0.0.0/8 j DENY l
70.0.0.0/8 j DENY l
71.0.0.0/8 j DENY l
Fin
116.255.255.255
117.255.255.255
118.255.255.255
119.255.255.255
120.255.255.255
121.255.255.255
122.255.255.255
123.255.255.255
124.255.255.255
125.255.255.255
126.255.255.255
217.255.255.255
218.255.255.255
219.255.255.255
223.255.255.255
HEPCUT - ISIPH
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
ipchains
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
154
input
input
input
input
input
input
input
input
input
input
input
input
input
input
input
input
input
input
input
input
input
input
input
input
input
input
input
input
input
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
$INTERNETETH
$INTERNETETH
$INTERNETETH
$INTERNETETH
$INTERNETETH
$INTERNETETH
$INTERNETETH
$INTERNETETH
$INTERNETETH
$INTERNETETH
$INTERNETETH
$INTERNETETH
$INTERNETETH
$INTERNETETH
$INTERNETETH
$INTERNETETH
$INTERNETETH
$INTERNETETH
$INTERNETETH
$INTERNETETH
$INTERNETETH
$INTERNETETH
$INTERNETETH
$INTERNETETH
$INTERNETETH
$INTERNETETH
$INTERNETETH
$INTERNETETH
$INTERNETETH
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
72.0.0.0/8 j DENY l
73.0.0.0/8 j DENY l
74.0.0.0/8 j DENY l
75.0.0.0/8 j DENY l
76.0.0.0/8 j DENY l
77.0.0.0/8 j DENY l
78.0.0.0/8 j DENY l
79.0.0.0/8 j DENY l
80.0.0.0/4 j DENY l
96.0.0.0/4 j DENY l
112.0.0.0/8 j DENY l
113.0.0.0/8 j DENY l
114.0.0.0/8 j DENY l
115.0.0.0/8 j DENY l
116.0.0.0/8 j DENY l
117.0.0.0/8 j DENY l
118.0.0.0/8 j DENY l
119.0.0.0/8 j DENY l
120.0.0.0/8 j DENY l
121.0.0.0/8 j DENY l
122.0.0.0/8 j DENY l
123.0.0.0/8 j DENY l
124.0.0.0/8 j DENY l
125.0.0.0/8 j DENY l
126.0.0.0/8 j DENY l
217.0.0.0/8 j DENY l
218.0.0.0/8 j DENY l
219.0.0.0/8 j DENY l
220.0.0.0/6 j DENY l
Nom symbolique
echo-reply
destination-unreachable
4
5
source-quench
redirect
8
11
echo-request
time-exceeded
12
parameter-problem
Description
Rponse un ping.
Message derreur gnral ; un routeur le long du trajet est incapable de transmettre
le paquet la destination suivante (utilis par traceroute).
Contrle de flux de niveau IP entre deux routeurs ou entre un routeur et un hte.
Message dacheminement renvoy lexpditeur lorsque le routeur dtermine quil
existe un chemin plus court.
Requte ping.
Message dacheminement renvoy lorsque le nombre maximal de hops est dpass
(utilis par traceroute).
Valeur non attendue se trouvant dans len-tte du paquet.
J-F Challe
HEPCUT - ISIPH
155
J-F Challe
A
A
A
A
A
A
input i $INTERNETETH
output i $INETNETETH
input i $INTERNETETH
output i $INETNETETH
input i $INTERNETETH
output i $INETNETETH
p
p
p
p
p
p
icmp
icmp
icmp
icmp
icmp
icmp
d
d
d
d
d
d
$BROADCASTDEST j DENY l
$BROADCASTDEST j REJECT l
$NETMASK j DENY l
$NETMASK j REJECT l
$NETWORK j DENY l
$NETWORK j REJECT l
HEPCUT - ISIPH
156
7.4. Protection des services sur les ports TCP sans privilge.
7.4.1. Interdire les connexions Open Window.
Les connexions sortantes diriges vers un gestionnaire Open Window distant devraient tre interdites. Ladministrateur
doit donc inscrire une rgle dans le firewall interdisant linitiation dune connexion vers un gestionnaire Open Window.
Cela signifie que les paquets sortants dots de lindicateur SYN doivent tre refuss.
Le gestionnaire Open Window utilise le port 2000 pour accepter les connexions. Voici la rgle bloquant linitiation de
ce type de requte :
ipchains A output i $INTERNETETH p tcp y s $INTERNETADDR d any/0 2000
j REJECT
Il nest pas ncessaire de bloquer explicitement les demandes de connexion entrantes vers le port 2000 car le systme
Linux est dpourvu de gestionnaire Open Window.
7.4.2. Interdire les connexions X Window.
Les connexions aux serveurs X Window distants devraient tre interdites. Afin dautoriser plusieurs connexions
concurrentes au serveur X W indow, les ports allant de 6000 6063 sont utiliss. Ladministrateur doit donc bloquer les
initiations de connexions vers ces ports. De mme les demandes de connexions au serveur X Window local doivent tre
refuses :
ipchains A output i $INTERNETETH p tcp y s $INTERNETADDR d any/0 6000:6063
j REJECT
ipchains A input i *INTERNETETH p tcp y d $INTERNETADDR 6000:6063
j DENY l
7.4.3. Interdire les connexions au serveur SOCKS .
Le serveur mandataire SOCKS exploite le port 1080. Ce type de service est exploit pour rendre des connexions
anonymes. Il faut donc interdire, non seulement, lutilisation du serveur SOCK local par des clients distants mais
galement lexploitation de serveurs SOCK distants depuis le firewall.
ipchains A output i $INTERNETETH p tcp y s $INTERNETADDR d any/0 1080
j REJECT l
ipchains A input i $INTERNETETH p tcp y d $INTERNETADDR 1080 j DENY -l
7.5. Protection des services sur les ports UDP sans privilge.
Contrairement au protocole TCP, le protocole UDP ne possde pas dtat de connexion. La seule possibilit offerte
ladministrateur est tout simplement de bloquer laccs UDP.
Dans la catgorie des services UDP, le protocole NFS est le principal service concern par le filtrage. Le service NFS
opre sur le port 2049. Il faut donc bloquer toutes les connexions entrantes vers le port 2049. Dans le cas o un serveur
NFS nest pas excut sur la machine firewall, la rgle suivante nest pas ncessaire :
ipchains A input i $INTERNETETH p udp d $INTERNETADDR 2049 j DENY l
Dans de rares cas, le protocole NFS est compil pour travailler au moyen du protocole TCP. Dans cette situation, il faut
bloquer les connexions entrantes et sortantes :
ipchains A input i $INTERNETETH p tcp y d $INTERNETADDR 2049 j DENY l
ipchains A output i $INTERNEETH p tcp y d any/0 2049 j DENY l
J-F Challe
HEPCUT - ISIPH
157
DNS ;
ident.
Le DNS effectue la traduction entre les noms dhtes et leur adresse IP associe. Le service identd, quant lui, fournit
le nom de lutilisateur, ou lID, associ une connexion. Cette traduction est couramment demande par un serveur de
courrier distant lorsquun email est expdi. Il nest pas ncessaire doffrir le service identd. Par contre pour viter des
dlais dexpiration trop longs, il faut rpondre une demande de connexion entrante dune manire ou dune autre.
7.6.1. Permettre DNS.
Le service DNS est un protocole de communication qui sappuie la fois sur UDP et sur TCP. Dans les deux cas, le
port 53 est utilis.
Les requtes dquivalence (nslookup) sont normalement faites sous UDP, que ce soit des requtes dun client vers le
serveur ou entre des serveurs. La communication UDP peut faillir si linformation renvoye est trop grande pour tre
contenue dans un paquet DNS UDP. Le serveur place alors, dans len-tte du message, un bit indicateur de donnes
tronques. Dans ce cas, le protocole permet un autre essai sous TCP. En pratique, TCP nest pas utile lors dune
requte DNS sauf dans le cas dun transfert de zones entre les serveurs primaire et secondaire.
Le rsolveur DNS incorpor au code de la bibliothque rseau peut requrir la conversion dun nom symbolique en une
adresse. Cette requte est, par exemple, envoye au serveur DNS du fournisseur daccs Internet.
En supposant que le serveur DNS du fournisseur daccs Internet soit 212.68.193.32, voici les rgles du firewall
autorisant les demandes de rsolution de noms :
ipchains A output i $INTERNETETH p udp s $INTERNETADDR 1024:65535
d 212.68.193.32 53 j ACCEPT
ipchains A input i $INTERNETETH p udp s 212.68.193.32 53
d $INTERNETADDR 1024:65535 j ACCEPT
Si la taille des informations est trop importante, il est impossible de les inclure dans un datagramme UDP. Dans ce cas,
le DNS essaye de rsoudre le problme en utilisant le protocole TCP. Voici les rgles permettant la communication
DNS en TCP :
ipchains A output i $INTERNETETH p tcp s $INTERNETADDR 1024:65535
d 212.68.193.32 53 j ACCEPT
ipchains A input i $INTERNETETH p tcp ! -y s 212.68.193.32 53
d $INTERNETADDR 1024:65535 j ACCEPT
Dans le cas des DNS, lorsquun serveur local ne possde pas linformation demande par un client, il contacte un
serveur distant et lui transfre la requte. Ce type de configuration est couramment employe afin de mettre dans la
mmoire cache du serveur de noms un certain nombre de rsolutions de noms. A la diffrence des changes entre un
client et un serveur, les changes entre les serveurs passent toujours par le port 53 dun ct comme de lautre. De plus,
les requtes dquivalence sont toujours faites au moyen du protocole UDP. Voici les rgles permettant les changes
entre les serveurs :
ipchains A output I $INTERNETETH p udp s $INTERNETADDR 53 d any/0 53
j ACCEPT
ipchains A input I $INTERNETETH p udp s any/0 53 d $INTERNETADDR 53
j ACCEPT
Si le site est constitu de plusieurs machines, il y a de fortes chances pour quun serveur DNS soit prsent. Ce serveur
doit tre joignable de manire distante afin de rsoudre les noms. Non seulement le serveur doit tre consultable par des
clients mais galement par des serveurs :
J-F Challe
HEPCUT - ISIPH
ipchains A
j ACCEPT
ipchains A
j ACCEPT
ipchains A
j ACCEPT
ipchains A
j ACCEPT
158
Lorsquun client distant envoie une requte au serveur DNS prsent sur la machine firewall, il se peut que les donnes
soient tronques et que le protocole TCP soit exploit. De mme, si un serveur DNS secondaire est prsent, il faut que
le transfert de zone soit possible. Pour autoriser cela, il faut que le firewall laisse passer les requtes TCP :
ipchains A input i $INTERNETETH p tcp s any/0 53 1024:65535
d $INTERNETADDR 53 j ACCEPT
ipchains A output i $INTERNETETH p tcp ! y s $INTERNETADDR 53
d any/0 1024:65535 j ACCEPT
7.6.2. Filtrer les identifications.
Le service didentification des utilisateurs identd est utilis lors de lenvoi de courrier ou lors de la publication dun
article Usenet. Quelques sites FTP sont galement configurs pour demander une identification. Pour contacter un
serveur didentification, il faut employer le port 113.
En tant que client, il ny a aucune raison dinterdire les requtes didentification sortantes :
ipchains A output $INTERNETETH p tcp s $INTERNETADDR 1024:65535 d any/0 113
j ACCEPT
ipchains A input $INTERNETETH p tcp ! y s any/0 113
d $INTERNETADDR 1024:65535 j ACCEPT
Si un serveur identd est prsent sur la machine firewall, il faut accepter les requtes entrantes sur le port 113.
ipchains A input i $INTERNETETH p tcp s any/0 1024:65535
d $INTERNETADDR 113 j ACCEPT
ipchains A output i $INTERNETETH p tcp ! y s $INTERNETADDR 113
d any/0 1024:65535 j ACCEPT
le courrier lectronique ;
les groupes de discussions ;
telnet ;
ssh ;
ftp ;
http ;
finger ;
whois ;
gopher ;
WAIS.
J-F Challe
HEPCUT - ISIPH
159
du rseau au moyen du protocole SMTP assign au port 25. La rception locale de messages seffectue communment
laide dun des trois protocoles suivants :
Lorsque du courrier sortant est relay, au travers dun serveur SMTP externe, le programme de courrier envoie tous vers
le serveur du fournisseur daccs Internet. Les deux rgles suivantes autorisent le firewall relayer le courrier au
travers de la passerelle SMPT du fournisseur daccs Internet dont ladresse est, par exemple, 212.68.193.7 :
ipchains -A output i $INTERNETETH p tcp s $INTERNETADDR 1024:65535
d 212.68.193.7 25 j ACCEPT
ipchains A input i $INTERNETETH p tcp ! y s $212.68.193.7 25
d $INTERNETADDR 1024:65535 j ACCEPT
Si la machine locale est quipe dun serveur de courrier lectronique, les clients peuvent tre configurs de manire
envoyer le courrier au serveur local plutt quau serveur du fournisseur daccs Internet. Dans ce cas, cest le serveur
local qui est charg de contacter les serveurs destinataires du courrier. Voici deux rgles permettant lenvoi du courrier
au moyen dun serveur local :
ipchains A output i $INTERNETETH p tcp s INTERNETADDR 1024:65535
d any/0 25 j ACCEPT
ipchains A input i $INTERNETETH p tcp ! y s any/0 25
d $INTERNETADDR 1024:65535 j ACCEPT
La rception du courrier peut soprer de diffrentes manires :
Pour recevoir le courrier directement sur le serveur SMTP local, il faut configurer le firewall pour quil accepte les
courriers entrants provenant de tous les htes dInternet. Voici les deux rgles appliquer dans ce cas :
ipchains A input i $INTERNETETH p tcp s any/0 1024:65535
d $INTERNETADDR 25 j ACCEPT
ipchains A output i $INTERNETETH p tcp ! y s $INTERNETADDR 25
d any/0 1024:65535 j ACCEPT
Pour retirer le courrier partir du serveur POP du fournisseur daccs Internet, il faut que le firewall accepte de
contacter ce service distant sur le port 110. En supposant que ladresse IP du serveur POP du fournisseur daccs
Internet soit 212.68.193.8, voici les rgles imposant au firewall de laisser passer les paquets :
ipchains A output i $INTERNETETH p tcp s $INTERNETADDR 1024:65535
d 212.68.193.8 110 j ACCEPT
ipchains A input i $INTERNETETH p tcp ! y s 212.68.193.8 110
d $INTERNETADDR 1024:65535 j ACCEPT
Pour retirer le courrier partir du serveur IMAP du fournisseur daccs Internet, il faut que le firewall accepte de
contacter ce service distant sur le port 143. En supposant que ladresse IP du serveur POP du fournisseur daccs
Internet soit 212.68.193.8, voici les rgles imposant au firewall de laisser passer les paquets :
ipchains A output i $INTERNETETH p tcp s $INTERNETADDR 1024:65535
d 212.68.193.8 143 j ACCEPT
ipchains A input i $INTERNETETH p tcp ! y s 212.68.193.8 143
d $INTERNETADDR 1024:65535 j ACCEPT
Diffrentes combinaisons denvoi et de rception du courrier sont possibles :
J-F Challe
HEPCUT - ISIPH
160
exp dier le courrier en tant que client SMPT et le recevoir en tant que client POP ;
expdier le courrier en tant que client SMPT et le recevoir en tant que client IMAP ;
expdier le courrier en tant que client SMTP et le recevoir en tant que serveur SMTP ;
expdier le courrier en tant que serveur SMTP et le recevoir en tant que serveur SMTP ;
Sachant que le serveur SMTP porte ladresse 212.68.193.7 et que le serveur POP porte ladresse 212.68.193.8, voici la
configuration appliquer dans le cas o le courrier est expdi en tant que client SMTP et reu en tant que client POP :
ipchains A output i $INTERNETETH p tcp s $INTERNETADDR 1024:65535
d 212.68.193.7 25 j ACCEPT
ipchains A input i $INTERNETETH p tcp ! y s 212.68.193.7 25
d $INTERNETADDR 1024:65535 j ACCEPT
ipchains A ouput i $INTERNETETH p tcp s $INTERNETADDR 1024:65535
d 212.68.193.7 110 j ACCEPT
ipchains A input i $INTERNETETH p tcp ! y s 212.68.193.7 110
d $INTERNETADDR 1024:65535 j ACCEPT
Sachant que le serveur SMTP porte ladresse 212.68.193.7 et que le serveur IMAP porte ladresse 212.68.193.8, voici la
configuration appliquer dans le cas o le courrier est expdi en tant que client SMTP et reu en tant que client
IMAP :
ipchains A output i $INTERNETETH p tcp s $INTERNETADDR 1024:65535
d 212.68.193.7 25 j ACCEPT
ipchains A input i $INTERNETETH p tcp ! y s 212.68.193.7 25
d $INTERNETADDR 1024:65535 j ACCEPT
ipchains A ouput i $INTERNETETH p tcp s $INTERNETADDR 1024:65535
d 212.68.193.7 143 j ACCEPT
ipchains A input i $INTERNETETH p tcp ! y s 212.68.193.7 143
d $INTERNETADDR 1024:65535 j ACCEPT
Sachant que le serveur SMTP du fournisseur daccs Internet porte ladresse 212.68.193.7, voici la configuration
appliquer dans le cas o le courrier est expdi en tant que client SMTP et reu en tant que serveur SMTP :
ipchains A output i $INTERNETETH p tcp s $INTERNETADDR 1024:65535
d 212.68.193.7 25 j ACCEPT
ipchains A input i $INTERNETETH p tcp ! y s 212.68.193.7 25
d $INTERNETADDR 1024:65535 j ACCEPT
ipchains A input i $INTERNETETH p tcp s any/0 1024:65535 d $INTERNETADDR 25
j ACCEPT
ipchains A output i $INTERNETETH p tcp ! y s $INTERNETADDR 25
d any/0 1024:65535 j ACCEPT
Voici la configuration appliquer pour envoyer et recevoir du courrier en tant que serveur SMTP :
ipchains A output i $INTERNETETH p tcp s $INTERNETADDR 1024:65535
d any/0 25 j ACCEPT
ipchains A input i $INTERNETETH p tcp ! y s any/0 25
d $INTERNETADDR 1024:65535 j ACCEPT
ipchains A input i $INTERNETETH p tcp s any/0 1024:65535 d $INTERNETADDR 25
j ACCEPT
ipchains A output i $INTERNETETH p tcp ! y s $INTERNETADDR 25
d any/0 1024:65535 j ACCEPT
Les utilisateurs du courrier lectronique exploitent les services POP et IMAP pour retirer des messages. Si les clients
font partie dun rseau local situ derrire le firewall, aucune rgle ne doit lui tre ajoute pour autoriser ce service. Par
contre, si ladministrateur souhaite que des clients distants puissent retirer du courrier, il faut modifier la configuration
du firewall. Il est cependant important de savoir que des attaques fructueuses peuvent tre mene partir de ces
services. Dans les exemples qui suivent, tout client distant aura la possibilit de retirer du courrier partir des services
POP et SMTP bien que dans la pratique, il soit souhaitable doffrir ces services seulement un nombre limit de clients.
J-F Challe
HEPCUT - ISIPH
161
Voici la configuration du firewall pour autoriser des clients distants employer le serveur POP sur le port 110 pour
retirer du courrier :
ipchains A input i $INTERNETETH p tcp s any/0 1024:65535
d $INTERNETADDR 110 j ACCEPT
ipchains A output i $INTERNETETH p tcp ! y s $INTERNETADDR 110
d any/0 1024:65535 j ACCEPT
Dans le mme ordre dide, voici une configuration du firewall autorisant tous les clients distants retirer du courrier
partir du serveur IMAP local :
ipchains A input i $INTERNETETH p tcp s any/0 1024:65535
d $INTERNETADDR 143 j ACCEPT
ipchains A output i $INTERNETETH p tcp ! y s $INTERNETADDR 143
d any/0 1024:65535 j ACCEPT
7.7.2. Accder aux services Usenet.
Le port 119 offre laccs au service NNTP. Si ladministrateur accepte que les utilisateurs lisent des messages en
provenance du serveur de news du fournisseur daccs Internet, il faut configurer le firewall de la manire suivante en
supposant que le serveur NNTP porte ladresse 212.68.193.222 :
ipchains A output i $INTERNETETH p tcp s $INTERNETADDR 1024:65535
d 212.68.193.222 119 j ACCEPT
ipchains A input i $INTERNETETH p tcp ! y s 212.68.193.222 119
d $INTERNETADDR 1024:65535 j ACCEPT
Si un serveur NNTP existe localement, il faut que le firewall permette des clients distants de lexploiter. Voici les
deux rgles ouvrant le firewall pour cette utilisation :
ipchains A input i $INTERNETETH p tcp s any/0 1024:65535
d $INTERNETADDR 119 j ACCEPT
ipchains A output i $INTERNETETH p tcp ! y s $INTERNETADDR 119
d any/0 1024:65535 j ACCEPT
Les fournisseurs daccs Internet disposent localement de leur propre serveur NNTP. Ce serveur est en relation avec
un autre serveur NNTP de manire rendre possible lchange des messages. Ce serveur distant accepte dalimenter
automatiquement le serveur local et le serveur local peut galement alimenter le serveur distant. En supposant que le
serveur NNTP du fournisseur daccs Internet accepte les relations dgal gal avec le serveur local, voici les deux
rgles ajouter au firewall :
ipchains A output i $INTERNETETH p tcp s $INTERNETADDR 1024:65535
d 212.68.193.222 119 j ACCEPT
ipchains A input i $INTERNETETH p tcp ! y s 212.68.193.222 119
d $INTERNETADDR 104:65535 j ACCEPT
7.7.3. Le service telnet.
Durant plusieurs annes, telnet a t le moyen standard de se connecter Internet. A prsent, ce standard est vu de plus
en plus comme un moyen de communication non scuris. Le serveur telnet est actif sur le port 23.
Voici les rgles ajouter au firewall si ladministrateur accepte que des utilisateurs locaux accdent des serveurs
telnet distants :
ipchains A ouput i $INTERNETETH p tcp s $INTERNETADDR 1024:65535
d any/0 23 j ACCEPT
ipchains A input i $INTERNETETH p tcp ! y s any/0 23
d $INTERNETADDR 1024:65535 j ACCEPT
J-F Challe
HEPCUT - ISIPH
162
Si le service telnet doit tre offert lextrieur, il faut ouvrir laccs au port 23. Dans la pratique, il ne faut pas accepter
les demandes de connexion manant de nimporte o. Il est prfrable daccepter uniquement une demande en
provenance dhtes de confiance.
ipchains -A input i $INTERNETETH p tcp s any/0 1024:65535
d $INTERNETADDR 23 j ACCEPT
ipchains A output i $INTERNETETH p tcp ! y s $INTERNETADDR 23
d any/0 1024:65535 j ACCEPT
7.7.4. Le service ssh.
Le shell scuris SSH est de loin prfrable lemploi de telnet car les communications entre les machines sont
cryptes. Par dfaut, les connexions sont inities entre le port non privilgi du client et le port 22 du serveur. Durant
linitialisation de la connexion, le port du client est rassign un port privilgi compris entre 1023 et 513. Le numro
de port attribu au client est le premier port libre en partant de 1023 et en dcroissant vers le port 513.
ipchains A ouput i $INTERNETETH p tcp
d any/0 22 j ACCEPT
ipchains A input i $INTERNETETH p tcp
d $INTERNETADDR 1024:65535 j ACCEPT
ipchains A ouput i $INTERNETETH p tcp
d any/0 22 j ACCEPT
ipchains A input i $INTERNETETH p tcp
d $INTERNETADDR 513:1023 j ACCEPT
s $INTERNETADDR 1024:65535
! y s any/0 22
s $INTERNETADDR 513:1023
! y s any/0 22
Voici les rgles appliquer pour permettre aux clients distants daccder au serveur SSH local :
ipchains -A input i $INTERNETETH p tcp s any/0 1024:65535
d $INTERNETADDR 22 j ACCEPT
ipchains A output i $INTERNETETH p tcp ! y s $INTERNETADDR 22
d any/0 1024:65535 j ACCEPT
ipchains -A input i $INTERNETETH p tcp s any/0 513:1023
d $INTERNETADDR 22 j ACCEPT
ipchains A output i $INTERNETETH p tcp ! y s $INTERNETADDR 22
d any/0 513:1023 j ACCEPT
7.7.5. Le service ftp.
Le protocole FTP demeure le moyen le plus courant de transfrer des fichiers entre deux machines en rseau. Ce
protocole utilise deux ports privilgis, lun pour envoyer les commandes et lautre pour envoyer les donnes. Le port
21 est employ lors de ltablissement initial de la connexion au serveur et par la suite pour transmettre les commandes
lutilisateur. Le port 20 est utilis pour ltablissement dun canal servant au transport des donnes.
Le protocole FTP possde deux modes dchange des donnes entre le client et le serveur :
Le mode normal est utilis par dfaut par les clients FTP lors de la connexion un site distant. Le mode passif est un
mcanisme plus rcent qui est utilis par dfaut lors de ltablissement dune connexion au moyen dun navigateur
Internet.
Afin dautoriser les connexions des serveurs FTP distants, il faut non seulement permettre lutilisation du port 21 mais
galement du port 20. Si en plus de cela, ladministrateur autorise le mode passif, il faut accepter les connexions entre
des ports non privilgis. Dans le cas dune connexion en mode normal, cest le serveur dis tant qui rappelle le client.
Par contre, en mode normal, cest le client qui initie les connexions la fois pour les donnes et les commandes. Voici
les rgles ouvrant le firewall aussi bien en mode normal quen mode passif :
J-F Challe
HEPCUT - ISIPH
163
J-F Challe
HEPCUT - ISIPH
164
J-F Challe
HEPCUT - ISIPH
165
Ce protocole utilise le port 43 afin de retirer les donnes souhaites. Voici un exemple de configuration du firewall
autorisant la consultation des informations offertes par les serveurs whois distants :
ipchains A output i $INTERNETETH p tcp s $INTERNETADDR 1024:65535
d any/0 43 j ACCEPT
ipchains A input i $INTERNETETH p tcp ! y s any/0 43
d $INTERNETADDR 1024:65535 j ACCEPT
7.7.9. Le service gopher.
Le service dinformation gopher est encore disponible bien que son emploi ait t totalement remplac par les moteurs
de recherche du Web. Voici les rgles donnant un accs aux services gopher sur le port 70 :
ipchains A output i $INTERNETETH p tcp s $INTERNETADDR 1024:65535
d any/0 70 j ACCEPT
ipchains A input i $INTERNETETH p tcp ! y s any/0 70
d $INTERNETADDR 1024:65535 j ACCEPT
7.7.10. Le service WAIS.
Les serveurs WAIS sont prsent connus comme des moteurs de recherche. Les navigateurs Web sont des faades
graphiques type ce genre de serveur. Sachant que le port 210 est utilis par les serveurs WAIS, voici les deux rgles
de configuration du firewall donnant accs distant ces services :
ipchains A output i $INTERNETETH p tcp s $INTERNETADDR 1024:65535
d any/0 210 j ACCEPT
ipchains A input i $INTERNETETH p tcp ! y s any/0 210
d $INTERNETADDR 1024:65535 j ACCEPT
traceroute;
DHCP (Dynamic Host Configuration Protocol) ;
NTP (Network Time Protocol).
J-F Challe
HEPCUT - ISIPH
166
Les requtes UDP tant de par leur nature peu scurises, lacceptation des requtes traceroute doit tre limite
quelques htes de confiance.
ipchains A input i $INTERNETETH p udp s any/0 32769:65535 d $INTERNETADDR
33434:35523 j ACCEPT
7.8.2. Accder un serveur DHCP.
Bien quil soit possible de configurer un firewall lorsque des adresses IP sont attribues dynamiquement, la matire
sortant du cadre de ce cours, ne sera pas aborde. En effet, il nexiste pas de vritable site fonctionnant au moyen dune
adresse IP qui change perptuellement.
7.8.3. Accder un serveur Network Time.
Le service NTP permet laccs un ou plusieurs fournisseurs Internet dhorloge. Ce genre doutil est trs pratique pour
maintenir lhorloge interne du systme constamment jour. Seul la partie cliente sera envisage dans ce cours car peu
de sites sont connects une horloge atomique. Sachant quun serveur NTP utilise le port 123, voici les deux rgles du
firewall autorisant lexploitation dun client NTP :
ipchains A output i $INTERNETETH p udp s $INTERNETADDR 1024:65535 d
195.13.23.5 123 j ACCEPT
ipchains A input $ INTERNETETH p udp s 195.13.23.5 123 d $INTERNETADDR
1024:65535 j ACCEPT
Dans cet exemple, ladresse 195.13.23.5 est celle du serveur NTP de la Belgique.
J-F Challe
HEPCUT - ISIPH
167
J-F Challe
HEPCUT - ISIPH
168
Bibliographie.
[1] Cricket Liu & Paul Albitz ; DNS and BIND ; OReilly ; Sebastopol ; 1998.
[2] Craig Hunt ; TCP/IP Network Administration ; OReilly ; Sebastopol ; 1997.
[3] Bryan Costales & Eric Allman ; Sendmail ; OReilly ; Sebastopol ; 1997.
[4] D.Brent Chapman & Elizabeth D. Zwicky ; Building Internet Firewalls ; OReilly ; Sebastopol ; 1995.
[5] Robert L. Ziegler ; Linux firewalls ; Macmillan Technical Publishing ; Indianapolis ; 2000
[6] Douglas E. Comer ; Internetworking with TCP/IP volume I principles, protocols, and architecture ; Prentice-Hall
International ; London ; 1991.
[7] Douglas E. Comer & David L. Stevens ; Internetworking with TCP/IP volume II Design, Implementation, and
internals ; Prentice-Hall International ; London ; 1991.
[8] Hal Stern, Mike Eisler & Ricardo Labiaga ; Managing NFS and NIS ; OReilly ; Sebastopol ; 2001
[9] Robert Eckstein, David Collier-Brown, Peter Kelly ; Using samba ; OReilly ; Sebastopol ; 1999
[10] Ben Laurie & Peter Laurie ; Apache : The definitive guide ; OReilly ; Sebastopol ; 1999
[11] David HM Spector ; Building Linux clusters ; OReilly ; Sebastopol ; 2000
[12] Gisle Cizault ; Ipv6 thorie et pratique ; OReilly ; Paris ; 1999
[13] Aron Hsiao ; Sams teach yourself Linux security in 24 hours ; Addison Wesley Longman ; Massachussetts ; 2001
[14] Kamran Husain & Timothy Parker ; Linux Unleashed ; Computer Publishing ; Indianapolis ; 1996
[15] Anne H. Carasik ; Linux system administration ; IDG Book Worldwide ;London ; 1999
J-F Challe