Administration r
eseau sous Linux
Copyright c 1992-1995 Olaf Kirch
A Britta
UNIX est une marque d
epos
ee de X/Open.
Linux n'est pas une marque d
epos
ee, et n'a aucun lien avec UNIXTM ou X/Open.
Copyright c 1995 Olaf Kirch
Kattreinstr. 38, 64295 Darmstadt, Germany
okir@monad.swb.de
Adaptation fran
caise Ren
e Cougnenc (rene@renux.frmug.fr.net)
TABLE DES MATI
ERES v
Table des mati
eres
Pr
eface xvii
1 Introduction aux r
eseaux 1
1.1 Historique : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 1
1.2 R
eseaux UUCP : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 2
1.2.1 Comment utiliser UUCP : : : : : : : : : : : : : : : : : : : : : : 3
1.3 R
eseaux TCP/IP : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 4
1.3.1 Introduction aux r
eseaux TCP/IP : : : : : : : : : : : : : : : : 5
1.3.2 Ethernet : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 6
1.3.3 Autres types de mat
eriel : : : : : : : : : : : : : : : : : : : : : : 7
1.3.4 Le protocole Internet : : : : : : : : : : : : : : : : : : : : : : : : 8
1.3.5 IP sur lignes s
erie : : : : : : : : : : : : : : : : : : : : : : : : : 10
1.3.6 Le protocole TCP : : : : : : : : : : : : : : : : : : : : : : : : : 10
1.3.7 Le protocole UDP : : : : : : : : : : : : : : : : : : : : : : : : : 11
1.3.8 Les ports : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 12
1.3.9 Les sockets : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 12
1.4 Le r
eseau sous Linux : : : : : : : : : : : : : : : : : : : : : : : : : : : : 13
1.4.1 Orientations du d
eveloppement : : : : : : : : : : : : : : : : : : 14
1.4.2 O
u se procurer le code : : : : : : : : : : : : : : : : : : : : : : : 14
1.5 Maintenance du syst
eme : : : : : : : : : : : : : : : : : : : : : : : : : : 15
1.5.1 S
ecurit
e du syst
eme : : : : : : : : : : : : : : : : : : : : : : : : 15
vi TABLE DES MATI
ERES
2 Le r
eseau TCP/IP 19
2.1 Interfaces r
eseau : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 19
2.2 Adresses IP : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 20
2.3 R
esolution des adresses : : : : : : : : : : : : : : : : : : : : : : : : : : 21
2.4 Routage IP : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 22
2.4.1 R
eseaux IP : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 22
2.4.2 Sous-r
eseaux : : : : : : : : : : : : : : : : : : : : : : : : : : : : 23
2.4.3 Passerelles : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 24
2.4.4 La table de routage : : : : : : : : : : : : : : : : : : : : : : : : 25
2.4.5 Valeurs m
etriques : : : : : : : : : : : : : : : : : : : : : : : : : 27
2.5 Le protocole ICMP : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 28
2.6 DNS: Le Domain Name System : : : : : : : : : : : : : : : : : : : : : : 29
2.6.1 R
esolution de noms : : : : : : : : : : : : : : : : : : : : : : : : 29
2.6.2 Introduction du DNS : : : : : : : : : : : : : : : : : : : : : : : : 30
2.6.3 Recherche de noms avec le DNS : : : : : : : : : : : : : : : : : 32
2.6.4 Serveurs de noms : : : : : : : : : : : : : : : : : : : : : : : : : : 33
2.6.5 La base de donn
ees DNS : : : : : : : : : : : : : : : : : : : : : : 34
2.6.6 Requ^
etes inverses : : : : : : : : : : : : : : : : : : : : : : : : : : 36
3 Con guration de l'
equipement r
eseau 39
3.1 P
eriph
eriques, pilotes, etc. : : : : : : : : : : : : : : : : : : : : : : : : : 39
3.2 Con guration du noyau : : : : : : : : : : : : : : : : : : : : : : : : : : 42
3.2.1 Options du noyau dans Linux 1.0 et au-del
a : : : : : : : : : : : 43
3.2.2 Options du noyau 
a partir de Linux 1.1.14 : : : : : : : : : : : : 44
3.3 Tour d'horizon des pilotes r
eseau de Linux : : : : : : : : : : : : : : : : 46
3.4 Installation Ethernet : : : : : : : : : : : : : : : : : : : : : : : : : : : : 47
3.4.1 C^
ablage Ethernet : : : : : : : : : : : : : : : : : : : : : : : : : : 47
3.4.2 Cartes support
ees : : : : : : : : : : : : : : : : : : : : : : : : : 48
3.4.3 Autod
etection des cartes Ethernet : : : : : : : : : : : : : : : : 49
3.5 Le pilote PLIP : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 51
3.6 Les pilotes SLIP et PPP : : : : : : : : : : : : : : : : : : : : : : : : : : 52
TABLE DES MATI
ERES vii
4 Con guration des ports s
erie 53
4.1 Programmes de communication pour modems : : : : : : : : : : : : : : 53
4.2 Introduction aux p
eriph
eriques s
erie : : : : : : : : : : : : : : : : : : : 54
4.3 Acc
eder aux ports s
erie : : : : : : : : : : : : : : : : : : : : : : : : : : 55
4.4 Les ports s
erie : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 56
5 Con guration du r
eseau TCP/IP 59
5.1 Montage du syst
eme de chiers proc : : : : : : : : : : : : : : : : : : : 60
5.2 Installation des binaires : : : : : : : : : : : : : : : : : : : : : : : : : : 60
5.3 Un nouvel exemple : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 61
5.4 Assignation du nom de machine : : : : : : : : : : : : : : : : : : : : : : 61
5.5 Assignation des adresses IP : : : : : : : : : : : : : : : : : : : : : : : : 62
5.6 Cr
eation de sous-r
eseaux : : : : : : : : : : : : : : : : : : : : : : : : : : 63
5.7 R
edaction des chiers hosts et networks : : : : : : : : : : : : : : : : : 65
5.8 Con guration des interfaces r
eseau : : : : : : : : : : : : : : : : : : : : 66
5.8.1 L'interface loopback : : : : : : : : : : : : : : : : : : : : : : : : : 67
5.8.2 Interfaces Ethernet : : : : : : : : : : : : : : : : : : : : : : : : : 69
5.8.3 Routage par une passerelle : : : : : : : : : : : : : : : : : : : : 71
5.8.4 Con guration d'une passerelle : : : : : : : : : : : : : : : : : : : 72
5.8.5 L'interface PLIP : : : : : : : : : : : : : : : : : : : : : : : : : : 72
5.8.6 Les interfaces SLIP et PPP : : : : : : : : : : : : : : : : : : : : 74
5.8.7 L'interface dummy : : : : : : : : : : : : : : : : : : : : : : : : : 74
5.9 Tout sur ifcon g : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 74
5.10 La commande netstat : : : : : : : : : : : : : : : : : : : : : : : : : : : : 77
5.10.1 Achage de la table de routage : : : : : : : : : : : : : : : : : : 78
5.10.2 Achage des statistiques sur une interface : : : : : : : : : : : : 79
5.10.3 Achage des connexions : : : : : : : : : : : : : : : : : : : : : : 79
5.11 Test des tables ARP : : : : : : : : : : : : : : : : : : : : : : : : : : : : 80
5.12 L'avenir : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 82
6 Con guration du serveur de noms et du resolver 83
6.1 La biblioth
eque resolver : : : : : : : : : : : : : : : : : : : : : : : : : : 84
viii TABLE DES MATI
ERES
6.1.1 Le chier host.conf : : : : : : : : : : : : : : : : : : : : : : : : : 84
6.1.2 Variables d'environnement du resolver : : : : : : : : : : : : : : 85
6.1.3 Con guration des recherches DNS |resolv.conf : : : : : : : : : 86
6.1.4 Fiabilit
e du Resolver : : : : : : : : : : : : : : : : : : : : : : : : 88
6.2 Utilisation de named : : : : : : : : : : : : : : : : : : : : : : : : : : : : 88
6.2.1 Le chier named.boot : : : : : : : : : : : : : : : : : : : : : : : : 89
6.2.2 Les chiers de la base de donn
ees : : : : : : : : : : : : : : : : : 91
6.2.3 R
edaction des chiers de r
ef
erence : : : : : : : : : : : : : : : : 95
6.2.4 V
eri cation de la con guration du serveur de noms : : : : : : : 96
6.2.5 Autres outils pratiques : : : : : : : : : : : : : : : : : : : : : : : 100
7 IP sur ligne s
erie | SLIP 101
7.1 G
en
eralit
es : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 101
7.2 Mode d'emploi de SLIP : : : : : : : : : : : : : : : : : : : : : : : : : : 102
7.3 Le probl
eme des r
eseaux IP priv
es : : : : : : : : : : : : : : : : : : : : 104
7.4 Utilisation de dip : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 104
7.4.1 Exemple de script : : : : : : : : : : : : : : : : : : : : : : : : : 105
7.4.2 Manuel de r
ef
erence de dip : : : : : : : : : : : : : : : : : : : : 107
7.5 Utilisation en mode serveur : : : : : : : : : : : : : : : : : : : : : : : : 111
8 Le protocole Point-
a-Point | PPP 113
8.1 Sous les P, le protocole : : : : : : : : : : : : : : : : : : : : : : : : : : : 113
8.2 PPP sous Linux : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 114
8.3 Utilisation de pppd : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 115
8.4 Les chiers d'options : : : : : : : : : : : : : : : : : : : : : : : : : : : : 116
8.5 Appel t
el
ephonique par le programme chat : : : : : : : : : : : : : : : : 117
8.6 D
eboguer votre con guration PPP : : : : : : : : : : : : : : : : : : : : 119
8.7 Options de con guration IP : : : : : : : : : : : : : : : : : : : : : : : : 119
8.7.1 Choix des adresses IP : : : : : : : : : : : : : : : : : : : : : : : 120
8.7.2 Routage via une liaison PPP : : : : : : : : : : : : : : : : : : : 121
8.8 Protocole de contr^
ole de liaison : : : : : : : : : : : : : : : : : : : : : : 122
8.9 La s
ecurit
e sous PPP : : : : : : : : : : : : : : : : : : : : : : : : : : : : 124
TABLE DES MATI
ERES ix
8.10 Authenti cation sous PPP : : : : : : : : : : : : : : : : : : : : : : : : : 124
8.10.1 CHAP ou bien PAP? : : : : : : : : : : : : : : : : : : : : : : : 124
8.10.2 Le chier de secrets CHAP : : : : : : : : : : : : : : : : : : : : 126
8.10.3 Le chier de secrets PAP : : : : : : : : : : : : : : : : : : : : : 127
8.11 Con guration d'un serveur PPP : : : : : : : : : : : : : : : : : : : : : 128
9 Aspects importants du r
eseau 131
9.1 Le super serveur inetd : : : : : : : : : : : : : : : : : : : : : : : : : : : 131
9.2 Contr^
ole d'acc
es par tcpd : : : : : : : : : : : : : : : : : : : : : : : : : 134
9.3 Les chiers services et protocols : : : : : : : : : : : : : : : : : : : : : : 135
9.4 RPC: appel de proc
edure distante : : : : : : : : : : : : : : : : : : : : 137
9.5 Con guration des commandes en (
( r )
) : : : : : : : : : : : : : : : : : : 139
10 NIS: Network Information System 143
10.1 Initiation 
a NIS : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 144
10.2 NIS contre NIS+ : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 147
10.3 Le c^
ot
e client de NIS : : : : : : : : : : : : : : : : : : : : : : : : : : : : 147
10.4 Installer un serveur NIS : : : : : : : : : : : : : : : : : : : : : : : : : : 148
10.5 S
ecurit
e du serveur NIS : : : : : : : : : : : : : : : : : : : : : : : : : : 149
10.6 Con guration d'un client NIS avec NYS : : : : : : : : : : : : : : : : : 150
10.7 Choisir les bonnes cartes : : : : : : : : : : : : : : : : : : : : : : : : : : 151
10.8 Utilisation des cartes passwd et group : : : : : : : : : : : : : : : : : : : 153
10.9 NIS et les mots de passe shadow : : : : : : : : : : : : : : : : : : : : : 155
10.10Utilisation du code NIS traditionnel : : : : : : : : : : : : : : : : : : : 156
11 NFS, le syst
eme de chiers par r
eseau 159
11.1 V
eri cations avant usage : : : : : : : : : : : : : : : : : : : : : : : : : : 161
11.2 Monter un volume NFS : : : : : : : : : : : : : : : : : : : : : : : : : : 162
11.3 Les d
emons NFS : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 164
11.4 Le chier exports : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 164
11.5 Montage automatique: l'automonteur : : : : : : : : : : : : : : : : : : 166
x TABLE DES MATI
ERES
12 Ma^
triser Taylor UUCP 169
12.1 Transferts UUCP et ex
ecution 
a distance : : : : : : : : : : : : : : : : 171
12.1.1 Fonctionnement interne de uucico : : : : : : : : : : : : : : : : : 172
12.1.2 La ligne de commandes de uucico : : : : : : : : : : : : : : : : : 173
12.2 Fichiers de con guration : : : : : : : : : : : : : : : : : : : : : : : : : : 173
12.2.1 Petite introduction 
a Taylor UUCP : : : : : : : : : : : : : : : : 174
12.2.2 Informations 
a poss
eder au pr
ealable : : : : : : : : : : : : : : : 177
12.2.3 Le nom du site : : : : : : : : : : : : : : : : : : : : : : : : : : : 178
12.2.4 Fichiers de con guration Taylor : : : : : : : : : : : : : : : : : : 179
12.2.5 Options de con guration g
en
erale | le chier con g : : : : : : 180
12.2.6 Informations sur les sites UUCP voisins | le chier sys : : : : 180
12.2.7 P
eriph
eriques disponibles | le chier port : : : : : : : : : : : : 184
12.2.8 Appeler un num
ero | le chier dial : : : : : : : : : : : : : : : 186
12.2.9 UUCP sur TCP : : : : : : : : : : : : : : : : : : : : : : : : : : 187
12.2.10Utiliser une connexion directe : : : : : : : : : : : : : : : : : : : 188
12.3 Les erreurs 
a 
eviter | s
ecurit
e sous UUCP : : : : : : : : : : : : : : : 188
12.3.1 Ex
ecution de commandes : : : : : : : : : : : : : : : : : : : : : 188
12.3.2 Transferts de chiers : : : : : : : : : : : : : : : : : : : : : : : : 189
12.3.3 Relais : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 190
12.4 Con gurer votre syst
eme en serveur UUCP : : : : : : : : : : : : : : : 191
12.4.1 Con guration de getty : : : : : : : : : : : : : : : : : : : : : : : 191
12.4.2 O rir des comptes UUCP : : : : : : : : : : : : : : : : : : : : : 191
12.4.3 Protection contre les escrocs : : : : : : : : : : : : : : : : : : : : 192
12.4.4 Soyez parano | le test de s
equence d'appels : : : : : : : : : : 193
12.4.5 UUCP anonyme : : : : : : : : : : : : : : : : : : : : : : : : : : 194
12.5 Protocoles UUCP de bas niveau : : : : : : : : : : : : : : : : : : : : : : 195
12.5.1 Pr
esentation des protocoles : : : : : : : : : : : : : : : : : : : : 195
12.5.2 Optimisation du protocole de transmission : : : : : : : : : : : 196
12.5.3 S
election des protocoles : : : : : : : : : : : : : : : : : : : : : : 197
12.6 En cas de probl
eme... : : : : : : : : : : : : : : : : : : : : : : : : : : : : 198
12.7 Les chiers de trace : : : : : : : : : : : : : : : : : : : : : : : : : : : : 199
TABLE DES MATI
ERES xi
13 Le courrier 
electronique 203
13.1 Qu'est-ce qu'un message? : : : : : : : : : : : : : : : : : : : : : : : : : 204
13.2 Comment le courrier est-il d
elivr
e? : : : : : : : : : : : : : : : : : : : : 207
13.3 Adresses 
electroniques : : : : : : : : : : : : : : : : : : : : : : : : : : : 208
13.4 Le routage du courrier : : : : : : : : : : : : : : : : : : : : : : : : : : : 209
13.4.1 Routage du courrier sur l'Internet : : : : : : : : : : : : : : : : 209
13.4.2 Routage du courrier dans le monde UUCP : : : : : : : : : : : : 210
13.4.3 M
elanger UUCP et RFC 822 : : : : : : : : : : : : : : : : : : : 212
13.5 Format des cartes et du chier pathalias : : : : : : : : : : : : : : : : : 213
13.6 Con guration de elm : : : : : : : : : : : : : : : : : : : : : : : : : : : : 215
13.6.1 Con guration g
en
erale par elm.rc : : : : : : : : : : : : : : : : : 216
13.6.2 Jeux de caract
eres nationaux : : : : : : : : : : : : : : : : : : : 216
14 Mise en route de smail 219
14.1 Con guration UUCP : : : : : : : : : : : : : : : : : : : : : : : : : : : : 220
14.2 Con guration r
eseau : : : : : : : : : : : : : : : : : : : : : : : : : : : : 221
14.2.1 R
edaction des chiers de con guration : : : : : : : : : : : : : : 222
14.2.2 Mise en route de smail : : : : : : : : : : : : : : : : : : : : : : : 223
14.3 Si le courrier ne passe pas : : : : : : : : : : : : : : : : : : : : : : : : : 224
14.3.1 Compilation de smail : : : : : : : : : : : : : : : : : : : : : : : 226
14.4 Modes de distribution du courrier : : : : : : : : : : : : : : : : : : : : : 226
14.5 Options diverses du chier con g : : : : : : : : : : : : : : : : : : : : : 227
14.6 Routage et distribution : : : : : : : : : : : : : : : : : : : : : : : : : : 228
14.7 Routage des messages : : : : : : : : : : : : : : : : : : : : : : : : : : : 228
14.7.1 La base de donn
ees paths : : : : : : : : : : : : : : : : : : : : : 230
14.8 Gestion des adresses locales : : : : : : : : : : : : : : : : : : : : : : : : 231
14.8.1 Utilisateurs locaux : : : : : : : : : : : : : : : : : : : : : : : : : 232
14.8.2 Renvoi de courrier : : : : : : : : : : : : : : : : : : : : : : : : : 232
14.8.3 Les alias : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 233
14.8.4 Listes de di usion : : : : : : : : : : : : : : : : : : : : : : : : : 234
14.9 Transport par UUCP : : : : : : : : : : : : : : : : : : : : : : : : : : : : 234
14.10Transport par SMTP : : : : : : : : : : : : : : : : : : : : : : : : : : : : 235
xii TABLE DES MATI
ERES
14.11Quali cation de noms : : : : : : : : : : : : : : : : : : : : : : : : : : : 235
15 Sendmail+IDA 237
15.1 Introduction 
a Sendmail+IDA : : : : : : : : : : : : : : : : : : : : : : : 237
15.2 Aper
cu des chiers de con guration : : : : : : : : : : : : : : : : : : : 238
15.3 Le chier sendmail.cf : : : : : : : : : : : : : : : : : : : : : : : : : : : : 238
15.3.1 Exemple de chier sendmail.m4 : : : : : : : : : : : : : : : : : : 239
15.3.2 Param
etres couramment utilis
es dans sendmail.m4 : : : : : : : 239
15.4 Pr
esentation des tables de Sendmail+IDA : : : : : : : : : : : : : : : : 245
15.4.1 La table mailertable : : : : : : : : : : : : : : : : : : : : : : : : 245
15.4.2 La table uucpxtable : : : : : : : : : : : : : : : : : : : : : : : : : 246
15.4.3 La table pathtable : : : : : : : : : : : : : : : : : : : : : : : : : 247
15.4.4 La table domaintable : : : : : : : : : : : : : : : : : : : : : : : : 248
15.4.5 Le chier aliases : : : : : : : : : : : : : : : : : : : : : : : : : : 248
15.4.6 Tables rarement utilis
ees : : : : : : : : : : : : : : : : : : : : : : 249
15.5 Installation de sendmail : : : : : : : : : : : : : : : : : : : : : : : : : : 250
15.5.1 Extraction de la distribution binaire : : : : : : : : : : : : : : : 250
15.5.2 G
en
eration du chier sendmail.cf : : : : : : : : : : : : : : : : : 251
15.5.3 Tests du chier sendmail.cf : : : : : : : : : : : : : : : : : : : : 252
15.5.4 Tests d'int
egration de sendmail.cf et des tables : : : : : : : : : 254
15.6 Trucs et astuces du parfait petit administrateur : : : : : : : : : : : : : 256
15.6.1 Renvoyer le courrier 
a une machine relais : : : : : : : : : : : : 256
15.6.2 Forcer du courrier dans des sites mal con gur
es : : : : : : : : : 256
15.6.3 Forcer le courrier 
a partir par UUCP : : : : : : : : : : : : : : : 257
15.6.4 Emp^
echer le courrier de partir par UUCP : : : : : : : : : : : : 258
15.6.5 Vider sur demande la queue de Sendmail : : : : : : : : : : : : 258
15.6.6 Obtenir des statistiques sur le courrier trait
e : : : : : : : : : : 259
15.7 Coh
erence des distributions binaires : : : : : : : : : : : : : : : : : : : 259
15.8 Pour en savoir plus... : : : : : : : : : : : : : : : : : : : : : : : : : : : : 260
16 Les News Usenet 261
16.1 L'histoire de Usenet : : : : : : : : : : : : : : : : : : : : : : : : : : : : 261
TABLE DES MATI
ERES xiii
16.2 Mais qu'est-ce que Usenet? : : : : : : : : : : : : : : : : : : : : : : : : 262
16.3 Comment les News sont-elles g
er
ees sur Usenet? : : : : : : : : : : : : 263
17 C News 267
17.1 L'injection des articles : : : : : : : : : : : : : : : : : : : : : : : : : : : 267
17.2 Installation : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 268
17.3 Le chier sys : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 271
17.4 Le chier active : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 275
17.5 Le traitement par lots (batching) : : : : : : : : : : : : : : : : : : : : : 276
17.6 Expiration des News : : : : : : : : : : : : : : : : : : : : : : : : : : : : 279
17.7 Fichiers divers : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 281
17.8 Les messages de contr^
ole : : : : : : : : : : : : : : : : : : : : : : : : : : 283
17.8.1 Le message cancel : : : : : : : : : : : : : : : : : : : : : : : : : 283
17.8.2 Les messages newgroup et rmgroup : : : : : : : : : : : : : : : : 284
17.8.3 Le message checkgroups : : : : : : : : : : : : : : : : : : : : : : 284
17.8.4 Les messages sendsys, version et senduuname : : : : : : : : : : 285
17.9 C News dans un environnement NFS : : : : : : : : : : : : : : : : : : : 286
17.10Outils et travaux de maintenance : : : : : : : : : : : : : : : : : : : : : 287
18 Description du protocole NNTP 289
18.1 Installation du serveur NNTP : : : : : : : : : : : : : : : : : : : : : : : 291
18.2 Restreindre les acc
es NNTP : : : : : : : : : : : : : : : : : : : : : : : : 291
18.3 Authenti cation NNTP : : : : : : : : : : : : : : : : : : : : : : : : : : 293
18.4 Int
egration de nntpd dans C News : : : : : : : : : : : : : : : : : : : : 293
19 Les lecteurs de News 295
19.1 Con guration de tin : : : : : : : : : : : : : : : : : : : : : : : : : : : : 296
19.2 Con guration de trn : : : : : : : : : : : : : : : : : : : : : : : : : : : : 297
19.3 Con guration de nn : : : : : : : : : : : : : : : : : : : : : : : : : : : : 298
A C^
able port parall
ele pour PLIP 301
B Exemples de chiers de con guration pour smail 303
xiv TABLE DES MATI
ERES
C Licence Publique G
en
erale GNU 311
C.1 Pr
eambule : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 311
C.2 Stipulations et conditions pour copie, distribution et modi cation : : : 312
C.3 Comment appliquer ces directives : : : : : : : : : : : : : : : : : : : : : 317
D SAGE: La guilde des administrateurs syst
eme 319
Glossaire 321
Bibliographie comment
ee 329
Livres : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 329
Les (
( HOWTO )
) : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 333
Les (
( HOWTO )
), c'est quoi? : : : : : : : : : : : : : : : : : : : : : : : 333
Index des documents HOWTO : : : : : : : : : : : : : : : : : : : : : : 334
Les RFC : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 335
TABLE DES FIGURES xv
Table des gures
1.1 L'envoi d'un datagramme entre erdos et quark se fait en trois 
etapes. 9
2.1 Subdivision d'un r
eseau de classe B : : : : : : : : : : : : : : : : : : : 24
2.2 Une partie de la topologie du r
eseau 
a l'universit
e Groucho Marx. : : 26
2.3 Une partie de l'espace de nommage. : : : : : : : : : : : : : : : : : : : 30
2.4 Un extrait du chier named.hosts pour le D
epartement de Physique. : 35
2.5 Un extrait du chier named.hosts de l'universit
e Groucho Marx. : : : 36
2.6 Un extrait du chier named.rev du sous-r
eseau 12. : : : : : : : : : : : 37
2.7 Un extrait du chier named.rev du r
eseau 149.76. : : : : : : : : : : : 37
3.1 Les relations entre les interfaces, les pilotes et le mat
eriel. : : : : : : : 40
5.1 Les deux sous-r
eseaux des brasseurs et viticulteurs. : : : : : : : : : : 64
6.1 Exemple de chier host.conf. : : : : : : : : : : : : : : : : : : : : : : : 85
6.2 Le chier named.boot de la machine kro. : : : : : : : : : : : : : : : : : 89
6.3 Le chier named.ca. : : : : : : : : : : : : : : : : : : : : : : : : : : : : 96
6.4 Le chier named.hosts. : : : : : : : : : : : : : : : : : : : : : : : : : : 97
6.5 Le chier named.local. : : : : : : : : : : : : : : : : : : : : : : : : : : : 97
6.6 Le chier named.rev. : : : : : : : : : : : : : : : : : : : : : : : : : : : : 98
7.1 Un exemple de script pour le programme dip. : : : : : : : : : : : : : : 106
9.1 Un exemple de chier /etc/inetd.conf. : : : : : : : : : : : : : : : : : : 133
9.2 Exemple de chier /etc/services (extrait). : : : : : : : : : : : : : : : : 136
9.3 Exemple de chier /etc/protocols. : : : : : : : : : : : : : : : : : : : : 137
xvi TABLE DES FIGURES
9.4 Un extrait du chier /etc/rpc. : : : : : : : : : : : : : : : : : : : : : : 138
10.1 Exemple de chier nsswitch.conf. : : : : : : : : : : : : : : : : : : : : : 153
12.1 Interaction des chiers de con guration de Taylor UUCP. : : : : : : : 176
15.1 Exemple du chier de con guration gueuze.m4. : : : : : : : : : : : : : 240
15.2 Exemple de chier aliases. : : : : : : : : : : : : : : : : : : : : : : : : : 249
16.1 Circuit des News Usenet 
a l'universit
e Groucho Marx. : : : : : : : : : 264
17.1 Flux des News par relaynews. : : : : : : : : : : : : : : : : : : : : : : : 269
Pr
eface xvii
Pr
eface
Vous ^
etes sur le point de vous embarquer dans une fantastique aventure: vous allez
entrer dans le monde de Linux. Pour r
esumer, Linux vous rappellera l'esprit qui
r
egnait dans les premiers jours de la micro-informatique, o
u programmeurs g
eniaux
et bidouilleurs passionn
es passaient des nuits blanches avec un oscilloscope et un fer

a souder pour construire leur propre micro-ordinateur. Les temps ont chang
e, les
outils aussi; les d
ebogueurs ont remplac
e la soudure, mais l'
etat d'esprit est toujours
pr
esent. Linux est n
e de cette passion, et gr^
ace 
a lui vous disposez d'un syst
eme UNIX
pour votre micro-ordinateur, n'ayant rien 
a envier aux autres impl
ementations.
Malgr
e ses origines, Linux a 
evolu
e et n'est plus r
eserv
e aux programmeurs aver-
tis. Chaque jour, des milliers de personnes, de toute culture informatique, adoptent
ce syst
eme d'exploitation pour toutes sortes d'applications techniques, scienti ques,

educatives, et... bien s^
ur, pour le plaisir aussi.
Mais comment Linux a-t-il pu devenir aussi perfectionn
e et performant, aussi c
el
ebre
et appr
eci
e, sans ^
etre d
evelopp
e par une 
equipe de professionnels surpay
es? Le FBI
devrait-il ouvrir une enqu^
ete sur ce myst
ere? Que se cache-t-il l
a-dessous?
La coop
eration. Tout le secret est l
a. Linux est libre, dans tous les sens du terme.
Cette id
ee de libert
e, partag
ee par tous les programmeurs ayant r^
ev
e de poss
eder un
jour leur propre syst
eme UNIX, a permis de r
ealiser des miracles, chacun apportant sa
pierre 
a l'
edi ce. Demandez 
a n'importe quel d
eveloppeur pourquoi il passe des nuits
enti
eres 
a travailler sur les sources de Linux. Tous auront la m^
eme r
eponse: la passion
de programmer, et d'o rir le meilleur 
a la communaut
e, librement, sans contraintes.
Vous ne r
ealisez peut-^
etre pas qu'en utilisant Linux, vous contribuez 
a l'essor du
logiciel libre, dans le monde entier. Le libre acc
es aux programmes, avec la possibilit
e
de les modi er et de les distribuer sans restrictions, est consid
er
epar beaucoup comme
un droit fondamental de tout utilisateur d'ordinateur; au m^
eme titre que les droits de
l'homme, la libert
e, la recherche de plus gros disques durs, et le digestif apr
es le caf
e.
Le logiciel d
e nit comment sont utilis
ees les machines, le syst
eme d'exploitation en

etant le tout premier exemple. En choisissant un syst
eme, vous d
eterminez la mani
ere
dont votre ordinateur fonctionnera, depuis l'interface utilisateur jusqu'aux pilotes de
p
eriph
eriques.
xviii Pr
eface
Linux a l'
enorme avantage d'^
etre d
evelopp
e par, et pour ses utilisateurs. Le march
e du
logiciel n'a aucune in uence sur ses orientations: ce sont les besoins des utilisateurs
qui les d
e nissent. Cette situation est bien plus saine que de tenter de conqu
erir un
(
( march
e)
), ou de r
ealiser des pro ts. Cela ne convient sans doute pas 
a tout le monde,
mais tous ceux qui l'utilisent peuvent avoir une in uence sur son avenir. Pour tout
dire, Linux est votre syst
eme d'exploitation personnel, domestique, bien 
a vous. Ce
sera votre compagnon de tous les jours. Que trouver de mieux?
Power to the people. Linux is here.
Matt Welsh, coordinateur du groupe de documentation Linux, 9 novembre 1994.
1
Chapitre 1
Introduction aux r
eseaux
1.1 Historique
La notion de r
eseau est probablement aussi ancienne que le besoin de communiquer

a distance. Transportons-nous 
a l'^
age de pierre, et imaginons que les hommes s'en-
voyaient des messages en frappant sur des tambours ou autres instruments 
a percus-
sion. Supposons que l'homme des cavernes A veuille inviter son copain B pour jouer

a se lancer des cailloux, mais qu'ils habitent trop loin l'un de l'autre pour pouvoir
entendre leurs signaux sonores respectifs. Quelles sont les solutions possibles? Il pour-
rait 1) rendre visite 
a B, 2) prendre un tambour plus gros, ou 3) demander 
a C, qui
habite 
a mi-chemin, de faire passer le message. Cette derni
ere solution s'appelle un
r
eseau.
Bien s^
ur, nous avons parcouru un long chemin depuis les occupations primaires et les
p
eriph
eriques primitifs de nos lointains anc^
etres. De nos jours, nous poss
edons des
ordinateurs qui peuvent communiquer entre eux par l'interm
ediaire d'une vaste toile
d'araign
ee de c^
ables, bres optiques, micro-ondes ou bien d'autres solutions de haute
technologie, a n de pouvoir prendre rendez-vous pour le match de football de samedi
prochain1. Dans la description qui va suivre, nous verrons les moyens et m
ethodes
mis en uvre, mais nous laisserons de c^
ot
e les c^
ables et la manifestation sportive.
Nous aborderons deux types de r
eseaux dans ce guide: ceux bas
es sur UUCP et
ceux bas
es sur TCP/IP. Ce sont des ensembles de protocoles et de programmes qui
permettent de transf
erer des donn
ees entre deux ordinateurs. Dans ce chapitre, nous
verrons les principes de base de chacun de ces r
eseaux.
Nous d
e nissons un r
eseau comme 
etant un ensemble d'h^
otes capables de communi-
quer entre eux, souvent en s'appuyant sur les services d'un certain nombre d'autres
h^
otes sp
ecialis
es qui relayent les donn
ees entre les participants. Ces h^
otes sont tr
es
1: Dont l'esprit original (voir ci-dessus) appara^
t encore de temps en temps en Europe.
2 Chapitre 1. Introduction aux r
eseaux
souvent des ordinateurs, mais ce n'est pas obligatoire; ce peut ^
etre tout aussi bien
des terminaux X ou des imprimantes intelligentes. Les petits ensembles d'h^
otes sont
appel
es sites.
Toute communication est impossible sans le truchement de quelque sorte de langage,
ou de code. Dans le monde des r
eseauxd'ordinateurs,ces codes sont appel
esprotocoles.
Toutefois, n'associez pas cette notion aux divers langages
ecrits, mais plut^
ot aux codes
bien pr
ecis d
e nissant le comportement 
a adopter lors de rencontres ocielles entre
chefs d'
Etats, par exemple. Les protocoles utilis
es dans les r
eseaux informatiques ne
sont pas autre chose que des r
egles tr
es strictes lors de l'
echange de messages entre
plusieurs h^
otes.
1.2 R
eseaux UUCP
UUCP est l'abr
eviation de UNIX-to-UNIX Copy. C'
etait 
a l'origine un ensemble de
programmes destin
es 
a transf
erer des chiers par des lignes de communication s
erie,
plani er ces transferts, et lancer l'ex
ecution de programmes sur les sites distants. Il a
subi de profondes modi cations vers la n des ann
ees 70, mais reste toujours spartiate
quant aux services o erts. Son application principale r
eside encore dans les r
eseaux 
a
longue distance b^
atis sur des liaisons t
el
ephoniques.
UUCP fut cr
e
e aux laboratoires Bell en 1977, pour permettre 
a leurs di 
erents sites de
d
eveloppement UNIX de communiquer. Vers le milieu de l'ann
ee 1978, ce r
eseau reliait
d
ej
a pr
es de 80 sites, autorisant le courrier
electronique et l'impression 
a distance, bien
que sa plus grande utilisation f^
ut alors la distribution de nouveaux programmes et de
corrections de bogues. Aujourd'hui, UUCP n'est plus con n
e dans l'environnement
UNIX: il en existe des impl
ementations, libres ou commerciales, pour une grande
vari
et
e de plates-formes, dont AmigaOS, DOS, le TOS Atari, etc.
Le plus gros inconv
enient des r
eseaux UUCP est leur faible bande passante: d'une
part, l'
equipement t
el
ephonique limite la vitesse de la liaison 
a des valeurs assez
faibles; et d'autre part, il s'agit rarement de connexions permanentes, chaque h^
ote
appelant ses correspondants 
a intervalles r
eguliers. Par cons
equent, chaque fois qu'un
courrier doit traverser un r
eseau UUCP, il reste bloqu
e sur le disque dur de chaque
machine en attendant que la prochaine connexion soit 
etablie.
Malgr
e ces limitations, il existe encore de nombreux r
eseaux UUCP en fonctionnement
dans le monde entier, exploit
es principalement par des amateurs, qui permettent 
a des
particuliers d'obtenir un service pour un prix raisonnable. La raison principale de la
popularit
e d'UUCP, est son prix d
erisoire en comparaison d'une connexion au (
( gros
c^
able Internet )
) : il sut d'un modem, d'une impl
ementation correcte du protocole,
et d'un autre site UUCP vous fournissant le courrier et les News Usenet pour ne plus
^
etre isol
e du monde.
1.2. R
eseaux UUCP 3
1.2.1 Comment utiliser UUCP
Le principe d'UUCP est tr
es simple: comme son nom l'indique, il copie des chiers
d'une machine vers une autre, mais il permet 
egalement d'e ectuer certaines actions
sur le site distant.
Supposons que votre machine poss
ede un acc
es 
a un h^
ote hypoth
etique appel
e renux,
et que vous vouliez qu'il ex
ecute la commande d'impression lpr pour vous. Vous pouvez
taper la commande suivante pour imprimer ce livre sur renux2 :
$ uux -r renux!lpr !netguide.dvi
Cela fera que le programme uux, une commande de l'ensemble UUCP, plani era un job
pour le site renux. Ce job consistera 
a prendre le chier netguide.dvi et le passer au
programme lpr. L'option -r indique 
a uux de ne pas appeler imm
ediatement le syst
eme
distant, mais de stocker cette requ^
ete jusqu'
a ce qu'une connexion soit 
etablie. Cela
s'appelle spouler3.
UUCP permet aussi de transmettre commandes et chiers 
a travers plusieurs h^
otes,

a condition que ces derniers l'autorisent. Supposons que renux soit en liaison UUCP
avec groucho, qui archive de nombreuses applications UNIX. Pour t
el
echarger le
chier tripwire-1.0.tar.gz vers votre site, vous taperiez la commande:
$ uucp -mr renux!groucho!~/security/tripwire-1.0.tar.gz trip.tgz
Le job cr
e
e ici demandera 
a renux de r
ecup
erer le chier sur la machine groucho
et de l'envoyer 
a votre site, o
u votre UUCP le recevra sous le nom trip.tgz; puis
vous avertira par courrier de son arriv
ee. Cette op
eration s'e ectuera en trois 
etapes.
Tout d'abord, votre site envoie le job 
a renux. La prochaine fois que renux 
etablira
le contact avec groucho, il t
el
echargera le chier. En n, la derni
ere 
etape sera le
transfert entre renux et votre machine.
De nos jours, la principale activit
e des r
eseaux UUCP consiste 
a transf
erer le courrier

electronique et les News Usenet.
Le courrier 
electronique (E-mail en abr
eg
e) permet d'
echanger des messages entre
utilisateurs de sites distants, sans se pr
eoccuper de savoir comment se connecter sur
ces h^
otes. Le travail de routage entre votre machine et le site distant est enti
erement
r
ealis
e par le syst
eme de courrier 
electronique. Dans un environnement UUCP, les
messages sont g
en
eralement transport
es en ex
ecutant la commande rmail sur un h^
ote
voisin, en passant l'adresse du destinataire et le contenu du courrier. Le programme
rmail transmettra 
a son tour les donn
ees 
a un autre site, et ainsi de suite jusqu'
a
ce qu'il atteigne la machine de destination. Nous reviendrons l
a-dessus plus en d
etail
dans le chapitre 13.
2: Si vous utilisez bash, le GNU Bourne Again Shell, ou tout autre shell moderne, vous devrez
encoder le point d'exclamation par une s
equence d'
echappement car c'est le caract
ere d'historique.
3: Nous sommes d
esol
es, il s'agit bien de l'expression 
a utiliser en fran
cais pour le spooling...
4 Chapitre 1. Introduction aux r
eseaux
Les (
( News )
) peuvent ^
etre d
ecrites comme un genre de messageries BBS4 distribu
ees.
Ce terme d
esigne le plus souvent les News Usenet, qui constituent le plus grand r
eseau
d'
echange de messages au monde, avec un nombre de sites connect
es estim
e 
a 120000.
Les origines de Usenet remontent 
a 1979, o
u apr
es l'introduction d'UUCP avec le
nouvel UNIX V7, trois 
etudiants imagin
erent un syst
eme d'
echange d'informations
au sein de la communaut
e UNIX. Ils 
ecrivirent quelques scripts, qui form
erent le tout
premier syst
eme de News. En 1980, ce r
eseau 
etait form
e de trois sites; duke, unc
et phs, entre deux universit
es de Caroline du Nord. Et Usenet grandit 
a partir de l
a.
Bien que con
cu 
a l'origine autour de UUCP, de nos jours Usenet n'est plus transport
e
par ce seul type de r
eseau.
L'unit
e d'information est l'article, qui peut ^
etre post
e dans une hi
erarchie de forums,
ou newsgroups, dont le d
ebit peut atteindre, 
a l'heure o
u nous 
ecrivons ces lignes, plus
de 100 m
egaoctets par jour.
Dans le monde UUCP, les News sont en g
en
eral transf
er
ees par paquets, en rassem-
blant tous les articles des forums demand
es dans un certain nombre de batches. Le
site r
ecepteur passe ces chiers au programme rnews, qui les d
ecompacte et assure le
traitement n
ecessaire.
En n, UUCP est 
egalement un protocole de choix pour de nombreux sites d'archivage
qui o rent un acc
es public par ligne t
el
ephonique ordinaire. On peut g
en
eralement
s'y connecter en les appelant par UUCP, sous un nom d'utilisateur invit
e, comme
guest, nuucp ou encore uucp, pour t
el
echarger les chiers publics. Les mots de
passe courants pour ce type d'acc
es sont souvent simplement uucp, nuucp, parfois
m^
eme aucun mot de passe n'est n
ecessaire.
1.3 R
eseaux TCP/IP
Bien qu'UUCP puisse ^
etre un choix raisonnable pour des liaisons t
el
ephoniques 
a
faible co^
ut, il est de nombreuses situations o
u sa technique de routage des informations
s'av
ere trop rigide, inadapt
ee; c'est le cas par exemple dans les r
eseaux locaux, ou
LAN5. Ceux-ci sont en g
en
eral constitu
es d'un petit nombre de machines situ
ees dans
le m^
eme b^
atiment, voireau m^
eme
etage,interconnect
eesa n d'o rir un environnement
de travail 
etendu, puissant et homog
ene. Des exemples typiques sont le partage de
chiers entre les di 
erents h^
otes, ou l'ex
ecution d'applications partag
eessur di 
erentes
machines.
Ce type d'utilisation n
ecessite une approche totalement di 
erente du fonctionnement
en r
eseau. Au lieu de transf
ererdes chiers entiers associ
es 
a la description des t^
aches 
a
ex
ecuter, toutes les donn
ees sont tron
conn
ees en petits morceaux (paquets), qui sont
imm
ediatement exp
edi
es 
a l'h^
ote destinataire, qui les r
eassemble 
a l'arriv
ee. Cette
4: Les BBS, ou Bulletin Board System, appel
es 
egalement babillards au Qu
ebec, sont des serveurs
proposant di 
erents forums de messageries, ou conf
erences, dans lesquels les utilisateurs d
ebattent
par 
ecrit de sujets divers.
5: LAN: Local Area Network.
1.3. R
eseaux TCP/IP 5
m
ethode s'appelle un r
eseau 
a commutation de paquets. Entre autres choses, cela
permet d'utiliser des applications interactives 
a travers le r
eseau; le prix 
a payer est,
bien entendu, une plus grande complexit
e du code mis en uvre.
La solution adopt
ee sur les syst
emes UNIX (et beaucoup d'autres sites non UNIX)
est connue sous le nom de TCP/IP. Nous allons voir de quoi il retourne.
1.3.1 Introduction aux r
eseaux TCP/IP
TCP/IP est n
e d'un projet de recherche au sein du United States Defense Advanced
Research Projects Agency (DARPA), en 1969. Le r
eseau exp
erimental ARPANET
devint op
erationnel en 1975, apr
es avoir prouv
e son succ
es.
En 1983, la nouvelle suite de protocoles TCP/IP fut adopt
ee comme standard, et
tous les h^
otes du r
eseau durent alors l'utiliser. Lorsque ARPANET nit par gran-
dir et se transformer en Internet (ARPANET en lui-m^
eme ayant cess
e d'exister en
1990), l'usage de TCP/IP s'
etait d
ej
a 
etendu bien au-del
a de ce seul Internet. Les r
e-
seaux locaux UNIX en sont l'exemple notoire, mais l'av
enement des communications
t
el
ephoniques num
eriques telles qu'ISDN6, lui promet l
a aussi un bel avenir.
Pour prendre un exemple concret tout au long des explications qui vont suivre, nous
imaginerons l'universit
e Groucho Marx (UGM), situ
ee quelque part au pays de Fred-
land. La plupart des laboratoires ont leur propre r
eseau local, d'autres en ont un en
commun et certains en comptent plusieurs. Ils sont tous interconnect
es et reli
es 
a
l'Internet par une unique ligne 
a haut d
ebit.
Supposons que votre syst
eme Linux s'appelle erdos et soit connect
e au r
eseau local
de machines UNIX du D
epartement de Math
ematiques. Pour acc
eder 
a un h^
ote du
D
epartement de Physique, disons quark, vous taperez la commande suivante:
$ rlogin quark.physics
- Universite Groucho Marx -
Bienvenue au departement physique
(ttyq2) login:

A l'invite login, vous entrez alors votre nom d'utilisateur, par exemple dugenou,
puis votre mot de passe. Vous obtenez alors un shell sur la machine quark, exactement
comme si vous 
etiez devant la console de cet ordinateur. Votre travail termin
e, en sor-
tant de ce shell vous revenez 
a l'invite de votre propre machine. Vous venez d'utiliser
l'une des applications interactives instantan
ees o ertes par TCP/IP: le login distant.
Lors de votre session sur quark, vous pouvez avoir besoin d'utiliser une application
graphique sous X Window, par exemple un pr
evisualiseurPostScript. Vous devez alors
indiquer 
a ce programme que ses fen^
etres doivent s'acher sur votre 
ecran, et non sur
6: ISDN correspond 
a l'
etranger 
a ce que nous appelons RNIS en France (r
eseau num
erique 
a
int
egration de services), commercialis
e sous le nom de NUM
ERIS.
6 Chapitre 1. Introduction aux r
eseaux
celui de la machine sur laquelle il s'ex
ecute. Cela se fait en positionnant la variable
d'environnement DISPLAY:
$ export DISPLAY=erdos.maths:0.0
Si maintenant vous lancez votre application, elle contactera votre serveur X au lieu de
celui de quark, et tout s'achera sur votre propre
ecran. Bien s^
ur, il va de soi que vous
devez d
ej
a travailler sous X11 sur votre machine erdos. En r
ealit
e, TCP/IP permet

a quark et erdos de s'
echanger les paquets X11 a n de vous donner l'illusion d'^
etre
sur un syst
eme unique. Vous constatez ici que le r
eseau est totalement transparent.
Une autre application tr
es importante rendue possible par TCP/IP s'appelle NFS,
Network File System (syst
eme de chiers par r
eseau). Il s'agit d'une autre mani
ere
de rendre le r
eseau transparent, qui vous permet litt
eralement de monter des hi
erar-
chies de r
epertoires depuis d'autres h^
otes, de telle mani
ere qu'elles vous apparaissent
comme des syst
emes de chiers locaux. Par exemple, tous les r
epertoires personnels
des utilisateurs peuvent ^
etre situ
es sur un serveur central depuis lequel chaque h^
ote
du r
eseau monte cette arborescence. Le r
esultat est que chaque utilisateur peut em-
ployer n'importe quelle machine en se retrouvant, quoi qu'il arrive, dans le m^
eme
r
epertoire. De m^
eme, il est possible de n'installer des applications tr
es gourmandes
en place disque (comme TEX) que sur un seul ordinateur et d'exporter ces r
epertoires
pour que les autres h^
otes puissent s'en servir. Nous reviendrons plus en d
etail sur
NFS dans le chapitre 11.
Bien s^
ur, ce ne sont que quelques exemples simples de ce que vous pouvez r
ealiser
gr^
ace aux r
eseaux TCP/IP; leurs possibilit
es ne sont limit
ees que par l'imagination.
Nous allons maintenant regarder d'un peu plus pr
es le fonctionnement de TCP/IP.
Vous comprendrez ainsi comment et pourquoi con gurer votre machine. Nous com-
mencerons par l'
equipement mat
eriel n
ecessaire, et petit 
a petit nous guiderons vos
premiers pas.
1.3.2 Ethernet
L'
equipement mat
eriel le plus utilis
e pour la r
ealisation de r
eseaux locaux est ce que
l'on appelle l'Ethernet. Il consiste en un simple c^
able coaxial, sur lequel est connect
e
chaque h^
ote par l'interm
ediaire de connecteurs, ou de bo^
tiers 
electroniques nomm
es
transceivers. Les r
eseaux Ethernet sont extr^
emement peu co^
uteux et simples 
a instal-
ler, et leur vitesse de transfert 
etant de 10 m
egabits par seconde, ils rencontrent un
succ
es toujours grandissant.
Il existe trois cat
egories d'Ethernet: n, gros, et paire torsad
ee. Les deux premiers
utilisent un c^
able coaxial, qui di 
ere dans sa taille et la mani
ere de s'y connecter.
L'Ethernet n utilise des connecteurs (
( BNC )
) en (
( T )
), que vous pouvez ins
erer au
milieu du c^
able r
eseau et brancher sur la prise pr
evue 
a cet e et 
a l'arri
ere de l'ordi-
nateur. Le gros Ethernet s'utilise en faisant un petit trou dans le c^
able et en connec-
tant un transceiver par l'interm
ediaire d'une (
( pince vampire )
). Ces bo^
tiers peuvent
1.3. R
eseaux TCP/IP 7
supporter un ou plusieurs h^
otes. Ces deux variantes supportent respectivement des
distances d'utilisation de 200 et 500 m
etres, d'o
u leurs d
enominations: 10base-2 et
10base-5. La paire torsad
ee utilise deux ls de cuivre ordinaires et n
ecessite un bo^
tier
additionnel appel
e hub; elle est connue sous le nom de 10base-T.
Bien que rajouter un h^
ote sur un c^
able Ethernet n soit un peu g^
enant, cela n'ar-
r^
ete pas le r
eseau: le service est juste interrompu pendant un moment tr
es court, le
temps de couper le c^
able (en d
ebranchant une prise s'il est bien con
cu) a n d'ins
e-
rer le connecteur n
ecessaire. Cette op
eration ne prend que quelques secondes, au pis
quelques minutes.
La majorit
e des utilisateurs pr
ef
erent l'Ethernet n pour des raisons 
economiques;
on trouve des cartes pour PC 
a partir de 300 francs et le c^
able ne co^
ute que quelques
dizaines de centimes le m
etre. Toutefois, pour de grosses installations, le gros Ethernet
est beaucoup plus appropri
e; il n'est par exemple pas n
ecessaired'interrompre le tra c
quelques secondes pour connecter une nouvelle machine sur le r
eseau.
La longueur de c^
able maximale est l'un des principaux inconv
enients de la technologie
Ethernet. Toutefois, on peut relier plusieurs segments par l'interm
ediaire de r
ep
eteurs,
ponts ou routeurs. Les r
ep
eteurs copient simplement les signaux entre plusieurs tron-

cons a n qu'ils apparaissent comme un unique c^
able Ethernet. En raison de la vitesse
n
ecessaire, il ne peut pas y avoir plus de quatre r
ep
eteursentre deux h^
otes quelconques
du r
eseau. Les ponts et routeurs sont beaucoup plus sophistiqu
es: ils analysent les
donn
ees re
cues et ne les retransmettent que lorsque la machine destinataire n'est pas
situ
ee sur l'Ethernet local.
L'Ethernet se comporte comme un bus, o
u chaque h^
ote peut envoyer des paquets
(ou trames) pouvant atteindre 1500 octets vers une autre machine du m^
eme r
eseau.
Chaque ordinateur poss
ede une adresse unique au monde form
ee de 6 octets, inscrite
dans la carte Ethernet lors de sa fabrication. Ces adresses sont g
en
eralement ach
ees
comme une s
equence de nombres hexad
ecimaux sur deux digits, s
epar
es par un deux-
points, comme aa:bb:cc:dd:ee: .
Une trame envoy
ee par une station est vue par toutes les autres, mais seule la machine
destinataire l'extrait et l'utilise. Si deux h^
otes tentent d'envoyer un paquet au m^
eme
moment, il se produit une collision, dans ce cas les deux machines abandonnent l'envoi
et recommencent quelques instants plus tard.
1.3.3 Autres types de mat
eriel
Dans les tr
es grosses installations r
eseau, l'Ethernet n'est g
en
eralement pas le seul
support utilis
e. 
A l'universit
e Groucho Marx, chaque r
eseau local est reli
e 
a la dorsale
du campus (backbone), qui est une bre optique utilisant FDDI (Fiber Distributed
Data Interface). FDDI utilise une approche totalement di 
erente pour transmettre les
donn
ees, qui consiste 
a di user un certain nombre de jetons, chaque station n'
etant
alors autoris
ee 
a 
emettre une trame que si elle capture un jeton. Le principal avantage
de FDDI est la vitesse, pouvant atteindre 100 Mbps, ainsi qu'une longueur de c^
able
8 Chapitre 1. Introduction aux r
eseaux
allant jusqu'
a 200 km.
Pour de tr
es longues distances, on utilise fr
equemment un autre type de transport,
bas
e sur un standard appel
e X.25. Beaucoup de r
eseaux utilisent ou o rent ce service;
on peut citer Tymnet aux 
Etats-Unis, Datex-P en Allemagne, ou Transpac en France.
X.25 n
ecessite un 
equipement sp
ecial appel
e PAD (Assembleur/D
esassembleur de
paquets). X.25 d
e nit un ensemble de protocoles qui lui sont propres, mais qui sont
n
eanmoins utilis
es couramment pour relier des r
eseaux utilisant TCP/IP ou tout
autre protocole. Comme les trames IP ne peuvent pas ^
etre converties de fa
con simple
en paquets X.25, la m
ethode employ
ee est l'encapsulation. Chaque paquet IP est
encapsul
e dans une trame X.25 et envoy
e sur le r
eseau.
Tr
es souvent, les radio-amateurs utilisent leur 
equipement pour relier leurs machines
en r
eseau par ondes hertziennes; il s'agit du packet radio (ou ham radio). Le protocole
utilis
e s'appelle AX.25, et est d
eriv
e de X.25.
D'autres techniques mettent en uvre des liaisons s
eries lentes mais tr
es 
economiques
pour acc
eder au r
eseau par ligne t
el
ephonique. L
a encore, d'autres protocoles de trans-
mission de paquets sont employ
es, comme SLIP ou PPP, que nous d
ecrirons plus loin.
1.3.4 Le protocole Internet
Bien s^
ur, vous ne voudriez pas d'un r
eseau limit
e 
a un simple brin d'Ethernet. L'id
eal
serait que vous puissiez vous connecter partout, quel que soit le mat
eriel utilis
e ou
le nombre de sous-r
eseaux composant l'installation. L'universit
e Groucho Marx par
exemple, poss
ede plusieurs r
eseaux locaux interconnect
es. Le D
epartement de Math
e-
matiques en a deux: le premier reliant les ordinateurs puissants pour les enseignants
et chercheurs, le second, plus lent et moins bien 
equip
e, destin
e aux 
etudiants. Tous
deux sont reli
es 
a la dorsale FDDI du campus.
Cette connexion est g
er
ee par un h^
ote d
edi
e que l'on appelle alors passerelle; son r^
ole
est de copier les paquets entrants et sortants entre les r
eseaux Ethernet et la bre
optique de l'universit
e. Par exemple, si vous ^
etes au D
epartement Math
ematiques et
que vous d
esirez acc
eder 
a la machine quark du D
epartement de Physique depuis
votre syst
eme Linux, les programmes r
eseau ne peuvent pas envoyer directement les
paquets 
a destination car quark n'est pas sur le m^
eme Ethernet. Les paquets seront
donc envoy
es 
a la passerelle qui fera le relais. Celle-ci (appelons-l
a sophus) passera
les trames 
a la passerelle du D
epartement de Physique (niels) par l'interm
ediaire de
la dorsale, et niels les d
elivrera 
a la machine destinataire. Le parcours des donn
ees
entre erdos et quark est montr
e dans la gure 1.1.
Cette fa
con de diriger les donn
ees vers leur destination s'appelle le routage, et dans
ce contexte, les paquets sont souvent appel
es datagrammes. Pour simpli er les choses,
l'
echange des datagrammes est g
er
e par un unique protocole ind
ependant du mat
eriel
utilis
e: IP, ou Internet Protocol. Nous d
ecrirons plus en d
etail IP et le routage dans
le chapitre 2, page 19.
1.3. R
eseaux TCP/IP 9
quark
niels
2
sophus
erdos
R
eseau Ethernet du
D
epartement de Physique D
epartement Math
ematiques
R
eseau Ethernet du
Dorsale bre optique du campus
1
3
Fig. 1.1 - L'envoi d'un datagramme entre erdos et quark se fait en trois 
etapes.
10 Chapitre 1. Introduction aux r
eseaux
Le b
en
e ce apport
e par IP est de faire appara^
tre des r
eseaux physiquement di 
erents
en un seul r
eseau homog
ene. Cela se nomme l'interconnexion de r
eseaux, et le (
( m
eta-
r
eseau )
) r
esultant est appel
e un internet. Notez bien la subtilit
e entre un internet et
l' Internet. Ce dernier terme est le nom ociel d'un internet mondial particulier.
Bien s^
ur, IP n
ecessite aussi une m
ethode d'adressage ind
ependante du mat
eriel. Pour
ce faire, on assigne 
a chaque h^
ote un nombre unique sur 32 bits, appel
e l'adresse IP.
Une adresse IP est g
en
eralement not
ee sous la forme de quatre nombres d
ecimaux, un
pour chaque portion de 8 bits, s
epar
es par des points. Par exemple, quark pourrait
avoir une adresse IP de 0x954C0C04, qui serait alors 
ecrite 149.76.12.4; ce format
est connu sous le nom 
evident de notation sur 4 octets, vous verrez aussi tr
es souvent
l'appellation anglaise dotted quad.
Vous noterez que nous avonsmaintenant trois types d'adresses di 
erents: tout d'abord
le nom d'h^
ote, comme quark, puis les adresses IP, et en n les adresses mat
erielles, les
6 octets de l'interface Ethernet. Toutes doivent ^
etre li
ees, de sorte que lorsque vous
tapez rlogin quark, la partie logicielle du r
eseau puisse obtenir l'adresse IP de quark;
et quand IP d
elivre des donn
ees 
a l'Ethernet du D
epartement de Physique, il puisse
d
eterminer 
a quelle adresse mat
erielle correspond cette adresse IP.
Nous verrons comment tout cela est r
ealis
e dans le chapitre 2. Pour l'instant, il vous
sura de savoir que ces 
etapes se nomment la r
esolution de noms, pour ce qui est de
faire correspondre les noms d'h^
otes en adresses IP, et r
esolution d'adresses, pour la
correspondance de cette derni
ere en adresse mat
erielle.
1.3.5 IP sur lignes s
erie
Sur des liaisons s
erie, on utilise fr
equemment un standard (
( de fait)
) connu sous le nom
de SLIP, Serial Line IP. CSLIP (Compressed SLIP) en est une am
elioration; il e ectue
une compression des en-t^
etes IP pour tirer un meilleur parti du d
ebit relativement
faible o ert par une ligne s
erie7. PPP, ou Point-to-Point Protocol, est un protocole
di 
erent destin
e au m^
eme usage; il est plus 
evolu
e que SLIP. Son principal avantage
est de ne pas ^
etre limit
e au transport de datagrammes IP, car il a 
et
e con
cu pour
transporter tout type de paquets.
1.3.6 Le protocole TCP
Mais pouvoir envoyer des paquets d'une machine 
a l'autre n'est pas tout. Si vous vous
connectez sur quark, vous aurez besoin d'une connexion able entre votre processus
rlogin sur erdos et le shell lanc
e sur quark. Par cons
equent, les informations envoy
ees
et re
cues devront ^
etre tron
conn
ees en paquets par l'
emetteur, et r
eassembl
ees en un
ux de caract
eres par le r
ecepteur. Bien que paraissant tr
es simple, cette op
eration
entra^
ne un certain nombre de t^
aches complexes.
7: SLIP est d
ecrit dans le RFC 1055, et CSLIP dans le RFC 1144.
1.3. R
eseaux TCP/IP 11
Il est tr
es important de savoir que IP, par conception, n'est pas un protocole able.
Supposons que dix personnes, sur votre r
eseau Ethernet, soient en train de t
el
echarger
la derni
ere version de XFree86 depuis le serveur ftp de GMU. Le tra c g
en
er
e peut
alors devenir trop important pour la passerelle, si elle est trop lente ou manque de
m
emoire. Si 
a ce moment, vous envoyez un paquet 
a destination de quark, sophus
pourrait se trouver 
a cours de ressources pendant quelques instants et ne pas pouvoir
traiter vos donn
ees. IP r
esout ce probl
eme d'une fa
con tr
es simple: il
elimine le paquet,
qui est irr
em
ediablementperdu. Par cons
equent, la responsabilit
e de v
eri er l'int
egrit
e
des donn
ees transmises, et de les retransmettre en cas d'erreur est celle des h^
otes en
communication.
Ce r^
ole est assur
e par un autre protocole: TCP, ou Transmission Control Protocol, qui
cr
ee un service able par-dessusIP, en prenant en charge le contr^
ole de la transmission.
La propri
et
e la plus importante de TCP est d'utiliser IP a n de donner l'illusion d'une
simple connexion entre les deux processus distants, de mani
ere 
a ce qu'il n'y ait pas 
a
se pr
eoccuper du routage des donn
ees. Une connexion TCP fonctionne un peu comme
un tube bidirectionnel dans lequel chaque programme peut lire et 
ecrire. Vous pouvez
l'imaginer comme une conversation t
el
ephonique, par exemple.
TCP identi e chaque bout d'une telle connexion par les adresses IP des h^
otes concer-
n
es, et un num
ero de port sur chacun d'eux. Les ports peuvent ^
etre vus comme des
points d'attache pour les connexions r
eseau. En prenant encore une fois le t
el
ephone
comme exemple, on pourrait comparerles adresses IP aux codes r
egionaux(un num
ero
par ville), et les ports aux num
eros individuels (un num
ero par abonn
e)8.
Dans notre exemple de rlogin, l'application cliente (rlogin) ouvre un port sur erdos
et se connecte au port 513 du syst
eme quark, dont le serveur rlogind est 
a l'
ecoute.
Il s'
etablit alors une connexion TCP. Par l'interm
ediaire de cette connexion, rlogind
e ectue la proc
edure d'autorisation d'acc
es, puis lance l'ex
ecution du shell. L'entr
ee
et la sortie standard de ce dernier sont redirig
ees vers la connexion TCP de sorte
que tout ce que vous tapez sur votre machine dans rlogin soit envoy
e au ux TCP et
aboutisse 
a l'entr
ee standard du shell distant.
1.3.7 Le protocole UDP
Bien s^
ur, TCP n'est pas le seul protocole utilisateur sur un r
eseau TCP/IP. Bien que
parfait pour des utilisations comme rlogin, la surcharge induite le rend peu ecace
pour des applications comme NFS, qui utilise plut^
ot le protocole UDP, ou User Data-
gram Protocol. Tout comme TCP, il permet 
a un programme de contacter un service
sur un port donn
e de la machine distante, mais il n'
etablit aucune connexion. UDP
est utilis
e pour envoyer simplement des paquets, d'o
u son nom.
Supposons que vous ayez mont
e le r
epertoire TEX de galois, le serveur NFS central
du d
epartement, et que vous d
esiriez voir un document d
ecrivant le mode d'emploi de
L
aTEX. Vous appelez votre
editeur de texte, qui commence par lire la totalit
e du chier.
8: La num
erotation t
el
ephonique est faite di 
eremment en France.
12 Chapitre 1. Introduction aux r
eseaux
Toutefois, 
etablir une connexion TCP avec galois, envoyer le chier, puis d
econnecter
prendrait bien trop de temps. 
A la place, une requ^
ete est envoy
ee 
a galois, qui envoie
alors le chier dans deux ou trois paquets UDP, ce qui est bien plus rapide. Mais UDP
n'est pas con
cu pour g
erer la perte ou la corruption des donn
ees; c'est 
a l'application,
NFS dans le cas pr
esent, de prendre en charge ces probl
emes 
eventuels.
1.3.8 Les ports
Les ports sont, en quelque sorte, des points d'attache logiciels pour les connexions
r
eseau. Si une application d
esire o rir un certain service, elle s'attache 
a un port
et attend les clients (on dit aussi qu'elle 
ecoute le port). Un client voulant utiliser
ce service alloue alors un port sur sa machine locale, puis se connecte 
a celui de
l'application serveur sur le syst
eme distant.
Une fois qu'une connexion est 
etablie entre le client et le serveur, une des caract
e-
ristiques importantes des ports est qu'une autre copie du serveur peut s'y attacher
et continuer ainsi l'
ecoute dans l'attente d'autres clients. Cela permet par exemple,
plusieurs sessions rlogin concurrentes sur la m^
eme machine distante, toutes utilisant le
port 513. TCP est capable de di 
erencier les connexions car elles proviennent toutes
de di 
erents ports ou h^
otes. Par exemple, si vous avez deux rlogin sur quark depuis
erdos, le premier client utilisera le port local 1023, et le second le 1022. Tous deux
se connecteront n
eanmoins au m^
eme port 513 sur quark.
Cet exemple montre l'utilisation des ports en tant que points de rencontre, o
u les
serveurs donnent rendez-vous aux clients d
esirant un service particulier. A n que
ces clients sachent quel num
ero de port contacter, les administrateurs des di 
erents
syst
emes connect
es doivent se mettre d'accord sur leur assignation. En ce qui concerne
les services les plus couramment utilis
es, comme rlogin, ces num
eros doivent ^
etre
administr
es de mani
ere centrale: c'est le r^
ole de l'IETF (Internet Engineering Task
Force), qui publie r
eguli
erement un RFC intitul
e Assigned Numbers. Ce document
d
ecrit, entre autres choses, les num
eros de port assign
es aux services les plus connus
utilis
es mondialement. Linux utilise, comme beaucoup d'autres syst
emes, un chier
nomm
e /etc/services, qui contient la correspondance entre les noms de ces services et
les num
eros de ports qui leur sont associ
es.
Bien que les connexions TCP et UDP se basent sur les ports, il faut noter que ces
num
eros n'entrent pas en con it. Comprenez par l
a que le port TCP 513, par exemple,
est di 
erent du port UDP 513: ils correspondent en pratique 
a rlogin (TCP) et rwho
(UDP).
1.3.9 Les sockets
Dans les syst
emes d'exploitation UNIX, la partie logicielle responsable des t^
aches et
des protocoles que nous venons de d
ecrire succinctement fait g
en
eralement partie du
noyau; Linux ne fait pas exception 
a la r
egle. L'interface de programmation r
eseau
1.4. Le r
eseau sous Linux 13
la plus courante dans le monde UNIX est la biblioth
eque de sockets de Berkeley. Ce
nom, qui dans un contexte technique signi e (
( prise )
), ou (
( connecteur )
) en anglais,
provient de l'analogie courante faite entre les ports et des prises, sur lesquels on vient
se (
( brancher )
) pour r
ealiser la connexion. Cette biblioth
eque o re la fonction bind
pour sp
eci er un h^
ote distant, un protocole de transport, et un service auquel un
programme peut se connecter ou bien 
ecouter (gr^
ace aux fonctions connect, listen et
accept). Elle est assez g
en
eraliste, en ce sens qu'elle contient non seulement une classe
de sockets TCP/IP (AF INET), mais 
egalement une classe qui permet les connexions
locales 
a la machine (les sockets AF UNIX). Quelques impl
ementations comportent
m^
eme d'autres classes, comme le protocole XNS (Xerox Networking System) ou X.25.
Sous Linux, la biblioth
eque de sockets est partie int
egrante de la biblioth
eque C
standard, libc. 
A l'heure actuelle, elle ne supporte que AF INET et AF UNIX, mais
d'autres protocoles sont en d
eveloppement et appara^
tront sans doute dans l'avenir.
1.4 Le r
eseau sous Linux

Etant le fruit de d
eveloppeurs du monde entier, Linux n'aurait jamais pu voir le jour
sans le r
eseau mondial. Aussi, il n'est pas surprenant que tout au d
ebut, plusieurs
personnes aient entrepris de lui apporter les possibilit
es r
eseau n
ecessaires. D
es les
toutes premi
eres versions, il 
etait d
ej
a possible d'utiliser UUCP, et le travail sur
les couches TCP/IP d
ebuta en automne 1992, lorsque Ross Biro et quelques autres
cr
e
erent ce qui est maintenant connu sous le nom de Net-1.
Ross dut cesser ses activit
es de d
eveloppement pour Linux au mois de mai 1993, et
Fred van Kempen commen
ca 
a travailler sur une nouvelle impl
ementation, r
e
ecrivant
de grandes parties du code. Cette 
etape prit le nom de Net-2, dont la premi
ere ver-
sion publique, Net-2d, fut di us
ee en 
et
e 1993 (dans le noyau 0.99.10), et a depuis 
et
e
maintenue et am
elior
ee par plusieurs personnes, en particulier Alan Cox, sous l'ap-
pellation Net-2Debugged. Apr
es de grandes p
eriodes de d
eboguage et de nombreux
perfectionnements, ce nom fut chang
e en Net-3 apr
es la sortie de Linux 1.0. C'est la
version du code r
eseau actuellement incluse dans les versions ocielles du noyau, 
a
l'heure o
u nous 
ecrivons ces lignes.
Net-3 o re des pilotes pour une large gamme de cartes Ethernet, aussi bien que
SLIP, PPP (pour des connexions r
eseau via une liaison s
erie), et PLIP (pour utiliser
le port imprimante parall
ele dans le m^
eme but). Avec Net-3, Linux est dot
e d'une
impl
ementation de TCP/IP qui se comporte parfaitement bien dans la plupart des
environnements r
eseaux, avec une abilit
e d
epassant certains Unix commerciaux pour
PC. Le d
eveloppement continue, a n d'assurer une stabilit
e encore meilleure en toutes
circonstances sur les h^
otes o rant des services sur l'Internet.
En plus de tout cela, certains projets sont en cours, qui augmenteront encore davan-
tage l'universalit
e de Linux. Un pilote AX.25 pour packet-radio est en Alpha test, et
Alan Cox a 
egalement impl
ement
e une partie du protocole IPX de Novell. Mais ce
dernier projet n'avance pas, car Novell n'a pas l'intention de fournir la documentation
14 Chapitre 1. Introduction aux r
eseaux
n
ecessaire
a son aboutissement. Andrew Tridgell a r
ealis
esamba, un serveurNetBIOS9
gratuit pour syst
emes Unix dont les premi
eres versions sont tr
es prometteuses.
1.4.1 Orientations du d
eveloppement
Fred a continu
e parall
element son d
eveloppement pour faire Net-2e, une approche
profond
ement nouvelle des couches r
eseau. Toutefois, on n'a pas entendu parler de ce
travail depuis longtemps.
Il existe une autre impl
ementation de TCP/IP r
ealis
ee par Matthias Urlichs, qui a

ecrit un pilote ISDN pour Linux et FreeBSD, en int
egrant une partie du code r
eseau
de BSD dans le noyau Linux.
Malgr
e tout, Net-3 semble maintenant destin
e 
a rester la version ocielle. Les (
( mo-
dules )
), qui permettent d'ajouter des pilotes de p
eriph
eriques au noyau pendant le
fonctionnement du syst
eme, donneront sans nul doute un coup de fouet au d
evelop-
pement et la partie r
eseau s'enrichira sans doute de nombreuses possibilit
es au l du
temps.
Bien que ces di 
erentes impl
ementations des couches r
eseau s'e orcent d'o rir le
m^
eme service, elles comportent d'importantes di 
erences au niveau noyau et pilotes.
Par cons
equent, vous ne pourrez pas con gurer un syst
eme comportant un noyau avec
Net-2e 
a l'aide des utilitaires en provenance de Net-2d ou Net-3, et vice versa. Cela ne
s'applique qu'aux commandes tr
es proches du noyau; les applications et programmes
usuels comme rlogin ou telnet fonctionneront bien s^
ur avec n'importe quelle version.
Quoi qu'il en soit, cette l
eg
ere confusion ne devrait pas vous inqui
eter. 
A moins que
vous ne participiez activement au d
eveloppement, vous n'aurez pas 
a vous soucier de
ces di 
erentes versions de TCP/IP. Les versions ocielles du noyau seront toujours
accompagn
ees des outils r
eseau compatibles avec l'impl
ementation courante.
1.4.2 O
u se procurer le code
Le derni
ere version du code r
eseau de Linux peut ^
etre obtenue par FTP anonyme au-
pr
es de di 
erents serveurs. Le site ociel pour Net-3 est sunacm.swan.ac.uk, repris
par sunsite.unc.edu dans le r
epertoire system/Network/sunacm. Les derni
eres ver-
sions connues de Net-2e se trouvent sur ftp.aris.com.Les travauxd
eriv
esde BSD, par
Matthias Urlichs,sont sur ftp.ira.uka.dedans le r
epertoire/pub/system/linux/netbsd.
Le code source des derniers noyaux en date, ainsi que les versions en cours de d
e-
veloppement se trouvent dans le r
epertoire /pub/OS/Linux/PEOPLE/Linus du site
nic.funet. ; qui est repris par de nombreux serveurs10.
9: NetBIOS est le protocole sur lequel sont bas
ees certaines applications comme lanmanager et
Windows for Workgroups.
10: En France, avant d'utiliser de co^
uteuses liaisons internationales, vous devez visiter le site
ftp.ibp.fr. Ce serveur est le site Linux de r
ef
erence pour la France, et tient 
a jour un miroir des
principaux sites 
etrangers.
1.5. Maintenance du syst
eme 15
1.5 Maintenance du syst
eme
Tout au long de ce livre, nous traiterons principalement de proc
edures d'installation
et de con guration. N
eanmoins, l'administration d'un syst
eme est bien plus que cela:
une fois un service install
e, vous devez le maintenir en parfait 
etat de fonctionnement.
Dans la plupart des cas, il sut d'un peu d'attention; mais certains, comme le courrier
et les News, n
ecessitent un entretien de routine. Nous verrons en quoi consistent ces
di 
erentes t^
aches d'administration dans les chapitres qui vont suivre.
La maintenance minimale consiste 
a regarder r
eguli
erement les chiers de trace du
syst
eme et des di 
erentes applications, 
a la recherche d'
eventuelles erreurs ou 
ev
ene-
ments inhabituels. Le plus simple est d'
ecrire quelques shell-scripts qui seront ex
ecut
es
automatiquement par cron 
a certaines heures. Les applications importantes, comme
C News ou smail, sont souvent fournies avec de tels programmes qu'il ne vous reste
plus qu'
a modi er l
eg
erement pour les adapter 
a vos besoins particuliers.
La sortie de tous les travaux ex
ecut
es par cron doit faire l'objet d'un courrier envoy
e
dans la bo^
te aux lettres d'un compte administratif. Par d
efaut, beaucoup d'applica-
tions postent leurs erreurs ou statistiques 
a l'utilisateur root. Cela n'a d'int
er^
et que
si vous vous connectez souvent sous ce compte, ce qui est d
econseill
e. Une solution
bien meilleure sera de rediriger le courrier de root vers votre compte personnel en
d
eclarant un alias, comme d
ecrit dans le chapitre 14.
Quel que soit le soin apport
e 
a la con guration de votre site, les lois de Murphy garan-
tissent que malgr
e tout, certains probl
emes se produiront. Par cons
equent, maintenir
un syst
eme signi e 
egalement ^
etre disponible pour r
epondre aux r
eclamations. G
en
e-
ralement, on consid
ere que l'administrateur syst
eme doit au minimum pouvoir ^
etre
joint par courrier 
electronique au compte root, mais il existe aussi d'autres adresses
traditionnellement utilis
ees pour des aspects ou services sp
eci ques. Par exemple, tout
ce qui concerne le fonctionnement du courrier 
electronique est envoy
e 
a postmaster,
alors que pour ce qui est des News Usenet, il s'agira de newsmaster ou usenet.
Un message 
a destination de hostmaster devra ^
etre redirig
e vers la personne en
charge de la con guration r
eseau de base, et du serveur de noms si vous fournissez un
DNS.
1.5.1 S
ecurit
e du syst
eme
Prot
eger votre machine et ses utilisateurs des intrus est un aspect tr
es important
de l'administration syst
eme dans un environnement r
eseau. N
egliger ce point peut
o rir de nombreuses cibles aux malfaisants, les attaques pouvant aller de tentatives
de d
ecryptage des mots de passe 
a l'analyse de datagrammes, avec des cons
equences
diverses comme courriers falsi 
es, destructions de donn
ees ou entrave 
a la vie priv
ee
de vos utilisateurs. Nous mentionnerons quelques-uns de ces probl
emes lorsque nous
d
ecrirons le contexte dans lequel chacun peut se produire, et les solutions les plus
courantes employ
ees pour se prot
eger.
16 Chapitre 1. Introduction aux r
eseaux
Il est 
evidemment impossible de d
etailler ici tous les ennuis de s
ecurit
e auxquels vous
serez peut-^
etre confront
e. La lecture d'un ouvrage sp
ecialis
eest absolument n
ecessaire,
particuli
erement en environnement r
eseau. Le livre (
( Practical UNIX Security )
), de
Simson Gar nkel (voir [Spaf93]) est hautement recommand
e.
La s
ecurit
e commence par une bonne administration syst
eme. Cela comprend la v
e-
ri cation des propri
etaires et droits d'acc
es des chiers vitaux et des r
epertoires,
l'observation de l'utilisation des comptes privil
egi
es, etc. Le programme COPS, par
exemple, permet de tester le syst
eme de chiers et la con guration courante 
a la re-
cherche de permissions dangereuses ou autres anomalies. Il est souvent raisonnable
d'utiliser une gestion des mots de passe les rendant plus diciles 
a deviner. L'ensemble
shadow password suite, par exemple, demande entre autres choses qu'ils aient une lon-
gueur minimale de cinq caract
eres et comportent un ensemble de lettres minuscules,
majuscules et chi res.
Lors de la cr
eation d'un service accessible par r
eseau, assurez-vous de ne lui donner
que les privil
eges minimaux, ne lui permettez pas de faire des choses inutiles pour
son fonctionnement normal. Par exemple, vous ne devez faire de programmes setuid 
a
root ou tout autre utilisateur privil
egi
e que lorsque c'est vraiment n
ecessaire. Si vous
d
esirez n'utiliser un service que pour une application tr
es limit
ee, n'h
esitez pas 
a le
con gurer de mani
ere aussi restrictive que possible. Si par exemple vous comptez au-
toriser des stations diskless 
a s'amorcer depuis votre machine, vous devez o rir TFTP
(Trivial File Transfer Protocol) a n qu'elles puissent t
el
echarger leur con guration de
base depuis le r
epertoire /boot. Toutefois, utilis
e sans restrictions, TFTP permet 
a
n'importe quel utilisateur du monde de t
el
echarger tout chier de votre machine qui
soit lisible par tous. Si ce n'est pas ce que vous d
esirez, pourquoi ne pas restreindre
le service TFTP au r
epertoire /boot?11.
Dans le m^
eme ordre d'id
ees, vous pouvez restreindre l'acc
es 
a certains services 
a
des utilisateurs de certains h^
otes, par exemple ceux de votre r
eseau local. Dans le
chapitre 9, nous pr
esenterons tcpd, qui permet cette op
eration pour une grande vari
et
e
d'applications r
eseaux.
Un autre point tr
es important: 
eviter les logiciels 
a risque. Bien s^
ur, tous les pro-
grammes que vous utilisez peuvent ^
etre dangereux, puisqu'ils peuvent rec
eler des
bogues que des personnes malintentionn
ees pourraient exploiter pour p
en
etrer dans
votre syst
eme. Ce genre de situation arrive, et il n'existe malheureusement pas de
protection 
a toute 
epreuve. Ces probl
emes a ectent aussi bien les applications du
domaine public que les produits commerciaux12. Toutefois, les programmes n
eces-
sitant des privil
eges particuliers sont fatalement plus dangereux que les autres, car
le moindre trou de s
ecurit
e peut avoir de graves cons
equences13. Si vous installez
11: Nous reviendrons sur ce sujet dans le chapitre 9.
12: Il y a eu des syst
emes UNIX commerciaux (qui co^
utent une petite fortune), fournis avec un
shell script setuid-root, qui permettait 
a tous les utilisateurs d'obtenir en une fraction de seconde
tous les privil
eges root par un simple tour d'adresse.
13: En 1988, le ver RTM provoqua l'arr^
et presque complet de la plus grande partie de l'Internet,
en exploitant une grosse br
eche dans quelques versions du programme sendmail. Ce trou de s
ecurit
e
a 
et
e corrig
e depuis.
1.5. Maintenance du syst
eme 17
un programme setuid, redoublez de prudence et assurez-vous de ne rien rater de sa
documentation, a n d'
eviter de cr
eer une br
eche de s
ecurit
e par erreur ou omission.
Malgr
e tout le soin que vous pourrez apporter 
a la s
ecurit
e, vous ne pourrez jamais
vous consid
erer comme totalement 
a l'abri. Par cons
equent, vous devez pouvoir d
e-
tecter les 
eventuels intrus le plus t^
ot possible. La lecture des chiers de trace du
syst
eme est un bon point de d
epart, mais les pirates le sachant aussi bien que vous,
ils ne manqueront pas d'e acer tout ce qui pourrait les d
enoncer. Il existe n
eanmoins
des outils comme tripwire14, qui calcule r
eguli
erement di 
erents checksums sur ces
chiers, et les stocke dans une base de donn
ees. Lors des acc
es ult
erieurs, ces valeurs
sont recalcul
ees et compar
ees avec celles pr
ec
edemment trouv
ees a n de d
etecter toute
modi cation anormale de ces traces.
14: 
Ecrit par Gene Kim et Gene Spa ord.
18 Chapitre 1. Introduction aux r
eseaux
19
Chapitre 2
Le r
eseau TCP/IP
Nous allons maintenant aborder tous les d
etails que vous devrez conna^
tre lors de la
connexion de votre syst
eme Linux 
a un r
eseau TCP/IP, notamment la gestion des
adresses IP, les noms de machines, et le routage. Ce chapitre vous apportera les bases
n
ecessaires pour la compr
ehension de ce que n
ecessite une con guration r
eseau, les
suivants d
ecriront les di 
erents outils 
a employer.
2.1 Interfaces r
eseau
A n de s'a ranchir des nombreuses di 
erences entre les 
equipements divers utili-
s
es dans un environnement r
eseau, TCP/IP d
e nit une interface abstraite, 
a travers
laquelle on acc
ede 
a la partie mat
erielle. Cette interface permet un ensemble d'op
e-
rations, communes 
a tout type d'
equipement r
eseau, et g
ere l'envoi et la r
eception de
paquets.
Pour chaque p
eriph
erique 
a connecter au r
eseau, il faut une interface correspondante
dans le noyau du syst
eme. Par exemple, les cartes Ethernet sous Linux s'appellent
eth0 et eth1, les interfaces SLIP sont sl0, sl1, etc. Ces noms sont utilis
es lors de
la con guration, pour indiquer au noyau 
a quel p
eriph
erique physique vous d
esirez
acc
eder. Ils n'ont pas d'autre signi cation.
A n d'^
etre utilisable sur un r
eseau TCP/IP, une interface doit se voir attribuer une
adresse IP, qui permet de l'identi er lors de communications avec le reste du monde.
Cette adresse est di 
erente du nom cit
e ci-dessus; si vous comparez une interface 
a
une porte, l'adresse est comme la plaque clou
ee dessus, portant le num
ero.
Bien entendu, d'autres param
etres peuvent ^
etre ajust
es. L'un d'entre eux est la taille
maximale des datagrammesque cette interface particuli
erepeut g
erer,que l'on appelle
Maximum Transfer Unit, ou MTU. Nous en verrons bien d'autres plus tard.
20 Chapitre 2. Le r
eseau TCP/IP
2.2 Adresses IP
Comme nous l'avons vu dans le chapitre pr
ec
edent, les adresses comprises par le
protocole r
eseau IP sont des nombres de 32 bits. Chaque machine se voit assign
e un
nombre unique dans l'environnement: si vous concevez un r
eseau local qui ne partage
pas de tra c TCP/IP avec d'autres r
eseaux, vous pouvez choisir ces nombres selon
vos propres crit
eres. Toutefois, pour les sites connect
es 
a l'Internet, ces adresses sont
fournies par une autorit
e centrale, le Network Information Center, ou NIC1.
Pour en faciliter la lecture, les adresses IP sont partag
ees en quatre nombres de 8 bits
appel
es octets2. Par exemple, l'adresse 0x954C0C04, qui est en hexad
ecimal celle
du site quark.physique.groucho.edu, s'
ecrira 149.76.12.4. Ce format est souvent
appel
e notation sur 4 octets ou notation point
ee (dotted quad notation en anglais).
Cette notation est aussi due au fait que les adresses IP sont compos
ees d'une valeur
r
eseau, contenue dans les premiers octets, et une valeur h^
ote, dans ceux qui restent.
Lorsque vous demandez une adresse ocielle au NIC, vous n'obtenez pas de valeurs
individuelles pour chaque machine que vous comptez connecter: le NIC vous accorde
une adresse de r
eseau, et c'est 
a vous d'assigner toutes les adresses IP individuelles
valides qu'elle permet, selon vos pr
ef
erences.
En fonction de la taille du r
eseau, la partie h^
ote peut ^
etre plus ou moins grande.
Pour faire face aux di 
erents besoins, il existe plusieurs classes de r
eseau, d
e nissant
di 
erentes mani
eres de d
ecouper les adresses IP.
Classe A La classe A comprend les r
eseaux 1.0.0.0 
a 127.0.0.0. La valeur
r
eseau est contenue dans le premier octet. Cela donne une partie
h^
ote de 24 bits, permettant environ 1,6 million de machines.
Classe B La classe B comprend les r
eseaux 128.0.0.0
a 191.255.0.0; la valeur
r
eseau est contenue dans les deux premiers octets. Elle permet donc
16320 r
eseaux de 65024 h^
otes chacuns.
Classe C La classe C comprend les r
eseaux 192.0.0.0 
a 223.255.255.0, la va-
leur r
eseau 
etant contenue dans les trois premiers octets. Elle permet
pr
es de 2 millions de r
eseaux de 254 h^
otes.
Classes D, E, et F
Les adresses comprises entre 224.0.0.0 et 254.0.0.0 sont soit exp
e-
rimentales, soit r
eserv
ees pour un usage futur et ne sp
eci ent aucun
r
eseau.
1: Tr
es souvent, les adresses IP vous seront assign
ees par le fournisseur de services aupr
es du-
quel vous achetez votre connectivit
e. Mais vous pouvez 
egalement traiter directement aupr
es du
NIC a n d'obtenir une adresse pour votre r
eseau, en envoyant un courrier 
electronique 
a l'adresse
hostmaster@internic.net.
2: Il faut noter ici que la langue anglaise fait la di 
erence entre un nombre quelconque sur 8 bits,
appel
e byte, de son utilisation dans la notation d'adresses IP, o
u il prend l'appellation octet. En
fran
cais, nous ne disposons que du terme octet pour les deux cas.
2.3. R
esolution des adresses 21
Si nous reprenons l'exemple du chapitre pr
ec
edent, nous pouvons maintenant voir
que 149.76.12.4, l'adresse de quark, d
esigne l'h^
ote 12.4 du r
eseau de classe B
149.76.0.0.
Vous aurez peut-^
etre remarqu
e dans la liste ci-dessus que toutes les valeurs possibles
pour la partie h^
ote ne sont pas autoris
ees. En e et, les valeurs 0 et 255 sont r
eserv
ees

a des usages sp
eciaux: une adresse dont tous les bits de la partie h^
ote sont 
a z
ero
d
esigne le r
eseau en lui-m^
eme, et si les bits sont tous 
a 1 il s'agit alors de l'adresse de
di usion (broadcast). Celle-ci d
esigne simultan
ement toutes les machines connect
ees
au r
eseau en question. Par cons
equent, 149.76.255.255 n'est pas une adresse d'h^
ote
valide, mais r
ef
erence tous ceux du r
eseau 149.76.0.0.
Il y a 
egalement deux autres adresses r
eserv
ees, 0.0.0.0 et 127.0.0.0. La premi
ere
s'appelle la route par d
efaut et la seconde, l'adresse loopback. La route par d
efaut est
en rapport avec la fa
con dont sont dirig
es les datagrammes, ce que nous verrons dans
la section suivante.
Le r
eseau 127.0.0.0 est r
eserv
e au tra c IP local 
a votre ordinateur. En g
en
eral,
l'adresse 127.0.0.1 sera assign
ee 
a une interface sp
eciale de votre syst
eme, appel
ee
interface loopback, qui se comporte comme un circuit ferm
e. Chaque paquet TCP ou
UDP qui lui est transmis, est imm
ediatement retourn
e comme s'il arrivait d'un autre
r
eseau. Ainsi, il est possible de d
evelopper et tester des programmes sans disposer d'un
(
( vrai )
) r
eseau; cette interface trouve toutefois sa principale utilit
e lors de l'emploi
de logiciels utilisant le r
eseau sur la m^
eme machine, ou sur un ordinateur totalement
isol
e. Cette situation n'est pas si rare qu'il y para^
t: par exemple, beaucoup de sites
UUCP ne disposent d'aucune connectivit
e IP, mais ont besoin de faire fonctionner le
serveur de News INN. Celui-ci utilisera alors l'interface loopback.
2.3 R
esolution des adresses
Maintenant que vous savez comment sont constitu
ees les adresses IP, vous devez
sans doute vous demander comment elles sont utilis
ees pour acc
eder aux di 
erentes
machines. Apr
es tout, le protocole Ethernet identi e les h^
otes par un nombre de six
octets qui n'a absolument rien en commun avec une adresse IP, n'est-ce pas?
C'est exact. Et c'est pourquoi il faut un m
ecanisme sachant mettre en correspondance
les adresses IP et Ethernet: ce protocole se nomme Address Resolution Protocol, ou
ARP. En fait, ARP n'est pas limit
e 
a l'Ethernet, mais est 
egalement employ
e sur
d'autres types de r
eseaux, comme par exemple le packet-radio des radio-amateurs.
Pour fonctionner, ARP utilise exactement la m
ethode qu'emploient la plupart des
gens pour trouver M. Marcel Dugenou dans une foule de 150 inconnus: se promener
en criant son nom, en esp
erant qu'il r
epondra s'il est l
a.
Lorsque ARP veut trouver l'adresse Ethernet correspondant 
a une adresse IP donn
ee,
il fait appel 
a une possibilit
e appel
ee la (
( di usion )
) (broadcasting), qui consiste 
a
envoyer un datagramme simultan
ement 
a toutes les stations pr
esentessur le r
eseau. Ce
22 Chapitre 2. Le r
eseau TCP/IP
paquet exp
edi
e par ARP contient une requ^
ete pour l'adresse IP en question. Chaque
h^
ote le recevant compare alors cette adresse 
a la sienne, et si elles correspondent,
retourne une r
eponse ARP 
a la machine appelante. Celle-ci peut alors en extraire
l'adresse Ethernet de l'exp
editeur.
Vous pouvez vous demander comment un h^
ote peut atteindre une adresse Internet
pouvant se trouver sur un r
eseau Ethernet di 
erent, quelque part dans le monde,
ou comment, en tout premier lieu, il peut savoir que cette adresse est sur un r
eseau
Ethernet. Toutes ces questions mettent en jeu ce que l'on appelle le routage, qui
consiste 
a localiser physiquement un h^
ote dans un r
eseau. Ce sera le sujet de la
section suivante.
Voyons ARP plus en d
etail. Une fois qu'un h^
ote a d
ecouvert une adresse Ethernet, il
la stocke dans son cache ARP a n de ne pas avoir 
a la redemander la prochaine fois
qu'il devra envoyer un datagramme 
a la machine en question. Toutefois, il ne serait
pas judicieux de conserver cette information ind
e niment; la machine distante peut
changer de con guration (changement de carte Ethernet pour des raisons techniques
par exemple) et l'entr
ee ARP ne serait plus valide. Par cons
equent, les entr
ees conte-
nues dans le cache ARP sont supprim
ees au bout d'un certain temps a n de forcer
une nouvelle requ^
ete.
Il est aussi quelquefois n
ecessaire de trouver l'adresse IP associ
ee 
a une adresse Ether-
net donn
ee. Cela se produit lorsqu'une machine diskless veut s'amorcer depuis un
serveur du r
eseau, ce qui est une situation tr
es courante sur les r
eseaux locaux. Ce
type de station ne poss
ede pratiquement aucune information sur elle-m^
eme, 
a l'ex-
ception de son adresse Ethernet: par cons
equent, elle di use un message demandant
aux serveurs de lui indiquer son adresse IP. Il existe un autre protocole pour cela,
appel
e Reverse Address Resolution Protocol, ou RARP. Avec le protocole BOOTP, il
permet de d
e nir une proc
edure d'amor
cage de clients diskless via r
eseau.
2.4 Routage IP
Nous allons maintenant voir comment localiser un h^
ote 
a qui nous voulons envoyer des
paquets, en fonction de son adresse IP. Les di 
erentes parties de l'adresse sont g
er
ees
di 
eremment; et c'est 
a vous de con gurer correctement les chiers qui indiquent
comment traiter chacune de ces parties.
2.4.1 R
eseaux IP
Lorsque vous 
ecrivez une lettre 
a quelqu'un, vous indiquez g
en
eralement sur l'enve-
}
loppe une adresse compl
ete sp
eci ant le pays, le d
epartement, le code postal, etc.
Ensuite, vous mettez l'enveloppe dans une bo^
te aux lettres et les services postaux la
d
elivreront au destinataire: elle sera exp
edi
ee dans le pays indiqu
e, o
u d'autres ser-
vices nationaux la dirigeront vers le d
epartement indiqu
e, et ainsi de suite jusqu'au
2.4. Routage IP 23
destinataire. L'avantage de cette m
ethode hi
erarchique est 
evident: quelle que soit la
destination, la poste locale saura dans quelle direction diriger la lettre, mais n'aura
pas 
a se soucier de savoir comment elle voyagera une fois qu'elle aura atteint le pays
de destination.
Les r
eseaux IP sont structur
es de fa
con similaire. L'Internet consiste en un certain
nombre de r
eseaux particuliers, appel
es syst
emes autonomes. Chaque syst
eme e ectue
tout le routage n
ecessaire entre ses h^
otes internes de telle mani
ere que l'envoi d'un
datagramme se r
eduise 
a trouver un chemin vers le r
eseau sur lequel se trouve l'h^
ote
destinataire. Cela signi e qu'aussit^
ot que le paquet est pass
e 
a n'importe quel h^
ote
de ce r
eseau particulier, le reste du traitement est exclusivement r
ealis
e par ce r
eseau
lui-m^
eme.
2.4.2 Sous-r
eseaux
Cette structure est re 
et
ee par le d
ecoupage des adresses IP en une partie r
eseau
et une partie h^
ote, comme nous l'avons expliqu
e plus haut. Par d
efaut, le r
eseau de
destination est d
eriv
e de la partie r
eseau de l'adresse IP. Par cons
equent, les h^
otes
pour lesquels ce nombre est le m^
eme doivent se trouver sur le m^
eme r
eseau, et r
eci-
proquement3.
Il est alors logique d'o rir un sch
ema similaire 
a l'int
erieur du r
eseau, puisqu'il peut
lui-m^
eme consister en un ensemble de centaines de r
eseaux plus petits, la plus petite
unit
e 
etant des r
eseaux physiques comme l'Ethernet. Par cons
equent, IP permet de
subdiviser un r
eseau IP en plusieurs sous-r
eseaux.
Un sous-r
eseau prend la responsabilit
e de d
elivrer les datagrammes pour une certaine
plage d'adresses IP appartenant au r
eseau IP dont il fait partie. Tout comme dans les
classes A, B, ou C, il est identi 
e par la partie r
eseau des adresses IP. Toutefois, cette
partie r
eseau est alors 
etendue en incluant quelques bits de la partie h^
ote. Le nombre
de bits qui seront interpr
et
es en tant que valeur de sous-r
eseau est donn
e par ce que
l'on appelle le masque de sous-r
eseau ou masque r
eseau, en anglais netmask. Il s'agit
aussi d'un nombre sur 32 bits, qui sp
eci e le masque de bits pour la partie r
eseau de
l'adresse IP.
Le r
eseau du campus de l'universit
e Groucho Marx est un exemple d'une telle orga-
nisation. Il poss
ede le r
eseau de classe B 149.76.0.0, et son masque r
eseau est par
cons
equent 255.255.0.0.
A l'int
erieur, il est en fait constitu
e de plusieurs r
eseaux plus petits, comme ceux des
di 
erents d
epartements. Aussi, la plage d'adresses IP est divis
ee en 254 sous-r
eseaux,
149.76.1.0 
a 149.76.254.0. Par exemple, le D
epartement de Physique Th
eorique
s'est vu assigner 149.76.12.0. La dorsale du campus est aussi un r
eseau, auquel on
a attribu
e l'adresse 149.76.1.0. Ces sous-r
eseaux partagent la m^
eme valeur r
eseau,
bien que le troisi
eme octet soit utilis
e pour les distinguer entre eux. Ils utiliseront un
masque de sous-r
eseau de 255.255.255.0.
3: Les syst
emes autonomes sont plus g
en
eraux et peuvent comporter plus d'un r
eseau IP.
24 Chapitre 2. Le r
eseau TCP/IP
149 76 12 4
149 76 12 4
Partie r
eseau Partie h^
ote
Partie r
eseau Partie h^
ote
Fig. 2.1 - Subdivision d'un r
eseau de classe B
La gure 2.1 montre comment 149.76.12.4, l'adresse de quark, est interpr
et
ee dif-
f
eremment selon qu'elle est consid
er
ee sur un r
eseau de classe B ordinaire, ou comme
sous-r
eseau.
Il faut bien avoir 
a l'esprit que la subdivision de r
eseaux n'est qu'une division interne.
Les sous-r
eseauxsont cr
e
es par le propri
etairedu r
eseau (ou les administrateurs). Sou-
vent, ils sont mis en place pour d
elimiter des zones pr
ecises, qu'elles soient physiques
(entre deux Ethernet), administratives (entre deux d
epartements), ou g
eographiques;
et une personne se voit d
el
eguer la responsabilit
e de ces sous-r
eseaux. Mais cette
structure n'a ecte que le comportement interne et est compl
etement invisible pour le
reste du monde.
2.4.3 Passerelles
La subdivision de r
eseaux n'est pas seulement utile pour des raisons administratives,
mais est aussi tr
es souvent la cons
equence naturelle des limitations mat
erielles. Le
point de vue d'un h^
ote connect
e 
a un r
eseau physique donn
e (Ethernet par exemple),
est tr
es limit
e: il ne pourra acc
eder directement qu'aux machines situ
ees sur le m^
eme
r
eseau local. Tous les autres h^
otes ne lui sont accessibles qu'
a travers ce que l'on
appelle une passerelle. Une passerelleest un h^
ote qui est connect
ephysiquement 
a deux
r
eseaux (ou plus) simultan
ement, et qui est con gur
e sp
ecialement pour permettre
d'
echanger des paquets entre eux.
Pour que IP puisse facilement savoir si un h^
ote est sur un r
eseau local physique, ces
di 
erents r
eseaux physiques doivent appartenir 
a di 
erents r
eseaux IP. Par exemple,
le r
eseau IP 149.76.4.0 est r
eserv
e aux h^
otes du r
eseau local du D
epartement de
Math
ematiques. Lors de l'envoi d'un datagramme vers quark, les logiciels r
eseau de
erdos d
eduisent imm
ediatement de l'adresse IP 149.76.12.4 que l'h^
ote destinataire
est situ
e sur un r
eseau physique di 
erent, et par cons
equent ne sera joignable que par
une passerelle (sophus par d
efaut).
2.4. Routage IP 25
Cette machine passerelle, sophus, est connect
ee 
a deux sous-r
eseaux distincts: celui
du D
epartement de Math
ematiques et la dorsale du campus. Il acc
ede 
a chacun d'eux
par une interface di 
erente, qui sont respectivement eth0 et fddi0. Mais alors, quelle
adresse IP devons-nous lui assigner? Faut-il lui en donner une appartenant au sous-
r
eseau 149.76.1.0, ou bien 
a 149.76.4.0?
La r
eponse est: les deux, mon g
en
eral. Lors de dialogues avec des h^
otes du D
epar-
tement de Math
ematiques, sophus devra utiliser une adresse IP de 149.76.4.1, et
avec la dorsale, ce sera 149.76.1.4.
Donc, une passerelle se voit assigner une adresse IP par r
eseau auquel elle est connec-
t
ee. Ces adresses (et les masques correspondants) sont li
ees aux interfaces par les-
quelles on acc
ede aux sous-r
eseaux. La correspondance entre les interfaces et adresses
de sophus ressemblera donc 
a ceci:
Interface Adresse Masque r
eseau
eth0 149.76.4.1 255.255.255.0
fddi0 149.76.1.4 255.255.255.0
lo 127.0.0.1 255.0.0.0
La derni
ere entr
ee correspond 
a l'interface loopback, que nous avons d
ecrit plus haut.
La gure 2.2 montre une partie de la topologie du r
eseau 
a l'universit
e Groucho Marx
(GMU). Les machines connect
ees simultan
ement 
a deux sous-r
eseaux sont indiqu
ees
avec leurs deux adresses IP.
La plupart du temps, vous pouvez ignorer la di 
erence entre l'adresse IP d'un h^
ote
et son interface. Pour ceux qui ne sont que sur un seul r
eseau, comme erdos, vous
pourrez dire que cette machine a telle ou telle adresse IP, bien qu'en r
ealit
e ce soit son
interface Ethernet qui ait cette adresse. Mais la distinction n'est vraiment importante
que pour les passerelles.
2.4.4 La table de routage
Nous allons maintenant concentrer notre attention sur la mani
ere dont IP choisit une
passerelle pour d
elivrer des donn
ees 
a un r
eseau distant.
Nous venons de voir que erdos, lorsqu'il a un datagramme pour quark, teste l'adresse
de destination et s'aper
coit qu'elle n'est pas sur le r
eseau local. Par cons
equent, il
envoie le paquet 
a la passerelle par d
efaut sophus, qui est alors confront
ee au m^
eme
probl
eme. Sophus voit que quark ne fait partie d'aucun des r
eseaux sur lesquels elle
est directement connect
ee, et qu'il lui faut trouver une autre passerelle 
a qui passer le
ambeau. Le bon choix serait niels, celle reliant le D
epartement de Physique: sophus
a donc besoin d'informations lui permettant d'associer un r
eseau destinataire 
a une
passerelle ad
equate.
Les informations de routage qu'IP utilise pour cela consistent en une table indiquant
les r
eseaux et les passerelles n
ecessaires pour les atteindre. De plus, une route par
26 Chapitre 2. Le r
eseau TCP/IP
sophus niels
quark
erdos
12.4
4.17
gauss
4.1 12.1
1.4 1.12
4.0 12.0
4.23
gcc1
1.1
2.1
1.0
D
epartement Math
ematiques D
epartement Physique Th
eorique
Dorsale du campus
Centre de calcul de Groucho
Fig. 2.2 - Une partie de la topologie du r
eseau 
a l'universit
e Groucho Marx.
2.4. Routage IP 27
d
efaut doit g
en
eralement ^
etre indiqu
ee; il s'agit d'une entr
ee associant une passerelle
au r
eseau 0.0.0.0. Tous les paquets destin
es 
a un r
eseau inconnu seront exp
edi
es par
ce chemin. Sur sophus, cette table pourrait ressembler 
a celle-ci:
R
eseau Passerelle Interface
149.76.1.0 - fddi0
149.76.2.0 149.76.1.2 fddi0
149.76.3.0 149.76.1.3 fddi0
149.76.4.0 - eth0
149.76.5.0 149.76.1.5 fddi0
: : : : : : : : :
0.0.0.0 149.76.1.2 fddi0
Les routes vers les r
eseaux sur lesquels sophus est directement connect
ee n'ont pas
besoin de passerelle, c'est pourquoi ici la colonne correspondante contient un tiret.
Les tables de routage peuvent ^
etre construites par di 
erents moyens. Dans le cas de
petits r
eseaux, la meilleure m
ethode est de le faire manuellement et de les positionner
par la commande route lors de l'amor
cage des syst
emes (voir le chapitre 5). Sur les
grands r
eseaux, elles sont ajust
ees en cours de fonctionnement par des programmes
qui s'
echangent des informations de routage pour d
eterminer les meilleures routes.
En fonction de la taille du r
eseau, di 
erents protocoles de routage seront alors utilis
es.

A l'int
erieur de syst
emes autonomes (comme le campus Groucho Marx), les protocoles
de routage interne sont employ
es. Le plus courant, RIP (Routing Information Proto-
col) est impl
ement
e par le d
emon BSD routed. Entre les syst
emes autonomes, il faut
faire appel aux protocoles de routage externe comme EGP (External Gateway Protocol)
ou BGP (Border Gateway Protocol); ceux-ci (aussi bien que RIP) sont impl
ement
es
dans le d
emon gated de l'universit
e de Cornell4.
2.4.5 Valeurs m
etriques
Le routage dynamique bas
e sur RIP choisit le meilleur chemin vers un h^
ote ou un
r
eseau en fonction du nombre de (
( sauts )
) (hops), c'est-
a-dire le nombre de passerelles
travers
ees pour amener un datagramme 
a destination. Plus ce chemin est court, mieux
il est not
e par RIP. Lorsqu'il est trop long, 16 sauts ou plus, il est consid
er
e comme
inutilisable et 
elimin
e.
Pour utiliser RIP a n de g
ererles informations de routageinternes 
a votre r
eseaulocal,
il faut que le programme gated soit en service sur chaque h^
ote. Au d
emarrage, gated
teste toutes les interfaces r
eseau actives. S'il en trouve plus d'une (loopback exclue), il
consid
ere que cette machine sert de passerelle entre di 
erents r
eseaux et devient alors
actif, 
echangeant et di usant des informations de routage. Sinon, il restera passif,
4: Le programme routed est consid
er
e comme bogu
e par beaucoup d'administrateurs. Puisque
gated supporte 
egalement RIP, il est toujours pr
ef
erable d'utiliser ce dernier.
28 Chapitre 2. Le r
eseau TCP/IP
attendant la r
eception de mises 
a jour RIP pour modi er la table de routage locale
de mani
ere appropri
ee.
Lors de la di usion des informations sur la table locale, gated d
etermine la longueur
du chemin 
a partir de la valeur m
etrique associ
ee avec chaque entr
ee. Cette valeur
est initialis
ee par l'administrateur syst
eme lors de l'
etablissement de la route et doit
re 
eter le prix de revient de ce chemin particulier. Par cons
equent, la valeur m
etrique
d'une route vers un sous-r
eseau dont l'h^
ote est directement connect
e doit toujours
valoir z
ero, alors qu'une route passant par deux passerelles aura la valeur deux. Notez
que vous n'avez toutefois pas 
a vous soucier de cette valeur m
etrique si vous n'utilisez
jamais le protocole RIP ou le programme gated.
2.5 Le protocole ICMP
IP vient avec un protocole dont nous n'avons pas encore parl
e: le protocole de contr^
ole
de messages, Internet Control Message Protocol. ICMP est utilis
e par les couches
r
eseau du noyau pour communiquer des messages d'erreurs aux autres h^
otes. Par
exemple, supposons que vous ^
etes une nouvelle fois sur erdos et d
esirez lancer un
telnet sur le port 12345 de quark, mais qu'
a l'autre bout il n'y ait aucun processus

a l'
ecoute de ce port. Lorsque le premier paquet TCP arrivera sur quark, la couche
r
eseau se rendra imm
ediatement compte de cet 
etat de fait et renverra un message
ICMP 
a erdos disant (
( Port Unreachable )
), soit (
( Port inaccessible )
).
ICMP sait traiter un certain nombre de messages, dont beaucoup sont des conditions
d'erreur. Malgr
e tout, l'un d'eux est particuli
erement int
eressant: le message de redi-
rection. Il est g
en
er
e par le module de routage lors qu'il d
etecte qu'un autre h^
ote est
en train d'utiliser la machine comme passerelle, alors qu'il existe une route bien plus
courte. Par exemple, apr
es le d
emarrage de sophus, sa table de routage peut ^
etre
incompl
ete. Elle pourrait contenir des routes vers le D
epartement de Math
ematiques,
la dorsale FDDI, et la route par d
efaut pointerait sur la passerelle du centre de calcul
(gcc1). Par cons
equent, tout paquet 
a destination de quark serait envoy
e 
a gcc1
plut^
ot qu'
a niels, la passerelle vers le r
eseau du D
epartement de Physique. En rece-
vant un tel datagramme, gcc1 se rendra compte qu'il s'agit d'un tr
es mauvais choix
de routage et le renverra 
a niels, tout en retournant un message ICMP de redirection

a sophus, lui indiquant cette route, bien meilleure.
Cela peut sembler une m
ethode tr
es habile pour se contenter de ne positionner ma-
nuellement que le strict minimum de routes, et laisser les syst
emes faire le reste.
N
eanmoins, nous devons vous avertir que compter sur le routage dynamique, que
ce soit par RIP ou les redirections ICMP, n'est pas toujours une bonne id
ee: ces
protocoles ne vous o rent que tr
es peu, voire aucune possibilit
e de v
eri cation de
l'authenticit
e des informations de routage. Des utilisateurs malintentionn
es peuvent
arriver 
a rendre votre r
eseau totalement hors service, ou pis encore. Pour cette rai-
son, certaines versions du code r
eseau de Linux traitent les messages de redirection
a ectant des routes r
eseaux comme s'il ne s'agissait que des routes d'h^
otes.
2.6. DNS: Le Domain Name System 29
2.6 DNS: Le Domain Name System
Nous abordons une partie o
u vous allez rencontrer beaucoup de termes techniques
am
ericains: en l'absence d'
equivalents fran
cais reconnus et accept
es, nous avons pr
e-
f
er
e conserver les expressions originales connues du monde entier plut^
ot que d'inventer
des noms b^
atards du plus mauvais e et.
2.6.1 R
esolution de noms
Comme nous le savons maintenant, l'adressage sur un r
eseau TCP/IP est bas
e sur
}
des nombres de 32 bits. Comme ils sont dicilement m
emorisables, les h^
otes sont
g
en
eralement baptis
es de fa
con plus humaine, par de simples noms comme pluton,
zeus ou marcel. C'est alors au syst
eme de trouver les adresses IP correspondantes:
il s'agit de la r
esolution de noms.
Lorsqu'une application a besoin de trouverl'adresse IP d'un h^
ote donn
e, il s'appuie sur
les fonctions gethostbyname(3) et gethostbyaddr(3). Traditionnellement, celles-ci sont
group
ees avec quelques autres de la m^
eme famille, dans une biblioth
eque sp
ecialis
ee;
sous Linux l'ensemble est int
egr
e dans la biblioth
eque standard libc. On fait en g
en
eral
r
ef
erence 
a ces fonctions en parlant du (
( resolver )
).
Sur un petit r
eseau,il n'est pas tr
es dicile de maintenir des tables de correspondances
entre les noms de machines et leurs adresses. Ces informations sont en principe conte-
nues dans un chier nomm
e /etc/hosts. Lors de l'ajout ou la suppression d'h^
otes, ou
en cas de r
eassignation d'adresse, il sut de mettre 
a jour le chier hosts sur toutes les
machines. Il est 
evident que cette op
eration devient quasi impossible sur des r
eseaux
compos
es d'une tr
es grande quantit
e de syst
emes.
NIS, le Network Information System d
evelopp
e par Sun Microsystems, est une solu-
tion 
a ce probl
eme (On l'appelle YP, Yellow Pages ou pages jaunes pour des raisons
historiques). NIS conserve le chier hosts, ainsi que certaines autres informations,
dans une base de donn
ees sur une machine ma^
tre depuis laquelle des clients peu-
vent r
ecup
erer 
a tout moment ce dont ils ont besoin. Mais l
a encore, cette approche
n'est utilisable que sur des r
eseaux d'importance moyenne, comme les r
eseaux locaux,
car il faut stocker et maintenir la base de donn
ees hosts de mani
ere centralis
ee et la
distribuer 
a tous les serveurs.
Sur l'Internet, ces informations 
etaient aussi 
a l'origine stock
ees dans un unique -
chier, HOSTS.TXT. Il 
etait maintenu au Network Information Center, ou NIC, et
devait ^
etre t
el
echarg
e puis install
e par tous les sites connect
es. La croissance du r
e-
seau engendra plusieurs probl
emes. En plus du surcro^
t de travail d^
u 
a la n
ecessit
e
d'installer HOSTS.TXT r
eguli
erement, la charge des serveurs le di usant devint vite
trop 
elev
ee. Pis encore, tous les noms devaient ^
etre enregistr
es aupr
es du NIC, qui
devait s'assurer que tous soient bien uniques.
30 Chapitre 2. Le r
eseau TCP/IP
C'est pourquoi, en 1984, une nouvelle m
ethode de r
esolution des noms fut adopt
ee,
le Domain Name System. Le DNS est l'uvre de Paul Mockapetris, et r
egle simulta-
n
ement les deux probl
emes que nous venons d'
evoquer.
2.6.2 Introduction du DNS
DNS organise les noms d'h^
otes en une hi
erarchie de domaines. Un domaine est un
ensemble de sites qui ont une certaine relation entre eux; ils peuvent former un r
eseau
particulier (toutes les machines d'un campus par exemple), ou bien tous appartenir

a une organisation particuli
ere (comme le Gouvernement fran
cais) ou encore, ^
etre
tout simplement proche g
eographiquement parlant. Aux USA par exemple, toutes les
universit
es sont regroup
ees dans le domaine edu, chacune utilisant un sous-domaine
la d
e nissant mieux. L'universit
e Groucho Marx pourrait ainsi se trouver dans le
domaine groucho.edu, et son D
epartement de Math
ematiques pourrait ^
etre baptis
e
maths.groucho.edu. Les h^
otes du d
epartement verraient alors leur nom ajout
e 
a
tout cela; ainsi la machine erdos serait connue comme erdos.maths.groucho.edu.
C'est ce que l'on appelle le fully quali ed domain name, ou FQDN, qui identi e de
mani
ere unique cet h^
ote aux yeux du monde entier.
.
com
gauss
up
niels
maths
sophus
erdos
down strange
otto
quark
edu
groucho
net
physique
th
eorique particules
Fig. 2.3 - Une partie de l'espace de nommage.
La gure 2.3 montre une partie de l'espace de nommage. Tout en haut de cette ar-
borescence, l'entr
ee d
enot
ee par un simple point, correspond 
a la racine et est appel
e
root domain. Pour indiquer qu'un nom d'h^
ote est FQDN (c'est-
a-dire compl
etement
2.6. DNS: Le Domain Name System 31
quali 
e, et non pas relatif 
a un domaine local implicite), on l'
ecrit parfois en le ter-
minant par un point. Cela signi e que la derni
ere composante est le domaine racine
(root domain).
En fonction de sa position dans la hi
erarchie, un domaine peut ^
etre appel
e de premier
niveau (top-level), second niveau ou troisi
eme niveau. Il peut y en avoir encore plus,
mais le cas est assez rare. Voici plusieurs domaines am
ericains de premier niveau que
vous rencontrerez tr
es souvent:
edu Sites en rapport avec l'
education (coll
eges, universit
es...).
com Entreprises commerciales.
org Organisationspriv
eesnon commerciales.Beaucoup de r
eseauxUUCP
priv
es sont dans ce domaine.
net Passerelles et autres machines administratives d'un r
eseau.
mil Institutions militaires am
ericaines.
gov Institutions gouvernementales am
ericaines.
uucp Ociellement, tous les noms de sites d
epourvus de domaines utilis
es
en UUCP ont 
et
e plac
es dans ce domaine.
Techniquement, les quatre premiers appartiennent aux 
Etats-Unis, mais vous pourrez
quand m^
eme rencontrer des sites d'autres pays dans ces domaines; en particulier dans
net. En revanche, mil et gov sont exclusivement am
ericains.
En dehors des USA, chaque 
etat utilise g
en
eralement un domaine de premier niveau
bien 
a lui, constitu
e d'apr
es les deux lettres d
e nissant le code pays ISO-3166. La Fin-
lande, par exemple, utilise le domaine ; la France fr, l'Allemagne de, et l'Australie
au. En dessous, chaque NIC est libre d'organiserles noms comme il l'entend. L'Austra-
lie, par exemple, utilise des domaines de second niveau identiques aux niveaux interna-
tionaux sup
erieurs: com.au, edu.au, et ainsi de suite. D'autres, comme l'Allemagne,
n'utilisent pas cette m
ethode et pr
ef
erent avoir des noms de machines bien plus longs
repr
esentant directement les organismes g
erant des domaines particuliers. Il n'est pas
rare de rencontrer des noms d'h^
otes comme ftp.informatik.uni-erlangen.de. La
langue allemande fonctionne de m^
eme, para^
t-il...
Bien s^
ur, ces domaines nationaux n'impliquent absolument pas que les machines r
esi-
dent physiquement dans les pays correspondants; ils signalent seulement qu'elles ont

et
e enregistr
ees aupr
es du NIC de cet 
etat. Une entreprise su
edoise peut avoir une
branche australienne, mais toutes ses adresses dans le domaine de premier niveau se.
Il appara^
t donc maintenant que l'organisation de l'espace de nommage en une hi
e-
rarchie de domaines, r
esout 
el
egamment le probl
eme d'unicit
e des noms: gr^
ace au
DNS, un nom d'h^
ote n'a besoin de rester unique qu'
a l'int
erieur de son domaine pour
32 Chapitre 2. Le r
eseau TCP/IP
qu'il soit 
egalement unique au monde. De plus, les domaines quali 
es sont facilement
m
emorisables. Ces deux raisons susent d
ej
a pour vouloir s
eparer un grand domaine
en plusieurs sous-domaines.
Mais DNS peut faire bien plus encore. Il permet de d
el
eguer l'autorit
e sur un sous-
domaine 
a ses administrateurs. 
A l'universit
e Groucho Marx, les responsables peuvent
par exemple cr
eer un sous-domaine par d
epartement, nous avons d
ej
a rencontr
e ce cas
avec mathset physique. Lorsqu'ils trouverontle r
eseaudu D
epartement de Physique
trop grand et trop complexe 
a administrer, et dicile 
a appr
ehender de l'ext
erieur,
ils pourront simplement passer le contr^
ole du domaine physique.groucho.edu aux
administrateurs de ce sous-r
eseau. Ceux-ci seront alors libres de d
ecider des noms
de machines voulus et de leur assigner des adresses IP de leur r
eseau comme ils
l'entendent, sans intervention ext
erieure.
En n, l'espace de nommage est s
epar
e en zones, chacune partant d'un domaine. No-
tez bien la di 
erence subtile entre une zone et un domaine: le domaine groucho.edu
comprend toutes les machines de l'universit
e Groucho Marx, alors que la zone grou-
cho.edu ne contient que celles g
er
ees directement par le centre de calcul, celles du
D
epartement de Math
emathiques par exemple. Les h^
otes du D
epartement de Physique
appartiennent 
a une zone di 
erente, physique.groucho.edu. Dans la gure 2.3, le
d
ebut de chaque zone est rep
er
e par un petit cercle 
a droite du nom de domaine.
2.6.3 Recherche de noms avec le DNS
Au premier coup d'il, tout ce bazar de zones et domaines semble compliquer incon-
sid
er
ement la r
esolution de noms. Apr
es tout, s'il n'existe aucune autorit
e centrale
contr^
olant quels noms sont assign
es 
a quelle machine, comment diable une petite
application saura-t-elle se d
ebrouiller?
C'est l
a qu'intervient la partie la plus ing
enieuse du DNS. Si vous voulez trouver
l'adresse IP de erdos, le DNS vous dira d'aller la demander 
a ceux qui la g
erent, car
eux sauront vous l'indiquer.
En fait, le DNS est une base de donn
ees distribu
ee g
eante. Elle est impl
ement
ee par
ce que l'on appelle des serveurs de noms, qui d
elivrent les informations relatives 
a un
domaine donn
e, ou un ensemble de domaines. Pour chaque zone, il y a au moins deux,
ou un petit nombre de serveurs de noms qui d
etiennent les informations sur les h^
otes
de cette zone. Pour obtenir l'adresse IP de erdos, tout ce que vous avez 
a faire est
de contacter le serveur de noms pour la zone groucho.edu, qui vous retournera les
donn
ees d
esir
ees.
Facile 
a dire, devez-vous penser. Mais comment saurai-je contacter ce serveur de
noms de l'universit
e Groucho Marx? Et bien au cas o
u votre ordinateur ne serait
pas 
equip
e d'une boule de cristal, le DNS saura aussi vous o rir ce service. Lorsque
votre application a besoin d'obtenir des informations sur erdos, elle contacte un
serveur de noms local, qui e ectue alors une requ^
ete it
erative.Il commence par envoyer
au serveur de noms du domaine du plus haut niveau, une demande d'adresse de
2.6. DNS: Le Domain Name System 33
erdos.maths.groucho.edu. Celui-ci reconna^
t que ce nom n'appartient pas 
a sa zone
d'autorit
e, mais plut^
ot 
a l'une situ
ee en dessous du domaine edu. Par cons
equent, il
indique de contacter un serveur de noms de cette zone et joint 
a sa r
eponse la liste de
tous ces serveurs, avec leurs adresses. Votre serveur de noms local contactera alors l'un
d'entre eux, par exemple a.isi.edu. Celui-ci 
a son tour, indiquera que groucho.edu
poss
ede sa propre zone et renverra les adresses des serveurs de noms concern
es. Le
serveur de noms local pr
esenteraalors sa requ^
ete pour l'adresse de erdos
a l'un d'entre
eux, qui, nalement, reconna^
tra que ce nom appartient 
a sa zone et pourra retourner
l'adresse IP correspondante.
Tout cela peut para^
tre g
en
ererbeaucoup de tra c pour trouver une simple adresse IP,
mais c'est en r
ealit
e minuscule en comparaison de la quantit
e de donn
ees qu'il aurait
fallu transf
erer si nous en 
etions encore au chier HOSTS.TXT central. Toutefois,
cette m
ethode est encore perfectible.
A n d'am
eliorer le temps de r
eponse lors des requ^
etes suivantes, le serveur de noms
stocke les informations obtenues dans son cache local. Ainsi, la prochaine fois que
quelqu'un, sur votre r
eseau local, d
esire trouver l'adresse d'une machine du domaine
groucho.edu, votre serveur de noms n'aura pas besoin de recommencer toute la
proc
edure, et ira directement se connecter au serveur de noms de groucho.edu5.
Bien s^
ur, le serveur de noms ne conservera pas cette information ind
e niment, mais
elle sera supprim
ee au bout d'un certain temps. La dur
ee de vie des informations
contenues dans le cache est appel
ee time to live, ou TTL. Elle est positionn
ee par les
administrateurs responsables de chaque zone.
2.6.4 Serveurs de noms
Les serveurs de noms qui contiennent toutes les informations relatives aux h^
otes d'une
zone particuli
ere sont dits ayant autorit
e pour cette zone et sont quelquefois quali 
es
de serveurs de noms autoritatifs6. Toute requ^
ete concernant une machine de cette
zone nira par aboutir sur l'un de ces serveurs poss
edant l'information absolue.
A n de pouvoir o rir une image coh
erented'une zone, ses serveursma^
tres doivent^
etre
parfaitement synchronis
es. Ceci est r
ealis
e en faisant de l'un d'entre eux un serveur
primaire, qui charge les informations sur sa zone depuis des chiers de donn
ees, alors
que les autres deviennent serveurs secondaires, qui transf
erent leurs informations 
a
intervalles r
eguliers depuis le serveur primaire.
L'emploi de plusieurs serveurs de noms permet de distribuer la charge de travail, et
d'obtenir une certaine redondance des informations. Si l'un des serveurs a un probl
eme
quelconque, comme la perte de connexion r
eseau ou un arr^
et momentan
e, toutes les
5: Si aucun cache n'
etait utilis
e, le DNS serait aussi m
ediocre que n'importe quelle autre m
ethode
puisque chaque requ^
ete mettrait en jeu les serveurs de noms principaux.
6: Le mot (
( autoritatif )
) n'est pas fran
cais. Il n'existe aucune traduction satisfaisante de l'expres-
sion (
( Authoritative Name Server )
), aussi avons-nous d
ecid
e d'employer le terme utilis
e par tout le
monde dans le langage courant, m^
eme s'il s'agit d'un barbarisme.
34 Chapitre 2. Le r
eseau TCP/IP
requ^
etes aboutiront aux autres serveurs. Bien entendu, ce sch
ema ne met pas 
a l'abri
de dysfonctionnements produisant des r
eponses erron
ees 
a toutes les requ^
etes DNS,
comme des bogues dans le programme lui-m^
eme par exemple.
Bien s^
ur, vous pouvez aussi utiliser un serveur de noms qui n'a autorit
e sur aucun
domaine domaine7. Ce type de serveur peut n
eanmoins ^
etre utile, car il est toujours
capable de g
erer des requ^
etes DNS pour les applications fonctionnant sur le r
eseau
local, ainsi qu'un cache des informations. On l'appelle par cons
equent serveur caching-
only (cache seulement).
2.6.5 La base de donn
ees DNS
Nous avons vu que le DNS ne g
ere pas que des adresses IP de machines, mais qu'il

echange 
egalement des informations sur les serveurs de noms. En fait, la base de
donn
ees DNS peut poss
eder une grande quantit
e d'entr
ees di 
erentes.
Chaque information 
el
ementaire de la base de donn
ees DNS est un objet appel
e (
( re-
source record )
), ou RR en abr
eg
e. Chaque enregistrement est associ
e 
a un type d
e-
crivant le genre de donn
ees qu'il repr
esente, et une classe sp
eci ant le type de r
eseau
auquel il s'applique. Cette derni
ere permet di 
erents sch
emas d'adressage, comme les
adresses IP (classe IN), adresses r
eseaux Hesiod (utilis
e au MIT), et quelques autres.
Le RR typique est de classe A, qui associe une adresse IP avec un domaine quali 
e.
Bien s^
ur, une machine peut avoir plusieurs noms. Toutefois, un seul de ces noms
doit ^
etre d
eclar
e comme nom ociel, ou nom canonique, alors que les autres sont
simplement des alias s'y r
ef
erant. La di 
erence est que le nom canonique est celui qui
est associ
e avec l'enregistrement A, les autres faisant l'objet d'un enregistrement de
type CNAME pointant sur ce nom canonique.
Nous n'allons pas d
ecrire tous les types possibles ici | ce sera fait dans un pro-
chain chapitre | mais plut^
ot vous donner un bref exemple. La gure 2.4 montre une
partie de la base de donn
ees qui est charg
ee dans les serveurs de noms de la zone
physique.groucho.edu.
En dehors des enregistrements A et CNAME, il y en a un d'un type particulier en
haut du chier, qui s'
etend sur plusieurs lignes. C'est le resource record SOA, signalant
le d
ebut d'autorit
e, Start Of Authority, qui contient l'information g
en
erale sur la zone
pour laquelle le serveur a autorit
e. Il comprend, entre autres, le temps par d
efaut
pendant lequel tous les enregistrements doivent ^
etre conserv
es.
Notez que tous les noms dans ce chier d'exemple, qui ne se terminent pas par un
point, doivent ^
etre interpr
et
es comme relatifs au domaine groucho.edu. Le nom
sp
ecial (
( @ )
) utilis
e dans le SOA correspond au nom du domaine lui-m^
eme.
Nous avons vu plus haut que les serveurs de noms du domaine groucho.edu doivent
avoir connaissance de la zone physique de sorte qu'ils puissent pointer les requ^
etes
7: En n, presque. Un serveur de noms doit au moins o rir un service pour localhost et une
recherche inverse sur 127.0.0.1.
2.6. DNS: Le Domain Name System 35
;
; Information ayant autorit
e pour physique.groucho.edu.
@ IN SOA niels.physique.groucho.edu. janet.niels.physique.groucho.edu. (
940902 ; num
ero de s
erie
360000 ; mise 
a jour
3600 ; tentative apres echec
3600000 ; d
elai d'expiration
3600 ; ttl par d
efaut (time to live)
)
;
; Serveurs de noms
IN NS niels
IN NS gauss.maths.groucho.edu.
gauss.maths.groucho.edu. IN A 149.76.4.23
;
; Physique th
eorique (sous-r
eseau 12)
niels IN A 149.76.12.1
IN A 149.76.1.12
nameserver IN CNAME niels
otto IN A 149.76.12.2
quark IN A 149.76.12.4
down IN A 149.76.12.5
strange IN A 149.76.12.6
...
; Physique des particules (acc
el
erateur) (sous-r
eseau 14)
boson IN A 149.76.14.1
muon IN A 149.76.14.7
bogon IN A 149.76.14.12
...
Fig. 2.4 - Un extrait du chier named.hosts pour le D
epartement de Physique.
36 Chapitre 2. Le r
eseau TCP/IP
vers leurs serveurs de noms. Ceci est g
en
eralement r
ealis
e par une paire d'enregistre-
ments: NS qui donne le nom quali 
e du serveur, et un enregistrement A qui associe
une adresse 
a ce nom. Puisque ces enregistrements sont ce qui relie le tout pour que
l'espace de nommage soit maintenu unique et coh
erent, ils sont souvent appel
es glue
records (enregistrements-colle). Ce sont les seuls endroits o
u une zone contient des
informations sur les h^
otes de la zone inf
erieure. Les glue records pointant vers les
serveurs de noms de physique.groucho.edu sont montr
es dans la gure 2.5.
;
: Donn
ees pour la zone groucho.edu.
@ IN SOA vax12.gcc.groucho.edu. joe.vax12.gcc.groucho.edu. (
940701 ; num
ero de s
erie
360000 ; mise 
a jour
3600 ; tentative apr
es 
echec
3600000 ; d
elai d'expiration
3600 ; ttl par d
efaut (time to live)
)
....
;
; Glue records pour la zone physique.groucho.edu
physique IN NS niels.physique.groucho.edu.
IN NS gauss.maths.groucho.edu.
niels.physique IN A 149.76.12.1
gauss.maths IN A 149.76.4.23
...
Fig. 2.5 - Un extrait du chier named.hosts de l'universit
e Groucho Marx.
2.6.6 Requ^
etes inverses
Au lieu de rechercher une adresse IP appartenant 
a un h^
ote, on peut parfois avoir
besoin de l'inverse, c'est-
a-dire de trouver le nom canonique correspondant 
a une
adresse. C'est ce qu'on appelle la requ^
ete inverse (reverse mapping) qui est utilis
ee par
di 
erents services r
eseau pour v
eri er l'identit
e d'un client. Lorsque l'on ne poss
ede
qu'un simple chier hosts, la recherche inverse consiste simplement 
a trouver la ligne
o
u gure la machine et prendre l'adresse IP qui s'y trouve. Avec le DNS, il est hors
de question d'e ectuer une recherche exhaustive dans tout l'espace de nommage,
bien entendu. Alors, un domaine sp
ecial a 
et
e cr
e
e, in-addr.arpa., contenant les
adresses de toutes les machines en notation invers
ee. Par exemple, une adresse IP de
149.76.12.4 correspond au nom 4.12.76.149.in-addr.arpa. Le RR type reliant ces
noms 
a leurs noms canoniques est PTR.
La cr
eation d'une zone d'autorit
e signi e g
en
eralement que ses administrateurs ont
re
cu le contr^
ole total de l'assignation des adresses. Puisqu'ils ont en principe un ou
plusieurs r
eseaux IP ou sous-r
eseaux 
a leur disposition, il y a une subdivision entre les
zones DNS et les r
eseaux IP. Le D
epartement de Physique, par exemple, comprend
les sous-r
eseaux 149.76.8.0, 149.76.12.0, et 149.76.14.0.
2.6. DNS: Le Domain Name System 37
En cons
equence, de nouvelles zones du domaine in-addr.arpa doivent ^
etre cr
e
ees
avec la zone physique et d
el
egu
ees aux administrateurs r
eseau du d
epartement:
8.76.149.in-addr.arpa,12.76.149.in-addr.arpa,et 14.76.149.in-addr.arpa.Au-
trement, l'installation d'une nouvelle machine au laboratoire de physique des parti-
cules n
ecessiterait qu'ils contactent leur domaine parent pour que la nouvelle adresse
soit int
egr
ee dans leur chier de la zone in-addr.arpa.
La base de donn
ees de la zone pour le sous-r
eseau12 est montr
ee dans la gure 2.6. Les
glue records correspondants dans la base de leur zone parente sont illustr
es gure 2.7.
;
; Le domaine 12.76.149.in-addr.arpa.
@ IN SOA niels.physique.groucho.edu. janet.niels.physique.groucho.edu. (
940902 360000 3600 3600000 3600
)
2 IN PTR otto.physique.groucho.edu.
4 IN PTR quark.physique.groucho.edu.
5 IN PTR down.physique.groucho.edu.
6 IN PTR strange.physique.groucho.edu.
Fig. 2.6 - Un extrait du chier named.rev du sous-r
eseau 12.
;
; Le domaine 76.149.in-addr.arpa.
@ IN SOA vax12.gcc.groucho.edu. joe.vax12.gcc.groucho.edu. (
940701 360000 3600 3600000 3600
)
...
; sous-r
eseau 4: d
epartement math
ematiques.
1.4 IN PTR sophus.maths.groucho.edu.
17.4 IN PTR erdos.maths.groucho.edu.
23.4 IN PTR gauss.maths.groucho.edu.
...
; sous-r
eseau 12: d
epartement de physique, zone s
epar
ee.
12 IN NS niels.physique.groucho.edu.
IN NS gauss.maths.groucho.edu.
niels.physique.groucho.edu. IN A 149.76.12.1
gauss.maths.groucho.edu. IN A 149.76.4.23
...
Fig. 2.7 - Un extrait du chier named.rev du r
eseau 149.76.
Une cons
equence importante du syst
eme in-addr.arpa est que les zones ne peuvent
^
etre cr
e
ees que comme sur-ensembles de r
eseaux IP, et encore pis, que ces masques r
e-
seaux doivent ^
etre align
es sur des octets. Tous les sous-r
eseauxde l'universit
e Groucho
Marx ont un masque de 255.255.255.0, par cons
equent une zone in-addr.arpa peut
^
etre cr
e
ee pour chaque sous-r
eseau. Toutefois, si le masque 
etait 255.255.255.128,
la cr
eation de zones pour le sous-r
eseau 149.76.12.128 serait impossible, car il n'y a
38 Chapitre 2. Le r
eseau TCP/IP
aucun moyen de dire au DNS que le domaine 12.76.149.in-addr.arpa a 
et
e s
epar
e
en deux zones d'autorit
e, avec des h^
otes r
epartis de 1 
a 127, et 128 
a 255.
39
Chapitre 3
Con guration de
l'
equipement r
eseau
3.1 P
eriph
eriques, pilotes, etc.
Jusqu'
a maintenant, nous avons parl
e d'interfaces r
eseau et de TCP/IP en g
en
eral,
mais nous n'avons pas vu ce qui se passe lorsque le (
( code r
eseau )
) du noyau acc
ede

a la partie mat
erielle. Pour cela, nous devons introduire le concept d'interfaces et de
pilotes de p
eriph
eriques.
Tout d'abord, il y a bien s^
ur l'
equipement lui-m^
eme, par exemple la carte Ethernet:
C'est une plaque de r
esine Epoxy, peupl
ee de nombreux composants 
electroniques, et
ins
er
ee dans un des nombreux connecteurs d'extension de votre PC. Elle constitue ce
que l'on nomme g
en
eralement un p
eriph
erique.
Pour que vous puissiez utiliser cette carte Ethernet, le noyau de Linux doit contenir
des fonctions sp
eciales connaissant la m
ethode 
a employer pour acc
eder 
a ce p
eriph
e-
rique. Ce sont les fameux pilotes de p
eriph
eriques. Par exemple, Linux poss
ede des
pilotes pour plusieurs marques de cartes Ethernet qui se ressemblent beaucoup. Ils
sont connus en tant que (
( s
erie Becker )
), du nom de leur auteur, Donald Becker. Un
exemple di 
erent, le pilote D-Link g
ere un adaptateur de poche D-Link qui se branche
sur le port parall
ele du PC.
Mais, lorsque nous disons qu'un pilote (
( g
ere)
) un p
eriph
erique, qu'entendons-nous par
l
a? Revenons 
a la carte Ethernet que nous examinions tout 
a l'heure. Le pilote doit
^
etre capable de communiquer par un moyen quelconque avec la logique pr
esente sur
ce montage 
electronique: il doit pouvoir lui envoyer des commandes et des donn
ees,
et la carte doit d
elivrer toute donn
ee re
cue 
a ce pilote.
Dans les PC, cette communication se fait par l'interm
ediaire d'une zone de m
emoire
destin
ee aux entr
ees/sorties (E/S) qui donne acc
es aux registres de la carte. Toutes
40 Chapitre 3. Con guration de l'
equipement r
eseau
eth2
eth0 eth1 eth3
Code r
eseau du noyau Linux
Pilote SMC Pilote 3Com
Interface
p
eriph
erique
Pilote de
r
eseau
Mat
eriel
Fig. 3.1 - Les relations entre les interfaces, les pilotes et le mat
eriel.
3.1. P
eriph
eriques, pilotes, etc. 41
les commandes et les donn
ees que le noyau envoie doivent passer par ces registres. La
m
emoire d'E/S est g
en
eralement d
ecrite en donnant son adresse de d
epart, ou adresse
de base. Les adresses de base typiques pour les cartes Ethernet sont 0x300 ou 0x360.
En principe, vous n'avez pas 
a vous occuper de ces probl
emes mat
eriels, car le noyau
teste ces caract
eristiques lors de l'amor
cage pour tenter de d
etecter les p
eriph
eriques
install
es. Il lit plusieurs adresses m
emoire et compare les donn
ees trouv
ees avec ce
qu'il devrait voir si certaines cartes Ethernet 
etaient pr
esentes. Toutefois, il est pos-
sible qu'il n'arrive pas 
a d
etecter certain mat
eriel; c'est parfois le cas avec des cartes
Ethernet bon march
e qui ne sont pas des clones parfaits des r
ealisations standard
d'autres constructeurs. De plus, Linux n'essaiera de d
etecter que le premier p
eriph
e-
rique Ethernet. Si vous utilisez plusieurs cartes, il vous faudra l'indiquer explicitement
au noyau.
Vous pourrez aussi parfois ^
etre oblig
e d'indiquer au noyau un autre param
etre: la
ligne d'IRQ (interruptions mat
erielles). Les p
eriph
eriques g
en
erent une interruption
pour indiquer au noyau qu'ils ont besoin qu'il s'occupe d'eux, par exemple lorsque
des donn
ees sont arriv
ees ou qu'un 
ev
enement sp
ecial s'est produit. Dans un PC,
ces signaux 
electriques peuvent se produire sur l'une des 15 lignes d'interruption,
num
erot
ees de 0 
a 15.1 Le num
ero du canal d'interruption assign
e 
a un p
eriph
erique
est appel
e son IRQ, pour r
esumer.
Comme nous l'avons expliqu
e dans le chapitre 2, le noyau acc
ede 
a un p
eriph
erique
par l'interm
ediaire d'une interface. Les interfaces sont des parties logicielles qui o rent
un ensemble de fonctions communes pour tout type de mat
eriel, comme l'envoi ou la
r
eception de datagrammes.
On les identi e par des noms, d
e nis directement 
a l'int
erieur du noyau; ce ne sont pas
des chiers d
ecrivant un p
eriph
erique comme ceux pr
esents dans le r
epertoire /dev.
Les noms courants pour les interfaces Ethernet sont eth0, eth1, etc. L'assignation des
interfaces aux p
eriph
eriques d
epend souvent de l'ordre dans lequel ils ont 
et
e con gu-
r
es et d
etect
es. Par exemple, la premi
ere carte Ethernet install
ee deviendra eth0, la
suivante eth1, et ainsi de suite. Les interfaces SLIP et PPP sont g
er
ees di 
eremment
des autres, car elles sont dynamiques: chaque fois qu'une telle connexion est 
etablie,
le noyau assigne une nouvelle interface au port s
erie concern
e.
Les relations entre le mat
eriel, les pilotes de p
eriph
eriques et les interfaces sont illus-
tr
ees dans la gure 3.1.
Lors de l'amor
cage, le noyau ache quels sont les p
eriph
eriques qu'il a pu d
etecter
et le nom des interfaces qu'il leur a assign
e. Voici un tout petit extrait de ce que l'on
peut voir 
a l'
ecran lors du d
emarrage de Linux:
.
.
This processor honours the WP bit even when in supervisor mode. Good.
1: Les IRQ 2 et 9 sont les m^
emes, car le PC poss
ede deux processeurs d'interruption g
erant 8
lignes chacun, mont
es en cascade. Le processeur secondaire est connect
e 
a la ligne IRQ 2 du premier.
42 Chapitre 3. Con guration de l'
equipement r
eseau
Floppy drive(s): fd0 is 1.44M
Swansea University Computer Society NET3.010
IP Protocols: ICMP, UDP, TCP
PPP: version 0.2.1 (4 channels) OPTIMIZE_FLAGS
TCP compression code copyright 1989 Regents of the University of California
PPP line discipline registered.
SLIP: version 0.7.5 (4 channels)
CSLIP: code copyright 1989 Regents of the University of California
dl0: D-Link DE-600 pocket adapter, Ethernet Address: 00:80:C8:71:76:95
Checking 386/387 coupling... Ok, fpu using exception 16 error reporting.
Linux version 1.1.11 (okir@monad) #3 Sat May 7 14:57:18 MET DST 1994
Nous voyons que le noyau a 
et
e compil
e avec le support de TCP/IP et qu'il comprend
des pilotes pour SLIP, CSLIP et PPP. La troisi
eme ligne en partant de la n indique
qu'un adaptateur D-Link a 
et
e d
etect
e et install
e en tant qu'interface dl0. Si vous
avez une carte Ethernet, le noyau achera une ligne commen
cant par eth0, suivie par
le type de carte d
etect
ee, par exemple:
eth0: 3c509 at 0x300 tag 1, BNC port, address 00 60 8c 53 d4 1d, IRQ 15.
3c509.c:1.03 10/8/94 becker@cesdis.gsfc.nasa.gov
Si vous avez install
e une carte Ethernet et qu'aucun message de ce type n'appara^
t,
c'est que le noyau est incapable de d
etecter la carte correctement. Nous verrons com-
ment rem
edier 
a cette situation un peu plus loin.
3.2 Con guration du noyau
La plupart des distributions binaires de Linux sont fournies avec une disquette d'amor-

cage qui convient 
a tous les 
equipements courants des PC. Cela signi e que le noyau
contient toutes sortes de pilotes pr
econ gur
es dont vous n'aurez jamais besoin, mais
qui g^
achent inutilement votre pr
ecieuse m
emoire. Par cons
equent, vous devrez g
en
e-
ralement vous constituer votre propre version du noyau, ne contenant que ce dont
vous aurez r
eellement besoin.
Avec Linux, vous devrez vous habituer 
a recompiler le noyau. Cette op
eration est
d
ecrite dans l'ouvrage Le Syst
eme Linux, de Matt Welsh (voir l'annexe (
( Bibliogra-
phie )
)). Ici, nous nous limiterons aux options de con gurations qui concernent le
r
eseau.
La commande make config commencera par vous demander de choisir certaines op-
tions de con guration g
en
erale, par exemple si vous poss
edez un coprocesseur ma-
th
ematique ou non. L'une de ces options concernera le r
eseau; lorsque vous verrez
(
( TCP/IP networking )
), r
epondez y 
a la question (sinon votre noyau sera incapable
de travailler en r
eseau).
3.2. Con guration du noyau 43
3.2.1 Options du noyau dans Linux 1.0 et au-del
a
Apr
es cette partie, le programme de con guration vous proposera di 
erentes choses
commes les pilotes SCSI, etc. Suivra une liste de questions concernant le support du
r
eseau. Ces options sont en constante 
evolution au fur et 
a mesure du d
eveloppement
du noyau et de nouveaux pilotes, aussi ce que vous verrez s'acher chez vous pourra
di 
erer l
eg
erement de ce que vous lirez ici. Typiquement, la liste des options o ertes
par la plupart des noyaux Linux aux alentours des versions 1.0 et 1.1 ressemble 
a ceci:
*
* Network device support
*
Network device support? (CONFIG_ETHERCARDS) [y]
En d
epit de ce qui est 
ecrit entre parenth
eses, vous devez r
epondre y quel que soit
le type de p
eriph
erique r
eseau, Ethernet, SLIP, ou PPP. En r
epondant y, le support
Ethernet est valid
e automatiquement; mais les autres types de pilotes r
eseau feront
l'objet de questions s
epar
ees.
SLIP (serial line) support? (CONFIG_SLIP) [y]
SLIP compressed headers (SL_COMPRESSED) [y]
PPP (point-to-point) support (CONFIG_PPP) [y]
PLIP (parallel port) support (CONFIG_PLIP) [n]
Ces questions concernent les di 
erentes couches de protocoles support
ees par Linux.
SLIP permet le transport de datagrammes IP sur les ports s
erie; CSLIP en est une
am
elioration, les en-t^
etes TCP/IP sont compress
es. Notez que cette option ne valide
pas automatiquent CSLIP, mais inclut les fonctions n
ecessaires dans le noyau pour
pouvoir l'utiliser 
eventuellement.
PPP est un autre protocole utilis
e pour r
ealiser une liaison r
eseau 
a travers des liaisons
s
erie. Il est bien plus souple que SLIP et n'est pas limit
e 
a IP; il peut tranf
erer
n'importe quel type de paquet r
eseau. Si cette option n'appara^
t pas chez vous, c'est
que vous poss
edez une version peu r
ecente de Linux.
PLIP permet d'envoyer des datagrammes IP 
a travers un port imprimante parall
ele.
Peu performant, il est surtout utilis
e pour communiquer tant bien que mal avec des
PC fonctionnant sous MS-DOS, ou sur des machines portables d
epourvues de cartes
Ethernet.
Les questions suivantes concernent les cartes Ethernet de di 
erents constructeurs.
De jour en jour, de nouveaux pilotes appara^
ssent et par cons
equent vous verrez de
plus en plus de questions ajout
ees 
a cette section. Si vous d
esirez r
ealiser un noyau
utilisable sur plusieurs machines 
equip
ees de cartes di 
erentes, vous pouvez valider
plusieurs pilotes.
NE2000/NE1000 support (CONFIG_NE2000) [y]
WD80*3 support (CONFIG_WD80x3) [n]
44 Chapitre 3. Con guration de l'
equipement r
eseau
SMC Ultra support (CONFIG_ULTRA) [n]
3c501 support (CONFIG_EL1) [n]
3c503 support (CONFIG_EL2) [n]
3c509/3c579 support (CONFIG_EL3) [n]
HP PCLAN support (CONFIG_HPLAN) [n]
AT1500 and NE2100 (LANCE and PCnet-ISA) support (CONFIG_LANCE) [n]
AT1700 support (CONFIG_AT1700) [n]
DEPCA support (CONFIG_DEPCA) [n]
D-Link DE600 pocket adaptor support (CONFIG_DE600) [y]
AT-LAN-TEC/RealTek pocket adaptor support (CONFIG_ATP) [n]
*
* CD-ROM drivers
*
...
En n, dans la section consacr
ee aux syst
emes de chiers, le script de con guration
vous demandera si vous voulez le support de NFS, le syst
eme de chiers par r
eseau.
Il vous permet de monter ou d'exporter des disques durs distants 
a travers le r
eseau,
ceux-ci apparaissant de mani
ere transparente comme s'ils 
etaient locaux, directement
connect
es 
a la machine.
NFS filesystem support (CONFIG_NFS_FS) [y]
3.2.2 Options du noyau 
a partir de Linux 1.1.14

A partir de la version 1.1.14 de Linux, o
u un support de IPX en alpha-test t son
apparition, la proc
edure de con guration a l
eg
erement chang
e. La section concernant
les options g
en
erales demande maintenant si l'on d
esire le support r
eseau en g
en
eral.
Elle est imm
ediatement suivie par quelques questions concernant diverses options
possibles.
*
* Networking options
*
TCP/IP networking (CONFIG_INET) [y]
Pour pouvoir utiliser TCP/IP, vous devez r
epondre y 
a cette question. Si vous r
epon-
dez n, vous pourrez toutefois compiler le noyau avec le support IPX.
IP forwarding/gatewaying (CONFIG_IP_FORWARD) [n]
Vous devez valider cette option si votre syst
eme fonctionne en passerelle entre deux
r
eseaux Ethernet, ou encore entre un r
eseau et un lien SLIP/PPP. Bien qu'il n'y ait
aucun inconv
enient majeur 
a laisser cette possibilit
e en service, vous pouvez pr
ef
erer
ne pas la valider a n de con gurer votre machine en tant que rewall. Les Firewalls
sont des h^
otes connect
es 
a deux r
eseaux ou plus, mais qui ne routent aucun tra c
entre eux. Ils sont couramment employ
es pour o rir des acc
es Internet 
a moindres
3.2. Con guration du noyau 45
risques pour le r
eseau local interne. Les utilisateurs sont autoris
es 
a se connecter sur
le rewall et acc
eder ainsi 
a l'Internet, mais les machines locales sont prot
eg
ees de
toute attaque ext
erieure puisqu'aucune connexion ne pourra traverser ce rewall.
*
* (it is safe to leave these untouched)
*
PC/TCP compatibility mode (CONFIG_INET_PCTCP) [n]
Cette option permet d'
eviter de d
eclencher un bogue dans certaines versions de
PC/TCP, une impl
ementation commerciale de TCP/IP pour le syst
eme MS-DOS.
Si vous la validez, vous pourrez toujours communiquer avec le reste du monde, mais
les performances peuvent devenir m
ediocres sur les liaisons 
a faible vitesse.
Reverse ARP (CONFIG_INET_RARP) [n]
Ici, il s'agit de valider ou non le protocole RARP (Reverse Address Resolution Pro-
tocol). Il sert aux stations diskless et aux terminaux X, qui ont besoin d'obtenir leur
adresse IP au d
emarrage. Vous ne devez valider RARP que si vous compter utiliser
de tels clients.
Assume subnets are local (CONFIG_INET_SNARL) [y]
Lorsqu'il envoie des donn
ees par TCP, le noyau doit les tron
conner en plusieurs pa-
quets avant de les passer 
a la couche IP. Pour les h^
otes pouvant ^
etre atteints par un
r
eseau local comme l'Ethernet, il cr
eera des paquets plus grands que pour ceux qui
vont parcourir une longue distance2. Si vous ne validez pas SNARL ((
( SubNets ARe
Local )
), les sous-r
eseaux sont locaux), le noyau consid
erera qu'un r
eseau n'est local
que s'il y a une interface y 
etant directement rattach
ee. Toutefois, si vous regardez le
r
eseau de classe B de l'universit
e Groucho Marx, la totalit
e de cette classe B est locale,
mais la plupart des h^
otes sont interfac
es avec seulement un ou deux sous-r
eseaux. Si
vous validez SNARL, le noyau pourra consid
erer que tous les sous-r
eseaux sont locaux
et utiliser de grands paquets avec toutes les machines du campus.
Si vous avez besoin de paquets de plus petite taille en direction de certains h^
otes (parce
que les donn
ees passent par exemple par une liaison modem SLIP), vous pourrez le
faire gr^
ace 
a l'option mtu de la commande route, qui est bri
evement d
ecrite 
a la n
de ce chapitre.
Disable NAGLE algorithm (normally enabled) (CONFIG_TCP_NAGLE_OFF) [n]
L'algorithme de Nagle permet d'
eviter d'envoyer des paquets IP particuli
erement
petits, appel
es tinygrams. Ils sont souvent cr
e
es par les outils interactifs qui ont 
a
2: Cette m
ethode permet d'
eviter la fragmentation par des liens qui ont une taille de paquet
maximale tr
es r
eduite.
46 Chapitre 3. Con guration de l'
equipement r
eseau
transmettre par le r
eseau tr
es peu de donn
ees 
a la fois, comme telnet ou rsh. Sur des
liaisons lentes, comme celles r
ealis
ees par modem, ils constituent une perte de d
ebit
importante. Cet algorithme tente d'
eviter ce ph
enom
ene en retenant la transmission
de donn
ees TCP quelques instants, en certaines circonstances. Vous n'aurez besoin de
supprimer cette fonction que si vous avez de s
erieux et fr
equents probl
emes de perte
de datagrammes.
The IPX protocol (CONFIG_IPX) [n]
Cette option valide le support de IPX, le protocole de transport utilis
e par les r
eseaux
Novell. Il est toujours en d
eveloppement, et n'est pas tr
es utilisable pour l'instant.
Le d
eveloppement est bloqu
e en raison du manque d'information disponible sur les
di 
erentes couches de ce protocole, qui n'est pas du domaine public: les sp
eci cations
sont vendues 
a un prix inadmissible, et selon une clause de non-divulgation. Si la
situation se d
ebloque, il sera peut-^
etre possible dans l'avenir d'
echanger des donn
ees
avec des utilitaires MS-DOS utilisant IPX et de router du tra c entre des r
eseaux
Novell 
a travers une liaison PPP.

A partir de la version 1.1.16, Linux o re un nouveau type de pilote, le pilote dummy;
que l'on peut traduire par (
( bidon )
), vous allez voir pourquoi. La question suivante
appara^
t vers le d
ebut de la section concernant les pilotes r
eseau:
Dummy net driver support (CONFIG_DUMMY) [y]
Ce pilote ne fait pas grand-chose, mais il est tr
es utile sur des machines isol
ees ou
reli
ees uniquement en SLIP ou PPP. C'est, en r
esum
e, une interface loopback sup-
pl
ementaire, qui permet aux machines faisant du SLIP mais n'ayant aucune liaison
Ethernet, d'avoir une interface correspondant en permanence 
a votre adresse IP. Vous
trouverez des explications plus d
etaill
ees sur le sujet dans la section The Dummy
Interface du chapitre 5, 
a la page 74.
3.3 Tour d'horizon des pilotes r
eseau de Linux
Le noyau de Linux supporte un bon nombre de pilotes pour divers types de p
eriph
e-
riques r
eseau. Cette section propose un bref aper
cu des di 
erentes familles existantes,
et le nom des interfaces associ
ees.
Vous trouverez ci-dessous la liste des noms standards attribu
es aux interfaces r
eseau
sous Linux. La plupart des pilotes supportent plus d'une interface, dans ce cas celles-ci
sont num
erot
ees 
a partir de z
ero (comme eth0, eth1, ainsi de suite).
lo L'interface locale loopback. Utilis
ee 
a des ns de tests, ou par quelques
applications r
eseau. Elle fonctionne comme un circuit ferm
e dans le-
quel tout datagramme 
ecrit sera imm
ediatement retourn
e 
a la couche
3.4. Installation Ethernet 47
r
eseaudu syst
eme. Il y a toujours une interface loopback pr
esentedans
le noyau, et il n'y a que peu d'int
er^
et 
a en disposer de plusieurs.
eth0, eth1: : : Cartes Ethernet. Il s'agit du nom g
en
erique de la plupart de ces
p
eriph
eriques.
dl0, dl1: : : Ces interfaces permettent d'acc
eder 
a un adaptateur de poche D-Link
DE-600, un autre p
eriph
erique Ethernet. Il est un peu sp
ecial, en ce
sens qu'il est pilot
e par le port imprimante parall
ele du PC.
sl0, sl1: : : Interfaces SLIP. Elles sont associ
ees aux ports s
erie, dans l'ordre o
u
elles sont allou
ees pour une liaison SLIP. Le noyau supporte jusqu'
a
quatre interfaces de ce type (16 sur option dans les versions r
ecentes).
ppp0, ppp1: : : Interfaces PPP. Tout comme les pr
ec
edentes, elles sont associ
ees 
a
chaque port s
erie pass
e en mode PPP. Pour l'instant, il peut y en
avoir jusqu'
a quatre, ou plus en modi ant l
eg
erement le code source.
plip0, plip1: : : Interfaces PLIP, permettant de transporter des datagrammes IP par
les ports imprimante parall
ele. Jusqu'
a trois interfaces de ce type
sont support
ees; elles sont allou
ees par le pilote PLIP au moment de
l'amor
cage du syst
eme, pour chaque port parall
ele.
Lorsque d'autres pilotes de p
eriph
eriques verront le jour, comme ISDN, AX.25 (qui
sont en stade alpha de d
eveloppement), ou autres, de nouveaux noms feront leur
apparition.
Dans les sections suivantes, nous allons aborder en d
etail l'utilisation des pilotes d
e-
crits ci-dessus.
3.4 Installation Ethernet
Le code r
eseau du noyau de Linux supporte diverses marques de cartes Ethernet. L'es-
sentiel des pilotes a 
et
e 
ecrit par Donald Becker (becker@cesdis.gsfc.nasa.gov),
auteur d'une famille de pilotes pour les cartes construites autour du circuit 8390
de National Semiconductor, connue maintenant sous le nom de (
( s
erie Becker )
). Il
y a 
egalement de quoi g
erer l'adaptateur D-Link, qui permet de connecter un r
e-
seau Ethernet par le port parall
ele, ce pilote est r
ealis
e par David C. Davies (da-
vies@wanton.lkg.dec.com).
3.4.1 C^
ablage Ethernet
Si vous installez un r
eseau Ethernet pour la premi
ere fois de votre vie, quelques mots
sur son c^
ablage ne seront pas de trop ici. L'Ethernet est tr
es sensible 
a la qualit
e des
liaisons; le c^
able doit ^
etre termin
e 
a chacun des deux bouts par une r
esistance de 50 ,
48 Chapitre 3. Con guration de l'
equipement r
eseau
et vous ne devez pas cr
eer de branches (c'est-
a-dire de connexion en 
etoile). Si vous
employez un c^
able coaxial avec des connecteurs en (
( T )
), ces connecteurs doivent ^
etre
branch
es directement sur la carte Ethernet: vous ne devez jamais ins
erer un c^
able 
a
cet endroit.
Si vous vous connectez sur un (
( gros )
) Ethernet, vous devrez brancher votre machine
par l'interm
ediaire d'un transceiver (appel
e quelquefois Ethernet Attachment Unit).
Il peut se brancher dans la prise AUI 
a 15 broches de votre carte Ethernet. Mais il
est aussi possible d'employer un c^
able blind
e entre le transceiver et la prise AUI.
3.4.2 Cartes support
ees
Une liste compl
ete des cartes Ethernet support
ees par Linux est disponible dans le
document (
( Ethernet HOWTO )
), qui est post
e tous les mois dans le forum Usenet
comp.os.linux.anwers, par Paul Gortmaker3.
La liste ci-dessous contient les cartes les plus connues support
ees par Linux. La liste
originale est au moins trois fois plus longue. M^
eme si votre mat
eriel est cit
e ici,
consultez d'abord le HOWTO; il y a souvent de petits d
etails importants 
a savoir
pour con gurer correctement certains 
equipements. Un excellent exemple: certaines
cartes Ethernet utilisent par d
efaut le m^
eme canal DMA (acc
es direct m
emoire) que
le contr^
oleur SCSI Adaptec 1542. Si vous ne changez rien sur ces cartes, votre disque
dur risque de contenir des donn
ees erratiques 
a chaque paquet r
eseau re
cu...
3Com EtherLink
Sont support
es parfaitement les mod
eles 3c503 et 3c503/16, ainsi que
les 3c507 et 3c509. La carte 3c501 fonctionnera 
egalement sous Linux,
mais est bien trop m
ediocre pour une r
eelle utilisation.
Novell Eagle NE1000 et NE2000, et une grande quantit
e de clones. Les mod
eles
NE1500 et NE2100 sont 
egalement support
es.
Western Digital/SMC
WD8003 et WD8013 (les m^
emes que SMC Elite et SMC Elite Plus)
sont support
ees, ainsi que la nouvelle SMC Elite 16 Ultra.
Hewlett Packard
HP 27252, HP 27247B, et HP J2405A.
D-Link Adaptateur (
( pocket )
) DE-600, DE-100, DE-200, et DE-220-T. Il
existe aussi un patch pour faire fonctionner la DE-650-T, qui est une
carte PCMCIA4.
DEC DE200 (32K/64K), DE202, DE100, et DEPCA r
evision E.
3: Paul peut ^
etre joint 
a l'adresse gpg109@rsphysse.anu.edu.au.
4: On peut l'obtenir, ainsi que d'autres utilitaires, sur les sites miroir Linux comme tsx-
11.mit.edu ou en France ftp.ibp.fr, dans /pub/linux/packages/laptops.
3.4. Installation Ethernet 49
Allied Teliesis AT1500 et AT1700.
Pour utiliser l'une de ces cartes sous Linux, vous pouvez employer un noyau pr
e-
compil
e en provenance de l'une des principales distributions binaires du syst
eme;
tous les pilotes correspondants y sont g
en
eralement int
egr
es. Toutefois, 
a terme, la
meilleure solution sera de vous compiler votre propre noyau avec la con guration
exacte dont vous aurez besoin.
3.4.3 Autod
etection des cartes Ethernet
Lors de l'amor
cage de Linux, le noyau va essayer de localiser votre carte Ethernet et
en d
eterminer le type. Le tableau suivant montre l'ordre dans lequel ces tests sont
e ectu
es (le premier est en haut) et les adresses test
ees.
Carte Adresses test
ees
SMC 16 Ultra 0x300, 0x280
3c501 0x280
3c503 0x300, 0x310, 0x330, 0x350, 0x250,
0x280, 0x2a0, 0x2e0
NEx000 0x300, 0x280, 0x320, 0x340, 0x360
HP 0x300, 0x320, 0x340, 0x280, 0x2C0,
0x200, 0x240
DEPCA 0x300, 0x320, 0x340, 0x360
Cette d
etection automatique pose deux probl
emes. Le premier est que le code peut
ne pas d
etecter correctement toutes les cartes; c'est particuli
erement vrai dans le cas
de clones bon march
e courants et pour quelques cartes de type WD80x3. Le second
probl
eme, est que le noyau ne prendra en compte qu'une seule carte Ethernet, la
premi
ere rencontr
ee, et ne cherchera pas plus loin. Ce comportement est volontaire,
car on suppose que, dans ce cas, vous voulez contr^
oler quelle carte est assign
ee 
a quelle
interface.
Si vous utilisez plusieurs cartes Ethernet dans la m^
eme machine, ou si l'autod
etection

echoue, il vous faudra indiquer au noyau le mat
eriel utilis
e et les adresses de base 
a
prendre en compte.
Avec Net-3, il y a deux fa
cons de faire. L'une consiste 
a changer ou ajouter les infor-
mations n
ecessaires dans le chier drivers/net/Space.c des sources du noyau. Cette
m
ethode n'est recommand
ee que si vous connaissez bien le code r
eseau de Linux.
L'autre solution, bien meilleure, consiste 
a indiquer ces informations au moment de
l'amor
cage de Linux. Si vous utilisez lilo pour lancer votre syst
eme, il vous est pos-
sible de passer des param
etres au noyau en les sp
eci ant par l'option append du chier
50 Chapitre 3. Con guration de l'
equipement r
eseau
lilo.conf. Pour informer Linux de la pr
esence d'une carte Ethernet particuli
ere, vous
pouvez mettre:
ether=irq,adresse,param1,param2,nom
Les quatre premiers param
etres sont num
eriques, le dernier est le nom du p
eriph
e-
rique. Toutes les valeurs num
eriques sont optionnelles; si l'une d'elles est omise ou
initialis
ee 
a z
ero, le noyau tentera de la d
etecter automatiquement ou utilisera une
valeur par d
efaut.
Le premier param
etre ajuste la ligne d'IRQ assign
ee au p
eriph
erique. Par d
efaut, le
noyau tentera une autod
etection; le pilote pour 3c503 a la particularit
e de s
electionner
une IRQ libre parmi les IRQ 5, 9, 3 et 4, et con gure la carte pour cette valeur.
Le param
etre adresse donne l'adresse de base d'entr
ees/sorties de la carte; la valeur
z
ero indique qu'il faudra tenter une d
etection automatique aux adresses cit
ees plus
haut.
Les deux param
etres restants peuvent avoir di 
erentes signi cations selon les pilotes.
Pour ce qui est des cartes utilisant de la m
emoire partag
ee, comme les WD80x3,
ils sp
eci ent le d
ebut et la n de cette zone de m
emoire. D'autres cartes utilisent
param1 pour ajuster le niveau des messages de d
eboguage ach
es. Les valeurs de
1 
a 7 correspondent 
a une verbosit
e croissante, alors que 8 les supprimera tous; 0
d
enote la valeur par d
efaut. Les pilotes 3c503 utilisent param2 pour s
electionner le
transceiver interne (d
efaut) ou un bo^
tier externe (avec une valeur de 1). Le premier
utilise le connecteur BNC, le second le port AUI de la carte.
Si vous avez deux cartes Ethernet, vous pouvez laisser Linux d
etecter la premi
ere et
passer les param
etres pour la seconde par lilo. Vous devez toutefois faire attention
que le pilote ne trouve pas accidentellement la seconde carte avant la premi
ere, vous
disposez pour cela de l'option reserve de lilo, qui indique explicitement au noyau
d'
eviter de tester l'espace d'E/S occup
e par cette seconde carte.
Par exemple, pour que Linux installe un second adaptateur Ethernet 
a 0x300 en tant
que eth1, vous passerez les param
etres suivants:
reserve=0x300,32 ether=0,0x300,eth1
L'option reserve permet d'^
etre assur
e qu'aucun pilote ne tentera d'acc
eder 
a l'espace
d'entr
ees/sorties de la carte pour tenter d'autod
etecter quelque p
eriph
erique. Vous
pouvez 
egalement utiliser les param
etres du noyau pour forcer l'autod
etection de
eth0:
reserve=0x340,32 ether=0,0x340,eth0
Pour supprimer toute d
etection automatique, vous pouvez sp
eci er un argument
adresse de valeur -1:
ether=0,-1,eth0
3.5. Le pilote PLIP 51
3.5 Le pilote PLIP
PLIP signi e Parallel Line IP (IP sur port parall
ele) et constitue une m
ethode 
econo-
mique pour communiquer en r
eseau lorsque vous n'avez que deux machines 
a connec-
ter. Il utilise le port imprimante parall
ele et un c^
able sp
ecial, et permet des vitesses
de 10 
a 20 kbps.
PLIP fut originellement d
evelopp
e par la soci
et
e Crynwr, Inc. Sa r
ealisation est plut^
ot
ing
enieuse: Depuis toujours, le port parall
ele des PC n'est qu'un port imprimante
unidirectionnel; les huit lignes de donn
ees ne pouvaient ^
etre utilis
ees que pour envoyer
du PC vers le p
eriph
erique, mais pas dans l'autre sens. PLIP s'a ranchit de cette
limitation en utilisant les cinq lignes de statut du port pour l'entr
ee des donn
ees, ce
qui oblige 
a transf
erer des demi-octets. Ce mode op
eratoire s'appelle le mode PLIP 0.
De nos jours, ces ports unidirectionnels ne semblent plus ^
etre utilis
es; par cons
equent,
il y a une extension nomm
ee mode 1 qui utilise l'interface 8 bits.
Pour l'instant, Linux ne supporte que le mode 0. Contrairement aux toutes premi
eres
versions du code, il tente maintenant d'^
etre compatible avec les impl
ementations PLIP
de Crynwr, aussi bien qu'avec le pilote PLIP du programme NCSA telnet.5 Pour
connecter deux machines par PLIP, il vous faut un c^
able sp
ecial que l'on peut acheter
chez certains revendeurs sous le nom de (
( Null Printer )
) ou (
( Turbo Laplink )
). Vous
pouvez toutefois le r
ealiser vous-m^
eme; c'est tr
es simple et bien plus 
economique.
L'annexe A vous montrera comment.
Le pilote PLIP de Linux est le r
esultat du travail d'innombrables participants; il est
actuellement maintenu par Niibe Yutaka. Lorsqu'il est inclus dans le noyau, il cr
ee
une interface r
eseau pour chacun des ports imprimante possibles, plip0 correspondant
au premier (lp0), plip1 
etant le second (lp1), et ainsi de suite. La correspondance entre
ces interfaces et les ports est la suivante:
Interface Port E/S IRQ
plip0 0x3BC 7
plip1 0x378 7
plip2 0x278 5
Si vous avez con gur
e votre port parall
ele di 
eremment, vous devrez changer ces
valeurs dans le chier drivers/net/Space.c des sources du noyau de Linux et recompiler
une nouvelle version.
Les ports imprimante restent utilisables normalement: ils ne sont pris en charge par
le pilote PLIP que lorsque l'interface correspondante est con gur
ee (
( up )
).
5: NCSA telnet est un c
el
ebre programme pour MS-DOS qui fournit TCP/IP sur Ethernet ou
PLIP, et supporte telnet et FTP.
52 Chapitre 3. Con guration de l'
equipement r
eseau
3.6 Les pilotes SLIP et PPP
SLIP (Serial Line IP) et PPP (Point-to-Point Protocol) sont tr
es utilis
es pour transf
e-
rer des paquets IP par des liaisons s
erie. Beaucoup de fournisseurs de connectivit
e IP
o rent des acc
es 
a l'Internet par connexion t
el
ephonique, 
a l'aide d'un modem et de
SLIP ou PPP (seul moyen nanci
erement 
a la port
ee des particuliers pour l'instant).
Pour employer ces protocoles, aucune modi cation mat
erielle n'est 
a e ectuer; vous
pouvez utiliser n'importe quel port s
erie. Comme la con guration de ces ports s
erie
n'est pas sp
eci que 
a TCP/IP, un chapitre s
epar
e y est consacr
e. Pour plus d'infor-
mations, consultez par cons
equent le chapitre 4, page 53.
53
Chapitre 4
Con guration des ports s
erie
Certaines rumeurs rapportent qu'il y aurait des gens n'ayant qu'un ordinateur, et
trop pauvres pour s'o rir une liaison Internet T1. Il para^
trait que pour acc
eder tout
de m^
eme au courrier 
electronique et aux News Usenet, ils utilisent des connexions
SLIP, des r
eseaux UUCP et des serveurs BBS, qui passent par le r
eseau t
el
ephonique
public.
Ce chapitre est destin
e 
a aider tous ceux qui, comme eux, sont reli
es au reste du monde
gr^
ace 
a un modem. Toutefois, nous ne pourrons entrer dans le d
etail ici, comme la
con guration du modem en r
eponse pour r
ealiser un serveur par exemple. Consultez
le document Linux Serial HOWTO de Greg Hankins1, qui est post
e r
eguli
erement
dans le forum Usenet comp.os.linux.announce, pour obtenir des renseignements
plus pr
ecis.
4.1 Programmes de communication pour modems
Vous trouverez bon nombre de programmes de communications fonctionnant sous
Linux. Beaucoup d'entre eux sont des 
emulateurs de terminaux, qui permettent de
se connecter 
a un autre ordinateur comme depuis un simple terminal. Le programme
traditionnel permettant cela sous UNIX est kermit. Mais ses possibilit
es sont plut^
ot
r
eduites, il existe bien d'autres logiciels plus souples et ergonomiques, comportant
annuairest
el
ephoniques,langagesscript, etc. L'un deux, minicom, ressemble beaucoup
aux programmesde communications pour MS-DOS, tant dans son apparence que dans
son utilisation. Il en existe 
egalement pour X Window, seyon par exemple.
Il existe aussi un certain nombre de logiciels de BBS, pour ceux qui d
esirent monter
un serveur de ce type. On peut en trouver par exemple sur sunsite.unc.edu dans le
r
epertoire /pub/Linux/system/Network.
1: On peut joindre Greg 
a l'adresse gregh@cc.gatech.edu.
54 Chapitre 4. Con guration des ports s
erie
En dehors des 
emulateurs de terminaux, il existe aussi des programmes utilisant une
liaison s
erie non interactive pour transporter des donn
ees entre ordinateurs. En e et, il
est beaucoup plus rapide de t
el
echargerde mani
ereautomatique quelques douzainesde
kilo-octets que de lire votre courrier en restant connect
e, par exemple. En contrepartie,
cela demande bien plus de place disque en raison des informations inutiles que vous
ne lirez pas, mais transf
ererez quand m^
eme; particuli
erement dans les News Usenet.
Le meilleur exemple de ce type de logiciels de communication est UUCP. Il s'agit
d'une s
erie de programmes qui copient des chiers entre ordinateurs, ex
ecutent des
commandes sur la machine distante, etc. UUCP est fr
equemment utilis
e pour le trans-
port du courrier 
electronique et de Usenet dans les r
eseaux priv
es. L'ensemble Taylor-
UUCP, de Ian Taylor, qui fonctionne aussi sous Linux, sera d
ecrit dans le chapitre
suivant. Il existe d'autres logiciels non interactifs du m^
eme genre, utilis
es sur le r
eseau
de BBS Fidonet, et des portages Linux sont disponibles, comme par exemple ifmail.
SLIP se situe entre les deux, permettant un usage interactif ou non. Beaucoup utilisent
SLIP pour appeler leur fournisseur de services IP a n de se connecter 
a l'Internet,
ou pour acc
eder 
a tout autre r
eseau priv
e. Ce protocole peut aussi ^
etre employ
e pour
des liaisons permanentes entre deux r
eseaux, bien que ce ne soit vraiment int
eressant
que par ISDN2.
4.2 Introduction aux p
eriph
eriques s
erie
Les p
eriph
eriques qu'o re un noyau UNIX pour acc
eder aux terminaux s
erie sont
typiquement appel
es ttys. Il s'agit de l'abr
eviation de TeletypeTM, qui 
etait l'un des
principaux constructeur de terminaux dans les premiers jours d'UNIX. Le terme est
rest
e pour d
esigner maintenant tout terminal fonctionnant en mode texte. Tout au
long de ce chapitre, nous utiliserons tty exclusivement pour d
esigner les p
eriph
eriques
o erts par le noyau.
Linux fait la distinction entre trois classe de ttys: les consoles (virtuelles), les pseudo-
terminaux (semblables 
a un tube bi-directionnel, utilis
es par des applications comme
X11), et les p
eriph
eriques s
erie. Ces derniers sont compt
es parmi les ttys, car ils
permettent des sessions interactives via une connexion s
erie; que ce soit depuis un
terminal c^
abl
e ou un ordinateur distant connect
e par t
el
ephone.
Les ttys poss
edent un certain nombre de param
etres con gurables, par l'interm
ediaire
de l'appel syst
eme ioctl(2). Beaucoup ne concernent que les ports s
erie, car ce type de
p
eriph
erique demande une grande souplesse pour s'adapter 
a tout type de connexions.
Parmi les param
etres les plus importants de la ligne, on trouve la vitesse et la parit
e.
Mais il existe aussi des drapeaux ( ags) pour la conversion entre majuscules et mi-
nuscules, des retour-chariots en sauts de ligne, etc. Le pilote tty peut aussi supporter
2: Dans certains pays, une liaison permanente par l'
equivalent de notre NUM
ERIS est nanci
ere-
ment abordable pour un particulier; ce n'est 
evidemment pas du tout le cas en France.
4.3. Acc
eder aux ports s
erie 55
diverses disciplines de ligne, qui permettent de changer compl
etement le comporte-
ment du p
eriph
erique. Par exemple, le pilote SLIP de Linux est impl
ement
e au moyen
d'une discipline de ligne sp
eciale.
La mesure de la vitesse d'une ligne s
erie est un peu ambigu
e. En principe, il s'agit du
nombre de bits par seconde (bps). Quelquefois, vous entendrez des gens exprimer cette
vitesse en bauds, ce qui est incorrect. Ces deux termes ne sont pas interchangeables:
les bauds se r
ef
erent 
a une caract
eristique physique de quelque p
eriph
erique, la fr
e-
quence 
a laquelle des impulsions sont transmises. Les bits par seconde d
enotent une
caract
eristique d'une connexion s
erie existant entre deux points, mesurant le nombre
moyen de bits transmis en une seconde. Il est important de savoir que ces deux valeurs
sont g
en
eralement di 
erentes, car beaucoup de p
eriph
eriques encodent plusieurs bits
par impulsion 
electrique.
4.3 Acc
eder aux ports s
erie
Comme pour tous les p
eriph
eriques dans un systeme UNIX, on acc
ede aux ports s
erie
par l'interm
ediaire de chiers sp
eciaux, situ
es dans le r
epertoire /dev. Mais dans le
cas particulier des ports s
erie, chaque port se voit attribuer deux chiers di 
erents,
qui conf
ereront au p
eriph
erique un comportement di 
erent selon qu'on utilisera l'un
ou l'autre.
Le premier p
eriph
erique est employ
e lorsque le port est utilis
e en entr
ee, pour recevoir
des appels; il a un nombre majeur de 4, et les chiers s'appellent ttyS0, ttyS1, etc. Le
second sert pour utiliser le port en sortie, pour r
ealiser des appels; le nombre majeur
est 5 et les chiers se nomment alors cua0, cua1, etc.
Les nombres mineurs sont identiques pour les deux types. Si votre modem est connect
e

a l'un des ports que l'on appelle souvent COM1 
a COM4, le nombre mineur sera le
num
ero du port de communication plus 63. Si votre 
equipement est di 
erent, par
exemple si vous employez une carte multis
erie o rant bien plus de 4 ports, consultez
le document Serial HOWTO.
Supposons que votre modem soit connect
e sur COM2. Par cons
equent le nombre
mineur vaudra 65, et pour l'utiliser en appel le nombre majeur sera 5. Il devrait y
avoir un chier de p
eriph
erique nomm
e cua1 ayant ces caract
eristiques. Achez la
liste des ttys s
erie du r
epertoire /dev. Les colonnes 5 et 6 montrent respectivement
les nombres majeurs et mineurs:
$ ls -l /dev/cua*
crw-rw-rw- 1 root root 5, 64 Nov 30 19:31 /dev/cua0
crw-rw-rw- 1 root root 5, 65 Nov 30 22:08 /dev/cua1
crw-rw-rw- 1 root root 5, 66 Oct 28 11:56 /dev/cua2
crw-rw-rw- 1 root root 5, 67 Mar 19 1992 /dev/cua3
Si vous n'avez rien de tout cela sur votre syst
eme, vous allez devoir les cr
eer.
56 Chapitre 4. Con guration des ports s
erie
Passez superutilisateur et tapez:
# mknod -m 666 /dev/cua1 c 5 65
# chown root.root /dev/cua1
Certains sugg
erent de cr
eer un lien symbolique du nom de /dev/modem vers le p
eri-
ph
erique o
u le modem est connect
e, de sorte que les utilisateurs occasionnels n'aient
pas 
a se souvenir de noms aussi peu intuitifs que /dev/cua1. Toutefois, vous ne devrez
pas utiliser /dev/modem dans un programme et le vrai /dev/cua1 dans un autre, car
certains logiciels emploient parfois des chiers de verrouillage pour signaler l'utilisa-
tion du p
eriph
erique. Par convention, ces chiers portent un nom d
eriv
e; par exemple
ce sera LCK..cua1 pour indiquer que /dev/cua1 est occup
e. Si di 
erents programmes
acc
edaient au m^
eme modem par di 
erents noms de p
eriph
eriques, ils ne pourraient
pas reconna^
tre leurs chiers de verrouillage les uns des autres, et les applications ne
fonctionneraient pas correctement.
4.4 Les ports s
erie
Linux supporte une grande vari
et
ede cartes s
erie au standard RS-232, qui est la norme
la plus r
epandue pour la communication s
erie dans le monde du PC (et ailleurs). Elles
utilisent di 
erents circuits 
electroniques pour transmettre des bits et des informations
de synchronisation, et des lignes additionnelles peuvent ^
etre pr
esentes pour signa-
ler des conditions particuli
eres de la machine ou du modem (d
etection de porteuse,
contr^
ole de ux mat
eriel, etc).
Bien que le contr^
ole de ux mat
eriel soit facultatif, il est extr^
emement utile. Il permet

a chacune des stations de signaler lorsqu'elle est pr^
ete 
a recevoir plus de donn
ees, ou
si l'autre c^
ot
e doit attendre un peu que les caract
eres re
cus aient 
et
e trait
es avant
de continuer. Les lignes utilis
ees pour cela sont appel
ees (
( Clear to Send )
) (CTS) et
(
( Request to Send )
) (RTS), ce qui a donn
e naissance au terme universellement utilis
e
de (
( contr^
ole de ux RTS/CTS )
)
3.
Dans les PC, l'interface RS-232 est g
en
eralement r
ealis
ee autour d'un circuit ERAU4
d
eriv
e du 16450 de National Semiconductor, ou de la nouvelle version NSC 16550A5.
La principale di 
erence entre les 16450 et les 16550 est que ces derniers comportent
un tampon FIFO de 16 octets, alors que le premier ne poss
ede de stockage que pour
1 octet. Le 16550 est donc pr
ef
erable pour une utilisation 
a de hautes vitesses, par
rapport au 16450 qu'il vaut mieux 
eviter au-del
a de 9600 bauds. Linux g
ere bien
3: Il existe une d
enomination fran
caise pour tous les signaux RS-232, bas
ee non pas sur des noms,
mais des num
eros tellement peu compr
ehensibles et m
emorisables que personne ne l'utilise.
4: ERAU: (
( 
Emetteur-R
ecepteur Asynchrone Universel )
), UART en anglais.
5: Quelques constructeurs, en particulier les fabricants de modems internes 
equip
es de circuits
Rockwell, utilisent des composants totalement di 
erents qui ont 
et
e programm
es pour se comporter
comme le NSC 16550.
4.4. Les ports s
erie 57
entendu tous ces circuits, ainsi que le 8250, qui fut le premier ERAU 
a 
equiper les
ordinateurs de type PC.
Dans la con guration par d
efaut, le noyau teste les quatre ports s
erie standard COM1

a COM4. Ils se verront assigner les nombres mineurs 64 
a 67, comme nous l'avons vu
plus haut.
Si vous voulez con gurer vos ports s
erie correctement, il vous faudra installer le pro-
gramme setserial de Ted Tso's, ainsi que le script /etc/rc.serial qui sera ex
ecut
e au
d
emarrage du syst
eme. Voici un exemple d'un tel script:
# /etc/rc.serial - script de configuration des ports s
erie.
#
# D
etection interruptions
/sbin/setserial -W /dev/cua*
# Configuration des p
eriph
eriques
/sbin/setserial /dev/cua0 auto_irq skip_test autoconfig
/sbin/setserial /dev/cua1 auto_irq skip_test autoconfig
/sbin/setserial /dev/cua2 auto_irq skip_test autoconfig
/sbin/setserial /dev/cua3 auto_irq skip_test autoconfig
# Affichage de la configuration courante
/sbin/setserial -bg /dev/cua*
Consultez la documentation fournie avec setserial pour avoir une explication d
etaill
ee
des param
etres 
a employer.
Si votre carte s
erie n'est pas d
etect
ee, ou si la commande setserial -bg montre une
con guration erron
ee, vous devrez forcer les valeurs correctes en les indiquant explici-
tement. Ce probl
eme se produit parfois avec des modems internes 
equip
es de circuits
Rockwell. Si, par exemple, l'ERAU est d
etect
e comme 
etant un NSC 16450, alors qu'il
s'agit en r
ealit
e d'un compatible NSC 16550, vous devrez modi er la con guration du
port en question ainsi:
/sbin/setserial /dev/cua1 auto irq skip test autoconfig uart 16550
Il existe des options similaires pour forcer le port de communication, l'adresse de base,
et la ligne d'IRQ utilis
ee. Lisez la page de manuel de setserial(8) pour plus de d
etails.
Si votre modem supporte le contr^
ole de ux mat
eriel, assurez-vous qu'il soit bien en
service. Les programmes de communications n'essaient pas de le valider par d
efaut;
vous devez, aussi
etonnant que cela puisse para^
tre,le faire manuellement. La meilleure
solution est de le mettre en service au lancement du syst
eme en mettant dans le chier
rc.serial une commande stty comme ceci:
$ stty crtscts /dev/cua1
58 Chapitre 4. Con guration des ports s
erie
Pour v
eri er si le contr^
ole de ux RTS/CTS est actif, faites:
$ stty -a /dev/cua1
Cette commande vous achera le param
etrage du port s
erie concern
e avec tous les
d
etails; chaque drapeau est ach
e, avec un signe n
egatif s'il est invalid
e. Vous devrez
trouver dans la liste, crtscts. Si vous voyez -crtscts, c'est que le contr^
ole de ux
n'est pas en service.
59
Chapitre 5
Con guration du r
eseau
TCP/IP
Nous allons d
ecrire dans ce chapitre toutes les 
etapes n
ecessaires pour con gurer
TCP/IP sur votre machine. En partant de l'assignation des adresses IP, nous verrons
la con guration des interfaces et, petit 
a petit, aboutirons 
a la description de quelques
outils tr
es pratiques pour traquer les 
eventuels probl
emes pouvant survenir sur votre
installation r
eseau.
Les di 
erentes op
erations que nous allons d
ecrire ne seront 
a e ectuer qu'une seule
fois, pour la majorit
e d'entre elles. Ensuite, vous n'aurez de modi cations 
a faire que
lors de l'ajout d'une nouvelle machine sur le r
eseau,ou si vous recon gurezenti
erement
le syst
eme. Quelques commandes seront toutefois 
a ex
ecuter 
a chaque d
emarrage de
Linux, on les invoque g
en
eralement depuis les scripts /etc/rc du syst
eme.
Tr
es souvent, la partie de cette proc
edure sp
eci que au r
eseau se trouve dans un
script appel
erc.net ou rc.inet. Quelquefois, vousen trouverezdeux, nomm
esrc.inet1 et
rc.inet2, le premier initialisant la partie r
eseau relative au noyau, le second s'occupant
de lancer les services et applications de base. Ici, nous adopterons cette derni
ere
solution, ces chiers rc.inet1 et rc.inet2 ayant l'avantage de bien clari er les choses.
Nous allons commencer par rc.inet1, et nous traiterons des applications dans les pro-
chains chapitres. Apr
es avoir assimil
e celui-ci, vous devriez avoir 
etabli une s
equence
de commandes qui con gurent proprement le r
eseau TCP/IP sur votre ordinateur.
Vous devrez alors remplacer tous les exemples contenus dans rc.inet1 par vos propres
commandes, et vous assurer que ce script est bien ex
ecut
e au d
emarrage du syst
eme.
Les scripts rc fournis dans votre distribution favorite de Linux devraient vous donner
un bon exemple de ce qu'il faut faire.
60 Chapitre 5. Con guration du r
eseau TCP/IP
5.1 Montage du syst
eme de chiers proc
Quelques outils de con guration de la version Net-2 ont besoin du syst
eme de chiers
proc pour communiquer avec le noyau. Il s'agit d'une interface qui permet d'acc
eder

a certaines informations internes par l'interm
ediaire de chiers. Lorsque /proc est
mont
e, vous pouvez lister son contenu comme n'importe quel autre syst
eme de chiers,
et acher par les m
ethodes habituelles toutes les informations disponibles. Vous y
trouverez par exemple le chier loadavg, contenant la charge de la machine, meminfo,
qui montre l'utilisation instantan
ee de la m
emoire et de la zone de swap.
Le code r
eseau ajoute 
a tout cela le r
epertoire net. Il contient un certain nombre
de chiers montrant certaines choses comme les tables ARP du noyau, l'
etat des
connexions TCP, les tables de routage, etc. La plupart des outils d'administration
r
eseau obtiennent leurs informations en lisant ces donn
ees.
Le syst
eme de chiers proc (connu aussi sous le nom de procfs) est g
en
eralement mont
e
dans /proc lors du d
emarrage du syst
eme. La meilleure m
ethode pour qu'il le soit est
d'ajouter la ligne suivante dans le chier /etc/fstab:
# point de montage du procfs:
none /proc proc defaults
et d'ex
ecuter (
( mount /proc )
) depuis votre script /etc/rc.
Ce procfs est maintenant con gur
e dans la plupart des noyaux par d
efaut. S'il ne l'est
pas dans le v^
otre, vous obtiendrez un message du genre: (
( mount: fs type procfs
not supported by kernel )
) (syst
eme de chiers type procfs non support
e par le
noyau). Il vous faudra dans ce cas recompiler ce noyau en r
epondant (
( yes )
) lorsque
la con guration vous demandera si vous d
esirez le support de procfs.
Un dernier mot 
a propos de procfs. Bien qu'apparaissant comme n'importe quel r
eper-
toire, contenant des chiers textes ou binaires de toutes tailles, vous ne devez pas vous
inqui
eter pour votre pr
ecieux espace disque dur: ce ne sont que des chiers virtuels,
simul
es par le noyau. Le tr
es gros kcore, par exemple, correspond simplement 
a toute
la m
emoire dont vous disposez; plus vous aurez de RAM, plus il sera gros, mais il
n'occupe aucune place disque.
5.2 Installation des binaires
Si vous utilisez l'une des distributions toutes faites de Linux, elle contiendra probable-
ment la plus grande partie des applications et utilitaires r
eseau, ainsi qu'un ensemble
coh
erent d'exemples de con guration. Le seul cas o
u vous pourrez avoir 
a vous procu-
rer et installer cette partie, sera lorsque vous installerez une toute nouvelle version du
noyau, pouvant demander une mise 
a jour de ces programmes. Souvent, l'
evolution
de Linux apporte de profondes modi cations rendant les anciens utilitaires relatifs au
r
eseau, incompatibles avec la partie correspondante dans le noyau. Il sut souvent
5.3. Un nouvel exemple 61
de recompiler l'ensemble, mais quelquefois il vous faudra quand m^
eme changer tous
les programmes. L'ensemble est g
en
eralement distribu
e parall
element aux nouvelles
sources du noyau, dans des chiers appel
es net-XXX.tar.gz, o
u varXXX correspond au
num
ero de version. Pour Linux 1.0, il s'agit de 0.32b. Le dernier noyau, 
a l'heure o
u
nous 
ecrivons ces lignes (1.1.72 et plus), n
ecessite au minimum net-tools-1.1.56.tar.gz.
Si vous d
esirez compiler et installer les applications TCP/IP standard vous-m^
eme,
vous en trouverez les sources sur la plupart des serveurs FTP ou BBS di usant Linux.
Ce sont des versions plus ou moins modi 
ees des programmes de Net-BSD ou quelques
autres sources. D'autres grosses applications, comme Mosaic, Archie, Gopher ou IRC
doivent ^
etre obtenues s
epar
ement, comme pour tout autre syst
eme UNIX. La plupart
se compilent sans modi cation sous Linux si vous suivez correctement les instructions.
Le site FTP ociel de Net-3 est sunacm.swan.ac.uk, repris par sunsite.unc.edu
dans le r
epertoire system/Network/sunacm. Le code d
eriv
e de BSD par Matthias Ur-
lich peut ^
etre obtenu sur ftp.ira.uka.de dans /pub/system/linux/netbsd. En France,
allez d'abord voir sur ftp.ibp.fr, le r
epertoire /pub/linux contient des miroirs de
di 
erents sites; vous ne devriez pas avoir besoin d'utiliser de co^
uteuses liaisons inter-
nationales pour vous procurer du code source Linux.
5.3 Un nouvel exemple
Pour toute la suite de ce livre, nous allons prendre un exemple bien plus simple
que l'universit
e Groucho Marx, et qui devrait ^
etre plus proche de ce que vous allez
couramment rencontrer. Consid
erons donc (
( La bi
ere virtuelle)
), une petite soci
et
e qui
brasse, comme son nom l'indique, de la bi
ere virtuelle. A n de g
erer plus ecacement
leurs a aires, nos brasseurs virtuels d
esirent relier leurs ordinateurs en r
eseau, et il se
trouve qu'ils fonctionnent tous sous le merveilleux Linux 1.0.
Au m^
eme 
etage, de l'autre c^
ot
e du couloir de l'immeuble, se trouve la soci
et
e (
( Les
caves virtuelles )
), des viticulteurs travaillant 
etroitement avec nos brasseurs. Ils pos-
s
edent leur propre r
eseau Ethernet. Naturellement, les deux compagnies veulent relier
leurs deux r
eseaux ensemble une fois qu'ils seront op
erationnels. Pour commencer,
ils d
esirent installer une passerelle permettant de transf
erer des datagrammes entre
ces deux r
eseaux. Plus tard, ils 
etabliront un lien UUCP avec le monde ext
erieur,
a n d'avoir acc
es au courrier 
electronique et aux News Usenet. En n, dans l'avenir,
ils pensent installer une connexion SLIP pour pouvoir occasionnellement ^
etre reli
es 
a
l'Internet.
5.4 Assignation du nom de machine
Pratiquement toutes les applications r
eseau n
ecessitent qu'il ait 
et
e attribu
e un nom 
a
la machine. G
en
eralement, cela est r
ealis
e lors du d
emarrage du syst
eme en ex
ecutant
62 Chapitre 5. Con guration du r
eseau TCP/IP
la commande hostname; pour initialiser le nom d'h^
ote 
a la valeur nom, elle doit ^
etre
invoqu
ee ainsi:
# hostname nom
La pratique courante est d'indiquer ici le nom d'h^
ote non quali 
e, c'est-
a-dire sans
sp
eci erle nom de domaine. Parexemple, les machinesde (
( La bi
erevirtuelle)
) peuvent
s'appeler trappiste.bibine.com, kro.bibine.com, etc. Ce sont leurs noms ociels,
pleinement quali 
es. Leur noms d'h^
otes locaux seraient alors uniquement la premi
ere
composante, comme trappiste. Toutefois, comme le nom local est fr
equemmentutilis
e
pour trouver l'adresse IP de la machine, vous devez vous assurer que le resolver
soit capable de le faire; cela signi e que vous devez indiquer ce nom dans le chier
/etc/hosts.
Certains sugg
erent d'utiliser la commande domainname pour indiquer au noyau quel
est le nom de domaine, la partie restante du FQDN. Ainsi, il serait possible de com-
biner la sortie de hostname et de domainname pour obtenir le nom quali 
e. Pourtant,
cette solution n'est qu'
a moiti
e correcte: la commande domainname est normalement
utilis
ee pour initialiser le domaine NIS de la machine, qui peut ^
etre totalement di 
e-
rent du domaine DNS auquel cet h^
ote appartient.
5.5 Assignation des adresses IP
Si vous con gurez le r
eseau sur votre machine pour une utilisation locale autonome
(par exemple, juste pour installer le serveur de News INN), vous pouvez sauter cette
section, car la seule adresse IP dont vous avez besoin correspond 
a l'interface loopback,
et vaudra toujours 127.0.0.1.
Les choses se compliquent un peu avec de vrais r
eseaux comme l'Ethernet. Si vous
d
esirez connecter votre syst
eme 
a un r
eseau existant, vous devrez demander 
a ses
administrateurs de vous donner une adresse IP. Si vous installez vous-m^
eme tout un
r
eseau, ce sera 
a vous d'attribuer toutes les adresses.
Les h^
otes d'un r
eseau local doivent en principe partager des adresses appartenant au
m^
eme r
eseau IP logique. Par cons
equent, vous devez attribuer une adresse au r
eseau.
Si vous devez installer plusieurs r
eseaux physiques, vous devrez soit leur attribuer des
valeurs r
eseau di 
erentes, soit utiliser des sous-r
eseaux pour partager votre gamme
d'adresses IP possibles en plusieurs sous-r
eseaux. Nous d
etaillerons cette derni
ere
solution dans la section suivante.
Le choix d'une adresse IP r
eseau d
epend 
etroitement de ce que vous comptez en faire.
Si vous avez l'intention de vous connecter 
a l'Internet dans un avenir proche, il va vous
falloir obtenir d
es maintenant une adresse ocielle. La meilleure fa
con de proc
eder
est de demander 
a votre fournisseur de connectivit
e IP de vous aider, c'est son travail.
Sinon, demandez un formulaire de demande d'adresse ((
( Network Address Application
5.6. Cr
eation de sous-r
eseaux 63
Form )
)) 
a hostmaster@internic.net, ou au NIC ((
( Network Information Center )
))
de votre pays s'il en existe un.
Si votre r
eseau n'est pas connect
e 
a l'Internet et n'y sera pas dans un avenir proche,
vous ^
etes libre de choisir n'importe quelle adresse valide. Assurez-vous simplement
que jamais aucun de vos datagrammes internes ne s'
echappe vers le vrai Internet.
Pour en ^
etre vraiment s^
ur, il vaut mieux utiliser l'une des adresses r
eseau r
eserv
ees
pour les usages priv
es. Le IANA (Internet Assigned Numbers Authority), la (
( haute
autorit
e )
) r
egissant l'attribution des adresses sur l'Internet, a mis au point plusieurs
adresses r
eseau de classes A, B et C que vous pouvez utiliser librement sans avoir 
a
vous enregistrer ociellement. Elles ne sont valides qu'
a l'int
erieur de votre r
eseau
priv
e et ne sont jamais rout
ees entre les vrais sites Internet. Ces valeurs, d
e nies dans
le RFC 1597, sont:
Classe R
eseaux
A 10.0.0.0
B 172.16.0.0 jusqu'
a
172.31.0.0
C 192.168.0.0 jusqu'
a
192.168.255.0
Notez que les deuxi
eme et troisi
eme blocs contiennent respectivement 16 et 256 r
e-
seaux.
Choisir vos adresses dans l'un de ces r
eseaux n'est pas seulement utile lorsque vous
^
etes isol
e de l'Internet; vous pouvez aussi r
ealiser un acc
es bien plus restrictif en
employant une machine en tant que passerelle. Pour votre r
eseau local, la passerelle
sera accessible par son adresse IP interne, alors que le reste du monde la conna^
tra
par une adresse ocielle d^
ument enregistr
ee (que votre fournisseur de services vous
aura attribu
ee par exemple). Nous reviendrons sur ce type de con guration lorsque
nous parlerons de SLIP, dans le chapitre 7 (page 101).
Pour toute la suite de cet ouvrage, nous consid
ererons que l'administrateur r
eseau
de (
( La bi
ere virtuelle )
) utilise un r
eseau de classe B, disons 172.16.0.0. Bien s^
ur,
une classe C aurait largement su pour satisfaire les besoins de nos brasseurs et
viticulteurs virtuels. Nous avons choisi une classe B pour des raisons de simplicit
e,
cela rendra les exemples de sous-r
eseaux de la section suivante bien plus faciles 
a
comprendre.
5.6 Cr
eation de sous-r
eseaux
Pour g
ererplusieurs r
eseauxEthernet (ou d'autres types, selon les pilotes disponibles),
vous devez scinder votre r
eseau en sous-r
eseaux. Notez que ce n'est n
ecessaire que si
vous avez plus d'une adresse de di usion; les liaisons point-
a-point ne comptent pas.
Par exemple, si vous avez un r
eseau Ethernet et un ou plusieurs liens SLIP vers le
64 Chapitre 5. Con guration du r
eseau TCP/IP
0 0
72
191
0
72
191 0
72
191
1 2
Passerelle
Sous-r
eseau brasseurs Sous-r
eseau viticulteurs
Fig. 5.1 - Les deux sous-r
eseaux des brasseurs et viticulteurs.
monde ext
erieur, vous n'avez pas besoin de cr
eer de sous-r
eseaux: nous expliquerons
pourquoi dans le chapitre 7.
Pour g
erer les deux r
eseaux locaux Ethernet, l'administrateur des brasseurs virtuels
a d
ecid
e d'utiliser 8 bits de la partie h^
ote comme bits additionnels de sous-r
eseau.
Cela lui laisse 8 autres bits pour la partie h^
ote, permettant 254 machines sur chacun
des sous-r
eseaux. Il assigne alors le sous-r
eseau num
ero 1 aux brasseurs, et donne le
num
ero 2 aux viticulteurs. Leurs adresses r
eseaux respectives sont alors 172.16.1.0
et 172.16.2.0. Le masque de sous-r
eseau vaut 255.255.255.0.
La machine kro, qui est la passerelle entre les deux r
eseaux, se voit attribuer un
nombre d'h^
ote de 1 sur chacun d'eux, ce qui donne respectivement les adresses IP
172.16.1.1 et 172.16.2.1. La gure 5.1 illustre la situation, montrant la passerelle
et les deux sous-r
eseaux.
Notez que dans cet exemple, nous utilisons un r
eseau de classe B pour simpli er les
choses; une classe C serait plus r
ealiste. Sous les versions r
ecentes de Linux, les sous-
r
eseaux ne sont pas born
es sur 8 bits, par cons
equent m^
eme un r
eseau de classe C peut
^
etre tron
conn
e en plusieurs sous-r
eseaux. Par exemple, vous pourriez utiliser 2 bits
de la partie h^
ote pour le masque r
eseau, ce qui vous donnerait quatre sous-r
eseaux
possibles comportant chacun 64 machines1.
1: Le dernier nombre de chaque r
eseau est r
eserv
e 
a l'adresse de di usion, donc il ne s'agirait en
r
ealit
e que de 63 machines possibles par sous-r
eseau.
5.7. R
edaction des chiers hosts et networks 65
5.7 R
edaction des chiers hosts et networks
Apr
es avoir divis
e votre r
eseau, vous devez vous arranger pour que la r
esolution des
noms de quelques machines cruciales soit possible par le chier /etc/hosts. Si vous ne
comptez pas utiliser DNS ou NIS pour la r
esolution d'adresses, vous devrez indiquer
tous les h^
otes dans ce chier.
M^
eme si en fonctionnement normal, DNS ou NIS sont en service, vous devez inclure un
petit sous-ensemble de machines dans /etc/hosts. En premier lieu, vous aurez besoin
d'une m
ethode de r
esolution de noms m^
eme lorsqu'aucune interface r
eseau n'est en
service, par exemple lors du d
emarrage du syst
eme. Ce n'est pas qu'une question de
commodit
e, cela vous permet aussi d'utiliser des noms symboliques dans vos scripts
rc.inet. Ainsi, lors de modi cations d'adresses IP, vous n'aurez qu'
a copier une mise

a jour du chier hosts puis r
eamorcer la machine, au lieu d'^
etre oblig
e de modi er un
grand nombre de chiers rc s
epar
ement.G
en
eralement,ce sont les noms et adresses des
machines locales que l'on met dans /etc/hosts, plus ceux des passerelles ou 
eventuels
serveurs NIS s'il en existe2.
Vous devrez 
egalement, lors des premiers essais de mise au point, vous assurer que le
resolver n'utilisera que les informations du chier hosts, sans tenter de se connecter

a un hypoth
etique serveur de noms. Vos 
eventuels programmes DNS ou NIS peuvent
^
etre fournis avec des exemples de con guration donnant de tr
es curieux r
esultats. Pour
^
etre certain de n'utiliser exclusivement que /etc/hosts, vous devrez 
editer le chier
/etc/host.conf. Commentez toutes les lignes qui commencent par le mot cl
e order en
les faisant pr
ec
eder d'un di
ese, et ins
erez uniquement la ligne:
order hosts
La con guration de la biblioth
eque resolver sera trait
ee en d
etail dans le chapitre 6.
Le chier hosts contient une entr
ee par ligne, consistant en une adresse IP, un nom
d'h^
ote, et une liste facultative d'alias permettant d'appeler plus facilement cette ma-
chine par tout autre nom. Les champs sont s
epar
es par des espaces ou des tabulations,
et tout ce qui suivra un signe di
ese (#) sera consid
er
e comme commentaire et sera
ignor
e.
Les noms d'h^
otes peuvent ^
etre quali 
es ou relatifs au domaine local. Dans le cas
de trappiste, on met g
en
eralement le nom quali 
e, trappiste.bibine.com, puis
trappiste seul, de mani
ere 
a ce que la machine soit connue aussi bien par son nom
pleinement quali 
e que par son petit nom local.
Voici un exemple de ce que pourrait ^
etre un chier hosts de l'entreprise (
( La bi
ere
virtuelle )
) : deux noms sp
eciaux ont 
et
e ajout
es, kro-if1 et kro-if2, qui donnent les
adresses des deux interfaces utilis
ees sur kro.
2: Vous n'aurez besoin de l'adresse des serveurs NIS que si vous utilisez la version NYS de Peter
Eriksson. Les autres impl
ementations de NIS trouvent leurs serveurs en cours de route, simplement
en utilisant ypbind.
66 Chapitre 5. Con guration du r
eseau TCP/IP
#
# Fichier hosts des brasseurs et viticulteurs.
#
# IP FQDN alias
#
127.0.0.1 localhost
#
172.16.1.1 kro.bibine.com kro kro-if1
172.16.1.2 gueuze.bibine.com gueuze
172.16.1.3 trappiste.bibine.com trappiste
#
172.16.2.1 kro-if2
172.16.2.2 brouilly.bibine.com brouilly
172.16.2.3 gamay.bibine.com gamay
172.16.2.4 cahors.bibine.com cahors
Tout comme avec les adresses IP des machines, vous aurez parfois besoin d'utiliser un
nom symbolique pour d
esignerles adresses r
eseau.Parcons
equent,le chier /etc/hosts
est accompagn
e d'un chier semblable, /etc/networks, qui est son 
equivalent pour les
r
eseaux. Chez nos brasseurs, nous pourrions installer un chier networks comme celui-
ci3 :
# /etc/networks de la societe La bi
ere virtuelle.
biere-net 172.16.1.0
pinard-net 172.16.2.0
5.8 Con guration des interfaces r
eseau
Apr
es avoir con gur
e correctement votre
equipement comme expliqu
e dans le chapitre
pr
ec
edent, vous devrez faire en sorte que ces p
eriph
eriques soient connus de la couche
r
eseau du noyau. Deux commandes sont n
ecessaires pour cela, qui con gurent les
interfaces et initialisent la table de routage: ifcon g (o
u (
( if )
) signi e interface), et
route. Elles sont g
en
eralement invoqu
ees depuis le script rc.inet1 lors du d
emarrage
du syst
eme.
La commande ifcon g a pour but de rendre une interface accessible 
a la couche r
eseau
du noyau. Cela implique l'assignation d'une adresse IP et quelques autres param
etres;
ainsi que l'activation de l'interface, qui sera alors dite (
( en service )
), ou (
( up )
), par
opposition 
a (
( hors service )
), ou (
( down )
). Une interface d
eclar
ee active signi e que le
noyau l'utilisera pour le transport de datagrammes. La fa
con la plus simple de r
ealiser
cela est de taper:
ifconfig interface addresse-ip
3: Les noms du chier networks ne doivent pas entrer en con it avec ceux du chier hosts, sous
peine de r
eactions tr
es bizarres de certains programmes.
5.8. Con guration des interfaces r
eseau 67
Cette commande assignera l'adresse adresse-ip 
a interface, et activera celle-ci.
Tous les autres param
etresseront mis 
a des valeurs par d
efaut. Par exemple, le masque
r
eseau sera d
eriv
e de la classe du r
eseau de l'adresse IP, comme 255.255.0.0pour une
adresse de classe B. La commande ifcon g est d
ecrite en d
etail 
a la n de ce chapitre.
La commande route, quant 
a elle, permet d'ajouter ou de supprimer des entr
ees dans
la table de routage du noyau; sa syntaxe est (en partie) la suivante:
route [add|del] cible
Les arguments add et del d
eterminent l'action 
a e ectuer: add ajoute la route vers
cible, alors que del la supprime.
5.8.1 L'interface loopback
La toute premi
ere interface 
a activer est l'interface loopback:
# ifconfig lo 127.0.0.1
Occasionnellement, vous rencontrerez aussi le nom localhostutilis
e 
a la place de cette
adresse IP. Le programme ifcon g cherchera ce nom dans le chier /etc/hosts, o
u une
entr
ee doit le d
eclarer comme 
etant le nom correspondant 
a l'adresse 127.0.0.1:
# Exemple d'entr
ee du fichier /etc/hosts pour localhost
localhost 127.0.0.1
Pour voir quelle est la con guration courante d'une interface, appelez simplement
ifcon g en lui passant le nom de l'interface en argument:
$ ifconfig lo
lo Link encap Local Loopback
inet addr 127.0.0.1 Bcast [NONE SET] Mask 255.0.0.0
UP BROADCAST LOOPBACK RUNNING MTU 2000 Metric 1
RX packets 0 errors 0 dropped 0 overrun 0
TX packets 0 errors 0 dropped 0 overrun 0
Comme vous le voyez, l'interface loopback s'est vu assigner un masque r
eseau de
255.0.0.0, puisque 127.0.0.1 est une adresse de classe A. Aucune adresse de di u-
sion n'est positionn
ee, et il n'y en a de toutes fa
cons pas vraiment besoin avec cette
interface si particuli
ere. Toutefois, si vous utilisez le d
emon rwhod sur cette machine,
vous pourrez avoir besoin d'initialiser l'adresse de di usion de l'interface loopback
pour que ce programme fonctionne correctement. Vous trouverez comment faire dans
la section (
( Tout sur ifcon g )
), un peu plus loin dans ce chapitre.
68 Chapitre 5. Con guration du r
eseau TCP/IP
Maintenant, vous pouvez presque commencer 
a jouer avec votre (
( mini-r
eseau )
). Il ne
manque qu'une chose: une entr
ee dans la table de routage qui indique 
a IP qu'il peut
utiliser cette interface comme route vers 127.0.0.1. On lui indique par:
# route add 127.0.0.1
L
a encore, vous pouvez indiquer le nom localhost au lieu de l'adresse IP.
Ensuite, vous devez tester que tout marche bien, par exemple en utilisant ping. Le
programme ping est un peu l'
equivalent d'un sonar pour le r
eseau4. On emploie ping
pour v
eri er qu'il est bien possible d'atteindre une adresse donn
ee, et pour mesurer
le temps de propagation entre le moment o
u l'on envoie un datagramme et o
u il nous
revient. On appelle parfois ce d
elai le (
( temps moyen de propagation)
), ou (
( round-trip
time )
).
# ping localhost
PING localhost (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=32 time=1 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=32 time=0 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=32 time=0 ms
^C
--- localhost ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 0/0/1 ms
En appelant ping comme ci-dessus, il 
emettra des paquets ind
e niment jusqu'
a ce qu'il
soit interrompu par l'utilisateur. Le ^C visible dans l'exemple correspond au moment
o
u le programme a 
et
e arr^
et
e par Ctrl-C5.
Notre exemple montre que les paquets 
a destination de 127.0.0.1 sont correctement
d
elivr
es et qu'une r
eponse nous est retourn
ee quasi instantan
ement. Cela prouve que
nous avons r
eussi 
a con gurer notre premi
ere interface r
eseau.
Si la sortie que vous obtenez de ping ne ressemble pas 
a ce qui est montr
e ci-dessus,
c'est que vous avez un probl
eme quelque part. V
eri ez que les programmes ifcon g
et route que vous utilisez sont compatibles avec la version du noyau, et avant tout,
que ce noyau a bien 
et
e compil
e avec le support du r
eseau (vous pouvez le v
eri er
par la pr
esence du r
epertoire /proc/net). Si vous obtenez le message d'erreur (
( Net-
work unreachable )
), signi ant que le r
eseau est inaccessible, c'est que vous vous ^
etes
probablement tromp
e en tapant la commande route. V
eri ez que vous utilisez bien la
m^
eme adresse que celle indiqu
ee 
a ifcon g.
Les 
etapes que nous venons de voir sont susantes pour faire fonctionner des appli-
cations r
eseau sur une machine isol
ee. Apr
es avoir ajout
e les lignes de con guration
4: Souvenez-vous... (
( Echoes )
), Pink Floyd...
5: Certaines impl
ementations de ping n
ecessitent la commande ping -s pour obtenir le m^
eme
r
esultat, typiquement celles des syst
eme BSD.
5.8. Con guration des interfaces r
eseau 69
que nous avons vues dans le chier rc.inet1 et vous ^
etre assur
e que ces scripts rc.inet
sont bien appel
es depuis /etc/rc, vous pouvez r
eamorcer votre machine et essayer dif-
f
erentes applications. Par exemple, (
( telnet localhost )
) devrait 
etablir une connexion
avec votre propre machine, en vous proposant une invite login.
L'interface loopback n'est pas utile qu'en tant qu'exemple dans les livres sur le r
eseau,
ou comme test de con guration. Elle est utilis
ee par quelques applications lors du
fontionnement normal6. Par cons
equent, vous devez toujours la con gurer, que votre
machine soit connect
ee 
a un r
eseau ou non.
5.8.2 Interfaces Ethernet
La con guration d'une interface Ethernet est tr
es semblable 
a celle de l'interface
loopback, elle demande juste quelques param
etres suppl
ementaires si vous employez
des sous-r
eseaux.

A (
( La bi
ere virtuelle )
), nous avons subdivis
e le r
eseau IP, qui 
etait 
a l'origine de
classe B, en r
eseaux de classe C. Pour que l'interface reconnaisse ce fait, nous devons
appeler ifcon g de la mani
ere suivante:
# ifconfig eth0 gueuze netmask 255.255.255.0
Cette commande assigne l'adresse IP de gueuze (172.16.1.2) 
a l'interface eth0. Si
nous avions omis le masque r
eseau, ifcon g l'aurait d
eduit de la classe de l'adresse
r
eseau, ce qui aurait donn
e 255.255.0.0. Une petite v
eri cation nous donne mainte-
nant:
# ifconfig eth0
eth0 Link encap 10Mps Ethernet HWaddr 00:00:C0:90:B3:42
inet addr 172.16.1.2 Bcast 172.16.1.255 Mask 255.255.255.0
UP BROADCAST RUNNING MTU 1500 Metric 1
RX packets 0 errors 0 dropped 0 overrun 0
TX packets 0 errors 0 dropped 0 overrun 0
Vous pouvez voir que ifcon g initialise automatiquement l'adresse de di usion (le
champ Bcast ci-dessus) selon la m
ethode usuelle, en mettant 
a 1 tous les bits de la
partie h^
ote de l'adresse r
eseau. De plus, le MTU ((
( Maximum Transfer Unit )
), la
taille maximale des trames Ethernet que le noyau g
en
erera pour cette interface) a

et
e positionn
e 
a 1500 octets. Toutes ces valeurs peuvent ^
etre forc
ees par des options
sp
eciales que nous d
ecrirons plus tard.
Tout comme avec l'interface loopback, nous devons installer une entr
ee dans la table
de routage pour informer le noyau de ce r
eseau accessible par eth0. Chez nos brasseurs
virtuels, il faudra donc taper la commande route suivante:
# route add -net 172.16.1.0
6: Par exemple, toutes les applications bas
ees sur les RPC utilisent l'interface loopback pour s'en-
registrer aupr
es du d
emon portmapper au d
emarrage du syst
eme.
70 Chapitre 5. Con guration du r
eseau TCP/IP

A premi
ere vue, cela semble tenir de la magie, puisqu'il n'appara^
t pas clairement
comment route peut d
etecter par quelle interface cette route doit passer. Pourtant,
le truc est simple: le noyau regarde toutes les interfaces qui ont 
et
e con gur
ees et
compare l'adresse de destination (172.16.1.0 dans ce cas) avec la partie r
eseau de
l'adresse de l'interface (c'est-
a-dire, un (
( ET )
) bit 
a bit entre l'adresse de l'interface
et le masque r
eseau). La seule qui correspond est eth0.
Mais qu'est-ce que cette option -net est donc cens
ee faire? Elle est utilis
ee car route
peut traiter aussi bien des routes vers des r
eseaux que des routes vers de simples h^
otes
(comme vous l'avez vu plus haut dans le cas de localhost). Lorsqu'on lui passe une
adresse en notation sur 4 octets, le programme tente de deviner s'il s'agit d'un r
eseau
ou d'un h^
ote, en regardant les bits de la partie h^
ote. Si cette partie h^
ote de l'adresse
vaut z
ero, route consid
ere qu'il s'agit d'un r
eseau; et d'une adresse d'h^
ote dans le cas
contraire. Par cons
equent, route penserait que 172.16.1.0 est un h^
ote et non pas un
r
eseau, car le programme ne sait pas que nous utilisons un sous-r
eseau. Nous devons
donc lui indiquer explicitement qu'il s'agit d'un r
eseau, en lui passant l'option -net.
Bien s^
ur, la commande ci-dessus est un peu p
enible 
a taper, et peut entra^
ner des
fautes de frappe. Une approche plus pratique consiste 
a employer les noms de r
eseaux
que nous avons d
e nis dans le chier /etc/networks auparavant. Du coup, notre com-
mande devient plus lisible; et l'on peut m^
eme supprimer l'option -net puisque route
sait maintenant que 172.16.1.0 correspond 
a un r
eseau.
# route add biere-net
Maintenant que nous avons termin
e les 
etapes de base de la con guration, nous al-
lons v
eri er que notre interface Ethernet fonctionne correctement. Choisissez un h^
ote
connect
e 
a votre r
eseau local, par exemple kro, et tapez:
# ping kro
PING kro: 64 byte packets
64 bytes from 172.16.1.1: icmp_seq=0. time=11. ms
64 bytes from 172.16.1.1: icmp_seq=1. time=7. ms
64 bytes from 172.16.1.1: icmp_seq=2. time=12. ms
64 bytes from 172.16.1.1: icmp_seq=3. time=3. ms
^C
----gueuze.bibine.com PING Statistics----
4 packets transmitted, 4 packets received, 0% packet loss
round-trip (ms) min/avg/max = 3/8/12
Si vous ne voyez pas quelque chose ressemblant 
a cela sur votre 
ecran, c'est sans
nul doute que quelque chose ne va pas. Si vous rencontrez un taux inhabituel de
paquets perdus, il s'agit probablement d'un probl
eme mat
eriel, comme des r
esistances
de terminaison absentes, un c^
ablage incorrect, voire... l'oubli de connecter la machine
au r
eseau. Si vous ne recevez aucun paquet, testez la con guration de l'interface par la
commande netstat. Les statistiques sur les paquets 
emis et re
cus ach
es par ifcon g
devraient vous indiquer si, au moins, des datagrammes ont 
et
e envoy
es. Si vous avez
5.8. Con guration des interfaces r
eseau 71
un acc
es physique 
a la machine distante, allez voir 
egalement les statistiques qu'elle
indique. Vous pourrez ainsi d
eterminer exactement o
u les paquets se sont perdus. De
plus, v
eri ez les informations de routage par la commande route pour voir si les deux
h^
otes sont correctement con gur
es 
a ce niveau. Invoqu
ee sans arguments, route ache
la totalit
e de la table de routage du noyau (l'option -n lui fait acher les adresses IP
au lieu des noms des machines):
# route -n
Kernel routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
127.0.0.1 * 255.255.255.255 UH 1 0 112 lo
172.16.1.0 * 255.255.255.0 U 1 0 10 eth0
La signi cation d
etaill
ee de ces champs est expliqu
ee plus loin, dans la section (
( La
commande netstat)
). La colonne Flag contient une liste des drapeaux positionn
es pour
chaque interface: U signi e qu'elle est active, et H indique que l'adresse de destination
est un h^
ote. Si le drapeau H est mis alors que vous vouliez que cette route soit une route
r
eseau, il vous faut retaper la commande route avec l'option -net. Pour v
eri er qu'une
route est utilis
ee, testez si la valeur indiqu
ee dans le champ Use de l'avant-derni
ere
colonne s'incr
emente entre deux invocations de ping.
5.8.3 Routage par une passerelle
Dans la section pr
ec
edente, nous n'avons vu que le cas d'une machine sur un unique
r
eseau Ethernet. Or, il est courant de rencontrer des interconnexions de r
eseaux par
l'interm
ediaire de passerelles. Ces passerelles peuvent se contenter de relier deux r
e-
seaux ou plus, ou bien o rir 
egalement un acc
es au monde ext
erieur, l'Internet. Pour
utiliser une passerelle, il va falloir donner quelques informations suppl
ementaires 
a la
couche r
eseau du noyau.
Par exemple, les r
eseaux Ethernet des entreprises (
( La bi
ere virtuelle )
) et (
( Les caves
virtuelles )
) sont interconnect
es par une passerelle, en l'occurrence la machine kro.
En consid
erant que kro a d
ej
a 
et
e correctement con gur
ee, nous n'aurons juste qu'
a
rajouter une autre entr
ee 
a la table de routage de gueuze, qui indiquera au noyau
qu'il peut atteindre toutes les machines du r
eseau des viticulteurs par l'interm
ediaire
de kro. La commande route e ectuant cette op
eration est celle indiqu
ee ci-dessous;
le mot cl
e gw lui signale que le prochain argument d
enote une passerelle (gateway):
# route add pinard-net gw kro
Bien entendu, chaque machine du r
eseau des viticulteurs 
a laquelle vous voudrez par-
ler devra comporter une route correspondante vers le r
eseau des brasseurs. Sinon,
vous ne pourriez qu'envoyer des donn
ees depuis gueuze vers, par exemple, gamay;
mais aucune r
eponse de cette derni
ere ne pourrait revenir, les paquets 
etant irr
em
e-
diablement perdus.
72 Chapitre 5. Con guration du r
eseau TCP/IP
Cet exemple ne d
ecrit qu'une passerelle permettant l'
echange de datagrammes entre
deux r
eseaux Ethernet isol
es. Maintenant, supposons que kro soit aussi connect
ee 
a
l'Internet (disons, par une liaison suppl
ementaire SLIP). Nous voudrions alors que les
datagrammes 
a destination de n'importe quel r
eseau autre que celui des brasseurs soit
pass
es 
a kro. On peut r
ealiser cela en la d
eclarant comme passerelle par d
efaut:
# route add default gw kro
Le nom de r
eseau default est un raccourci pour indiquer 0.0.0.0, qui d
enote la route
par d
efaut. Vous n'avez pas besoin d'ajouter ce nom au chier /etc/networks, il est
int
egr
e directement dans la commande route.
Si vous constatez de nombreuses pertes de paquets en essayant ping vers une machine
situ
ee 
a une ou plusieurs passerelles de l
a, ce peut ^
etre le signe d'un r
eseau tr
es charg
e.
La perte de datagrammes n'est pas tellement le fait de d
e ciences techniques, mais
elle est surtout li
ee aux exc
es momentan
es de charge sur les passerelles, qui peuvent
entra^
ner un temps de transfert inconsid
er
ement long, voire l'omission de quelques
paquets.
5.8.4 Con guration d'une passerelle
Con gurer une machine pour qu'elle puisse 
echanger des paquets entre deux r
eseaux
Ethernet est extr^
emement simple. Consid
erons que nous sommes revenus sur kro, qui
est 
equip
ee de deux cartes Ethernet, chacune connect
ee 
a l'un des deux r
eseaux. Tout
ce que vous avez 
a faire se r
esume 
a con gurer chaque interface s
epar
ement, en leur
donnant leur adresse IP respective, et le tour est jou
e.
Il est tr
es pratique de rajouter les informations sur ces deux interfaces au chier hosts
comme nous le montrons ci-dessous, a n de pouvoir les appeler aussi par des noms:
172.16.1.1 kro.bibine.com kro kro-if1
172.16.2.1 kro-if2
La s
erie de commandes 
a invoquer pour con gurer les deux interfaces devient alors:
# ifconfig eth0 kro-if1
# ifconfig eth1 kro-if2
# route add biere-net
# route add pinard-net
5.8.5 L'interface PLIP
Avec une liaison PLIP pour connecter deux machines, les choses sont un petit peu
di 
erentes de ce que vous avez vu avec l'Ethernet. PLIP r
ealise ce que l'on appelle
5.8. Con guration des interfaces r
eseau 73
une liaison point-
a-point, car ce type de liaison met en jeu deux h^
otes ((
( points )
)),
par opposition aux grands r
eseaux.
Prenons un exemple. Admettons que l'un des employ
esde (
( La bi
ere virtuelle)
) poss
ede
un ordinateur portable, connect
e 
a kro par PLIP. Le portable s'appelle le e et ne
poss
ede qu'un seul port parall
ele. 
A l'amor
cage, ce port parall
ele sera enregistr
e en
tant que plip1. Pour activer le lien, vous devrez con gurer l'interface plip1 
a l'aide des
commandes suivantes7 :
# ifconfig plip1 leffe pointopoint kro
# route add default gw kro
La premi
ere commande con gure l'interface, signalant au noyau qu'il s'agit d'une
liaison point-
a-point, l'autre c^
ot
e ayant l'adresse de kro. La seconde installe la route
par d
efaut, utilisant kro comme passerelle. Sur cette derni
ere, une commande ifcon g
similaire sera n
ecessaire pour activer la liaison (route n'est pas utile ici):
# ifconfig plip1 kro pointopoint leffe
Ce qui est int
eressant ici, c'est que l'interface plip1 sur kro n'a pas une adresse IP
s
epar
ee, mais peut aussi se voir attribuer l'adresse 172.16.1.18.
Nous avons donc maintenant con gur
e le routage du portable vers le r
eseau des bras-
seurs; mais il nous faut encore trouver une m
ethode pour router les paquets de n'im-
porte quel h^
ote de ce r
eseau vers le e. Une solution particuli
erement lourde consiste

a rajouter une route sp
eci que sur chaque h^
ote de ce r
eseau, d
eclarant kro comme
passerelle vers le e:
# route add leffe gw kro
Lorsque l'on est confront
e 
a l'
etablissement de routes temporaires comme ici, faire
appel au routage dynamique est une solution nettement meilleure. Pour cela, une m
e-
thode consiste 
a employer gated, un d
emon de routage, que vous devrez installer sur
chaque h^
ote du r
eseau de mani
ere 
a distribuer les informations de routage dynami-
quement. Cependant, la meilleure solution est encore proxy ARP (Address Resolution
Protocol, protocole de r
esolution d'adresses). Avec proxy ARP, kro r
epond 
a n'im-
porte quelle requ^
ete ARP pour le e en envoyant sa propre adresse Ethernet. Le
r
esultat est que tous les paquets 
a destination de le e arriveront en r
ealit
e 
a kro, qui
les renverra alors 
a l'ordinateur portable. Nous reviendrons sur proxy ARP dans la
section (
( Checking the ARP Tables )
).
Les futures versions des utilitaires r
eseau pour Linux contiendront un outil nomm
e
plipcon g, qui permettra de choisir la ligne d'IRQ 
a utiliser pour le port imprimante.
Plus tard, il pourrait m^
eme ^
etre remplac
e par une commande ifcon g plus g
en
erale.
7: Notez bien que pointopoint n'est pas une faute typographique; c'est vraiment le nom de
l'option.
8: Par pr
ecaution, ne con gurez toutefois de liaisons PLIP, SLIP ou PPP que lorsque vous avez
compl
etement initialis
e les tables de routages pour vos r
eseaux. Avec certaines anciennes versions de
Linux, votre route r
eseau pourrait se mettre 
a pointer sur le lien point-
a-point.
74 Chapitre 5. Con guration du r
eseau TCP/IP
5.8.6 Les interfaces SLIP et PPP
Bien que SLIP et PPP ne soient pas autre chose que de simples liaisons point-
a-point
comme les connexions PLIP, il y a beaucoup plus 
a dire 
a leur propos. G
en
eralement,
l'
etablissement d'une liaison SLIP implique l'appel d'un num
ero de t
el
ephone du site
distant par l'interm
ediaire d'un modem, et passer la ligne s
erie en mode SLIP. PPP
s'utilise de la m^
eme mani
ere. Les outils n
ecessaires pour r
ealiser des liaisons SLIP ou
PPP seront d
ecrits dans les chapitres 7 et 8.
5.8.7 L'interface dummy
L'interface dummy (muette) est un peu exotique, n
eanmoins elle est plut^
ot utile. Elle
est surtout destin
ee aux machines isol
ees, ou celles dont la seule connexion IP est une
liaison de type SLIP. En fait, ce dernier cas revient au premier, lorsque le syst
eme
n'est pas connect
e.
Le probl
eme de ces machines isol
ees est qu'elles n'ont qu'un seul p
eriph
erique r
eseau
actif, l'interface loopback, qui se voit normalement attribuer l'adresse 127.0.0.1. Mais
parfois, il est n
ecessaire d'envoyer des donn
ees 
a l'adresse IP (
( ocielle )
) de cet h^
ote
local. Consid
erons par exemple l'ordinateur portable le e, que nous d
econnectons de
tout r
eseau le temps de cet exemple. Une application fonctionnant sur cette machine
veut envoyer quelque donn
ee vers un autre programme sur ce m^
eme ordinateur. La
recherche de le edans /etc/hosts renvoie l'adresse 172.16.1.65,par cons
equentnotre
application essaie d'utiliser cette valeur. Comme pour l'instant, la seule interface
active est le loopback, le noyau n'est absolument pas au courant que 172.16.1.65
r
ef
erence aussi cette machine! En cons
equence, il 
elimine ce datagramme et renvoie
une erreur 
a l'application.
C'est l
a que l'interface dummy entre en jeu. Elle permet de r
esoudre ce probl
eme en
servant de seconde interface loopback, 
a laquelle on attribue l'adresse 172.16.1.65.
On ajoute bien entendu une route vers elle, et ainsi chaque datagramme 
a destination
de 172.16.1.65sera d
elivr
e localement. Les commandes n
ecessaires pour 
etablir cette
con guration sont:
# ifconfig dummy leffe
# route add leffe
5.9 Tout sur ifcon g
La commande ifcon g poss
ede bien plus de param
etres que nous n'en avons utilis
e
jusqu'
a pr
esent. Sa syntaxe exacte est:
ifconfig interface [[-net|-host] adresse [parametres]]
5.9. Tout sur ifcon g 75
L'argument interface est bien s^
ur le nom de l'interface, et adresse correspond 
a
l'adresse IP 
a lui assigner. Ce peut ^
etre indi 
eremment une adresse exprim
ee en no-
tation sur 4 octets, ou un nom de machine que ifcon g recherchera dans les chiers
/etc/hosts et /etc/networks. Les options -net et -host forcent la commande 
a consi-
d
erer l'adresse comme un r
eseau ou un h^
ote, respectivement.
Si ifcon g est invoqu
ee uniquement avec le nom de l'interface, cette commande ache
alors la con guration courante de l'interface en question. Sans aucun param
etre, elle
consid
ereratoutes celles qui sont con gur
ees; une option -a permet de lui faire acher

egalement les interfaces inactives. Sur eth0, la sortie de ifcon g peut donner quelque
chose comme ceci:
# ifconfig eth0
eth0 Link encap 10Mbps Ethernet HWaddr 00:60:8C:53:D3:65
inet addr 193.56.58.85 Bcast 193.56.58.255 Mask 255.255.255.0
UP BROADCAST RUNNING MTU 1500 Metric 1
RX packets 414652 errors 3 dropped 3 overruns 3
TX packets 518279 errors 0 dropped 0 overruns 0
Les champs MTU et Metric montrent respectivement le MTU et la valeur m
etrique pour
cette interface. La valeur m
etrique est utilis
ee par certains syst
emes d'exploitation
pour d
eterminer le prix ou l'ecacit
e d'une route. Pour l'instant, Linux n'utilise pas
cette valeur, mais elle est d
e nie pour des raisons 
evidentes de compatibilit
e.
Les lignes RX et TX montrent combien de paquets ont 
et
e re
cus (RX) ou transmis
(TX) sans erreurs, combien d'erreurs se sont produites, combien de paquets furent

elimin
es (probablement par manque de m
emoire), et combien ont 
et
e perdus en raison
de d
ebit trop important. Ces (
( overruns )
) se produisent g
en
eralement lorsque les
paquets arrivent trop rapidement, et que le noyau n'a pas eu le temps de servir la
derni
ere interruption alors qu'une autre arrive. Les drapeaux ach
es par ifcon g
correspondent plus ou moins aux noms des options de sa ligne de commande; nous
allons les expliquer ci-dessous.
Voici la liste des param
etres reconnus par la commande ifcon g, avec les noms des
drapeaux correspondants. Les options qui ne sont que des bascules de conditions
particuli
eres permettent 
egalement de les supprimer si elles sont pr
ec
ed
ees du signe
(
( moins )
) (-).
up Cette option marque l'interface comme 
etant accessible 
a la couche
r
eseau du noyau. Elle est implicite lorsqu'une adresse est donn
ee sur
la ligne de commandes. Elle peut aussi ^
etre utilis
ee pour remettre en
service une interface qui a 
et
e arr^
et
ee momentan
ement par l'option
down.
Elle correspond aux drapeaux UP et RUNNING.
down Marque l'interface comme 
etant inaccessible 
a la couche IP du noyau.
Cela interdit tout tra c IP 
a travers l'interface. Notez que cette op-
tion ne supprime pasles entr
eesde la table de routagepouvant utiliser
76 Chapitre 5. Con guration du r
eseau TCP/IP
cette interface. Si vous d
ecidez de mettre une interface hors service
de fa
con permanente, vous devrez 
egalement supprimer tout routage
passant par elle et, si possible, o rir une alternative pour l'achemi-
nement des datagrammes.
netmask masque
Assigne le masque de sous-r
eseau 
a utiliser pour cette interface. Il
peut ^
etre donn
e soit par un nombre hexad
ecimal sur 32 bits pr
ec
ed
e
de 0x (comme en langage C), soit en notation traditionnelle sur 4
octets.
pointopoint adresse
Cette option est utilis
ee pour les liaisons point-
a-point qui ne mettent
en jeu que deux machines. Elle est n
ecessaire pour con gurer, par
exemple, des interfaces SLIP ou PLIP.
Si une adresse point-
a-point est initialis
ee, la commande ifcon g af-
chera alors le drapeau POINTOPOINT.
broadcast adresse
L'adresse de di usion est g
en
eralement constitu
ee 
a partir de la va-
leur r
eseau en mettant tous les bits de la partie h^
ote 
a 1. Quelques
impl
ementations de IP (notamment les syst
emes d
eriv
es de BSD 4.2)
utilisent un sch
ema di 
erent, o
u la partie h^
ote est mise 
a z
ero). L'op-
tion broadcast est l
a, entre autres, pour s'adapter 
a ces environne-
ments 
etranges.
Si une adresse de di usion est positionn
ee, ifcon g achera le dra-
peau BROADCAST.
metric nombre
Option employ
ee pour assigner une valeur m
etrique 
a l'entr
ee de la
table de routage cr
e
ee pour cette interface. Cette valeur est utilis
ee
par RIP (Routing Information Protocol) pour construire les tables
de routage pour le r
eseau9. La valeur m
etrique mise par d
efaut par
ifcon g est z
ero. Si vous n'employez pas de d
emon RIP, vous n'aurez
pas besoin de cette option; si vous le faites, vous n'aurez que tr
es
rarement besoin de changer cette valeur.
mtu octets Permet d'ajuster la taille de l'unit
e de transfert ((
( Maximum Trans-
mission Unit )
)), qui correspond au nombre maximum d'octets que
l'interface est capable de manipuler en une seule transaction. Pour
9: RIP choisit la route optimale vers un h^
ote donn
e en se basant sur la (
( longueur )
) du chemin

a parcourir. Elle est calcul
ee en ajoutant toutes les valeurs m
etriques individuelles de chaque liaison
entre les machines rencontr
ees. Par d
efaut, un saut ((
( hop )
)) a une valeur de 1, mais ce peut ^
etre
n'importe quelle valeur enti
ere inf
erieure 
a 16 (une route 
egale 
a 16 est consid
er
ee comme in nie, et
inutilisable). Le param
etre metric permet d'ajuster cette valeur, qui est alors di us
ee par le d
emon
de routage.
5.10. La commande netstat 77
l'Ethernet, la valeur par d
efaut est 1500; pour les interfaces SLIP
c'est 296.
arp Il s'agit d'une option sp
eci que aux r
eseaux comme l'Ethernet ou le
packet-radio. Elle met en service le protocole de r
esolution d'adresses,
ARP, a n de d
etecter les adresses physiques des machines attach
ees
au r
eseau. Pour les r
eseaux cit
es, elle est toujours en service par
d
efaut.
Si ARP est hors service, ifcon g achera le drapeau NOARP.
-arp Supprime l'utilisation de ARP sur cette interface.
promisc Passe l'interface en mode global (promiscuous mode). Sur un r
eseau
Ethernet (par exemple), cela a pour e et de faire recevoir tous les
paquets 
a l'interface, qu'ils soient destin
es 
a un autre h^
ote ou non. On
peut ainsi analyser le tra c sur le r
eseau 
a l'aide de ltres de paquets
ou autres outils. G
en
eralement, cette technique appel
ee (
( Ethernet
snooping )
) est une bonne m
ethode pour traquer certains probl
emes
r
eseau quasi ind
etectables autrement.
D'un autre c^
ot
e, elle permet aux personnes malintentionn
ees de son-
der ce qui passe sur le r
eseau, 
a la recherche de mots de passe ou
pour r
ealiser d'autres actions ill
egales. Pour se prot
eger, une solution
consiste 
a ne laisser personne connecter impun
ement sa machine sur
votre r
eseau Ethernet. Une autre option est d'utiliser des protocoles
d'authenti cation s
ecuris
es, comme Kerberos, ou le login SRA10.
Cette option correspond au drapeau PROMISC.
-promisc Annule le mode global.
allmulti Les adresses multicast sont un genre d'adresses de di usion limit
ees

a un groupe de machines qui n'ont pas n
ecessairement besoin de se
trouver sur le m^
eme sous-r
eseau. Elles sont support
ees sous Linux 
a
partir du noyau version 1.1.72, en alpha-test.
Cette option correspond au drapeau ALLMULTI.
-allmulti Invalide les adresses multicast.
5.10 La commande netstat
Tournons-nous maintenant vers un outil presque indispensable pour tester la con gu-
ration et l'activit
e du r
eseau: la commande netstat, qui est en fait une collection de
plusieurs outils rassembl
es en un seul. Nous allons en d
etailler chaque fonction.
10: L'ensemle SRA peut ^
etre obtenu sur ftp.tamu.edu dans le r
epertoire /pub/sec/TAMU.
78 Chapitre 5. Con guration du r
eseau TCP/IP
5.10.1 Achage de la table de routage
Invoqu
ee avec l'option -r, netstat ache la table de routage du noyau sous la m^
eme
forme que la commande route que nous avons d
ej
a vue. Sur la machine gueuze, cela
nous donne:
# netstat -nr
Kernel routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
127.0.0.1 * 255.255.255.255 UH 1 0 50 lo
172.16.1.0 * 255.255.255.0 U 1 0 478 eth0
172.16.2.0 172.16.1.1 255.255.255.0 UGN 1 0 250 eth0
L'option -n indique 
a netstat d'acher les adresses IP selon la notation sur 4 octets
plut^
ot que d'indiquer les noms symboliques des h^
otes et des r
eseaux. C'est particuli
e-
rement utile lorsque l'on veut 
eviter des recherches de noms 
a travers le r
eseau (via
un serveur DNS ou NIS).
La seconde colonne montre la passerelle vers laquelle pointe l'entr
ee de la table. Si au-
cune passerelle n'est utilis
ee, un ast
erisque est ach
e 
a la place. La troisi
eme colonne
indique la (
( g
en
eralit
e)
) de la route. Lorsqu'on lui demande de trouver une route pour
une certaine adresse IP, le noyau regarde toutes les entr
ees de la table de routage,
faisant un ET bit 
a bit de l'adresse et de ce masque avant de la comparer 
a la cible
de cette route.
La quatri
eme colonne indique les di 
erents drapeaux qui caract
erisent cette route:
G La route utilise une passerelle (gateway).
U L'interface est en service (up).
H On ne peut joindre qu'un simple h^
ote par cette route. C'est pas
exemple le cas pour l'entr
ee loopback 127.0.0.1.
D Ce drapeau est positionn
e si l'entr
ee de la table a 
et
e g
en
er
ee par un
message ICMP de redirection (voir la section 2.5).
M Positionn
e si l'entr
ee de la table a 
et
e modi 
ee par un message ICMP
de redirection.
La colonne Ref de la sortie de netstat montre le nombre de r
ef
erences 
a cette route,
c'est-
a-dire combien d'autres routes (par des passerelles par exemple) n
ecessitent sa
pr
esence. Les deux derni
eres colonnes indiquent le nombre de fois o
u cette entr
ee a

et
e utilis
ee, et l'interface 
a laquelle les datagrammes sont envoy
es.
5.10. La commande netstat 79
5.10.2 Achage des statistiques sur une interface
L'option -i de netstat permet l'achage des statistiques des interfaces r
eseau actuel-
lement con gur
ees. Si l'on y rajoute l'option -a, ce seront toutes les interfaces qui
seront indiqu
ees, et non plus seulement celles actuellement en service. Sur gueuze,
la sortie de netstat nous donne ceci:
$ netstat -i
Kernel Interface table
Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flags
lo 0 0 3185 0 0 0 3185 0 0 0 BLRU
eth0 1500 0 972633 17 20 120 628711 217 0 0 BRU
Les champs MTU et Met montrent le MTU et la valeur m
etrique courants pour
cette interface. Les colonnes RX et TX indiquent combien de paquets ont 
et
e re
cus
(RX-OK) ou 
emis (TX-OK) sans erreurs, avec erreurs (RX-ERR/TX-ERR), combien
furent 
elimin
es (RX-DRP/TX-DRP) et combien furent perdus en raison de d
ebit trop
haut pour le noyau (RX-OVR/TX-OVR).
La derni
ere colonne indique quels drapeaux sont positionn
es. Ce sont les initiales des
noms qui sont ach
es lorsque vous demandez l'
etat de la con guration de l'interface
par la commande ifcon g.
B Une adresse de di usion est positionn
ee.
L Cette interface est un p
eriph
erique loopback.
M Tous les paquets sont re
cus (mode global).
O ARP est hors service.
P Il s'agit d'une connexion point-
a-point.
R L'interface est en fonctionnement.
U L'interface est en service.
5.10.3 Achage des connexions
La commande netstat supporte un ensemble d'options permettant de visualiser les
sockets actives ou passives. Ce sont les options -t, -u, -w et -x qui montrent respec-
tivement les connexions TCP, UDP, RAW, et UNIX. Si vous ajoutez -a, les sockets
en attente de connexion (
a l'
ecoute d'un port par exemple) sont 
egalement ach
ees.
Vous aurez ainsi une liste de tous les serveurs qui sont actuellement en service sur
votre syst
eme.
Le r
esultat de netstat -ta sur kro est:
80 Chapitre 5. Con guration du r
eseau TCP/IP
$ netstat -ta
Active Internet connections
Proto Recv-Q Send-Q Local Address Foreign Address (State)
tcp 0 0 *:domain *:* LISTEN
tcp 0 0 *:time *:* LISTEN
tcp 0 0 *:smtp *:* LISTEN
tcp 0 0 kro:smtp gueuze:1040 ESTABLISHED
tcp 0 0 *:telnet *:* LISTEN
tcp 0 0 localhost:1046 gamay:telnet ESTABLISHED
tcp 0 0 *:chargen *:* LISTEN
tcp 0 0 *:daytime *:* LISTEN
tcp 0 0 *:discard *:* LISTEN
tcp 0 0 *:echo *:* LISTEN
tcp 0 0 *:shell *:* LISTEN
tcp 0 0 *:login *:* LISTEN
Nous voyons que la plupart des serveurs sont simplement en attente de connexion.
Toutefois, la quatri
eme ligne indique une connexion SMTP en cours depuis gueuze,
et la sixi
eme nous apprend qu'il existe une connexion telnet sortante vers la machine
gamay11.
L'emploi de l'option -a seule achera toutes les sockets de toutes les cat
egories.
5.11 Test des tables ARP
Il est des occasions o
u il peut ^
etre utile de visualiser, voire de modi er le contenu
des tables ARP du noyau, par exemple si vous suspectez qu'une adresse Internet
dupliqu
ee est la cause de probl
emes r
eseaux intermittents. L'outil arp est destin
e 
a
de telles situations. Sa syntaxe est la suivante:
arp [-v] [-t materiel] -a [nom-de-machine]
arp [-v] [-t materiel] -s nom-de-machine materiel
arp [-v] -d nom-de-machine [nom-de-machine: : : ]
Tous les arguments nom-de-machine peuvent ^
etre soit des noms d'h^
otes en clair, soit
des adresses IP en notation sur 4 octets.
La premi
ere invocation ache les entr
ees ARP pour les adresses IP ou h^
otes sp
eci 
es,
ou tous les h^
otes connus si aucun nom-de-machine n'est donn
e. Par exemple, sur kro,
nous pourrions obtenir:
# arp -a
IP address HW type HW address
11: Vous pouvez savoir si une connexion est sortante ou entrante 
a partir des ports mis en jeu. Le
num
ero de port ach
e sur l'h^
ote appelant sera toujours un simple entier, alors que sur la machine
appel
ee, un service connu sera actif, pour lequel netstat utilisera le nom symbolique trouv
e dans le
chier /etc/services.
5.11. Test des tables ARP 81
172.16.1.3 10Mbps Ethernet 00:00:C0:5A:42:C1
172.16.1.2 10Mbps Ethernet 00:00:C0:90:B3:42
172.16.2.4 10Mbps Ethernet 00:00:C0:04:69:AA
Ce qui montre les adresses Ethernet de kro, gueuze et trappiste.
Avec l'option -t, vous pouvez limiter l'achage au type de mat
eriel sp
eci 
e. Ce
peut ^
etre ether, ax25 ou pronet, correspondant respectivement 
a l'Ethernet 10 Mbps,
AMPR AX.25 et les 
equipements token ring IEEE 802.5.
L'option -s sert 
a ajouter de fa
con permanente l'adresse Ethernet de nom-de-machine
dans les tables ARP. L'argument materiel sp
eci e l'adresse mat
erielle, qui est par
d
efaut une adresse Ethernet sous la forme de six nombres hexad
ecimaux s
epar
es
par le signe (
( : )
). Vous pouvez aussi initialiser l'adresse mat
erielle d'autres types
d'
equipement, gr^
ace 
a l'option -t.
Vous pouvez avoir 
a ajouter manuellement une adresse IP 
a la table ARP si pour une
raison quelconque, les requ^
etes ARP vers la machine distante 
echouent; par exemple
si son pilote ARP est bogu
e ou s'il existe une autre machine sur le r
eseau qui, suite

a une erreur de con guration, poss
ede la m^
eme adresse IP. Forcer manuellement les
adresses IP dans la table ARP est aussi une m
ethode (plut^
ot violente) pour se prot
eger
des h^
otes de votre r
eseau qui tenteraient de se faire passer pour d'autres.
Appeler arp avec l'option -d a pour e et de supprimer toutes les entr
ees ARP rela-
tives 
a l'h^
ote concern
e. Ce peut ^
etre un moyen de forcer l'interface 
a faire une nouvelle
tentative d'obtention de l'adresse Ethernet pour l'adresse IP en question. Cette fonc-
tion est tr
es utile lorsqu'une machine mal con gur
ee a di us
e une information ARP
erron
ee (bien s^
ur, vous devrez corriger la con guration de ce syst
eme avant).
L'option -s peut aussi servir 
a impl
ementer proxy ARP. Il s'agit d'une technique
sp
eciale o
u un h^
ote, appelons-le relais, agit comme une passerelle vers un autre h^
ote
que nous nommerons truc en pr
etendant que les deux adresses se r
ef
erent au m^
eme
h^
ote, relais. Il e ectue cela en di usant une entr
ee ARP pour truc qui pointe sur
sa propre interface Ethernet. Du coup, lorsqu'une machine enverra une requ^
ete ARP
pour truc, relais retournera une r
eponse contenant sa propre adresse Ethernet. La
machine demandeuse enverra alors tous les datagrammes vers relais, qui les passera
gentiment 
a truc, l'autre bout n'y voyant que du feu.
Cette gymnastique peut devenir n
ecessaire quand, par exemple, vous voulez acc
eder

a truc depuis une machine MS-DOS poss
edant une impl
ementation compl
etement
d
efectueuse de TCP, qui ne comprend pas trop bien les m
ethodes de routage. Avec
proxy ARP, cette machine MS-DOS aura l'impression que truc est sur le sous-r
eseau
local, et n'aura donc pas besoin de savoir comment router des datagrammes 
a travers
une passerelle.
Proxy ARP est aussi tr
es utile lorsqu'une machine doit faire passerelle uniquement de
temps en temps, par exemple 
a travers une liaison t
el
ephonique. Dans un pr
ec
edent
exemple, nous avons rencontr
e l'ordinateur portable le e, qui 
etait connect
e 
a kro
par une liaison PLIP, mais seulement de temps 
a autre. Bien s^
ur, cela ne marchera
82 Chapitre 5. Con guration du r
eseau TCP/IP
que si l'adresse de la machine pour laquelle vous voulez o rir proxy ARP se trouve
sur le m^
eme sous-r
eseau IP que votre passerelle. Par exemple, gueuze pourrait faire
du proxy ARP pour n'importe quel h^
ote du sous-r
eseau des brasseurs (172.16.1.0),
mais ce serait impossible pour une machine sur celui des viticulteurs (172.16.2.0).
La syntaxe 
a employer pour o rir un service proxy ARP 
a truc est donn
ee ci-dessous;
il est bien entendu que l'adresse Ethernet indiqu
ee doit ^
etre celle de relais.
# arp -s truc 00:00:c0:a1:42:e0 pub
Cette entr
ee proxy ARP peut ^
etre supprim
ee par:
# arp -d truc
5.12 L'avenir
Le r
eseau sous Linux est en perp
etuelle 
evolution. De profonds changements dans le
noyau apporteront une m
ethode de con guration tr
es souple permettant de con gurer
les p
eriph
eriques r
eseau en cours de route. Par exemple, la commande ifcon g prendra
des arguments qui permettront de choisir l'IRQ et le canal DMA.
La commande route se verra ajouter bient^
ot des options suppl
ementaires, comme mtu
pour modi er le MTU d'une route particuli
ere, qui modi era, pour cette route seule-
ment, le MTU sp
eci 
e pour l'interface correspondante. Vous utiliserez cette possibilit
e
pour les routes passant par des passerelles, lorsque la liaison entre la passerelle et la
machine de destination n
ecessite un MTU tr
es faible.
Par exemple, supposons que la machine alambic soit connect
ee 
a kro par une liaison
SLIP. Lors de l'envoi de donn
ees depuis gueuze vers alambic, la couche r
eseau de
alambic utilisera des paquets allant jusqu'
a 1500 octets puisqu'ils sont 
emis sur
l'Ethernet. La liaison SLIP, elle, fonctionne avec un MTU de 296 octets, aussi il
faudrait que le code r
eseau de kro fragmente ces paquets IP en morceaux plus petits
tenant dans 296 octets. Si, au lieu de cela, vous aviez con gur
e la route sur gueuze
pour utiliser depuis le d
ebut 296 octets, cette fragmentation relativement co^
uteuse
aurait pu ^
etre 
evit
ee:
# route add alambic gw kro mtu 296
Notez que l'option mtu permet aussi de supprimer s
electivement les e ets de la r
egle
SNARL ((
( les sous-r
eseaux sont locaux )
)). Il s'agit de l'option de con guration du
noyau d
ecrite dans le chapitre 3.
En n, consultez les pages de manuel et les documentations de la version de Linux et
des commandes que vous poss
edez. 
A l'heure o
u nous 
ecrivons ces lignes, certaines de
ces nouvelles caract
eristiques sont d
ej
a op
erationnelles.
83
Chapitre 6
Con guration du serveur de
noms et du resolver
Nous avons vu dans le chapitre 2 que le r
eseau TCP/IP peut employer di 
erentes
m
ethodes pour convertir les noms des machines en adresses IP. La plus simple, qui ne
tire aucun parti de la fa
con dont l'espace de noms est organis
e,utilise une table stock
ee
dans le chier /etc/hosts. Elle n'est utilisable que sur de petits r
eseaux locaux g
er
es
par un seul administrateur, et n'ayant aucun acc
es au monde ext
erieur. Le format de
ce chier a 
et
e d
ecrit dans le chapitre 5.
L'autre alternative consiste 
a utiliser BIND, Berkeley Internet Name Domain, pour la
r
esolution de noms en adresses. La con guration de BIND peut ^
etre un vrai pensum,
mais une fois qu'elle est termin
ee, les modi cations dans la topologie du r
eseau de-
viennent ais
ees. Sous Linux, tout comme dans beaucoup d'autres syst
emes UNIX, le
service des noms est r
ealis
e par le programme appel
e named. Au d
emarrage, il charge
un ensemble de chiers de r
ef
erence dans son cache interne et attend les requ^
etes en
provenance des machines distantes ou des processus utilisateur locaux. Il y a plusieurs
fa
cons de con gurer BIND, et toutes ne n
ecessitent pas la pr
esence d'un serveur de
noms sur chaque h^
ote.
Ce chapitre ne pourra pas faire beaucoup plus que vous donner une esquisse de la
mani
ere de faire fonctionner un serveur de noms. Si vous comptez employer BIND
dans un environnement plus important qu'un petit r
eseau local, avec probablement
un lien sur l'Internet, vous devrez acheter un bon livre traitant du sujet, comme (
( DNS
and BIND )
) de Cricket Liu (voir [AlbitzLiu92]). Pour une documentation 
a jour, vous
devrez prendre connaissance des informations contenues dans les sources de BIND.
En dehors des pages de manuel et des notes, vous y trouverez un guide complet,
(
( BIND Operator's Guide )
), ou BOG. Ne vous laissez pas tromper par ce titre: il
s'agit vraiment d'un document tr
es utile. Il existe 
egalement un forum Usenet d
edi
e
aux questions relatives au DNS, dont le nom est comp.protocols.tcp-ip.domains.
84 Chapitre 6. Con guration du serveur de noms et du resolver
6.1 La biblioth
eque resolver
Le terme (
( resolver )
) ne d
esigne pas une application particuli
ere, mais une biblio-
th
eque de fonctions. Il s'agit d'un ensemble de routines contenues sous Linux dans la
biblioth
eque C standard. Les principales sont gethostbyname(2) et gethostbyaddr(2),
qui recherchent toutes les adresses IP appartenant 
a un nom d'h^
ote, et vice versa. Elles
peuvent ^
etre con gur
ees pour ne rechercher l'information que dans le chier hosts, in-
terroger un certain nombre de serveurs de noms, ou utiliser la base de donn
ees hosts
de NIS (Network Information Service). D'autres applications, comme smail, peuvent
inclure des pilotes pour chacune de ces m
ethodes et leur con guration demande un
soin tout particulier.
Les parties s'occupant du DNS dans le resolver proviennent 
a l'origine des sources
de BIND, qui contiennent 
egalement le serveur de noms named que nous d
etaillerons
plus loin dans ce chapitre. 
A partir de la version 4.6.8 de la biblioth
eque C de Linux,
le code de la derni
ere version de BIND (4.9 ou plus r
ecent) est inclus en standard.
BIND-4.9 apporte une possibilit
e nouvelle au resolver, la liste de recherche, que nous
allons d
ecrire. Pour tout le reste, les di 
erentes versions des biblioth
eques devraient
avoir un comportement identique.
6.1.1 Le chier host.conf
Le chier central qui contr^
ole le comportement du resolver est host.conf. Il se trouve
dans /etc et indique aux fonctions de la biblioth
eque quels services utiliser, et dans
quel ordre.
Dans host.conf, chaque option doit se trouver sur une ligne s
epar
ee. Les champs
peuvent ^
etre d
elimit
es par des espaces ou des tabulations. Le signe di
ese (#) introduit
un commentaire qui s'
etend jusqu'
a la n de la ligne. Les options disponibles sont:
order D
etermine l'ordre dans lequel les services vont ^
etre sollicit
es. Les
valeurs valides sont bind pour l'interrogation du serveur de noms,
hosts pour une recherche dans le chier /etc/hosts, et nis pour utiliser
NIS. Tous peuvent ^
etre sp
eci 
es, 
eventuellement.
multi Prend les arguments on ou o , indiquant si un h^
ote cit
e dans le chier
/etc/hosts est autoris
e 
a poss
eder plusieurs adresses IP, ou non. Cette
option n'a aucun e et sur les requ^
etes DNS ou NIS.
nospoof Comme nous l'avons expliqu
e dans le chapitre pr
ec
edent, DNS vous
permet de trouver le nom d'h^
ote appartenant 
a une adresse IP donn
ee
en utilisant le domaine in-addr.arpa. Les tentatives d'envoi d'un
faux nom sont appel
ees le (
( spoo ng )
). Pour se pr
eserver, le resolver
peut ^
etre con gur
e pour tester si l'adresse IP originale est vraiment
associ
ee avec le nom obtenu. Si ce n'est pas le cas, le nom est rejet
e
6.1. La biblioth
eque resolver 85
et une erreur est retourn
ee. Ce comportement est mis en service en
mettant nospoof on.
alert Cette option prend les arguments on ou o . Si elle est en service (on),
toute tentative de spoo ng (voir ci-dessus) sera enregistr
ee dans les
chiers trace du syst
eme via syslog.
trim Prend en argument un nom de domaine, qui sera 
elimin
e des noms
d'h^
otes avant la recherche. Tr
es utile pour les entr
ees hosts, o
u vous
pouvez ne trouver que des noms de machines sans domaine local.
La recherche d'un h^
ote comprenant le domaine local verra ce dernier
supprim
e, permettant ainsi 
a la recherche dans /etc/hosts d'aboutir.
L'option trim est cumulative, votre h^
ote pouvant alors ^
etre consid
er
e
comme local 
a plusieurs domaines.
Un exemple d'un tel chier pour la machine kroest fourni dans la gure 6.1 ci-dessous.
# /etc/host.conf
# Nous utilisons named, mais pas NIS (pas encore)
order bind hosts
# Autorise les adresses multiples
multi on
# Pr
evention des tentatives de spoofing
nospoof on
# Supprime domaine local (pas vraiment n
ecessaire).
trim bibine.com.
Fig. 6.1 - Exemple de chier host.conf.
6.1.2 Variables d'environnement du resolver
La con guration inscrite dans host.conf peut ^
etre modi 
ee par un certain nombre de
variables d'environnement qui sont:
RESOLV HOST CONF
Sp
eci e un chier 
a lire 
a la place de /etc/host.conf.
RESOLV SERV ORDER
Remplace l'option order donn
ee dans host.conf. Les services sont
hosts, bind et nis, s
epar
es par une espace, une virgule, un point,
ou un deux-points (:).
RESOLV SPOOF CHECK
D
etermine les mesures 
a prendre en cas de spoo ng. Compl
etement
invalid
e par o . Les valeurs warn et warn o mettent le test de spoo-
86 Chapitre 6. Con guration du serveur de noms et du resolver
ng en service, mais valident ou invalident l'enregistrement dans les
chiers trace, respectivement. Une valeur de * met le test en service,
mais laisse l'enregistrement des traces tel que con gur
e dans le chier
host.conf.
RESOLV MULTI Les valeurs on ou o sont utilis
ees pour prendre le dessus sur celles
indiqu
ees 
a l'option multi dans host.conf.
RESOLV OVERRIDE TRIM DOMAINS
Sp
eci e la liste des domaines 
a supprimer, rempla
cant celle donn
ee
dans host.conf par l'option trim.
RESOLV ADD TRIM DOMAINS
Sp
eci e une liste de domaines 
a supprimer, qui s'ajoutera 
a celle
donn
ee dans host.conf par l'option trim.
6.1.3 Con guration des recherches DNS |resolv.conf
Lorsque vous con gurez le resolver pour qu'il utilise le service BIND pour la recherche
de noms, vous devez aussi lui indiquer quels serveurs de noms il doit utiliser. Il y a
un chier s
epar
e destin
e 
a cet usage, resolv.conf. S'il n'existe pas, ou s'il est vide, le
resolver consid
erera que le serveur de noms se trouve sur votre propre machine.
Pour utiliser un serveur de noms sur votre h^
ote local, il vous faut le con gurer s
e-
par
ement, comme nous le d
ecrirons dans les sections suivantes. Si vous ^
etes connect
e

a un r
eseau local et que vous avez la possibilit
e d'utiliser un serveur de noms d
ej
a
existant, cette solution sera toujours 
a pr
ef
erer.
L'option la plus importante dans resolv.conf est nameserver, qui indique l'adresse IP
du serveur de noms 
a contacter. Si vous en sp
eci ez plusieurs, en utilisant cette
option plusieurs fois, ils seront essay
es dans l'ordre donn
e. Par cons
equent, vous devez
toujours indiquer le plus able en premier. L'impl
ementation courante autorise jusqu'
a
trois d
eclarations nameserver dans le chier resolv.conf. Si aucune option nameserver
n'est pr
ecis
ee, le resolver tentera de se connecter sur celui qui est local 
a la machine.
Deux autres options, domain et search, vous permettent d'employer des raccourcis
pour les h^
otes appartenant 
a votre domaine local. G
en
eralement, pour vous connecter
sur une machine de votre r
eseau, vous pr
ef
erez taper un nom simple et court comme
gauss, et laisser le resolver rajouter la partie mathematiques.groucho.edu tout
seul.
C'est le but de l'option domain. Elle vous permet de sp
eci er un domaine par d
efaut,
qui sera rajout
e si le DNS 
echoue lors de la r
esolution d'un nom. Par exemple, en
recherchant gauss, il ne trouvera pas (
( gauss. )
) puisqu'il n'y a aucun domaine de
haut niveau de ce nom. Si on lui indique mathematiques.groucho.edu comme
domaine par d
efaut, il fera sa requ^
ete sur gauss.mathematiques.groucho.edu, qui
cette fois aboutira.
6.1. La biblioth
eque resolver 87
Tout cela est tr
es bien, nous direz-vous; mais d
es que l'on sort du D
epartement
Math
ematiques, nous revoil
a avec ces noms pleinement quali 
es. Et bien s^
ur, vous
voudriez aussi pouvoir utiliser des raccourcis comme quark.physique pour atteindre
les machines dans le domaine du D
epartement de Physique.
Et c'est ici que la liste de recherche entre en jeu: l'option search permet d'indiquer une
liste de recherche, qui correspond 
a une g
en
eralisation de la d
eclaration domain. L
a
o
u cette derni
ere n'autorise qu'un seul domaine par d
efaut, search permet de sp
eci er
toute une liste de domaines, chacun
etant essay
esjusqu'
a ce que la rechercheaboutisse.
Cette liste utilise des espaces ou des tabulations comme caract
ere de s
eparation.
Les d
eclarations domain et search sont mutuellement exclusives, et ne peuvent appa-
ra^
tre plus d'une fois. Si aucune d'elles n'est indiqu
ee, le resolver tentera de deviner le
domaine par d
efaut 
a partir du nom d'h^
ote local, en utilisant l'appel syst
eme getdo-
mainname(2). Si le nom n'a pas de partie domaine, c'est le domaine racine qui sera
utilis
e par d
efaut.
Si vous d
ecidez de mettre une instruction search dans resolv.conf, vous devez faire
}
tr
es attention aux domaines que vous d
eclarez dans la liste. Les biblioth
eques resolver
de version ant
erieure 
a BIND-4.9 construisaient une liste de recherche par d
efaut 
a
partir du nom de domaine, si aucune liste n'
etait pr
ecis
ee. Cette liste par d
efaut 
etait
constitu
ee du domaine par d
efaut lui-m^
eme, plus tous ses domaines parents, jusqu'
a
la racine. Cela a pos
e quelques probl
emes car les requ^
etes DNS aboutissaient 
a des
serveurs de noms qui n'auraient jamais d^
u ^
etre concern
es.
Supposons que vous vous trouviez 
a (
( La bi
ere virtuelle )
), et que vous vouliez vous
connecter 
a la machine foot.groucho.edu. Mais, ayant un peu abus
e des productions
de cette honorable soci
et
e, vos doigts d
erapent sur le clavier et au lieu de taper foot,
vous mettez foo, qui n'existe pas. Le serveur de noms de GMU vous indiquera donc
qu'il ne conna^
t aucun h^
ote de ce nom. Avec l'ancienne impl
ementation de la liste
de recherche, le resolver commencerait alors 
a rajouter bibine.com, puis com au
bout. Ce dernier cas pose un gros probl
eme car groucho.edu.com pourrait ^
etre un
domaine valide. Leur serveur de noms pourrait m^
eme trouver une machine foo dans
leur domaine, ce qui n'est pas du tout ce que vous vouliez1 !
Dans certaines applications, ces recherches bogu
ees peuvent poser des probl
emes de
s
ecurit
e. Par cons
equent, vous devez g
en
eralement limiter les domaines de votre liste
de recherche 
a votre organisation locale, ou 
equivalent. Au D
epartement de Ma-
th
ematiques de l'universit
e Groucho Marx, la liste de recherche serait initialis
ee 
a
maths.groucho.edu et groucho.edu.
Si vous trouvez que les domaines par d
efaut sont un peu diciles 
a appr
ehender,
regardez cet exemple de chier resolv.conf pour (
( La bi
ere virtuelle )
) :
# /etc/resolv.conf
# Notre domaine
domain bibine.com
1: Pour une explication d
etaill
ee de ce probl
eme, consultez le RFC 1535.
88 Chapitre 6. Con guration du serveur de noms et du resolver
#
# Nous utilisons kro comme serveur de noms central:
nameserver 172.16.1.1
Lors de la recherche du nom trappiste, le resolver cherchera trappiste, et ne le
trouvant pas, trappiste.bibine.com.
6.1.4 Fiabilit
e du Resolver
Si vous ^
etes connect
e sur un r
eseau local faisant partie d'un r
eseau plus important,
vous devez absolument utiliser les 
eventuels serveurs de noms centraux. Ils d
evelop-
peront petit 
a petit des caches extr^
emement bien fournis, puisque toutes les requ^
etes
leur seront pass
ees. Toutefois, cette m
ethode a ses failles: lorsqu'un incendie d
etruisit
un jour le c^
able de la dorsale de notre universit
e, plus aucun travail ne fut possible
sur notre r
eseau local car aucun resolver ne pouvait plus atteindre aucun serveur de
noms. Il 
etait impossible d'utiliser les terminaux X, les imprimantes, etc.
Bien que cette situation soit tr
es rare, il vaut mieux prendre ses pr
ecautions contre
les pannes, toujours possibles.
Vous pouvez par exemple installer un serveur de noms local, qui g
ere les machines
de votre domaine local et renvoie les requ^
etes pour tous les autres noms aux ser-
veurs principaux. Bien entendu, cela n'est possible que si vous poss
edez votre propre
domaine local.
Alternativement, vous pouvez maintenir une sauvegarde des h^
otes de votre r
eseau
dans le chier /etc/hosts. 
A ce moment-l
a, vous mettriez dans le chier /etc/host.conf
la ligne (
( order bind hosts )
) a n que le resolver utilise ce chier hosts en cas de panne
du serveur de noms central.
6.2 Utilisation de named
Le programme qui r
ealise le service de noms sur la plupart des machines UNIX s'ap-
pelle en g
en
eral named (prononcez naime-d
e). Il s'agit d'un programme serveur d
e-
velopp
e 
a l'origine pour BSD, o rant un service de noms aux clients, aussi bien qu'
a
d'autres serveurs de noms. La version actuellement utilis
ee sous Linux semble ^
etre
BIND-4.8.3. La nouvelle version, BIND-4.9.3, est encore en b^
eta-test 
a l'heure ou
nous 
ecrivons ce livre2. Elle comporte de nombreuses nouveaut
es, comme des zones
s
ecuris
ees pour restreindre les transferts 
a certains h^
otes ou r
eseaux. Consultez la
documentation fournie avec le code source pour plus de d
etails.

A partir de maintenant, nous consid
erons que vous comprenez et ma^
trisez la fa
con
dont DNS, le Domain Name System, fonctionne. Si tout ce qui va suivre vous para^
t
confus, relisez le chapitre 2, qui contient les notions de base n
ecessaires.
2: BIND-4.9 est d
evelopp
e par Paul Vixie, paul@vix.com.
6.2. Utilisation de named 89
Le programme named est en principe lanc
e au d
emarrage du syst
eme et fonctionne
continuellement jusqu'
a l'arr^
et de la machine. Il prend ses informations dans un chier
de con guration nomm
e /etc/named.boot, ainsi que dans divers autres chiers qui
contiennent des correspondances entre domaines et adresses, et d'autres donn
ees de
ce type. Ces derniers sont appel
es chiers de zone. Le format et la s
emantique de ces
chiers constituent l'objet de la section suivante.
Pour lancer named, tapez simplement:
# /usr/sbin/named
Aussit^
ot, named va lire le chier named.boot et tous les chiers de zone indiqu
es
dedans. Il 
ecrit son num
ero de processus dans /var/run/named.pid sous forme ASCII,
t
el
echarge des donn
ees depuis le serveur primaire si n
ecessaire, puis se met 
a l'
ecoute
du port 53 en attente de requ^
etes DNS3.
6.2.1 Le chier named.boot
Le chier named.boot est g
en
eralement tr
es petit et ne contient pratiquement que des
pointeurs vers des chiers de r
ef
erence, dans lesquels se trouvent les informations de
la zone et des pointeurs sur d'autres serveurs de noms. Les commentaires commencent
par un point-virgule et s'
etendent jusqu'
a la n de la ligne. Avant de d
etailler le format
de ce chier, regardons un exemple pratique: le chier named.boot de la machine kro,
gure 6.24.
;
; Fichier /etc/named.boot pour la machine kro.bibine.com
;
directory /var/named
;
; domaine fichier
;---------------------------------------------------
cache . named.ca
primary bibine.com named.hosts
primary 0.0.127.in-addr.arpa named.local
primary 72.191.in-addr.arpa named.rev
Fig. 6.2 - Le chier named.boot de la machine kro.
3: Si vous utilisez une version pr
ecompil
ee, il existe plusieurs binaires de named pour Linux,
con gur
es di 
eremment. Certains 
ecrivent leur chier named.pid dans in /etc; d'autres dans /tmp
ou /var/tmp, etc. Il est 
egalement possible que vous ayez install
e le programme ailleurs que dans
/usr/sbin.
4: Notez que les noms de domaines sont indiqu
es sans point nal. D'anciennes versions de named
semblent traiter un point nal dans named.boot comme une erreur, et ne tiennent pas compte de la
ligne incrimin
ee, sans le signaler. BIND-4.9.3 corrige ce probl
eme.
90 Chapitre 6. Con guration du serveur de noms et du resolver
Les commandes cache et primary que l'on peut voir dans cet exemple chargent des
informations dans named. Ces informations sont prises dans les chiers de r
ef
erence
indiqu
es dans le second argument; ils repr
esentent les RR (resource records) du DNS,
que nous allons voir ci-dessous.
Ici, nous avons con gur
e named en tant que serveur de noms primaire pour trois
domaines, comme l'indiquent les trois lignes primary de la n du chier. La premi
ere
de ces lignes, par exemple, indique 
a named qu'il doit agir comme serveur primaire
pour bibine.com, en prenant les informations de zone dans le chier named.hosts. Le
mot cl
e directory lui indique que tous les chiers de zone sont situ
es dans le r
epertoire
/var/named.
L'entr
ee cache est tr
es sp
eciale et doit ^
etre pr
esente sur pratiquement toutes les ma-
chines comportant un serveur de noms. Sa fonction est double: elle indique 
a named
de valider son cache et de charger les informations sur les domaines racine depuis
le chier cache sp
eci 
e (named.ca dans notre exemple). Nous reviendrons sur ces do-
maines racine un peu plus loin.
Voici une liste des options les plus importantes que vous pouvez utiliser dans na-
med.boot:
directory D
esigne un r
epertoire dans lequel r
esident les chiers de zone. Le nom
de ces chiers peut ensuite ^
etre indiqu
e relativement 
a ce r
epertoire.
Il est possible d'avoir plusieurs r
epertoires en indiquant chaque fois
le mot-cl
e directory. Selon le standard adopt
e sous Linux, ce doit ^
etre
en principe /var/named.
primary Prend deux arguments, un nom de domaine et un nom de fichier,
d
eclarant le serveur de nom local comme ayant autorit
e pour le do-
maine indiqu
e. En tant que serveur primaire, named charge les infor-
mations de zone depuis le chier de r
ef
erence sp
eci 
e.
G
en
eralement, il y aura au moins une entr
ee primary dans chaque
chier named.boot, pour la recherche inverse du r
eseau 127.0.0.0, qui
correspond au r
eseau loopback.
secondary Prend comme arguments un nom de domaine, une liste d'adres-
ses, et un nom de fichier. D
eclare le serveur de noms local comme

etant le serveur ma^
tre secondaire pour le domaine indiqu
e.
Un serveur secondaire contient aussi les donn
ees ayant autorit
e pour
le domaine, mais il ne les r
ecup
ere pas dans des chiers; il essaie de
les t
el
echarger depuis le serveur primaire. L'adresse IP d'au moins un
serveur primaire doit ^
etre fournie 
a named dans la liste d'adresses. Le
serveur de noms local contactera tour 
a tour chacune d'elles jusqu'
a
ce qu'il ait r
eussi 
a transf
erer la base de donn
ees de la zone, qui sera
alors stock
ee dans le chier de sauvegarde sp
eci 
e dans le troisi
eme
argument. Si aucun des serveursprimairesne r
epond,les informations
6.2. Utilisation de named 91
de zone seront charg
ees depuis cette sauvegarde.
Le programme named tentera alors de remettre 
a jour ces informa-
tions 
a intervalles r
eguliers. Tout cela sera d
ecrit plus loin, avec le
RR de type SOA.
cache Prend un domaine et un nom de fichier en arguments. Ce chier
contient les informations sur les domaines racine, qui est une liste
d'enregistrements pointant vers les serveurs de noms racine. Seuls les
enregistrements NS et A seront reconnus. Le domaine doit ^
etre soit
le nom du domaine racine, soit un simple point (.).
Cette information est absolument cruciale pour named: si la ligne
cache n'appara^
t pas dans le chier d'amor
cage, named ne cr
eera
pas du tout de cache. Les performances seront alors s
erieusement
d
egrad
eeset la charge du r
eseau extr^
emement augment
ee si le serveur
suivant n'est pas sur le r
eseau local. De plus, named sera incapable de
joindre les serveurs racine, et par cons
equent il ne r
esoudra aucune
adresse, except
ees celles pour lesquelles il a autorit
e.
forwarders Prend une liste d'adresses en argument. Les adresses IP gurant
dans cette liste d
esignent des serveurs de noms que named peut in-
terroger s'il 
echoue dans la r
esolution d'une requ^
ete en utilisant son
cache local. Elles sont essay
ees dans l'ordre indiqu
e, jusqu'
a ce que
l'un de ces serveurs r
eponde 
a la requ^
ete.
slave Cette instruction fait du serveur un serveur de noms esclave, c'est-

a-dire qu'il ne fera jamais de recherche r
ecursive par lui-m^
eme, mais
les transmettra aux serveurs indiqu
es par forwarders.
Il y a encore deux options que nous ne d
ecrirons pas ici, sortlist et domain. De plus,
il existe deux directives pouvant ^
etre utilis
ees 
a l'int
erieur de ces chiers de la base
de donn
ees: $INCLUDE et $ORIGIN. Elles sont rarement utilis
ees, aussi nous ne les
d
ecrirons pas non plus.
6.2.2 Les chiers de la base de donn
ees
Les chiers de r
ef
erence lus par named, comme named.hosts, poss
edent toujours un
domaine associ
e, qui est appel
e l'origine. Il s'agit du nom de domaine sp
eci 
e par les
commandes cache et primary. 
A l'int
erieur d'un chier de r
ef
erence, vous ^
etes autoris
e

a indiquer noms de machines et domaines, par rapport 
a cette origine. Un nom donn
e
dans un chier de con guration sera consid
er
e comme absolu s'il se termine par un
point, sinon il sera compris comme relatif 
a l'origine. Cette origine peut ^
etre elle-m^
eme
indiqu
ee par le signe (
( @ )
) (A commercial).
Les donn
ees contenues dans un chier de r
ef
erence sont divis
ees en enregistrements
appel
es resource records, ou RR en abr
eg
e. Ils constituent la plus petite unit
e d'infor-
92 Chapitre 6. Con guration du serveur de noms et du resolver
mation disponible depuis le DNS. Chaque RR a un type. Le type A, par exemple, fait
correspondre un nom d'h^
ote 
a une adresse IP, et un enregistrement de type CNAME
associe un alias 
a un nom ociel de machine. Par exemple, jetons un il 
a la gure 6.4,
qui repr
esente le chier named.hosts de l'entreprise (
( La bi
ere virtuelle )
).
Les resource records des di 
erents chiers de r
ef
erence partagent un format commun:
[domaine] [ttl] [classe] type donn
ees
Les champs sont s
epar
es par des espaces ou des tabulations. Une entr
ee peut s'
etendre
sur plusieurs lignes s'il y a une parenth
ese ouvrante avant le premier caract
ere de saut
de ligne, et si le dernier champ est suivi d'une parenth
ese fermante. Tout ce qui se
trouve entre un signe point-virgule et le saut de ligne suivant est consid
er
e comme un
commentaire et donc ignor
e.
domaine Il s'agit du nom de domaine auquel s'appliquent les entr
ees. Si aucun
domaine n'est donn
e, le RR est consid
er
e comme s'appliquant au
domaine du pr
ec
edent RR.
ttl A n de forcer les resolvers 
a supprimer l'information au bout d'un
certain temps, chaque RR se voit attribuer une dur
ee de vie maxi-
male, appel
e time to live, ou ttl. Le champ ttl sp
eci e le temps en
secondes pendant lequel l'information restera valide apr
es qu'elle a

et
e r
ecup
er
eesur le serveur. Il s'agit d'un nombre d
ecimal comportant
8 chi res au plus.
Si aucune valeur ttl n'est donn
ee, c'est la valeur du champ minimum
du pr
ec
edent enregistrement SOA qui sera prise par d
efaut.
classe Il s'agit d'une classe d'adresses, comme IN pour les adresses IP, HS
pour des objets Hesiod. Pour le r
eseau TCP/IP, ce sera IN.
S'il n'y a aucun champ classe, c'est la classe du RR pr
ec
edent qui
sera prise.
type D
ecrit le type du RR. Les types d'enregistrement les plus courants
sont A, SOA, PTR, et NS. Nous verrons bient^
ot 
a quoi ils correspon-
dent.
donn
ees Contient les donn
ees associ
ees avec le RR. Le format de ce champ
d
epend du type de l'enregistrement. Il sera d
ecrit s
epar
ement, avec
chaque type de RR.
Voici ci-dessous une liste non exhaustive des RR 
a utiliser dans les chiers de r
ef
erence.
Il y en a d'autres, que nous ne d
ecrirons pas: ils sont exp
erimentaux et tr
es peu
employ
es.
6.2. Utilisation de named 93
SOA SOA signi e (
( Start of Authority)
) et signale que l'enregistrement qui
suit contient les informationsayant autorit
epour ce domaine. Chaque
chier de r
ef
erence inclus par une instruction primary doit contenir
un enregistrement SOA pour cette zone. Il contient les champs sui-
vants:
origine Il s'agit du nom canonique du serveur de noms pri-
maire pour ce domaine. Il est en g
en
eral indiqu
e de
mani
ere absolue.
contact L'adresse 
electronique de la personne responsable
de la maintenance du domaine, mais avec le signe
`@' remplac
e par un point. Par exemple, si la per-
sonne responsable 
a (
( La bi
ere virtuelle )
) est l'uti-
lisateur marcel, alors ce champ contiendra mar-
cel.bibine.com.
num
ero de s
erie
Le num
ero de version du chier de zone, exprim
e
sous la forme d'un nombre d
ecimal entier. Chaque
fois que des donn
ees sont modi 
ees, ce nombre doit
^
etre incr
ement
e.
Ce num
ero de s
erie est utilis
e par les serveurs de
noms secondaires pour savoir quand les informations
de zone ont chang
e. Pour rester 
a jour, les serveurs
secondairesdemandent l'enregistrementSOA du pri-
maire 
a intervalles r
eguliers et comparent le num
ero
de s
erie 
a celui du SOA se trouvant dans leur cache.
S'il a chang
e, les serveurs secondaires t
el
echargent
alors toute la base de donn
ees de la zone depuis le
serveur primaire.
rafra^
chissement
Sp
eci e l'intervalle, en secondes, entre les v
eri ca-
tions p
eriodiques des enregistrements SOA du ser-
veur primaire pour les 
eventuelles mises 
a jour. L
a
encore, il s'agit d'un nombre d
ecimal entier exprim
e
sur 8 chi res au plus.
G
en
eralement, la topologie du r
eseau ne change pas
tr
es souvent, aussi ce nombre doit indiquer approxi-
mativement une journ
ee pour les grands r
eseaux,
voire davantage pour les plus petits.
tentatives Ce nombre d
etermine les intervalles auxquels un ser-
veur secondaire doit tenter de recontacter le serveur
94 Chapitre 6. Con guration du serveur de noms et du resolver
primaire si une requ^
ete ou un rafra^
chissement de
zone 
echoue. Il ne doit pas ^
etre trop faible, sinon
une panne momentan
ee du serveur ou un probl
eme
r
eseau peut amener le serveur secondaire 
a g^
acher
inutilement des ressources r
eseau. On choisit en g
e-
n
eral une heure, ou une demi-heure.
expiration Indique le temps, en secondes, au bout duquel un
serveur secondaire doit 
eliminer toutes les informa-
tions de zone s'il n'a pas pu contacter le serveur pri-
maire. Normalement, vous devez mettre au moins
une semaine (604800 secondes), mais l'augmenter
jusqu'
a un mois reste encore raisonnable.
minimum Il s'agit de la valeur ttl par d
efaut pour les RR qui
n'en contiennent pas explicitement une. Cette valeur
sp
eci e le temps maximal pendant lequel les autres
serveurs de noms doivent conserver le RR dans leur
cache. Il ne s'applique qu'aux requ^
etes normales, et
n'a aucun rapport avec le temps au bout duquel un
serveur secondaire doit essayer de mettre 
a jour les
informations de zone.
Si la topologie de votre r
eseau ne change pas sou-
vent, une semaine, voir plus, constitue un bon choix.
Si certains RR sont modi 
es plus fr
equemment, vous
pourrez toujours leur assigner des valeurs ttl indivi-
duelles. Si, d'un autre c^
ot
e, votre r
eseau est souvent
modi 
e, vous pourrez peut-^
etre ramener cette valeur

a environ une journ
ee (86400 secondes).
A Cet enregistrement associe une adresse IP 
a un nom de machine. Le
champ de donn
ees contient l'adresse en notation sur 4 octets.
Pour chaque h^
ote, il ne doit exister qu'un enregistrement de type A.
Le nom utilis
e est consid
er
ecomme le nom ociel, ou nom canonique,
de la machine. Tous les autres noms sont des alias et doivent ^
etre
associ
es au nom canonique par un enregistrement de type CNAME.
NS Les enregistrements NS servent 
a sp
eci er un serveur primaire de
zone et tous ses serveurs secondaires. Ils pointent vers un serveur de
noms ma^
tre de la zone concern
ee, le champ de donn
ees contenant le
nom de ce serveur de noms.
Vous rencontrerez des enregistrements NS dans deux situations: lors-
que vous d
el
eguez l'autorit
e 
a une zone subordonn
ee, et dans la base
de donn
ees de la zone subordonn
ee elle-m^
eme. Les listes de serveurs
sp
eci 
es dans les zones parent et d
el
egu
ees doivent correspondre.
6.2. Utilisation de named 95
A n de r
esoudre le nom vers lequel pointe un enregistrement NS, un
enregistrement A suppl
ementaire peut ^
etre n
ecessaire, le fameux glue
record qui donne l'adresse IP du serveur de noms. Les glue records
sont n
ecessaires dans le chier de zone lorsque le serveur point
e est
hors du domaine d
el
egu
e.
CNAME Cet enregistrement associe un alias au nom canonique d'un h^
ote. Le
nom canonique est celui indiqu
e par un enregistrement A; les alias
y sont simplement li
es par un CNAME, mais ne poss
edent pas leur
propre enregistrement.
PTR Ce type d'enregistrement est utilis
e pour associer les noms dans le
domaine in-addr.arpa avec les noms d'h^
otes. Il sert 
a la recherche
des noms en fonction de l'adresse IP (recherche inverse). Le nom
indiqu
e doit ^
etre le nom canonique.
MX Cet RR annonce un 
echangeur de courrier (mail exchanger) pour un
domaine. Le sujet est d
ecrit dans la section (
( Mail Routing on the
Internet )
), chapitre 13. La syntaxe d'un enregistrement MX est:
[domaine] [ttl] [classe] MX pr
ef
erence h^
ote
L'argument h^
ote nomme l'
echangeur de courrier pour domaine.
Chaque 
echangeur est associ
e 
a une pr
ef
erence, nombre entier. Un
programme agent de transport de courrier d
esirant d
elivrer un mes-
sage 
a domaine essaiera tous les h^
otes qui ont un enregistrement MX
pour ce domaine, jusqu'
a ce qu'il aboutisse. Celui dont la valeur de
pr
ef
erence est la plus faible sera essay
e en premier, et ainsi de suite.
HINFO Donne des informations sur l'
equipement mat
eriel et logiciel de la
machine. Sa syntaxe est:
[domaine] [ttl] [classe] HINFO mat
eriel logiciel
Le champ mat
eriel indique le type d'ordinateur. Plusieurs conven-
tions sont utilis
ees; une liste de noms valides est donn
ee dans (
( As-
signed Numbers )
), RFC 1340. S'il contient des espaces, il doit ^
etre
d
elimit
e par des double quotes ( ). Le champ logiciel indique le
syst
eme d'exploitation utilis
e. L
a encore, il faut choisir l'un des noms
reconnus, indiqu
es dans le document RFC 1340.
6.2.3 R
edaction des chiers de r
ef
erence
Les gures 6.3, 6.4, 6.5 et 6.6 donnent des exemples des chiers d'un serveur de noms
de l'entreprise (
( La bi
ere virtuelle )
), situ
e sur la machine kro. En raison de la nature
du r
eseau (un simple r
eseau local), l'exemple est assez simple. Si vos besoins sont plus
96 Chapitre 6. Con guration du serveur de noms et du resolver
complexes et que vous n'arrivez pas 
a faire fonctionner named, procurez-vous le livre
DNS and BIND de Cricket Liu et Paul Albitz ([AlbitzLiu92]).
Le chier cache named.ca pr
esent
e dans la gure 6.3 montre un exemple d'enregis-
trement pour un serveur de noms racine. Un chier cache typique d
ecrit en g
en
eral
environ une douzaine de serveurs de noms. Vous pouvez obtenir la liste courante des
serveurs de noms pour le domaine racine en employant l'utilitaire nslookup d
ecrit dans
la section suivante5.
;
; /var/named/named.ca Fichier cache pour les brasseurs.
; Nous ne sommes pas sur l'Internet, par cons
equent
; nous n'avons besoin d'aucun serveur racine.
; Pour activer ces enregistrements, supprimez les
; points-virgules qui les mettent en commentaire.
;
; . 99999999 IN NS NS.NIC.DDN.MIL
; NS.NIC.DDN.MIL 99999999 IN A 26.3.0.103
; . 99999999 IN NS NS.NASA.GOV
; NS.NASA.GOV 99999999 IN A 128.102.16.10
Fig. 6.3 - Le chier named.ca.
6.2.4 V
eri cation de la con guration du serveur de noms
Pour v
eri erle fonctionnement d'un serveur de noms, l'outil adapt
e s'appelle nslookup.
Il peut ^
etre utilis
e aussi bien en ligne de commandes que de mani
ere interactive. Dans
le premier cas, on le lance simplement par:
nslookup nom-de-machine
Et nslookup interroge alors le serveur de noms d
eclar
e dans le chier resolv.conf,

a propos de nom-de-machine (Si ce chier contient plusieurs serveurs, nslookup en
choisit un au hasard).
Le mode interactif est bien plus int
eressant. En plus de pouvoir obtenir des ren-
seignements sur des h^
otes individuels, vous pouvez demander n'importe quel type
d'enregistrement DNS et t
el
echarger la totalit
e des informations de zone pour un
domaine.
Invoqu
e sans arguments, nslookup ache le serveur de noms qu'il utilise et passe en
mode interactif. 
A l'invite , vous pouvez alors entrer n'importe quel domaine sur
5: Notez que vous ne pouvez pas interroger votre serveur de noms 
a propos des serveurs racine si
aucun chier d'informations les concernant n'est install
e. Pour contourner ce probl
eme, vous pouvez
soit indiquer un autre serveur de noms 
a nslookup, soit utiliser l'exemple donn
e dans la gure 6.3
comme point de d
epart, puis obtenir ainsi la liste compl
ete des serveurs valides.
6.2. Utilisation de named 97
;
; /var/named/named.hosts H^
otes locaux chez les brasseurs.
; L'origine est bibine.com
;
@ IN SOA kro.bibine.com. marcel.bibine.com. (
16 ; num
ero de s
erie
86400 ; rafra^
chissement une fois par jour
3600 ; tentatives: une heure
3600000 ; expiration: 42 jours
604800 ; minimum: 1 semaine
)
IN NS kro.bibine.com.
;
; le courrier local est distribu
e sur kro
IN MX 10 kro
;
; adresse loopback
localhost. IN A 127.0.0.1
; Ethernet des brasseurs
kro IN A 172.16.1.1
kro-if1 IN CNAME kro
; kro est aussi un serveur de News Usenet
news IN CNAME kro
gueuze IN A 172.16.1.2
trappiste IN A 172.16.1.3
; Ethernet des viticulteurs
kro-if2 IN A 172.16.2.1
gamay IN A 172.16.2.2
cahors IN A 172.16.2.3
brouilly IN A 172.16.2.4
Fig. 6.4 - Le chier named.hosts.
;
; /var/named/named.local Recherche inverse de 127.0.0
; L'origine est 0.0.127.in-addr.arpa.
;
@ IN SOA kro.bibine.com. alfred.bibine.com. (
1 ; num
ero de s
erie
360000 ; rafra^
chissement: 100 heures
3600 ; tentatives: une heure
3600000 ; expiration: 42 jours
360000 ; minimum: 100 heures
)
IN NS kro.bibine.com.
1 IN PTR localhost.
Fig. 6.5 - Le chier named.local.
98 Chapitre 6. Con guration du serveur de noms et du resolver
;
; /var/named/named.rev Recherche inverse de notre adresse IP
; L'origine est 72.191.in-addr.arpa.
;
@ IN SOA kro.bibine.com. alfred.bibine.com. (
16 ; num
ero de s
erie
86400 ; rafra^
chissement une fois par jour
3600 ; tentatives: une heure
3600000 ; expiration: 42 jours
604800 ; minimum: 1 semaine
)
IN NS kro.bibine.com.
; brewery
1.1 IN PTR kro.bibine.com.
2.1 IN PTR gueuze.bibine.com.
3.1 IN PTR trappiste.bibine.com.
; winery
1.2 IN PTR kror-if1.bibine.com.
2.2 IN PTR gamay.bibine.com.
3.2 IN PTR cahors.bibine.com.
4.2 IN PTR brouilly.bibine.com.
Fig. 6.6 - Le chier named.rev.
lequel vous d
esirez des renseignements. Par d
efaut, il demande les enregistrements de
classe A, ceux contenant l'adresse IP relative au nom du domaine.
Vous pouvez changer ce comportement par la commande (
( set type=type )
) o
u type
est l'un des RR d
ecrits plus haut, ou bien (
( ANY )
), c'est-
a-dire tous.
Voici un exemple de session nslookup:
$ nslookup
Default Name Server: rs10.hrz.th-darmstadt.de
Address: 130.83.56.60
 sunsite.unc.edu
Name Server: rs10.hrz.th-darmstadt.de
Address: 130.83.56.60
Non-authoritative answer:
Name: sunsite.unc.edu
Address: 152.2.22.81
Si vous recherchez un nom qui n'a pas d'adresse IP associ
ee, mais d'autres enregistre-
ment dans la base de donn
ees DNS, nslookup retournera le message d'erreur (
( No type
A records found )
). Toutefois, vous pouvez lui faire qu
erir d'autres enregistrements
que le type A par la commande set type. Par exemple, pour obtenir l'enregistrement
SOA de unc.edu, vous feriez:
6.2. Utilisation de named 99
 unc.edu
*** No address (A) records available for unc.edu
Name Server: rs10.hrz.th-darmstadt.de
Address: 130.83.56.60
 set type=SOA
 unc.edu
Name Server: rs10.hrz.th-darmstadt.de
Address: 130.83.56.60
Non-authoritative answer:
unc.edu
origin = ns.unc.edu
mail addr = shava.ns.unc.edu
serial = 930408
refresh = 28800 (8 hours)
retry = 3600 (1 hour)
expire = 1209600 (14 days)
minimum ttl = 86400 (1 day)
Authoritative answers can be found from:
UNC.EDU nameserver = SAMBA.ACS.UNC.EDU
SAMBA.ACS.UNC.EDU internet address = 128.109.157.30
Vous pouvez de la m^
eme fa
con obtenir les MX, etc.
 set type=MX
 unc.edu
Non-authoritative answer:
unc.edu preference = 10, mail exchanger = lambada.oit.unc.edu
lambada.oit.unc.edu internet address = 152.2.22.80
Authoritative answers can be found from:
UNC.EDU nameserver = SAMBA.ACS.UNC.EDU
SAMBA.ACS.UNC.EDU internet address = 128.109.157.30
Demander le type ANY retournera tous les RR associ
es 
a un nom donn
e.
En dehors de la mise au point et du d
eboguage, nslookup permet d'obtenir la liste
des serveurs de noms racine courants. Vous pouvez l'obtenir en demandant tous les
enregistrements NS associ
es au domaine racine:
 set typ=NS
 .
Name Server: fb0430.mathematik.th-darmstadt.de
Address: 130.83.2.30
Non-authoritative answer:
(root) nameserver = NS.INTERNIC.NET
(root) nameserver = AOS.ARL.ARMY.MIL
(root) nameserver = C.NYSER.NET
(root) nameserver = TERP.UMD.EDU
(root) nameserver = NS.NASA.GOV
(root) nameserver = NIC.NORDU.NET
100 Chapitre 6. Con guration du serveur de noms et du resolver
(root) nameserver = NS.NIC.DDN.MIL
Authoritative answers can be found from:
(root) nameserver = NS.INTERNIC.NET
(root) nameserver = AOS.ARL.ARMY.MIL
(root) nameserver = C.NYSER.NET
(root) nameserver = TERP.UMD.EDU
(root) nameserver = NS.NASA.GOV
(root) nameserver = NIC.NORDU.NET
(root) nameserver = NS.NIC.DDN.MIL
NS.INTERNIC.NET internet address = 198.41.0.4
AOS.ARL.ARMY.MIL internet address = 128.63.4.82
AOS.ARL.ARMY.MIL internet address = 192.5.25.82
AOS.ARL.ARMY.MIL internet address = 26.3.0.29
C.NYSER.NET internet address = 192.33.4.12
TERP.UMD.EDU internet address = 128.8.10.90
NS.NASA.GOV internet address = 128.102.16.10
NS.NASA.GOV internet address = 192.52.195.10
NS.NASA.GOV internet address = 45.13.10.121
NIC.NORDU.NET internet address = 192.36.148.17
NS.NIC.DDN.MIL internet address = 192.112.36.4
Pour avoir une liste compl
ete des commandes disponibles, dans nslookup, tapez la
commande help.
6.2.5 Autres outils pratiques
Il existe quelques utilitaires pouvant vous aider dans votre t^
ache d'administration d'un
serveur de noms; nous allons en d
ecrire bri
evement deux. Consultez la documentation
fournie avec ces programmes pour en avoir le mode d'emploi.
Le programme hostcvt est un outil qui vous aidera pour la con guration initiale en
convertissant votre chier /etc/hosts en chiers de r
ef
erence pour named. Il g
en
ere les
deux chiers contenant les enregistrements A et PTR (recherche inverse), et prend
soin des 
eventuels alias. Bien s^
ur, il ne fera pas tout le travail pour vous; vous devrez
tout de m^
eme 
editer le r
esultat, ne serait-ce que pour ajuster les di 
erentes valeurs
de temporisation dans le SOA, ou rajouter des MX, par exemple. Mais il peut malgr
e
tout vous faire 
economiser quelques cachets d'aspirine. Ce programme fait partie de
la distribution source de BIND, mais on peut aussi le trouver seul sur quelques sites
di usant Linux.
Apr
es avoir con gur
e votre serveur de noms, vous pouvez avoir envie de tester le
r
esultat. L'outil id
eal (et le seul, 
a notre connaissance), s'appelle dnswalk. Il s'agit d'un
programme en langage perl qui traverse votre base de donn
ees DNS, 
a la recherche des
erreurs courantes et en v
eri ant que les informations sont coh
erentes. Il a 
et
e di us
e
sur le forum Usenet comp.sources.misc r
ecemment, et devrait ^
etre disponible sur
tous les sites qui archivent ce groupe (ftp.uu.net si vous ne trouvez vraiment pas de
site plus proche de chez vous).
101
Chapitre 7
IP sur ligne s
erie | SLIP
Les protocoles SLIP et PPP permettent l'acc
es 
a l'Internet aux moins fortun
es. En
dehors d'un modem et d'une carte s
erie 
equip
ee d'un bon circuit avec tampon FIFO,
aucun 
equipement suppl
ementaire n'est n
ecessaire. Leur utilisation n'est pas plus
compliqu
ee que celle d'une bo^
te aux lettres, et le nombre croissant de fournisseurs de
connectivit
e IP par t
el
ephone rend ce type d'acc
es abordable pour tout le monde1.
Linux supporte aussi bien SLIP que PPP. Ce dernier protocole, dont le pilote est
l'uvre de Michael Callahan et Alfred Longyear, sera d
ecrit dans le chapitre suivant.
7.1 G
en
eralit
es
Pour utiliser SLIP ou PPP, vous devez con gurer un minimum de r
eseau comme nous
l'avons d
ecrit auparavant dans cet ouvrage. Vous devez au moins poss
eder l'interface
loopback et o rir une m
ethode quelconque de r
esolution de noms. Si vous comptez vous
connecter 
a l'Internet, vous devrez bien entendu employer le DNS. L'option la plus
simple et n
eanmoins ecace est de mettre l'adresse d'un serveur de noms accessible
dans votre chier resolv.conf, puis d'ajouter l'option bind dans /etc/host.conf si elle
n'y est pas d
ej
a. Le serveur sp
eci 
e sera alors interrog
e d
es que le lien SLIP sera actif.
Plus ce serveur de noms sera proche du lieu o
u vous ^
etes connect
e, plus rapide sera
la r
eponse.
Cette solution n'est toutefois pas optimale, car toutes les r
esolutions de noms pas-
seront par votre liaison SLIP/PPP. Si le d
ebit demand
e vous inqui
ete, vous pouvez
aussi installer un serveur de noms cache seulement. Il ne g
ere pas vraiment un do-
maine, mais fonctionne comme un relais pour toutes les requ^
etes DNS g
en
er
ees par
votre machine. Son avantage sera le cache, gr^
ace auquel les requ^
etes n'auront 
a passer
1: C'est encore loin d'^
etre vrai en France.
102 Chapitre 7. IP sur ligne s
erie | SLIP
qu'une seule fois par la liaison s
erie. Un chier named.boot de serveur cache seulement
ressemble 
a ceci:
; Fichier named.boot pour serveur de noms cache seulement
directory /var/named
primary 0.0.127.in-addr.arpa db.127.0.0 ; r
eseau loopback
cache . db.cache ; serveurs racine
En plus de ce chier, il vous faudra initialiser db.cache par une liste valide de serveurs
de noms racine; consultez la n du chapitre 6 pour cela.
7.2 Mode d'emploi de SLIP
Les serveurs proposant une connectivit
e IP o rent souvent ce service par l'interm
e-
diaire de comptes utilisateurs sp
eciaux: au lieu d'un banal shell, c'est un programme
ou un script qui est ex
ecut
e lorsque vous entrez dans le syst
eme; il passe la liaison s
e-
rie en mode SLIP et con gure l'interface r
eseau appropri
ee. Il vous faut donc e ectuer
les m^
emes op
erations de votre c^
ot
e.
Dans certains syst
emes d'exploitation, le pilote SLIP est un programme fonctionnant
au niveau utilisateur; sous Linux il est partie int
egrante du noyau, ce qui le rend
beaucoup plus rapide. Cela n
ecessite toutefois que la ligne s
erie soit convertie en mode
SLIP explicitement, ce qui est r
ealis
e par une discipline de ligne sp
eciale: SLIPDISC.
Le mode d'op
eration normal du tty est DISC0, qui n'
echange des donn
ees qu'avec les
processus utilisateurs, gr^
ace aux fonctions standards read(2) et write(2) et le pilote
SLIP est incapable d'
ecrire ou de lire sur ce tty. En mode SLIPDISC, les r^
oles sont
invers
es: tout processus utilisateur est interdit de lecture ou d'
ecriture, et les donn
ees
du port s
erie sont directement pass
ees au pilote SLIP.
Ce pilote SLIP conna^
t plusieurs variantes du protocole. En dehors du SLIP ordinaire,
il comprend aussi CSLIP, qui e ectue ce que l'on appelle la compression d'en-t^
etes
Van Jacobson sur les paquets IP sortants2, qui am
eliore dans de grandes proportions
la vitesse en utilisation interactive. De plus, il existe des versions 6 bits de chacun de
ces protocoles.
La fa
con la plus simple de passer un port s
erie en mode SLIP est d'utiliser le pro-
gramme slattach. Consid
erons que votre modem est branch
e sur /dev/cua3 et que
vous vous ^
etes connect
e avec succ
es sur le serveur SLIP. Vous ex
ecuterez alors:
# slattach /dev/cua3 
La discipline de ligne de cua3 basculera en SLIPDISC et le port sera attach
e 
a l'une
des interfaces r
eseau SLIP. S'il s'agit de votre premi
ere liaison, la ligne sera atta-
2: La compression d'en-t^
etes Van Jacobson est d
ecrite dans le RFC 1144.
7.2. Mode d'emploi de SLIP 103
ch
ee 
a l'interface sl0; la seconde serait sur sl1, et ainsi de suite. Les noyaux actuels
supportent 4, 8 ou 16 liaisons SLIP simultan
ees.
L'encapsulation choisie par d
efaut par slattach est CSLIP. Vous pouvez choisir un
autre mode gr^
ace 
a l'option -p ; pour le mode SLIP normal (sans compression) ce
serait:
# slattach -p slip /dev/cua3 
D'autres modes sont disponibles: cslip, slip6, cslip6 (pour la version 6 bits),
et adaptive. Ce dernier mode laisse le noyau d
etecter automatiquement quel type
d'encapsulation SLIP est employ
e par le site distant.
Vous devez utiliser la m^
eme encapsulation 
a chaque bout. Par exemple, si votre cor-
respondant emploie CSLIP, vous devez le faire aussi, sinon la liaison sera incorrecte.
Les sympt^
omes sont en g
en
eral qu'un ping ne revient pas, et l'autre c^
ot
e de la liaison
peut acher le message d'erreur (
( Can't build ICMP header )
) sur la console. Il est
possible d'
eviter cela en utilisant le mode adaptatif (option adaptive).
Pour tous renseignements, consultez la page de manuel de slattach(8).
Apr
es avoir pass
e la ligne en SLIP, vous devez con gurer l'interface r
eseau. L
a encore,
il faut utiliser les commandes standards ifcon g et route. Supposons que nous ayons,

a partir de la machine kro, appel
e un serveur nomm
e gogoslip. Nous devons taper
les commandes suivantes:
# ifconfig sl0 kro-slip pointopoint gogoslip
# route add gogoslip
# route add default gw gogoslip
La premi
ere commande con gure l'interface en tant que liaison point-
a-point avec
gogoslip, les deux autres ajoutent une route vers cette machine et positionne celle
par d
efaut 
a gogoslip tout en l'utilisant comme passerelle.
Il faut noter deux choses 
a propos de la commande ifcon g montr
ee dans cet exemple.
La premi
ere, c'est l'option pointopoint qui sp
eci e l'adresse de la machine distante, la
seconde 
etant l'utilisation de kro-slip comme adresse de l'interface SLIP locale.
Nous avons dit auparavant que l'on pouvait utiliser la m^
eme adresse qui est assign
ee 
a
l'interface Ethernet de kro pour SLIP. Dans le cas pr
esent, kro-slippourrait tr
es bien
n'^
etre qu'un alias de 172.16.1.1.Toutefois, il peut arriverque l'on soit oblig
ed'utiliser
une adresse compl
etement di 
erente pour la liaison SLIP; c'est le cas par exemple
lorsque le r
eseau utilise une adresse IP de r
eseau non enregistr
ee ociellement, comme
cela se passe 
a (
( La bi
ere virtuelle )
). Nous reviendrons sur ce sujet en d
etail dans la
section suivante.
Jusqu'
a la n de ce chapitre, nous utiliserons toujours kro-slippour d
esigner l'adresse
de l'interface SLIP locale.
104 Chapitre 7. IP sur ligne s
erie | SLIP

A la n de la session, vous devez d'abord supprimer toutes les routes vers gogoslip
par l'option del de la commande route, puis mettre l'interface hors service, et envoyer
le signal HUP 
a slattach (hangup, d
econnexion de ligne). Ensuite, vous couperez la
liaison modem.
# route del default
# route del gogoslip
# ifconfig sl0 down
# kill -HUP 516
7.3 Le probl
eme des r
eseaux IP priv
es
Vous vous souvenez que nous avons dit dans le chapitre 5 que (
( La bi
ere virtuelle )
)
utilise une adresse r
eseau qui est r
eserv
ee uniquement aux usages internes: aucun pa-
quet de ce r
eseau ne sera rout
e sur l'Internet. Cela signi e que les h^
otes de l'entreprise
ne peuvent pas parler 
a des machines connect
ees sur l'Internet, car les trames seraient
discr
etement 
elimin
ees par le premier routeur venu.
Pour contourner ce probl
eme, nous allons con gurer kro comme une sorte de rampe
de lancement permettant d'acc
eder aux services Internet. Pour le monde ext
erieur,
elle se pr
esentera comme un h^
ote tout 
a fait normal, avec une adresse IP d^
ument
enregistr
ee (probablement assign
ee par le fournisseur de services). Pour avoir acc
es 
a
l'Internet, par exemple 
a un serveur FTP, les utilisateurs doivent se connecter sur kro
et invoquer le client FTP sur cette machine, de sorte que la connexion paraisse venir
d'un h^
ote valide. Pour les autres applications, il peut y avoir des solutions
evitant cette
connexion interm
ediaire. Les utilisateurs de WWW par exemple, peuvent employer
ce que l'on appelle un serveur proxy sur kro, qui fera le relais des requ^
etes vers les
serveurs demand
es.
C'est une solution assez lourde, bien entendu. Mais, en plus d'avoir
elimin
e la paperas-
serie n
ecessaire 
a l'enregistrement d'un r
eseau IP, elle apporte le b
en
e ce de r
ealiser
une con guration rewall tr
es ecace. Les rewalls sont des h^
otes d
edi
es destin
es 
a
o rir des acc
es limit
es 
a l'Internet aux utilisateurs d'un r
eseau local, sans exposer ce
r
eseau aux attaques ext
erieures.
Consid
erons que nos brasseurs se sont vu attribuer pour la session SLIP, l'adresse IP
192.168.5.74. Tout ce que vous aurez 
a faire pour r
ealiser la con guration d
ecrite ci-
dessus sera d'indiquer cette adresse dans le chier /etc/hosts, en l'appelant kro-slip.
La proc
edure d'
etablissement du lien SLIP reste inchang
ee.
7.4 Utilisation de dip
Jusqu'ici, tout 
etait plut^
ot simple. N
eanmoins, vous souhaiterez sans doute automa-
tiser toutes les 
etapes de mani
ere 
a n'avoir qu'une seule commande 
a taper pour que
7.4. Utilisation de dip 105
tout se fasse tout seul. C'est le r^
ole du programme dip.3. La version actuelle, 
a l'heure
o
u nous
ecrivonsces lignes, est 3.3.7. Il a
et
e
enorm
ementmodi 
e par un grand nombre
de personnes, aussi il n'est plus possible de parler d'un unique programme dip. Ces
di 
erentes variantes de d
eveloppement aboutiront heureusement un jour 
a une seule
version d
e nitive.
Le programme dip o re un petit langage script permettant de dialoguer avec le modem
et le serveur, passer en mode SLIP et con gurer les interfaces. Il est tr
es primitif et
limit
e, mais susant dans la plupart des cas. Ce langage changera peut-^
etre dans une
future version, plus 
elabor
ee.
Pour pouvoir con gurer l'interface SLIP, dip a besoin des privil
eges root. Il serait
tentant de l'installer setuid 
a root, pour que tout utilisateur ordinaire puisse appeler
un service SLIP sans qu'il soit n
ecessaire de lui donner l'acc
es superutilisateur. C'est
pourtant une m
ethode extr^
emement dangereuse, car con gurer de mauvaises inter-
faces ou routes par d
efaut avec dip peut paralyser compl
etement votre r
eseau. Pis, cela
autoriserait n'importe quel utilisateur 
a t
el
ephoner n'importe o
u, entre autres choses.
Aussi, si vous avez vraiment besoin d'autoriser un utilisateur 
a initialiser lui-m^
eme
des liaisons SLIP, la meilleure solution est d'
ecrire un petit programme frontal pour
chaque serveur 
a connecter, qui lui seul r
ealisera l'appel 
a dip en tant que root avec
les scripts adapt
es 
a chaque cas, en toute s
ecurit
e.4
7.4.1 Exemple de script
Supposons que l'h^
ote avec lequel nous voulons r
ealiser notre connexion SLIP soit
gogoslip, et que nous ayons d
ej
a 
ecrit un script appel
e gogoslip.dip. Nous appellerons
dip de cette fa
con:
# dip gogo.dip
DIP: Dialup IP Protocol Driver version 3.3.7 (12/13/93)
Written by Fred N. van Kempen, MicroWalt Corporation.
connected to gogoslip.mou.com with addr 192.168.5.74
#
Le script correspondant est pr
esent
e dans la gure 7.1.
Apr
es s'^
etre connect
e 
a gogoslip et avoir mis SLIP en service, dip va se d
etacher
du terminal et se mettre en arri
ere-plan. Vous pouvez alors commencer 
a utiliser
les services r
eseaux habituels par la liaison SLIP. Pour terminer la session, invoquez
simplement dipavec l'option -k. Cela enverrasimplement un signal HUP au processus
indiqu
e dans /etc/dip.pid, que dip a cr
e
e au d
emarrage.
# dip -k
3: dip signi e Dialup IP, son auteur est Fred van Kempen.
4: Le programme diplogin peut (et doit) ^
etre setuid root, 
egalement. Voyez la n de ce chapitre.
106 Chapitre 7. IP sur ligne s
erie | SLIP
# Exemple de script dip pour appeler gogoslip
# Set local and remote name and address
# Initialise les adresses locale et distante
get $local kro-slip
get $remote gogoslip
port cua3 # choix du port s
erie
speed 38400 # choix de la vitesse
modem HAYES # type de modem
reset # remise 
a z
ero du modem et du tty
flush # nettoie le tampon de r
eception modem
# Pr
eparation de l'appel
send ATQ0V1E1X1r
wait OK 2
if $errlvl != 0 goto error
dial 41988
if $errlvl != 0 goto error
wait CONNECT 60
if $errlvl != 0 goto error
# Voil
a, nous sommes connect
es
sleep 3
send rnrn
wait ogin: 10
if $errlvl != 0 goto error
send Skron
wait ssword: 5
if $errlvl != 0 goto error
send salutn
wait running 30
if $errlvl != 0 goto error
# Nous sommes sur le syst
eme distant, qui lance SLIP.
print Connect
e 
a $remote avec l'adresse $rmtip
default # Positionne ce lien comme route par d
efaut
mode SLIP # Et nous passons aussi en mode SLIP.
# Les erreurs arrivent ici:
error:
print La connexion SLIP avec $remote a 
echou
e.
Fig. 7.1 - Un exemple de script pour le programme dip.
7.4. Utilisation de dip 107
Dans le langage de script de dip, les mots cl
es pr
e x
es par le symbole dollar ($)
d
enotent les noms de variables. Le programme conna^
t un certain nombre de va-
riables pr
ed
e nies, que nous allons d
etailler plus loin; $remote et $local, par exemple,
contiennent les noms des deux machines, respectivement distante et locale, de la liai-
son point-
a-point.
Les deux premi
eres instructions du script sont des commandes get, qui est la m
ethode
par laquelle dip initialise une variable. Ici, la machine locale est kro-slipet la machine
distante gogoslip.
Les cinq instructions suivantes initialisent le terminal et le modem: reset envoie une
commande de remise 
a z
ero du modem; pour les modems compatibles Hayes, il s'agit
de ATZ. La ligne suivante 
elimine le cas 
ech
eant tous les caract
eres d
ej
a re
cus par le
modem a n que le dialogue avec le serveur puisse s'
etablir proprement. Cette s
equence
de dialogue est tr
es simple: elle appelle le num
ero 41988, le num
ero de t
el
ephone
de gogoslip, et se connecte sous le compte utilisateur Skro avec le mot de passe
salut. La commande wait indique 
a dip d'attendre la cha^
ne de caract
eres donn
ee
comme premier argument pendant le nombre de secondes indiqu
e dans le second.
La condition if imbriqu
ee dans la proc
edure teste qu'aucune erreur ne s'est produite
pendant l'ex
ecution de la commande.
Les derni
eres commandes ex
ecut
ees sont default, qui assigne la route par d
efaut 
a la
liaison SLIP, et mode, qui valide le mode SLIP sur la ligne s
erie et con gure l'interface
et la table de routage pour vous.
7.4.2 Manuel de r
ef
erence de dip
Bien que tr
es utilis
e, dip n'est pas encore tr
es bien document
e. Nous allons malgr
e tout
vous donner un r
esum
e des principales commandes. Vous pourrez avoir un aper
cu de
la fonction de chacune d'elles en appelant dip en mode test et en tapant la commande
help. Pour trouver la syntaxe d'une commande, vous pouvez l'entrer sans arguments;
bien s^
ur, cela ne marche pas pour celles qui ne prennent pas d'argument.
$ dip -t
DIP: Dialup IP Protocol Driver version 3.3.7 (12/13/93)
Written by Fred N. van Kempen, MicroWalt Corporation.
DIP help
DIP knows about the following commands:
databits default dial echo flush
get goto help if init
mode modem parity print port
reset send sleep speed stopbits
term wait
DIP echo
Usage: echo on|off
DIP _
108 Chapitre 7. IP sur ligne s
erie | SLIP
Tout au long de la section suivante, les exemples qui achent l'invite DIP mon-
trent comment entrer une commande en mode test et ce qu'elle ache 
a l'
ecran. Les
exemples d
epourvus de cette invite doivent ^
etre consid
er
es comme des extraits de
scripts.
Les commandes modem
Dip o re un certain nombre de commandes permettant la con guration de la ligne
s
erie et du modem. Certaines parlent d'elles-m^
emes, comme port, qui s
electionne le
port s
erie 
a utiliser, ou speed, databits, stopbits et parity, qui permettent d'initialiser
les param
etres courants de la ligne (respectivement vitesse, nombre de bits, bits de
stop, et parit
e).
La commande modem s
electionne un type de modem. Pour l'instant, et pour encore
longtemps sans doute, le seul type support
e est HAYES (majuscules requises). L'indi-
cation du type de modem est obligatoire, sinon dip refusera d'ex
ecuter les commandes
dial (num
erotation) et reset. La commande reset envoie une cha^
ne de remise 
a z
ero
du modem; elle d
epend du type s
electionn
e. Pour les mod
eles compatibles HAYES,
il s'agit de ATZ.
L'instruction ush peut ^
etre utilis
ee pour (
( vidanger )
) toutes les r
eponses (ou les
parasites) que le modem a d
ej
a re
cues. Sinon, un script de dialogue suivant imm
edia-
tement un reset par exemple pourrait ^
etre perturb
e s'il lit OK ou d'autres r
eponses
de commandes pr
ec
edentes.
La commande init s
electionne une cha^
ne d'initialisation 
a envoyer au modem avant
la num
erotation. Pour les modems Hayes, il s'agit par d
efaut de (
( ATE0 Q0 V1 X1 )
),
qui positionne l'
echo des commandes et de longues r
eponses, et supprime le test de la
pr
esence de la tonalit
e sur la ligne.
En n, la commande dial envoie la cha^
ne d'initialisation au modem et e ectue la
num
erotation pour appeler le site distant. La commande de num
erotation par d
efaut
est ATD pour le type Hayes.
echo et term
La commande echo est une aide au d
eboguage. Dans ce mode, dip ache sur la console
tout ce qu'il envoie au port s
erie. L'e et peut ^
etre annul
e par echo o .
Vous pouvez aussi quitter momentan
ement le mode script et passer en mode terminal.
Dans ce mode, vous pouvez utiliser dip comme n'importe quel autre programme de
terminal. Pour le quitter, entrez Ctrl-] (combinaison de touches peu pratique sur un
clavier fran
cais).
7.4. Utilisation de dip 109
La commande get
C'est par elle qu'on initialise les variables. La forme la plus simple est l'assignation
d'une constante, comme nous l'avons fait dans gogoslip.dip. Vous pouvez 
egalement
demander 
a l'utilisateur de saisir la donn
ee, en sp
eci ant le mot cl
e ask au lieu d'une
valeur:
DIP get $local ask
Enter the value for $local: _
Une troisi
eme m
ethode consiste 
a obtenir la valeur depuis la machine distante. Aussi
bizarre que cela puisse para^
tre,c'est tr
es utile dans certains cas. Beaucoup de serveurs
SLIP ne vous autoriseront pas 
a utiliser votre propre adresse IP sur cette liaison,
mais vous en assigneront une dynamiquement lorsque vous appellerez, en achant un
message vous informant de la valeur 
a prendre. Si ce message est de la forme (
( Your
address: 192.168.5.74 )
), ce qui est courant, alors le bout de code dip suivant saura
la r
ecup
erer tout seul:
# fin du dialogue login
wait address: 10
get $locip remote
La commande print
Elle est destin
ee 
a acher du texte sur le terminal o
u dip a 
et
e lanc
e. N'importe quelle
variable peut ^
etre utilis
ee dans le texte, comme ceci:
DIP print Utilisation du port $port 
a la vitesse de $speed
Utilisation du port cua3 
a la vitesse de 38400
Noms de variables
Le programme dip ne comprend qu'un ensemble pr
ed
e ni de variables. Leur nom
commence toujours par le signe dollar ($) et doit ^
etre en lettres minuscules.
Les variables $local et $locip contiennent le nom de la machine locale et son adresse IP.
Si l'on initialise le nom d'h^
ote, dip stockera le nom canonique dans $local, et mettra
l'adresse correspondante dans $locip. La m^
eme chose se passe pour $locip.
Les variables $remote et $rmtip ont la m^
eme fonction, pour le nom de la machine
distante et son adresse; et $mtu contient la valeur du MTU pour la connexion.
Ces cinq variables sont les seules qui peuvent se voir assigner des valeurs directement
par la commande get. Un h^
ote, ou toute autre variable, ne peut ^
etre initialis
e que par
les commandes correspondantes, mais peut ^
etre utilis
e dans les instructions print; ce
sont $modem, $port et $speed.
110 Chapitre 7. IP sur ligne s
erie | SLIP
Le r
esultat des commandes ex
ecut
ees se trouve dans la variable $errlvl. Une valeur de
0 indique que tout s'est bien pass
e, une valeur non nulle d
enote une erreur.
Les commandes if et goto
La commande if est un saut conditionnel, et non pas une impl
ementation compl
ete
du if habituel. Sa syntaxe est:
if variable op
erateur valeur goto 
etiquette
L'expression doit ^
etre une simple comparaison entre l'une des variables $errlvl, $locip
et $rmtip; variable doit ^
etre un nombre entier; l'op
erateur peut ^
etre ==, !=, , ,
=, et =.
La commande goto branche l'ex
ecution du script 
a la ligne suivant l'
etiquette indiqu
ee.
Une 
etiquette doit ^
etre le premier mot sur la ligne et doit ^
etre suivie imm
ediatement
par le caract
ere deux-points (:).
send, wait, et sleep
Ces commandes aident 
a impl
ementer des scripts de dialogue simples: send envoie ses
arguments sur la ligne s
erie. Il ne supporte pas les variables, mais comprend toutes
les s
equences d'
echappement du langage C comme n et b. Le caract
ere tilde (~) sert
d'abr
eviation pour le couple retour-chariot/saut de ligne.
Dans l'autre sens, wait prend un nom en argument et lit tout ce qui arrive du port s
erie
jusqu'
a ce qu'il reconnaisse ce mot, qui ne doit contenir aucun blanc. Vous pouvez
ajouter un temps maximal (en secondes) comme deuxi
eme argument; si le mot n'est
pas trouv
e pendant ce laps de temps, l'analyse s'arr^
etera et la variable $errlvl sera
positionn
ee 
a la valeur 1.
L'instruction sleep peut ^
etre utilis
ee pour attendre un certain temps, l
a encore l'in-
tervalle est exprim
e en secondes.
mode et default
Ces commandes servent 
a basculer la ligne s
erie en mode SLIP et 
a con gurer l'inter-
face.
La commande mode est la derni
ere que dip doit ex
ecuter avant de passer en arri
ere-
plan. 
A moins qu'une erreur ne se produise, on ne revient pas de cette commande.
La commande mode prend un protocole en argument; pour l'instant dip ne reconna^
t
que SLIP et CSLIP. La version courante de dip ne conna^
t pas le mode SLIP adaptatif.
Apr
es avoir pass
e la discipline de ligne en SLIP, dip ex
ecute ifcon g a n de con gurer
7.5. Utilisation en mode serveur 111
l'interface pour une liaison point-
a-point, et appelle route pour positionner la route
vers la machine distante.
Si, de plus, le script ex
ecute la commande default avant mode, dip fera aussi pointer
la route par d
efaut sur cette liaison.
7.5 Utilisation en mode serveur
La con guration de votre client SLIP 
etait la partie la plus dicile. Faire le contraire,
c'est-
a-dire faire fonctionner votre syst
eme en serveur SLIP, est bien plus simple.
Vous pouvez pour cela utiliser dip en mode serveur, ce qui peut ^
etre r
ealis
e en l'ap-
pelant sous le nom diplogin. Son chier de con guration principal est /etc/diphosts,
qui associe des comptes utilisateurs avec des adresses assign
ees 
a chacun. Alterna-
tivement, vous pouvez aussi utiliser sliplogin, un outil d
eriv
e de BSD qui o re une
con guration beaucoup plus 
etendue, vous permettant d'ex
ecuter des shell-scripts 
a
la connexion et d
econnexion de chaque machine. En fait, c'est le programme le plus
adapt
e pour r
ealiser un serveur SLIP.
Quel que soit votre choix, vous devrez pr
eparer un compte utilisateur par client SLIP
appel
e 
a se connecter. Par exemple, supposons que vous voulez o rir un service SLIP

a Marcel Dugenou, 
a dugenou.beta.org. Vous pourrez cr
eer un compte baptis
e
dugenou en ajoutant la ligne suivante dans votre chier passwd:
dugenou:*:501:60:Compte SLIP de Marcel Dugenou:/tmp:/usr/sbin/diplogin
Ensuite, il reste bien s^
ur 
a positionner le mot de passe avec la commande passwd.
Maintenant, lorsque dugenou entre sur le syst
eme, dip se lance en tant que serveur.
Pour v
eri er si l'utilisateur est autoris
e 
a utiliser SLIP, il regardera dans le chier
/etc/diphosts. Ce chier d
etaille les droits d'acc
es et les param
etres de connexion
pour chaque utilisateur SLIP. L'entr
ee de dugenou pourrait ressembler 
a ceci:
dugenou::dugenou.beta.org:Marcel Dugenou:SLIP,296
Le premier champ est le nom de l'utilisateur. Le second peut contenir un mot de
passe suppl
ementaire (voir plus bas). Le troisi
eme est le nom ou l'adresse IP de la
machine appelante. Ensuite vient le champ d'informations, sans aucune signi cation
pour le programme (pas encore, du moins). Le dernier champ d
ecrit les param
etres
de connexion. C'est une liste dont le s
eparateur est la virgule, sp
eci ant le protocole
(pour l'instant donc, soit SLIP ou CSLIP), suivi par le MTU.
Lorsque dugenou arrive, diplogin extrait les informations le concernant du chier
diphosts, et si le champ du mot de passe n'est pas vide, il le lui demande. La cha^
ne
entr
ee par l'utilisateur est compar
ee avec celle (en clair, non crypt
ee) contenue dans
diphosts. Si elles ne correspondent pas, l'utilisateur est refus
e.
112 Chapitre 7. IP sur ligne s
erie | SLIP
Sinon, diplogin passe alors la ligne s
erie en mode CSLIP ou SLIP et initialise l'interface
et la route. Cette connexion reste 
etablie jusqu'
a ce que l'utilisateur se d
econnecte et
que le modem coupe la ligne; diplogin remettra alors la discipline de ligne normale et
s'arr^
etera.
Attention, diplogin n
ecessite les privil
eges du superutilisateur. Si vous n'utilisez pas
dip avec les permissions setuid root, diplogin devra ^
etre une copie s
epar
ee (et non un
simple lien) a n de pouvoir en toute s
ecurit
e le positionner setuid, sans a ecter dip.
113
Chapitre 8
Le protocole Point-
a-Point |
PPP
8.1 Sous les P, le protocole
Tout comme SLIP, PPP est un protocole permettant d'envoyer des datagrammes par
une connexion s
erie; mais il est plus complet que le premier. Il autorise chaque partie

a n
egocier certaines options, comme l'adresse IP et le MTU, et comporte di 
erentes
m
ethodes d'authenti cation. Chacune de ces possibilit
es fait l'objet d'un protocole
s
epar
e. Ici, nous ne d
ecrirons que bri
evement ces di 
erentes (
( briques)
) qui composent
PPP, pour en savoir plus, nous vous conseillons de lire ses sp
eci cations dans le
RFC 1548, et tous ceux qui y sont relatifs1.
La couche la plus basse de PPP s'appelle HDLC, qui est l'abr
eviation de (
( High-Level
Data Link Control )
)
2, qui d
e nit les trames PPP individuelles et o re un checksum
sur 16 bits. Contrairement 
a l'encapsulation plus primitive de SLIP, une trame PPP
est capable de contenir des paquets d'autres protocoles que IP, comme Novell IPX ou
Appletalk. PPP r
ealise cela en rajoutant un champ protocole 
a la trame HDLC de
base qui identi e le type de paquet transf
er
e.
LCP, le protocole de contr^
ole de liaison (Link Control Protocol), est utilis
e par-dessus
HDLC pour la n
egociation d'options relatives 
a la liaison, comme le MRU (Maximum
Receive Unit), qui indique la taille de datagramme maximale qu'un c^
ot
e du lien est
capable de recevoir.
Au stade de la con guration, l'authenti cation client est une 
etape importante dans
l'
etablissement de la liaison. Bien que facultative, c'est vraiment un plus pour les
1: Ces documents sont indiqu
es dans la bibliographie pr
esent
ee 
a la n de ce livre.
2: En fait, HDLC est un protocole bien plus g
en
eral, d
e ni par l'ISO (International Standards
Organization).
114 Chapitre 8. Le protocole Point-
a-Point | PPP
serveurs accessibles sur appel t
el
ephonique. G
en
eralement, la machine appel
ee (le ser-
veur) demande au client de s'identi er en prouvant qu'il conna^
t une cl
e secr
ete. Si
l'appelant 
echoue, la connexion se termine imm
ediatement. Sous PPP, l'identi cation
est bidirectionnelle: l'appelant peut aussi demander au serveur de s'identi er. Ces pro-
c
edures sont totalement ind
ependantes les unes des autres; il existe deux protocoles
permettant deux types distincts d'authenti cation, que nous d
ecrirons plus loin. Ils
s'appellent PAP (Password Authentication Protocol) et CHAP (Challenge Handshake
Authentication Protocol).
Chaque protocole r
eseau rout
e par la liaison s
erie, comme IP, Appletalk, etc., est
con gur
e dynamiquement par un protocole de contr^
ole r
eseau, (
( Network Control
Protocol )
), ou NCP. Par exemple, pour envoyer des datagrammes IP, les deux c^
ot
es
de PPP doivent d'abord n
egocierquelle adresse IP chacun d'eux utilisera. Le protocole
de contr^
ole utilis
e 
a cet e et est IPCP, le protocole de contr^
ole de protocoles Internet,
(
( Internet Protocol Control Protocol )
).
En plus du transfert de datagrammes IP standard, PPP supporte aussi la compression
Van Jacobson de ces trames IP. Il s'agit d'une technique de r
eduction des en-t^
etes
TCP jusqu'
a une taille de 3 octets, 
egalement utilis
ee dans CSLIP et que l'on appelle
en principe la compression d'en-t^
etes Van Jacobson, ou compression VJ en abr
eg
e.
Son emploi peut ^
etre n
egoci
e au d
epart par IPCP.
8.2 PPP sous Linux
Sous Linux, PPP est compos
e de deux parties; un pilote bas niveau HDLC situ
e dans
le noyau, et un d
emon pppd fonctionnant au niveau utilisateur, g
erant les di 
erents
protocoles de contr^
ole. Dans la version courante, le petit utilitaire chat est aussi fourni,
qui permet l'
etablissement de la liaison en g
erant la communication par modem et le
dialogue avec le serveur d'une fa
con simple mais ecace.
Le pilote PPP inclus dans le noyau est 
ecrit par Michael Callahan, qui fut rejoint
par Al Longyear. Le d
emon pppd utilis
e est une impl
ementation libre supportant

egalement SunOS, 386BSD et quelques autres syst
emes, r
ealis
ee au d
epart par Drew
Perkins et maintenue actuellement par Paul Mackerras; la partie Linux est maintenue
par Alfred Longyear. Le programme chat est l'uvre de Karl Fox3.
Comme SLIP, PPP est impl
ement
e par une discipline de ligne sp
eciale. Pour utiliser
une ligne s
erie sous PPP, vous commencez par 
etablir une connexion modem tradi-
tionnelle, puis basculez la ligne en mode PPP. Dans ce mode, toutes les donn
ees sont
pass
ees au pilote PPP, qui teste la validit
e des trames HDLC (chacune comporte un
checksum sur 16 bits), puis les traite. Actuellement, seuls les datagrammes IP sont
3: Karl Fox peut ^
etre joint 
a l'adresse karl@morningstar.com. Al Longyear et Paul Mackerras
sont tr
es pris; si vous avez des questions concernant PPP il vaut mieux les poser dans le forum
Usenet comp.protocols.ppp ou l'un des groupes Linux, ou encore dans le canal (
( Net )
) des listes de
di usion Linux.
8.3. Utilisation de pppd 115
support
es, avec la compression VJ en option. Si Linux supporte un jour IPX, le pilote
PPP sera mis 
a jour pour savoir les g
erer aussi.
Le pilote inclus dans le noyau est assist
e par pppd, le d
emon PPP, qui e ectue les
phases d'initialisation et d'authenti cation n
ecessaires avant que tout tra c soit pos-
sible sur la liaison. Le comportement de ce programme peut ^
etre ajust
e par un certain
nombre d'options. Comme PPP est plut^
ot complexe, il est impossible de les expliquer
toutes dans un seul chapitre; par cons
equent ce livre ne pourra pas traiter tous les as-
pects de pppd, ce sera juste une introduction. Pour obtenir plus d'informations, consul-
tez les pagesde manuel et la documentation fournie avec la distribution sourcede pppd,
o
u vous trouverez l'essentiel de ce qui n'est pas trait
e dans cet ouvrage. Si vous avez
toujours des probl
emes, tournez-vous vers le forum Usenet comp.protocols.ppp, o
u
vous pourrez dialoguer avec la plupart des gens impliqu
es dans le d
eveloppement de
pppd.
8.3 Utilisation de pppd
Pour vous connecter 
a l'Internet par une liaison PPP, il vous faut une con guration
r
eseau minimale, c'est-
a-dire au moins l'interface loopback et une m
ethode de r
eso-
lution de noms, tout cela a 
et
e expliqu
e dans les pr
ec
edents chapitres. Pour utiliser
DNS sur une liaision s
erie, consultez le chapitre 7 qui d
etaille ce cas particulier.
Comme exemple pratique, nous allons encore une fois consid
erer que vous ^
etes sur la
machine kro. Vous avez d
ej
a appel
e le serveur PPP, que nous appellerons pabo, et
^
etes entr
e sur le syst
eme sous le compte utilisateur ppp. La machine pabo a d
ej
a
lanc
e son pilote PPP. Apr
es ^
etre sorti du programme de communications que vous
avez employ
e pour appeler le serveur, vous faites alors:
# pppd /dev/cua3 38400 crtscts defaultroute
Cette commande va basculer la ligne s
erie cua3 en mode PPP et 
etablir une liaison IP
avec l'h^
ote pabo. La vitesse de transfert utilis
ee sur le port s
erie sera 38400 bps.
L'option crtscts valide le contr^
ole de ux RTS/CTS, ce qui est indispensable avec des
vitesses sup
erieures 
a 9600 bps.
La premi
ere chose que fait pppd est de n
egocier plusieurs caract
eristiques de la liai-
son par le protocole LCP. G
en
eralement, les options par d
efaut fonctionneront, nous
n'entrerons donc pas dans les d
etails.
Pour l'instant, nous allons 
egalement consid
erer que pabo ne demande aucune iden-
ti cation, et que par cons
equent la phase de con guration est termin
ee.
Le programme pppd va alors n
egocier les adresses IP 
a utiliser en employant IPCP, le
protocole de contr^
ole IP. Puisque nous n'avons sp
eci 
e aucune adresse particuli
ere en
appelant pppd dans l'exemple ci-dessus, il va essayer de prendre les adresses obtenues
par le resolver sur les noms de chaque h^
ote. Chacun annoncera alors son adresse 
a
l'autre.
116 Chapitre 8. Le protocole Point-
a-Point | PPP
G
en
eralement, ce comportement par d
efaut est parfait. M^
eme si votre machine est
sur un r
eseau Ethernet, vous pouvez employer la m^
eme adresse IP pour les deux
interfaces. N
eanmoins, pppd permet d'utiliser une adresse di 
erente, ou m^
eme de
demander 
a l'autre c^
ot
e de vous en assigner une. Ces options sont d
ecrites dans la
section (
( Options de con guration IP )
).
Apr
es la phase de con guration IPCP, pppd va pr
eparer la couche r
eseau de votre
syst
eme 
a l'utilisation d'une liaison PPP. Tout d'abord, il con gure l'interface PPP
comme un lien point-
a-point, en prenant ppp0 pour la premi
ere interface active, ppp1
pour la seconde, et ainsi de suite. Ensuite, il va initialiser une entr
ee dans la table
de routage qui pointe vers l'h^
ote connect
e 
a l'autre bout de la liaison. Dans l'exemple
ci-dessus, pppd mettra aussi la route par d
efaut sur pabo, car nous lui avons pass
e
l'option defaultroute4. Par cons
equent, tous les datagrammes 
a destination de ma-
chines hors de votre r
eseau local seront envoy
es 
a pabo. Il existe di 
erents autres
sch
emas de routage rendus possibles par pppd, nous les verrons en d
etail un peu plus
loin.
8.4 Les chiers d'options
Avant que pppd n'analyse les arguments de sa ligne de commande, il recherche di 
e-
rents chiers pouvant contenir des options par d
efaut. Ces chiers peuvent indiquer
n'importe quelle option valide, sur plusieurs lignes si n
ecessaire; les commentaires
sont introduits par le signe di
ese (#).
Le chier /etc/ppp/options est le premier recherch
e, 
a chaque d
emarrage de pppd.
L'utiliser pour initialiser certaines valeurs par d
efaut est une bonne id
ee, car cela 
evite
aux utilisateurs de forcer certains param
etres pouvant compromettre la s
ecurit
e. Par
exemple, pour faire que pppd demande 
a chaque fois que l'autre c^
ot
e s'identi e (avec
PAP ou CHAP), il sut d'ajouter l'option auth dans ce chier. Elle ne pourra plus
^
etre forc
ee par l'utilisateur, et il devient alors impossible d'
etablir une connexion PPP
avec des syst
emes absents de votre base de donn
ees d'authenti cation.
L'autre chier d'options, qui est lu apr
es /etc/ppp/options, s'appelle .ppprc dans le
r
epertoire personnel de l'utilisateur. Il permet 
a chacun de sp
eci er ses propres options
par d
efaut.
Voici un exemple de chier /etc/ppp/options :
# Options globales pour pppd sur kro.bibine.com
auth # demande l'authentification
usehostname # utilise le nom d'h^
ote local pour CHAP
lock # emploie les fichiers de verrouillage style UUCP
domain bibine.com # notre nom de domaine
4: La route par d
efaut ne sera mise que s'il n'en existe pas d
ej
a une.
8.5. Appel t
el
ephonique par le programme chat 117
Les deux premi
eres options concernent l'identi cation et seront d
ecrites plus bas.
Le mot cl
e lock rend pppd compatible avec la m
ethode UUCP pour le verrouillage
des p
eriph
eriques. Dans cette convention, chaque processus acc
edant 
a un port s
erie,
disons /dev/cua3, cr
ee un chier nomm
e LCK..cua3 dans le r
epertoire spool/uucp
pour signaler que le p
eriph
erique est en cours d'utilisation. Cela permet d'
eviter que
certains autres programmes tentent d'acc
eder au port s
erie au m^
eme moment.
L'int
er^
et de mettre ces options dans le chier de con guration global, c'est qu'elles
ne pourront plus ^
etre forc
ees par quiconque par la suite, o rant ainsi un niveau de
s
ecurit
e raisonnable. Notez que quelques-unes n'ob
eissent pas 
a cette r
egle, la cha^
ne
connect par exemple.
8.5 Appel t
el
ephonique par le programme chat
Le fait d'^
etre oblig
e d'
etablir la connexion manuellement avant de lancer pppd vous
a peut-^
etre rebut
e. 
A la di 
erence de dip, pppd ne poss
ede pas son propre langage
script pour l'appel d'un serveur, mais n
ecessite qu'un programme externe quelconque
prenne en charge cette op
eration.La commande n
ecessairepeut ^
etre automatiquement
ex
ecut
ee par pppd, si on la lui passe en argument de l'option connect; il redirigera
alors l'entr
ee et la sortie standard de la commande vers le port s
erie. Certains utilisent
expect, 
ecrit par Don Libes. Il comporte un langage tr
es puissant bas
e sur Tcl et est

etudi
e exactement pour ce type d'applications.
Le paquetage pppd contient un programme similaire appel
e chat, qui vous permet de
r
ediger des scripts de dialogue dans le style UUCP. Il s'agit de s
equences de cha^
nes
de caract
eres que l'on attend du serveur distant, et des r
eponses que nous devons
envoyer pour chacune d'elles. Nous les appellerons respectivement attente et envoi;
en voici un exemple typique, extrait d'un script de dialogue:
ogin: dugenou ssword: salut
Ici, chat attendra que le syst
eme distant nous envoie l'invite de login, et nous lui
r
epondrons par le nom de l'utilisateur dugenou. Nous n'attendons que la cha^
ne
ogin:. Ainsi, que la premi
ere lettre soit majuscule ou minuscule, ou remplac
ee par
un malheureux parasite, sera sans importance. Ensuite, nous attendons que l'on nous
demande le mot de passe (ssword:), et nous envoyons la r
eponse.
Un script de dialogue n'est pas autre chose. Bien s^
ur, pour 
etablir la communication,
il faut 
egalement y inclure les commandes n
ecessaires au modem. Supposons que
vous disposez d'un modem Hayes (le contraire serait 
etonnant), et que le num
ero de
t
el
ephone du serveur est 318714. Pour appeler pabo, la commande chat compl
ete est
alors:
$ chat -v '' ATZ OK ATDT318714 CONNECT '' ogin: ppp word: GaGariN
118 Chapitre 8. Le protocole Point-
a-Point | PPP
Par d
e nition, la premi
ere cha^
ne doit ^
etre une attente, mais comme le modem ne
dira jamais rien tant que nous ne lui avons pas adress
e la parole, nous indiquons
une cha^
ne vide pour que chat n'attende pas ind
e niment. Nous envoyons ensuite
ATZ, la commande de remise 
a z
ero des modems compatibles Hayes, et attendons sa
r
eponse (OK). La cha^
ne suivante envoie la commande de num
erotation et le num
ero
de t
el
ephone, et attend le message CONNECT en r
eponse. L
a encore, cette attente est
suivie d'une cha^
ne vide car nous ne voulons rien envoyer pour l'instant, il nous faut
attendre l'invite du serveur. La suite de ce script fonctionne exactement comme nous
l'avons d
ecrit plus haut.
L'option -v indique 
a chat d'enregistrer toutes les activit
es dans les chiers trace du
syst
eme, par le d
emon syslog; c'est le niveau local2 qui est utilis
e5.
Sp
eci er le script de dialogue sur la ligne de commandes pr
esente un certain risque,
car tout utilisateur peut se servir de ps et visualiser cette ligne de commandes. Vous
pouvez 
eviter ce probl
eme en mettant ce script dans un chier, disons par exemple
appel-pabo. Il sura d'indiquer 
a chat, par l'option -f suivie du nom de chier, d'aller
lire le script dedans. Maintenant, l'appel 
a pppd se passe donc comme ceci:
# pppd connect chat -f appel-pabo /dev/cua3 38400 -detach 
crtscts modem defaultroute
En plus de l'option connect qui sp
eci e le script de dialogue, nous avons ajout
e deux
autres options 
a la commande: -detach, qui demande 
a pppd de ne pas se d
etacher
de la console et passer en arri
ere-plan, et le mot cl
e modem, qui lui permet de g
erer
la ligne s
erie dans le cas particulier d'un modem, par exemple en d
econnectant la
ligne apr
es l'appel. Si vous n'utilisez pas ce mot cl
e, pppd ne testera pas la ligne DCD
(d
etection de porteuse) et ne d
etectera jamais la d
econnexion
eventuelle de la machine
distante.
Tous ces exemples sont plut^
ot simples; chat permet de faire des scripts bien plus
complexes. Il o re par exemple l'int
eressante possibilit
e de pouvoir abandonner la
session en retournant une erreur, en fonction des r
eponses obtenues. Les messages sur
lesquels on utilisera typiquement cette fonction sont BUSY ou NO CARRIER, que votre
modem indiquera si le num
ero appel
e est occup
e ou ne r
epond pas. Pour que chat
reconnaisse imm
ediatement ces messages, vous pouvez les indiquer au d
ebut du script
par le mot cl
e ABORT :
$ chat -v ABORT BUSY ABORT 'NO CARRIER' '' ATZ OK ...
De m^
eme, vous pouvez changer le temps d'attente maximal de toute partie du dialogue
en ins
erant l'option TIMEOUT. Consultez la page de manuel de chat(8) pour les d
etails.
Quelquefois, vous aurez aussi besoin de conditions d'ex
ecution de certaines parties
du script. Par exemple, lorsque vous ne recevez pas l'invite de la machine appel
ee,
5: Si vous modi ez syslog.conf pour rediriger ces traces dans un chier, assurez-vous qu'il ne soit
pas lisible par tout le monde, car chat enregistre tout le dialogue, tel quel, y compris les mots de
passe.
8.6. D
eboguer votre con guration PPP 119
vous pouvez vouloir lui envoyer un BREAK, ou un retour-chariot. C'est r
ealisable
en ajoutant un script secondaire 
a une attente de cha^
ne: il consiste en une s
erie de
s
equences attente/envoi, comme le script principal, mais qui sont s
epar
ees par des
tirets. Le script secondaire est ex
ecut
e lorsque la cha^
ne attendue 
a laquelle il est
rattach
e n'est pas re
cue dans le temps imparti. Nous pourrions modi er l'exemple
pr
ec
edent de cette fa
con:
ogin:-BREAK-ogin: ppp ssword: GaGariN
Maintenant, lorsque chat ne re
coit pas l'invite login dans le temps pr
evu, le script
secondaire est ex
ecut
e et envoie un BREAK, puis attend 
a nouveau. Si l'invite appa-
ra^
t, le script continue 
a se d
erouler normalement, sinon chat se termine en retournant
une erreur au syst
eme ou au programme qui l'a appel
e.
8.6 D
eboguer votre con guration PPP
Par d
efaut, pppd enregistrera tous les messages d'avertissement ou d'erreurs par la
(
( facilit
e)
) daemon de syslog. Vous devrez ajouter une entr
ee
a syslog.conf qui redirigera
ces messages vers un chier ou m^
eme la console, sinon syslog les ignorera purement et
simplement. L'entr
ee suivante envoie ces messages dans le chier /var/log/ppp-log :
daemon.* /var/log/ppp-log
Si votre con guration PPP ne marche pas du premier coup, vous pourrez consulter
ce chier de trace pour avoir une id
ee de ce qui ne va pas. Si vous ne trouvez rien,
il faudra utiliser l'option debug de pppd, pour qu'il ajoute plus d'informations. Cette
option lui fera enregistrer le contenu de tous les paquets de contr^
ole envoy
es ou re
cus.
Tous les messages passent par syslog, au niveau daemon.
En n, il est possible de valider le d
eboguage au niveau du noyau en invoquant pppd
avec l'option kdebug. Celle-ci doit ^
etre suivie d'un argument num
erique qui est un OU
avec les valeurs suivantes: 1 pour les messages g
en
eraux, 2 pour l'enregistrement du
contenu de toutes les trames HDLC entrantes, 4 pour celles sortantes. Pour capturer
les messages de d
eboguage du noyau, vous devez soit employer une version de syslogd
qui lit aussi le chier /proc/kmsg, soit le d
emon klogd. Tous deux dirigent les messages
de d
eboguage du noyau vers la (
( facilit
e )
) kernel de syslog.
8.7 Options de con guration IP
IPCP est utilis
e pour n
egocier deux param
etres IP au moment de la con guration.
G
en
eralement, chaque c^
ot
e envoie un paquet IPCP de requ^
ete de con guration, indi-
quant les valeurs qu'il d
esire au lieu de celles par d
efaut. Le correspondant examine
chaque option 
a son tour et acquitte ou rejette la demande.
120 Chapitre 8. Le protocole Point-
a-Point | PPP
Avec pppd, vous disposez d'un contr^
ole presque total des options IPCP qu'il tentera de
n
egocier. Vous pouvez les ajuster par di 
erentes commandes que nous allons pr
esenter
ci-dessous.
8.7.1 Choix des adresses IP
Dans l'exemple ci-dessus, pppd appelait pabo et 
etablissait une liaison IP. Aucune
pr
ecaution n'
etait prise quant au choix d'adresses IP particuli
eres de chaque c^
ot
e de
la liaison. Nous avions simplement pris l'adresse de kro comme adresse IP locale, et
laiss
e pabo indiquer la sienne. Quelquefois n
eanmoins, il est n
ecessaire d'avoir un
contr^
ole sur les adresses mises en jeu; pour cela pppd propose plusieurs options.
Pour demander une adresse particuli
ere, il sut en principe de l'indiquer 
a pppd par
l'option suivante:
adresse locale:adresse distante
Vous pouvez utiliser pour adresse locale et adresse distante, aussi bien des noms
de machines que des adresses IP en notation sur 4 octets6. Avec cette option, pppd
tentera d'utiliser la premi
ere adresse comme sa propre adresse IP, et la seconde pour
la machine distante. Si cette derni
ere rejette l'une ou l'autre pendant la n
egociation
IPCP, aucune liaison IP ne sera 
etablie7.
Si vous ne d
esirez assigner que l'adresse locale et accepter toute adresse distante que
l'autre c^
ot
e annoncera, il vous sut de ne rien mettre 
a l'emplacement de la variable
adresse distante. Par exemple, pour que kro utilise l'adresse 130.83.4.27 au lieu
de la sienne, vous passeriez l'option 130.83.4.27: sur la ligne de commandes. De
m^
eme, pour n'assigner que l'adresse distante, vous laisseriezle champ adresse locale
en blanc. Par d
efaut, pppd utilisera alors l'adresse associ
ee au nom de la machine.
Certains serveurs PPP g
erant beaucoup de connexions assignent les adresses de ma-
ni
ere dynamique: elles sont choisies lorsqu'un syst
eme se connecte, et lib
er
ees 
a la
d
econnexion. Lors de l'appel de tels services, vous devez vous assurer que pppd ne
demande aucune adresse IP particuli
ere au serveur, mais qu'au contraire il est pr^
et 
a
accepter celles qui lui seront impos
ees. Cela signi e que vous ne devez pas sp
eci er
d'argument adresse locale, pour le moins. De plus, vous devrez utiliser l'option
noipdefault, qui indique au programme d'attendre que l'autre c^
ot
e lui indique son
adresse IP au lieu de prendre celle de la machine locale.
6: L'utilisation de noms de machines avec cette option a certaines cons
equences sur l'authenti -
cation CHAP. Consultez la section correspondante dans ce chapitre.
7: Vous pouvez autoriser la machine distante 
a vous imposer une adresse IP malgr
e tout
par l'option ipcp-accept-local, et vous pouvez accepter l'adresse qu'elle d
esire pour elle par
ipcp-accept-remote. Consultez la page de manuel pour plus de d
etails.
8.7. Options de con guration IP 121
8.7.2 Routage via une liaison PPP
Apr
es avoir initialis
e l'interface r
eseau, pppd positionne g
en
eralement une route, uni-
quement vers l'h^
ote distant. Si celui-ci est sur un r
eseau, vous voudrez sans doute
avoir la possibilit
e de vous connecter 
a des machines (
( derri
ere )
) lui; c'est-
a-dire qu'il
faudra une route vers un r
eseau.
Nous avons d
ej
a vu plus haut que pppd peut ^
etre param
etr
e pour positionner une
route par d
efaut gr^
ace 
a l'option defaultroute, qui est tr
es utile si le serveur PPP
que vous avez appel
e est cens
e ^
etre votre passerelle vers l'Internet.
Le cas inverse, o
u votre syst
eme agit comme une passerelle pour un simple h^
ote, est
aussi relativement simple 
a r
ealiser. Prenons par exemple un employ
e de l'entreprise
(
( La bi
ere virtuelle )
), dont l'ordinateur domestique s'appelle houblon. Lorsqu'il se
connecte 
a kro par PPP, il utilise une adresse appartenant au sous-r
eseau des bras-
seurs. Sur kro, nous pouvons alors passer l'option proxyarp 
a pppd, qui installera une
entr
ee proxy ARP pour houblon. Cela rendra automatiquement houblon accessible
depuis toutes les machines du r
eseau des brasseurs, et de celui des viticulteurs.
Toutefois, les choses ne sont pas toujours aussi simples que 
ca, par exemple lorsque
l'on relie deux r
eseaux locaux. En principe, cela demande l'ajout d'une route r
eseau
sp
eci que, car chacun peut avoir sa propre route par d
efaut. Par-dessus le march
e,
si les deux bouts utilisaient le lien PPP comme route par d
efaut, cela g
en
ererait une
boucle, et les paquets 
a destination inconnue feraient des aller et retour entre chaque
bout de la liaison jusqu'
a ce que leur ttl expire.
Comme exemple, supposons que (
( La bi
ere virtuelle)
) installe une succursale dans une
autre ville. Celle-ci poss
ede un r
eseau Ethernet qui lui est propre, poss
edant l'adresse
r
eseau IP 172.16.3.0,c'est-
a-dire le sous-r
eseau3 du r
eseau de classe B des brasseurs.
Cette succursale veut se connecter au r
eseau principal du si
ege par PPP pour mettre

a jour leurs chiers clients et les tarifs, etc. L
a encore, kro joue le r^
ole de passerelle;
son correspondant s'appelle, disons, province et son adresse IP vaut 172.16.3.1.
Lorsque provincese connecte 
a kro, il positionne la route par d
efaut vers kro, comme
de coutume. Sur la machine kro, toutefois, nous devrons installer une route r
eseau
pour le sous-r
eseau 3, qui passera par province. Pour cela, nous allons employer une
possibilit
e de pppd dont nous n'avons pas encore parl
e: la commande ip-up. Il s'agit
d'un shell-script ou d'un programme situ
e dans le r
epertoire /etc/ppp, qui est ex
ecut
e
apr
es que l'interface PPP a 
et
e con gur
ee. Lorsque ce chier existe, il est appel
e
automatiquement par pppd avec les param
etres suivants:
ip-up interface p
eriph
erique vitesse adresse locale adresse distante
Le param
etre interface indique l'interface r
eseau utilis
ee, p
eriph
erique est le che-
min d'acc
es au port s
erie (/dev/tty s'il s'agit de stdin/stdout), et vitesse corres-
pond 
a la vitesse d'utilisation de ce port s
erie. Bien entendu, adresse locale et
adresse distante correspondent aux adresses IP de chaque c^
ot
e de la liaison et sont
122 Chapitre 8. Le protocole Point-
a-Point | PPP
exprim
ees en notation sur 4 octets. Dans notre cas, le script ip-up pourrait contenir,
entre autres lignes de code, celles-ci:
#!/bin/sh
case $5 in
172.16.3.1) # La machine province
route add -net 172.16.3.0 gw 172.16.3.1;
...
esac
exit 0
De la m^
eme fa
con, /etc/ppp/ip-down est appel
e pour annuler toutes les actions de
ip-up lorsque la liaison est interrompue.
Toutefois, ce sch
ema de routage n'est pas encore complet. Nous avons positionn
e des
entr
ees dans la table de routage de chaque h^
ote PPP, mais, pour l'instant, aucune
autre machine de l'un ou l'autre des r
eseaux n'est au courant de cette liaison PPP.
Ce n'est pas un gros probl
eme si tous les h^
otes de la succursale ont leur route par
d
efaut pointant vers province, et si tous les h^
otes du r
eseau des brasseurs passent
par d
efaut par kro. Mais si ce n'est pas le cas, la seule solution sera d'employer un
d
emon de routage comme gated. Apr
es avoir cr
e
e la route r
eseau sur kro, le d
emon
de routage di usera cette nouvelle route 
a toutes les machines connect
ees aux r
eseaux
concern
es.
8.8 Protocole de contr^
ole de liaison
Nous avons d
ej
a rencontr
e LCP, Link Control Protocol, le protocole de contr^
ole de
liaison qui permet la n
egociation des di 
erents param
etres utilis
es pour notre lien
PPP.
Les deux options les plus importantes qu'il n
egocie sont le MRU (Maximum Re-
ceive Unit) et ce que l'on appelle commun
ement l'async map, Asynchronous Control
Character Map. Il y a d'autres options de con guration, mais elles sont bien trop
sp
ecialis
ees pour ^
etre pr
esent
ees ici. Consultez le document RFC 1548 pour en avoir
une description d
etaill
ee.
L'async map est utilis
ee sur les liaisons asynchrones comme les lignes t
el
ephoniques
pour identi er les caract
eres de contr^
ole qui doivent ^
etre encod
es (remplac
es par une
s
equence sp
eci que de deux caract
eres). Par exemple, vous pouvez avoir besoin d'en-
coder les caract
eres XON et XOFF utilis
es pour le contr^
ole de ux logiciel si quelque
modem mal con gur
e est tromp
e par la r
eception de XOFF. Parmi les autres bons
candidats, citons Ctrl-] (le caract
ere d'
echappement de telnet). PPP vous permet
d'encoder n'importe quel caract
ere du code ASCII entre 0 et 31 en le d
eclarant dans
l'async map.
L'async map est un champ de 32 bits, dont le moins signi catif correspondau caract
ere
ASCII NUL, et le plus signi catif au caract
ereASCII 31. Si un bit est mis 
a 1, il signale
8.8. Protocole de contr^
ole de liaison 123
que le caract
ere correspondant doit ^
etre encod
e avant d'^
etre envoy
e sur la ligne. Par
d
efaut, l'async map vaut 0xffffffff, c'est-
a-dire que tous les caract
eres de contr^
ole
seront encod
es.
Pour indiquer 
a votre correspondant qu'il n'a besoin d'encoder que quelques caract
eres
de contr^
ole, vous pouvez sp
eci er une nouvelle async map 
a pppd gr^
ace 
a l'option
asyncmap. Par exemple, si seulement ^S et ^Q (ASCII 17 et 19, couramment utilis
es
pour XON et XOFF) doivent ^
etre trait
es, utilisez l'option suivante:
asyncmap 0x000A0000
Le Maximum Receive Unit, ou MRU, signale au correspondant la taille maximale
des trames HDLC que nous voulons recevoir. Bien que cela puisse vous rappeler la
valeur MTU (Maximum Transfer Unit), il n'y a pas grand rapport. Le MTU est
un param
etre de l'interface, au niveau noyau, et indique la taille maximale d'une
trame IP que cette interface peut g
erer. Le MRU est tout au plus un avertissement

a la machine correspondante de ne pas g
en
erer de trames plus grandes que la valeur
sp
eci 
ee; l'interface peut n
eanmoins ^
etre tout 
a fait capable de recevoir des paquets
allant jusqu'
a 1500 octets.
Choisir un MRU n'est par cons
equent pas tellement une question de capacit
e de
transfert, c'est surtout un moyend'obtenir le meilleur r
esultat.Si vous comptez utiliser
des applications interactives sur la liaison, baisser le MRU jusqu'
a une valeur de 296
est une bonne id
ee, ainsi un 
eventuel paquet plus large (provenant d'une session FTP
par exemple) ne (
( g
elera)
) pas momentan
ement le curseur sur votre 
ecran. Pour dire 
a
pppd de demander un MRU de 296, il sut de lui passer l'option mru 296. 
Etonnant,
non? Toutefois, de petites valeurs n'ont d'int
er^
et que si vous n'avez pas supprim
e la
compression d'en-t^
etes VJ (elle est valid
ee par d
efaut).
Le programme pppd conna^
t aussi quelques options permettant de con gurer le com-
portement g
en
eral de la proc
edure de n
egociation, comme le nombre maximal de
requ^
etes de con guration qui peuvent ^
etre 
echang
ees avant d'abandonner tout espoir.
Sauf si vous savez exactement ce que vous faites, ne touchez 
a rien.
En n, il y a deux options concernant les messages d'echo LCP. Le protocole PPP
d
e nit deux messages, Echo Request et Echo Response (demande et r
eponse d'
echo).
Le d
emon pppd utilise cette possibilit
e pour tester si une liaison est toujours op
era-
tionnelle. Vous pouvez la valider par l'option lcp-echo-interval suivie d'une dur
ee
exprim
ee en secondes. Si aucune trame n'est re
cue de la machine distante pendant
cet intervalle, pppd va g
en
erer une demande d'
echo et attendre une r
eponse. Si rien
n'arrive, la liaison se terminera apr
es un certain nombre de tentatives, dont le nombre
peut ^
etre positionn
e par l'option lcp-echo-failure. Par d
efaut, cette possibilit
e
n'est pas en service.
124 Chapitre 8. Le protocole Point-
a-Point | PPP
8.9 La s
ecurit
e sous PPP
Un d
emon PPP mal con gur
e peut ouvrir une br
eche d
evastatrice dans la s
ecurit
e
de votre syst
eme. Cela peut revenir 
a laisser n'importe qui brancher sa machine sur
votre r
eseau Ethernet (et c'est tr
es dangereux). Nous allons voir dans cette section
quelques-unes des mesures 
a prendre pour obtenir une con guration s
ecuris
ee.
Pour que pppd puisse con gurer l'interface r
eseau et la table de routage, il n
ecessite
les privil
eges superutilisateur, ce qui pose un probl
eme. Vous le r
esoudrez en principe
en mettant le programme setuid 
a root. Or, pppd permet aux utilisateurs d'initia-
liser di 
erentes options pouvant avoir trait 
a la s
ecurit
e. Pour se prot
eger de toute
attaque en provenance d'un utilisateur, il est fortement conseill
e d'initialiser quelques
valeurs par d
efaut dans le chier global /etc/ppp/options, en particulier celles indi-
qu
ees dans l'exemple de la section (
( Les chiers d'option )
). Quelques unes, comme
les options d'authenti cation, ne peuvent pas ^
etre forc
ees par l'utilisateur, et o rent
alors une protection raisonnable contre les manipulations de personnes maladroites
ou malintentionn
ees.
Bien entendu, vous devez aussi vous prot
egerdu syst
eme avec lequel vous vous connec-
tez en PPP. Pour s'a ranchir des h^
otes se faisant passer pour d'autres, vous devez
toujours demander une identi cation de la machine. De plus, vous ne devez pas au-
toriser les syst
emes appelants 
a utiliser une adresse IP de leur choix, mais leur en
imposer une, ou leur donner le choix entre plusieurs. Nous allons voir tout 
ca.
8.10 Authenti cation sous PPP
8.10.1 CHAP ou bien PAP?
Avec PPP, chaque syst
eme peut demander 
a son correspondant de s'identi er par l'un
des deux protocoles d'authenti cation. Ce sont PAP (Password Authentication Proto-
col) et CHAP (Challenge Handshake Authentication Protocol). Lorsqu'une connexion
est 
etablie, chaque c^
ot
e peut demander que l'autre s'identi e, quel que soit l'appelant
ou l'appel
e. Nous parlerons abusivement de (
( client )
) et (
( serveur )
) dans les pages qui
suivent, uniquement dans le but de distinguer plus facilement le syst
eme identi ant
du syst
eme identi 
e, n'y voyez donc qu'une commodit
e de langage.
Un d
emon PPP demande l'identi cation en envoyant une requ^
ete LCP de con gura-
tion sp
eci ant le protocole d
esir
e pour cette op
eration.
PAP est bas
e sur un syst
eme similaire aux mots de passe Unix. Le client s'identi e en
envoyant un nom d'utilisateur et un mot de passe (crypt
e sur option) au serveur, qui
compare alors ces donn
ees 
a celles qu'il poss
ede dans sa base de donn
ees secr
ete. Cette
technique est vuln
erable, certains pouvant obtenir le mot de passe en espionnant la
ligne s
erie, ou en faisant des essais r
ep
etitifs.
8.10. Authenti cation sous PPP 125
CHAP n'a pas ces inconv
enients. Avec lui, le serveur d
esirant l'authenti cation envoie
un (
( d
e )
) au client, sous forme d'une cha^
ne de caract
eres g
en
er
ee al
eatoirement, en
m^
eme temps que son nom de machine. Le client doit alors utiliser le nom pour trouver
le secret correspondant, le combiner avec la cha^
ne, et encrypter la cha^
ne par une
fonction de hachage. Le r
esultat est retourn
e au serveur avec le nom de machine du
client. Celui-ci e ectue alors les m^
emes calculs, et autorise l'acc
es au client s'il obtient
le m^
eme r
esultat.
Un autre avantage de CHAP est qu'il ne demande pas seulement au client de s'iden-
ti er au d
ebut de la connexion, mais il envoie des d
e s 
a intervalles r
eguliers pendant
la communication pour s'assurer que la machine n'a pas 
et
e remplac
ee discr
etement
par un intrus, par exemple en commutant la ligne t
el
ephonique.
Le programme pppd conserve les cl
es secr
etes pour CHAP et PAP dans deux chiers
distincts, nomm
es respectivement /etc/ppp/chap-secrets et pap-secrets. En ajoutant
un nom de machine dans l'un ou l'autre de ces chiers, vous pouvez facilement choisir
quels syst
emes authenti er avec quel protocole.
Par d
efaut, pppd ne demande aucune authenti cation de la machine distante, mais
sera d'accord pour s'identi er lui-m^
eme sur demande. Comme CHAP est plus puissant
que PAP, pppd tentera d'utiliser le premier chaque fois que possible. Si l'autre bout ne
le supporte pas, ou que pppd ne trouve pas de secret CHAP pour le syst
eme distant
dans son chier chap-secrets, il passera 
a PAP. S'il ne poss
ede pas de secret PAP
pour son correspondant non plus, il refusera toute authenti cation. En cons
equence,
la connexion se terminera l
a.
Ce comportement peut ^
etre modi 
e de di 
erentes fa
cons. Par exemple, avec le mot
cl
e auth, pppd demandera 
a son correspondant de s'authenti er. Il acceptera aussi
bien CHAP que PAP, tant qu'il poss
ede des informations concernant la machine
en question dans ses bases CHAP ou PAP. Il y a d'autres options permettant de
supprimer l'un ou l'autre protocole, mais nous ne les d
ecrirons pas ici; consultez la
page de manuel de pppd(8) si vous en avez besoin.
Si tous les syst
emes avec lesquels vous faites du PPP sont d'accord pour s'authenti er
aupr
es de vous, vous devez mettre l'option auth dans le chier global /etc/ppp/options
et d
e nir des mots de passe pour chaque syst
eme dans le chier chap-secrets. Si l'un
d'eux ne supporte pas CHAP, ajoutez son entr
ee dans le chier pap-secrets. Ainsi,
vous serez assur
e qu'aucun syst
eme inconnu ne pourra r
ealiser de connexion PPP
chez vous.
Les deux sections suivantes vont traiter des deux chiers secrets, pap-secrets et chap-
secrets. Ils r
esident dans le r
epertoire /etc/ppp et contiennent des triplets de clients,
serveurs, et mots de passe, suivis facultativement par une liste d'adresses IP. L'inter-
pr
etation des champs client et serveur est di 
erente selon qu'il s'agit de CHAP ou de
PAP, et d
epend 
egalement de quel c^
ot
e provient la demande d'authenti cation.
126 Chapitre 8. Le protocole Point-
a-Point | PPP
8.10.2 Le chier de secrets CHAP
Lorsqu'il doit s'identi er aupr
es de quelque serveur utilisant CHAP, pppd cherche
dans le chier chap-secrets une entr
ee dont le champ client est identique au nom de
machine local, et dont le champ serveur est identique au nom de l'h^
ote distant re
cu
dans le d
e CHAP. Lorsque au contraire, il demande au correspondant de s'identi er,
les r^
oles sont simplement invers
es: pppd recherchera alors une entr
ee dont le champ
client est identique au nom de la machine distante (envoy
e dans la r
eponse client
CHAP), et dont le champ serveur est 
egal au nom local.
Voici ci-dessous un exemple de chier chap-secrets, pour la machine kro8.
# Fichier secrets CHAP de kro.bibine.com
#
# client serveur secret adresses
#----------------------------------------------------------------------
kro.bibine.com pabo.moche.com Un Linux Sinon Rien kro.bibine.com
pabo.moche.com kro.bibine.com horreur, Boudinus pabo.moche.com
* kro.bibine.com MotDePasseIdiot pub.bibine.com
Lors de l'
etablissement d'une connexion PPP avec la machine pabo, celle-ci demande

a kro de s'authenti er en envoyant un d
e CHAP. Alors, pppd cherche une entr
ee dont
le champ client est kro.bibine.comet le champ serveur pabo.bibine.com9, dans le
chier chap-secrets. Il trouve la premi
ere ligne du chier, comme nous le voyons dans
l'exemple; il g
en
ere alors la r
eponse CHAP 
a partir de la cha^
ne de d
e et du secret
correspondant (Un Linux Sinon Rien), et l'envoie 
a pabo.
Dans le m^
eme temps, pppd compose un d
e CHAP pour pabo contenant une cha^
ne
unique et son nom pleinement quali 
e kro.bibine.com. La machine pabo construit
alors la r
eponse comme nous venons de l'expliquer, et l'envoie 
a kro. Alors, pppd en
extrait le nom du client (pabo.moche.com) et cherche dans le chier chap-secrets
une ligne dans laquelle pabo est client et kro est serveur. La second ligne correspond,
aussi pppd combine-t-il le d
e CHAP et le secret (horreur, Boudinus), encrypte la
chose, et compare le r
esultat 
a la r
eponse CHAP de pabo.
Les 4 champs optionnels listent les adresses IP qui sont acceptables pour les clients
indiqu
es dans le premier champ. Les adresses peuvent ^
etre donn
ees en notation sur 4
octets, ou sous forme de noms qui seront r
esolus par le resolver. Par exemple, si pabo
demande, pendant la n
egociation IPCP, une adresse IP qui n'est pas dans cette liste,
la requ^
ete sera rejet
ee. Dans l'exemple ci-dessus, pabo est par cons
equent limit
e 
a
l'emploi de sa propre adresse IP. Si le champ adresse est vide, n'importe laquelle sera
autoris
ee; et la valeur (
( - )
) interdit toute liaison IP avec ce client.
La troisi
eme ligne de notre exemple de chier chap-secrets autorise n'importe quelle
machine 
a 
etablir une liaison PPP avec kro, car un champ client ou serveur conte-
nant * correspond 
a n'importe quel nom, il s'agit d'un caract
ere g
en
erique. La seule
8: Les double quotes ( ) ne font pas partie du mot de passe; ces caract
eres sont l
a pour pr
eserver
l'espace contenu dans le mot de passe.
9: Ce nom est r
ecup
er
e dans le d
e CHAP.
8.10. Authenti cation sous PPP 127
condition est que le correspondant connaisse le secret, et utilise l'adresse de la ma-
chine pub.bibine.com. Les entr
ees contenant des caract
eres g
en
eriques dans le nom
de machine peuvent appara^
tre n'importe o
u dans le chier, puisque pppd utilisera
toujours la ligne la plus sp
eci que s'appliquant 
a un couple client/serveur.
Le d
emon pppd peut avoir besoin d'un peu d'aide pour les noms d'h^
otes. Comme nous
l'avons d
ej
a expliqu
e, le nom de la machine distante est toujours fourni par celle-ci
dans le d
e CHAP ou le paquet de r
eponse. Le nom local sera trouv
e en appelant la
fonction gethostname(2). Si vous avez initialis
e le nom du syst
eme sans le domaine,
donc non quali 
e, il vous faudra indiquer le domaine 
a pppd par l'option domain :
# pppd : : : domain bibine.com
Cela lui permettra d'ajouter ce domaine au nom kro, pour toutes les op
erations
d'identi cation. D'autres options permettent de changer l'id
ee que se fait pppd du
nom local de la machine: usehostname et name. Lorsque vous donnez l'adresse IP
locale sur la ligne de commande par adresse locale:adresse distante, et que
adresse locale est un nom au lieu d'une adresse IP, pppd l'utilisera comme nom
local. Pour plus de d
etails, consultez la page de manuel de pppd(8).
8.10.3 Le chier de secrets PAP
Le chier de secrets PAP est tr
es semblable 
a celui utilis
e pour CHAP. Les deux
premiers champs contiennent toujours un nom d'utilisateur et de serveur; le troisi
eme
contient le secret. Lorsque l'autre c^
ot
e envoie une requ^
ete d'authenti cation, pppd
utilise l'entr
ee qui a un champ serveur identique au nom de machine local, et un champ
utilisateur identique 
a celui qui a 
et
e envoy
e avec la requ^
ete. Lorsqu'il s'identi e lui-
m^
eme avec le syst
eme distant, pppd prend le secret 
a envoyer dans la ligne dont le
champ utilisateur est identique au nom utilisateur local, et dont le champ serveur est
identique au nom de la machine distante.
Voici un exemple:
# /etc/ppp/pap-secrets
#
# utilisateur serveur secret adresses
kro-pap pabo cassoulet kro.bibine.com
pabo kro DonaldGNUth pabo.moche.com
La premi
ere ligne est utilis
ee pour nous identi er lorsque nous communiquons avec
pabo. La seconde d
ecrit comment un utilisateur nomm
e pabo doit s'identi er aupr
es
de nous.
Le nom kro-pap, dans la premi
ere colonne, est le nom d'utilisateur que nous envoyons

a pabo. Par d
efaut, pppd prendra le nom de machine local comme nom d'utilisateur,
mais vous pouvez aussi indiquer un nom di 
erent en le passant par l'option user.
128 Chapitre 8. Le protocole Point-
a-Point | PPP
Lorsqu'il prend une entr
ee dans le chier pap-secrets pour authenti cation avec le
correspondant, pppd a besoin de conna^
tre le nom de la machine distante. Comme il
n'a aucun moyen de le deviner, vous devez lui sp
eci er sur la ligne de commandes par
l'option remotename. Par exemple, pour utiliser l'entr
ee ci-dessus pour une authenti-
cation avec pabo, nous devons rajouter l'option suivante lors de l'appel 
a pppd:
# pppd ... remotename pabo user kro-pap
Dans le quatri
eme champ (et tous les suivants), vous pouvez indiquer quelles adresses
IP sont autoris
ees pour cette machine particuli
ere, exactement comme dans le chier
de secrets CHAP. Le correspondant ne pourra alors demander que des adresses faisant
partie de cette liste. Dans notre exemple, nous exigeons que pabo utilise sa propre
adresse IP.
Notez que PAP est une m
ethode d'identi cation plut^
ot l
eg
ere, et il est fortement
conseill
e d'employer CHAP chaque fois que possible. Par cons
equent, nous n'entrerons
pas plus dans les d
etails de PAP ici; si vous en avez besoin vous pourrez trouver les
renseignements qui vous manquent dans le manuel de pppd(8).
8.11 Con guration d'un serveur PPP
Employer pppd en tant que serveur PPP consiste juste 
a lui passer les bonnes options
sur la ligne de commandes. L'id
eal est de cr
eer un compte utilisateur sp
ecial, disons
ppp, et de lui donner comme shell un script ou un programme invoquant le d
emon
pppd avec les options ad
equates. Par exemple, vous pourriez avoir dans /etc/passwd
une ligne ressemblant 
a celle-ci:
ppp:*:500:200:Compte PPP public:/tmp:/etc/ppp/ppplogin
Bien entendu, vous aurez des valeurs UID et GID di 
erentes de celles montr
ees ici
(500 et 200), et il vous faudra positionner le mot de passe avec la commande passwd.
Le script ppplogin pourrait ressembler 
a celui-ci:
#!/bin/sh
# ppplogin - script pour lancer pppd en serveur
mesg n
stty -echo
exec pppd -detach silent modem crtscts
La commande mesg interdit aux autres utilisateurs d'
ecrire sur le tty par la com-
mande write, par exemple. La commande stty, elle, supprime l'
echo des caract
eres,
a n que ce qu'envoie l'appelant ne lui soit pas retourn
e en 
echo. L'option la plus im-
portante est -detach, car elle emp^
eche pppd de se d
etacher du terminal de contr^
ole.
Si nous ne mettions pas cette option, il se placerait en arri
ere-plan, et le script se
8.11. Con guration d'un serveur PPP 129
terminerait, ce qui aurait pour cons
equence de faire raccrocher la ligne. L'option si-
lent indique au programme d'attendre jusqu'
a ce qu'il re
coive un paquet du syst
eme
appelant avant d'en envoyer lui-m^
eme. Cela permet d'
eviter des probl
emes avec cer-
tains syst
emes assez lents 
a lancer leur client PPP. L'option modem indique qu'il faut
prendre en compte les lignes de contr^
ole du modem sur le port s
erie. Il faut toujours
mettre cette option quand on utilise pppd avec un modem. En n, crtscts valide le
contr^
ole de ux mat
eriel.
Parall
element 
a ces options, il est conseill
e de forcer une authenti cation quelconque,
par exemple en sp
eci ant auth sur la ligne de commandes ou dans le chier global.
La page de manuel indique aussi des options sp
eci ques permettant de valider ou de
supprimer individuellement chaque protocole d'authenti cation.
130 Chapitre 8. Le protocole Point-
a-Point | PPP
131
Chapitre 9
Aspects importants du r
eseau
Apr
es avoir r
eussi 
a con gurer IP et le resolver, vous allez devoir vous occuper des
services que vous d
esirez o rir sur le r
eseau. Ce chapitre traite de la con guration
de quelques applications r
eseau simples, le serveur inetd et les programmes de la
famille rlogin y compris. L'interface RPC (Remote Procedure Call), qui permet des
services comme NFS (Network File System) ou NIS (Network Information System)
sera 
egalement rapidement pr
esent
ee. La con guration de ces deux derniers services,
toutefois, prend beaucoup de place et sera donc trait
ee dans des chapitres s
epar
es,
ainsi que le courrier 
electronique et les News Usenet.
Bien entendu, il est impossible de d
ecrire toutes les applications r
eseau possibles dans
ce livre. Si vous devez installer un service qui n'est pas d
ecrit dans cet ouvrage, comme
talk, gopher ou Mosaic, consultez ses pages de manuel pour obtenir les informations
n
ecessaires.
9.1 Le super serveur inetd
Tr
es souvent, les services r
eseau sont assur
es par ce que l'on appelle des d
emons1.
Un d
emon est un programme qui ouvre un certain port et attend des connexions.
Lorsque cela se produit, il cr
ee un processus ls qui accepte la connexion, pendant
que le processus p
ere continue 
a 
ecouter le port en attente d'autres requ^
etes. Ce
principe est la base de tous les services o erts; un d
emon doit ^
etre en attente de
connexions sur un port donn
e, ce qui signi e g
en
eralement un g^
achis de ressources
syst
eme, m
emoire ou zone de swap.
1: D
emon est une francisation famili
ere du vocable informatique anglais daemon, qui signi e Disk
And Extension MONitor, c'est-
a-dire qui n'est pas invoqu
e manuellement mais attend en arri
ere-plan
que quelque chose se passe, ou que quelque condition soit remplie. Ce terme fut introduit au d
epart
sous CTSS (Compatible Time Sharing System), un anc^
etre du syst
eme MULTICS, lui-m^
eme parent
d'UNIX. Le traducteur remercie Jon Collins et Steve Pate pour l'
etymologie de l'acronyme daemon.
132 Chapitre 9. Aspects importants du r
eseau
Par cons
equent, pratiquement toutes les installations UNIX emploient un (
( super
serveur )
) qui cr
ee des sockets pour un certain nombre de services et les 
ecoute toutes
en m^
eme temps par l'appel syst
eme select(2). Lorsqu'un h^
ote distant demande l'un
de ces services, ce super serveur s'en aper
coit et ex
ecute le d
emon sp
eci 
e pour ce
port.
Le super serveur commun
ement utilis
e s'appelle inetd, Internet Daemon. Il est lanc
e
lors du d
emarrage du syst
eme et prend la liste des services qu'il doit g
erer dans
un chier nomm
e /etc/inetd.conf. En plus de ceux-ci, inetd lui-m^
eme o re un certain
nombre de services tr
es simples, ce sont les services internes. Ils comprennent chargen,
qui g
en
ere une simple cha^
ne de caract
eres 
a des ns de test et daytime, qui retourne
la date syst
eme sous forme ASCII.
Une entr
ee de ce chier consiste en une simple ligne compos
ee des champs suivants:
service type protocole wait utilisateur serveur ligne-de-commandes
Voici la signi cation de chacun de ces champs:
service Donne le nom du service. Il doit ^
etre traduit en num
ero de port, en
le recherchant dans le chier /etc/services, qui sera d
ecrit dans la
section (
( Les chiers services et protocols )
).
type Sp
eci e un type de socket, soit stream (pour les protocoles orient
es
connexion) ou dgram (pour les protocoles sans connexion). Les ser-
vices bas
es sur TCP doivent par cons
equent toujours utiliser le mot
cl
e stream, alors que ce sera dgram pour ceux bas
es sur UDP.
protocol Donne le protocole de transport employ
e par ce service. Ce doit ^
etre
un protocole valide, d
eclar
e dans le chier protocols, d
ecrit un peu
plus loin.
wait Cette option ne s'applique qu'aux sockets dgram. Ce peut ^
etre soit
wait, soit nowait. Dans le cas de wait, inetd n'ex
ecute qu'un seul
serveur 
a la fois pour le port en question. Sinon, il continuera imm
e-
diatement l'
ecoute apr
es avoir lanc
e le service.
Cette possibilit
e est tr
es utile pour les serveurs qui lisent tous les
datagrammes qui arrivent, puis se terminent. La plupart des serveurs
RPC sont de ce type et doivent par cons
equent ^
etre utilis
es avec le
mot cl
e wait.
Les sockets stream doivent toujours employer nowait.
utilisateur Il s'agit de l'identi cation utilisateur sous lequel le processus doit ^
etre
ex
ecut
e. Ce sera souvent root, le superutilisateur, mais quelques ser-
vices peuvent n
ecessiter di 
erents comptes. Ici, c'est toujours une
bonne id
ee d'appliquer le principe des privil
eges mimimaux, qui d
e-
clare que vous ne devez pas ex
ecuter une commande sous un compte
9.1. Le super serveur inetd 133
privil
egi
e si ce n'est pas n
ecessaire pour qu'elle fonctionne correcte-
ment. Par exemple, les serveurs NNTP de News Usenet fonctionne-
ront sous l'utilisateur news, et les services pouvant poser des pro-
bl
emes de s
ecurit
e (comme tftp ou nger) sont souvent sous l'utilisa-
teur nobody.
serveur Donne le chemin d'acc
es complet au programme serveur qui doit ^
etre
ex
ecut
e. Les services internes sont rep
er
es par le mot cl
e internal.
ligne-de-commandes
Il s'agit de la ligne de commandes 
a passer au serveur. Elle inclut
l'argument 0, c'est-
a-dire le nom de la commande. G
en
eralement, ce
sera le nom du programme, sauf s'il a un comportement di 
erent
selon le nom sous lequel il est invoqu
e.
Pour les services internes, ce champ est vide.
#
# services inetd
ftp stream tcp nowait root /usr/sbin/ftpd in.ftpd -l
telnet stream tcp nowait root /usr/sbin/telnetd in.telnetd -b/etc/issue
#finger stream tcp nowait bin /usr/sbin/fingerd in.fingerd
#tftp dgram udp wait nobody /usr/sbin/tftpd in.tftpd
#tftp dgram udp wait nobody /usr/sbin/tftpd in.tftpd /boot/diskless
login stream tcp nowait root /usr/sbin/rlogind in.rlogind
shell stream tcp nowait root /usr/sbin/rshd in.rshd
exec stream tcp nowait root /usr/sbin/rexecd in.rexecd
#
# services internes 
a inetd
#
daytime stream tcp nowait root internal
daytime dgram udp nowait root internal
time stream tcp nowait root internal
time dgram udp nowait root internal
echo stream tcp nowait root internal
echo dgram udp nowait root internal
discard stream tcp nowait root internal
discard dgram udp nowait root internal
chargen stream tcp nowait root internal
chargen dgram udp nowait root internal
Fig. 9.1 - Un exemple de chier /etc/inetd.conf.
Un exemple de chier inetd.conf est donn
e dans la gure 9.1. Les services nger et
tftp sont comment
es de mani
ere 
a les rendre indisponibles. On agit souvent ainsi pour
des raisons de s
ecurit
e, nger peut par exemple ^
etre utilis
e pour obtenir les noms des
utilisateurs de votre syst
eme.
Le programme tftp impl
emente le Trivial File Transfer Protocol, qui permet 
a n'im-
porte qui de transf
erer n'importe quel chier lisible par tous depuis votre syst
eme,
134 Chapitre 9. Aspects importants du r
eseau
sans aucun test de mot de passe. C'est particuli
erement dangereux pour le chier
/etc/passwd, surtout si vous n'utilisez pas le syst
eme shadow.
TFTP est utilis
e par les clients diskless et les terminaux X pour t
el
echarger leur code
depuis un serveur. Si vous devez vraiment utiliser tftpd pour cela, assurez-vous de
limiter sa vision de votre syst
eme aux r
epertoires dans lesquels se trouvent les chiers

a prendre, en ajoutant leur nom sur la ligne de commandes de tftpd. Vous pouvez voir
un exemple de cette m
ethode dans la seconde ligne tftp de la gure 9.1.
9.2 Contr^
ole d'acc
es par tcpd
Puisque permettre un acc
es r
eseau 
a un ordinateur implique beaucoup de risques
de violation de s
ecurit
e, les applications sont con
cues pour pr
evenir plusieurs types
d'attaques. Malgr
e tout, rien n'est jamais parfait et certaines protections sont vuln
e-
rables, ou bien ne distinguent pas les machines ables dont les requ^
etes pour un service
particulier sont autoris
ees, d'h^
otes incertains dont les m^
emes requ^
etes devraient ^
etre
rejet
ees. Nous avons d
eja entr'aper
cu plus haut le probl
eme pos
e par nger et tftp.
Il serait parfois souhaitable de limiter l'acc
es 
a ces services, uniquement aux (
( h^
otes
de con ance )
), ce qui est impossible avec la con guration normale, o
u inetd ne sait
qu'o rir un service ou le refuser, pour tout le monde.
Il existe un outil tr
es pratique pour cela: tcpd2, un wrapper3 de d
emon. Lorsque
vous voulez tracer ou prot
eger un service TCP, il est appel
e 
a la place du programme
original. Il enregistre la requ^
ete via le d
emon syslog, teste si l'appelant est autoris
e

a utiliser ce service, et si la r
eponse est positive, il ex
ecute alors le vrai programme
serveur. Notez que cela ne fonctionne pas avec les services UDP.
Par exemple, pour prot
eger le service nger, vous devez modi er la ligne correspon-
dante dans inetd.conf:
# Encapsule le d
emon finger
finger stream tcp nowait root /usr/sbin/tcpd in.fingerd
Si l'on ne rajoute aucun contr^
ole d'acc
es, rien ne para^
tra chang
e sur la machine,
tout fonctionnera comme d'habitude, sauf que toutes les requ^
etes seront trac
ees via
la facilit
e auth de syslog.
Ce contr^
ole d'acc
es est impl
ement
e au moyen de deux chiers appel
es /etc/hosts.allow
et /etc/hosts.deny. Ils contiennent des entr
ees autorisant ou refusant l'acc
es, respecti-
vement, 
a certains services et h^
otes. Lorsque tcpd g
ere une requ^
ete d'un service comme
nger en provenance d'un client nomm
e, par exemple, geneur.penible.com, il re-
garde dans hosts.allow et hosts.deny (dans cet ordre) si une entr
ee correspond 
a la fois

a ce nom et au service demand
e. S'il la trouve dans hosts.deny, la requ^
ete est rejet
ee
et la connexion imm
ediatement ferm
ee. Si rien n'est trouv
e, la requ^
ete est accept
ee.
2: 
Ecrit par Wietse Venema, wietse@wzv.win.tue.nl.
3: Le terme semble consacr
e, inutile donc de fournir un 
equivalent fran
cais.
9.3. Les chiers services et protocols 135
Les entr
ees dans le chier d'acc
es ressemblent 
a ceci:
services: hotes [:commande]
services est une liste de noms valides dans /etc/services, ou encore le mot cl
e ALL
(tout). Pour d
esigner tous les services sauf nger et tftp, vous pouvez mettre (
( ALL
EXCEPT nger, tftp )
).
hotes est une liste de noms de machines ou d'adresses IP, ou encore les mots-cl
es ALL,
LOCAL ou UNKNOWN (inconnu). ALL indique n'importe quelle machine alors que
LOCAL d
esigneuniquement celles dont le nom ne contient pas de point4. UNKNOWN
d
esigne tous les h^
otes dont la recherche de nom ou d'adresse a 
echou
e. Un nom
commen
cant par un point correspond 
a tous les h^
otes dont le domaine est identique 
a
cette cha^
ne. Par exemple, .penible.com d
esignera aussi bien geneur.penible.com
que lourd.penible.com. Il est possible aussi de traiter les adresses IP r
eseau et
sous-r
eseau; consultez la page de manuel hosts access(5) pour en savoir plus.
Pour interdire l'acc
es 
a nger et tftp 
a tout le monde sauf aux machines locales, mettez
ce qui suit dans /etc/hosts.deny, et laissez vide le chier /etc/hosts.allow :
in.tftpd, in.fingerd: ALL EXCEPT LOCAL, .votre.domaine
Le champ facultatif commande peut contenir une commande shell 
a appeler lorsque
l'entr
ee correspond. C'est tr
es utile pour poser des pi
eges permettant de mettre en

evidence les 
eventuels intrus:
in.ftpd: ALL EXCEPT LOCAL, .bibine.com : 
echo Requete de %d@%h  /var/log/finger.log; 
if [ %h != kro.bibine.com ]; then 
finger -l @%h  /var/log/finger.log 
fi
Les arguments %h %d sont traduits par tcpd sous forme du nom de machine e ectuant
la requ^
ete et de celui du service, respectivement. L
a encore, consultez la page de
manuel hosts access(5) pour plus de d
etails.
9.3 Les chiers services et protocols
Les num
eros de ports par lesquels certains services (
( standard )
) sont o erts sont
d
e nis dans le RFC (
( Assigned Numbers )
), d
ej
a signal
e. Pour que serveurs et clients
puissent convertir ces noms de services en ports, leur liste (ou au moins une partie)
4: G
en
eralement, seules les machines locales, dont le nom est obtenu par une recherche dans
/etc/hosts n'ont pas de domaine ajout
e 
a leur nom, donc pas de point.
136 Chapitre 9. Aspects importants du r
eseau
# Le fichier /etc/services:
#
# Services bien connus
echo 7/tcp # Echo
echo 7/udp #
discard 9/tcp sink null # Discard
discard 9/udp sink null #
daytime 13/tcp # Date syst
eme
daytime 13/udp #
chargen 19/tcp ttytst source # G
en
erateur de caract
eres
chargen 19/udp ttytst source #
ftp 21/tcp # File Transfer Protocol
telnet 23/tcp # Virtual Terminal Protocol
smtp 25/tcp # Simple Mail Transfer Protocol
nntp 119/tcp readnews # Network News Transfer Protocol
#
# Services UNIX
exec 512/tcp # BSD rexecd
biff 512/udp comsat # notification du courrier
login 513/tcp # login distant
who 513/udp whod # who and uptime distants
shell 514/tcp cmd # commande distante, sans mot de passe
syslog 514/udp # syslog par r
eseau
printer 515/tcp spooler # spouleur d'imprimante
route 520/udp router routed # protocole RIP
Fig. 9.2 - Exemple de chier /etc/services (extrait).
est maintenue sur chaque machine; elle se trouve dans un chier dont le nom est
/etc/services. Il comporte des entr
ees compos
ees ainsi:
service port/protocole [alias]
Ici, service et port d
e nissent respectivement le nom du service et le port correspon-
dant, et protocole indique quel protocole de transport est utilis
e. En principe, c'est
soit udp, soit tcp. Il est possible qu'un service soit disponible par plus d'un protocole,
ou bien qu'un m^
eme port soit utilis
e pour plusieurs services, tant que ces protocoles
sont di 
erents. Le champ alias permet de sp
eci er plusieurs noms pour un m^
eme
service.
G
en
eralement, il n'est pas n
ecessaire de modi er le chier services fourni avec la
partie r
eseau de votre syst
eme Linux. N
eanmoins, vous trouverez un petit extrait de
ce chier dans la gure 9.2.
Par exemple, notez que le service echo est o ert sur le port 7 
a la fois pour TCP et
UDP, et que le port 512 sert 
a deux services di 
erents: ex
ecution distante (rexec(1))
utilisant TCP, et le d
emon COMSAT, qui indique aux utilisateurs que du nouveau
courrier est arriv
e, par UDP (voir xbi (1x)).
9.4. RPC: appel de proc
edure distante 137
#
# Protocoles Internet (IP)
#
ip 0 IP # internet protocol, pseudo protocol number
icmp 1 ICMP # internet control message protocol
igmp 2 IGMP # internet group multicast protocol
tcp 6 TCP # transmission control protocol
udp 17 UDP # user datagram protocol
raw 255 RAW # RAW IP interface
Fig. 9.3 - Exemple de chier /etc/protocols.
Comme pour les services, les fonctions r
eseau ont besoin d'un moyen de traduire
les noms de protocoles | par exemple, ceux indiqu
es dans le chier services | en
num
eros de protocoles compris par la couche IP de toute autre machine. Il existe un
chier pour cela, /etc/protocols. Il contient une entr
ee par ligne, compos
ee du nom
du protocole, et de son num
ero associ
e. Vous n'aurez probablement jamais 
a modi er
ce chier, dont un exemple est donn
e gure 9.3.
9.4 RPC: appel de proc
edure distante
RPC, l'ensemble (
( Remote Procedure Call )
) (appel de proc
edure distante), fournit un
m
ecanisme tr
es g
en
eral pour la r
ealisation d'applications client-serveur. RPC a 
et
e
d
evelopp
e par Sun Microsystems et consiste en une collection d'outils et de biblio-
th
eques de fonctions. Parmi les applications les plus importantes reposant sur RPC,
citons NFS et NIS, que nous pr
esenterons dans de prochains chapitres.
Un serveur RPC est fait d'un ensemble de proc
edures qu'un client appelle en lui
envoyant une requ^
ete RPC, ainsi que les param
etres de cette proc
edure. Le serveur
appellera la fonction pour le client, et lui renverra sa valeur de retour, s'il y en a une.
A n d'^
etre ind
ependant de l'architecture des machines mises en jeu, toutes les donn
ees

echang
ees doivent ^
etre converties dans un format universel, chaque ordinateur faisant
la conversion inverse pour les adapter 
a son format interne lorsqu'il les re
coit. Ce
format est appel
e XDR, soit External Data Representation (repr
esentation externe de
donn
ees).
Parfois, certaines am
eliorations d'une application RPC introduisent des modi cations
incompatibles dans l'interface d'appel de proc
edure. Bien s^
ur, changer simplement le
serveur emp^
echerait tous les programmes attendant encore le comportement original
de fonctionner. Par cons
equent, les programmes RPC se voient assigner un num
ero de
version, g
en
eralement 
a partir de 1, qui est incr
ement
e 
a chaque nouvelle version de
l'interface. Souvent, un serveur peut proposer plusieurs versions simultan
ement; les
clients indiquent quelle impl
ementation du service ils d
esirent utiliser par ce num
ero
de version dans leurs requ^
etes.
138 Chapitre 9. Aspects importants du r
eseau
La communication r
eseau entre serveurs et clients RPC est un peu particuli
ere. Un
serveur RPC o re un ou plusieurs ensembles de proc
edures; chacun 
etant appel
e un
programme et identi 
e de mani
ere unique par un num
ero de programme. Une liste
contenant la correspondance entre les noms de services et les num
eros de programmes
est en principe disponible dans le chier /etc/rpc, dont un extrait est reproduit dans
la gure 9.4.
#
# /etc/rpc - divers services RPC
#
portmapper 100000 portmap sunrpc
rstatd 100001 rstat rstat_svc rup perfmeter
rusersd 100002 rusers
nfs 100003 nfsprog
ypserv 100004 ypprog
mountd 100005 mount showmount
ypbind 100007
walld 100008 rwall shutdown
yppasswdd 100009 yppasswd
bootparam 100026
ypupdated 100028 ypupdate
Fig. 9.4 - Un extrait du chier /etc/rpc.
Sur les r
eseaux TCP/IP, les auteurs de RPC furent confront
es au probl
eme de faire
correspondre un service r
eseau g
en
erique aux num
eros de programmes. Ils d
ecid
erent
que chaque serveur proposerait 
a la fois un port TCP et UDP pour chaque programme
et chaque version. G
en
eralement, les applications RPC utiliseront UDP pour envoyer
des donn
ees, et ne prendront TCP que si les donn
ees 
a transf
erer ne tiennent pas dans
un seul datagramme UDP.
Bien s^
ur, les clients doivent avoir un moyen de trouver 
a quel port correspond un
num
ero de programme donn
e. Un chier de con guration serait inadapt
e; comme les
applications RPC n'utilisent pas de ports r
eserv
es, il n'y aurait aucune garantie qu'un
port utilis
e 
a l'origine pour notre application de base de donn
ees n'ait pas 
et
e pris par
quelque autre processus. Par cons
equent, les applications RPC prennent n'importe
quel port possible et l'enregistrent par le biais du d
emon portmapper. Il agit comme
un concierge pour tous les serveurs RPC en fonctionnement sur sa machine. Un client
d
esirantcontacter un service avecun num
erode programmedonn
edemandera d'abord
au portmapper de la machine serveur, qui lui indiquera les ports TCP et UDP par
lesquels le service peut ^
etre atteint.
Cette m
ethode a l'inconv
enient d'introduire un point faible, un peu comme le fait
le d
emon inetd pour les services Berkeley standard. Mais ici, c'est encore pire car
lorsque le portmapper s'arr^
ete pour une raison quelconque, toutes les informations
sont perdues; ce qui signi e que vous devez relancer manuellement chaque serveur,
ou r
eamorcer compl
etement la machine.
9.5. Con guration des commandes en (
( r )
) 139
Sous Linux, le portmapper s'appelle rpc.portmap et se trouve dans /usr/sbin. Il ne
demande aucune con guration particuli
ere, il sut de s'assurer qu'il est bien lanc
e
au d
emarrage du syst
eme, par exemple depuis le chier rc.inet2.
9.5 Con guration des commandes en (
( r )
)
Il existe certaines commandes destin
ees 
a ex
ecuter des programmes sur des machines
distantes. Ce sont rlogin, rsh, rcp, et rcmd. Toutes lancent un shell sur l'h^
ote distant
et permettent 
a l'utilisateur d'ex
ecuter des commandes. Bien entendu, le client doit
poss
ederun compte sur la machine en question. Parcons
equent, toutes ces commandes
passent par une proc
edure d'authenti cation; en g
en
eral le client indique le nom
d'utilisateur au serveur, qui 
a son tour demande un mot de passe valid
e par la m
ethode
habituelle.
Quelquefois il est malgr
e tout n
ecessaire d'assouplir cette proc
edure d'autorisation
pour certains utilisateurs. Par exemple, si vous devez fr
equemment vous connecter
sur d'autres machines de votre r
eseau, vous aimeriez ne pas avoir 
a taper votre mot
de passe 
a chaque fois.
Invalider l'authenti cation n'est envisageableuniquement que sur un tout petit nombre
d'h^
otes dont les chiers de mots de passe sont synchronis
es, ou pour quelques utili-
sateurs privil
egi
es qui ont besoin d'acc
eder 
a beaucoup de machines pour des raisons
administratives. Chaque fois que vous autorisez des gens 
a entrer sur votre machine
sans avoir besoin de pr
eciser leur identit
e ou leur mot de passe, assurez-vous bien que
vous n'o rez pas accidentellement l'acc
es 
a d'autres.
Il y a deux fa
cons de supprimer les tests d'identi cation pour ces fameuses commandes
en r. L'une permet au superutilisateur d'autoriser certains utilisateurs (ou tous) de
certains h^
otes (ou tous, mais c'est vraiment une tr
es mauvaise id
ee) 
a se connecter
sans qu'il leur soit demand
e de mot de passe. Cet acc
es est contr^
ol
e par un chier
nomm
e /etc/hosts.equiv. Il contient une liste des h^
otes et utilisateurs qui sont consi-
d
er
es comme 
equivalents 
a ceux de la machine locale. L'autre option est destin
ee aux
utilisateurs. Elle permet 
a un utilisateur d'autoriser d'autres personnes, sur certaines
machines, 
a utiliser son propre compte. Ils doivent alors se trouver dans le chier
.rhosts du r
epertoire personnel de cet utilisateur. Pour des raisons de s
ecurit
e, ce
chier doit absolument appartenir soit 
a l'utilisateur, soit au superutilisateur, et ne
doit pas ^
etre un lien symbolique: sinon, il sera purement et simplement ignor
e5.
Lorsqu'un client demande un service r, le nom de sa machine et son nom d'utilisateur
sont recherch
es dans le chier /etc/hosts.equiv, puis dans le chier .rhosts de l'uti-
lisateur sous lequel il d
esire se connecter. Prenons un exemple concret. Supposons
que janet travaille sur gauss et tente de se connecter sur le compte de joe, sur la
5: Dans un environnement NFS, vous devrez peut-^
etre lui donner les permissions 444 car le su-
perutilisateur a souvent des possibilit
es d'acc
es aux chiers tr
es restreintes sur les disques mont
es
par le r
eseau.
140 Chapitre 9. Aspects importants du r
eseau
machine euler. Tout au long de cet exemple, nous consid
ererons Janet comme l'uti-
lisateur client, et Joe comme l'utilisateur local. Janet tape sa commande sur gauss:
$ rlogin -l joe euler
Le serveur commence par tester hosts.equiv6 pour voir si Janet a droit 
a un acc
es
libre, et si la r
eponse est n
egative, il essaiera de le trouver dans le chier .rhosts du
r
epertoire personnel de joe.
Le chier hosts.equiv sur euler contient ceci:
gauss
euler
-public
quark.physique.groucho.edu andres
Une entr
ee consiste en un nom de machine, suivi facultativement par un nom d'utili-
sateur. Si un h^
ote appara^
t seul, tous ses utilisateurs seront admis sous leurs comptes
locaux sans aucun test d'identi cation. Dans l'exemple ci-dessus, Janet aurait le droit
de se connecter sous son compte janet en arrivant de gauss, et ce serait vrai pour
tout autre utilisateur 
a l'exception de root. Toutefois, si Janet voulait entrer sous le
nom joe, il lui serait demand
e le mot de passe correspondant.
Si un nom d'h^
ote est suivi par un utilisateur, comme dans la derni
ere ligne de
l'exemple, ce dernier poss
ede alors un acc
es libre, sans mot de passe, 
a tous les comptes
except
e celui de root.
Le nom de machine peut aussi ^
etre pr
ec
ed
e du signe moins, comme dans l'entr
ee -
public. Cela a pour e et de demander l'authenti cation pour tous les comptes de
-public, quels que soient les droits que les utilisateurs pourraient s'octroyer via leur
chier .rhosts.
Le format de .rhosts est identique 
a celui de hosts.equiv, mais sa signi cation est un
peu di 
erente. Consid
erons le chier .rhosts de Joe, sur la machine euler:
chomp.cs.groucho.edu
gauss janet
La premi
ere entr
ee autorise un acc
es libre 
a l'utilisateur joe lorsqu'il arrive de la ma-
chine chomp.cs.groucho.edu, mais ne change rien aux droits de tout autre compte
sur euler ou chomp. La seconde entr
ee est une variante, en ce sens qu'elle donne un
acc
es libre du compte de Joe 
a janet, s'il arrive de gauss.
Notez que le nom de machine du client est obtenu par la recherche inverse sur son
adresse IP, et donc que cette possibilit
e ne fonctionnera pas avec des h^
otes inconnus
6: Notez que le chier hosts.equiv n'est pas utilis
e si quelqu'un tente de se connecter sous root.
9.5. Con guration des commandes en (
( r )
) 141
du resolver. Ce nom d'h^
ote est consid
er
e correspondre au nom contenu dans le chier
hosts dans l'un des cas suivants:
{ Le nom canonique du client (et non pas un alias) est identique 
a celui contenu
dans le chier.
{ Si le nom de la machine cliente est un nom pleinement quali 
e (comme le re-
tournera le resolver si vous utilisez le DNS), et qu'il n'est pas identique 
a celui
trouv
e dans le chier, il sera compar
e 
a ce dernier, augment
e du nom de domaine
local.
142 Chapitre 9. Aspects importants du r
eseau
143
Chapitre 10
NIS: Network Information
System
Sur un r
eseau local, le but de votre travail d'administration est en principe d'o rir un
environnement rendant le r
eseau transparent 
a vos utilisateurs. Il vous faudra alors un
moyen de conserver les informations vitales comme les comptes utilisateurs, en parfait
synchronisme sur toutes les machines. Nous avons d
ej
a vu que pour la r
esolution des
noms, nous avons un outil puissant et adapt
e: DNS. Pour d'autres t^
aches, il n'y a
pas de service sp
ecialis
e. De plus, si vous ne g
erez qu'un petit r
eseau non connect
e 
a
l'Internet, l'utilisation du DNS est sans grand int
er^
et.
C'est pourquoi Sun a d
evelopp
e NIS, le Network Information System (syst
eme d'in-
formation r
eseau). NIS o re des facilit
es d'acc
es de base de donn
ees utilis
ees pour
distribuer des informations, comme celles contenues dans les chiers passwd et groups,

a tous les h^
otes de votre r
eseau. Celui-ci appara^
t alors comme un unique syst
eme,
avec les m^
emes comptes sur toutes les machines. De m^
eme, vous pouvez utiliser NIS
pour distribuer les renseignements sur les noms contenus dans /etc/hosts 
a travers le
r
eseau.
NIS est bas
e sur RPC, et comprend un serveur, une biblioth
eque client, et di 
erents
outils d'administration. 
A l'origine, le syst
eme s'appelait les pages jaunes (Yellow
Pages), ou YP; et ce nom est encore souvent employ
e. Or, (
( Yellow Pages )
) est une
marque d
epos
ee de British Telecom, qui imposa 
a Sun l'utilisation d'un autre nom.
C'est pour cette raison que YP reste le pr
e xe de la plupart des commandes relatives

a NIS comme ypserv, ypbind, etc.
Aujourd'hui, NIS est disponible pour pratiquement tous les syst
emes Unix, et il en
existe m^
eme des impl
ementations gratuites. L'une d'elles provient de la distribution
Net-2 de BSD et est d
eriv
ee d'une version de r
ef
erence en domaine public, o erte par
Sun. Le code de la biblioth
eque client de cette version fait partie de la biblioth
eque
standard GNU libc depuis longtemps, mais les programmes d'administration n'ont 
et
e
144 Chapitre 10. NIS: Network Information System
que tr
es r
ecemment port
es sous Linux, par Swen Th
ummler1. Il manque un serveur
NIS dans l'impl
ementation de r
ef
erence. Tobias Reber a r
ealis
e un autre paquetage
NIS comprenant tous les outils et un serveur; il s'appelle yps2.
Actuellement, une r
e
ecriture compl
ete du code NIS, appel
ee NYS est en cours, ce
travail est e ectu
e par Peter Eriksson;3 elle supportera aussi bien le NIS standard que
la nouvelle version tr
es am
elior
ee de Sun, NIS+. NYS o re non seulement un ensemble
d'outils et un serveur, mais ajoute de toutes nouvelles biblioth
eques de fonctions qui
l'am
eneront sans doute 
a faire partie de la libc standard un jour. Cela comprend une
nouvelle m
ethode de con guration pour la r
esolution de noms qui remplace l'actuelle,
avec host.conf. Nous d
ecrirons les caract
eristiques de ces fonctions.
Ce chapitre est orient
e sur NYS plut^
ot que les deux autres paquetages, que nous
appellerons le code NIS (
( traditionnel )
). Si vous avez l'intention d'utiliser l'une ou
l'autre impl
ementation, les instructions contenues dans ce guide pourront peut-^
etre
ne pas sure. Pour toute information suppl
ementaire, consultez un ouvrage sp
ecialis
e
sur le sujet, comme NFS and NIS, par Hal Stern ([NFS and NIS]).
Pour l'instant, NYS est encore en cours de d
eveloppement, et par cons
equent les uti-
litaires standard de Linux comme les programmes r
eseau ou login n'ont pas encore

et
e adapt
es. Toutefois, NYS est int
egr
e 
a la biblioth
eque C libc depuis sa version
4.6, vous pouvez par cons
equent facilement construire votre propre biblioth
eque sup-
portant NYS au lieu du code NIS traditionnel4. Les responsables du projet GNU
semblent aussi avoir l'intention d'int
egrer NYS dans leur impl
ementation ocielle de
la biblioth
eque GNU libc, dont celle de Linux est d
eriv
ee.
10.1 Initiation 
a NIS
NIS tient sa base de donn
ees 
a jour dans des cartes contenant des couples de mots-
cl
es/valeurs. Elles sont stock
ees sur un h^
ote central sur lequel se trouve le serveur
NIS, depuis lequel les clients peuvent extraire les informations par le truchement de
divers appels RPC. Tr
es souvent, les cartes sont au format DBM5.
Les cartes sont g
en
eralement r
ealis
ees 
a partir de chiers ASCII de r
ef
erence comme
/etc/hosts ou /etc/passwd. Pour certains chiers, plusieurs cartes sont g
en
er
ees, une
pour chaque type de cl
e de recherche. Par exemple, vous pouvez e ectuer une re-
1: On peut joindre Swen 
a l'adresse swen@uni-paderborn.de. Les clients NIS sont disponibles
dans l'archive yp-linux.tar.gz, sur sunsite.unc.edu dans le r
epertoire system/Network, et sur les
principaux sites di usant Linux, bien entendu.
2: La version courante (
a l'heure o
u nous 
ecrivons ces lignes) est yps-0.21 et peut ^
etre t
el
echarg
ee
sur ftp.lysator.liu.se dans le r
epertoire /pub/NYS.
3: L'adresse de Peter est pen@lysator.liu.se.
4: Toutes les instructions n
ecessaires pour cr
eer une biblioth
eque C contenant le support de NYS
se trouvent dans le chier README.nys, dans le code source de cette biblioth
eque.
5: DBM est une librairie de gestion de base de donn
ees simple qui utilise des techniques de hachage
pour acc
el
erer les op
erations de recherche. Il existe une impl
ementation libre de cette biblioth
eque
appel
ee gdbm, du projet GNU. Elle fait partie de toute distribution s
erieuse de Linux.
10.1. Initiation 
a NIS 145
cherche dans le chier hosts pour un nom de machine, ou pour une adresse IP. Par
cons
equent, on va donc d
eriver de ce chier deux cartes NIS, nomm
ees hosts.byname
et hosts.byaddr. Le tableau 10.1 
enum
ere les cartes courantes et les chiers 
a partir
desquels elles sont g
en
er
ees.
Fichier de r
ef
erence Carte(s) correspondante(s)
/etc/hosts hosts.byname hosts.byaddr
/etc/networks networks.byname networks.byaddr
/etc/passwd passwd.byname passwd.byuid
/etc/group group.byname group.bygid
/etc/services services.byname services.bynumber
/etc/rpc rpc.byname rpc.bynumber
/etc/protocols protocols.byname protocols.bynumber
/usr/lib/aliases mail.aliases
Tab. 10.1 - Quelques cartes NIS standard et les chiers correspondants.
Vous pourrez trouver le support d'autres chiers et cartes dans certains paquetages
NIS. Ils seront souvent relatifs aux informations d'applications que nous ne d
ecrivons
pas dans ce livre, comme la carte bootparams qui est utilis
ee par le serveur bootparamd
de Sun.
Il est courant d'attribuer des surnoms 
a certaines cartes, plus courts et plus simples

a taper. Ces surnoms ne sont compris que de ypcat et ypmatch, deux outils destin
es 
a
tester la con guration NIS. Pour en obtenir la liste, tapez la commande suivante:
$ ypcat -x
NIS map nickname translation table:
passwd - passwd.byname
group - group.byname
networks - networks.byaddr
hosts - hosts.byname
protocols - protocols.bynumber
services - services.byname
aliases - mail.aliases
ethers - ethers.byname
rpc - rpc.bynumber
netmasks - netmasks.byaddr
publickey - publickey.byname
netid - netid.byname
passwd.adjunct - passwd.adjunct.byname
group.adjunct - group.adjunct.byname
timezone - timezone.byname
Le programme serveur NIS s'appelle traditionnellement ypserv. Pour un r
eseau de
moyenne importance, un seul sut; de plus grands r
eseaux peuvent avoir plusieurs
de ces serveurs sur di 
erentes machines et di 
erents segments du r
eseau a n de limiter
146 Chapitre 10. NIS: Network Information System
la chargedes h^
otes serveurset des routeurs.Ils sont synchronis
esen rendant un serveur
ma^
tre, alors que les autres sont serveurs esclaves. Les cartes sont cr
e
ees uniquement
sur la machine du serveur ma^
tre, et distribu
ees aux esclaves.
Vous aurez remarqu
e que, jusqu'
a pr
esent, nous avons toujours parl
e de (
( r
eseaux)
) de
mani
ere vague. NIS consid
ere comme r
eseau l'ensemble des h^
otes qui partagent une
partie des donn
ees de leur con guration syst
eme par son interm
ediaire; et comprend
un concept un peu particulier: le domaine NIS. Malheureusement, les domaines NIS
n'ont absolument rien en commun avec les domaines que nous avons rencontr
es dans
le DNS. Pour 
eviter toute ambigu
t
e, nous devrons donc dans les pages qui suivent
toujours indiquer de quel type de domaine nous parlons.
Les domaines NIS n'ont qu'une fonction purement administrative. Ils sont pratique-
ment invisibles des utilisateurs, sauf pour le partage des mots de passe entre machines
du domaine. Par cons
equent, le nom donn
e 
a un domaine NIS ne concerne que les
administrateurs. G
en
eralement, n'importe quel nom fera l'a aire, tant qu'il est dif-
f
erent de tous les autres noms de domaines NIS 
eventuellement pr
esents sur votre
r
eseau local. Par exemple les administrateurs de (
( La bi
ere virtuelle )
) peuvent choisir
de cr
eer deux domaines NIS, un pour eux-m^
emes et un autre pour (
( Les caves vir-
tuelles )
), qu'ils appelleront respectivement canette et bouteille, par exemple. Une
autre m
ethode courante est d'employer tout simplement le nom du domaine DNS
comme domaine NIS. Pour positionner et acher le domaine NIS de votre h^
ote, vous
disposez de la commande domainname. Invoqu
ee sans arguments, elle ache le do-
maine NIS courant; pour le changer, vous devez passer superutilisateur et taper:
# domainname canette
Les domaines NIS d
eterminent quel serveur interroger. Par exemple, le programme
login d'une machine de nos viticulteurs ne doit, bien entendu, employer que le serveur
de leur domaine NIS (ou l'un d'eux s'il y en a plusieurs) pour demander le mot de
passe d'un utilisateur, et il en va de m^
eme pour les brasseurs; 
a chaque domaine NIS
son serveur.
Il nous reste un myst
ere 
a r
esoudre: comment un client peut-il trouver sur quel serveur
se connecter? L'approche la plus simpliste serait d'avoir un chier de con guration
indiquant le nom de la machine 
a contacter. Ce n'est toutefois pas satisfaisant car
il serait impossible de contacter plusieurs serveurs (du m^
eme domaine NIS, cela va
sans dire), selon leur disponibilit
e. Par cons
equent, les impl
ementations traditionnelles
de NIS emploient un d
emon sp
ecial appel
e ypbind pour d
etecter un serveur dans
leur domaine NIS. Avant de pouvoir e ectuer des requ^
etes NIS, une application doit
trouver, gr^
ace 
a ypbind, le serveur 
a contacter.
Ce d
emon ypbind sonde les serveurs en 
emettant sur le r
eseau IP local un message
de di usion (broadcast); le premier qui r
epond est consid
er
e comme le plus rapide et
sera utilis
e pour toutes les requ^
etes NIS qui suivront. Apr
es un certain temps, ou si
le serveur devient indisponible, ypbind recherche 
a nouveau les serveurs actifs.
10.2. NIS contre NIS+ 147
Cette m
ethode est discutable sur un point; vous n'en avez que rarement besoin, et
elle introduit un probl
eme de s
ecurit
e: ypbind croit aveugl
ement la premi
ere machine
qui r
epond, qui peut aussi bien ^
etre un humble serveur NIS tout 
a fait correct, qu'un
malicieux intrus. Il n'est pas besoin de dire que c'est particuli
erement g^
enant lorsque
vous g
erez vos mots de passe par NIS. Pour se prot
eger, la biblioth
eque NIS de Linux
n'utilise pas ypbind par d
efaut, mais r
ecup
ere le nom du serveur depuis un chier de
con guration.
10.2 NIS contre NIS+
NIS et NIS+ n'ont gu
ere en commun que leur nom et leur fonction. NIS+ est organis
e
d'une mani
ere tr
es di 
erente. Au lieu d'avoir un espace de noms lin
eaire avec des
domaines NIS disjoints, il utilise un espace de noms hi
erarchique similaire 
a celui
du DNS. 
A la place des cartes, ce sont des tables qui sont utilis
ees, constitu
ees de
lignes et de colonnes; chaque ligne repr
esente un objet dans la base de donn
ees NIS+,
et chaque colonne contient les propri
et
es de ces objets, que NIS+ conna^
t et g
ere.
Chaque table d'un domaine NIS+ donn
e comprend celles de ces domaines parents.
De plus, une entr
ee dans une table peut contenir un lien vers une autre table. Ainsi,
il est possible de structurer l'information de nombreuses fa
cons.
Le NIS traditionnel a une version RPC de 2, alors que NIS+ porte le num
ero 3. Ce
dernier ne semble pas encore largement utilis
e, et nous devons avouer que nous ne
connaissons pas grand-chose 
a son sujet, voire rien du tout. Par cons
equent, nous
n'en parlerons pas davantage ici. Si vous voulez en savoir plus, consultez le manuel
d'administration NIS+ de Sun ([NIS+]).
10.3 Le c^
ot
e client de NIS
Si vous avez l'habitude d'
ecrire ou de porter des applications r
eseau, vous aurez not
e
que la plupart des cartes NIS cit
ees plus haut correspondent 
a des fonctions de la
biblioth
eque C. Par exemple, pour obtenir des informations concernant le mot de
passe (passwd), vous appelez en g
en
eral les fonctions getpwnam(3) et getpwuid(3), qui
retournent les donn
ees associ
ees avec le nom d'utilisateur ou son num
ero d'identi -
cation, respectivement. En des circonstances normales, ces fonctions e ectueront la
recherche sur les chiers standard, en g
en
eral /etc/passwd.
Pour supporter NIS, le comportement de ces fonctions sera modi 
e; un appel RPC
est e ectu
e a n de pouvoir interroger le serveur NIS et r
ecup
erer les informations
demand
ees. Cette modi cation est transparente pour l'application. La fonction peut
soit (
( ajouter )
) la carte NIS au chier original, soit le (
( remplacer )
) enti
erement. Bien
s^
ur, il ne s'agit pas de r
eelles modi cations du chier, mais de ce qui appara^
t vu du
c^
ot
e de l'application.
148 Chapitre 10. NIS: Network Information System
En ce qui concerne les impl
ementations traditionnelles de NIS, certaines conventions
ont 
emerg
e qui permettent de d
eterminer quelles cartes sont ajout
ees ou lesquelles
remplacent l'information originale. Quelques-unes, comme les cartes passwd, deman-
dent des modi cations du chier passwd qui, incorrectement e ectu
ees, cr
eent des
failles dans la s
ecurit
e du syst
eme. Pour 
eviter ces pi
eges, NYS emploie un syst
eme
de con guration g
en
erale qui d
etermine si un ensemble de fonctions particulier doit
utiliser les chiers originaux, NIS ou NIS+, et dans quel ordre. Nous d
ecrirons cela
un peu plus loin.
10.4 Installer un serveur NIS
Apr
es autant de th
eorie r
ebarbative, il est temps de mettre les mains dans le cambouis
en installant r
eellement la chose. Dans cette section, nous allons donc aborder la
con guration d'un serveur NIS. S'il y en a d
ej
a un en fonctionnement sur votre r
eseau,
vous n'aurez pas besoin d'installer le v^
otre; vous pouvez sans risque ignorer cette
section.
Si vous comptez juste faire quelques exp
eriences avec le serveur, assurez-
}
vous de ne pas le con gurer pour un domaine NIS d
ej
a existant sur votre
r
eseau. Cela pourrait interrompre tout le service et vous rendre tr
es im-
populaire aupr
es de beaucoup de gens...
Il existe actuellement deux serveurs NIS disponibles sous Linux; l'un se trouve dans
le paquetage yps de Tobias Reber, et l'autre dans l'ensemble ypserv de Peter Eriksson.
Celui que vous utiliserez n'a aucune importance, que vous preniez NYS ou le code NIS
standard qui est actuellement dans la biblioth
eque libc. 
A l'heure o
u nous r
edigeons ce
chapitre, le code g
erant les serveurs esclaves NIS semble plus complet dans yps. D'un
autre c^
ot
e, ypserv corrige un probl
eme de s
ecurit
e courant sous NIS (qui sera d
ecrit
plus loin), ce que ne fait pas yps. Le choix d
epend donc enti
erement de vos besoins.
Apr
es avoir install
e le programme serveur (ypserv) dans /usr/sbin, vous devrez cr
eer
le r
epertoire destin
e 
a recevoir les cartes qui seront distribu
ees. Pour con gurer le
domaine NIS canette, les cartes devront se trouver dans /var/yp/canette. Le serveur
d
etermine s'il g
ere un domaine NIS particulier en testant l'existence de ce r
epertoire.
Si vous supprimez le service d'un domaine NIS, assurez-vous de supprimer 
egalement
ce r
epertoire.
A n d'acc
el
erer les recherches, les cartes sont souvent stock
ees au format DBM. Elles
sont cr
e
ees 
a partir des chiers de r
ef
erence 
a l'aide d'un programme appel
e makedbm
(pour le serveur de Tobias) ou dbmload (pour celui de Peter). Attention, ces com-
mandes peuvent ne pas ^
etre interchangeables. Transformer un chier en une forme
compr
ehensible par dbmload n
ecessite g
en
eralement un peu de magie awk ou sed, par
cons
equent le paquetage ypserv de Peter Eriksson contient un Make le (nomm
e yp-
Make le) qui e ectue tout le travail pour vous. Vous devrez l'installer sous le nom
10.5. S
ecurit
e du serveur NIS 149
Make le dans le r
epertoire o
u se trouvent vos cartes et l'
editer pour qu'il re 
ete celles
que vous d
esirez distribuer. Vers le d
ebut de ce chier, vous trouverez la cible all qui
indique les services que ypserv devra o rir. Par d
efaut, la ligne ressemble 
a celle-ci:
all: ethers hosts networks protocols rpc services passwd group netid
Si par exemple vous ne voulez pas produire les cartes ethers.byname et ethers.byaddr,
il sut de supprimer le mot ethers de cette ligne. Pour tester votre con guration,
vous pouvez commencer avec juste une ou deux cartes, comme services.*.
Apr
es avoir 
edit
e ce Make le, restez dans le r
epertoire et tapez make. Les cartes seront
alors automatiquement g
en
er
ees et install
ees. Il ne faudra pas oublier de mettre 
a jour
ces cartes chaque fois que vous modi erez les chiers de r
ef
erence, faute de quoi les
modi cations resteraient invisibles sur le r
eseau.
La section suivante d
etaille la con guration de la partie client de NIS. Si rien ne
marche, essayez de voir si les requ^
etes arrivent 
a votre serveur. En indiquant l'option
-debug sur la ligne de commandes de ypserv, vous obtiendrez des messages de d
ebo-
guage sur la console, indiquant toutes les requ^
etes NIS re
cues et le r
esultat qui est
envoy
e aux clients; cela devrait vous permettre de localiser le probl
eme. Le serveur
de Tobias ne poss
ede pas cette option.
10.5 S
ecurit
e du serveur NIS
NIS avait un important trou de s
ecurit
e: il permettait la lecture de votre chier de
mots de passe par pratiquement n'importe qui sur l'Internet, ce qui repr
esente une
quantit
e non n
egligeable d'intrusions possibles. Il susait de conna^
tre votre domaine
NIS et l'adresse de votre serveur, et de lui envoyer une requ^
ete demandant la carte
passwd.byname, pour recevoir aussit^
ot tous les mots de passe de votre site. Avec un
programme rapide comme crack et un bon dictionnaire, il 
etait en g
en
eral tr
es facile
d'en trouver au moins quelques-uns.
C'est pourquoi l'option securenets a 
et
e cr
e
ee. Elle restreint l'acc
es de votre serveur
NIS 
a certains h^
otes, en fonction de leur adresse IP ou du r
eseau.La derni
ereversionde
ypserv impl
emente cette option de fa
con assez pratique, par les chiers etc/hosts.allow
et /etc/hosts.deny que nous avons d
ej
a rencontr
es dans le chapitre 96. Par exemple,
pour restreindre l'acc
es aux machines des brasseurs, leur administrateur r
eseau ra-
jouterait dans le chier hosts.allow la ligne suivante:
ypserv: 172.16.2.
6: Pour valider cette option, il peut ^
etre n
ecessaire de recompiler le serveur. Lisez les instructions
contenues dans le chier README fourni dans la distribution.
150 Chapitre 10. NIS: Network Information System
Tous les h^
otes du r
eseau IP 172.16.2.0 auraient acc
es au serveur NIS. Pour interdire
tous les autres, l'entr
ee correspondante dans hosts.deny serait:
ypserv: ALL
Les num
erosIP ne sont pas la seule fa
con de sp
eci erh^
otes ou r
eseauxdans hosts.allow
et hosts.deny. Consultez la page de manuel hosts access(5) sur votre syst
eme pour
avoir plus de d
etails. Toutefois, vous devez savoir qu'il est impossible d'utiliser des
noms d'h^
otes ou de domaines dans l'entr
ee ypserv: si vous y mettez un nom, le
serveur essaie de le r
esoudre, mais le resolver appelle 
a son tour ypserv, et vous entrez
dans une boucle in nie.
Vous pouvez aussi utiliser le portmapper s
ecuris
e 
a la place de l'option securenets de
ypserv. Cette version (portmap-3.0)7 emploie aussi la m
ethode par hosts.allow, mais
o re cette s
ecurit
e pour tous les serveurs RPC, et non pas uniquement pour ypserv.
Mais n'essayez pas d'utiliser 
a la fois securenets et le portmapper s
ecuris
e, ce serait
inutile et la charge serait trop importante.
10.6 Con guration d'un client NIS avec NYS
La n de ce chapitre sera enti
erement consacr
ee 
a la con guration d'un client NIS.
La premi
ere 
etape consiste 
a indiquer 
a NYS quel serveur NIS doit ^
etre utilis
e. Vous
pouvez mettre son nom dans le chier de con guration /etc/yp.conf; voici un exemple
pour une machine du r
eseau des viticulteurs:
# yp.conf - Configuration YP pour la biblioth
eque NYS.
#
domainname bouteille
server gamay
La premi
ere ligne indique 
a tous les clients NIS que cet h^
ote appartient au domaine
NIS bouteille. Si vous omettez cette d
eclaration, NYS utilisera le nom de domaine
que vous avez assign
e au syst
eme par la commande domainname. La seconde ligne
indique le nom du serveur NIS 
a utiliser. Bien entendu, l'adresse IP correspondant 
a
gamay doit se trouver dans le chier hosts; l'alternative 
etant de mettre directement
cette adresse IP au lieu du nom.
Dans la forme ci-dessus, la commande server indique 
a NYS d'utiliser le serveur sp
e-
ci 
e, quel que soit le domaine NIS courant. Si, toutefois, vous d
eplacez votre machine
fr
equemment d'un domaine NIS 
a un autre, vous pouvez indiquer ces domaines dans
le chier yp.conf: il sut d'indiquer plusieurs serveurs, suivi du domaine NIS corres-
pondant. Par exemple:
7: Disponible par FTP anonyme sur sunsite.unc.edu dans le r
epertoire Linux/systems/Network.
10.7. Choisir les bonnes cartes 151
# yp.conf - YP configuration for NYS library.
#
server gamay bouteille
server gueuze canette
Ce pourrait ^
etre la con guration d'une machine portable, appel
ee 
a ^
etre utilis
ee tour 
a
tour dans ces deux domaines NIS. Il sura d'initialiser le domaine d
esir
e au moment
du d
emarrage du syst
eme, par la commande domainname.
Apr
es avoir cr
e
e ce chier de con guration de base et avoir v
eri 
e qu'il est lisible
par tout le monde, vous devez faire votre premier test pour voir si vous pouvez bien
vous connecter 
a votre serveur. Choisissez une carte que celui-ci distribue, comme
hosts.byname, et essayez de la r
ecup
erer avec l'utilitaire ypcat. Ce programme, comme
tous les autresoutils d'administrationNIS, doit se trouverdansle r
epertoire/usr/sbin.
# ypcat hosts.byname
172.16.2.2 brouilly.bibine.com brouilly
172.16.2.3 gamay.bibine.com gamay
172.16.1.1 kro.bibine.com kro
172.16.2.1 kro.bibine.com kro
172.16.1.2 gueuze.bibine.com gueuze
172.16.1.3 trappiste.bibine.com trappiste
172.16.2.4 cahors.bibine.com cahors
Vous devriez obtenir une sortie ressemblant 
a celle ci-dessus. Si vous avez un message
d'erreur disant (
( Can't bind to server which serves domain )
), c'est que soit le
domaine NIS que vous avez initialis
e n'a pas de serveur correspondant d
e ni dans
le chier yp.conf, soit que le serveur est inaccessible pour une raison quelconque.
Dans ce dernier cas, v
eri ez qu'un ping vers cette machine fonctionne bien, et qu'il y
existe bien un serveur NIS. Vous pouvez v
eri er si un serveur NIS est pr
esent par la
commande rpcinfo, qui devrait vous acher:
# rpcinfo -u nom-de-machine ypserv
program 100004 version 2 ready and waiting
10.7 Choisir les bonnes cartes
Apr
es avoir v
eri 
e que le serveur NIS est accessible, vous devez d
ecider quels chiers
doivent ^
etre remplac
es ou compl
et
es par les cartes NIS. G
en
eralement, ce sont ceux
permettant la recherche de noms et de mots de passe qui sont choisis. Le premier cas
est tr
es utile si vous n'employez pas BIND; le second permet 
a tous les utilisateurs
de se connecter sous leur compte depuis n'importe quel syst
eme du domaine NIS, et
va g
en
eralement de pair avec le partage d'un r
epertoire /home central mont
e sur tous
les h^
otes par NFS. La carte concernant les mots de passe est expliqu
ee en d
etail dans
la section suivante.
152 Chapitre 10. NIS: Network Information System
D'autres cartes, comme services.byname, rendent un service moins impressionnant,
mais peuvent n
eanmoins vous 
epargner un peu de travail d'
edition de chiers de
con guration. La carte services.byname est int
eressante si vous installez des applica-
tions r
eseaux qui emploient des services absents du chier services standard (ce qui
est un cas assez courant).
En g
en
eral, il sera bon de pouvoir choisir quand une fonction de recherche devra utili-
ser les chiers locaux ou le serveur NIS. NYS permet de con gurer l'ordre dans lequel
ces recherches sont faites, par l'interm
ediaire du chier /etc/nsswitch.conf, (Name
Service Switch). Ce chier contient une ligne pour chacune des fonctions de recherche
support
ees par NYS.
L'ordre correct d
epend du type des donn
ees. Il y a peu de chances que la carte ser-
vices.byname contienne des entr
ees di 
erentes de celles du chier local /etc/services;
tout au plus pourra-t-elle contenir des entr
ees suppl
ementaires. Par cons
equent, il
para^
t raisonnable d'e ectuer les recherches d'abord dans le chier local, et ne tester
NIS que si le nom de service recherch
e ne s'y trouve pas. En revanche, les informa-
tions sur les noms de machines peuvent changer fr
equemment, donc DNS ou NIS sont
toujours plus 
a jour que le chier /etc/hosts qui ne contient qu'une sauvegarde en cas
de probl
eme. Dans ce cas, il ne faudra e ectuer les recherches dans ce chier qu'en
dernier recours.
L'exemple suivant montre comment forcer les fonctions gethostbyname(2), gethost-
byaddr(2) et getservbyname(2) 
a interroger NIS et DNS avant de scruter le chier
hosts. Elle essaieront chaque service cit
e dans l'ordre o
u ils apparaissent sur la ligne.
Si une recherche aboutit, le r
esultat est imm
ediatement retourn
e, sinon le service
suivant est interrog
e.
# petit exemple de fichier /etc/nsswitch.conf
#
hosts: nis dns files
services: files nis
Voici la liste compl
ete des services susceptibles d'^
etre utilis
es dans une entr
ee de nss-
witch.conf. Les cartes, chiers, serveurs et objets utilis
es pour les recherches d
ependent
bien entendu du nom de l'entr
ee.
nisplus ou nis+
Utilise le serveur NIS+ du domaine. Son adresse sera obtenue par le
chier /etc/nis.conf.
nis Interroge le serveur NIS du domaine. La machine 
a contacter est
con gur
ee dans le chier yp.conf comme d
ecrit dans la section pr
e-
c
edente. Pour les entr
ees hosts, ce sont les cartes hosts.byname et
hosts.byaddr qui seront demand
ees.
dns Utilise le serveur de noms DNS. Ce type de service n'est utile qu'avec
10.8. Utilisation des cartes passwd et group 153
l'entr
ee hosts. Les serveurs de noms interrog
es sont toujours d
eter-
min
es par le chier resolv.conf standard.
les E ectue la recherche dans les chiers locaux, comme par exemple
/etc/hosts dans le cas de l'entr
ee hosts.
dbm Recherche l'information dans les chiers DBM, qui sont situ
es dans
le r
epertoire /var/dbm. Le nom du chier est celui de la carte NIS
correspondante.
Pour l'instant, NYS supporte les entr
ees nsswitch.conf suivantes: hosts, networks,
passwd, group, shadow, gshadow, services, protocols, rpc et ethers. D'autres entr
ees
seront probablement ajout
ees dans les versions ult
erieures.
La gure 10.1 montre un exemple plus complet, qui introduit un autre aspect de
nsswitch.conf. Le mot cl
e [NOTFOUND=return] dans l'entr
ee hosts indique 
a NYS
d'arr^
eter la recherche si les donn
ees recherch
ees n'ont pu ^
etre trouv
ees dans les bases
de donn
ees NIS ou DNS. C'est-
a-dire que NYS continuera la recherche dans les chiers
locaux uniquement si les appels aux serveurs NIS et DNS 
echouent pour une raison
quelconque. Les chiers locaux ne seront alors utilis
es qu'au moment du d
emarrage
du syst
eme et comme sauvegarde lorsque le serveur NIS est inaccessible.
# /etc/nsswitch.conf
#
hosts: nis dns [NOTFOUND=return] files
networks: nis [NOTFOUND=return] files
services: files nis
protocols: files nis
rpc: files nis
Fig. 10.1 - Exemple de chier nsswitch.conf.
10.8 Utilisation des cartes passwd et group
L'une des principales applications de NIS est la synchronisation des informations uti-
lisateur sur tous les h^
otes d'un domaine NIS. Pour cela, on ne conserve en g
en
eral
qu'un petit chier /etc/passwd local, auquel les donn
ees de tout le r
eseau en prove-
nance des cartes NIS sont ajout
ees. Toutefois, il ne sut pas de valider les recherches
NIS pour ce service dans nsswitch.conf pour que tout fonctionne.
Pour employer les informations utilisateur distribu
ees par NIS, vous devez d'abord
vous assurer que les valeurs de chaque num
ero d'utilisateur pr
esentes dans votre chier
passwd local correspondent 
a celles connues de NIS. Ce sera 
egalement n
ecessaire pour
154 Chapitre 10. NIS: Network Information System
bien d'autres choses, comme les montages NFS de partitions d'autres machines de
votre r
eseau sur la v^
otre.
Si l'une des valeurs de /etc/passwd ou /etc/group di 
ere de celle enregistr
ee dans les
cartes, vous devrez ajuster les propri
etaires de tous les chiers qui appartiennent 
a
cet utilisateur. Tout d'abord, il faudra changer tous les num
eros d'utilisateurs et de
groupes dans ces deux chiers pour les mettre 
a jour, puis trouver tous les chiers
appartenant aux utilisateurs concern
es, et en n changer leur propri
etaire. Supposons
que news avait un num
ero d'utilisateur de 9, et marcel de 103, et qu'ils ont 
et
e
chang
es pour de nouvelles valeurs. Il faudra alors ex
ecuter les commandes suivantes:
# find / -uid 9 -print /tmp/uid.9
# find / -uid 103 -print /tmp/uid.103
# cat /tmp/uid.9 | xargs chown news
# cat /tmp/uid.103 | xargs chown marcel
Il est tr
es important d'ex
ecuter ces commandes une fois le nouveau chier passwd
install
e, et que tous les chiers ont 
et
e trouv
es. La mise 
a jour des groupes se fait de
la m^
eme mani
ere.
Apr
es cela, les num
eros d'utilisateurs et de groupes sur votre syst
eme correspondront

a ceux des autres machines de votre domaine NIS. L'
etape suivante sera d'ajouter les
lignes de con guration dans nsswitch.conf qui valideront les recherches NIS pour les
informations utilisateur et groupe:
# /etc/nsswitch.conf - traitement de passw et group
passwd: nis files
group: nis files
Cela changera la mani
ere dont la commande login et toute sa famille rechercheront
les informations utilisateur. Lorsque quelqu'un tente de se connecter, login demande
d'abord la carte NIS, et si la recherche 
echoue, il se tournera vers les chiers locaux.
En principe, on supprime pratiquement tous les utilisateurs des chiers locaux, pour
ne laisser que les entr
ees r
eellement indispensables comme root, mail ou autres,
car certaines applications ont besoin de trouver la correspondance entre ces noms
d'utilisateurs et leur num
ero, et vice versa. Par exemple, les travaux administratifs de
cron peuvent ex
ecuter la commande su pour devenir provisoirement news, ou bien
le syst
eme UUCP peut avoir 
a poster un courrier de statistiques. Si news et uucp
n'ont pas d'entr
eesdans le chier local passwd, ces travaux
echouerontlamentablement
pendant les pannes NIS.
Il y a deux gros pi
eges avec ce syst
eme. D'une part, la con guration d
ecrite jusqu'ici
ne fonctionne que pour la famille login qui n'utilise pas les mots de passe shadow,
comme ceux inclus dans le paquetage util-linux. Nous verrons le cas des mots de passe
shadow un peu plus loin. D'autre part, il y a d'autres commandes qui ont besoin des
informations contenues dans le chier passwd; regardons par exemple la commande
ls, que tout le monde utilise presque constamment. Lorsqu'on lui demande une sortie
10.9. NIS et les mots de passe shadow 155
(
( longue )
), ls ache les noms des groupes et des utilisateurs propri
etaires de chaque
chier. Pour chaque num
ero rencontr
e, elle devra donc interroger le serveur NIS. Cela
ralentira 
enorm
ement les choses, surtout si votre r
eseau local est charg
e; ne parlons
m^
eme pas de la situation o
u le serveur NIS n'est pas sur le m^
eme r
eseau physique et
que les datagrammes doivent traverser un routeur.
Mais ce n'est pas tout! Imaginez ce qui arrive si un utilisateur d
esire changer son mot
de passe. Il appellera la commande passwd le plus naturellement du monde, qui mettra

a jour le chier passwd local. Or c'est impossible avec NIS, puisque ce chier n'est
plus disponible localement, et il n'y a aucune option pour que les utilisateurs puissent
se connecter au serveur NIS pour changer leurs mots de passe. Par cons
equent, NIS
o re une commande de remplacement appel
ee yppasswd, qui est 
equivalente 
a passwd
lorsque NIS est disponible. Elle contacte le serveur NIS par RPC, et lui donne le
nouveau mot de passe. En g
en
eral, on installe yppasswd 
a la place de la commande
passwd originale, en faisant quelque chose comme ceci:
# cd /bin
# mv passwd passwd.old
# ln yppasswd passwd
Vous devrez en m^
eme temps installer rpc.yppasswdd sur le serveur et le lancer depuis
rc.inet2. Ainsi, toutes les complications induites par NIS seront totalement cach
ees
aux utilisateurs.
10.9 NIS et les mots de passe shadow
Utiliser NIS avec les mots de passe shadow tient malheureusement du bricolage. Le
syst
eme shadow a 
et
e invent
e pour emp^
echer les utilisateurs ordinaires d'avoir acc
es
aux mots de passe des autres, fussent-ils crypt
es. D'un autre c^
ot
e, NIS n
ecessite que
ces donn
ees soient disponibles sur tout le r
eseau, ce qui va compl
etement 
a l'encontre
du but initial.
Actuellement, il n'y a aucune solution r
eellement satisfaisante 
a ce probl
eme. La
seule fa
con de distribuer des mots de passe et autres informations utilisateur par NIS
passe par les cartes standard passwd.*. Si vous avez le syst
eme shadow, la m
ethode
la plus simple de les partager est de g
en
erer un chier passwd ordinaire 
a partir de
/etc/shadow 
a l'aide d'outils comme pwunconv, et de cr
eer les cartes NIS 
a partir de
celui-ci.
Bien s^
ur, quelques astuces peu pratiques sont n
ecessaires pour utiliser NIS et le sys-
t
eme shadow en m^
eme temps; par exemple installer un chier /etc/shadow sur chaque
h^
ote du r
eseau, tout en distribuant le reste des informations (groupes, shells, etc.) par
NIS. Inutile de dire que cette solution est plut^
ot b^
atarde et d
e e l'orientation de NIS,
qui est de faciliter la t^
ache de l'administrateur syst
eme. 
A notre avis, une m
ethode
for
cant les utilisateurs 
a choisir de (
( bons )
) mots de passe est bien meilleure que celle
qui consiste 
a les cacher dans un chier suppl
ementaire en cr
eant des incompatibilit
es.
156 Chapitre 10. NIS: Network Information System
10.10 Utilisation du code NIS traditionnel
Si vous utilisez le code client qui est actuellement int
egr
e 
a la biblioth
eque standard
libc, la con guration d'un client NIS est un peu di 
erente. En premier lieu, le code
traditionnel ne supporte que les cartes hosts, passwd et group. De plus, la fa
con dont
il combine les informations des chiers locaux avec celles de NIS est tr
es di 
erente de
ce qui se passe avec NYS.
Par exemple, pour utiliser les cartes NIS des mots de passe, il faut inclure la ligne
suivante quelque part dans le chier /etc/passwd:
+:*:0:0:::
Elle marque l'endroit o
u les fonctions de recherche (
( ins
erent )
) les cartes NIS. Une
ligne similaire dans le chier /etc/group a le m^
eme e et pour les cartes group.*.
Pour utiliser les cartes hosts.* distribu
ees par votre serveur YP, changez la ligne
order du chier host.conf. Par exemple, pour utiliser NIS, DNS et /etc/hosts (dans
cet ordre), cette ligne doit appara^
tre ainsi:
order yp bind hosts
Contrairement 
a NYS, le code traditionnel n
ecessite un d
emon ypbind pour trouver les
serveurs actifs, qui doit ^
etre invoqu
e au d
emarrage du syst
eme apr
es que le domaine
NIS a 
et
e initialis
e et que le portmapper RPC a 
et
e lanc
e.
Jusqu'
a il y a peu, ypbind cherchait les serveurs par di usion RPC. Comme nous
l'avons dit au d
ebut, c'est une solution peu s^
ure. C'est pourquoi la derni
ere version
des outils YP (de la distribution yp-linux) poss
ede maintenant un d
emon ypbind qui
supporte le chier de con guration /etc/yp.conf. Si ce chier existe, le programme y
recherchera une ou plusieurs lignes de la forme:
# yp.conf - name YP server for ypbind.
ypserver gamay
Le d
emon ypbind recherchealorsles serveursactifs parmi ceux indiqu
es8. S'il ne trouve
pas de chier yp.conf, ou si aucun des serveurs ne r
epond, il reprendra l'ancienne
m
ethode de di usion RPC, 
a la recherche d'un serveur qui veuille bien r
epondre.
Il y a eu r
ecemment de nombreux rapports de bogue signalant que NIS 
echouait avec
les messages d'erreur:
clntudp create: RPC: portmapper failure - RPC: unable to receive
8: Notez que le mot cl
e est di 
erent de celui utilis
e par NYS pour le nom du serveur.
10.10. Utilisation du code NIS traditionnel 157
Ils sont dus 
a une modi cation malencontreuse de la fa
con dont ypbind communique
avec les fonctions de la biblioth
eque. Pour y rem
edier, il faut se procurer les derni
eres
versions des sources des utilitaires NIS et les recompiler9.
9: Le code source de yp-linux peut ^
etre obtenu sur le site ftp.uni-paderborn.dedans le r
epertoire
/pub/Linux/LOCAL.
158 Chapitre 10. NIS: Network Information System
159
Chapitre 11
NFS, le syst
eme de chiers
par r
eseau
NFS, le syst
eme de chiers par r
eseau, est probablement le service le plus r
epandu
utilisant RPC. Il permet d'acc
eder aux chiers pr
esents sur des machines distantes
exactement comme s'ils
etaient locaux. Il est constitu
e d'un m
elange de fonctionnalit
es
int
egr
ees au noyau c^
ot
e client et d'un serveur NFS de l'autre c^
ot
e. Cet acc
es est
compl
etement transparent pour le client, et fonctionne sur une grande vari
et
e de
serveurs et d'architectures.
NFS o re un certain nombre d'avantages:
{ Les donn
ees auxquelles tous les utilisateurs acc
edent peuvent r
esider sur un
h^
ote central, chaque client montant ce r
epertoire au d
emarrage du syst
eme.
Par exemple, vous pouvez conserver tous les comptes des utilisateurs sur une
machine et faire que toutes les autres montent le r
epertoire /home depuis cet
endroit. Si, de plus, NIS est install
e, les utilisateurs peuvent se connecter sur
n'importe quel h^
ote et travailler toujours sur les m^
emes chiers.
{ Les donn
ees occupant beaucoup de place disque peuvent ^
etre stock
ees sur une
seule machine. Par exemple, tous les chiers et programmes relatifs 
a L
aTEX et
METAFONT peuvent ^
etre install
es et maintenus en un seul endroit.
{ Les donn
ees administratives peuvent se trouver sur une unique machine. Il n'y a
pas besoin d'utiliser rcp pour installer le m^
eme stupide chier sur 30 ordinateurs
di 
erents.
Sous Linux, NFS est en grande partie le travail de Rick Sladkey1, qui a 
ecrit le code
NFS du noyau et une bonne partie du serveur. Ce dernier est d
eriv
e de unfsd (user
1: On peut joindre Rick 
a l'adresse jrs@world.std.com.
160 Chapitre 11. NFS, le syst
eme de chiers par r
eseau
space NFS server), r
ealis
e 
a l'origine par Mark Shand, et de hnfs (Harris NFS server),

ecrit par Donald Becker.
Voyons le fonctionnement de NFS. Un client essaie de monter un r
epertoire d'une
machine distante sur un r
epertoire local, exactement de la m^
eme mani
ere qu'il le fait
pour un p
eriph
erique physique. Mais la syntaxe 
a employer pour d
esigner le r
epertoire
distant est di 
erente. Par exemple, pour monter le /home de kro sur le r
epertoire
users de trappiste, l'administrateur tape la commande suivante sur trappiste2 :
# mount -t nfs kro:/home /users
La commande mount essaiera de se connecter au d
emon mountd de kro via RPC. Le
serveur testera si trappiste a l'autorisation de monter le r
epertoire en question, et si
c'est le cas, retournera un descripteur de chier. Il sera utilis
e pour toutes les requ^
etes
suivantes concernant les chiers de /users.
Lorsque quelqu'un acc
ede 
a un chier par NFS, le noyau envoie un appel RPC 
a
nfsd (le d
emon NFS) sur la machine serveur. Cet appel prend comme param
etres
le descripteur de chier, le nom du chier auquel il faut acc
eder, et l'identi cation
(num
ero et groupe) de l'utilisateur. Ces derniers sont utilis
es pour d
eterminer les
droits d'acc
es au chier en question. A n d'
eviter que des utilisateurs non autoris
es
puissent lire ou modi er des donn
ees, les num
eros d'utilisateurs et de groupes doivent
^
etre les m^
emes sur les deux machines.
Dans la plupart des impl
ementations d'UNIX, le client comme le serveur NFS sont
impl
ement
es comme des d
emons de niveau noyau qui sont lanc
es depuis l'espace
utilisateur au moment du d
emarrage du syst
eme. Ce sont nfsd, le d
emon NFS sur le
serveur, et biod (Block I/O Daemon) sur la machine cliente. Pour am
eliorer la vitesse,
biod e ectue des entr
ees/sorties asynchrones et plusieurs exemplaires fonctionnent
simultan
ement.
Sous Linux, l'impl
ementation de NFS est un peu di 
erente,en ce sens que le code client
est int
egr
e 
a la couche VFS du noyau (Virtual File System, syst
eme de chiers virtuel)
et ne n
ecessite aucun autre contr^
ole additionnel par biod. De l'autre c^
ot
e, le code
serveur fonctionne enti
erement dans l'espace utilisateur, aussi est-il impossible d'avoir
plusieurs copies de ce serveur fonctionnant simultan
ement, en raison des probl
emes
de synchronisation que cela poserait. Il n'y a pas non plus de cache, mais cela fait
partie des projets de Rick Sladkey.
Dans la version 1.0 de Linux, le plus gros probl
eme avec NFS est que le noyau n'est
pas capable d'allouer de la m
emoire par blocs de plus de 4 Ko. En cons
equence, le
code r
eseau ne peut pas g
erer de datagrammes sup
erieurs 
a environ 3500 octets apr
es
soustraction des en-t^
etes et autres donn
ees internes. Cela signi e que les transferts
NFS avec des machines utilisant de grands datagrammes UDP par d
efaut (8 Ko sur
SunOS par exemple) doivent ^
etre arti ciellement r
eduits. Les performances en sont
2: Vous pouvez omettre l'option -t nfs, car mount voit qu'il s'agit d'un volume NFS, gr^
ace au
caract
ere (
( : )
).
11.1. V
eri cations avant usage 161
sensiblement a ect
eesen certaines circonstances3. Cette limite est franchie les versions
Linux-1.1 r
ecentes, et le code client a 
et
e modi 
e en cons
equence, bien entendu.
11.1 V
eri cations avant usage
Avant que vous ne puissiez utiliser NFS, que ce soit en client ou en serveur, vous
devez v
eri er que le noyau que vous utilisez a bien 
et
e compil
e avec le support de
NFS. Pour cela, Les versions r
ecentes de Linux ont une interface dans le syst
eme de
chiers proc, le chier /proc/ lesystems que vous pouvez acher par la commande
cat:
$ cat /proc/filesystems
minix
ext2
xiafs
msdos
nodev proc
nodev nfs
iso9660
Si vous ne voyez pas nfs dans la liste, vous devez recompiler votre noyau en validant
le support de NFS. Consultez la section (
( Con guration du noyau )
) du chapitre 3.
Dans le cas d'une ancienne version, ant
erieure 
a Linux 1.1, le meilleur moyen de savoir
si NFS est valid
e est d'essayer de monter un volume NFS. Pour cela, vous pouvez cr
eer
un r
epertoire de test dans /tmp, et essayer de monter un r
epertoire local dessus:
# mkdir /tmp/test
# mount localhost:/etc /tmp/test
Si cette op
eration 
echoue avec un message d'erreur indiquant (
( fs type nfs not
supported by kernel )
), vous devrez vous compiler un nouveau noyau en validant
NFS. Tout autre message d'erreur est sans importance, puisque rien n'est encore
con gur
e.
3: Comme l'a expliqu
e Alan Cox: Les sp
eci cations de NFS n
ecessitent que le serveur termine
toute 
ecriture disque avant de renvoyer un acquittement. Comme les noyaux BSD ne sont capables
d'
ecrire que des pages (4 Ko), 
ecrire quatre fragments de 1 Ko chacun sur un serveur NFS BSD
r
esulte en quatre op
erations d'
ecriture de 4 Ko chacune.
162 Chapitre 11. NFS, le syst
eme de chiers par r
eseau
11.2 Monter un volume NFS
Les volumes NFS4 sont mont
es presque de la m^
eme fa
con que les syst
emes de chiers
traditionnels. Vous appelez la commande mount avec la syntaxe suivante:
# mount -t nfs volume nfs r
epertoire local options
Avec volume nfs indiqu
e comme h^
ote distant:r
epertoire distant. Puisque cette
notation est unique aux syst
emes de chiers NFS, vous pouvez omettre l'option -t
nfs.
Il y a un certain nombre d'options additionnelles possibles que vous pouvez indiquer

a la commande mount. Elles peuvent ^
etre donn
ees soit apr
es le commutateur -o sur
la ligne de commandes, soit dans le champ pr
evu 
a cet e et dans l'entr
ee du chier
/etc/fstab correspondant 
a ce volume. Dans les deux cas, ces options sont s
epar
ees
entre elles par des virgules. Celles sp
eci 
ees en ligne de commandes ont toujours
priorit
e sur celles du chier fstab.
Voici un exemple d'entr
ee de /etc/fstab:
# volume point de montage type options
news:/usr/spool/news /usr/spool/news nfs timeo=14,intr
Ce volume peut alors ^
etre mont
e par cette commande:
# mount news:/usr/spool/news
En l'absence d'une entr
ee fstab, la commande 
a passer est un peu moins lisible. Par
exemple, supposons que vous montiez vos r
epertoires utilisateurs depuis une machine
appel
ee labas, qui utilise par d
efaut des blocs de 4 Ko pour les op
erations de lec-
ture/
ecriture. Vous voulez r
eduire cette taille 
a 2 Ko parce que vous avez un ancien
noyau Linux; la commande est alors:
# mount labas:/home /home -o rsize=2048,wsize=2048
La liste de toutes les options valides est d
ecrite en totalit
e dans la page de manuel de
nfs(5) fournie avec la version de mount de Rick Sladkey (qui fait partie du paquetage
util-linux). En voici un extrait:
rsize=n et wsize=n
Sp
eci ent la taille du datagramme utilis
ee par les clients NFS pour
les requ^
etes de lecture et d'
ecriture, respectivement. Actuellement,
leur valeur par d
efaut est de 1024 octets pour les raisons 
evoqu
ees
plus haut.
4: On ne dit pas syst
eme de chiers, car ce ne sont pas 
a proprement parler des syst
emes de
chiers.
11.2. Monter un volume NFS 163
timeo=n Indique le temps (en dixi
emes de seconde) pendant lequel le client
NFS attendra qu'une requ^
ete aboutisse. La valeur par d
efaut est 7
(0,7 seconde).
hard Marque explicitement le volume comme mont
e en dur. C'est l'option
par d
efaut.
soft Il s'agit de l'option inverse de hard.
intr Autorise les signaux 
a interrompre un appel NFS. C'est utile lorsque
le serveur ne r
epond pas.
Sauf pour rsize et wsize, toutes ces options concernent le comportement du client si le
serveur devient momentan
ement inaccessible. Elles s'organisent de la fa
con suivante:
Lorsque le client envoie une requ^
ete au serveur NFS, il attend pendant un certain
temps (d
e ni par l'option timeout) que l'op
eration soit termin
ee. Si aucune con r-
mation ne lui arrive pendant le temps imparti, un d
epassement de temps mineur est
compt
e, et il recommence l'op
eration en doublant cet intervalle de temps. Lorsque
cette valeur atteint 60 secondes, un d
epassement de temps majeur se produit.
Par d
efaut, un d
epassement de temps majeur provoquera l'achage d'un message sur
la console, et l'op
eration recommencera, en doublant encore une fois le temps imparti.
Le cycle peut durer 
eternellement. Les volumes mont
es ainsi, o
u les op
erations seront
tent
ees jusqu'
a ce que le serveur r
eponde, sont dits mont
es en dur. Dans le cas inverse,
le processus appelant re
coit une erreurd'entr
ee/sortielorsqu'und
epassementde temps
majeur se produit. En raison du cache, cette condition d'erreur n'est pas propag
ee
au processus avant son prochain appel 
a la fonction write(2), aussi dans ce cas de
montage, un programme ne peut jamais ^
etre certain qu'une op
eration d'
ecriture a
r
eussi.
Monter en dur ou non est une question de go^
ut, mais d
epend aussi des donn
ees aux-
quelles vous comptez acc
eder par NFS. Par exemple, s'il s'agit de vos programmes X,
vous ne souhaitez sans doute pas que votre session de travail se termine anorma-
lement, uniquement parce que quelqu'un a momentan
ement surcharg
e le r
eseau en
lan
cant sept copies de xv simultan
ement, ou parce que la prise s'est d
ebranch
ee. Avec
un montage en dur, vous serez s^
ur que votre machine attendra jusqu'
a ce que le contact
soit r
etabli avec le serveur NFS. D'un autre c^
ot
e, les donn
ees non critiques, comme les
partitions de News Usenet ou les archives FTP, ne n
ecessitent pas de montage en dur,
de sorte que les sessions ne restent pas en attente ind
e niment en cas de panne r
eseau
ou d'arr^
et de la machine distante. Si votre r
eseau est souvent surcharg
e ou lent pour
des raisons diverses, vous pouvez augmenter le d
elai d'attente par l'option timeo, ou
monter les volumes en dur, mais autorisez l'interruption des appels NFS (intr) pour
ne pas rester bloqu
e en cas de probl
eme.
G
en
eralement, le d
emon mountd conservera d'une mani
ere ou d'une autre une trace
des r
epertoires qui ont 
et
e mont
es, et par quels h^
otes. Cette information peut ^
etre
ach
ee par la commande showmount, qui fait partie du paquetage serveur NFS. La
164 Chapitre 11. NFS, le syst
eme de chiers par r
eseau
version Linux, toutefois, n'impl
emente pas encore cette possibilit
e.
11.3 Les d
emons NFS
Si vous d
esirez o rir un service NFS 
a d'autres h^
otes, vous devrez lancer les d
emons
nfsd et mountd sur votre machine. En tant que programmes RPC, ils ne sont pas
g
er
es par inetd, mais sont ex
ecut
es au d
emarrage du syst
eme et enregistr
es par le
portmapper. Par cons
equent, vous devez vous assurer qu'ils sont bien appel
es apr
es
rpc.portmap. G
en
eralement, on rajoute les lignes suivantes dans le script rc.inet2:
if [ -x /usr/sbin/rpc.mountd ]; then
/usr/sbin/rpc.mountd; echo -n  mountd
fi
if [ -x /usr/sbin/rpc.nfsd ]; then
/usr/sbin/rpc.nfsd; echo -n  nfsd
fi
Les informations sur les propri
etaires des chiers qu'un d
emon NFS fournit 
a ses
clients ne contiennent en principe que les valeurs num
eriques d'utilisateur et de
groupe. Si le client et le serveur associent les m^
emes valeurs aux m^
emes personnes et
groupes, on dit qu'ils partagent le m^
eme espace. C'est par exemple le cas lorsque vous
utilisez NIS pour distribuer les informations passwd 
a toutes les machines de votre
r
eseau.
Toutefois en certaines occasions ces valeurs ne correspondent pas. Plut^
ot que de mo-
di er la con guration de l'un ou l'autre syst
eme, vous pouvez employer le d
emon
ugidd, qui s'occupera de parer au probl
eme. Gr^
ace 
a l'option map daemon expliqu
ee
plus loin, vous pouvez demander 
a nfsd de faire correspondre les valeurs utilisateur
et groupe du serveur 
a celles du client, 
a condition que ugidd soit en fonctionnement
sur ce dernier.
Il s'agit d'un serveur RPC qui est lanc
e depuis rc.inet2, exactement comme nfsd et
mountd.
if [ -x /usr/sbin/rpc.ugidd ]; then
/usr/sbin/rpc.ugidd; echo -n  ugidd
fi
11.4 Le chier exports
Pour chaque client, le serveur d
etermine le type d'acc
es autoris
e. Cet acc
es est sp
eci 
e
dans le chier /etc/exports, qui liste les r
epertoires partag
es.
Par d
efaut, mountd interdira 
a tout le monde de monter des r
epertoires de l'h^
ote local,
ce qui est une attitude plut^
ot sens
ee. Pour autoriser un ou plusieurs h^
otes 
a monter
11.4. Le chier exports 165
un r
epertoire par NFS, ce r
epertoire doit ^
etre export
e, c'est-
a-dire indiqu
e dans le
chier exports. En voici un exemple:
# Fichier exports de kro.bibine.com
/home trappiste(rw) gueuze(rw) leffe(rw)
/usr/X11R6 trappiste(ro) gueuze(ro) leffe(ro)
/usr/TeX trappiste(ro) gueuze(ro) leffe(ro)
/ trappiste(rw,no_root_squash)
/home/ftp (ro)
Chaque ligne d
e nit un r
epertoire et les h^
otes autoris
es 
a le monter. Les noms de
machines sont en g
en
eral pleinement quali 
es, mais peuvent 
egalement contenir les
caract
eres g
en
eriques * et?, qui ont la m^
eme signi cation que dans le shell Bourne.
Par exemple, lab*.foo.com correspondra aussi bien 
a lab01.toto.com qu'
a la-
beur.toto.com. Si aucun nom de machine n'est pr
ecis
e, comme pour le r
epertoire
/home/ftp dans l'exemple ci-dessus, n'importe quel h^
ote pourra monter ce volume.
Lorsqu'il v
eri e les permissions pour un client donn
e, mountd recherchera son nom
par l'appel gethostbyaddr(2). Avec le DNS, cet appel retournera le nom canonique,
aussi vous devez faire attention 
a ne pas utiliser d'alias dans le chier exports. Sans
DNS, le nom retourn
e est le premier trouv
e dans le chier hosts, qui correspond 
a
l'adresse du client.
Le nom de machine est suivi par une liste facultative de drapeaux, s
epar
es par des
virgules, entre parenth
eses. Ils peuvent prendre les valeurs suivantes:
insecure Autorise des acc
es non authenti 
es.
unix-rpc Demande l'authenti cation RPC. Cela n
ecessite simplement que la
requ^
ete provienne d'un port r
eserv
e (un port dont le num
ero est
inf
erieur 
a 1024). C'est l'option par d
efaut.
secure-rpc Demande l'authenti cation RPC s
ecuris
ee. Ce n'est pas encore im-
pl
ement
e; consultez la documentation de Sun pour plus de d
etails.
kerberos Demande l'authenti cation Kerberos. Cette option n'est pas encore
impl
ement
ee; consultez la documentation du MIT pour plus de d
e-
tails sur le syst
eme Kerberos.
root squash Il s'agit d'une s
ecurit
e interdisant aux superutilisateurs des machines
sp
eci 
ees tout acc
es sp
ecial, en transformant les requ^
etes de l'utili-
sateur 0 sur le client en utilisateur 65534 (-2) sur le serveur, qui
correspond en principe 
a l'utilisateur nobody.
no root squash Ne change rien pour les requ^
etes de superutilisateurs. C'est l'option
par d
efaut.
ro Monte la hi
erarchie de chiers en lecture seule. C'est l'option par
d
efaut.
166 Chapitre 11. NFS, le syst
eme de chiers par r
eseau
rw Monte la hi
erarchie de chiers en lecture et 
ecriture.
link relative Convertit les liens symboliques absolus (dont le contenu commence
par un slash) en liens relatifs en ajoutant ../ autant de fois que n
e-
cessaire pour aller du r
epertoire contenant le lien 
a la racine sur le
serveur. Cette option n'a de sens que lorsque la totalit
e d'un syst
eme
de chiers d'un h^
ote est mont
e; autrement certains liens peuvent
pointer nulle part, ou pis, vers des chiers vers lesquels ils n'auraient
jamais d^
u pointer. Cette option est en service par d
efaut.
link absolute Laisse tous les liens symboliques inchang
es (le comportement normal
des serveurs NFS fournis par Sun).
map identity Cette option indique au serveur de consid
erer que le client utilise
les m^
emes identi cateurs d'utilisateurs et de groupes que le serveur.
Cette opion est en service par d
efaut.
map daemon Indique que les clients et le serveur n'ont pas les m^
emes valeurs
d'identi cation utilisateurs et groupes. Le d
emon nfsd construira
alors une liste de correspondance entre les deux machines en interro-
geant le d
emon ugidd du client.
Une erreur de syntaxe dans le chier exports sera rapport
ee via la (
( facilit
e )
) daemon
de syslogd, au niveau notice, chaque fois que nfsd ou mountd sont lanc
es.
Notez que les noms de machines correspondant aux adresses IP des clients sont ob-
tenus par recherche inverse, aussi le resolver doit ^
etre con gur
e proprement. Si vous
employez BIND et ^
etes tr
es concern
es par la s
ecurit
e, vous devez employer l'option
nospoof dans votre chier host.conf.
11.5 Montage automatique: l'automonteur
Il n'est quelquefois pas raisonnable de monter tous les volumes NFS dont les utili-
sateurs pourraient avoir besoin, soit en raison de leur grand nombre, soit parce que
cela prendrait trop de temps au d
emarrage du syst
eme. On peut alors employer un
automonteur. Il s'agit d'un d
emon qui monte automatiquement, et de fa
con trans-
parente, tout volume NFS lorsque c'est n
ecessaire, et le d
emonte lorsqu'il n'a pas

et
e utilis
e pendant un certain temps. L'une des possibilit
es les plus int
eressantes d'un
automonteur, c'est de pouvoir monter un certain volume depuis plusieurs endroits dif-
f
erents. Par exemple, vous pouvez stocker des copies de vos programmes et chiers de
con guration X11 sur deux ou trois h^
otes, et les faire utiliser par les autres machines
via NFS. Avec un automonteur, vous pouvez sp
eci er que les trois sont 
a monter sur
/usr/X11R6; le programme tentera alors de monter n'importe lequel, jusqu'
a ce que
l'un des montages r
eussisse.
11.5. Montage automatique: l'automonteur 167
L'automonteur couramment utilis
e sous Linux s'appelle amd. Il a 
et
e 
ecrit par Jan-
Simon Pendry et port
e sous Linux par Mitch D'Souza. La version actuelle est amd-5.3.
Le fonctionnement de amd d
epassele cadre de ce guide. Pourun bon manuel, consultez
les sources; elles contiennent un chier Texinfo avec des informations tr
es d
etaill
ees.
168 Chapitre 11. NFS, le syst
eme de chiers par r
eseau
169
Chapitre 12
Ma^
triser Taylor UUCP
UUCP fut d
evelopp
e vers la n des ann
ees soixante-dix par Mike Lesk aux labo-
ratoires ATT Bell pour permettre des transmissions sur les lignes t
el
ephoniques
ordinaires. Puisque la plupart des personnes d
esirant avoir le courrier 
electronique et
les News Usenet 
a domicile communiquent par modem, UUCP est rest
e tr
es popu-
laire. Bien qu'il en existe de tr
es nombreuses impl
ementations, sur une grande vari
et
e
d'architectures et de syst
emes d'exploitation, elles sont toutes compatibles entre elles.
Toutefois, comme avec tout logiciel devenu (
( standard )
) au l des ann
ees, il n'y a
aucun UUCP que l'on pourrait appeler (
( Le UUCP )
), la r
ef
erence. Son 
evolution est
permanente depuis que la premi
ere version vit le jour en 1976. Actuellement, il y a
deux types qui di 
erent dans leur support mat
eriel et leur con guration. Plusieurs
impl
ementations existent pour chacun, qui comportent 
egalement des variantes.
L'un s'appelle UUCP Version 2, et remonte 
a l'impl
ementation de Mike Lesk, David
A. Novitz et Greg Chesson en 1977. Bien que tr
es ancienne, cette version est en-
core souvent utilis
ee. Ses impl
ementations r
ecentes o rent beaucoup du confort des
nouvelles sp
eci cations de UUCP.
Le second fut d
evelopp
e en 1983 et on le nomme couramment BNU (Basic Networking
Utilities), ou HoneyDanBer UUCP que l'on abr
ege en HDB. Ce nom est d
eriv
e de
celui des auteurs, P. Honeyman, D. A. Novitz et B. E. Redman. HDB a 
et
e con
cu
pour parer 
a quelques d
e ciences de UUCP Version 2. Par exemple, de nouveaux
protocoles de transfert ont 
et
e rajout
es, et le r
epertoire de spoule est divis
e pour que
chaque site avec lequel il y a du tra c UUCP poss
ede son propre sous-r
epertoire.
L'impl
ementation de UUCP qui est actuellement distribu
ee avec Linux est Taylor
UUCP 1.051, c'est celle dont nous allons traiter dans ce chapitre. Taylor UUCP
version 1.05 est apparu en mai 1994. En plus des chiers de con guration traditionnels,
il peut aussi ^
etre compil
e pour utiliser un nouveau style, la (
( con guration Taylor )
).
1: 
Ecrit par Ian Taylor, Copyright c 1993-1994
170 Chapitre 12. Ma^
triser Taylor UUCP
Si vous ne disposez que de la version pr
ec
edente (1.04), les di 
erences 
etant minimes
vous devriez pouvoir utiliser les renseignements contenus dans ce chapitre pour le
con gurer.
Dans la plupart des distributions de Linux, Taylor UUCP est fourni pr
ecompil
e pour
la compatibilit
e BNU, ou Taylor, ou les deux. La m
ethode Taylor est bien plus exible
et probablement plus facile 
a comprendre que les chiers de con guration BNU parfois
assez obscurs, c'est donc celle-ci que nous allons d
ecrire dans ce guide.
Le but de ce chapitre n'est pas de vous donner une description exhaustive de tout ce
que peut faire UUCP, mais plut^
ot de vous apporter de bonnes bases pour l'installation
d'un site UUCP qui fonctionne. La premi
ere section est une petite introduction sur la
mani
ere dont UUCP impl
emente le transfert de chiers et l'ex
ecution de commandes

a distance. Si tout cela n'est pas nouveau pour vous, vous pouvez aller directement 
a
la section (
( Fichiers de con guration )
), qui d
etaille les di 
erents chiers utilis
es pour
la con guration de UUCP.
Nous consid
ererons toutefois que vous connaissez les programmes utilisateurs mis en
jeu dans UUCP. Ce sont principalement uucp et uux; vous en trouverez la description
dans le manuel en ligne.

A c^
ot
e de ces deux commandes accessibles 
a tout le monde, UUCP en contient beau-
coup d'autres qui ne sont destin
ees qu'aux t^
aches administratives. Elles servent 
a
suivre le tra c UUCP, supprimer les vieux chiers de trace, ou calculer des statis-
tiques. Aucun de ces programmes ne sera d
ecrit ici car ils ne concernent pas direc-
tement le fonctionnement de UUCP. De plus, ils sont tr
es bien document
es et tr
es
simples 
a utiliser. Il y a n
eanmoins une troisi
eme cat
egorie de programmes, compre-
nant le cur de UUCP: uucico (o
u cico signi e copy-in copy-out, le programme de
communications), et uuxqt, qui ex
ecute les commandes re
cues des syst
emes distants.
Ils feront l'objet de ce chapitre.
Ceux qui ne trouveront pas ici tous les renseignements dont ils ont besoin devront
se reporter 
a la documentation fournie avec Taylor UUCP. Elle est compos
ee d'un
ensemble de chiers Texinfo qui d
ecrivent la con guration selon le sch
ema Taylor, et
est extr^
emement compl
ete.
Si vous voulez utiliser la con guration BNU (ou m^
eme la Version 2), il existe un excel-
lent livre sur le sujet: Managing UUCP and Usenet ([ManagUUCP]). Vous trouverez

egalement des informations tr
es utiles dans le document Linux UUCP-HOWTO de
Vince Skahan, post
e r
eguli
erement dans comp.os.linux.answers, et disponible en
version fran
caise sur les sites di usant Linux en France.
Usenet comprend 
egalement un forum d
edi
e aux discussions sur UUCP, qui s'ap-
pelle comp.mail.uucp. Si vous avez des questions sp
eci ques 
a Taylor UUCP, c'est
l'endroit id
eal pour les poser, plut^
ot que dans les groupes d
edi
es 
a Linux.
12.1. Transferts UUCP et ex
ecution 
a distance 171
12.1 Transferts UUCP et ex
ecution 
a distance
La notion de job2 est vitale pour la compr
ehension d'UUCP. Chaque transfert de-
mand
e par un utilisateur via uucp ou uux s'appelle un job. Il est constitu
e d'une
commande 
a ex
ecuter sur le syst
eme distant, et un ensemble de chiers 
a transf
erer
entre les deux sites. L'une ou l'autre de ces deux parties peut ^
etre absente.
Comme exemple, consid
erons que vous avez tap
e la commande suivante sur votre
machine, qui demande 
a UUCP de copier le chier netguide.ps sur la machine pablo,
puis ex
ecute la commande lpr a n de l'imprimer:
$ uux -r pablo!lpr !netguide.ps
UUCP n'appelle g
en
eralement pas imm
ediatement le syst
eme distant pour ex
ecuter
un job (sinon vous pourriez tr
es bien utiliser kermit). Il stocke la description du travail

a e ectuer, ce qui s'appelle spouler. Le r
epertoire dans lequel ces jobs sont temporai-
rement stock
es s'appelle par cons
equent le r
epertoire de spoule, et est g
en
eralement
/var/spool/uucp. Dans notre exemple, la description de job contiendrait des infor-
mations concernant la commande 
a e ectuer (lpr), l'utilisateur ayant demand
e cette
ex
ecution, et quelques autres renseignements. En plus de cela, UUCP doit stocker le
chier d'entr
ee, netguide.ps.
Le nom et l'emplacement exact de ces chiers spoul
es peuvent varier, en fonction des
options de compilation. En mode compatible HDB, UUCP les met en g
en
eral dans un
sous-r
epertoire de /var/spool/uucp du nom du site distant. En mode Taylor, il cr
eera
des sous-r
epertoires sous le r
epertoire de spoule sp
eci que au site pour les di 
erents
types de chiers.

A intervalles r
eguliers, UUCP appelle le syst
eme distant. Lorsqu'une connexion est

etablie, il transf
ere les chiers d
ecrits dans le job, plus tout chier d'entr
ee. Les com-
mandes ne seront pas ex
ecut
ees imm
ediatement, mais juste apr
es que la connexion
est termin
ee. C'est le r^
ole de uuxqt, qui prend 
egalement soin de renvoyer tout job
destin
e 
a un autre site.
Pour distinguer les jobs les plus importants des autres, UUCP associe un grade 
a
chacun. Il s'agit d'une simple lettre, allant de 0 
a 9, de A 
a Z et de a 
a z, par ordre
de priorit
e d
ecroissante. Le courrier est g
en
eralement spoul
e avec le grade B ou C,
alors que les News Usenet le sont avec le grade N. Plus le grade est 
elev
e, plus le job
sera transf
er
e avant les autres. Ces grades peuvent ^
etre assign
es par l'option -g lors
de l'appel de uucp ou uux.
Vous pouvez aussi interdire le transfert en dessous d'un certain grade 
a certaines
heures; c'est le grade maximum de spoule autoris
e pendant une communication, dont
la valeur par d
efaut est z. Notez que la terminologie est assez ambigu
e ici: un chier
ne sera transf
er
e que si le grade est 
egal ou sup
erieur 
a cette valeur.
2: Le mot job est mis 
a toutes les sauces en informatique; il serait vain de vouloir en imposer un
autre, plus fran
cais.
172 Chapitre 12. Ma^
triser Taylor UUCP
12.1.1 Fonctionnement interne de uucico
Pour comprendre pourquoi uucico a besoin de conna^
tre certaines choses, une br
eve
}
description de la fa
con dont il se connecte 
a un syst
eme distant sera tr
es utile.
Lorsque vous ex
ecutez uucico -s syst
eme depuis la ligne de commandes, le programme
doit d'abord r
ealiser une connexion physique avec le correspondant. La m
ethode d
e-
pend du type de liaison 
a employer; dans le cas d'une ligne t
el
ephonique par exemple,
il doit trouver un modem, et le faire num
eroter. Sur TCP, il doit appeler gethostby-
name(3) pour convertir le nom en adresse IP, trouver quel port ouvrir, et lier cette
adresse 
a la socket correspondante.
Une fois la connexion 
etablie, il faut mettre en uvre une proc
edure d'autorisation
d'acc
es. Elle est g
en
eralement constitu
ee du classique couple login/mot de passe, et
r
ealis
ee par les programmes habituels getty/login, ou bien lorsqu'il s'agit de sockets
TCP, par uucico lui-m^
eme. Si l'autorisation d'entr
ee est accord
ee, la machine appel
ee
lance alors uucico. Sur la machine qui est appelante, le programme uucico est appel
e
ma^
tre, et celui de la machine appel
ee se nomme esclave.
Ensuite, vient le handshake (poign
ee de main; ce qui est assez r
ealiste puisque les
deux programmes se pr
esentent l'un 
a l'autre): le ma^
tre annonce son nom ainsi que
certaines autres informations, l'esclave v
eri e les permissions qui lui sont accord
ees.
Puis, si ce test est valid
e, prend place la v
eri cation d'un num
ero de s
equence d'ap-
pel. Cette proc
edure facultative permet de maintenir sur chaque site, un compte des
connexions r
eussies, ces comptes sont alors compar
es. S'ils ne correspondent pas, la
connexion est refus
ee; ce qui permet d'
eliminer les imposteurs.
En n, les deux uucico tentent de se mettre d'accord sur un protocole de transfert,
parmi ceux qu'ils ont en commun. C'est lui qui va d
eterminer la fa
con de transf
erer
les donn
ees, tester les erreurs, g
erer les retransmissions en cas de probl
eme, etc. Il
est n
ecessaire de disposer de plusieurs protocoles en raison des di 
erents types de
connexions possibles. Par exemple, les lignes de t
el
ephones n
ecessitent un protocole
tr
es (
( s^
ur )
), car ce sont des liaisons de qualit
e souvent m
ediocre; alors que les trans-
missions par TCP sont par essence ables et peuvent faire appel 
a un protocole moins
regardant, et plus ecace.
Apr
es ce premier dialogue, la transmission peut commencer. Chaque c^
ot
e met en
route le pilote du protocole choisi, qui peut 
eventuellement e ectuer une s
equence
d'initialisation sp
eci que suppl
ementaire.
Le ma^
tre envoie tous les chiers destin
es au syst
eme esclave en attente dans la queue,
et dont le grade est susant. Lorsqu'il a termin
e, il informe l'esclave qu'il a ni son
travail et que la communication peut ^
etre coup
ee. 
A ce moment, les r^
oles s'inversent: le
ma^
tre devient esclave, et r
eciproquement. Le nouveau ma^
tre envoie alors ses chiers,
puis nalement les deux uucico s'
echangent des messages indiquant la n des jobs et
ferment la connexion.
Nous n'entrerons pas plus dans le d
etail dans ce guide: consultez soit les sources,
soit tout bon ouvrage traitant du sujet. Vous trouverez aussi un document post
e
12.2. Fichiers de con guration 173
r
eguli
erement dans comp.mail.uucpsous le nom de uucp internals, d
ecrivant chaque
protocole support
e par Taylor UUCP.
12.1.2 La ligne de commandes de uucico
Cette section d
ecrit les options les plus importantes support
ees par le programme
uucico. Sa page de manuel contient la liste compl
ete, consultez-la si besoin est.
-s syst
eme Appelle syst
eme, sauf en cas de restriction horaire.
-S syst
eme Appel forc
e de syst
eme, quelles que soient les conditions.
-r1 Lance uucico en mode ma^
tre. C'est le mode par d
efaut avec les
options -s et -S. Utilis
ee seule, cette option provoque l'appel tour 
a
tour de tous les syst
emes connus, sauf en cas de restriction.
-r0 Lance uucico en mode esclave. C'est le mode par d
efaut lorsque au-
cune option -s ou -S n'est donn
ee. Dans ce mode, soit l'entr
ee et la
sortie standard sont consid
er
ees comme 
etant connect
ees 
a un port
s
erie, soit le port TCP doit ^
etre pr
ecis
e par l'option -p.
-x type, -X type
Met en route les traces de d
eboguage du type sp
eci 
e. Plusieurs types
peuvent ^
etre donn
es sous forme de liste s
epar
ee par des virgules.
Les types suivants sont valides: abnormal, chat, handshake, uucp-
proto, proto, port, con g, spooldir, execute, incoming et outgoing. Le
mot cl
e all les valide tous. Pour rester compatible avec les autres
impl
ementations de UUCP, on peut aussi sp
eci er un nombre, ce qui
valide alors le d
eboguage pour les n premiers items de cette liste.
Ces traces sont enregistr
ees dans le chier Debug, situ
e dans le r
e-
pertoire /var/spool/uucp.
12.2 Fichiers de con guration

A la di 
erence des protocoles de transfert ordinaires, UUCP est destin
e 
a fonction-
ner enti
erement automatiquement. Une fois qu'il est con gur
e, il ne n
ecessite pas
d'intervention quotidienne de l'administrateur syst
eme. Les informations n
ecessaires
pour ces transferts automatiques tiennent dans deux ou trois chiers de con guration
r
esidant dans le r
epertoire /usr/lib/uucp, utilis
es surtout lors d'appels sortants.
174 Chapitre 12. Ma^
triser Taylor UUCP
12.2.1 Petite introduction 
a Taylor UUCP
Dire que la con guration de UUCP est dicile est un euph
emisme. C'est r
eellement
un sujet tou u, et le format souvent complexe et peu lisible des chiers de con gura-
tion ne facilite pas les choses (bien que le format Taylor soit presque facile 
a lire en
comparaison de ceux de HDB et Version 2).
Pour vous donner une id
ee de la mani
ere dont tous ces chiers interagissent, nous vous
pr
esenterons les plus importants et donnerons des exemples pratiques. Nous n'allons
pas entrer dans le d
etail tout de suite; ce sera le r^
ole de chaque section de ce chapitre.
Si vous d
esirez con gurer UUCP sur votre machine, la meilleure solution sera de partir
des exemples et de les adapter graduellement. Vous pouvez choisir soit ceux qui vont
suivre, soit ceux fournis avec votre distribution de Linux.
Tous les chiers d
ecrits ici r
esident dans /usr/lib/uucp ou un sous-r
epertoire.Quelques
distributions contiennent des binaires supportant 
a la fois les con gurations HDB et
Taylor, et utilisent di 
erents sous-r
epertoires pour chacune; il y aura en principe un
chier README dans /usr/lib/uucp.
Pour que UUCP fonctionne correctement, ces chiers doivent appartenir 
a l'utilisateur
uucp. Certains contenant des mots de passe et des num
eros de t
el
ephone, ils doivent
avoir une permission d'acc
es de 6003.
Le chier de con guration central s'appelle /usr/lib/uucp/con g, et d
etermine les
param
etres g
en
eraux. Le plus important d'entre eux (et pour l'instant, le seul) est le
nom de votre site UUCP. 
A (
( La bi
ere virtuelle)
), leur passerelle UUCP est la machine
gueuze:
# /usr/lib/uucp/config - Fichier principal de configuration UUCP
hostname gueuze
Le suivant est le chier sys. Il contient toutes les informations sp
eci ques aux sites
auxquels vous ^
etes reli
es par UUCP. Cela comprend le nom des machines et des infor-
mations sur le lien lui-m^
eme, comme le num
ero de t
el
ephone, par exemple. Une entr
ee
typique pour un site connect
e par modem que nous appellerons pablo ressemblerait

a ceci:
# /usr/lib/uucp/sys - liste des voisins UUCP
# syst
eme: pablo
system pablo
time Any
phone 123-456
port serial1
speed 38400
chat ogin: gueuze ssword: lorca
3: Bien que la plupart des commandes UUCP doivent ^
etre setuid uucp, vous devez faire tr
es
attention 
a ce que le programme uuchk ne le soit pas. Sinon, tous les utilisateurs auraient acc
es aux
mots de passe m^
eme si les chiers ont un mode de 600.
12.2. Fichiers de con guration 175
Le mot cl
e port d
esigne le port 
a utiliser, et time les heures auxquelles il peut ^
etre
appel
e. La ligne chat d
ecrit le script de dialogue n
ecessaire pour permettre 
a uucico
d'entrer dans le syst
eme pablo; nous reviendrons sur ces scripts un peu plus loin. La
ligne port indique simplement le nom d'une entr
ee dans le chier port. Vous pouvez y
mettre le nom qui vous pla^
t, tant que cette entr
ee existe.
Ce chier port contient les informations sp
eci ques 
a la liaison. Pour les modems, il
d
ecrit le chier de p
eriph
erique 
a utiliser, la gamme des vitesses support
ees, et le type
de num
eroteur connect
e. L'entr
ee ci-dessous d
ecrit /dev/cua1 (COM 2), sur lequel est
connect
e un modem NakWell capable de supporter la vitesse de 38400 bps. Le nom
du port est choisi de mani
ere 
a correspondre 
a celui indiqu
e dans le chier sys.
# /usr/lib/uucp/port - ports UUCP
# /dev/cua1 (COM2)
port serial1
type modem
device /dev/cua1
speed 38400
dialer nakwell
Les informations relatives au syst
eme num
eroteur se trouvent dans un troisi
eme -
chier, dial. Pour chaque type, il contient la s
equence de commandes n
ecessaires pour
appeler un site, avec un num
ero de t
el
ephone donn
e. L
a encore, il s'agit d'un script
de dialogue. Par exemple, l'entr
ee pour le num
eroteur NakWell pourrait ^
etre celle-ci:
# /usr/lib/uucp/dial - num
eroteurs
# Modems NakWell
dialer nakwell
chat  ATZ OK ATDTT CONNECT
La ligne commen
cant par chat indique la s
equencede commandes 
a envoyerau modem,
avec les r
eponses 
a attendre, pour l'initialiser et le faire t
el
ephoner. Le programme
uucico remplacera la s
equence T par le num
ero de t
el
ephone.
Pour vous donner une id
ee de la mani
ere dont uucico traite ces chiers de con gura-
tion, consid
erons que vous avez tap
e la commande:
$ uucico -s pablo
La premi
ere chose que fait uucico est de chercher pablo dans le chier sys. Il voit
alors dans l'entr
ee correspondante qu'il doit utiliser le port serial1 pour 
etablir la
connexion. Le chier port lui indique qu'il s'agit d'un port sur lequel est connect
e un
modem NakWell.
Alors, uucico cherche dans le chier dial une entr
ee d
ecrivant ce modem NakWell, et
lorsqu'il l'a trouv
ee, ouvre le port s
erie /dev/cua1 et ex
ecute le dialogue de num
ero-
tation: ici, il envoie ATZ, attend la r
eponse OK, etc. Lorsqu'il rencontre la cha^
ne T,
il lui substitue le num
ero de t
el
ephone (123{456) extrait du chier sys.
176 Chapitre 12. Ma^
triser Taylor UUCP
system
port
speed
...
pablo
38400
serial1
dialer
chat
chat-fail
...
nakwell
 ATZ ..
BUSY
port
type
speed
device
dialer
...
serial1
modem
38400
/dev/cua1
nakwell
Le chier sys
Le chier port
Le chier dial
Fig. 12.1 - Interaction des chiers de con guration de Taylor UUCP.
12.2. Fichiers de con guration 177
Apr
es que le modem a retourn
e CONNECT,la connexion est
etablie et le dialogue modem
est termin
e; uucico retourne alors au chier sys et ex
ecute le dialogue d'entr
ee dans
le syst
eme. Dans notre exemple, il attendra l'invite login: puis enverra son nom
d'utilisateur (neruda), attendra password: et r
epondra par le mot de passe, lorca.
Ensuite, la machine appel
ee lancerason propreuucico. Les deux programmesentreront
dans la phase de handshake d
ecrite dans la section pr
ec
edente.
La gure 12.1 symbolise les d
ependances entre les divers chiers de con guration.
12.2.2 Informations 
a poss
eder au pr
ealable
Avant de commencer 
a r
ediger votre con guration, vous devez rassembler certaines
informations qui vont ^
etre n
ecessaires 
a UUCP.
Tout d'abord, vous devrez d
eterminer sur quel port s
erie votre modem est connect
e.
G
en
eralement, les ports que MS-DOS nomme COM1 
a COM4 correspondent sous
Linux aux p
eriph
eriques /dev/cua0 
a /dev/cua3. Beaucoup de distributions cr
eent
un lien nomm
e /dev/modem vers le p
eriph
erique appropri
e, et con gurent certains
programmes de communication (kermit, minicom, seyon, etc.) pour qu'ils utilisent ce
port. Dans ce cas, vous devrez aussi utiliser /dev/modem pour UUCP.
La raison de ce lien, outre la facilit
e de m
emorisation du nom, est que les programmes
e ectuant des appels sortants utilisent parfois des chiers de verrouillage pour signa-
ler l'occupation d'un port s
erie. Les noms de ces chiers sont la concat
enation de la
cha^
ne LCK.. et du nom du p
eriph
erique, par exemple LCK..cua1. Si les programmes
utilisaient des noms di 
erents pour acc
eder aux m^
emes p
eriph
eriques, ils ne reconna^
-
traient pas les chiers de verrouillage des autres applications et le r
esultat serait tr
es
hasardeux. Lorsque l'on programme les appels UUCP par une entr
ee crontab, il faut
absolument que cette convention soit respect
ee.
Pour plus de d
etails sur la con guration des ports s
erie, consultez le chapitre 4.
Ensuite, vous devrez d
eterminer 
a quelle vitesse votre modem et Linux communi-
queront. Il faudra utiliser la vitesse de transfert e ective maximale que vous esp
erez
atteindre. Cette vitesse peut ^
etre largement sup
erieure 
a celle 
a laquelle la connexion
se fait: par exemple, beaucoup de modems envoient et recoivent des donn
ees 
a 2400
bps, mais avec les protocoles de compression comme V.42bis, la vitesse de transfert
peut atteindre 9600 bps. La documentation fournie avec votre appareil vous rensei-
gnera mieux sur ce sujet.
Bien entendu, il vous faudra vous procurer les num
eros de t
el
ephone des syst
emes

a appeler. Vous aurez 
egalement besoin de l'identit
e et de l'
eventuel mot de passe 
a
utiliser pour entrer dans ces machines4.
4: Si vous comptez juste essayer UUCP 
a titre exp
erimental, procurez-vous le num
ero de t
el
ephone
d'un site archive pr
es de chez vous. Notez le login et le mot de passe; ils sont publics pour que tout
le monde puisse faire des t
el
echargements anonymement. Dans la plupart des cas, ce sont des noms
du genre uucp/uucp ou nuucp/uucp.
178 Chapitre 12. Ma^
triser Taylor UUCP
Il vous faudra aussi savoir exactement comment entrer sur le syst
eme convoit
e. Devez-
vous presser la touche BREAK avant que l'invite n'apparaisse? Est-ce qu'il ache
login: ou bien user: ? Ces renseignements sont indispensables pour r
ediger le script
de dialogue. Si vous ne savez pas, ou si le script que vous utilisez habituellement
ailleurs ne marchepas, appelez le site avecun programmede terminal ordinaire comme
kermit ou minicom et notez exactement ce que vous devez taper.
12.2.3 Le nom du site
Tout comme avec le r
eseau TCP/IP, votre machine doit avoir un nom pour UUCP.
Tant que vous ne faites que des transferts avec des sites que vous appelez directe-
ment, ou sur un r
eseau local, ce nom n'a pas besoin de correspondre 
a un quelconque
standard5.
Toutefois, si vous devez utiliser UUCP pour du courrier 
electronique ou les News Use-
net, vous devez absolument utiliser un nom valide, par exemple en vous enregistrant
dans les cartes UUCP. Le projet de cartes UUCP est d
ecrit dans le chapitre 13.
Beaucoup choisissent de prendre la premi
ere composante de leur nom pleinement
quali 
e comme nom UUCP. Supposons que l'adresse de votre machine soit mai-
son.ici.com; votre nom UUCP serait alors maison. C'est un peu comme si les sites
UUCP se connaissaient entre eux par leur pr
enom. Bien s^
ur, vous pouvez choisir un
nom totalement di 
erent de votre nom pleinement quali 
e, c'est un choix.
N
eanmoins, assurez-vous de ne jamais utiliser ce nom qui n'est pas quali 
e dans les
adresses de courrier 
electronique, sauf s'il est enregistr
e dans les cartes UUCP comme
nom ociel6. Au mieux, un courrier exp
edi
e 
a un site UUCP non enregistr
e partira
aux oubliettes. Si vous utilisez un nom d
ej
a existant, le courrier sera rout
e 
a ce site
et causera des maux de t^
ete sans n 
a son administrateur.
Par d
efaut, UUCP utilise le nom positionn
e par hostname comme nom de site UUCP.
Il est en g
en
eralinitialis
e dans le script /etc/rc.local. Si le nom choisi doit^
etredi 
erent,
vous devrez utiliser l'option hostname du chier de con guration pour indiquer ce cas

a uucico; nous allons voir 
ca bient^
ot.
5: La seule limitation est qu'il ne doit pas d
epasser sept caract
eres, a n de ne pas g^
ener certaines
impl
ementations fonctionnant sur des syst
emes d'exploitation imposant de telles limites. Les noms
plus longs sont souvent tronqu
es par UUCP. Quelques versions les limitent m^
eme 
a six caract
eres!
6: Le projet de cartes UUCP enregistre tous les noms d'h^
otes UUCP du monde entier et s'assure
qu'ils sont bien tous uniques. En ce qui concerne la France, ce projet est abandonn
e depuis 1994
et il en va de m^
eme dans de plus en plus de pays; le seul moyen d'obtenir une adresse valide est
maintenant de passer par un domaine g
er
e par le DNS.
12.2. Fichiers de con guration 179
12.2.4 Fichiers de con guration Taylor
Revenons 
a notre con guration. Taylor UUCP obtient ses informations depuis les
chiers suivants:
con g Il s'agit du chier de con guration principal. Vous pouvez y d
e nir
votre nom de site UUCP.
sys Ce chier d
ecrit tous les sites connus de vous. Pour chacun, il sp
eci e
son nom, 
a quelles heures il est possible de l'appeler, quel num
ero
de t
el
ephone composer (si n
ecessaire), quel p
eriph
erique utiliser, et
comment se connecter.
port Contient les entr
ees d
ecrivant chaque port disponible, avec la vitesse
support
ee et le num
eroteur 
a utiliser.
dial D
ecrit les num
eroteurs employ
es pour 
etablir une communication
t
el
ephonique.
dialcode Contient les expansions pour les codes de num
erotation symboliques.
call Contient le nom d'utilisateur et le mot de passe 
a employer pour se
connecter 
a un syst
eme. Rarement utilis
e.
passwd Contient les noms et mots de passe que les syst
emes doivent prendre
pour se connecter chez vous. Ce chier n'est utilis
e que lorsque uucico
s'occupe lui-m^
eme de cette op
eration.
Ces chiers de con guration sont principalement compos
es de lignes contenant des
paires de mots cl
es/valeurs. Un signe di
ese introduit un commentaire qui s'
etend
jusqu'
a la n de la ligne. Pour utiliser ce caract
ereautrement que comme commentaire,
il faut l'
echapper par un backslash, c'est-
a-dire le coder comme ceci: #
Vous pouvez encore ajuster un bon nombre d'options gr^
ace 
a ces chiers. Nous ne
d
etaillerons pas tous les param
etres possibles, mais uniquement les plus importants;
vous devriez ensuite ^
etre capable de faire fonctionner une liaison UUCP par modem.
Quelques sections suppl
ementaires d
ecriront les modi cations 
a e ectuer pour utiliser
UUCP sur r
eseau TCP/IP ou par une ligne s
erie directe. Les documents Texinfo qui
accompagnent le code source de Taylor UUCP d
ecrivent tout cela en d
etail.
Votre con guration termin
ee, vous pouvez la tester 
a l'aide de l'utilitaire uuchk (situ
e
dans /usr/lib/uucp). Il lit les chiers que vous avez r
edig
e avec soin et ache un
rapport d
etaill
e des valeurs qui seront utilis
ees pour chaque syst
eme.
180 Chapitre 12. Ma^
triser Taylor UUCP
12.2.5 Options de con guration g
en
erale | le chier con g
Vous n'aurez en principe jamais besoin de ce chier pour autre chose que votre nom
UUCP. Par d
efaut, UUCP prend le nom que vous positionnez par la commande host-
name, mais il est possible de le pr
eciser ici (s'il doit ^
etre di 
erent, par exemple). Voici
un exemple de chier con g:
# /usr/lib/uucp/config - Fichier de configuration principal
hostname gueuze
Il est possible de positionner un certain nombre de param
etres divers dans ce chier,
comme le nom du r
epertoire de spoule, ou les droits d'acc
es pour l'entr
ee UUCP
anonyme. Ce dernier cas sera trait
e dans une section ult
erieure.
12.2.6 Informations sur les sites UUCP voisins | le chier
sys
Le chier sys d
ecrit les machines qui sont connues de vous. Une entr
ee est introduite
par le mot cl
e system; les lignes suivantes, jusqu'
a la prochaine directive system,
d
etaillent les param
etres sp
eci ques 
a ce site. En g
en
eral, une telle entr
ee d
e nit le
num
ero de t
el
ephone et le script de dialogue.
Les param
etres pr
ec
edant la toute premi
ere ligne system initialisent des valeurs par
d
efaut utilis
ees pour tous les sites. Vous y mettrez en g
en
eral les param
etres par
d
efaut des protocoles, s'il y a lieu.
Nous allons maintenant voir en d
etail les champs les plus importants de ce chier sys.
Syst
eme distant
Le mot cl
e system d
esigne le syst
eme distant. Vous devez sp
eci er le nom correct, et
non pas un alias de votre imagination, car uucico le v
eri era par rapport 
a ce que
cette machine lui indiquera lorsque vous serez connect
e7.
Chaque nom de syst
eme ne doit appara^
tre qu'une fois. Si vous d
esirez plusieurs con -
gurations pour une m^
eme machine (plusieurs num
eros de t
el
ephone, par exemple),
vous pouvez employer le mot cl
e alternate, d
ecrit plus loin.
Num
ero de t
el
ephone
Si le syst
eme distant doit ^
etre atteint par une ligne t
el
ephonique, le champ phone
indique le num
ero que le modem doit appeler. Il peut contenir plusieurs codes sym-
boliques qui seront interpr
et
es par la proc
edure de num
erotation de uucico; un signe
7: Les anciennes versions de UUCP Version 2 n'annoncent pas leur nom lorsqu'elles sont appel
ees;
n
eanmoins les impl
ementations r
ecentes le font, ainsi que Taylor UUCP.
12.2. Fichiers de con guration 181
d'
egalit
e (=) signi e d'attendre une seconde tonalit
e, et un tiret (-) g
en
ere une pause
d'une seconde. Par exemple, certaines installations t
el
ephoniques n
ecessitent une at-
tente entre certains pr
e xes de num
erotation sp
eciaux et le num
ero 
a appeler8.
Toute cha^
ne alphab
etique peut ^
etre utilis
ee pour cacher des informations d
ependantes
du site, comme des pr
e xes d'appel. Ces cha^
nes seront remplac
ees par le num
ero
indiqu
e dans le chier dialcode. Supposons que vous avez un chier dialcode comme
celui-ci:
# /usr/lib/uucp/dialcode - dialcode translation
Sirius 024881
Pluton 035119
Avec ces translations, vous pouvez utiliser un num
ero de t
el
ephone comme Pluton4722
dans le chier sys, ce qui rend les choses un peu plus lisibles.
Port et vitesse
Les options port et speed servent respectivement 
a s
electionnerle p
eriph
erique
a utiliser
pour l'appel et la vitesse maximale 
a laquelle il doit ^
etre initialis
e. Une entr
ee system
peut utiliser soit l'une, soit l'autre, ou les deux options ensemble. Lors de la recherche
d'un p
eriph
erique dans le chier port, seuls ceux qui ont un nom correspondant et/ou
une vitesse sont s
electionn
es.
G
en
eralement, l'option speed est susante. Si vous n'avez qu'un port s
erie d
e ni
dans port, uucico prendra toujours celui-l
a de toute fa
con; il sut donc d'indiquer 
a
quelle vitesse l'utiliser. Si vous avez plusieurs modems, il n'est pas non plus n
ecessaire
d'indiquer un port particulier: si uucico trouve plusieurs possibilit
es, il essaiera tour

a tour chaque p
eriph
erique jusqu'
a ce qu'il en trouve un qui soit libre.
Le script de dialogue
Nous avons d
ej
a rencontr
e ce script de dialogue, qui indique 
a uucico comment entrer
sur le syst
eme distant. Il consiste en une liste de cha^
nes de caract
eres attendues
et envoy
ees par le processus uucico local. Les cha^
nes 
a attendre et 
a envoyer sont
ins
er
ees alternativement, et uucico rajoute automatiquement un retour-chariot (r) 
a
la n de chaque envoi. Ainsi, un script de dialogue simple pourrait ressembler 
a ceci:
ogin: gueuze ssword: grqt22
Vous noterez que les cha^
nes 
a attendre ne sont pas indiqu
ees enti
erement. Cela permet
de s'assurer que, par exemple, Login: sera 
equivalent 
a login:, au cas o
u.
8: La plupart des installations t
el
ephoniques priv
ees n
ecessitent que vous composiez le num
ero
0 ou 9 pour obtenir l'ext
erieur. On nous a indiqu
e que cela s'appelait un code d'acc
es secret. Sans
rire...
182 Chapitre 12. Ma^
triser Taylor UUCP
Il est aussi possible d'obtenir une sorte d'ex
ecution conditionnelle avec uucico, dans le
cas o
u le getty de la machine distante a besoin d'^
etre recycl
e ou r
einitialis
e avant qu'il
n'ache une invite. Pour cela, vous pouvez attacher un script secondaire 
a une cha^
ne
d'attente, constitu
e de tirets. Ce script secondairen'est ex
ecut
eque si l'attente
echoue.
Une utilisation possible consiste 
a envoyerun BREAK si le site distant n'ache aucune
invite de login. L'exemple qui suit propose un script de dialogue g
en
eral, qui devrait
aussi fonctionner s'il faut envoyer un retour-chariot pour r
eveiller un peu la machine
appel
ee. Le premier argument vide  indique qu'il ne faut rien attendre et envoyer
directement la prochaine cha^
ne de caract
eres.
 nrdrnc ogin:-BREAK-ogin: gueuze ssword: grqt22
Certaines s
equences sp
eciales peuvent appara^
tre dans le script de dialogue. La liste
qui suit est un extrait des caract
eres valides dans les cha^
nes d'attente:
 La cha^
ne vide. Elle indique 
a uucico de ne rien attendre, et de conti-
nuer avec la prochaine cha^
ne 
a envoyer.
t Le caract
ere de tabulation.
r Le caract
ere retour-chariot.
s Le caract
ere espace. Vous en aurez besoin pour ins
erer des espaces
dans une cha^
ne de dialogue.
n Le caract
ere de saut de ligne.
 Le caract
ere backslash ().
Sur les cha^
nes 
a envoyer, les s
equences d'
echappement suivantes sont valides, en plus
des pr
ec
edentes:
EOT Caract
ere de n de transmission (^D).
BREAK (
( Caract
ere )
) Break.
c Suppression du rajout automatiquedu retour-charioten n de cha^
ne.
d Pause d'une seconde.
E Valide le test d'
echo. Dans ce mode, uucico attend que l'
echo de tout
ce qu'il 
ecrit lui revienne avant de continuer le dialogue. C'est surtout
utile pour les dialogues avec les modems (que nous rencontreronsplus
loin). Par d
efaut, ce mode est hors service.
e Supprime le test d'
echo.
12.2. Fichiers de con guration 183
K Identique 
a BREAK.
p Pause d'une fraction de seconde.
Entr
ees alternatives
Il est parfois n
ecessaire d'avoir plusieurs entr
ees pour un m^
eme syst
eme, par exemple
s'il peut ^
etre joint par plusieurs lignes. Avec Taylor UUCP, vous pouvez r
ealiser cela
en d
e nissant des entr
ees alternatives, par le mot cl
e alternate.
Une entr
ee alternative conserve tous les param
etres de l'entr
ee syst
eme principale et
ne modi e que ceux qui y sont express
ement indiqu
es. Elles sont plac
ees 
a l'int
erieur
d'une entr
ee syst
eme et rep
er
ees par le mot alternate.
Pour utiliser deux num
eros de t
el
ephone pour la machine pablo, il sut de modi er
son entr
ee dans le chier sys de la mani
ere suivante:
system pablo
phone 123-456
... entr
ees comme pr
ec
edemment ...
alternate
phone 123-455
En appelant pablo, uucico t
el
ephonera d'abord au 123-456, et si l'appel 
echoue, il
essaiera l'alternative. Ici, cette entr
ee alternative ne modi e que le num
ero de t
el
e-
phone.
Restriction des horaires d'appel
Taylor UUCP o re plusieurs fa
cons de restreindre les horaires d'appel d'un syst
eme
distant. Ces restrictions peuvent correspondre 
a l'ouverture d'un service, ou aux tarifs
t
el
ephoniques. Notez qu'il est toujours possible de passer outre en utilisant l'option
-S ou -f de uucico.
Par d
efaut, Taylor UUCP interdira les connexions quelle que soit l'heure, il faut donc
absolument indiquer les horaires autoris
es d'une mani
ere ou d'une autre dans le chier
sys. Si vous ne d
esirez aucune restriction, vous pouvez mettre la valeur Any dans la
ligne time.
La fa
con la plus simple de limiter les horaires d'appel est d'employer l'entr
ee time,
suivie d'une cha^
ne constitu
ee d'un jour et d'une heure. Le jour peut combiner les
valeurs Mo, Tu, We, Th, Fr, Sa, Su (lundi, mardi... dimanche) ou bien Any (tous les
jours), Never (jamais), ou Wk (tous les jours de la semaine). L'heure consiste en deux
valeurs sur 24 heures, s
epar
ees par un tiret. La combinaison r
esultante est 
ecrite sans
aucune espace de s
eparation. Plusieurs jours ou horaires peuvent ^
etre indiqu
es en les
s
eparant par des virgules.
184 Chapitre 12. Ma^
triser Taylor UUCP
time MoWe0300-0730,Fr1805-2000
Cet exemple autorise les appels les lundis et mercredis de 3 heures 
a 7 heures 30, et
les vendredis entre 18 heures 05 et 20 heures. Lorsqu'un champ horaire s'
etend apr
es
minuit, par exemple Mo1830-0600, cela signi e lundi, entre minuit et 6 heures du
matin et entre 18 heures 30 et minuit.
Les mots cl
es sp
eciaux Any et Never signi ent respectivement que les appels pourront
avoir lieu 
a toute heure, ou jamais.
La commande time prend un second argument facultatif qui indique un d
elai entre
plusieurs tentatives, en minutes. Lorsqu'un appel 
echoue, uucico n'autorisera aucun
autre appel de cette machine pendant un certain temps. Par exemple, si vous sp
eci ez
un intervalle de 5 minutes, il refusera d'appeler le syst
eme distant pendant 5 minutes
apr
es le dernier appel infructueux. Par d
efaut, ce temps est incr
ement
e chaque fois
qu'un appel 
echoue.
Le mot timegrade permet d'attacher un grade maximal 
a un horaire. Par exemple,
supposons que vous avez une entr
ee comme ceci dans l'entr
ee system:
timegrade N Wk1900-0700,SaSu
timegrade C Any
Elle autorise les jobs ayant un grade de C ou plus (g
en
eralement le courrier est spoul
e
avec le grade B ou C) 
a ^
etre transf
er
es chaque fois qu'une connexion est 
etablie, alors
que les News (qui ont usuellement le grade N) ne seront 
echang
ees que pendant la
nuit et les ns de semaine.
Tout comme time, la commande timegrade peut prendre un intervalle entre les tenta-
tives d'appel comme troisi
eme argument optionnel.
Il y a toutefois un pi
ege ici: tout d'abord, l'option timegrade ne s'applique qu'
a ce
que votre syst
eme envoie; la machine distante peut toujours transf
erer ce qu'elle veut.
Vous pouvez employer l'option call-timegrade pour lui demander de n'envoyer que les
jobs dont le grade est d'un certain niveau; mais il n'y a aucune garantie qu'elle ob
eisse

a cette requ^
ete9.
Il faut savoir aussi que le champ timegrade n'est pas test
e lorsque c'est le syst
eme
distant qui vous appelle, et les jobs en attente seront tous transf
er
es. Mais il peut,
bien s^
ur, demander 
a votre uucico de se limiter 
a un certain grade, s'il sait le faire.
12.2.7 P
eriph
eriques disponibles | le chier port
Le chier port renseigne uucico sur les p
eriph
eriques disponibles. Ce peut ^
etre des
ports modem, aussi bien que d'autres types comme des lignes s
erie directes ou des
sockets TCP.
9: Si le syst
eme distant utilise Taylor UUCP, il ob
eira.
12.2. Fichiers de con guration 185
Il est constitu
e d'entr
ees s
epar
ees commen
cant par le mot cl
e port suivi du nom qui
le d
esigne. Ce nom peut ^
etre utilis
e dans le chier sys, pour la d
eclaration port. Il
n'a pas besoin d'^
etre unique; s'il y en a plusieurs, uucico les essaiera tous un par un
jusqu'
a trouver le premier qui est disponible.
La commande port doit ^
etre imm
ediatement suivie par la d
eclaration type, qui in-
dique de quel genre de port il s'agit. Les valeurs valides sont modem, direct pour les
connexions directes et tcp pour les sockets TCP. Si la commande port est absente,
c'est un modem qui sera consid
er
e par d
efaut.
Ici, nous ne d
ecrirons que les ports modem; les deux autres types feront l'objet de
sections s
epar
ees un peu plus loin.
Pour les types modem et directs, vous devez sp
eci er le p
eriph
erique 
a utiliser par la
directive device. C'est g
en
eralement le nom d'un chier de p
eriph
erique du r
epertoire
/dev, comme /dev/cua110.
Dans le cas d'un modem, l'entr
ee d
etermine aussi le type d'appareil connect
e. Di 
e-
rents types ou marques de modems peuvent demander une con guration particuli
ere;
m^
eme ceux d
eclar
es compatibles Hayes ne le sont pas toujours vraiment. Par cons
e-
quent, vous devez indiquer 
a uucico comment initialiser le modem et appeler le num
ero
de t
el
ephone d
esir
e. Taylor UUCP stocke les descriptions de tous les num
eroteurs dans
le chier dial. Pour utiliser l'un deux, il faut sp
eci er son nom par la commande dialer.
Quelquefois, vous aurez besoin d'utiliser un modem de di 
erentes fa
cons, selon le ser-
vice que vous appelez. Par exemple, certains modems archa
ques ne comprennent rien
lorsqu'un appareil r
ecent tente de se connecter 
a 14400 bps ou plus; ils raccrochent
la ligne au lieu d'
etablir la connexion 
a 9600 bps, ou moins. Lorsque vous appelez
de tels sites, vous devez con gurer votre modem di 
eremment pour que la commu-
nication aboutisse. Pour cela, vous aurez besoin d'une entr
ee additionnelle dans le
chier port qui d
esignera un num
eroteur di 
erent. Vous pouvez donner 
a ce port un
nom di 
erent, comme par exemple serial1-lent, et la directive port dans l'entr
ee du
syst
eme vieuxsite dans le chier sys.
Une meilleure m
ethode consiste 
a faire la distinction des ports en fonction des vitesses
support
ees. Par exemple, les deux entr
ees de la situation que nous venons d'
evoquer
pourraient ^
etre indiqu
ees comme ceci:
# Modem NakWell; connexions hautes vitesses
port serial1 # nom du port
type modem # port modem
device /dev/cua1 # il s'agit de COM2
speed 38400 # vitesse support
ee
dialer nakwell # num
eroteur normal
# Modem NakWell; connexions basses vitesses
port serial1 # nom du name
10: Certains utilisent les p
eriph
eriques ttyS* 
a la place, qui sont con
cus sp
ecialement pour les appels
uniquement entrants, ce qui n'est pas une bonne id
ee en raison des con its possibles et de la gestion
fort di 
erente de ces p
eriph
eriques.
186 Chapitre 12. Ma^
triser Taylor UUCP
type modem # port modem
device /dev/cua1 # il s'agit de COM2
speed 9600 # vitesse support
ee
dialer nakwell-lent # ne tente pas de connexion haute vitesse
L'entr
ee syst
eme pour ce site vieuxsiteindiquerait maintenant serial1 comme nom de
port, mais demanderait de ne l'utiliser qu'
a 9600 bps. Le programme uucico utilisera
alors la seconde entr
ee automatiquement. Tous les sites restants qui ont une vitesse
de 38400 bps dans l'entr
ee syst
eme seront appel
es par la premi
ere entr
ee port.
12.2.8 Appeler un num
ero | le chier dial
Le chier dial d
ecrit comment les di 
erents num
eroteurs doivent ^
etre utilis
es. Tra-
ditionnellement, UUCP ne parle pas 
a des modems mais 
a des num
eroteurs pour
composer un num
ero de t
el
ephone, car en des temps recul
es la pratique courante 
etait
d'avoir un appareil (tr
es co^
uteux) destin
e 
a la composition d'appels t
el
ephoniques,
servant une banque de plusieurs modems. Aujourd'hui, la plupart des modems savent
num
eroter eux-m^
emes, aussi cette distinction devient assez obscure.
N
eanmoins, di 
erents num
eroteurs ou modems n
ecessitent chacun une con guration
particuli
ere. Vous pouvez d
ecrire chaque type dans le chier dial, dont les entr
ees
commencent par la commande dialer suivie du nom du num
eroteur.
L'entr
ee la plus importante est le script de dialogue, sp
eci 
e par la commande chat. Il
est similaire au script de connexion, et consiste en une s
equence de cha^
nes que uucico
envoie 
a l'appareil et les r
eponses qu'il doit en attendre. On s'en sert le plus souvent
pour remettre le modem 
a z
ero ou dans un 
etat connu avant de composer le num
ero;
l'exemple qui suit montre une entr
ee typique pour un appareil compatible Hayes:
# Modem NakWell modem; connexions hautes vitesses
dialer nakwell # nom du num
eroteur
chat  ATZ OKr ATH1E0Q0 OKr ATDTT CONNECT
chat-fail BUSY
chat-fail ERROR
chat-fail NOsCARRIER
dtr-toggle true
Le script de dialogue commence par , la cha^
ne d'attente vide. Par cons
equent,
uucico enverra directement la commande ATZ, qui est la commande Hayes de remise

a z
ero. Il attend ensuite la r
eponse OK et envoie la commande suivante, qui sup-
prime l'
echo local et initialise certains registres. Apr
es que le modem a encore une
fois r
epondu OK, uucico lui envoie la commande de num
erotation ATDT. La s
equence
d'
echappement T sera remplac
ee par le num
ero de t
el
ephone pris dans le chier sys.
Ensuite, uucico attend que le modem lui ait annonc
e que la connexion est 
etablie par
la cha^
ne CONNECT.
Souvent, la communication ne peut pas s'
etablir, si par exemple la ligne de l'autre
syst
eme est occup
ee. Dans ce cas, le modem renvoie un message d'erreur indiquant la
12.2. Fichiers de con guration 187
situation. Les scripts de dialogue ne sont pas capables de d
etecter de tels messages;
uucico continuera l'attente jusqu'
a ce que le temps imparti soit 
ecoul
e. Le chier de
trace de UUCP indiquera alors le message (
( timed out in chat script )
) au lieu de
la raison r
eelle de l'
echec.
Toutefois, Taylor UUCP vous permet d'informer uucico de ces messagesd'erreur par la
commande chat-fail que nous avonsvue plus haut. Lorsqu'il d
etecte une telle situation,
il arr^
ete aussit^
ot l'appel, et enregistre le message dans le chier de trace de UUCP.
La derni
ere commande de l'exemple ci-dessus indique 
a UUCP de basculer l'
etat de
la ligne DTR avant de commencer le dialogue. Normalement, le pilote des ports s
erie
monte le signal DTR (Data Terminal Ready) lorsqu'un processus ouvre le port, pour
indiquer au modem qui y est connect
e que quelqu'un veut lui parler. Avec le mot
cl
e dtr-toggle, la DTR sera baiss
ee, puis remont
ee apr
es un petit d
elai. Beaucoup de
modems modernes peuvent ^
etre con gur
es pour reconna^
tre cette manipulation et
e ectuer di 
erentes actions, comme raccrocher la ligne, passer en mode commandes
ou se remettre 
a z
ero11.
12.2.9 UUCP sur TCP
Aussi absurde que cela puisse para^
tre, utiliser UUCP pour transf
erer des donn
ees par
un r
eseau TCP/IP n'est pas une mauvaise id
ee du tout, particuli
erement lors de gros
transferts comme les News Usenet. Sur les liens TCP, les News sont g
en
eralement

echang
ees par le protocole NNTP, dans lequel les articles sont envoy
es un par un,
sans aucune compression ou autre optimisation. Bien que parfaitement adapt
es aux
grands sites poss
edant plusieurs sources concurrentes et connect
es par des lignes tr
es
rapides, cette technique est tr
es peu ecace pour les petits sites qui re
coivent leurs
donn
ees par des connexions tr
es lentes comme ISDN (NUM
ERIS en France). Ces sites
pr
ef
ereront alors allier les avantages du r
eseau TCP/IP avec ceux des 
echanges de gros
chiers compress
es comme c'est le cas par les liaisons t
el
ephoniques et UUCP.
Dans le chier sys, on indique qu'un syst
eme doit ^
etre appel
e par TCP de la mani
ere
suivante:
system gmu
address news.groucho.edu
time Any
port tcp-conn
chat ogin: gueuze word: clouseau
La commande address donne l'adresse IP de l'h^
ote ou bien son nom pleinement qua-
li 
e. L'entr
ee correspondante dans le chier port sera alors:
port tcp-conn
type tcp
service 540
11: Certains modems bon march
e n'appr
ecient pas du tout, en revanche.
188 Chapitre 12. Ma^
triser Taylor UUCP
Cette entr
ee indique qu'il faudra utiliser une connexion TCP lorsqu'une entr
ee du
chier sys r
ef
erence tcp-conn, et que uucico devra demander le port 540 sur le syst
eme
distant. Il s'agit du num
ero de port par d
efaut pour le service UUCP. Au lieu de ce
num
ero, vous pouvez aussi donner le nom symbolique qui lui est associ
e dans le chier
/etc/services, c'est en g
en
eral uucpd.
12.2.10 Utiliser une connexion directe
Supposons que vous poss
edez une liaison sp
ecialis
ee reliant directement votre syst
eme
gueuze 
a la machine minus. Comme dans le cas d'un modem, vous devez r
ediger une
entr
ee dans le chier sys. La commande port identi e le port s
erie sur lequel minus
est connect
ee.
system minus
time Any
port direct1
speed 38400
chat ogin: cathcart word: catch22
Dans le chier port, vous devez d
ecrire le port s
erie, mais une entr
ee dialer n'est pas
n
ecessaire puisqu'il n'y a aucun num
ero de t
el
ephone 
a composer.
port direct1
type direct
speed 38400
device /dev/ttyS1
12.3 Les erreurs 
a 
eviter | s
ecurit
e sous UUCP
12.3.1 Ex
ecution de commandes
UUCP est destin
e 
a copier des chiers d'un syst
eme 
a un autre, et 
a demander l'ex
e-
cution de certaines commandes sur des machines distantes. Bien s^
ur, en tant qu'ad-
ministrateur syst
eme vous voudrez avoir le contr^
ole des droits accord
es aux autres
machines: les autoriser 
a ex
ecuter des commandes chez vous est une tr
es mauvaise
id
ee.
Par d
efaut, les seules commandes que Taylor UUCP autorise aux autres machines sont
rmail et rnews, qui servent 
a l'
echange du courrier 
electronique et des News Usenet
par UUCP. Le chemin de recherche par d
efaut utilis
e par uuxqt est d
etermin
e lors de la
compilation du programme, et contient g
en
eralement /bin, /usr/bin et /usr/local/bin.
Pour changer l'ensemble des commandes attribu
ees 
a un syst
eme donn
e, vous pouvez
utiliser le mot cl
e commands dans le chier sys. De m^
eme, le chemin de recherche peut
12.3. Les erreurs 
a 
eviter | s
ecurit
e sous UUCP 189
^
etre modi 
e par la d
eclaration command-path. Vous pouvez par exemple autoriser la
machine pablo 
a ex
ecuter la commande rsmtp en plus de rmail et rnews12 :
system pablo
...
commands rmail rnews rsmtp
12.3.2 Transferts de chiers
Taylor UUCP permet aussi de ma^
triser les chiers transf
er
es. Au pis, vous pouvez
carr
ement les interdire, en mettant request 
a la valeur no; aucun syst
eme ne pourra
alors demander un transfert de chiers, quelle que soit la direction. De m^
eme, vous
pouvez interdire aux utilisateurs de transf
erer des chiers avec un syst
eme donn
e en
mettant transfer 
a no. Par d
efaut, les utilisateurs de la machine locale comme du
syst
eme distant sont autoris
es 
a transf
erer des chiers.
De plus, il est possible de con gurer les r
epertoires mis en jeu. G
en
eralement, vous
restreindrez l'acc
es 
a une seule hi
erarchie pour les syst
emes distants, mais autoriserez
vos utilisateurs 
a envoyer des chiers depuis leur r
epertoire personnel. La plupart du
temps, les utilisateurs distants ne seront autoris
es 
a recevoir des donn
ees que dans le
r
epertoire public destin
e 
a UUCP, /var/spool/uucppublic. Il s'agit traditionnellement
de l'endroit ou les chiers publics sont mis 
a disposition, un peu comme les serveurs
FTP sur l'Internet. On l'indique souvent par le caract
ere tilde.
Taylor UUCP o re di 
erentes commandes pour con gurer les r
epertoires d'envoi et
de r
eception. Ce sont: local-send, qui sp
e cie la liste des r
epertoires depuis lesquels un
utilisateur peut envoyer des chiers; local-receive, qui indique la liste de r
epertoires
dans lesquels un utilisateur peut demander 
a recevoir les chiers; puis remote-send
et remote-receive, qui ont le m^
eme r^
ole pour un syst
eme distant. Voyons l'exemple
suivant:
system pablo
...
local-send /home ~
local-receive /home ~/receive
remote-send ~ !~/incoming !~/receive
remote-receive ~/incoming
La commande local-send autorise les utilisateurs de votre machine 
a envoyer n'importe
quel chier 
a partir du r
epertoire /home et du r
epertoire UUCP public de pablo. La
commande local-receive leur permet de recevoir des donn
ees soit dans le r
epertoire
receive de uucppublic, soit dans n'importe quel r
epertoire 
a partir de /home. La direc-
tive remote-send autorisepablo
a demander des chiers depuis /var/spool/uucppublic,
sauf 
a partir de incoming et receive. C'est le point d'exclamation qui indique cette
12: Le programme rsmtp sert 
a d
elivrer le courrier 
electronique par lots SMTP. Nous d
ecrirons
cette technique dans les chapitres consacr
es au courrier.
190 Chapitre 12. Ma^
triser Taylor UUCP
n
egation 
a uucico. En n, la derni
ere ligne autorise pablo 
a envoyer n'importe quel
chier dans le r
epertoire incoming.
Le plus gros probl
eme des transferts UUCP est que les chiers ne peuvent ^
etre re
cus
que si les r
epertoires de destination sont accessibles en 
ecriture par tout le monde.
Cela peut inciter certains utilisateurs 
a tendre des pi
eges 
a d'autres, mais il n'y a
aucun moyen d'
eviter cela, 
a moins d'interdire purement et simplement tout transfert
de chier par UUCP.
12.3.3 Relais
UUCP o re un m
ecanisme permettant de demander 
a d'autres machines de transf
erer
des chiers pour vous. Cela permet par exemple de demander 
a la machine truc de
r
ecup
erer un chier sur bidule pour vous et de vous l'envoyer. Voici la commande
correspondante:
$ uucp -r truc!bidule!~/find-ls.gz ~/bidule.liste.gz
Cette technique faisant passer des jobs 
a travers plusieurs syst
emes s'appelle le relais,
ou encore le forwarding. Dans l'exemple ci-dessus, elle est employ
eecar truca un acc
es
UUCP sur machin, mais votre syst
eme n'en a pas. Mais en tant qu'administrateur,
vous devrez limiter cette possibilit
e sur votre syst
eme 
a quelques sites dans lesquels
vous avez une pleine con ance, pour 
eviter que certains ne passent par vous pour
t
el
echarger la derni
ere version de X11R6 et vous ruiner en notes de t
el
ephone.
Par d
efaut, Taylor UUCP interdit tout relais. Pour l'autoriser 
a un syst
eme donn
e,
vous disposez de la commande forward; qui sp
eci e une liste de sites qui auront le droit
de vous demander de ramener des chiers pour eux. Par exemple, l'administrateur
du syst
eme truc devra ajouter la ligne suivante dans son chier sys pour autoriser
pablo 
a demander des chiers sur la machine bidule:
####################
# pablo
system pablo
...
forward bidule
####################
# bidule
system bidule
...
forward-to pablo
L'entr
ee forward-to pour bidule est n
ecessaire de sorte que tout chier qu'il retourne
soit pass
e 
a pablo, sinon UUCP le rejetterait. Cette entr
ee utilise une variante de la
commande forward qui permet 
a bidule d'envoyer des chiers 
a pablo par l'interm
e-
diaire de truc, et uniquement dans ce sens.
Pour autoriser le relais vers n'importe quel syst
eme, il faut utiliser le mot cl
e sp
ecial
ANY (les majuscules sont obligatoires).
12.4. Con gurer votre syst
eme en serveur UUCP 191
12.4 Con gurer votre syst
eme en serveur UUCP
Si vous d
esirez que votre site puisse ^
etre appel
e, vous devez en autoriser l'acc
es par
les ports s
erie et con gurer quelques chiers syst
eme pour o rir des comptes UUCP.
Nous allons d
ecrire la marche 
a suivre.
12.4.1 Con guration de getty
Si vous voulez utiliser une ligne s
erie pour recevoir des appels entrants, vous devrez
mettre en service un processus getty sur ce port. Toutefois, certaines impl
ementations
du programme getty ne sont pas tr
es adapt
ees 
a cet usage, car vous voudrez sans doute
pouvoir 
egalement e ectuer des appels sortants par le m^
eme port s
erie lorsque la ligne
est libre; il faudra par cons
equent que ce p
eriph
erique puisse ^
etre partag
e aussi bien
par getty que par des programmes de communication comme uucico ou minicom. Le
syst
eme Linux, 
a l'image de bien d'autres impl
ementations Unix modernes, sait g
erer
cette situation, n
eanmoins beaucoup utilisent encore, m^
eme sous Linux, des arti ces

a l'ancienne mode.
Nous n'entrerons pas plus dans le d
etail, qui d
epasserait vite le cadre de ce chapitre;
pour plus d'informations sur ce sujet, consultez par exemple le document Linux SE-
RIAL HOWTO par Grag Hankins, et les di 
erentes pages de manuel des di 
erentes
impl
ementations de getty.
Nous consid
ererons donc 
a partir de maintenant que votre syst
eme et le modem sont
correctement con gur
es pour que la machine soit accessible.
12.4.2 O rir des comptes UUCP
Vous allez donc avoir 
a cr
eer des comptes utilisateur qui permettent aux sites distants
d'entrer dans votre syst
eme et d'
etablir une connexion UUCP. G
en
eralement,on ouvre
un compte par syst
eme appelant, avec un nom permettant de mettre en 
evidence qu'il
ne s'agit pas d'un utilisateur ordinaire. Par exemple, la machine pablo se connectera
sous le nom d'utilisateur Upablo ou uupablo.
Dans le cas des machines se connectant par le port s
erie, il faut ajouter ces comptes au
chier des mots de passe /etc/passwd. Une bonne pratique consiste 
a mettre tous les
comptes UUCP dans un groupe sp
ecial comme, par exemple, uuguest. Le r
epertoire
personnel doit ^
etre le r
epertoire public /var/spool/uucppublic ; et le shell doit ^
etre le
programme uucico.
Si vous utilisez les mots de passe shadow, vous pourrez sans doute ouvrir ces comptes
par la commande useradd:
# useradd -d /var/spool/uucppublic -G uuguest -s /usr/lib/uucp/uucico uupablo
192 Chapitre 12. Ma^
triser Taylor UUCP
Sinon, il vous faudra probablement le faire manuellement, en 
editant /etc/passwd pour
y rajouter une ligne comme dans l'exemple suivant, o
u 5000 et 150 sont les num
eros
identi cateurs de l'utilisateur uupablo et du groupe uuguest, respectivement.
uupablo:x:5000:150:Compte UUCP:/var/spool/uucppublic:/usr/lib/uucp/uucico
Ensuite, vous devrez assigner un mot de passe 
a ce compte par la commande passwd.
Dans le cas des machines se connectant par TCP, vous devrez con gurer inetd pour
qu'il g
ere les connexions sur le port uucp. Pour cela, il faudra rajouter la ligne suivante
dans le chier /etc/inetd.conf13 :
uucp stream tcp nowait root /usr/sbin/tcpd /usr/lib/uucp/uucico -l
L'option -l demande 
a uucico de r
ealiser sa propre s
equence d'acc
es login/passwd.Il
n'utilisera pas le chier /etc/passwd standard du syst
eme, mais une base de donn
ees
de mots de passe qui lui est propre (/usr/lib/uucp/passwd) constitu
ee de paires de
noms d'utilisateurs et des mots de passe associ
es:
uupablo IslaNegra
uulorca co'rdoba
Bien entendu, ce chier doit appartenir 
a l'utilisateur uucp et avoir le mode 600 pour
que personne ne puisse en prendre connaissance.
Si cette m
ethode vous pla^
t tellement que vous voudriez pouvoir l'utiliser aussi pour les
acc
es ordinaires par port s
erie, vous devez savoir que c'est impossible actuellement, du
moins sans un certain bricolage. Tout d'abord, vous devez passer l'option -u 
a uucico,
suivi du nom d'utilisateur. Pour cela, vous devrez poss
eder ou (probablement) bricoler
un programme getty capable de passer ce nom d'utilisateur, et qui appelle uucico 
a la
place de la commande standard /bin/login.
Pour prot
eger vos utilisateurs UUCP des intrus donnant un faux nom de syst
eme et
piratant tout leur courrier, vous devrez ajouter la commande called-login dans chaque
entr
ee du chier sys. Cette op
eration est d
ecrite dans la section suivante.
12.4.3 Protection contre les escrocs
Le gros probl
eme d'UUCP est que le syst
eme appelant peut tricher sur son nom; il
s'annonce apr
es avoir pass
e la premi
ere authenti cation par mot de passe, mais la
machine appel
ee n'a aucun moyen de v
eri er ce nom. Par cons
equent, un petit malin
pourrait se connecter sur son propre compte UUCP, et pr
etendre ensuite qu'il est
13: Notez que g
en
eralement, tcpd a le mode 700, vous devrez donc l'invoquer sous root et non pas
sous uucp.
12.4. Con gurer votre syst
eme en serveur UUCP 193
quelqu'un d'autre pour t
el
echarger le courrier destin
e 
a cet autre site. C'est parti-
culi
erement dangereux dans le cas o
u vous o rez des acc
es UUCP anonymes, pour
lesquels le mot de passe est public, ou absent.

A moins que vous ne soyez absolument s^
ur de l'honn^
etet
e de tous les sites qui vous
appellent, vous devez vous prot
eger de ce type d'imposture. Le rem
ede consiste 
a
demander 
a chaque syst
eme d'utiliser un nom particulier pour la connexion, que vous
sp
eci ez par called-login dans le chier sys. Voici un exemple:
system pablo
... options habituelles ...
called-login uupablo
Le r
esultat est que chaque fois qu'un syst
eme arrive et pr
etend ^
etre pablo, uucico
v
eri era s'il est bien entr
e sous le compte uupablo. Si ce n'est pas le cas, la connexion
sera imm
ediatement coup
ee. Vous devez prendre l'habitude de con gurer cette v
eri -
cation chaque fois que vous ouvrez un nouveau compte UUCP; il est tr
es important
de le faire pour tous les syst
emes, qu'ils appellent votre site ou non. Pour ceux qui
ne vous appellent jamais, vous pourrez initialiser called-login 
a n'importe quoi, par
exemple yapadappel.
12.4.4 Soyez parano | le test de s
equence d'appels
Le test de s
equence d'appels est une autre m
ethode d'
elimination des imposteurs.
M^
eme ceux qui trouvent noms et mots de passe 
a employer ne pourront que dicile-
ment franchir cette barri
ere.
Avec ce syst
eme, chaque machine conserve une trace du nombre de connexions
etablies
depuis le d
ebut. Il est incr
ement
e 
a chaque connexion r
eussie. Au d
ebut de chaque
communication, ces nombres sont 
echang
es entre les deux syst
emes pour ^
etre com-
par
es: s'ils ne correspondent pas, de quelque c^
ot
e que ce soit, la communication sera
imm
ediatement coup
ee. Si, de plus, le nombre initial est tir
e au hasard, les pirates
auront beaucoup de mal 
a deviner la bonne s
equence.
Mais ce test de s
equence d'appels peut faire encore mieux: m^
eme si quelqu'un, par
un miraculeux hasard, pirate votre compte UUCP en trouvant la bonne s
equence
et votre mot de passe, vous vous en rendrez compte imm
ediatement. Car lorsqu'il
se connectera 
a votre place, cela incr
ementera le compte des appels. La prochaine
connexion que vous tenterez vous sera alors refus
ee, puisque vous ne serez plus en
possession de la s
equence correcte!
Par cons
equent, si vous avez valid
e ce test, vous devez r
eguli
erement jeter un il
aux chiers de trace pour d
etecter les attaques possibles. Si votre syst
eme rejette une
connexion en raison d'une mauvaise s
equence, uucico enregistre un message disant
quelque chose comme (
( Out of sequence call rejected )
). Si c'est votre machine
qui est refus
ee lorsque c'est vous qui appelez, le message sera (
( Handshake failed
(RBADSEQ) )
).
194 Chapitre 12. Ma^
triser Taylor UUCP
Pour mettre ce test en service, vous devez rajouter la commande suivante dans l'entr
ee
du syst
eme en question:
# Valide le test de s
equence d'appels
sequence true
Vous devez aussi cr
eer le chier contenant le num
ero initial. Taylor UUCP le place
dans un chier nomm
e .Sequence dans le r
epertoire de spoule du site distant. Il doit
appartenir 
a l'utilisateur uucp et avoir le mode 600 (lecture et 
ecriture uniquement au
propri
etaire). Il vaut mieux initialiser ce nombre en se mettant d'accord avec l'autre
site sur une valeur arbitraire; sinon quelqu'un pourrait arriver 
a le deviner en essayant
di 
erentes valeurs plausibles.
# cd /var/spool/uucp/pablo
# echo 94316  .Sequence
# chmod 600 .Sequence
# chown uucp.uucp .Sequence
Bien s^
ur, le site distant doit 
egalement valider ce test et commencer avec le m^
eme
nombre que vous.
12.4.5 UUCP anonyme
Pour proposer un acc
es UUCP anonyme, vous devez con gurer un compte sp
ecial
comme nous l'avons d
ecrit ci-dessus. La tradition veut que ce compte s'appelle uucp
ou nuucp, et que son mot de passe soit uucp, si toutefois vous d
ecidez d'en mettre
un.
De plus, vous devrez con gurer quelques options de s
ecurit
e pour les syst
emes incon-
nus. Par exemple, vous leur interdirez d'ex
ecuter des commandes, y compris 
eventuel-
lement rmail et rnews pour ne pas avoir d'ennuis. Mais vous ne pouvez pas indiquer
ce fait dans une entr
ee du chier sys puisque la commande system requiert le nom
du syst
eme, que vous ne connaissez pas. Taylor UUCP r
esout ce probl
eme par la
commande unknown, qui peut ^
etre utilis
ee dans le chier con g pour d
esigner toute
commande qui appara^
t d'ordinaire dans l'entr
ee d'un syst
eme:
unknown remote-receive ~/incoming
unknown remote-send ~/pub
unknown max-remote-debug none
unknown command-path /usr/lib/uucp/anon-bin
unknown commands rmail
L'exemple ci-dessus restreint les syst
emes inconnus au t
el
echargement depuis le r
e-
pertoire pub, et 
a l'envoi de chiers dans le sous-r
epertoire incoming de l'espace public
/var/spool/uucppublic. La troisi
eme ligne indique 
a uucico d'ignorer les requ^
etes de
mise en route du d
eboguage local (sinon un malin pourrait remplir votre disque dur
12.5. Protocoles UUCP de bas niveau 195
de chiers de trace). Les deux derni
eres lignes autorisent les syst
emes inconnus 
a
ex
ecuter la commande rmail; mais le chemin de recherche est limit
e 
a un r
epertoire
priv
e nomm
e anon-bin. Cela permet d'y installer une commande rmail sp
eciale qui,
par exemple, dirige tout courrier des sites anonymes vers la bo^
te aux lettres du
superutilisateur. Cela autorise les utilisateurs anonymes 
a laisser un message 
a l'ad-
ministrateur (qui ne pourra pas leur r
epondre par ce m^
eme chemin, bien s^
ur), tout en
interdisant aux personnes malintentionn
ees de passer par l
a pour distiller du courrier
dans le monde entier.
Pour valider l'UUCP anonyme, vous devez au moins avoir une directive unknown dans
votre chier con g, sinon uucico rejettera tous les syst
emes inconnus.
12.5 Protocoles UUCP de bas niveau
Pour n
egocier l'
etablissement de la session et des transferts de chiers avec son corres-
pondant, uucico utilise un ensemble de messages standardis
es; c'est ce que l'on appelle
couramment le protocole de haut niveau. Pendant la phase d'initialisation et de d
e-
connexion, ils sont simplement 
echang
es sous forme de cha^
nes de caract
eres ASCII.
Toutefois, pendant le transfert des donn
ees, un protocole additionnel, de bas niveau,
est employ
e a n d'assurer l'int
egrit
e des donn
ees. Il est pratiquement transparent
pour le protocole de haut niveau.
12.5.1 Pr
esentation des protocoles
Comme UUCP est employ
e sur di 
erents types de connexions, comme les lignes s
eries,
TCP ou m^
eme X.25, il est n
ecessaire d'avoir des protocoles adapt
es 
a chaque cas. De
plus, di 
erentes impl
ementations de UUCP ont introduit divers protocoles qui font
grosso modo la m^
eme chose.
On peut classer ces protocoles en deux cat
egories: ceux qui sont orient
es ux et ceux
qui sont orient
es paquets. Les premiers transf
erent un chier dans son int
egralit
e,
en calculant 
eventuellement un checksum dessus. C'est extr^
emement ecace mais
n
ecessite une connexion tr
es able, car 
a la moindre erreur il faut retransmettre tout
le chier. Ce type de protocole est essentiellement utilis
e sur des connexions TCP
mais est totalement inadapt
e pour des liaisons par lignes t
el
ephoniques. Bien que les
modems modernes disposent de correction d'erreurs, ce n'est pas parfait, et il n'y en
a pas entre l'appareil et l'ordinateur.
Les protocolesde la seconde cat
egoriedivisent le chier en plusieurs morceaux.Chaque
paquet est envoy
e et re
cu s
epar
ement, un checksum est calcul
e, et un acquittement de
bonne r
eception est retourn
e 
a l'exp
editeur, qui peut alors envoyer la partie suivante.
Pour am
eliorer l'ecacit
e de cette m
ethode, on a invent
e des protocoles 
a fen^
etres
variables, qui permettent l'envoi d'un petit nombre de paquets (une fen^
etre) sans
attendre d'acquittement. Cela r
eduit notablement les temps d'attente de uucico pen-
196 Chapitre 12. Ma^
triser Taylor UUCP
dant la transmission, mais les performances sont malgr
e tout trop r
eduites compar
ees

a celles de la premi
ere cat
egorie de protocoles, ce qui les rend peu adapt
es 
a une
utilisation sur TCP.
Les caract
eristiques de la liaison ont aussi une importance: quelquefois, il est impos-
sible d'envoyer des caract
eres sur 8 bits par une liaison s
erie car un stupide serveur de
terminaux supprime le huiti
eme bit. Dans ce cas, il faut encoder tous ces caract
eres,
ce qui double presque la taille des donn
ees 
a transmettre, bien que l'
eventuelle com-
pression r
ealis
ee par le mat
eriel de transmission puisse aider un peu. Parmi les lignes
correctes, capables de passer des caract
eres sur 8 bits, on compte les liaisons TCP et
la plupart des connexions par modem.
Taylor UUCP dispose au moins des protocoles suivants:
g C'est le protocole le plus courant et qui doit ^
etre compris par tous
les programmes uucico. Il e ectue une correction d'erreurs et il est
par cons
equent adapt
e aux lignes t
el
ephoniques de mauvaise qualit
e.
Ce protocole n
ecessite une transmission sur 8 bits, c'est un protocole
orient
e paquets avec une technique de fen^
etrage.
i C'est un protocole bidirectionnel, qui peut envoyer et recevoir des
chiers en m^
eme temps. Il n
ecessite une liaison bidirectionnelle sur
8 bits, il n'est compris pour l'instant que par Taylor UUCP. Il est
extr^
emement ecace.
t Destin
e 
a l'usage sur les connexions TCP ou les liaisons sans au-
cune erreur. Il utilise des paquets de 1024 octets et n
ecessite une
transmission 8 bits.
e Semblable au protocole t, mais orient
e ux.
f Destin
e aux connexions X.25. C'est un protocole orient
e ux, mais
qui peut fonctionner sur une transmission 7 bits. Tous les caract
eres
ayant le huiti
eme bit positionn
e sont encod
es, ce qui le rend particu-
li
erement inecace.
G Il s'agit de la version System V Release 4 du protocole g. Il est aussi
compris par quelques autres impl
ementations de UUCP.
a Ce protocole ressemble 
a ZMODEM. Il n
ecessite une transmission
sur 8 bits, mais encode certains caract
eres de contr^
ole comme XON
et XOFF.
12.5.2 Optimisation du protocole de transmission
Tous ces protocoles permettent d'ajuster certains de leurs param
etrescomme les d
elais
d'attente, la taille des paquets, etc. G
en
eralement, les valeurs par d
efaut fonctionnent
12.5. Protocoles UUCP de bas niveau 197
correctement en des circonstances normales, mais il est des cas o
u ils peuvent ^
etre
inadapt
es. Le protocole g, par exemple, emploie des fen^
etres de 1 
a 7, et des tailles
de paquet allant de 64 
a 4096 par puissances de 214. Si votre ligne t
el
ephonique
est si mauvaise que vous perdez plus de 5% des paquets, vous devrez probablement
r
eduire leur taille ainsi que celle de la fen^
etre. Toutefois, si votre liaison est excellente,
augmenter la taille de ces paquets 
a 512 voire 1024 octets am
eliorera l'ecacit
e du
protocole dans de grandes proportions.
Taylor UUCP o re la commande protocol-parameter du chier sys, qui permet d'ajus-
ter ces param
etres selon vos besoins. Par exemple, pour passer la taille des paquets
du prococole g 
a 512 lors de communications avec pablo, vous rajouterez:
system pablo
...
protocol-parameter g packet-size 512
Les di 
erents param
etres accessibles varient d'un protocole 
a l'autre. Pour en avoir la
liste compl
ete, consultez la documentation fournie avec les sources de Taylor UUCP.
12.5.3 S
election des protocoles
Les diverses impl
ementations de uucico ne connaissent pas toutes l'ensemble des pro-
tocoles possibles, aussi, pendant la phase d'initialisation de la session, les deux c^
ot
es
doivent se mettre d'accord sur un protocole commun. Le ma^
tre propose 
a l'esclave
une liste des protocoles dont il dispose en lui envoyant la s
equence Pprotlist, et
l'esclave fait son choix.
En fonction du type de port utilis
e (modem, TCP, direct), uucico composera une liste
par d
efaut des protocoles souhaitables. Pour les liaisons modem et directes, cette liste
comprendra g
en
eralement i, a, g, G et j. Dans le cas de liaison TCP, ce sera t, e, i, a,
g, G, j et f. Vous pouvez modi er cette liste par d
efaut par la commande protocols,
qui peut ^
etre sp
eci 
ee dans une entr
ee de syst
eme aussi bien que dans une entr
ee de
port. Par exemple, vous pouvez 
editer l'entr
ee modem de votre chier port comme
ceci:
port serial1
...
protocols igG
Cela aurapour e et de forcer l'utilisation des protocoles i, g ou G pour toute connexion
e ectu
ee par ce port. Si le syst
eme distant ne conna^
t aucun de ces protocoles, la
communication 
echouera.
14: Beaucoup de binaires fournis avec les distributions Linux ont une fen^
etre par d
efaut de 7 et des
paquets de 128 octets.
198 Chapitre 12. Ma^
triser Taylor UUCP
12.6 En cas de probl
eme...
Cette section tente de faire le tour des erreurs que vous pourrez rencontrer, et de
sugg
erer o
u regarder pour trouver la solution au probl
eme. Malgr
e tout, nous avons
rassembl
e tout cela de t^
ete et il y a sans doute beaucoup d'autres choses susceptibles
de ne pas marcher correctement.
Dans tous les cas, validez le d
eboguage par l'option -xall, et regardez attentivement
la sortie obtenue dans le chier Debug cr
e
e dans le r
epertoire de spoule. Vous devriez
rapidement trouver la cause du probl
eme. De plus, mettez toujours le haut-parleur
de votre modem en service, cela permet de se rendre compte si la communication
s'
etablit. Avec un modem compatible Hayes, il vous sura de rajouter (
( ATL1M1 OK )
)
dans le script de dialogue du chier dial.
La premi
ere v
eri cation 
a e ectuer doit toujours concerner les permissions des chiers
relatifs 
a UUCP. Le programme uucico doit ^
etre setuid uucp, et tous les chiers conte-
nus dans /usr/lib/uucp, /var/spool/uucp et /var/spool/uucppublic doivent appartenir

a cet utilisateur uucp. Il existe 
egalement des chiers cach
es15 dans le r
epertoire de
spoule qui doivent appartenir 
a uucp.
uucico persiste
a acher(
( Wrong time to call )
) : ce n'est pas l'heure d'appeler le
site en question. Cela signi e probablement que vous n'avez pas sp
eci 
e de commande
time dans le chier sys, d
etaillant quand le site peut ^
etre joint, ou qu'e ectivement il
n'est pas l'heure d'appeler. Si time n'est pas l
a, uucico consid
ere que ce syst
eme ne
pourra jamais ^
etre appel
e.
uucico se plaint que le site est d
ej
a verrouill
e (site already locked): cela signi e
qu'il d
etecte un chierde verrouillagepour le syst
emeen question dans /var/spool/uucp.
Il peut provenir d'un appel pr
ec
edent qui ne s'est pas termin
e correctement. Toutefois,
il s'agit le plus souvent d'un autre processus uucico qui est en train d'essayer d'appeler
le site et qui est coinc
e dans un script de dialogue, ou ailleurs. Si cet uucico n'arrive
pas 
a 
etablir la liaison, tuez-le avec un signal HUP et supprimez tous les chiers de
verrouillage qu'il pourrait oublier de nettoyer.
J'arrive 
a me connecter au site distant, mais le script de dialogue 
echoue:
regardez le texte que vous recevez de ce site. S'il est plein de parasites, ce peut ^
etre
un probl
eme de vitesse inadapt
ee. Sinon, v
eri ez qu'il correspond bien 
a ce qu'attend
votre script de dialogue. Souvenez-vous que ce script commence sur une attente. Si
vous attendez l'invite de login et que vous envoyez votre nom, mais que jamais l'autre
c^
ot
e ne vous demande le mot de passe, ins
erez quelques d
elais d'attente avant votre
envoi, ou m^
eme entre chaque lettre; il se peut que l'envoi se fasse trop rapidement.
Mon modem ne compose pas le num
ero: s'il n'indique pas que la ligne DTR
a 
et
e mont
ee lorsque uucico appelle, il se peut que vous n'avez pas indiqu
e le bon
p
eriph
erique. Sinon, v
eri ez avec un 
emulateur de terminal que vous pouvez bien

ecrire dessus. Si 
ca marche, mettez l'
echo en service par E au d
ebut du script de
15: C'est-
a-dire dont le nom commence par un point, et qui ne sont pas ach
es par la commande
ls si on ne lui pr
ecise pas.
12.7. Les chiers de trace 199
dialogue modem. S'il ne fait pas l'
echo de vos commandes pendant ce dialogue, v
eri ez
si la vitesse de votre ligne ne serait pas trop rapide ou trop lente pour ce modem. Si
vous voyez l'
echo, v
eri ez la validation des r
eponses du modem ou passez-les en mode
num
erique. V
eri ez que le script de dialogue, lui-m^
eme, est correct. Souvenez-vous
qu'il faut 
ecrire deux caract
eres backslash pour en envoyer un au modem.
Mon modem essaie de num
eroter mais cela n'aboutit pas: ins
erez une pause
dans le num
ero de t
el
ephone, particuli
erement si vous appelez d'un central priv
e.
Essayez les deux types de num
erotation: vocale, puis d
ecimale. Et v
eri ez le num
ero
de t
el
ephone...
Mon chier de trace indique que je perds beaucoup de paquets: ce peut ^
etre
un probl
eme de vitesse. Si la liaison entre votre ordinateur et votre modem est plus
lente que celle 
a laquelle la communication s'est 
etablie, rem
ediez 
a cette situation.
Il se peut que votre 
equipement soit trop lent pour suivre le nombre d'interruptions
g
en
er
ees par les hautes vitesses. Dans ce cas, il faut employer un circuit NSC 16550A
sur votre port s
erie. Vous devez 
egalement v
eri er que le contr^
ole de ux mat
eriel est
en service, tant du c^
ot
e du syst
eme que sur le modem.
Taylor UUCP n'a rien de pr
evu pour valider ce contr^
ole de ux, vous devez donc
le faire explicitement depuis le chier rc.serial (par exemple) en utilisant cette com-
mande:
$ stty crtscts  /dev/cua3
J'entre dans le syst
eme mais le handshake 
echoue: les causes peuvent ^
etre
nombreuses. Le chier de trace vous sera d'un pr
ecieux secours. Regardez quels pro-
tocoles o re le site distant (il doit envoyer la cha^
ne Pprotlist ). Il se peut que vous
n'en ayez aucun en commun (avez-vous s
electionn
e des protocoles sp
eciaux dans les
chiers sys ou port?).
Si le syst
eme distant envoie RLCK, c'est qu'il y a l
a-bas un chier de verrouillage vous
concernant. Si ce n'est pas parce que vous y ^
etes d
ej
a connect
e par une autre ligne,
demandez 
a son administrateur qu'il corrige cette erreur.
S'il envoie RBADSEQ, c'est que l'autre c^
ot
e a valid
e le test de s
equence d'appels pour
votre site, mais que les valeurs ne correspondent pas. S'il envoie RLOGIN, c'est que
vous n'^
etes pas autoris
e 
a vous connecter sous ce nom d'utilisateur.
12.7 Les chiers de trace
Lorsque l'on compile Taylor UUCP en choisissant les traces de style Taylor, cela ne
donne que trois chiers globaux, chacun r
esidant dans le r
epertoire spoule. Le chier
principal s'appelle Log et contient toutes les informations concernant les connexions

etablies et les chiers transf
er
es. Voici un extrait de ce que cela peut donner (apr
es
reformatage pour que les lignes ne d
ebordent pas de la page...):
200 Chapitre 12. Ma^
triser Taylor UUCP
uucico pablo - (1994-05-28 17:15:01.66 539) Calling system pablo (port cua3)
uucico pablo - (1994-05-28 17:15:39.25 539) Login successful
uucico pablo - (1994-05-28 17:15:39.90 539) Handshake successful
(protocol 'g' packet size 1024 window 7)
uucico pablo postmaster (1994-05-28 17:15:43.65 539) Receiving D.pabloB04aj
uucico pablo postmaster (1994-05-28 17:15:46.51 539) Receiving X.pabloX04ai
uucico pablo postmaster (1994-05-28 17:15:48.91 539) Receiving D.pabloB04at
uucico pablo postmaster (1994-05-28 17:15:51.52 539) Receiving X.pabloX04as
uucico pablo postmaster (1994-05-28 17:15:54.01 539) Receiving D.pabloB04c2
uucico pablo postmaster (1994-05-28 17:15:57.17 539) Receiving X.pabloX04c1
uucico pablo - (1994-05-28 17:15:59.05 539) Protocol 'g' packets: sent 15,
resent 0, received 32
uucico pablo - (1994-05-28 17:16:02.50 539) Call complete (26 seconds)
uuxqt pablo postmaster (1994-05-28 17:16:11.41 546) Executing X.pabloX04ai
(rmail okir)
uuxqt pablo postmaster (1994-05-28 17:16:13.30 546) Executing X.pabloX04as
(rmail okir)
uuxqt pablo postmaster (1994-05-28 17:16:13.51 546) Executing X.pabloX04c1
(rmail okir)
Le chier suivant, par ordre d'importance, s'appelle Stats et indique les statistiques
des transferts de donn
ees. La section de Stats correspondant au chier de trace ci-
dessus ressemble 
a celle-ci (l
a encore, les lignes ont 
et
e reformat
ees):
postmaster pablo (1994-05-28 17:15:44.78)
received 1714 bytes in 1.802 seconds (951 bytes/sec)
postmaster pablo (1994-05-28 17:15:46.66)
received 57 bytes in 0.634 seconds (89 bytes/sec)
postmaster pablo (1994-05-28 17:15:49.91)
received 1898 bytes in 1.599 seconds (1186 bytes/sec)
postmaster pablo (1994-05-28 17:15:51.67)
received 65 bytes in 0.555 seconds (117 bytes/sec)
postmaster pablo (1994-05-28 17:15:55.71)
received 3217 bytes in 2.254 seconds (1427 bytes/sec)
postmaster pablo (1994-05-28 17:15:57.31)
received 65 bytes in 0.590 seconds (110 bytes/sec)
Le troisi
eme chier s'appelle Debug. C'est l
a que sont enregistr
ees les informations
de d
eboguage lorsqu'il est mis en service. Vous devez vous assurer que ce chier a le
mode 600, car en fonction du niveau de d
eboguage choisi, il peut contenir les mots de
passe utilis
es pour toutes les connexions.
Certains binaires fournis avec des distributions de Linux sont compil
es avec le style
de trace HDB. Ce mode utilise une grande quantit
e de chiers de trace stock
es dans
/var/spool/uucp/.Log. Ce r
epertoire contient trois autres sous-r
epertoires, nomm
es
uucico, uuxqt et uux. Ils contiennent la trace g
en
er
ee par chacun des programmes
correspondants, tri
es dans di 
erents chiers pour chaque site. Ainsi, la sortie de uucico
lors de l'appel du site pablo se trouvera dans .Log/uucico/pablo, et les invocations
de uuxqt qui r
esulteront de cet appel seront enregistr
ees dans .Log/uuxqt/pablo. Les
lignes ont, en revanche, le m^
eme format que celles des traces du style Taylor.
12.7. Les chiers de trace 201
Lorsque vous validez le d
eboguage avec un style de trace HDB, l'enregistrement se
fera dans .Admin/audit.local, alors que la sortie de uucico, lorsque c'est un site qui
appelle, sera dans .Admin/audit.
202 Chapitre 12. Ma^
triser Taylor UUCP
203
Chapitre 13
Le courrier 
electronique
Depuis que les premiers r
eseaux furent imagin
es, le courrier 
electronique en fait un
usage chaque jour plus important. Cela a commenc
e par un simple service qui copiait
un chier d'une machine 
a une autre en le mettant dans le chier bo^
te aux lettres du
correspondant. C'est d'ailleurs toujours le cas; bien que par-dessus se soient gre 
ees
beaucoup de choses rendues n
ecessaires par la complexit
e du r
eseau et l'augmentation
constante du ux de messages.
Divers standards d'
echange de courrier ont 
et
e imagin
es. Les sites connect
es 
a l'In-
ternet adh
erent 
a celui d
e ni par le RFC 822, associ
e 
a d'autres documents RFC qui
d
ecrivent une m
ethode de transmission de caract
eres sp
eciaux ou autres informations,
ind
ependante des machines mises en jeu. On fait beaucoup de bruit depuis quelque
temps autour du courrier (
( multim
edia )
), qui permet de transf
erer 
egalement des
images et du son avec le courrier. Il existe un autre standard, X.400, qui est d
e ni
par le CCITT.
Vous trouverez beaucoup de programmes destin
es au transport du courrier pour les
syst
emes UNIX. L'un des plus connus et des plus utilis
es, toutes plates-formes confon-
dues, s'appelle sendmail; c'est l'impl
ementation de l'universit
e de Berkeley, l'auteur
est Eric Allman. Il y a actuellement deux portages de sendmail-5.56c sous Linux,
dont l'un sera d
ecrit dans le chapitre 15. La version de d
eveloppement actuelle porte
le num
ero 8.6.9.
L'agent de transport de courrier le plus employ
e sous Linux est smail-3.1.28, r
ealis
e
par Curt Landon Noll and Ronald S. Karr. Il est fourni dans la plupart des distribu-
tions binaires de Linux.
Compar
e 
a sendmail, smail est plus r
ecent et plus simple. Pour g
erer le courrier d'un
petit site sans routages tr
es compliqu
es, ils sont quasi 
equivalents. Pour les grands
sites, sendmail gagne 
a tous les coups, en raison de ses possibilit
es et de sa souplesse
de con guration.
204 Chapitre 13. Le courrier 
electronique
Tous deux supportent un ensemble de chiers de con gurationqui doivent^
etreadapt
es

a chaque cas. En dehors des informations n
ecessaires pour que le sous-syst
eme de
courrierfonctionne (comme le nom de la machine), il y a beaucoup d'autres param
etres
con gurables. Le chier de con guration principal de sendmail est tr
es dicile 
a
comprendre au premier abord; ceux de smail sont plus structur
es et beaucoup plus
clairs, mais n'o rent pas autant de possibilit
es pour ajuster le comportement du
programme. Quoi qu'il en soit, pour les petits sites UUCP ou Internet, le travail
demand
e par la con guration est sensiblement le m^
eme pour tous les deux.
Ce chapitre va pr
esenter le courrier 
electronique et les t^
aches qui vous attendent en
tant qu'administrateur. Les chapitres 14 et 15 vous permettront ensuite d'e ectuer
votre premi
ere con guration de l'un de ces agents de transfert de courrier. Vous
devriez trouver toutes les informations n
ecessaires pour le fonctionnement d'un petit
site, mais il y a beaucoup plus d'options possibles, et vous pourrez plus tard occuper
de longues soir
ees en essayant passionn
ement de mettre au point une con guration
bien plus personnelle.
Vers la n du chapitre, nous pr
esenterons rapidement la con guration de elm, une
interface utilisateur destin
ee au courrier 
electronique, tr
es courante sur de nombreux
syst
emes UNIX, y compris Linux.
Pour plus d'informations sur le courrier 
electronique sous Linux, consultez le docu-
ment de Vince Skahan, (
( Electronic Mail HOWTO )
), post
e r
eguli
erement sur Usenet.
Les distributions originales de elm, smail et sendmail contiennent 
egalement beaucoup
de documentations tr
es d
etaill
ees o
u vous devriez trouver la r
eponse 
a la plupart de
vos questions concernant leur con guration. Si vous voulez vous informer sur le cour-
rier 
electronique d'une mani
ere plus g
en
erale, un certain nombre de RFC traitent de
ce sujet, ils sont indiqu
es dans la bibliographie fournie 
a la n de ce guide.
13.1 Qu'est-ce qu'un message?
Un message de courrier 
electronique est constitu
e d'un corps, qui est le texte du
message, et de donn
ees sp
eciales indiquant les destinataires, les moyens de transport,
etc., un peu comme ce que vous voyez en regardant de pr
es l'enveloppe d'un courrier
postal.
Ces donn
ees administratives se divisent en deux cat
egories. Dans la premi
ere, se trou-
vent toutes les informations sp
eci ques aux moyens de transport, comme l'adresse
de l'exp
editeur et du destinataire. Elle est par cons
equent appel
ee l'enveloppe. Elle
peut ^
etre modi 
ee par les di 
erents logiciels d'acheminement qui feront transiter le
message.
La seconde cat
egorie contient toutes les donn
ees n
ecessaires 
a la manipulation du
message, et qui n'est pas sp
eci que d'un m
ecanisme de transport; on y trouve le
sujet, une liste de destinataires, et la date d'exp
edition. Sur de nombreux r
eseaux, il
est devenu standard de placer ces donn
ees au d
ebut du message, qui forment alors ce
13.1. Qu'est-ce qu'un message? 205
qui est appel
e l'en-t^
ete. Il est s
epar
e du corps du message par une ligne vide1.
La plupart des logiciels de transport de courrier du monde UNIX utilisent le format
d'en-t^
etes d
e ni dans le RFC 822. Son but 
etait 
a l'origine de d
e nir un standard
sur le r
eseau ARPANET, mais puisqu'il est pr
evu pour ^
etre ind
ependant de tout
environnement, il a 
et
e tr
es vite adapt
e 
a d'autres r
eseaux, y compris ceux bas
es sur
UUCP.
RFC 822 n'est toutefois que le plus petit d
enominateur commun; d'autres formats
ont r
ecemment 
et
e con
cus pour faire face aux besoins grandissants d'encryptage de
donn
ees, de caract
eres internationaux, et d'extensions multim
edia (MIME).
Dans tous ces standards, l'en-t^
ete est constitu
e de plusieurs lignes, s
epar
ees par des
caract
eres de saut de ligne. Chaque ligne est constitu
ee d'un nom de champ, com-
men
cant sur la premi
ere colonne, et de la valeur de ce champ, s
epar
ee par le caract
ere
(
( : )
) suivi d'une espace. Le format et la s
emantique de chaque champ varient selon
leur nom. Un champ peut s'
etendre sur plusieurs lignes, si la suivante commence par
le caract
ere de tabulation. Les champs peuvent appara^
tre dans n'importe quel ordre.
Voici un exemple d'en-t^
ete de courrier:
From brewhq.swb.de!ora.com!andyo Wed Apr 13 00:17:03 1994
Return-Path: brewhq.swb.de!ora.com!andyo
Received: from brewhq.swb.de by monad.swb.de with uucp
(Smail3.1.28.1 #6) id m0pqqlT-00023aB; Wed, 13 Apr 94 00:17 MET DST
Received: from ora.com (ruby.ora.com) by brewhq.swb.de with smtp
(Smail3.1.28.1 #28.6) id m0pqoQr-0008qhC; Tue, 12 Apr 94 21:47 MEST
Received: by ruby.ora.com (8.6.8/8.6.4) id RAA26438; Tue, 12 Apr 94 15:56 -0400
Date: Tue, 12 Apr 1994 15:56:49 -0400
Message-Id: 199404121956.PAA07787@ruby
From: andyo@ora.com (Andy Oram)
To: okir@monad.swb.de
Subject: Re: Your RPC section
G
en
eralement, tous les champs n
ecessaires sont g
en
er
es par l'interface de courrier
que vous utilisez, comme par exemple elm, pine, mush ou mailx. Toutefois, certains
sont facultatifs et peuvent ^
etre rajout
es par l'utilisateur. L'interface elm, par exemple,
permet d'
editer une partie de l'en-t^
ete du message. D'autres sont plac
es par l'agent de
transport de courrier. Voici une liste des champs les plus courants et leur signi cation:
From: Contient l'adresse 
electronique de l'exp
editeur, ainsi que son (
( vrai
nom )
) (facultatif). Il existe beaucoup de formats standards pour ce
champ.
To: Il s'agit de l'adresse du destinataire.
Subject: Le sujet, qui d
ecrit le contenu du courrier en quelques mots. Du
moins, c'est ce qu'il devrait faire.
1: Il est courant de rajouter une signature ou .sig aux courriers, contenant des informations sur
l'auteur, souvent suivies d'un dicton ou d'une plaisanterie. Elle est s
epar
ee du corps du message par
une ligne contenant (
( -- )
) suivi d'une espace.
206 Chapitre 13. Le courrier 
electronique
Date: La date 
a laquelle le courrier a 
et
e exp
edi
e.
Reply-To: Sp
eci e l'adresse 
a laquelle l'exp
editeur veut que les r
eponses 
even-
tuelles lui soient envoy
ees. Ce peut ^
etre tr
es utile si vous poss
edez
plusieurs adresses, mais que vous ne voulez recevoir le courrier qu'
a
celle que vous utilisez le plus souvent. Ce champ est optionnel.
Organization:
D
ecrit l'organisme, soci
et
e, universit
e, ou autres, qui est propri
etaire
de la machine d'o
u provient le courrier. Ce champ est facultatif; s'il
s'agit de votre ordinateur personnel, omettez-le ou mettez ce que
vous voulez.
Message-ID: Il s'agit d'une cha^
ne g
en
er
ee par l'agent de transport de courrier du
syst
eme o
u le message a 
et
e g
en
er
e; cet identi cateur est propre au
message, unique dans le monde entier.
Received: Chaque site traitant votre courrier (y compris ceux d'origine et de
destination) ins
ere ce champ dans l'en-t^
ete, indiquant son nom, un
identi cateur, la date et l'heure de r
eception, de quel site le message
est arriv
e,et quel logiciel de transport a
et
eutilis
e. Ainsi, vous pouvez
suivre facilement la route parcourue par le message et vous plaindre

a la personne responsable si quelque chose ne s'est pas bien pass
e.
X-nom-quelconque:
Aucun programme relatif au courrier ne doit se plaindre d'en-t^
etes
commen
cant par X-. Ce champ sert 
a ajouter des informations suppl
e-
mentaires concernant toute possibilit
e nouvelle qui n'est pas encore
d
e nie dans un document RFC, ou ne le sera jamais. Les listes de
di usion (
( Linux Activists )
) utilisent par exemple cette possibilit
e
pour la s
election du canal appropri
e, rep
er
e par X-Mn-Key: canal.
La seule exception 
a cette structure concerne la toute premi
ere ligne. Celle-ci com-
mence par le motcl
e From suivi d'une espace au lieu du caract
ere (
( deux-points)
). A n
de la distinguer du champ ordinaire From:, on la r
ef
erence souvent par From . Elle
contient le chemin que le message a emprunt
e selon la syntaxe UUCP (expliqu
ee plus
loin), la date et l'heure 
a laquelle il a 
et
e re
cu par la derni
ere machine qui l'a trait
e,
et une partie optionnelle sp
eci ant de quel h^
ote il est arriv
e. Puisque ce champ est
r
e
ecrit par chaque syst
eme voyant passer le message, il est parfois consid
er
e comme
faisant partie de l'enveloppe.
Le champ From est n
ecessaire pour des raisons de compatibilit
e avec d'anciens agents
de transport; il n'est pratiquement plus utilis
e, sauf par certaines interfaces qui s'en
servent pour marquer le d
ebut d'un message dans la boite aux lettres de l'utilisateur.
Pour 
eviter des ennuis potentiels dus 
a la confusion possible avec les lignes du corps
du message pouvant aussi commencer par (
( From )
), il est de coutume de modi er
chaque occurrence de ces lignes en la faisant pr
ec
eder du caract
ere .
13.2. Comment le courrier est-il d
elivr
e? 207
13.2 Comment le courrier est-il d
elivr
e?
En g
en
eral, le courrier est saisi par l'interm
ediaire d'une interface comme mail ou
mailx, ou encore d'un programme plus sophistiqu
e comme elm, mush ou pine. On
les appelle des MUA, Mail User Agents. Si vous exp
ediez un message, l'interface
le passera dans la plupart des cas 
a un autre logiciel pour qu'il soit distribu
e, que
l'on appelle le MTA (Mail Transport Agent, agent de transport du courrier). Sur
certains syst
emes, vous rencontrerez plusieurs MTA, sp
ecialis
es dans le courrier local
et distant; sur d'autres il s'agit du m^
eme programme. La commande permettant
de d
elivrer un courrier distant s'appelle g
en
eralement rmail, et s'il en existe une
particuli
ere pour les messages locaux, ce sera sans doute un nom comme lmail.
D
elivrer un courrier local ne consiste pas, bien s^
ur, qu'
a rajouter le message dans la
bo^
te aux lettres du destinataire. G
en
eralement,le MTA local sait reconna^
tredes alias
(adresses pointant vers d'autres adresses) et la r
eexp
edition (rediriger tout le courrier
de quelqu'un vers d'autres adresses). De plus, les messages qui ne peuvent pas ^
etre
distribu
es doivent revenir 
a leur exp
editeur, accompagn
es d'un message d'erreur.
Pour la distribution de courrier non local, le logiciel de transport d
epend de la nature
de la liaison. Si la destination se trouve sur un r
eseau utilisant TCP/IP, c'est g
e-
n
eralement le protocole SMTP qui est employ
e. SMTP signi e Simple Mail Transfer
Protocol, c'est un protocole de transfert de courrier par TCP/IP qui est d
e ni dans les
documents RFC 788 et RFC 821. Il se connecte en g
en
eral directement 
a la machine
du destinataire, et n
egocie le transfert du message avec son d
emon SMTP.
Dans les r
eseaux UUCP, le courrier est rarement distribu
e directement, mais transite
par di 
erents syst
emes interm
ediaires faisant le relais vers la machine destinataire.
Pour envoyer un message sur une liaison UUCP, le MTA 
emetteur ex
ecutera la com-
mande rmail sur le syst
eme distant gr^
ace 
a uux, en envoyant le message sur l'entr
ee
standard.
Puisque cette op
eration doit ^
etre r
ealis
ee pour chaque message, cela pourrait pro-
duire une surcharge de travail consid
erable sur une machine jouant le r^
ole de nud
important pour le courrier, et remplir le spoule UUCP de centaines de petits chiers
occupant beaucoup trop de place sur le disque dur2. Par cons
equent, certains MTA
permettent de rassembler plusieurs messages pour un syst
eme distant dans un seul
lot. Ce chier contient les commandes SMTP que la machine locale devrait normale-
ment ex
ecuter si une telle connexion directe 
etait employ
ee. C'est ce que l'on appelle
BSMTP, ou SMTP par lots ((
( batched SMTP )
)). Le lot est alors envoy
e au programme
rsmtp ou bsmtp du syst
eme distant, qui traitera les commandes contenues comme s'il
s'agissait d'une connexion SMTP normale.
2: L'espace disque est g
en
eralement allou
e par blocs de 1024 octets. Aussi, m^
eme un message de
400 octets utilisera 1 Ko d'espace disque
208 Chapitre 13. Le courrier 
electronique
13.3 Adresses 
electroniques
Pour le courrier 
electronique, une adresse est constitu
ee au minimum du nom d'une
machine g
erantle courrierdu destinataire, et de l'identi cation de ce dernier, reconnue
par son syst
eme. Ce peut ^
etre son nom d'utilisateur, aussi bien que tout autre chose.
D'autres m
ethodes d'adressage, comme X.400, emploient un ensemble plus g
en
eral
d'(
( attributs )
) pour retrouver la machine du destinataire dans le r
epertoire d'un
serveur X.500.
La mani
ere dont le nom de machine est interpr
et
e, c'est-
a-dire sur quel site votre
message nira par arriver, et la fa
con de combiner ce nom avec celui du destinataire
d
ependent 
etroitement du r
eseau sur lequel vous ^
etes connect
e.
Les sites Internet respectent le standard RFC 822, qui n
ecessite une notation de type
utilisateur@h^
ote.domaine, o
u h^
ote.domaine est le nom pleinement quali 
e de la
machine. Le signe du milieu, le (
( A commercial )
), se prononce (
( at )
) dans ce cas3.
Puisque cette notation ne met en jeu aucune route vers l'adresse de destination, et
ne donne que le nom (unique) de la machine, on la d
esigne par adresse absolue.
Dans l'environnement UUCP original, la forme dominante des adresses 
etait che-
min!h^
ote!utilisateur, chemin d
ecrivait une s
equence de machines par lesquels le
message devait passer avant d'atteindre sa destination. Cette construction s'appelle
la notation bang, tout simplement parce qu'un point d'exclamation est famili
erement
appel
e un (
( bang )
), chez les informaticiens anglophones. Aujourd'hui, la plupart des
r
eseaux bas
es sur UUCP ont adopt
e le standard RFC 822 ou comprennent au moins
ce type d'adressage.
Maintenant, il faut savoir que ces deux types d'adresses n'aiment pas trop ^
etre m
elan-
g
es. Consid
erons par exemple l'adresse machineA!utilisateur@machineB. Il n'est
pas du tout 
evident de savoir si le signe @ a priorit
e sur le bang, ou vice versa: devons-
nous envoyerle message
a machineB,qui le transmettra 
a machineA!utilisateurou
bien alors faut-il le passer 
a machineA, qui l'exp
ediera 
a utilisateur@machineB?
Les adresses comme celle-ci, qui m
elangent les deux types de notations, sont appel
ees
adresses hybrides. Notre exemple est un cas d'
ecole, il est g
en
eralement r
esolu en
donnant la priorit
e au signe @, ce qui signi era ici que le message sera transmis
d'abord 
a machineB.
Toutefois, il existe un moyen de sp
eci er des routes en restant conforme au RFC 822:
@machineA,@machineB:utilisateur@machineC d
enote l'adresse de utilisa-
teur sur l'h^
ote machineC, machine qui peut ^
etre jointe en passant par machineA
et machineB, dans l'ordre. Ce type d'adresse est une adresse de routage, nomm
ee
souvent route-addr.
En n, il y a l'op
erateur % (le signe pour cent): user%machineB@machineA sera
d'abord envoy
e 
a machineA, qui changera le signe pour cent le plus 
a droite (ici, c'est
3: Traduisez (
( at )
) par (
( chez )
) et vous constaterez que cette notation n'est pas si compliqu
ee 
a
comprendre, cela donne utilisateur chez h^
ote.domaine.
13.4. Le routage du courrier 209
le seul) en un signe @. L'adresse devient alors pour ce site utilisateur@machineB,
et le MTA passera le message le plus naturellement du monde 
a machineB qui le
d
elivrera 
a utilisateur. Ce type d'adressage est souvent appel
e (
( La vieille rustine
de l'ARPANET )
), et n'est pas encourag
e. N
eanmoins, beaucoup de MTA savent g
erer
et parfois g
en
erent ce genre de chose.
D'autres r
eseaux utilisent des m
ethodes d'adressages encore di 
erentes. Les r
eseaux
DECnet, par exemple, utilisent les deux caract
eres (
( :: )
) comme s
eparateur, ce qui
donne le format h^
ote::utilisateur4. En n, le standard X.400 emploie une notation
compl
etement di 
erente, d
ecrivant un destinataire par un ensemble de paires attribut-
valeur.
Sur FidoNet, chaque utilisateur est identi 
e par un code du type 2:320/204.9,consis-
tant en quatre nombres indiquant la zone (2 pour l'Europe), le r
eseau (320 pour Paris
et sa banlieue), le nud et le point (la machine personnelle de l'utilisateur). Les
adresses Fidonet peuvent facilement ^
etre transform
ees au format RFC 822, celle de
notre exemple peut s'
ecrire Thomas.Quinot@p9.f204.n320.z2. donet.org.
N'avions-nous pas dit que les noms de domaines sont faciles 
a retenir?
Nous verrons ce qu'implique l'utilisation de ces di 
erents types d'adresses dans les sec-
tions suivantes. Dans un environnement RFC 822, vous n'aurez toutefois que rarement
besoin d'autre chose que des adresses absolues comme utilisateur.h^
ote.domaine.
13.4 Le routage du courrier
L'action de diriger un message vers la machine du destinataire s'appelle le routage.
En plus de trouver un chemin du site exp
editeur vers la destination, le routage met
en jeu des tests d'erreurs et une optimisation en fonction de la vitesse et du co^
ut.
Il y a une grande di 
erence entre la fa
con dont un site UUCP g
ere le routage, et celle
employ
ee par un site Internet. Sur l'Internet, toute la t^
ache d'acheminer les donn
ees,
une fois que la machine de destination est connue par son adresse IP, est faite par la
couche IP du r
eseau; dans une zone UUCP, la route doit ^
etre indiqu
ee par l'utilisateur
ou g
en
er
ee par le MTA.
13.4.1 Routage du courrier sur l'Internet
Sur l'Internet, le routaged
epend enti
erement de l'h^
ote destinataire, o
u tout traitement

eventuel du courrier sera e ectu
e. Par d
efaut, le message est d
elivr
e 
a cette machine
en recherchant son adresse IP et en laissant ensuite le r
eseau faire son travail.
La plupart des sites feront en g
en
eral arriver le courrier sur un serveur toujours dispo-
nible, capable de g
erer tout le tra c et qui s'occupera de la distribution locale. Pour
4: Pour joindre une adresse DECnet depuis un environnement RFC 822, vous pouvez utiliser
h^
ote::utilisateur@relais, o
u relais est le nom d'une passerelle Internet-DECnet connue.
210 Chapitre 13. Le courrier 
electronique
faire conna^
tre ce service, le site publie dans le DNS un enregistrement de type MX
pour leur domaine local. MX signi e mail exchanger (
echangeur de courrier), et sert

a annoncer que l'h^
ote indiqu
e s'occupera de r
epartir le courrier pour toutes les ma-
chines de son domaine. Les enregistrements MX peuvent aussi ^
etre utilis
es pour g
erer
le courrier de machines qui ne sont pas connect
ees directement 
a l'Internet, comme
certains sites UUCP ou des r
eseaux transportant des informations con dentielles.
Ces MX se voient aussi associer une pr
ef
erence, sous la forme d'un nombre entier. S'il
existe plusieurs 
echangeurs de courrier pour un h^
ote, l'agent de transport essaiera de
passer le message 
a l'
echangeur qui a la plus faible valeur de pr
ef
erence, et il n'essaiera
les autres que si le premier est inaccessible. Si l'h^
ote local est lui-m^
eme un 
echangeur
pour l'adresse de destination, il ne doit pas renvoyer de messages 
a des h^
otes MX
ayant une pr
ef
erence sup
erieure 
a la sienne; cela permet d'
eviter des bouclages.
Supposons qu'une organisation, que nous appellerons toto, veuille que tout leur cour-
rier soit g
er
e par leur machine qui s'appelle laposte.toto.com. Ils auront alors dans
la base de donn
ees du DNS, des enregistrements MX comme celui-ci:
jaune.toto.com. IN MX 5 laposte.toto.com.
Il annonce laposte.toto.comcomme un 
echangeur de courrier pour d
elivrer un mes-
sage 
a destination de, par exemple, marcel@jaune.toto.com, avec une pr
ef
erence
de valeur 5. Un h^
ote d
esirant d
elivrer un message 
a cette adresse interrogera le DNS,
trouvera le MX pointant sur laposte. S'il n'y a pas d'autre MX ayant une pr
ef
erence
inf
erieure 
a 5, le message sera envoy
e 
a laposte, qui saura alors le diriger sur la
machine jaune.
Bien s^
ur, cet exemple n'est qu'une 
ebauche du fonctionnement des enregistrements
MX. Consultez le document RFC 974 pour obtenir plus d'informations sur le routage
du courrier sur l'Internet.
13.4.2 Routage du courrier dans le monde UUCP
La distribution du courrier sur les r
eseaux UUCP est beaucoup plus compliqu
ee que
sur l'Internet, car le logiciel de transport n'e ectue aucun routage lui-m^
eme. Autre-
fois, tous les messages devaient ^
etre adress
es par la m
ethode des bangs, qui consiste 
a
sp
eci er une liste d'h^
otes par lesquels faire passer le message, s
epar
es par des points
d'exclamation (les (
( bangs )
)), termin
ee par le nom de l'utilisateur. Pour envoyer
une lettre 
a l'utilisateur alfred sur une machine nomm
ee hopla, il fallait 
ecrire
eek!swim!hopla!alfred. Le courrier aurait 
et
e envoy
e de votre machine vers eek,
puis de l
a sur swim, et en n sur hopla.
L'inconv
enient de cette technique c'est qu'il faut se souvenir de toute la topologie
du r
eseau, des liaisons les plus rapides, etc. Pis, le moindre changement dans l'orga-
nisation (machines supprim
ees, liaisons modi 
ees) peut emp^
echer la distribution du
courrier si vous n'^
etes pas mis au courant de ce changement. En n, si vous d
em
enagez,
vous devrez probablement mettre 
a jour toutes ces routes.
13.4. Le routage du courrier 211
Ce routage 
a la source 
etait n
ecessaire en raison de la pr
esence de noms d'h^
otes
ambigus. Par exemple, supposons qu'il existe deux sites appel
es hopla; l'un aux

Etats-Unis, l'autre en France. Lorsque l'on 
ecrit hopla!alfred, de quel site s'agit-il?
Pour le pr
eciser, il faut sp
eci er quel est le chemin 
a utiliser pour joindre hopla.
A n de parer aux noms ambigus, la premi
ere 
etape fut la fondation du UUCP Map-
ping Project, 
a Rutgers University. Son but est d'enregistrer tous les noms ociels
de machines UUCP, avec des informations concernant leurs voisins et leur position
g
eographique; et de s'assurer que chaque nom est unique au monde. Toutes les infor-
mations collect
ees sont publi
ees sous la forme de cartes UUCP, distribu
ees r
eguli
ere-
ment via Usenet5. Apr
es suppression des commentaires, l'entr
ee d'un syst
eme dans
une carte ressemble 
a ceci:
renux
frmug(DAILY/2),
keltia(WEEKLY)
Cette entr
ee indique que la machine renux se connecte deux fois par jour 
a frmug,
et sur keltia une fois par semaine. Nous reviendrons en d
etail sur ce format un peu
plus loin.
Gr^
ace aux informations sur la connectivit
e contenues dans ces cartes, vous pouvez
g
en
erer automatiquement le chemin d'acc
es complet depuis votre machine vers n'im-
porte quel site. Ces informations sont g
en
eralement stock
ees dans le chier paths,
appel
e aussi la base de donn
ees pathalias. Supposons que les cartes indiquent que
vous pouvez joindre keltia via imladris; une entr
ee pathalias pour renux cr
e
ee 
a
partir de l'extrait de carte montr
e plus haut pourrait ressembler 
a ceci:
renux imladris!keltia!renux!%s
Si maintenant, vous donnez l'adresse de destination sous la forme rene@renux.uucp,
votre MTA utilisera la route ci-dessus et enverra le message 
a imladris, avec une
adresse d'enveloppe de keltia!renux!rene.
Cr
eer un chier paths 
a partir de la totalit
e des cartes UUCP n'est toutefois pas une
tr
es bonne id
ee. Les informations sont g
en
eralement distordues et parfois obsol
etes.
Par cons
equent, seul un petit nombre de sites importants utilise la totalit
e des cartes
UUCP du monde entier pour construire leurs chiers paths. La plupart des autres se
contentent de poss
eder les informations de routage concernant leurs voisins les plus
proches, et d'envoyer tout le courrier pour les sites absents de leur base de donn
ees
vers une machine mieux inform
ee, qui s'appelle alors le smart-host. Les machines ne
poss
edant qu'un seul lien UUCP ne font jamais aucun routage, et envoient tout leur
courrier 
a leur smart-host qui s'en occupera 
a leur place.
5: Les cartes des sites enregistr
es dans ce projet sont distribu
ees dans le groupe comp.mail.maps;
d'autres organisations peuvent di user des cartes s
epar
ees pour leurs r
eseaux.
212 Chapitre 13. Le courrier 
electronique
13.4.3 M
elanger UUCP et RFC 822
La meilleure solution aux probl
emes de routage du courrier dans les r
eseaux UUCP
est l'adoption du DNS. Bien s^
ur, il est impossible d'interroger un serveur de noms par
UUCP. N
eanmoins, beaucoup de sites UUCP se sont organis
es en petits domaines qui
coordonnent leurs routages entre eux. Dans les cartes, ces domaines annoncent une
ou deux machines comme leurs passerelles pour le courrier, ainsi il n'y a plus besoin
d'entr
ees sp
eci ques pour chaque h^
ote de ce domaine. Les passerelles g
erent tout le
courrier entrant et sortant pour le domaine en question; le routage e ectu
e entre les
machines composant ce domaine est compl
etement invisible au reste du monde.
Cela fonctionne tr
es bien avec la m
ethode de routage par les smart-hosts que nous ve-
nons de d
ecrire.L'information n
ecessaire
a l'int
egralit
edu routage n'est maintenue que
sur les passerelles; les petits sites d'un domaine n'auront que quelques paths r
edig
es 
a
la main indiquant comment diriger le courrier vers le smart-hosts et 
eventuellement 
a
l'int
erieur de leur domaine. Les passerelles n'ont plus besoin de conna^
tre tous les sites
UUCP du monde entier; en dehors du domaine qu'elles g
erent, il leur sut d'avoir
des routes vers d'autres domaines dans leur base de donn
ees. Par exemple, l'entr
ee pa-
thalias ci-dessous dirigera tout le courrier 
a destination des sites du domaine sub.org
vers schtroumpf:
.sub.org swim!schtroumpf!%s
Un message adress
e 
a claire@jones.sub.org sera envoy
e 
a swim avec une adresse
d'enveloppe de schtroumpf!jones!claire.
L'organisation hi
erarchis
ee de l'espace de noms permet aux serveurs de courrier de
m
elanger des routes bien sp
eci ques avec d'autres plus g
en
erales. Par exemple, un sys-
t
eme situ
e en France peut avoir des routes particuli
eres pour certains sous-domaines
de fr, mais router tout courrier 
a destination des machines du domaine us vers un
syst
eme situ
e aux U.S.A. Ainsi, le routage par domaine r
eduit consid
erablement la
taille des bases de donn
ees n
ecessaires, aussi bien que les t^
aches administratives.
Toutefois, le plus gros b
en
e ce apport
e par l'emploi de noms de domaines dans un
environnement UUCP, c'est que la conformit
e au standard RFC 822 permet une
interconnexion facile entre les r
eseaux UUCP et l'Internet. Beaucoup de domaines
UUCP poss
edent de nos jours un lien avec une passerelle Internet qui joue le r^
ole
de smart host. L'envoi de messages par l'Internet est beaucoup plus rapide, et les
informations de routage sont beaucoup plus ables puisque c'est le DNS qui entre en
jeu, au lieu des cartes UUCP.
Pour ^
etre joignables depuis l'Internet, les domaines UUCP poss
edent g
en
eralement un
enregistrement MX dans le DNS. Par exemple, supposons que moria appartient au
domaine orcnet.org. La machine gcc2.groucho.edu joue le r^
ole de leur passerelle
Internet. Par cons
equent, moria utiliserait gcc2 comme son smart host de sorte
que tout le courrier 
a destination d'autres domaines soit d
elivr
e par l'Internet. D'un
autre c^
ot
e, gcc2 annoncerait un MX pour *.orcnet.org et enverrait tout message
13.5. Format des cartes et du chier pathalias 213
arrivant pour les machines de orcnet 
a moria. L'ast
erisque dans *.orcnet.org est
un caract
ere g
en
erique qui correspondra 
a tous les h^
otes de ce domaine qui ne sont
associ
es 
a aucun autre enregistrement; c'est g
en
eralement ce qui doit ^
etre fait pour
les domaines uniquement UUCP.
Il reste un probl
eme: les programmes de transport par UUCP ne savent pas g
erer les
noms pleinement quali 
es. La plupart des programmes furent pr
evus pour traiter des
noms ne d
epassant pas huit caract
eres, parfois moins, et l'utilisation de caract
eres
non alphanum
eriques comme de simples points est hors de question avec la plupart
d'entre eux.
Par cons
equent, il est n
ecessaire de pouvoir e ectuer la correspondance entre les noms
RFC 822 et UUCP. La fa
con dont cela est r
ealis
e d
epend enti
erement de l'impl
emen-
tation. Une m
ethode courante consiste 
a utiliser le chier pathalias:
moria.orcnet.org ernie!bert!moria!%s
Cette entr
ee produira un chemin purement UUCP avec la notation par bangs 
a partir
d'une adresse sp
eci ant un nom pleinement quali 
e. Certains MTA proposent un
chier sp
ecial destin
e 
a ces op
erations; sendmail, par exemple, utilise un chier appel
e
uucpxtable.
La transformation inverse (qu'il est courant d'appeler (
( domainisation )
)), est parfois
n
ecessaire lors de l'envoi d'un courrier depuis un r
eseau UUCP vers l'Internet. Tant
que l'exp
editeur utilise un nom pleinement quali 
e pour l'adresse de destination, ce
probl
eme peut ^
etre 
evit
e en ne supprimant pas le nom du domaine de l'adresse d'en-
veloppe lors de l'envoi du message au smart host. Toutefois, il reste encore quelques
sites UUCP qui ne font partie d'aucun domaine. Ils sont alors domainis
es en leur
rajoutant le pseudo-domaine uucp.
13.5 Format des cartes et du chier pathalias
La base de donn
ees pathalias contient les principales informations de routage dans les
r
eseaux UUCP. Une entr
ee typique ressemble 
a la suivante (sites et chemins doivent
^
etre s
epar
es par des tabulations, et non par des espaces):
moria.orcnet.org ernie!bert!moria!%s
moria ernie!bert!moria!%s
Cette entr
ee fera que tout message pour moria sera d
elivr
e en passant par ernie et
bert. Il faut indiquer 
a la fois le nom pleinement quali 
e et le nom UUCP de moria
si le MTA ne sait pas faire la correspondance de l'un 
a l'autre.
Si vous voulez diriger tous les messages pour les h^
otes d'un domaine particulier vers
son relais de courrier, vous pouvez aussi sp
eci er un chemin dans la base de donn
ees
pathalias, indiquant le domaine comme une cible, pr
ec
ed
e d'un point. Par exemple,
214 Chapitre 13. Le courrier 
electronique
si toutes les machines de sub.org peuvent ^
etre atteintes par swim!smurf, l'entr
ee
pathalias s'
ecrira comme ceci:
.sub.org swim!smurf!%s
La r
ealisation manuelle d'un chier pathalias n'est acceptable que si votre site n'a pas
trop de routages 
a e ectuer. Sinon, il vaut mieux utiliser la commande pathalias qui
cr
eera le chier 
a partir des cartes UUCP. Ces cartes peuvent ^
etre maintenues bien
plus facilement, car il vous sut de rajouter ou de supprimer l'entr
ee d'un syst
eme
dans la carte et de relancer la commande pour recr
eer le nouveau chier. Bien que
les cartes publi
ees sur Usenet ne soient pratiquement plus utilis
ees pour le routage,
certains r
eseaux plus petits peuvent proposer leur propre jeu de cartes 
a cette n.
Un chier de cartes consiste principalement en une liste de sites, contenant les ma-
chines avec lesquelles le syst
eme est r
eguli
erement connect
e par UUCP, soit comme
appelant, soit comme appel
e. Le nom du syst
eme commence en premi
ere colonne, et
est suivi par une liste de liens, s
epar
es par des virgules. Cette liste peut s'
etendre sur
plusieurs lignes 
a condition que la suivante commence par une tabulation. Chaque
lien est constitu
e du nom du site suivi du co^
ut imaginaire de la connexion, indiqu
e
entre parenth
eses. Il s'agit d'une expression arithm
etique, faite de valeurs et de prix
symboliques. Les lignes commen
cant par un di
ese sont ignor
ees.
Par exemple, consid
erons moria, qui appelle swim.twobirds.comdeux fois par jour
et bert.sesame.com une fois par semaine. De plus, la liaison avec bert ne se fait
qu'avec un vieux modem 2400 bps, tr
es lent. La carte publi
ee par moria serait alors
la suivante:
moria.orcnet.org
bert.sesame.com(DAILY/2),
swim.twobirds.com(WEEKLY+LOW)
moria.orcnet.org = moria
La derni
ere ligne la ferait conna^
tre aussi sous son nom UUCP. Notez que DAILY/2
correspond 
a deux appels par jour, alors que DAILY*2 signi erait un appel tous les
deux jours.
Avec ces informations, la commande pathalias est capable de d
eterminer les routes
optimales 
a destination de tout site cit
e dans le chier paths, et de produire une base
de donn
ees pathalias qui pourra alors ^
etre utilis
ee pour le routage vers ces sites.
Le programme pathalias o re plusieurs autres possibilit
es, consultez sa page de ma-
nuel, ainsi qu'une liste compl
ete des prix symboliques.
Dans la carte, les commentaires contiennent g
en
eralement des informations suppl
e-
mentaires sur les sites d
ecrits. Il existe un format tr
es strict pour la sp
eci cation de
ces renseignements, de mani
ere 
a pouvoir les r
ecup
erer par programme. Par exemple,
la commande uuwho utilise une base de donn
ees r
ealis
ee 
a partir de ces cartes pour
acher toutes les informations selon un format agr
eable 
a lire.
13.6. Con guration de elm 215
Lorsque vous enregistrez votre site aupr
es d'un organisme qui distribue des cartes 
a
ses membres, vous devrez en principe remplir une telle entr
ee.
Voici un exemple d'entr
ee dans les cartes UUCP (en fait, il s'agit de celle du site de
l'auteur):
#N monad, monad.swb.de, monad.swb.sub.org
#S AT 486DX50; Linux 0.99
#O private
#C Olaf Kirch
#E okir@monad.swb.de
#P Kattreinstr. 38, D-64295 Darmstadt, FRG
#L 49 52 03 N / 08 38 40 E
#U brewhq
#W okir@monad.swb.de (Olaf Kirch); Sun Jul 25 16:59:32 MET DST 1993
#
monad brewhq(DAILY/2)
# Domains
monad = monad.swb.de
monad = monad.swb.sub.org
Le blanc suivant les deux premiers caract
eres doit ^
etre une tabulation. La signi cation
des champs est 
evidente; vous recevrez tout le d
etail lorsque vous vous enregistrerez.
Le champ L est le plus dicile 
a remplir: il donne votre position g
eographique en
latitude/longitude, et n'est plus utilis
e que pour dessiner la carte au format PostScript
qui montre tous les sites de chaque pays6.
13.6 Con guration de elm
Le programme elm est l'un des outils UNIX les mieux nomm
es: (
( elm )
) signi e (
( elec-
tronic mail)
), soit courrier 
electronique. Il o re une interface plein 
ecran tr
es puissante
et une aide ecace. Nous ne parlerons pas de son utilisation ici, mais seulement de
certaines de ses options de con guration.
En th
eorie, vous pouvez lancer elm sans l'avoir con gur
e, et avec un peu de chance,
tout devrait fonctionner quand m^
eme. Mais il y a malgr
e tout certaines options 
a
initialiser, bien qu'elles ne soient n
ecessaires qu'en quelques occasions.
Au d
emarrage, elm lit un ensemble de variables indiqu
ees dans le chier elm.rc se
trouvant dans le r
epertoire /usr/lib/elm. Ensuite, il tente de lire le chier .elm/elmrc
de votre r
epertoire personnel. Ce chier n'est g
en
eralement pas r
edig
e 
a la main, mais
cr
e
e automatiquement lorsque vous s
electionnez (
( save options )
) depuis le menu du
programme.
L'ensemble des options de votre chier elmrc est aussi disponible dans le chier global
elm.rc; le v^
otre ne servira qu'
a modi er certaines valeurs par d
efaut positionn
ees dans
la con guration globale.
6: Ces cartes g
eographiques sont post
ees r
eguli
erement dans news.lists.ps-maps.Attention, c'est
tr
es gros!
216 Chapitre 13. Le courrier 
electronique
13.6.1 Con guration g
en
erale par elm.rc
Dans le chier global elm.rc, vous devez positionner les options relatives au nom de
votre syst
eme. Par exemple, 
a (
( La bi
ere virtuelle )
), le chier de la machine kro
contiendrait:
#
# Le nom local
hostname = kro
#
# Le domaine
hostdomain = .bibine.com
#
# Le nom pleinement qualifi
e
hostfullname = kro.bibine.com
Ces options d
eterminent la notion qu'aura elm de votre syst
eme. Bien que ces in-
formations ne soient que rarement utilis
ees, vous devez les indiquer par pr
ecaution.
Notez qu'elles n'ont d'e et que lorsqu'elles se trouvent dans ce chier de con guration
global. Il est impossible de modi er ces valeurs depuis le chier personnel, pour des
raisons de s
ecurit
e 
evidentes.
13.6.2 Jeux de caract
eres nationaux
Il y a eu r
ecemment des propositions pour apporter au standard RFC 822 le support
de divers types de messages, comme le texte pur, des donn
ees binaires, des chiers
PostScript, etc. L'ensemble de documents RFC traitant de ces possibilit
esa
et
ebaptis
e
MIME, ou Multipurpose Internet Mail Extensions (extensions multi-usages au courrier
Internet). Entre autres choses, elles permettent au destinataire de savoir si un jeu de
caract
eres di 
erent de l'ASCII a 
et
e employ
e pour r
ediger le message, par exemple
pour obtenir des accents fran
cais. Ce standard est en grande partie support
e par elm.
Le jeu de caract
eres utilis
e en interne par Linux est conforme au standard ISO-8859-
1, 
egalement connu sous le nom de Latin-1. Tout message utilisant cet ensemble de
caract
eres doit (ou devrait) comporter la ligne suivante dans son en-t^
ete:
Content-Type: text/plain; charset=iso-8859-1
Le syst
eme r
ecepteur doit reconna^
tre ce champ et prendre les mesures appropri
ees
lors de l'achage du message. Le d
efaut pour les messages text/plain est une valeur
charset de us-ascii.
A n de pouvoir acher des messages avec d'autres caract
eres que l'ASCII, elm doit
savoir comment le faire. Par d
efaut, lorsqu'il re
coit un courrier dont le champ charset
est di 
erent de us-ascii (ou un champ Content-Type di 
erent de text/plain), il essaie
de l'acher en appelant une commande nomm
ee metamail. Les messages n
ecessitant
13.6. Con guration de elm 217
metamail sont indiqu
es par un M dans la toute premi
ere colonne de la liste du courrier
propos
ee par elm.
Comme le jeu de caract
eres natif de Linux est l'ISO-8859-1, il n'est pas n
ecessaire
d'appeler metamail pour acher des messages utilisant ces caract
eres. Si l'on indique

a elm que l'achage conna^
t l'ISO-8859-1, il l'achera instantan
ement, sans appeler
de programme externe. Il sut pour cela de positionner l'option suivante dans le
chier global elm.rc:
displaycharset = iso-8859-1
Notez que vous devez indiquer cette option m^
eme si vous n'allez jamais recevoir ou

emettre de messages comportant ces caract
eres: les personnes qui postent de tels
courriers con gurent leurs programmes pour qu'ils mettent le champ Content-Type
par d
efaut, qu'ils utilisent ces caract
eres ou ne postent que de l'ASCII.
Toutefois, cette option n'est pas susante. Le probl
eme est que lorsqu'il ache le
message avec son visionneur interne, elm appelle une fonction de biblioth
eque pour
chaque caract
ere, pour d
eterminer s'il est achable ou pas. Par d
efaut, cette fonction
ne reconna^
t que les caract
eres purement ASCII, et ache un point d'interrogation
pour tous les autres. Vous pouvez modi er ce comportement en positionnant la va-
riable d'environnement LC CTYPE 
a la valeur ISO-8859-1, ce qui indiquera 
a la
biblioth
eque que ces caract
eres sont achables. Sous Linux, le support pour l'inter-
nationalisation est pr
esent depuis la biblioth
eque libc-4.5.8.
Lorsque vous postez des messages contenant des caract
eres sp
eciaux du jeu ISO, vous
devez vous assurer de positionner deux autres variables dans le chier global elm.rc:
charset = iso-8859-1
textencoding = 8bit
Ainsi, elm indiquera correctement dans les en-t^
etes de tous les courriers di us
es que
le jeu de caract
eres est ISO-8859-1, et les enverra sur 8 bits (par d
efaut, le huiti
eme
bit est mis 
a z
ero pour tout transformer en 7 bits).
Bien s^
ur, toutes ces options peuvent aussi ^
etre positionn
ees dans le chier de con -
guration personnel elmrc de chaque utilisateur.
218 Chapitre 13. Le courrier 
electronique
219
Chapitre 14
Mise en route de smail
Ce chapitre sera une rapide initiation 
a la con guration de smail et vous donnera un
aper
cu des fonctionnalit
es o ertes. Bien que ce programme soit largement compatible
avec sendmail dans son comportement, ses chiers de con guration sont compl
etement
di 
erents.
Le chier de con guration principal s'appelle /usr/lib/smail/con g. Vous devrez obli-
gatoirement 
editer ce chier pour y placer les valeurs sp
eci ques 
a votre site. Si vous
n'^
etes qu'un petit syst
eme UUCP, vous n'aurez pratiquement jamais rien d'autre

a faire. D'autres chiers permettant la mise au point des options de routage et de
transport peuvent aussi ^
etre utilis
es, nous en parlerons bri
evement.
Par d
efaut, smail traite et d
elivre imm
ediatement tout le courrier. Si vous avez beau-
coup de tra c, vous pr
ef
ererez sans doute lui indiquer de rassembler tous les messages
dans ce que l'on appelle une queue, et de ne les traiter qu'
a intervalles r
eguliers.
Lorsque le courrier passe par un r
eseau TCP/IP, smail est tr
es souvent utilis
e en mode
d
emon: au d
emarrage du syst
eme, il est invoqu
e depuis rc.inet2 et se place en t^
ache
de fond, o
u il attend des connexions TCP sur le port SMTP (le port 25, en principe).
Cette m
ethode est 
a pr
ef
erer chaque fois que vous attendez un tra c important, car le
programme n'a pas 
a ^
etre lanc
e s
epar
ement 
a chaque connexion. L'alternative serait
de laisser inetd g
erer le port SMTP, il appellerait alors smail chaque fois qu'une
connexion sur se port se pr
esenterait.
Smail poss
ede plusieurs options contr^
olant son comportement; les d
ecrire en d
etail ici
ne vous serait pas tr
es utile. Heureusement, il supporte un certain nombre de modes
de fonctionnements standards, qui sont valid
es lorsque vous l'invoquez sous des noms
particuliers, comme par exemple rmail ou smtpd. G
en
eralement, ces alias sont des
liens symboliques vers l'unique binaire smail. Nous rencontrerons la plupart d'entre
eux lorsque nous aborderons les di 
erentes possibilit
es o ertes par ce programme.
220 Chapitre 14. Mise en route de smail
En toute circonstance, vous devrez avoir au moins deux liens pointant sur le pro-
gramme smail: /usr/bin/rmail et /usr/sbin/sendmail1. Lorsque vous r
edigez puis
exp
ediez un courrier avec une interface comme elm, le message sera pass
e 
a rmail
pour ^
etre d
elivr
e, avec la liste des destinataires sur la ligne de commandes. La m^
eme
chose se passe avec le courrier arrivant par UUCP. Quelques versions de elm invoquent
toutefois /usr/sbin/sendmail, au lieu de rmail, aussi est-il plus prudent de disposer des
deux commandes. Par exemple, si votre binaire de smail se trouve dans /usr/local/bin,
tapez ce qui suit pour cr
eer les liens corrects:
# ln -s /usr/local/bin/smail /usr/bin/rmail
# ln -s /usr/local/bin/smail /usr/sbin/sendmail
Si vous voulez entrer dans le d
etail de la con guration de smail, r
ef
erez-vous aux
pages de manuel smail(1) et smail(5). Si vous ne les poss
edez pas, vous les trouverez
dans les sources du programme.
14.1 Con guration UUCP
Pour utiliser smail dans un environnement uniquement UUCP, l'installation de base
est tr
es simple. Tout d'abord, v
eri ez que vous avez bien les deux liens symboliques
vers rmail et sendmail mentionn
es plus haut. Si vous comptez recevoir des lots SMTP
en provenance d'autres sites, vous devez aussi cr
eer un lien nomm
e rsmtp sur smail.
La distribution smail de Vince Skahan fournit un exemple de chier de con guration,
dont le nom est con g.sample; il se trouve dans /usr/lib/smail. Copiez-le sous le nom
de con g et 
editez-le pour y placer les valeurs sp
eci ques 
a votre site.
Consid
erons que votre machine s'appelle swim.twobirds.comet est enregistr
ee dans
les cartes UUCP en tant que swim. Votre smart host s'appelle ulysses. Votre chier
con g sera alors celui-ci:
#
# Nos noms de domaine
visible_domain=two.birds:uucp
#
# Notre nom pour les courriers 
emis
visible_name=swim.twobirds.com
#
# Ce sera le m^
eme pour UUCP
uucp_name=swim.twobirds.com
#
# Notre smart-host
smart_host=ulysses
1: Il s'agit de l'emplacement standard de sendmail sous Linux, si l'on suit les recommandations
du projet du (
( Linux File System Standard )
). Sur beaucoup d'autres syst
emes, sendmail se trouve
traditionnellement dans /usr/lib.
14.2. Con guration r
eseau 221
La premi
ere instruction renseigne smail sur les domaines auxquels votre site appar-
tient. Mettez leurs noms, s
epar
es par le caract
ere (
( : )
). Si le nom de votre site est
enregistr
e dans les cartes UUCP, vous devez 
egalement ajouter le pseudo-domaine
uucp. Lorsqu'il traite un message, smail d
etermine le nom de votre machine par l'ap-
pel syst
eme hostname(2), et teste l'adresse du destinataire pour la comparer 
a ce
nom, en y rajoutant tour 
a tour tous ces domaines. Si l'adresse correspond 
a l'un des
cas (ou au nom non quali 
e), le courrier est consid
er
e comme local et sera d
elivr
e 
a
l'utilisateur ou l'alias correspondant sur votre machine. Sinon, il est consid
er
e comme

etant distant, et smail tentera de l'exp
edier 
a la machine de destination.
La ligne visible name doit contenir un unique nom pleinement quali 
e, c'est celui que
vous voulez voir appara^
tre dans tout le courrier 
emis. Vous devez ^
etre certain que
le nom utilis
e est reconnu par smail comme celui de l'h^
ote local (par exemple, l'une
des combinaisons donn
ees avec l'attribut visible domain). Sinon, les r
eponses 
a vos
messages ne vous arriveraient jamais...
La derni
ere ligne indique le chemin 
a utiliser pour atteindre le smart host (d
ecrit dans
le chapitre pr
ec
edent). Avec cet exemple, smail enverra tout le courrier non local au
smart host. Le nom de cette machine doit ^
etre connu par UUCP, puisque c'est le
protocole utilis
e pour la liaison. Pour cela, consultez le chapitre 12.
Il reste une option dont nous n'avons pas encore parl
e: uucp name. Par d
efaut, smail
prend la valeur retourn
ee par hostname(2) pour indiquer les informations sp
eci ques

a UUCP, comme le chemin de retour donn
e dans la ligne From de l'en-t^
ete. Si votre
nom de machine n'est pas enregistr
e dans les cartes UUCP, vous devez dire 
a smail
d'y mettre votre nom pleinement quali 
e 
a la place2. Il sut pour cela de l'ajouter
gr^
ace 
a l'option uucp name du chier con g.
Vous trouverez aussi dans /usr/lib/smail un autre chier, paths.sample. Il s'agit d'un
exemple de chier paths; mais vous n'en aurez pas besoin, 
a moins que vous n'ayez
des liaisons avec plusieurs sites pour la distribution du courrier. Si vous devez utiliser
ce chier, il faudra de toute fa
con le r
ediger vous-m^
eme, ou le cr
eer 
a partir des cartes
UUCP. Ce chier paths sera d
ecrit plus loin.
14.2 Con guration r
eseau
Si votre site contient deux h^
otes (ou plus) connect
es en r
eseau, vous devrez d
esigner
l'un deux pour la gestion de vos connexions UUCP vers le monde ext
erieur. Entre les
machines du r
eseau, vous ferez passer le courrier par SMTP sur TCP/IP. Revenons
dans notre entreprise (
( La biere virtuelle )
), o
u gueuze est con gur
ee en passerelle
UUCP.
2: Voil
a pourquoi: supposons que votre syst
eme s'appelle nomade,maisqu'il ne soit pas enregistr
e
dans les cartes. Supposons aussi qu'il existe dans ces cartes un site nomm
e nomade, quelque part
dans le monde. Tout le courrier adress
e 
a nomade!root,m^
eme post
e depuis un de vos voisins UUCP,
arrivera sur l'autre machine et non chez vous.
222 Chapitre 14. Mise en route de smail
Dans un environnement r
eseau, il vaut mieux placer toutes les bo^
tes aux lettres
des utilisateurs sur un unique syst
eme de chiers qui est mont
e par NFS sur toutes
les autres machines. Cela permet d'utiliser n'importe quel h^
ote sans avoir 
a d
epla-
cer son courrier (ou pis, tester cinq ou six bo^
tes aux lettres di 
erentes chaque ma-
tin). Par cons
equent, il vous faudra aussi faire en sorte que les adresses des exp
e-
diteurs soient ind
ependantes de la machine sur laquelle les messages sont r
edig
es.
La pratique courante est de ne mettre que le nom de domaine seul, sans faire ap-
para^
tre d'h^
ote particulier. Par exemple, ce sera marcel@bibine.com au lieu de
marcel@trappiste.bibine.com. Nous verrons comment faire pour que le nom de
domaine soit reconnu par le serveur comme un nom valide pour votre site.
Une autre m
ethode permettant de conserver toutes les bo^
tes aux lettres sur un h^
ote
central consiste 
a utiliser POP ou IMAP. POP signi e (
( Post Oce Protocol )
) et
permet aux utilisateurs d'acc
eder 
a leur courrier par une simple connexion TCP/IP.
IMAP est un protocole interactif d'acc
es au courrier ((
( Interactive Mail Access Pro-
tocol )
)) similaire 
a POP, mais plus g
en
eral. Clients et serveurs POP et IMAP ont 
et
e
port
es sous Linux et sont disponibles sur les sites di usant ce syst
eme.
14.2.1 R
edaction des chiers de con guration
La con guration n
ecessaire pour nos brasseurs fonctionne de la mani
ere suivante:
Toutes les machines, except
e le serveur de courrier gueuze, routent tous les messages
sortants vers ce serveur par la m
ethode du smart host. Le serveur gueuze envoie
tout ce courrier vers le vrai smart host qui g
ere la totalit
e du courrier, cette machine
s'appelle moria.
Le chier con g de tous les h^
otes, autres que gueuze est le suivant:
#
# Notre domaine:
visible_domain=bibine.com
#
# Comment nous d
esirons nous appeler
visible_name=bibine.com
#
# Routage SMTP vers le smart host gueuze:
smart_path=gueuze
smart_transport=smtp
Il est tr
es semblable 
a ce que nous avons utilis
e pour un site uniquement UUCP. La
plus grosse di 
erence, c'est le transport utilis
e pour envoyer les messages vers le smart
host, qui est ici SMTP. L'attribut visible domain indique 
a smail d'
ecrire le nom de
domaine sp
eci 
e dans tout le courrier 
emis, au lieu du nom local de la machine depuis
laquelle le message est post
e.
Sur la passerelle UUCP geuze, le chier con g est un petit peu di 
erent:
#
14.2. Con guration r
eseau 223
# Nos noms de machines
hostnames=bibine.com:gueuze.bibine.com:gueuze
#
# Comment nous d
esirons nous appeler
visible_name=bibine.com
#
# Dans le monde uucp, nous sommes connus sous le nom bibine.com
uucp_name=bibine.com
#
# Smart transport: par uucp vers moria
smart_path=moria
smart_transport=uux
#
# Nous avons autorit
e pour notre domaine
auth_domains=bibine.com
Ici, la m
ethode pour indiquer 
a smail quel est notre nom local est di 
erente. Au lieu
de lui donner une liste de domaines et de le laisser trouver le nom de machine par un
appel syst
eme, nous lui indiquons explicitement ce qu'il en est. La liste contient 
a la
fois le nom pleinement quali 
e et celui non quali 
e, et le nom du domaine lui-m^
eme.
Ainsi, smail reconna^
tra marcel@bibine.com comme une adresse locale et d
elivrera
le message 
a l'utilisateur marcel.
La variable auth domains indique les domaines pour lesquels gueuze est consid
er
e
comme ayant autorit
e. C'est-
a-dire que si smail re
coit un courrier adress
e 
a ma-
chine.bibine.com, o
u machine ne correspond 
a aucun h^
ote local, il refusera le
message et le renverra 
a son exp
editeur. Si cette entr
ee n'est pas pr
esente, tout mes-
sage de ce type serait envoy
e au smart host, qui le renverrait 
a son tour 
a gueuze,
cette partie de ping-pong pouvant durer ind
e niment. (Heureusement, il est possible
de xer une limite maximale 
a ce genre de boucle et le message sera nalement perdu.)
14.2.2 Mise en route de smail
Tout d'abord, vous devez d
ecider si vous utiliserez smail en tant que d
emon s
epar
e,
ou si vous pr
ef
erez que ce soit inetd qui g
ere le port SMTP et qui l'appelle le moment
venu. G
en
eralement, la solution du d
emon autonome est pr
ef
erable sur le serveur de
courrier, car cela charge beaucoup moins la machine que de multiples invocations de
smail chaque fois qu'une connexion se produit. Comme le serveur d
elivre 
egalement le
courrier aux utilisateurs, vous prendrez la solution par inetd sur la plupart des autres
machines.
Quel que soit le mode choisi, vous devez v
eri er que le chier /etc/services de chaque
h^
ote contient bien l'entr
ee suivante:
smtp 25/tcp # Simple Mail Transfer Protocol
Elle d
e nit le port TCP que smail devra utiliser pour les conversations SMTP. Le
port 25 est le standard d
e ni par le RFC (
( Assigned Numbers )
).
224 Chapitre 14. Mise en route de smail
En mode d
emon, smail se place en t^
ache de fond et attend les connexions sur le port
SMTP. Pour chacune, il cr
ee un nouveau processus par l'appel syst
eme fork() pour
le temps de la conversation. Le d
emon smail est g
en
eralement lanc
e au d
emarrage du
syst
eme depuis le script rc.inet2 
a l'aide de la commande suivante:
/usr/local/bin/smail -bd -q15m
L'option -bd indique le mode d
emon, et -q15m lui demande de traiter tous les messages

eventuellement accumul
es dans la queue de courrier toutes les 15 minutes.
Si vous pr
ef
erez qu'il soit g
er
e par inetd, votre chier /etc/inetd.conf devra contenir
une ligne comme celle-ci:
smtp stream tcp nowait root /usr/sbin/smtpd smtpd
Le programme smtpd devra ^
etre un lien symbolique vers le binaire de smail. Souvenez-
vous que pour toute modi cation de ce chier, vous devez demander 
a inetd de le relire
en lui envoyant un signal HUP, pour que les modi cations soient prises en compte.
Le mode d
emon et le mode inetd sont mutuellement exclusifs. Si vous utilisez smail en
d
emon, vous devez vous assurer de bien mettre en commentaire toute ligne relative au
service smtp dans le chier inetd.conf. Inversement, si vous l'utilisez par inetd, v
eri ez
que rc.inet2 ne lance pas le d
emon smail.
14.3 Si le courrier ne passe pas
En cas de probl
eme, vous disposez de plusieurs possibilit
es d'investigation. La pre-
mi
ere chose 
a regarder, ce sont les chiers de trace de smail. Ils se trouvent dans
/var/spool/smail/log et se nomment log le et paniclog. Le premier contient toutes les
transactions, alors que le second n'est destin
e qu'aux messages d'erreur relatifs 
a la
con guration.
Voici une entr
ee du chier log le:
04/24/94 07:12:04: [m0puwU8-00023UB] received
| from: root
| program: sendmail
| size: 1468 bytes
04/24/94 07:12:04: [m0puwU8-00023UB] delivered
| via: gueuze.bibine.com
| to: root@gueuze.bibine.com
| orig-to: root@gueuze.bibine.com
| router: smart_host
| transport: smtp
Nous y voyons qu'un message de l'utilisateur root ayant pour adresse de destination
root@gueuze.bibine.com a 
et
e correctement d
elivr
e 
a la machine gueuze par le
protocole SMTP.
14.3. Si le courrier ne passe pas 225
Les courriers que smail ne peut pas d
elivrer g
en
erent une entr
ee similaire, mais avec
un message d'erreur 
a la place de la partie delivered:
04/24/94 07:12:04: [m0puwU8-00023UB] received
| from: root
| program: sendmail
| size: 1468 bytes
04/24/94 07:12:04: [m0puwU8-00023UB] root@gueuze.bibine.com ... deferred
(ERR_148) transport smtp: connect: Connection refused
L'erreur ci-dessus est typique lorsque smail reconna^
t correctement que le message
doit ^
etre d
elivr
e 
a gueuze, mais qu'il n'arrive pas 
a se connecter sur le service SMTP
de cette machine. Si cela se produit, vous devez avoir un probl
eme de con guration,
ou le support de TCP est absent dans votre binaire de smail.
Ce cas n'est pas si rare. Il a circul
e des versions pr
ecompil
ees de smail, y compris dans
certaines distributions de Linux, sans support pour le r
eseau TCP/IP. Si vous ^
etes en
possession de l'une d'elles, vous devrez recompiler correctement le programme. Pour
v
eri er, vous pouvez tester si smail supporte TCP en connectant par telnet le port
SMTP de votre machine. Voici 
a quoi ressemble une connection r
eussie:
$ telnet localhost smtp
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 renux.frmug.fr.net Smail3.1.28.1 #3 ready at Sun, 25 Dec 94 14:59 MET
QUIT
221 renux.frmug.fr.net closing connection
Si ce test n'ache pas la banni
ere SMTP (la ligne commen
cant par le code 220),
v
eri ez d'abord que votre con guration est vraiment correcte avant de vous lancer
dans la compilation de smail, que nous allons maintenant d
ecrire.
Si vous rencontrez un probl
eme que vous n'arrivez pas 
a situer dans les messages
d'erreurs g
en
er
es par smail, vous pouvez mettre en route les messages de d
eboguage.
Il sut d'employer l'option -d suivie d'une valeur facultative, sp
eci ant le niveau
de verbosit
e d
esir
e (ne mettez pas d'espace entre l'option et la valeur). Toutes les
op
erations qu'e ectuera smail s'acheront alors 
a l'
ecran, ce qui pourra vous aider 
a
situer 
a quel moment le probl
eme se produit.
Si vraiment rien ne va plus, vous pouvez invoquer le mode Rogue de smail en lui
passant l'option -bR sur la ligne de commandes. La page de manuel dit 
a peu pr
es
ceci: (
( Entrez dans le monde hostile des messages g
eants, o
u d
e lent les standards
RFC. Tente de descendre au niveau de protocole 26, et de revenir 
a la normale. )
)
Cette option ne r
eglera s^
urement pas vos probl
emes, mais elle vous apportera peut-
^
etre quelque consolation.:-)
226 Chapitre 14. Mise en route de smail
14.3.1 Compilation de smail
Si vous ^
etes certain que le support r
eseau manque dans votre version de smail, vous
devrez vous procurer les sources. Vous les trouverez sur tous les sites di usant Linux,
et bien d'autres serveurs FTP. Si vous avez obtenu Linux sur un CD-ROM, elles se
trouvent sans aucun doute dessus3.
Pour compiler smail, vous devez partir de l'ensemble des chiers de con guration four-
nis avec la distribution newspak de Vince Skahan (vous gagnerez un temps pr
ecieux,
m^
eme si vous ^
etes un programmeur con rm
e). Pour valider le support du r
eseau
TCP/IP, vous devez positionner la macro DRIVER CONFIGURATION du chier
conf/EDITME soit 
a bsd-network, soit 
a arpa-network. La premi
ere valeur est cor-
recte pour une utilisation sur r
eseau local, mais pour l'Internet il faudra choisir la
seconde. La di 
erence est que l'option arpa-network inclut un pilote pour le service
BIND, capable de reconna^
tre les enregistrements MX, ce que bsd-network ne sait pas
faire.
14.4 Modes de distribution du courrier
Comme nous l'avons vu, smail est capable de d
elivrer les messages imm
ediatement, ou
de les mettre en attente dans une queue pour les g
erer plus tard. Si vous choisissez la
queue, smail stockera tout le courrier dans le r
epertoire messages de /var/spool/smail.
Il ne traitera rien tant qu'on ne lui demandera pas de le faire. (L'op
eration s'appelle
en anglais (
( running the queue )
), ce que certains traduisent de mani
ere humoristique
par (
( vider la queue )
).)
Vous pouvez choisir parmi trois modes en positionnant l'attribut delivery mode dans
le chier con g sur l'une des valeurs foreground, background, ou queued. Cela s
elec-
tionnera respectivement le traitement en avant-plan (gestion imm
ediate des messages
qui arrivent), en arri
ere-plan (le courrier est d
elivr
e par un processus ls de smail),
et en le d'attente. Le courrier entrant sera toujours mis dans une queue, quelle que
soit l'option choisie, si la variable bool
eenne queue only est positionn
ee dans le chier
con g.
Si vous validez cette le d'attente, vous devrez vous assurer qu'elle est trait
ee r
eguli
e-
rement, en g
en
eral toutes les 10 
a 15 minutes. Si vous utilisez smail en mode d
emon,
vous devrez ajouter l'option -q10m sur la ligne de commandes pour que la queue soit
trait
ee toutes les 10 minutes environ. Vous pouvez aussi faire invoquer la commande
runq par cron 
a intervalles r
eguliers. Cette commande est un lien sur smail.
Vous pouvez acher le contenu courant de la queue en invoquant smail avec l'option
-bp ; ou alors vous pouvez appeler la commande mailq, qui est l
a encore un simple
3: Si vous avez (
( achet
e )
) une distribution de Linux comportant smail, le vendeur est tenu de vous
fournir le code source de ce programme sans autre suppl
ement de prix que l'exp
edition du support,
selon la licence de copie de smail.
14.5. Options diverses du chier con g 227
lien sur smail:
$ mailq -v
m0pvB1r-00023UB From: root (in /var/spool/smail/input)
Date: Sun, 24 Apr 94 07:12 MET DST
Args: -oem -oMP sendmail root@gueuze.bibine.com
Log of transactions:
Xdefer: root@gueuze.bibine.com reason: (ERR_148) transport smtp:
connect: Connection refused
Elle montre ici qu'un seul message est en attente. La trace de transaction (qui ne
sera ach
ee que si vous appelez mailq avec l'option -v) peut donner la raison pour
laquelle il est toujours en attente d'^
etre d
elivr
e. Si aucune tentative de distribution
n'a encore 
et
e faite, aucune trace de transaction ne sera indiqu
ee.
M^
eme si vous n'employez pas de le d'attente, smail l'utilisera quand m^
eme en cer-
taines occasions, lorsqu'il ne peut d
elivrer un message en raison d'un probl
eme mo-
mentan
e. Dans le cas de connexions SMTP, ce peut ^
etre une machine injoignable,
mais le courrier sera aussi stock
e si le syst
eme de chiers est plein. Il faut donc imp
e-
rativement traiter la queue au moins toutes les heures, sinon les 
eventuels messages
en attente y resteraient pour l'
eternit
e.
14.5 Options diverses du chier con g
Voici quelques-unes des options les plus utiles que vous pouvez positionner dans le
chier de con guration:
error copy postmaster
Si cette variable bool
eenne est positionn
ee, tout message d'erreur
g
en
erera un courrier au postmaster. Il faut faire suivre cette variable
du signe plus (+) dans le chier con g pour valider ce mode.
max hop count Si le nombre de hops (nombre d'h^
otes d
eja travers
es par le mes-
sage) est sup
erieur ou 
egal 
a cette valeur, toute tentative de distri-
bution distante r
esultera en un message d'erreur, retourn
e 
a l'exp
e-
diteur. Cette option est utilis
ee pour pr
evenir les bouclages in nis.
Le nombre de hops est g
en
eralement calcul
e en comptant la quantit
e
de champs Received dans l'en-t^
ete du message, mais peut aussi ^
etre
indiqu
e explicitement par l'option -h de la ligne de commandes.
La valeur par d
efaut de cette variable est 20.
postmaster L'adresse du postmaster. Si l'adresse Postmaster ne peut pas ^
etre
r
esolue en une adresse locale valide, c'est celle-ci qui sera utilis
ee en
dernier lieu. Sa valeur par d
efaut est root.
228 Chapitre 14. Mise en route de smail
14.6 Routage et distribution
Smail divise la distribution du courrier en trois t^
aches di 
erentes, g
er
ees respective-
ment par le module routeur, le module directeur, et le module de transport.
Le routeur r
esout toutes les adresses distantes, d
eterminant vers quel h^
ote le message
doit ^
etre envoy
e et quel type de transport doit ^
etre utilis
e. En fonction de la nature
de la liaison, di 
erents transports comme UUCP ou SMTP peuvent ^
etre employ
es.
Les adresses locales sont pass
ees au module directeur, qui r
esout les alias ou les relais.
Par exemple, ce peut ^
etre un alias ou une liste de di usion, ou l'utilisateur peut
vouloir renvoyer tout son courrier 
a une autre adresse. Si la destination qui en r
esulte
est distante, elle est g
er
ee par le module routeur pour ce routage suppl
ementaire,
sinon il est d
ecid
e d'un transport pour la distribution locale. En principe, le cas le
plus courant sera l'ajout 
a une bo^
te aux lettres, mais il est aussi possible que les
messages soient envoy
es 
a une commande externe ou ajout
es 
a tout autre chier.
Le module de transport est responsable de la m
ethode de transfert qui a 
et
e choisie.
Il essaie de d
elivrer le message, et en cas d'
echec, g
en
ere un courrier de rejet ou le
stocke en attente d'une nouvelle tentative.
Avec smail, vous avez toute libert
e pour con gurer ces t^
aches. Pour chacune, un cer-
tain nombre de pilotes sont fournis, et vous pouvez choisir celui dont vous avez besoin.
Vous les d
ecrivez 
a smail dans trois chiers, nomm
es routers, directors et transports,
situ
es dans /usr/lib/smail. Si ces chiers n'existent pas, le programme prendra des
valeurs par d
efaut raisonnables qui devraient fonctionner pour beaucoup de sites uti-
lisant SMTP ou UUCP pour le transport. Si vous d
esirez changer le comportement de
smail concernant le routage, ou modi er un transport, vous devez prendre les chiers
d'exemples fournis dans la distribution source du programme4. Copiez ces exemples
dans /usr/lib/smail, et modi ez-les selon vos besoins. Vous trouverez des exemples
dans l'annexe B.
14.7 Routage des messages
Lorsqu'on lui passe un message, smail commence par regarder si la destination est
locale ou distante. Si elle correspond 
a l'un des noms locaux con gur
es dans le chier
con g, le message est pass
e au module directeur. Sinon, smail donne l'adresse de des-
tination 
a un certain nombre de pilotes de routage pour trouver 
a quel site s'adresser.
Ils peuvent ^
etre d
ecrits dans le chier routers; s'il n'existe pas, c'est un ensemble de
routeurs par d
efaut qui sera utilis
e.
L'h^
ote de destination est pass
e 
a tous les routeurs tour 
a tour, et celui qui trouve
la route la plus sp
eci que est s
electionn
e. Consid
erons un message adress
e 
a al-
fred@toto.titi.com. Un routeur peut conna^
tre une route par d
efaut pour tous les
4: Les chiers de con guration par d
efaut se trouvent dans le r
epertoire samples/generic.
14.7. Routage des messages 229
h^
otes du domaine titi.com, alors qu'un autre a des informations sur toto.titi.com.
Dans ce cas, comme c'est le dernier qui est le plus sp
eci que, c'est lui qui sera choisi.
Si deux routeurs arrivent 
a 
egalit
e, c'est le premier rencontr
e dans le chier routers
qui sera s
electionn
e.
Maintenant, ce routeur sp
eci e un transport 
a utiliser, par exemple UUCP, et g
e-
n
ere une nouvelle adresse de destination. La nouvelle adresse est pass
ee au mo-
dule de transport avec le nom de la machine 
a laquelle renvoyer le message. Dans
notre exemple ci-dessus, smail pourra trouver que toto.titi.com peut ^
etre atteint
par UUCP en utilisant le chemin ernie!bert. Il g
en
erera alors une nouvelle cible,
bert!toto.titi.com!alfred, qui sera l'adresse d'enveloppe pour le transport UUCP
qui sera pass
ee 
a ernie.
Avec la con guration par d
efaut, sont disponibles les modules routeurs suivants:
{ Si l'adresse de la machine de destination peut ^
etre r
esolue par les fonctions
gethostbyname(3) ou gethostbyaddr(3), le message sera d
elivr
e par SMTP. La
seule exception sera lorsque cette adresse correspondra 
a la machine locale; il
sera alors pass
e au module directeur.
Les adresses IP sont 
egalement reconnues comme noms l
egaux, tant qu'elles
peuvent ^
etre r
esolues par la fonction gethostbyaddr(3). Par exemple, duge-
nou@[149.76.12.4] est une adresse valide, bien que peu habituelle; elle cor-
respond selon nos exemples 
a l'adresse de l'utilisateur dugenou sur la machine
quark.physique.groucho.edu.
Si votre machine est sur l'Internet, ces routeurs ne sont pas ceux qu'il vous faut
car ils ne reconnaissent pas les enregistrements de type MX. Nous verrons plus
loin ce qu'il faut faire dans ce cas.
{ Si /usr/lib/smail/paths, la base de donn
ees pathalias, existe, smail essaiera de
trouver la machine destinataire (amput
ee de tout pseudo-domaine .uucp) dans
ce chier. Le courrier 
a destination d'une adresse trouv
ee par ce routeur sera
d
elivr
e par UUCP en utilisant le chemin indiqu
e dans la base de donn
ees.
{ L'adresse (amput
ee de tout pseudo-domaine .uucp) sera compar
ee 
a la sortie
de la commande uuname pour tester si la cible est en fait un voisin UUCP. Si
c'est le cas, le message sera d
elivr
e par UUCP.
{ Si l'adresse n'a pu ^
etre g
er
ee par aucun des routeurs pr
ec
edents, le message sera
d
elivr
e au smart host. Le chemin vers cette machine, et le transport 
a utiliser,
sont con gur
es dans le chier con g.
Ces valeurs par d
efaut fonctionnent pour beaucoup de petits sites, mais 
echouent
d
es que le routage n
ecessaire est un peu plus compliqu
e. Si vous ^
etes confront
e 
a
l'un des probl
emes que nous allons expliquer ci-dessous, vous devrez installer votre
propre chier routers pour modi er ces comportements par d
efaut. Vous en trouverez
un exemple dans l'annexe B, qui pourra vous servir de point de d
epart. Certaines
230 Chapitre 14. Mise en route de smail
distributions de Linux sont fournies avec un ensemble de chiers de con guration

etudi
es pour contourner ces dicult
es.
Le pire des cas est probablement lorsque votre machine est reli
ee 
a l'ext
erieur 
a la fois
par des liaisons UUCP et des connexions IP temporaires, avec PPP ou SLIP. Vous
aurez dans votre chier hosts, le nom de certains h^
otes avec lesquels vous communiquez
de temps en temps en IP, et smail tentera de d
elivrer tout courrier pour ces machines
par SMTP. Ce n'est s^
urement pas ce que vous d
esirez, car m^
eme si la liaison SLIP est
r
eguli
erement active, le transfert par SMTP est bien plus lent que par UUCP. Avec
la con guration par d
efaut, il n'y a pas de solution.
Pour 
eviter ce probl
eme, il va falloir que smail teste le chier paths avant d'interroger
le resolver, et que vous mettiez tous les h^
otes pour lesquels vous voulez forcer un
transport UUCP dans ce chier. Si vous ne voulez jamais utiliser SMTP, vous pou-
vez 
egalement mettre en commentaire tout ce qui concerne les routeurs bas
es sur le
resolver.
La con guration par d
efaut sou re d'un autre probl
eme: elle ne peut faire de r
eel
routage Internet, car le routeur ne sait pas 
evaluer les MX. Pour rem
edier 
a cela,
vous devez mettre entre commentaires le routeur par d
efaut et supprimer les com-
mentaires de celui qui utilise BIND. Il existe cependant des distributions de Linux qui
fournissent un binaire de smail dans lequel le support de BIND n'est pas compil
e. Si
vous validez le bon routeur, mais que vous obtenez dans le chier paniclog un message
disant: (
( router inet hosts: driver bind not found )
), vous devrez recompiler
smail (voyez la section (
( Con guration r
eseau )
) plus haut).
En n, l'utilisation du pilote uuname est en g
en
eral une mauvaise id
ee. D'une part,
il g
en
erera une erreur de con guration si vous n'avez pas install
e UUCP, car il ne
trouvera pas la commande uuname. D'autre part, vous pouvez avoir plus de sites
indiqu
es dans votre chier Systems de UUCP, que vous n'avez de liaisons pour le
courrier. Il peut s'agir de machines avec lesquelles vous n'
echangez que des chiers ou
des News Usenet, par exemple.
Pour contourner le premier probl
eme, il est facile de substituer un shell-script 
a la
commande uuname, qui fera un simple exit 0. La solution la plus propre est toutefois
d'
editer le chier routers pour supprimer ce pilote.
14.7.1 La base de donn
ees paths
Smail s'attend 
a trouver la base de donn
ees pathalias dans le chier paths du r
epertoire
/usr/lib/smail. Ce chier n'est pas obligatoire, aussi si vous ne comptez pas e ectuer
de tels routages, supprimez-le s'il existe.
Il s'agit d'un chier ASCII, tri
e par ordre alphab
etique, qui contient des entr
ees
mettant en correspondance des noms de sites avec des chemins UUCP. Le tri est obli-
gatoire en raison de l'algorithme de recherche employ
e par smail. Les commentaires
ne sont pas autoris
es, et les noms de sites doivent ^
etre s
epar
es des chemins par une
14.8. Gestion des adresses locales 231
tabulation. Les bases de donn
ees pathalias sont pr
esent
ees avec un peu plus de d
etails
dans le chapitre 13.
Si vous r
ealisez ce chier 
a la main, vous devez faire bien attention d'y mettre tous les
noms l
egaux d'un site. Par exemple, si une machine est connue 
a la fois par un nom
purement UUCP et un nom pleinement quali 
e, il faudra une entr
ee pour les deux
cas. Le chier peut ^
etre tri
e par la commande standard sort(1).
Si votre site est juste un petit site UUCP isol
e en bout de cha^
ne, aucun chier paths
ne sera n
ecessaire; il sut de con gurer le smart host dans le chier con g, et laisser
cette machine s'occuper de router tous vos messages pour vous.
14.8 Gestion des adresses locales
Le plus souvent, une adresse locale n'est qu'un nom d'utilisateur, et le message est d
e-
livr
e dans sa bo^
te aux lettres, /var/spool/mail/nom-utilisateur. Mais il existe d'autres
cas ou cette adresse est un alias, le nom d'une liste de di usion, ou une autre adresse

a laquelle l'utilisateur veut renvoyer son courrier. Dans tous ces cas, cette adresse est
expans
ee en une nouvelle liste d'adresses, qui peuvent ^
etre soit locales, soit distantes.
En dehors de ces cas (
( normaux )
), smail peut g
erer d'autres types de destinations
locales, comme des noms de chiers et des tubes vers des commandes. Ce ne sont
pas 
a proprement parler des adresses, aussi est-il impossible d'envoyer un courrier 
a,
disons, /etc/passwd@bibine.com; elles ne sont valides que si elles ont 
et
e prises
dans un chier de renvoi ou d'alias.
Un chier sera n'importe quoi commen
cant par le caract
ere slash (/) ou par un tilde
(~). Ce dernier r
ef
erence le r
epertoire personnel de l'utilisateur et n'est possible que
si le nom de chier provient du chier .forward ou d'une entr
ee de renvoi dans la
bo^
te aux lettres (voir plus loin). Lorsqu'il d
elivre un message dans un chier, smail
le rajoute 
a la n des donn
ees d
ej
a existantes, ou cr
ee le chier s'il n'existait pas.
Une commande tube5 peut ^
etre n'importe quelle commande UNIX pr
ec
ed
ee du sym-
bole tube (|). Dans ce cas, smail passe la commande et ses arguments au shell, sans
le | du d
ebut. Le message est envoy
e sur l'entr
ee standard de cette commande.
Par exemple, pour envoyer une liste de di usion dans un forum local, vous pouvez
utiliser un shell-script, appelons-le mon ltre, et positionner un alias local qui d
elivre
tous les messages de cette liste 
a ce script en utilisant |monfiltre.
Si l'invocation contient des espaces, il faut la mettre entre quotes ( ). En raison des
probl
emes de s
ecurit
e mis en jeu, la commande ne sera pas ex
ecut
ee si l'adresse a 
et
e
obtenue d'une fa
con douteuse (par exemple, si le chier d'alias d'o
u provient l'adresse
est en 
ecriture pour tout le monde).
5: Pipe.
232 Chapitre 14. Mise en route de smail
14.8.1 Utilisateurs locaux
Une adresse locale d
enote le plus souvent une bo^
te aux lettres d'utilisateur. Il s'agit
d'un chier situ
e dans /var/spool/mail qui porte le nom de cet utilisateur. Il a le mode
660, les propri
etaires 
etant l'utilisateur et le groupe mail. S'il n'existe pas, smail le
cr
eera.
Notez que, bien que /var/spool/mail soit le r
epertoire standard pour les bo^
tes aux
lettres, certains programmes peuvent ^
etre compil
es avec d'autres chemins d'acc
es,
comme par exemple /usr/spool/mail. Si le courrier 
echoue toujours, v
eri ez ce chemin
d'acc
es et cr
eez un lien symbolique vers /var/spool/mail si n
ecessaire.
Smail requiert deux adresses: MAILER-DAEMON et Postmaster. Lorsqu'il g
e-
n
ere un courrier de rejet pour un message impossible 
a d
elivrer, une copie est en-
voy
ee au compte postmaster pour examen (au cas o
u ce serait d^
u 
a un probl
eme de
con guration). L'utilisateur MAILER-DAEMON est utilis
e comme exp
editeur du
message de rejet.
Si ces adressesn'aboutissent pas 
a des comptes valides sur votresyst
eme, smail enverra
automatiquement tout ce qui est destin
e 
a MAILER-DAEMON 
a postmaster, et
si ce dernier n'existe pas non plus, ce sera root qui r
ecup
erera le tout. En g
en
eral, on
positionne postmastercomme un alias du compte de l'utilisateur qui est responsable
de l'administration du courrier 
electronique.
14.8.2 Renvoi de courrier
Tout utilisateur peut rediriger son courrier vers une autre adresse par l'une des deux
m
ethodes support
ees par smail. La premi
ere consiste 
a mettre
Forward to destinataire, : : :
dans la premi
ere ligne de son chier de bo^
te aux lettres. Tout son courrier sera alors
envoy
e aux destinataires indiqu
es. L'autre solution est de cr
eer un chier .forward
dans son r
epertoire personnel, contenant la liste des destinataires, s
epar
es par des
virgules. Avec cette m
ethode, toutes les lignes du chier sont lues et interpr
et
ees.
N'importe quel type d'adresse peut ^
etre utilis
e. Un exemple pratique de chier .for-
ward pendant la p
eriode des vacances pourrait ^
etre:
marcel, |vacation
La premi
ere adresse d
elivre le courrier 
a l'utilisateur marcel, et la seconde appelle la
commande vacation, destin
ee 
a envoyer un petit mot 
a l'exp
editeur pour lui indiquer
la situation.
14.8. Gestion des adresses locales 233
14.8.3 Les alias
Le programme smail est capable de manipuler des chiers d'alias compatibles avec
ceux connus par le programme sendmail de Berkeley. Les entr
ees sont de la forme:
alias: destinataires
O
u destinataires est une liste d'adresses, s
epar
ees par des virgules, qui seront sub-
stitu
ees 
a cet alias. La liste peut s'
etendre sur plusieurs lignes si la ligne suivante
commence par une tabulation.
Une possibilit
e suppl
ementaire o erte par smail consiste 
a pouvoir g
erer des listes
de di usion directement depuis le chier d'alias: si vous sp
eci ez:include:fichier
comme destinataire, smail lira le chier indiqu
e et son contenu sera consid
er
e comme
une liste de destinataires.
Le chier d'alias principal se nomme /usr/lib/aliases. Si vous choisissez de rendre ce
chier modi able par tout le monde, smail ne d
elivreraaucun message aux commandes
shell qu'il y rencontrera, par s
ecurit
e. Voici un exemple de chier /usr/lib/aliases :
# bibine.com fichier /usr/lib/aliases
hostmaster: marcel
postmaster: marcel
usenet: alfred
# La liste de diffusion des d
eveloppeurs.
developpement: rene, remy, roberto, boudinus
/var/mail/log/developpement
owner-developpement: roberto
# Les annonces d'int
er^
et g
en
eral sont envoy
ees 
a tout
# le staff
annonces: :include: /usr/lib/smail/staff,
/var/mail/log/annonces
owner-annonces: root
# Envoie la liste de diffusion ppp vers un forum local.
ppp-list: |/usr/local/lib/monfiltre local.listes.ppp
Si une erreur se produit sur une adresse g
en
er
ee depuis le chier aliases, smail ten-
tera d'envoyer une copie du message d'erreur 
a l'alias (
( owner )
) (le propri
etaire).
Par exemple, si lors de la r
epartition de la liste de di usion de d
eveloppement, il est
impossible de d
elivrer le courrier 
a boudinus, une copie du message d'erreur sera
post
ee 
a l'exp
editeur, aussi bien qu'
a postmaster et owner-developpement (ro-
berto dans cet exemple). Si cette derni
ere adresse n'existe pas, aucun message d'erreur
suppl
ementaire ne sera g
en
er
e.
Lorsqu'il d
elivre du courrier dans des chiers ou lorsqu'il invoque des programmes
indiqu
es dans le chier aliases, smail devient l'utilisateur nobody le temps de l'op
e-
ration, par s
ecurit
e. Ce peut ^
etre tr
es g^
enant, particuli
erement lorsque la destination
est un chier. Dans l'exemple ci-dessus, les chiers du r
epertoire log doivent pouvoir
^
etre 
ecrits par nobody et doivent lui appartenir, sinon rien n'y sera d
elivr
e.
234 Chapitre 14. Mise en route de smail
14.8.4 Listes de di usion
Au lieu d'utiliser le chier aliases, les listes de di usion peuvent aussi ^
etres g
er
ees
par des chiers situ
es dans le r
epertoire /usr/lib/smail/lists. Une liste de di usion
nomm
ee restaurants sera d
ecrite par le chier lists/restaurants, qui devra contenir les
adresses des membres de cette liste, s
epar
ees par des virgules. Il peut y avoir plusieurs
lignes, et on peut y introduire des commentaires par le traditionnel signe di
ese.
Pour chaque liste de di usion, un utilisateur (ou un alias) dont le nom est de la
forme owner-nom-de-la-liste doit exister; toute erreur se produisant lors de la
r
esolution des adresses sera rapport
ee 
a cet utilisateur. C'est aussi l'adresse qui sera
utilis
ee comme 
etant celle de l'exp
editeur sur tous les messages 
emis, par le champ
Sender de l'en-t^
ete.
14.9 Transport par UUCP
Un certain nombre de transports compil
es dans smail font appel 
a la s
erie de pro-
grammes composant UUCP. Dans un environnement UUCP, le courrier est g
en
era-
lement d
elivr
e en invoquant rmail sur la machine distante, en lui passant le message
sur l'entr
ee standard et l'adresse d'enveloppe sur la ligne de commandes. Sur votre
machine, rmail doit ^
etre un lien vers le programme smail.
Lorsqu'il passe un message 
a UUCP, smail convertit l'adresse de destination en un
chemin UUCP, avec la notation par bangs. Par exemple, utilisateur@machine sera
transform
een machine!utilisateur.Chaque occurrence de l'op
erateurd'adressage%
est pr
eserv
ee,par cons
equentune adressecomme utilisateur%machine@passerelle
deviendra alors passerelle!utilisateur%machine. Toutefois, smail ne g
en
erera ja-
mais ce type d'adresses lui-m^
eme.
Alternativement, smail peut envoyer et recevoir des lots BSMTP par UUCP. Avec
BSMTP, un ou plusieurs messages sont rassembl
es en un seul lot qui contient les
commandes que le MTA local aurait ex
ecut
ees si une v
eritable connexion SMTP avait

et
e 
etablie. Cette m
ethode est souvent utilis
ee pour 
economiser de la place disque.
Le chier transports donn
e en exemple dans l'annexe B contient un transport bsmtp
associ
e qui g
en
ere des lots BSMTP partiels dans un r
epertoire d'attente. Ils devront
ensuite ^
etre combin
es en lots d
e nitifs par un shell-script qui rajoutera les commandes
HELO et QUIT n
ecessaires.
Pour valider le transport bsmtp sur des liens UUCP sp
eci ques, vous devrez utiliser
les chiers method (consultez la page de manuel smail(5) pour plus de d
etails). Si
vous n'avez qu'une seule liaison UUCP et que vous employez le routeur smart host,
vous pouvez mettre en service les lots SMTP en mettant la variable de con guration
smart transport 
a bsmtp au lieu de uux.
Pour recevoir des lots SMTP via UUCP, vous devez v
eri er que vous poss
edez la
commande d'extraction correspondant aux lots que le site distant vous pr
epare. Si ce
14.10. Transport par SMTP 235
dernier utilise aussi smail, vous devrez cr
eer un lien nomm
e rsmtp vers le programme
smail. S'il s'agit de sendmail, vous devrez installer un shell-script que vous appellerez
/usr/bin/bsmtp, qui fera tout simplement (
( exec rsmtp )
) (un lien symbolique ne
marchera pas).
14.10 Transport par SMTP
Smail supporte un pilote SMTP permettant de d
elivrer du courrier par une connexion
TCP6. Il est capable de d
elivrer un message 
a un nombre quelconque d'adresses
sur une machine, dont le nom est sp
eci 
e soit sous la forme pleinement quali 
ee
pouvant ^
etre r
esolu par la couche r
eseau, soit sous forme d'adresse IP en notation
d
ecimale, contenue entre crochets. G
en
eralement, les adresses r
esolues par l'un des
pilotes des routeurs BIND, gethostbyname(3) ou gethostbyaddr(3) seront atteintes
par le transport SMTP.
Le pilote SMTP tentera imm
ediatement de se connecter 
a la machine distante par le
port smtp indiqu
e dans /etc/services. Si la connexion ne peut se faire, smail retentera
l'op
eration un peu plus tard.
D
elivrer du courrier sur l'Internet n
ecessite que les routes vers l'adresse de destina-
tion soient sp
eci 
ees selon le format des adresses de routage (route-addr) d
ecrit dans
le chapitre 13, plut^
ot que dans la notation par bangs7. Par cons
equent, smail trans-
formera une adresse comme utilisateur%machine@passerelle, o
u passerelle est
atteinte, par exemple, par le chemin machine1!machine2!machine3, en l'adresse
de routage:
@machine2,@machine3:utilisateur%machine@passerelle, qui sera donc en-
voy
ee 
a machine1 comme adresse d'enveloppe du message. Pour valider ces transfor-
mations (avec le pilote BIND int
egr
e), vous devrez 
editer l'entr
ee pour le pilote smtp
dans le chier transports. Un exemple de chier transports est donn
e dans l'annexe B.
14.11 Quali cation de noms
Il est quelquefois n
ecessaire de d
etecter les noms d'h^
otes non quali 
es (c'est-
a-dire
sans nom de domaine) sp
eci 
es dans une adresse d'exp
editeur ou de destinataire,
par exemple en cas de passerelle entre deux r
eseaux dont l'un n
ecessite des noms
pleinement quali 
es. Sur un relais Internet-UUCP, les noms de machines non qua-
li 
es doivent ^
etre mis dans le pseudo-domaine uucp par d
efaut. Des modi cations
d'adresses autres que celles-ci sont tr
es discutables.
6: Les auteurs l'appellent (
( simple)
). Pour les futures versions de smail, ils annoncent une r
e
ecriture
totale qui g
erera ce cas beaucoup plus ecacement.
7: Toutefois, l'usage de routes sur l'Internet est fortement d
econseill
e. Il faut utiliser des noms
pleinement quali 
es.
236 Chapitre 14. Mise en route de smail
Le chier /usr/lib/smail/qualify indique 
a smail quels noms de domaines rajouter 
a
quels noms d'h^
otes. Les entr
eesde ce chier consistent en un nom de machine commen-

cant sur la premi
ere colonne, suivi par un nom de domaine. Le signe di
ese introduit
un commentaire. Ces entr
ees sont recherch
ees dans l'ordre o
u elles apparaissent.
Si ce chier n'existe pas, aucune quali cation de noms ne sera e ectu
ee.
Le caract
ere * correspond 
a tout nom de machine, ce qui vous permet d'associer tout
h^
ote non mentionn
e auparavant dans un domaine par d
efaut. Il ne doit ^
etre utilis
e
que pour la derni
ere entr
ee, bien entendu.

A (
( La bi
ere virtuelle )
), toutes les machines ont 
et
e con gur
ees pour utiliser des
noms pleinement quali 
es dans les adresses des exp
editeurs. Les adresses re
cues non
quali 
ees sont consid
er
ees ^
etre toutes dans le domaine uucp, aussi il sut d'une
entr
ee dans le chier qualify:
# /usr/lib/smail/qualify, derni
ere modification le 25 Dec. 94 par Noel
#
* uucp
237
Chapitre 15
Sendmail+IDA
15.1 Introduction 
a Sendmail+IDA
On dit souvent que celui qui n'a jamais 
edit
e un chier sendmail.cf n'est pas un
v
eritable administrateur UNIX. La l
egende dit aussi qu'il ne faut jamais le faire deux
fois, sous peine de devenir fou.
Sendmail est un programme o rant des possibilit
es incroyables. Pour la plupart des
gens, il est aussi incroyablement dicile 
a apprendre et 
a comprendre. Tout pro-
gramme dont la r
ef
erence absolue (sendmail, par Brian Costales, Eric Allman et Neil
Rickert) fait 792 pages, a de quoi 
epouvanter les plus t
em
eraires.
Sendmail+IDA est di 
erent. Avec lui, plus besoin d'
editer le redoutable chier send-
mail.cf, il permet 
a l'administrateur de d
e nir le routage et la con guration sp
eci ques
au site par des chiers relativement simples 
a comprendre, appel
es tables. Passer 
a
Sendmail+IDA peut vous faire 
economiser beaucoup d'heures de travail et de stress.
Compar
e aux principaux autres agents de transport de courrier, il n'y a probablement
rien qui ne puisse ^
etre fait plus rapidement et simplement qu'avec Sendmail+IDA.
Les t^
aches classiques consistant 
a con gurer un site UUCP ou Internet deviennent
simples 
a accomplir. Les con gurations qui sont normalement longues et complexes
sont faciles 
a cr
eer et
a maintenir.
A l'heure o
u nous 
ecrivons ces lignes, la version courante, sendmail5.67b+IDA1.5, est
disponible par FTP anonyme sur le site vixen.cso.uiuc.edu. Elle se compile sous
Linux sans aucune modi cation1.
1: La version courante, 
a l'heure o
u ces lignes sont traduites, est sendmail 8.6.9, qui est fournie sous
forme binaire dans les distributions de Linux et utilis
ee sur bien d'autres syst
emes. Elle est beaucoup
plus simple et universelle, et sa con guration n'a plus rien 
a voir avec sendmail5.67b+IDA1.5 qui,
bien que d
ecrit dans ce livre, est obsol
ete.
238 Chapitre 15. Sendmail+IDA
Tous les chiers de con guration requis pour la compilation de Sendmail+IDA, son
installation et son utilisation sous Linux sont inclus dans l'archive newspak-2.2.tar.gz,
disponible par FTP anonyme sur le site d'archivage sunsite.unc.edu, dans le r
eper-
toire /pub/Linux/system/Mail.
15.2 Aper
cu des chiers de con guration
Le programme sendmail se con gure par un chier de con guration syst
eme (typique-
ment /etc/sendmail.cf ou /usr/lib/sendmail.cf) dont la syntaxe ne ressemble 
a aucun
des langages que vous avez pu rencontrer auparavant. 
Editer sendmail.cf pour obtenir
une con guration sur mesure peut ^
etre une exp
erience traumatisante pour certains.
Avec Sendmail+IDA, tout cela devient du pass
e. Toutes les options sont d
e nies par
des tables et une syntaxe tr
es simple 
a assimiler. Elles sont con gur
ees en ex
ecutant
m4 (un processeur de macro-instructions) ou dbm (un processeur de base de donn
ees)
sur un certain nombre de chiers, par l'interm
ediaire de Make les fournis avec les
sources.
Le chier sendmail.cf ne d
e nit que le comportement par d
efaut du syst
eme. Pra-
tiquement, toutes les adaptations sp
eci ques sont faites par un certain nombre de
tables optionnelles plut^
ot qu'en modi ant directement sendmail.cf. Voici la liste de
ces tables:
mailertable D
e nit le comportement pour les domaines ou les h^
otes distants.
uucpxtable Force le transfert du courrier par UUCP pour les h^
otes qui sont au
format DNS.
pathtable D
e nit les chemins UUCP vers les domaines ou h^
otes distants.
uucprelays Court-circuite le chemin pathaliaspour les h^
otes distants bien connus.
genericfrom Convertit les adresses internes en adresses g
en
eriquesvisibles du reste
du monde.
xaliases Convertit les adresses g
en
eriques en adresses internes valides.
decnetxtable Convertit les adresses RFC-822 en adresse DECnet.
15.3 Le chier sendmail.cf
Le chier sendmail.cf de Sendmail+IDA n'est pas 
edit
e 
a la main, mais est g
en
er
e

a partir d'un chier de con guration m4 fourni par l'administrateur syst
eme local.
Nous appellerons ce chier sendmail.m4.
15.3. Le chier sendmail.cf 239
Il contient quelques d
e nitions, et ne fait essentiellement que pointer vers les tables,
o
u le vrai travail se fait. En g
en
eral, il sut de sp
eci er les informations suivantes:
{ Les noms de chiers et chemins d'acc
es utilis
es sur le syst
eme local.
{ Le nom (ou les noms) par lequel le site est connu pour le courrier 
electronique.
{ Quel programme doit d
elivrer le courrier par d
efaut (et peut-^
etre quel est le
smart-host).
Toute une vari
et
e de param
etres peuvent ^
etre d
e nis pour 
etablir le comportement
du site local ou pour forcer la con guration compil
ee par d
efaut. Ces options sont
identi 
ees dans le chier ida/cf/OPTIONS, dans le r
epertoire source.
Un chier sendmail.m4 destin
e 
a une con guration minimale (UUCP ou SMTP avec
tout le courrier non local envoy
e 
a un smart-host directement connect
e) peut ne pas
d
epasser 10 
a 15 lignes, commentaires exclus.
15.3.1 Exemple de chier sendmail.m4
Un chier sendmail.m4 pour la machine gueuze de l'entreprise (
( La bi
ere virtuelle )
)
est repr
esent
e dans la gure 15.1. Pour le courrier avec tous les h^
otes du r
eseau des
brasseurs, gueuze utilise SMTP; et elle envoie tous les messages pour les autres
destinations par UUCP 
a moria, qui est la passerelle vers l'Internet.
En fait, la plupart des gens n'appellent pas leur chier de con guration sendmail.m4.
Ils lui donnent un nom en relation avec celui de la machine; gueuze.m4 dans notre
cas. Ce nom n'a aucune importance, tant que la sortie s'appelle bien sendmail.cf.
15.3.2 Param
etres couramment utilis
es dans sendmail.m4
Un petit nombre d'items du chier sendmail.m4 sont syst
ematiquement n
ecessaires,
les autres peuvent ^
etre ignor
es si les valeurs par d
efaut vous conviennent. Les sections
qui vont suivre d
ecrivent chaque param
etre de l'exemple de la gure 15.1 avec plus
de d
etails.
Param
etres d
e nissant les chemins d'acc
es
dnl #define(LIBDIR,/usr/local/lib/mail)dnl # o
u vont les fichiers support
LIBDIR d
e nit le r
epertoire dans lequel Sendmail+IDA ira chercher les chiers de
con guration, les di 
erentes tables dbm, et les d
e nitions locales sp
eciales. Dans une
distribution binaire typique, ce param
etre est compil
e dans le programme et n'a pas
besoin d'^
etre explicitement indiqu
e dans le chier sendmail.m4.
240 Chapitre 15. Sendmail+IDA
dnl #---------------- EXEMPLE DE FICHIER SENDMAIL.M4 -------------------
dnl # (La cha^
ne 'dnl' est l'
equivalent m4 d'un commentaire de ligne)
dnl # Il est pr
ef
erable de ne pas changer le LIBDIR compil
e dans le programme
dnl #define(LIBDIR,/usr/local/lib/mail)dnl # o
u vont les fichiers support
define(LOCAL_MAILER_DEF, mailers.linux)dnl # prog. d
elivrant le courrier local
define(POSTMASTERBOUNCE)dnl # postmaster re
coit les rejets
define(PSEUDODOMAINS, BITNET UUCP)dnl # ne pas essayer DNS sur ceux-l
a
dnl #-------------------------------------------------------------------
dnl #
define(PSEUDONYMS, gueuze.bibine.com gueuze.UUCP bibine.com)
dnl # noms par lesquels nous sommes
dnl # connus
define(DEFAULT_HOST, gueuze.bibine.com)dnl # notre 'nom' primaire pour
dnl # le courrier
define(UUCPNAME, gueuze)dnl # notre nom uucp
dnl #
dnl #------------------------------------------------------------------
dnl #
define(UUCPNODES, |uuname|sort|uniq)dnl # nos voisins uucp
define(BANGIMPLIESUUCP)dnl # assurons-nous que le courrier
define(BANGONLYUUCP)dnl # uucp sera trait
e correctement
define(RELAY_HOST, moria)dnl # notre smart-host
define(RELAY_MAILER, UUCP-A)dnl # nous joignons moria par uucp
dnl #
dnl #--------------------------------------------------------------------
dnl #
dnl # les diff
erentes tables dbm de recherche
dnl #
define(ALIASES, LIBDIR/aliases)dnl # alias syst
eme
define(DOMAINTABLE, LIBDIR/domaintable)dnl # domainisation des noms
define(PATHTABLE, LIBDIR/pathtable)dnl # base de donn
ees chemins uucp
define(GENERICFROM, LIBDIR/generics)dnl # adresses 'from' g
en
eriques
define(MAILERTABLE, LIBDIR/mailertable)dnl # mailers par h^
ote ou par domaine
define(UUCPXTABLE, LIBDIR/uucpxtable)dnl # chemins vers les h^
otes uucp
define(UUCPRELAYS, LIBDIR/uucprelays)dnl # court-circuite pathalias
dnl #
dnl #-----------------------------------------------------------------------
dnl #
dnl # inclusion du 'vrai' code qui fait fonctionner le tout
dnl # (fourni avec le code source)
dnl #
include(Sendmail.mc)dnl # ENTR
EE INDISPENSABLE !!!
dnl #
dnl #---------------- FIN DE L'EXEMPLE DE FICHIER SENDMAIL.M4 ---------------
Fig. 15.1 - Exemple du chier de con guration gueuze.m4.
15.3. Le chier sendmail.cf 241
La ligne de l'exemple commence par les trois lettres dnl, ce qui signi e qu'il s'agit
d'un commentaire.
Pour modi er l'endroit o
u vous d
esirez placer les chiers de con guration, supprimez
la cha^
ne dnl, indiquez le chemin d'acc
es voulu, puis reconstruisez et r
einstallez le
chier sendmail.cf.
D
e nition du programme d
elivrant le courrier local
define(LOCAL_MAILER_DEF, mailers.linux)dnl # prog. pour courrier local
La plupart des syst
emes d'exploitation proposent un programme pour d
elivrer le
courrier local. Sur beaucoup de versions d'UNIX, les noms de ces programmes sont
d
ej
a inclus dans le binaire de sendmail.
Sous Linux, il est n
ecessaire d'indiquer quel sera le programme appropri
e car il n'est
pas forc
ement pr
esent dans la distribution que vous avez install
ee. Il sut de sp
eci er
la valeur de LOCAL MAILER DEF dans le chier sendmail.m4.
Par exemple, pour que ce soit le programme deliver, tr
es souvent utilis
e dans ce but2,
vous positionnerez LOCAL MAILER DEF 
a mailers.linux.
Le chier suivant devra alors ^
etre install
e sous le nom de mailers.linux dans le r
e-
pertoire point
e par LIBDIR. Il d
e nit le programme deliver comme le mailer interne
Mlocal avec les param
etres corrects, a n que sendmail puisse correctement d
elivrer
le courrier destin
e au syst
eme local. 
A moins que vous ne soyez un expert sendmail,
vous n'aurez pas int
er^
et 
a modi er cet exemple.
# -- /usr/local/lib/mail/mailers.linux --
# (local mailers for use on Linux )
Mlocal, P=/usr/bin/deliver, F=SlsmFDMP, S=10, R=25/10, A=deliver $u
Mprog, P=/bin/sh, F=lsDFMeuP, S=10, R=10, A=sh -c $u
Il existe aussi une valeur par d
efaut pour deliver dans le chier Sendmail.mc qui
est inclus dans sendmail.cf. Pour le sp
eci er, vous ne devez pas utiliser le chier
mailers.linux mais d
e nir 
a la place, dans votre chier sendmail.m4, ce qui suit:
dnl --- (in sendmail.m4) ---
define(LOCAL_MAILER_DEF, DELIVER)dnl # prog. pour courrier local
Malheureusement, Sendmail.mc consid
ere que deliver est install
e dans le r
epertoire
/bin, ce qui n'est pas le cas dans les distributions de Linux comme Slackware, qui le
placent dans /usr/bin. Dans ce cas, vous devrez soit le tromper avec un lien symbo-
lique, soit recompiler 
a partir des sources pour qu'il fonctionne depuis /bin.
2: Le programme deliver est l'uvre de Chip Salzenberg (chip%tct@ateng.com). Il fait partie
de plusieurs distributions de Linux et peut ^
etre trouv
e sur les archives FTP anonymes courantes.
242 Chapitre 15. Sendmail+IDA
G
erer les courriers rejet
es
define(POSTMASTERBOUNCE)dnl # postmaster re
coit les rejets
Beaucoup de sites consid
erent qu'il est tr
es important d'assurer les envois et r
eceptions
de courrier avec un taux de r
eussite proche de 100 %. Bien que l'examen des traces
de syslogd(8) soit utile, l'administrateur a g
en
eralement besoin de voir les en-t^
etes
des messages rejet
es a n de pouvoir d
eterminer s'ils n'ont pu ^
etre d
elivr
es en raison
d'une erreur de l'utilisateur ou d'un probl
eme de con guration sur l'un des syst
emes
mis en jeu.
D
e nir POSTMASTERBOUNCE permettra d'envoyer une copie de chaque message
rejet
e 
a l'utilisateur d
e ni comme Postmaster du syst
eme.
H
elas! positionner ce param
etre a pour cons
equence d'envoyer 
egalement le texte du
message non d
elivr
eau postmaster, ce qui est une atteinte 
a la vie priv
ee des personnes
utilisant le courrier sur son syst
eme.
Les administrateurs de site doivent par principe tenter de se retenir de lire des mes-
sages priv
es qui ne leur sont pas adress
es (ou le faire par des moyens techniques, par
exemple 
a l'aide de shell-scripts qui suppriment le contenu des courriers rejet
es dont
ils re
coivent une copie).
Param
etres relatifs au DNS
define(PSEUDODOMAINS, BITNET UUCP)dnl # ne pas essayer DNS sur ceux-l
a
Il existe plusieurs r
eseaux bien connus qui sont souvent r
ef
erenc
esdans des adresses de
courrier pour des raisons historiques, mais qui ne sont pas valides lors d'une recherche
par le DNS. D
e nir PSEUDODOMAINS 
evite d'inutiles requ^
etes aux serveurs de
noms, qui 
echoueront toujours.
D
e nition des noms du syst
eme local
define(PSEUDONYMS, gueuze.bibine.com gueuze.UUCP bibine.com)
dnl # noms par lesquels nous sommes
dnl # connus
define(DEFAULT_HOST, gueuze.bibine.com)dnl # notre 'nom' primaire pour
dnl # le courrier
Souvent, les syst
emes doivent cacherleur vraieidentit
e, servirde passerellede courrier,
ou recevoir et traiter des messages adress
es 
a d'anciens noms, sous lesquels ils 
etaient
connus auparavant.
PSEUDONYMS sp
eci e la liste de tous les noms pour lesquels le syst
eme local ac-
ceptera du courrier.
15.3. Le chier sendmail.cf 243
DEFAULT HOST sp
eci e le nom qui appara^
tra dans les messages 
emis depuis le
syst
eme local. Il faut absolument que ce param
etre soit positionn
e 
a une valeur valide,
sinon toutes les r
eponses aux courriers ne pourront ^
etre d
elivr
ees.
Param
etres relatifs 
a UUCP
define(UUCPNAME, gueuze)dnl # notre nom uucp
define(UUCPNODES, |uuname|sort|uniq)dnl # nos voisins uucp
define(BANGIMPLIESUUCP)dnl # assurons-nous que le courrier
define(BANGONLYUUCP)dnl # uucp sera trait
e correctement
Tr
es souvent, les syst
emes sont connus sous un nom pour le DNS et sous un autre pour
UUCP. UUCPNAME vous permet de d
e nir un nom d'h^
ote di 
erent, qui appara^
tra
dans les en-t^
etes du courrier 
emis par UUCP.
UUCPNODES d
e nit les commandes qui retournent une liste de machines avec les-
quelles vous ^
etes directement en liaison UUCP.
BANGIMPLIESUUCP et BANGONLYUUCP assurent que le courrier adress
e avec
la notation par bangs UUCP sera trait
e selon la m
ethode UUCP plut^
ot que par celle
du DNS utilis
ee de nos jours sur l'Internet.
Machines relais (smart-host)
define(RELAY_HOST, moria)dnl # notre smart-host
define(RELAY_MAILER, UUCP-A)dnl # nous joignons moria par uucp
Beaucoup d'administrateurs syst
eme ne veulent pas passer tout leur temps 
a con -
gurer leur machine pour s'assurer qu'elle peut vraiment atteindre tous les h^
otes de la
plan
ete. Ils pr
ef
erent envoyer tout le courrier dont la destination est inconnue vers une
machine relais, qui saura prendre ce routage en charge, que l'on appelle le smart-host.
RELAY HOST d
e nit le nom UUCP d'une telle machine.
RELAY MAILER d
e nit l'agent de transport utilis
e pour relayer les messages.
Il est important de noter que positionner ces param
etres aura pour cons
equence d'en-
voyer tout votre courrier sortant vers ce syst
eme distant, ce qui a ectera la charge de
cette machine. Assurez-vous auparavant d'avoir obtenu l'accord de son administrateur
avant de lui envoyer tout ce travail.
Tables de con guration
define(ALIASES, LIBDIR/aliases)dnl # alias syst
eme
define(DOMAINTABLE, LIBDIR/domaintable)dnl # domainisation des noms
define(PATHTABLE, LIBDIR/pathtable)dnl # base de donn
ees chemins uucp
define(GENERICFROM, LIBDIR/generics)dnl # adresses 'from' g
en
eriques
define(MAILERTABLE, LIBDIR/mailertable)dnl # mailers par h^
ote ou par domaine
244 Chapitre 15. Sendmail+IDA
define(UUCPXTABLE, LIBDIR/uucpxtable)dnl # chemins vers les h^
otes uucp
define(UUCPRELAYS, LIBDIR/uucprelays)dnl # court-cirtuite pathalias
Avec ces macros, vous pouvez changer l'endroit o
u Sendmail+IDA recherche les di-
versestables dbm qui d
e nissentle comportement (
( r
eel)
) du syst
eme.Il est raisonnable
de les laisser dans LIBDIR.
Le chier de base Sendmail.mc
include(Sendmail.mc)dnl # ENTR
EE INDISPENSABLE !!!
Les auteurs de Sendmail+IDA fournissent le chier Sendmail.mc, qui est le cur de
ce qui deviendra le chier sendmail.cf. De nouvelles versions sont di us
ees p
eriodi-
quement, pour corriger des bogues ou rajouter des fonctionnalit
es sans avoir besoin
d'une distribution compl
ete ou de recompiler sendmail. Par cons
equent, il est tr
es
important de ne jamais 
editer ce chier.
Mais quelles sont donc les entr
ees vraiment n
ecessaires?
Lorsque vous n'utilisez aucune des tables dbm optionnelles, Sendmail+IDA d
elivre
le courrier par le DEFAULT MAILER (et 
eventuellement par RELAY HOST et RE-
LAY MAILER) d
e ni dans le chier sendmail.m4 servant 
a g
en
erer sendmail.cf. Il
est facile de modi er ce comportement par les entr
ees des chiers domaintable et
uucpxtable.
Un site ordinaire sur l'Internet, interrogeant le DNS, ou qui est uniquement UUCP
et envoie tout son courrier vers son smart-host, n'a probablement besoin d'aucune
entr
ee sp
eci que dans les tables.
Pratiquement, tous les syst
emes doivent positionner les macros DEFAULT HOST et
PSEUDONYMS, qui d
e nissent le nom canonique du site et les alias sous lesquels il
est connu, et DEFAULT MAILER. Si tout ce que vous faites est de passer le travail

a une machine relais, vous n'aurez pas besoin de positionner ces valeurs par d
efaut
car cela fonctionne automatiquement.
Les machines UUCP n
ecessiteront sans doute d'assigner UUCPNAME 
a leur nom
ociel UUCP, ainsi que de positionner RELAY MAILER et RELAY HOST, qui valide
l'utilisation d'un smart-host, le transport utilis
e pour le courrier sera d
e ni dans
RELAY MAILER et devra normalement ^
etre UUCP-A pour les sites UUCP.
Si votre site est uniquement SMTP et utilise le DNS, vous devrez changer la valeur
assign
ee 
a DEFAULT MAILER pour y mettre TCP-A et probablement supprimer les
deux lignes RELAY MAILER et RELAY HOST.
15.4. Pr
esentation des tables de Sendmail+IDA 245
15.4 Pr
esentation des tables de Sendmail+IDA
Sendmail+IDA propose un certain nombre de tables qui vous permettent de modi er
le comportement par d
efaut de sendmail (sp
eci 
e dans le chier sendmail.m4) et de
d
e nir des modes de fonctionnements particuliers pour certaines situations, certains
syt
emes distants, ou certains r
eseaux. Ces tables sont trait
ees par dbm via le Make le
fourni dans la distribution.
La plupart des sites n'auront besoin que de tr
es peu de tables, voire pas du tout.
Si le v^
otre n'en n
ecessite aucune, le mieux est alors de leur donner une taille de 0
octet (avec la commande touch) et d'utiliser le Make le par d
efaut se trouvant dans
LIBDIR, plut^
ot que de modi er ce Make le lui-m^
eme.
15.4.1 La table mailertable
Le chier mailertable d
e nit des traitements sp
eciaux pour des h^
otes ou r
eseaux sp
e-
ci ques. Il est souvent employ
e sur les sites Internet pour s
electionner un relais de
courrier ou passerelle interm
ediaire pour atteindre un r
eseau donn
e, et pour indiquer
un protocole particulier (UUCP ou SMTP) 
a utiliser. Les sites UUCP n'ont g
en
era-
lement pas besoin de ce chier.
L'ordre est important, car sendmail lit le chier de haut en bas et traite les messages
en fonction de la premi
ere r
egle correspondante qu'il rencontre. Par cons
equent, il
faut placer les r
egles les plus sp
eci ques au d
ebut, et les plus g
en
erales 
a la n.
Supposons que vous voulez envoyer tout le courrier destin
e au d
epartement informa-
tique de l'universit
e Groucho Marx (cs.groucho.edu) par UUCP vers un relais nomm
e
ada. Pour cela, il vous faudra une entr
ee dans mailertable comme celle-ci:
# (extrait de mailertable)
#
# renvoie tout le courrier pour le domaine .cs.groucho.edu
# par UUCP sur la machine ada.
UUCP-A,ada .cs.groucho.edu
Supposons maintenant que vous d
esirez que tout le courrier pour le gros domaine
groucho.edu aille vers un h^
ote relais di 
erent (grostas) pour la r
esolution des
adresses et la distribution. La table mailertable deviendra alors comme ceci:
# (extrait de mailertable)
#
# renvoie tout le courrier pour le domaine .cs.groucho.edu
# par UUCP sur la machine ada.
UUCP-A,ada .cs.groucho.edu
#
# renvoie tout le courrier pour le domaine groucho.edu par UUCP
# vers la machine grostas.
UUCP-A,grostas .groucho.edu
246 Chapitre 15. Sendmail+IDA
Comme nous l'avons dit plus haut, l'ordre des entr
ees est important. Si les deux r
egles
ci-dessus apparaissaient dans le sens inverse, tout le courrier vers .cs.groucho.edu
serait dirig
e par la r
egle g
en
erale vers grostas au lieu d'^
etre trait
e par la r
egle plus
sp
eci que devant l'envoyer vers ada.
Dans l'exemple de mailertable ci-dessus, UUCP-A indique 
a sendmail de d
elivrer le
courrier par UUCP avec des en-t^
etes domainis
es.
La virgule entre la m
ethode et le nom du syst
eme lui indique d'envoyer le message 
a
ada pour la r
esolution d'adresses et l'exp
edition (ce n'est pas qu'un caract
ere s
epa-
rateur, il peut avoir plusieurs valeurs, nous allons voir 
ca).
Les entr
ees mailertable ont le format suivant:
m
ethode d
elimiteur h^
ote-relais h^
ote ou domaine
Il y a plusieurs m
ethodes possibles. Les di 
erences se trouvent g
en
eralement dans la
mani
ere dont les adresses sont trait
ees. Les valeurs typiques sont TCP-A (TCP/IP
avec des adresses de type Internet), TCP-U (TCP/IP avec des adresses de type
UUCP), et UUCP-A (UUCP avec des adresses de type Internet).
Le caract
ere qui s
epare la m
ethode de la partie h^
ote sur la gauche d'une ligne mai-
lertable d
e nit comment l'adresse sera modi 
ee.
! Un point d'exclamation supprime le nom d'h^
ote destinataire avant
l'envoi. Vous l'utiliserez essentiellement lorsque vous voulez forcer le
courrier vers un site distant mal con gur
e.
, Une virgule ne modi e jamais l'adresse. Le message est envoy
e par
la m
ethode indiqu
ee vers la machine relais sp
eci 
ee.
: Le caract
ere (
( deux-points )
) supprime le nom d'h^
ote destinataire
seulement s'il existe des machines interm
ediaires entre vous et la
destination. Donc, dans toto!titi!marcel, toto sera supprim
e, alors
que xyzzy!alfred restera inchang
e.
Ce qui est important, c'est que mailertable ne r
e
ecrit que l'enveloppe (pour que le sys-
t
eme distant accepte le message). R
e
ecrire autre chose que l'enveloppe est en g
en
eral
tr
es mal vu (et peut compl
etement d
er
egler la con guration du courrier).
15.4.2 La table uucpxtable
G
en
eralement, le courrier vers des machines avec un nom pleinement quali 
e est d
eli-
vr
e par SMTP, en interrogeant le DNS ou bien via le smart-host. La table uucpxtable
force l'utilisation du routage UUCP en convertissant le nom domainis
e en style UUCP,
sans domaine.
15.4. Pr
esentation des tables de Sendmail+IDA 247
Cette m
ethode est utilis
ee lorsque vous ^
etes une passerelle courrier pour un site,
ou lorsque vous voulez envoyer directement des messages vers une liaison UUCP
directe plut^
ot que de passer par la liaison par d
efaut et plusieurs autres syst
emes
interm
ediaires.
Les sites UUCP qui sont connect
es 
a vos voisins UUCP utilisant des en-t^
etes do-
mainis
es utiliseront ce chier pour forcer l'envoi du courrier par la liaison UUCP
directe entre les deux syst
emes, plut^
ot que d'utiliser la route moins directe par RE-
LAY MAILER et RELAY HOST ou via DEFAULT MAILER.
Les sites Internet qui n'utilisent pas UUCP n'auront pas besoin de uucpxtable.
Supposons que vous o rez le renvoi du courrier
a un syst
eme appel
e sesame.comdans
le DNS et sesame dans les cartes UUCP. Vous aurez besoin de l'entr
ee suivante dans
uucpxtable pour forcer le courrier pour cette machine 
a passer par votre connexion
UUCP directe:
#============== /usr/local/lib/mail/uucpxtable ============
# Le courrier pour utilisateur@sesame.com est r
e
ecrit sous
# la forme sesame!utilisateur et par cons
equent sera d
elivr
e
# par UUCP
#
sesame sesame.com
#
#----------------------------------------------------------
15.4.3 La table pathtable
Le chier pathtable sert 
a d
e nir explicitement le routage vers des machines ou des
r
eseaux distants. Son format est celui de la base de donn
ees pathalias, tri
e par ordre
alphab
etique. Les deux champs de chaque ligne doivent ^
etre s
epar
es par un caract
ere
de tabulation.
La plupart des syst
emes n'ont besoin d'aucune entr
ee dans pathtable.
#=============== /usr/local/lib/mail/pathtable ================
#
# Il s'agit d'un fichier au format pathalias permettant de
# forcer le passage du courrier pour vos voisins UUCP par
# le lien direct UUCP, au lieu de lui laisser prendre le long
# chemin normal, par le smart-host.
#
# Le s
eparateur doit absolument ^
etre un vrai caract
ere de tabulation.
#
# Route le courrier 
a travers un ou plusieurs sites interm
ediaires
# vers un syst
eme distant utilisant des adresses de style UUCP.
#
sesame!ernie!%s ernie
#
# Renvoi vers un syst
eme qui est un voisin UUCP d'un site internet
# accessible.
248 Chapitre 15. Sendmail+IDA
#
swim!%s@gcc.groucho.edu swim
#
# Les entr
ees suivantes envoient tout le courrier 
a destination
# de deux r
eseaux par des passerelles diff
erentes. Notez le  . 
# Dans cet exemple,  uugate  et  byte  sont des syst
emes sp
ecifiques
# servant de passerelle de courrier pour les pseudo-domaines
# .UUCP et .BITNET.
#
%s@uugate.groucho.edu .UUCP
byte!%s@mail.shift.com .BITNET
#
#=================== end of pathtable =======================
15.4.4 La table domaintable
Elle est utilis
ee pour forcer le comportement 
a adopter apr
es qu'une requ^
ete DNS a
eu lieu. Elle permet 
a l'administrateur de donner des surnoms 
a certains syst
emes
ou domaines souvent r
ef
erenc
es, en rempla
cant automatiquement le surnom par le
nom r
eel. Elle peut aussi servir 
a remplacer des noms de machines ou de domaines
incorrects par une information (
( correcte )
).
La plupart des sites n'ont pas besoin d'entr
ee dans domaintable.
L'exemple qui suit montre comment remplacer une adresse incorrecte | 
a laquelle
des utilisateurs essaient d'envoyer du courrier | par la bonne:
#============= /usr/local/lib/mail/domaintable =================
#
#
lamachine.correct.domaine lamachine.pasbon.domaine
#
#
#=================== end of domaintable ========================
15.4.5 Le chier aliases
Les alias permettent un certain nombre de choses:
{ O rir des raccourcis ou des noms plus connus pour 
ecrire 
a une ou plusieurs
personnes.
{ Appeler un programme en lui passant le message sur l'entr
ee standard.
{ Envoyer un courrier dans un chier.
Pour ^
etre conforme aux RFC, tous les syst
emes n
ecessitent au moins deux alias:
Postmaster et MAILER-DAEMON.
15.4. Pr
esentation des tables de Sendmail+IDA 249
#--------------------- /usr/local/lib/mail/aliases ------------------
#
# demonstrate commonly seen types of aliases
#
usenet: alfred # alias pour une personne.
admin: alfred,marcel # alias pour plusieurs personnes.
linux-users: :include:/usr/lib/lists/linux
# lecture des destinataires depuis
# un fichier.
changefeed: | /usr/local/lib/gup # alias qui appelle un programme
plaintes: /var/log/plaintes # alias qui 
ecrit dans un fichier
#
# Les deux alias qui suivent doivent exister pour ^
etre conforme aux RFC.
# Il doivent pointer vers un utilisateur qui lit son courrier r
eguli
erement.
#
postmaster: root # Entr
ee obligatoire
MAILER-DAEMON: postmaster # Entr
ee obligatoire
#
#-------------------------------------------------------------------
Fig. 15.2 - Exemple de chier aliases.
Soyez toujours vigilant sur la s
ecurit
e lorsque vous d
e nissez des alias qui appelleront
des programmes ou 
ecriront dans des chiers car sendmail fonctionne avec un setuid

a root.
Les modi cations e ectu
ees dans le chier aliases ne prennent e et qu'apr
es avoir
ex
ecut
e la commande:
# /usr/lib/sendmail -bi
Cette commande reconstruit la table dbm n
ecessaire. Vous pouvez 
egalement employer
la commande newaliases, que l'on fait souvent ex
ecuter 
a intervalles r
eguliers par cron.
Tous les d
etails concernant les alias peuvent se trouver dans la page de manuel
aliases(5). Ci-dessus, gure 15.2, un exemple de chier aliases.
15.4.6 Tables rarement utilis
ees
Les tables suivantes sont disponibles mais tr
es rarement utilis
ees. Consultez la docu-
mentation fournie avec les sources de Sendmail+IDA si vous d
esirez plus de d
etails.
uucprelays Le chier uucprelays est utilis
e pour (
( court-circuiter )
) le chemin
UUCP vers des sites particuli
erement connus, plut^
ot que de laisser
le message partir par une route incertaine g
en
er
ee par le traitement
des cartes UUCP avec pathalias.
250 Chapitre 15. Sendmail+IDA
genericfrom et xaliases Le chier genericfrom cache les noms d'utilisateurs locaux,
ainsi que leurs adresses, en les convertissant en adresses g
en
eriques
qui ne correspondent pas aux valeurs internes.
L'utilitaire associ
e xalparse automatise la g
en
eration des chiers ge-
nericfrom et aliases de sorte que les traductions entrantes et sortantes
soient faites 
a partir d'un chier de r
ef
erence, xaliases.
decnetxtable Le chier decnetxtable r
e
ecrit les adresses domainis
ees en adresses de
style DECnet.
15.5 Installation de sendmail
Nous allons voir dans cette section, comment installer une distribution binaire typique
de Sendmail+IDA, et ce qu'il est n
ecessaire de con gurer pour qu'elle soit parfaite-
ment fonctionnelle et adapt
ee au site.
La distribution binaire courante de Sendmail+IDA pour Linux peut ^
etre obtenue
sur sunsite.unc.edu dans le r
epertoire /pub/Linux/system/Mail. Si vous poss
e-
dez une version ant
erieure de sendmail, il est conseill
e de passer 
a la version send-
mail5.67b+IDA1.5 car Linux est maintenant support
een standard dans le code source,
et de plus, plusieurs trous de s
ecurit
e assez importants ont 
et
e 
elimin
es, qui se trou-
vaient dans les versions ant
erieures au 1er d
ecembre 1993.
Si vous compilez sendmail 
a partir des sources, vous devez suivre les instructions
contenues dans les chiers README de la distribution. Ces sources sont disponibles
sur le site vixen.cso.uiuc.edu. Il vous faudra 
egalement les chiers de con guration
sp
e ciques 
a Linux contenus dans l'archive newspak-2.2.tar.gz, disponible par FTP
anonyme sur sunsite.unc.edu dans le r
epertoire /pub/Linux/system/Mail.
Si vous avez install
e smail ou un autre programme similaire auparavant, il vous faudra
supprimer (ou renommer) au pr
ealable tous les chiers s'y rapportant pour 
eviter
d'
eventuels con its.
15.5.1 Extraction de la distribution binaire
Tout d'abord, il faut extraire les chiers de l'archive dans un r
epertoire de travail:
$ gunzip -c sendmail5.65b+IDA1.5+mailx5.3b.tgz | tar xvf -
Si vous avez une commande tar (
( moderne )
), vous pourrez probablement obtenir le
m^
eme r
esultat par la simple commande tar -zxvf fichier.tgz.
Une fois ce traitement termin
e, vous aurez obtenu un r
epertoire portant le nom
de sendmail5.65b+IDA1.5+mailx5.3b. Vous y trouverez une installation compl
ete de
Sendmail+IDA plus un binaire du programme utilisateur mailx. Toute l'arborescence
15.5. Installation de sendmail 251
en dessous de ce r
epertoire re 
ete l'emplacement exact o
u les chiers doivent ^
etre
install
es. Vous pouvez donc en toute s
ecurit
e les mettre en place ainsi:
# cd sendmail5.65b+IDA1.5+mailx5.3b
# tar cf - . | (cd /; tar xvvpoof -)
15.5.2 G
en
eration du chier sendmail.cf
Pour construire un chier sendmail.cf adapt
e 
a votre site, il vous faut r
ediger un chier
sendmail.m4, puis le traiter par m4. Dans /usr/local/lib/mail/CF, vous trouverez un
exemple appel
e sample.m4. Copiez-le sous un autre nom (par convention on le nomme
du nom de la machine, votre-h^
ote.m4) et 
editez-le pour qu'il re 
ete la situation
d
esir
ee.
Cet exemple est con gur
e pour un site uniquement UUCP qui utilise des en-t^
etes
domainis
es et envoie le courrier 
a un smart-host. De tels sites n'auront donc que tr
es
peu de choses 
a modi er.
Ici, nous ne vous donnerons qu'un bref aper
cu des macros que vous allez devoir chan-
ger. Pour une description plus compl
ete, reportez-vous un peu plus haut dans ce
chapitre, o
u sendmail.m4 est d
ecrit avec plus de d
etails.
LOCAL MAILER DEF
D
e nit le chier qui indique les programmes destin
es 
a d
elivrer le
courrier local. Consultez la section (
( D
e nition du programme d
eli-
vrant le courrier local )
) plus haut pour savoir de quoi il retourne.
PSEUDONYMS
D
e nit tous les noms sous lesquels votre h^
ote local peut ^
etre connu.
DEFAULT HOST
Mettez votre nom pleinement quali 
e ici. Ce nom appara^
tra comme
votre nom d'h^
ote dans tout le courrier 
emis.
UUCPNAME Mettez votre nom d'h^
ote non quali 
e ici.
RELAY HOST et RELAY MAILER
Si vous vous connectez par UUCP 
a un smart-host, assignez le nom
de cette machine 
a RELAY HOST. Si vous d
esirez des en-t^
etes do-
mainis
es, utilisez la m
ethode UUCP-A.
DEFAULT MAILER
Si vous ^
etes sur l'Internet et utilisez le DNS, vous devez mettre TCP-
A. Cela indiquera 
a sendmail d'utiliser la m
ethode TCP-A, qui d
elivre
le courrier par SMTP avec un style RFC normal pour l'adresse d'en-
veloppe. Les sites Internet n'ont pas besoin de d
e nir RELAY HOST
ou RELAY MAILER.
252 Chapitre 15. Sendmail+IDA
Pour cr
eer automatiquement le chier sendmail.cf, ex
ecutez la commande:
# make votre-h^
ote.cf
Le chier votre-h^
ote.m4 sera trait
e par m4 et un chier votre-h^
ote.cf sera r
ealis
e.
Ensuite, vous devez tester si le chier de con guration que vous venez de cr
eer fait
bien ce que vous attendez de lui: ce sera l'objet des deux sections suivantes. Lorsque
vous en serez satisfait, mettez-le en place par la commande:
# cp votre-h^
ote.cf /etc/sendmail.cf

A ce stade, votre syst
eme sendmail est pr^
et 
a fonctionner. Mettez la ligne suivante
dans le script qui lance les d
emons sur votre machine (g
en
eralement /etc/rc.inet2);
vous pouvez aussi l'ex
ecuter 
a la main pour ne pas avoir 
a relancer Linux:
# /usr/lib/sendmail -bd -q1h
15.5.3 Tests du chier sendmail.cf
Pour passer sendmail en mode test, vous devez l'appeler avec l'option -bt. Le chier
de con guration par d
efaut est le sendmail.cf qui est install
e sur la machine, mais
vous pouvez essayer tout autre chier gr^
ace 
a l'option -Cnom-de-fichier.
Dans les exemples suivants, nous testons gueuze.cf, le chier de con guration g
en
er
e
par l'exemple donn
e dans la gure 15.1, page 240.
# /usr/lib/sendmail -bt -Cgueuze.cf
ADDRESS TEST MODE
Enter ruleset address
[Note: No initial ruleset 3 call]

Les tests qui suivent v
eri ent que sendmail est capable de d
elivrer tout le courrier 
a
vos utilisateurs. Dans tous les cas, le r
esultat du test doit ^
etre le m^
eme et pointer vers
le syst
eme local, avec le transport LOCAL.
Tout d'abord, regardons comment un courrier pour un utilisateur local sera d
elivr
e:
# /usr/lib/sendmail -bt -Cgueuze.cf
ADDRESS TEST MODE
Enter ruleset address
[Note: No initial ruleset 3 call]
 3,0 moi
rewrite: ruleset 3 input: moi
rewrite: ruleset 7 input: moi
rewrite: ruleset 9 input: moi
15.5. Installation de sendmail 253
rewrite: ruleset 9 returns:  moi 
rewrite: ruleset 7 returns:   , moi
rewrite: ruleset 3 returns:   , moi
rewrite: ruleset 0 input:   , moi
rewrite: ruleset 8 input:   , moi
rewrite: ruleset 20 input:   , moi
rewrite: ruleset 20 returns:   , @ gueuze . bibine . com , moi
rewrite: ruleset 8 returns:   , @ gueuze . bibine . com , moi
rewrite: ruleset 26 input:   , @ gueuze . bibine . com , moi
rewrite: ruleset 26 returns: $# LOCAL $@ gueuze . bibine . com $: moi
rewrite: ruleset 0 returns: $# LOCAL $@ gueuze . bibine . com $: moi
La sortie montre comment sendmail traite une adresse de mani
ere interne. Elle est
pass
ee 
a di 
erentes r
egles qui l'analysent, et en appellent d'autres tour 
a tour, et
toutes ses composantes sont isol
ees.
Dans notre exemple, nous avons donn
e l'adresse moiaux r
egles 3 et 0 (d'o
u le nombre
3,0 entr
e avant l'adresse). La derni
ere ligne montre l'adresse analys
ee telle que re-
tourn
ee par la r
egle 0, contenant la m
ethode par laquelle le message serait d
elivr
e
ainsi que l'h^
ote et l'utilisateur qui lui seront pass
es.
Ensuite, v
eri ons ce que donne un message 
a un utilisateur du syst
eme, avec une
syntaxe UUCP.
# /usr/lib/sendmail -bt -Cgueuze.cf
ADDRESS TEST MODE
Enter ruleset address
[Note: No initial ruleset 3 call]
 3,0 gueuze!moi
rewrite: ruleset 3 input: gueuze ! moi
[...]
rewrite: ruleset 0 returns: $# LOCAL $@ gueuze . bibine . com $: moi

Maintenant, un courrier pour un utilisateur du syst
eme, mais avec la syntaxe Internet
et le nom pleinement quali 
e de la machine:
# /usr/lib/sendmail -bt -Cgueuze.cf
ADDRESS TEST MODE
Enter ruleset address
[Note: No initial ruleset 3 call]
 3,0 moi@gueuze.bibine.com
rewrite: ruleset 3 input: moi @ gueuze . bibine . com
[...]
rewrite: ruleset 0 returns: $# LOCAL $@ gueuze . bibine . com $: moi

Vous devez recommencer les tests ci-dessus avec chacun des noms que vous avez
254 Chapitre 15. Sendmail+IDA
indiqu
e dans les param
etres PSEUDONYMS et DEFAULT NAME de votre chier
sendmail.m4.
En n, v
eri ons que vous pouvez envoyer du courrier vers votre relais:
# /usr/lib/sendmail -bt -Cgueuze.cf
ADDRESS TEST MODE
Enter ruleset address
[Note: No initial ruleset 3 call]
 3,0 fred@moria.com
rewrite: ruleset 3 input: fred @ moria . com
rewrite: ruleset 7 input: fred @ moria . com
rewrite: ruleset 9 input: fred @ moria . com
rewrite: ruleset 9 returns:  fred  @ moria . com
rewrite: ruleset 7 returns:  @ moria . com  , fred
rewrite: ruleset 3 returns:  @ moria . com  , fred
rewrite: ruleset 0 input:  @ moria . com  , fred
rewrite: ruleset 8 input:  @ moria . com  , fred
rewrite: ruleset 8 returns:  @ moria . com  , fred
rewrite: ruleset 29 input:  @ moria . com  , fred
rewrite: ruleset 29 returns:  @ moria . com  , fred
rewrite: ruleset 26 input:  @ moria . com  , fred
rewrite: ruleset 25 input:  @ moria . com  , fred
rewrite: ruleset 25 returns:  @ moria . com  , fred
rewrite: ruleset 4 input:  @ moria . com  , fred
rewrite: ruleset 4 returns: fred @ moria . com
rewrite: ruleset 26 returns:  @ moria . com  , fred
rewrite: ruleset 0 returns: $# UUCP-A $@ moria $:  @ moria . com  , fred

15.5.4 Tests d'int
egration de sendmail.cf et des tables

A ce stade, vous avez v
eri 
e que le syst
eme de courrier a bien le comportement par
d
efaut d
esir
e, et que vous pouvez recevoir et exp
edier des messages valides. Pour
terminer l'installation, il peut ^
etre n
ecessaire de cr
eer les tables dbm appropri
ees pour
obtenir les e ets d
esir
es.
Apr
es avoir cr
e
e celles qui sont n
ecessaires 
a votre site, il vous faut les traiter par dbm
en tapant make dans le r
epertoire contenant ces tables.
Si vous ^
etes un site uniquement UUCP, vous n'avez pas besoin de cr
eer les tables
mentionn
ees dans le chier README.linux. Il vous sura de cr
eer des chiers du
m^
eme nom, mais vides, pour que le Make le puisse fonctionner.
En tant que site UUCP, si vous ^
etes connect
es 
a d'autres machines que votre smart-
host, vous devrez sans doute ajouter des entr
ees dans uucpxtable pour chaque machine,
(sinon le courrier pour ces sites passera par ce smart-host au lieu d'^
etre direct) et
ex
ecuter dbm sur cette nouvelle table uucpxtable.
Tout d'abord, assurez-vous que le courrier via votre RELAY HOST est envoy
e par
15.5. Installation de sendmail 255
l'interm
ediaire de RELAY MAILER:
# /usr/lib/sendmail -bt -Cgueuze.cf
ADDRESS TEST MODE
Enter ruleset address
[Note: No initial ruleset 3 call]
 3,0 fred@sesame.com
rewrite: ruleset 3 input: fred @ sesame . com
rewrite: ruleset 7 input: fred @ sesame . com
rewrite: ruleset 9 input: fred @ sesame . com
rewrite: ruleset 9 returns:  fred  @ sesame . com
rewrite: ruleset 7 returns:  @ sesame . com  , fred
rewrite: ruleset 3 returns:  @ sesame . com  , fred
rewrite: ruleset 0 input:  @ sesame . com  , fred
rewrite: ruleset 8 input:  @ sesame . com  , fred
rewrite: ruleset 8 returns:  @ sesame . com  , fred
rewrite: ruleset 29 input:  @ sesame . com  , fred
rewrite: ruleset 29 returns:  @ sesame . com  , fred
rewrite: ruleset 26 input:  @ sesame . com  , fred
rewrite: ruleset 25 input:  @ sesame . com  , fred
rewrite: ruleset 25 returns:  @ sesame . com  , fred
rewrite: ruleset 4 input:  @ sesame . com  , fred
rewrite: ruleset 4 returns: fred @ sesame . com
rewrite: ruleset 26 returns:  @ sesame . com  , fred
rewrite: ruleset 0 returns: $# UUCP-A $@ moria $:  @ sesame . com  , fred

Si vous avez des voisins UUCP autres que votre RELAY HOST, vous devrez v
eri er
que le courrier qui leur est destin
e est bien rout
e comme vous l'avez pr
evu. Les mes-
sages adress
es avec la syntaxe UUCP vers un h^
ote avec lequel vous ^
etes directement
connect
e par UUCP doivent lui ^
etre envoy
es directement (sauf si vous l'emp^
echez
explicitement par une entr
ee dans domaintable). Consid
erons que swim est un de vos
voisins UUCP directs. Passer 
a sendmail un message adress
e 
a swim!fred devrait
produire le r
esultat suivant:
# /usr/lib/sendmail -bt -Cgueuze.cf
ADDRESS TEST MODE
Enter ruleset address
[Note: No initial ruleset 3 call]
 3,0 swim!fred
rewrite: ruleset 3 input: swim ! fred
[...lignes supprim
ees...]
rewrite: ruleset 0 returns: $# UUCP $@ swim $:   , fred

Si vous avez des entr
ees uucpxtable destin
ees 
a forcer l'envoi UUCP vers certains
voisins qui postent leur courrier avec le style Internet et des en-t^
etes domainis
es, il
faudra aussi v
eri er ceci:
256 Chapitre 15. Sendmail+IDA
# /usr/lib/sendmail -bt -Cgueuze.cf
ADDRESS TEST MODE
Enter ruleset address
[Note: No initial ruleset 3 call]
 3,0 machin@truc.bidule.com
rewrite: ruleset 3 input: machin @ truc . bidule . com
[...lignes supprim
ees...]
rewrite: ruleset 0 returns: $# UUCP $@ truc . bidule $:   , machin

15.6 Trucs et astuces du parfait petit administra-
teur
Maintenant que nous avons vu la th
eorie de la con guration, l'installation et les tests
d'un syst
eme Sendmail+IDA, prenons un peu de temps pour regarder ce qui se passe
r
eellement dans la vie quotidienne d'un administrateur.
Les syst
emes distants tombent parfois en panne. Les modems marchent mal ou le
t
el
ephone est coup
e. Les d
e nitions DNS sont erron
ees car quelqu'un s'est tromp
e.
Les r
eseaux s'arr^
etent sans pr
evenir. Dans de tels cas, les administrateurs du courrier
doivent savoir exactement comment r
eagir ecacement et au plus vite, a n d'assurer
une continuit
e du service jusqu'
a ce que tout fonctionne 
a nouveau normalement.
Le reste de ce chapitre est destin
e 
a vous proposer des solutions aux ennuis les plus
courants rencontr
es dans le monde du courrier 
electronique.
15.6.1 Renvoyer le courrier 
a une machine relais
Pour renvoyer le courrier destin
e 
a un domaine ou 
a un h^
ote particulier, vers un
relais donn
e qui pourra en assurer l'exp
edition, il faut g
en
eralement utiliser le chier
mailertable. Par exemple, pour renvoyer tout le courrier destin
e 
a chezeux.org vers
leur passerelle UUCP tortue, vous mettrez l'entr
ee suivante dans mailertable:
UUCP-A,tortue chezeux.org
15.6.2 Forcer du courrier dans des sites mal con gur
es
Les h^
otes Internet ont souvent des probl
emes pour envoyer du courrier aux sites
distants mal con gur
es. Il y a plusieurs variantes de la chose, mais le sympt^
ome
g
en
eral se traduit par des messages rejet
es par le syst
eme distant ou du courrier
irr
em
ediablement perdu.
15.6. Trucs et astuces du parfait petit administrateur 257
Ces probl
emes font souvent du tort 
a l'administrateur local, car les utilisateurs se
moquent g
en
eralement que vous n'administriez pas personnellement tous les syst
emes
du monde (ou ne puissiez pas joindre leurs responsables pour qu'ils corrigent leurs
erreurs). Tout ce qu'ils voient, c'est que leurs messages n'aboutissent pas 
a leurs
destinataires et que vous ^
etes la personne id
eale sur laquelle passer leur col
ere.
La con guration d'un site distant n'est pas votre probl
eme. Dans tous les cas, ne
tentez pas de d
er
egler votre syst
eme pour arriver 
a communiquer avec une machine
mal con gur
ee. Si vous ne pouvez pas joindre son responsable a n qu'il corrige ce
qu'il faut en temps voulu, vous avez deux options:
{ Il est g
en
eralement possible de forcer le syst
eme distant 
a accepter du courrier,
mais puisqu'il n'est pas correctement con gur
e, les r
eponses ne reviendront sans
doute pas; mais l
a, c'est le probl
eme de son administrateur.
Vous pouvez corriger les mauvais en-t^
etes de l'enveloppe de vos messages sor-
tants, uniquement en utilisant une entr
ee domaintable pour leur h^
ote ou do-
maine, qui fera que les informations non valides seront corrig
ees pour tout le
courrier provenant de votre site:
malade.correct.domaine.com malade.incorrect.domaine.com
{ Souvent, les sites mal con gur
es rejettent le courrier en le renvoyant vers la
machine exp
editrice en disant sans honte (
( ce courrier ne nous est pas destin
e )
),
simplement parce qu'ils n'ont pas leur PSEUDONYMNS ou 
equivalent con gur
e
proprement. Il est alors possible de supprimer tout nom d'h^
ote et de domaine
de l'enveloppe des messages partant de votre site vers le leur.
Le point d'exclamation! dans le chier mailertable ci-dessous d
elivre les mes-
sages 
a leur site en les faisant appara^
tre
a leur sendmail comme s'ils arrivaientde
leur syst
eme local. Notez que cela ne change que l'adresse d'enveloppe, l'adresse
de retour correcte sera toujours pr
esente dans le message.
TCP!malade.correct.domaine.com malade.incorrect.domaine.com
N
eanmoins, m^
eme si vous arrivez 
a leur poster du courrier, il n'y a aucune garantie
qu'ils puissent vous r
epondre (ce sont des nuls, ne l'oubliez pas); mais au moins, leurs
utilisateurs casseront les pieds 
a leur administrateur, et vous serez tranquille de votre
c^
ot
e.
15.6.3 Forcer le courrier 
a partir par UUCP
Dans un monde id
eal (vu du c^
ot
e Internet), tous les h^
otes sont dans le DNS et postent
des messages sous des noms pleinement quali 
es.
Si vous communiquez par UUCP avec un tel site, vous pouvez forcer le courrier 
a
passer par la connexion UUCP plut^
ot que par la m
ethode par d
efaut en (
( anti-
domainisant )
) le nom du site distant par le chier uucpxtable.
258 Chapitre 15. Sendmail+IDA
Pour forcer le courrier par sesame.com, vous mettrez ce qui suit dans votre uucpx-
table:
# supprime le domaine de sesame.com pour forcer UUCP
sesame sesame.com
Le r
esultat sera que sendmail d
eterminera (via UUCPNODES dans le chier send-
mail.m4) que vous ^
etes directement connect
e au syst
eme distant, et mettra le courrier
en attente dans la queue UUCP, pour qu'il soit d
elivr
e 
a la prochaine connexion de
ce type avec ce site.
15.6.4 Emp^
echer le courrier de partir par UUCP
La situation inverse peut aussi se produire. Souvent, des syst
emes peuvent avoir un
certain nombre de connexions UUCP directes qui ne sont utilis
ees que de temps en
temps, ou ne sont pas aussi ables et disponibles que le routage par d
efaut ou le
smart-host.
Par exemple, il y a dans la r
egion de Seattle3 des sites qui s'
echangent les di 
erentes
distributions de Linux par UUCP lorsqu'elles sont disponibles. Ces machines ne sont
connect
ees que lorsque c'est n
ecessaire, il est donc g
en
eralement beaucoup plus ra-
pide de faire passer le courrier par de multiples sites, mais plus ables et toujours
disponibles.
Il est tr
es facile d'
eviter de d
elivrer le courrier directement 
a un site avec lequel vous
avez une connexion UUCP directe. Si le syst
eme distant poss
ede un nom pleinement
quali 
e, vous pouvez ajouter une entr
ee comme celle-ci dans la table domaintable:
# 
evite le courrier direct pour un voisin UUCP
voisin.com voisin
Cela remplacera toute occurrence du nom UUCP par le nom pleinement quali 
e, et
par cons
equent 
evitera qu'il soit trouv
e par la ligne UUCPNODES du chier send-
mail.m4. Le r
esultat sera g
en
eralementque le courrier partira via le RELAY MAILER
et RELAY HOST (ou DEFAULT MAILER).
15.6.5 Vider sur demande la queue de Sendmail
Pour traiter imm
ediatement les messages qui sont en attente dans la queue, il sut de
taper la commande /usr/lib/runq. Elle appelle sendmail avec les options ad
equates.
3: Ainsi que dans la r
egion parisienne.
15.7. Coh
erence des distributions binaires 259
15.6.6 Obtenir des statistiques sur le courrier trait
e
Beaucoup d'administrateurs (et leurs employeurs) ont besoin de conna^
tre le volume
du courrier trait
e par leur site. Il y a plusieurs m
ethodes pour quanti er ce tra c:
{ sendmail est fourni avec un utilitaire appel
e mailstats qui lit un chier appel
e
/usr/local/lib/mail/sendmail.st et rapporte le nombre de messages et la taille
qui ont 
et
e transf
er
es par chaque m
ethode d
eclar
ee dans le chier sendmail.cf.
Ce chier de statistiques doit ^
etre cr
e
e manuellement par l'administrateur pour
que sendmail commence 
a y enregistrer des traces. Les r
esultats sont remis 
a
z
ero en e a
cant puis recr
eant ce chier sendmail.st; il sut par exemple de
faire:
# cp /dev/null /usr/local/lib/mail/sendmail.st
{ La meilleure m
ethode est probablement de mettre en route le d
eboguage par
syslogd(8). Vous aurez des traces d
etaill
ees de qui fait quoi, en quelle quantit
e,
pour o
u, par o
u, etc. Cela signi e que le d
emon /etc/syslogd est en service sur
la machine (ce qui est sans doute, et heureusement, le cas sur un syst
eme bien
administr
e) et que vous aurez ajout
e dans sa con guration /etc/syslog.conf(5)
une ligne comme celle-ci:
mail.debug /var/log/syslog.mail
Si vous utilisez mail.debug avec un tra c de courrier assez important, la trace
peut devenir assez grande. Les chiers de trace de syslogd n
ecessitent g
en
era-
lement une maintenance routini
ere destin
ee 
a les classer ou les purger, par le
truchement de crond(8).
Vous trouverez bon nombre d'utilitaires qui e ectuent des statistiques 
a partir
des chiers g
en
er
es par syslogd. L'un des plus connus s'appelle syslog-stat.pl, il
s'agit d'un programme en perl qui est fourni avec les sources de Sendmail+IDA.
15.7 Coh
erence des distributions binaires
Il n'y a pas de r
eel standard de con guration du courrier 
electronique, et il n'y a pas
(
( une arborescence de r
epertoires de r
ef
erence )
) pour y placer ces programmes.
Il est n
ecessaire de s'assurer que les di 
erents composants du syst
eme (courrier, News
Usenet, TCP/IP) sont d'accord sur l'emplacement du programme qui d
elivre le cour-
rier local (lmail, deliver, etc.), de celui pour le courrier distant (rmail), et de l'agent
de transport du courrier (sendmail ou smail). De telles consid
erations ne sont pas
toujours document
ees, bien que l'emploi de la commande strings puisse aider 
a d
e-
terminer quels chiers et quels r
epertoires sont attendus par tel ou tel binaire. Voici
260 Chapitre 15. Sendmail+IDA
quelques probl
emes que nous avons rencontr
edans le pass
eavec certaines distributions
binaires et sources de Linux parmi les plus courantes.
{ Certaines versions de la distribution NET-2 de TCP/IP ont un programme
nomm
e umail d
e ni comme service, au lieu de sendmail.
{ Divers portages de elm et mailx recherchent, pour d
elivrer le courrier, l'agent
/usr/bin/smail plut^
ot que sendmail.
{ Sendmail+IDA conna^
t en interne deliver, mais il pense le trouver dans /bin
plut^
ot que dans /usr/bin, o
u il est le plus souvent plac
e sous Linux.
Plut^
ot que de perdre du temps 
a recompiler tous les programmes 
a partir des sources,
nous contournons en g
en
eral le probl
eme par un lien symbolique appropri
e.
15.8 Pour en savoir plus...
Pour obtenir plus d'informations sur sendmail, consultez le document Linux (
( MAIL-
HOWTO )
) post
e r
eguli
erement dans comp.answers. Il est aussi disponible par FTP
anonyme sur rtfm.mit.edu4. Toutefois, les meilleurs renseignementsse trouvent dans
les sources de Sendmail+IDA. Regardez dans le r
epertoire ida/cf, les chiers DBM-
GUIDE, OPTIONS et Sendmail.mc.
4: Ce document est disponible en version fran
caise sur les sites di usant Linux en France.
261
Chapitre 16
Les News Usenet
16.1 L'histoire de Usenet
L'id
ee de di user des (
( nouvelles )
) par r
eseau date de 1979, lorsque deux 
etudiants
am
ericains, Tom Truscott et Jim Ellis, eurent l'id
ee d'utiliser UUCP dans le but
d'
echanger des informations entre les utilisateurs de plusieurs machines UNIX. Ils

etablirent alors un petit r
eseau de trois syst
emes, en Caroline du Nord.
Tout au d
ebut, le tra c 
etait g
er
e par quelques shell-scripts (r
e
ecrits plus tard en
langage C), mais aucun code ne fut jamais di us
e. Cet ensemble fut rapidement
remplac
e par (
( A news )
), la premi
ere version publique des logiciels de (
( News )
).
Cette version n'
etait pas pr
evue pour g
erer plus de quelques articles par groupe et
par jour. Lorsque le volume se mit 
a augmenter, Mark Horton et Matt Glickman
r
ealis
erent une nouvelle version des programmes, qu'ils baptis
erent la version (
( B )
),
soit (
( Bnews )
). La premi
ere version publique de Bnews portait le num
ero 2.1, c'
etait
en 1982. Depuis, elle a continuellement 
evolu
e, subissant de profondes 
evolutions.
Actuellement, Bnews en est 
a la version 2.11, qui devient obsol
ete; le responsable de
sa maintenance 
etant pass
e 
a INN.
Une autre r
e
ecriture fut entreprise et di us
ee en 1987 par Geo Collyer et Henry
Spencer; il s'agit de la version (
( C )
), ou C News, la plus courante 
etant la ver-
sion (
( C News Performance )
). Sur les sites qui transportent un tr
es grand nombre
de groupes, la surcharge due 
a l'appel fr
equent de relaynews, qui est le programme
distribuant les articles vers les autres machines, est assez importante. La version (
( Per-
formance)
) ajoute une option 
a ce programme permettant de l'utiliser en mode d
emon,
dans lequel il fonctionne en t^
ache de fond. Cette version, tr
es r
epandue, est fournie
avec beaucoup de distributions binaires de Linux.
Jusqu'
a la version C, cet ensemble 
etait 
etudi
e pour une utilisation sur des r
eseaux
UUCP, bien que son emploi dans d'autres environnements rest^
at possible. Mais obte-
262 Chapitre 16. Les News Usenet
nir des transferts ecaces sur des r
eseaux performants comme TCP/IP ou DECnet
demandait une nouvelle orientation du projet. Aussi, en 1986, fut introduit NNTP, le
Network News Transfer Protocol (protocole de transfert de News par r
eseau). Il est
bas
e sur des connexions r
eseau et sp
eci e un certain nombre de commandes interac-
tives permettant le transfert et la lecture des articles.
Il existe beaucoup d'applications bas
ees sur NNTP sur l'Internet. Le paquetage nntpd
de Brian Barber et Phil Lapsley, que vous pouvez employer pour o rir un service de
lecture des News 
a des h^
otes d'un r
eseau local, est l'un des plus connus. Il est pr
evu
pour compl
eter les ensembles de gestion de News comme Bnews ou C News, en leur
apportant le support du protocole NNTP.
INN, ou Internet News, en est un autre. Ce n'est pas qu'un simple frontal, mais un
syst
eme 
a part enti
ere. Il comprend un d
emon tr
es sophistiqu
e qui peut supporter de
multiples liaisons NNTP concurrentes, et est devenu le serveur de News id
eal employ
e
sur un nombre de plus en plus grand de sites Internet.
16.2 Mais qu'est-ce que Usenet?
Ce qui stup
e e beaucoup de gens, c'est que Usenet ne fait partie d'aucune organisa-
tion, n'a aucune gestion centralis
ee, aucun responsable, Usenet n'a pas de chef. En
fait, l'un des principes de Usenet, c'est qu'en dehors des descriptions techniques, il
est impossible de d
e nir ce que c'est; tout ce que l'on peut indiquer, c'est ce que
Usenet n'est pas. Si vous avez 
a port
ee de main l'excellent livre Zen and the Art of
the Internet de Brendan Kehoe, vous pourrez y trouver une liste tr
es amusante des
non-propri
et
es de Usenet.
Au risque de para^
tre stupide, on peut d
e nir Usenet comme la collaboration de sites
distincts qui s'
echangent des News Usenet1. Pour devenir un site Usenet, tout ce
que vous avez 
a faire est de trouver un autre site et vous mettre d'accord avec ses
propri
etaires et administrateurs pour 
echangerdes articles avec vous. Comme ils ont le
m^
eme accord avec un autre site qui agit de m^
eme pour eux, vous voyez imm
ediatement
appara^
tre un autre aspect de la philosophie de Usenet: (
( Trouvez un fournisseur, et
vous en ferez partie. )
)
L'unit
e de base des News Usenet est l'article. Il s'agit d'un message r
edig
e par un
utilisateur, qu'il (
( poste )
) sur le r
eseau. A n que les autres sites puissent le g
erer, on
lui rajoute des informations administratives, le fameux en-t^
ete. Il ressemble beaucoup

a celui du courrier au standard RFC 822, en ce sens qu'il est constitu
e de di 
erentes
lignes de texte, chacune commen
cant par un mot-cl
e termin
e par le caract
ere (
( : )
),
suivi de la valeur attribu
ee 
a ce champ2.
1: Prononcez (
( les niouzes iouzenet )
) pour faire pro.
2: Le format des articles Usenet est actuellement d
e ni dans le document RFC 1036. Il sera 
a
terme remplac
e par un autre document en cours de r
edaction, d
e nissant des crit
eres plus stricts
dans le respect des normes; la r
ecente arriv
ee de nombreux sites utilisant des programmes con
cus en
d
epit des sp
eci cations causant une d
egradation du service, il a 
et
e d
ecid
e d'y mettre bon ordre.
16.3. Comment les News sont-elles g
er
ees sur Usenet? 263
Les articles sont post
es dans un ou plusieurs newsgroups. On peut consid
erer un news-
group comme un forum destin
e 
a recevoir des articles concernant un sujet particulier.
On utilise indi 
eremment les termes newsgroups, groupes, forums, voire conf
erences
pour les d
esigner; 
a l'
etranger seuls les deux premiers termes sont employ
es dans le
cadre de Usenet. Tous les groupes sont organis
es en hi
erarchies, leur nom indiquant
leur emplacement dans cette arborescence; ce qui permet souvent de savoir facilement
quel est le sujet trait
e, au vu du nom. Par exemple, tout le monde comprendra que le
groupe appel
e comp.os.linux.announce sert aux annonces concernant un syst
eme
d'exploitation (os) d'ordinateurs (computers) nomm
e Linux.
Ces articles sont alors 
echang
es entre tous les sites Usenet qui ont l'intention de trans-
porter les messagesde ce groupe. Lorsquedeux sites se mettent d'accord pour
echanger
des News, ils sont libres de transporter les groupes qu'ils d
esirent, et peuvent m^
eme
cr
eer de nouvelles hi
erarchies locales 
a leurs syst
emes. Par exemple, groucho.edu
peut avoir un lien avec barnyard.edu, qui est un site Usenet important, et plusieurs
liaisons avec des sites plus petits auxquels il fournit certains groupes (vous verrez
souvent d
esigner la fourniture de News par le terme anglais feed). Maintenant, bar-
nyard.edu peut recevoir toute les hi
erarchies Usenet, alors que GMU n'en d
esire que
quelques-unes comme sci, comp, rec, etc. Certains petits sites, disons par exemple
une machine UUCP appel
ee brewhq, ne voudront prendre que quelques forums, pour
des raisons de lenteur de liaison et de ressources limit
ees. De plus, brewhq peut vou-
loir r
ecup
erer une hi
erarchie locale fj, que GMU ne poss
ede pas. Il sera par cons
equent
oblig
e d'
etablir une autre liaison avec gargleblaster.com,qui transporte ces groupes,
et qui les fournira 
a brewhq. Le ux de News correspondant 
a cette situation est
illustr
e dans la gure 16.1.
Les rep
eres inscrits 
a c^
ot
e des 
eches en provenance de brewhq n
ecessitent toutefois
une explication. Par d
efaut, ce site veut que tous les articles g
en
er
es localement soient
envoy
es 
a groucho.edu. Mais comme groucho.edu ne transporte pas les groupes
fj, il n'y a aucun int
er^
et 
a les leur envoyer, ils seront rejet
es. Par cons
equent, le ux
allant de brewhq 
a GMU est rep
er
e all,!fj, signi ant que tous (all) les groupes sauf
ceux de la hi
erarchie fj sont transmis.
16.3 Comment les News sont-elles g
er
ees sur Use-
net?
Aujourd'hui, Usenet a pris des proportions 
enormes. Les sites qui transportent la
totalit
e des hi
erarchies transf
erent environ 180 Mo d'articles par jour3. Bien s^
ur, cela
n
ecessite un peu plus de proc
edures que de simples copies de chiers. Aussi, voyons
comment la plupart des syst
emes UNIX g
erent les News Usenet.
Elles sont distribu
ees sur le r
eseau par di 
erents moyens de transport. Au tout d
e-
3: Attendez... 180 Mo 
a 9600 bps, cela nous fait 180 millions divis
es par 1200, ce qui nous don-
nerait... plus de 40 heures de transfert!
264 Chapitre 16. Les News Usenet
brewhq
gargleblaster.com
Usenet
groucho.edu
barnyard.edu
comp,sci,
rec
all
all,!fj
comp.os,
comp.periphs
fj
fj
Fig. 16.1 - Circuit des News Usenet 
a l'universit
e Groucho Marx.
16.3. Comment les News sont-elles g
er
ees sur Usenet? 265
but, il s'agissait de UUCP; mais de nos jours le plus gros du tra c se fait par des
sites Internet. L'algorithme de routage utilis
e est bas
e sur la redondance: chaque site
maintient un certain nombre de liens (les fameux feeds de News) avec d'autres. Tout
article g
en
er
e ou re
cu par le syst
eme local leur est exp
edi
e, sauf s'il est d
ej
a pass
e
par eux. Il est possible de savoir par o
u est pass
e un article gr^
ace au champ Path de
l'en-t^
ete, qui contient la liste de tous les syst
emes qu'il a travers
es, s
epar
es par un
point d'exclamation (bang-path).
Pour distinguer les articles et reconna^
tre les doublons, chacun d'eux doit comporter
dans son en-t^
ete un identi cateur unique, appel
e le Message-ID, qui est r
ealis
e
a partir
du nom du site associ
e 
a un num
ero de s
erie unique sur cette machine, pr
esent
e sous
la forme num
ero@site. Le syst
eme de News enregistre chaque article trait
e par
ce num
ero dans un chier appel
e history, qui est test
e 
a chaque fois qu'un nouveau
message se pr
esente.
Le ux entre deux sites quelconques peut ^
etre limit
e selon deux crit
eres. D'une part, il
existe un champ indiquant l'
etendue de sa distribution (Distribution dans l'en-t^
ete),
permettant 
eventuellement de ne le transmettre qu'
a un nombre limit
e de sites accep-
tant cette distribution particuli
ere. D'autre part, le nombre de groupes 
echang
es peut
^
etre limit
e par l'un ou l'autre des syst
emes. L'ensemble des groupes et distributions
autoris
es 
a ^
etre transmis est g
en
eralement con gur
e dans le chier sys.
La grande quantit
e d'articles 
a traiter n
ecessite g
en
eralement quelques am
eliorations
de la m
ethode pr
ec
edente. Sur les r
eseaux UUCP, il est naturel de collecter les mes-
sages sur une certaine p
eriode puis de les combiner ensemble en un seul gros chier,
qui est compress
e puis envoy
e sur le site distant. C'est la di usion par lots.
Une autre technique fait appel au protocole ihave/sendme qui 
evite aux articles du-
pliqu
es d'^
etre transf
er
es avant d'^
etre nalement rejet
es. Au lieu de mettre tous les
articles dans des lots et de les exp
edier tels quels, ce ne sont que les message-ID qui
sont utilis
es pour constituer un 
enorme message nomm
e (
( ihave)
) (je poss
ede) exp
edi
e
au site distant. Celui-ci en prend connaissance, le compare 
a son chier d'historique,
et retourne la liste des articles pour lesquels il d
esire un message appel
e (
( sendme )
)
(envoie-moi). Seuls ces articles seront alors transf
er
es.
Bien s^
ur, ce protocole ihave/sendme n'a d'int
er^
et que s'il met en jeu deux gros sites
qui re
coivent les News depuis plusieurs ux ind
ependants les uns des autres, et qui
sont connect
es susamment souvent pour obtenir des 
echanges ecaces.
Les sites connect
es 
a l'Internet utilisent g
en
eralement des programmes bas
es sur
TCP/IP faisant appel au protocole NNTP4. Il permet de transf
erer les articles et
d'o rir des acc
es individuels 
a Usenet 
a tout utilisateur se trouvant sur une machine
distante et poss
edant un programme de lecture ad
equat.
NNTP permet le transfert de trois fa
cons di 
erentes. La premi
ere est une version
temps r
eel de ihave/sendme, aussi connue sous le nom de m
ethode du pushing (on
(
( pousse )
) les articles). Dans la deuxi
eme, le client demande une liste d'articles dans
4: D
ecrit dans le RFC 977.
266 Chapitre 16. Les News Usenet
une hi
erarchie ou un groupe donn
e, qui sont arriv
es sur le serveur apr
es une certaine
date, et choisit ceux qu'il ne peut pas trouver dans son chier d'historique. C'est
le pulling (on (
( tire )
) les articles). La troisi
eme m
ethode est destin
ee 
a la lecture
interactive et permet de r
ecup
erer des articles depuis les groupes sp
eci 
es, aussi bien
que d'en poster, le plus souvent 
a l'aide de programmesconviviaux appel
es (
( lecteurs)
).
Sur chaque site, les News sont stock
ees dans une arborescence de r
epertoires situ
ee
sous /var/spool/news, chaque article faisant l'objet d'un chier s
epar
e. Le nom du
r
epertoire est constitu
e du nom du groupe, ses composants 
etant ceux du chemin
d'acc
es. C'est-
a-dire que, par exemple, les messages de comp.os.linux.misc se trou-
veront dans le r
epertoire /var/spool/news/comp/os/linux/misc. Ils se voient assigner
un num
ero, dans l'ordre o
u ils arrivent, qui sert de nom de chier. L'
etendue de ces
num
eros est conserv
ee dans un chier nomm
e active, qui sert en m^
eme temps de liste
des groupes connus sur le site en question.
Puisque l'espace de stockage o ert par les disques durs est encore de nos jours une
ressource nie5, il faut penser 
a 
eliminer r
eguli
erementles articles devenus trop vieux:
c'est le processus d'expiration. En principe, il est possible de con gurer cela de ma-
ni
ere souple, les articles de certains groupes ou certaines hi
erarchies 
etant 
elimin
es un
certain nombre de jours apr
es leur arriv
ee sur le syst
eme. L'exp
editeur peut lui-m^
eme
d
ecider de la date 
a partir de laquelle son message pourra ^
etre supprim
e, en sp
eci ant
une date d'expiration dans le champ Expires de l'en-t^
ete.
5: Certains arment que Usenet est le fruit d'un complot ourdi par les constructeurs de modems
et les fabricants de disques durs.
267
Chapitre 17
C News
C News est l'un des ensembles de logiciels de News les plus connus. Il est destin
e aux
sites transportant les articles par UUCP. Ce chapitre traitera de son fonctionnement,
d
ecrira son installation et les t^
aches de maintenance n
ecessaires 
a son fonctionnement
correct.
Les chiers de con guration de C News se trouvent dans /usr/lib/news, et l'essentiel
de ses programmes ex
ecutables se situent dans le r
epertoire /usr/lib/news/bin. Les
articles sont stock
es dans /var/spool/news. Vous devez v
eri er, car c'est tr
es impor-
tant, que tous les chiers contenus dans ces r
epertoires appartiennent 
a l'utilisateur
news et au groupe news. La plupart des probl
emes rencontr
es sont dus 
a des chiers
inaccessibles 
a l'application. Vous devez prendre l'habitude de passer sous le compte
utilisateur news (par la commande su) avant de toucher 
a quoi que ce soit dans la
gestion des News. La seule exception 
a cette r
egle concerne le programme setnew-
sids, qui est utilis
e pour positionner le num
ero d'identi cation utilisateur de certains
utilitaires: il doit appartenir 
a root et avoir le bit setuid positionn
e.
17.1 L'injection des articles
Les articles peuvent ^
etre fournis 
a C News de di 
erentes fa
cons. Lorsqu'un utilisateur
local poste un message, son programme lecteur l'envoie g
en
eralement 
a la commande
inews, qui compl
ete les informations n
ecessaires dans l'en-t^
ete. Les articles en prove-
nance des sites distants | que ce soit un lot ou un message individuel | sont pass
esau
programme rnews, qui les place dans le r
epertoire /var/spool/news/in.coming, d'o
u ils
seront extraits plus tard par newsrun. Dans les deux cas, l'article sera 
eventuellement
trait
e par la commande relaynews.
Pour chaque article, relaynews commence par tester s'il a d
ej
a 
et
e vu sur le site local
en recherchant son Message-ID dans le chier history: les articles dupliqu
es seront
268 Chapitre 17. C News
rejet
es. Puis il regarde la ligne d'en-t^
ete Newsgroups pour v
eri er si le site demande
bien le ou les groupes indiqu
es. Si c'est le cas, et que le chier active contient bien
ce nom, relaynews essaie de placer le message dans le r
epertoire correspondant du
spoule, qui sera cr
e
e s'il n'existait pas encore. En n, le Message-ID est enregistr
e
dans le chier history. Sinon, l'article sera rejet
e.
Si relaynews ne peut pas mettre en place un article parce qu'il a 
et
e post
e dans un
groupe qui n'est pas dans le chier active, cet article sera rejet
e et d
eplac
e dans le
groupe junk1. Le programme relaynews v
eri era aussi l'int
egrit
e de l'article, sa date,
et rejettera ceux qu'il trouvera non conformes. Les lots qui sont d
eclar
es d
efectueux
pour une raison quelconque sont d
eplac
es dans /var/spool/news/in.coming/bad, et un
message d'erreur est enregistr
e dans les chiers de trace.
Ensuite, l'article sera relay
e vers tous les autres sites qui demandent des News de
ce groupe, par le transport sp
eci 
e pour chacun d'eux. Pour ^
etre s^
ur qu'il n'est pas
envoy
e vers un site qui l'aurait d
ej
a vu passer, le nom de chacun de ces sites est
recherch
e dans la ligne Path de l'en-t^
ete: seuls ceux dont le nom n'appara^
t pas dans
cette ligne recevront le message.
C News est utilis
e couramment pour relayer Usenet entre des sites UUCP, bien qu'il
soit possible de l'utiliser aussi dans un environnement NNTP. Pour fournir une ma-
chine distante par UUCP (soit par des articles isol
es, soit par des lots de messages),
il est fait appel 
a la commande uux, a n qu'elle ex
ecute rnews sur le site distant, le
message lui 
etant pass
e sur son entr
ee standard.
Lorsque la cr
eation de lots est valid
ee pour un site, C News n'envoie aucun article
imm
ediatement, mais rajoute le nom du chier correspondant dans un chier g
en
e-
ralement appel
e out.going/site/togo. P
eriodiquement, un programme de g
en
eration
de lots est ex
ecut
e par une entr
ee crontab2, ce qui rassemble tous les articles dans un
ou plusieurs gros chiers compress
es en option, et les envoie 
a la commande rnews du
site distant.
La gure 17.1 illustre le ux des News via relaynews: les articles peuvent ^
etre relay
es
depuis le site local (d
enot
e par convention par le mot cl
e ME), par courrier vers un
site nomm
e ponderosa, et sous forme de lots vers la machine moria.
17.2 Installation
Pour installer C News, mettez en place les chiers contenus dans l'archive si ce n'est
pas encore fait, et
editez les chiers de con guration indiqu
es ci-dessous. Ils se trouvent
1: Il peut y avoir une di 
erence entre les groupes qui existent sur votre site, et ceux qu'il d
esire
recevoir. Par exemple, la liste de souscription peut sp
eci er comp.all, ce qui signi e tous les groupes
de la hi
erarchie comp, mais seule une partie de ces groupes peut ^
etre indiqu
ee dans votre chier
active. Les articles pour les groupes absents de ce chier seront plac
es dans junk.
2: Il est tr
es important que ce soit le crontab de l'utilisateur news, a n de ne pas modi er les
permissions des di 
erents chiers.
17.2. Installation 269
ME ponderosa moria
active out.going/
moria/togo
history
relaynews
article
spoule
courrier
Fig. 17.1 - Flux des News par relaynews.
tous dans /usr/lib/news, et leurs di 
erents formats vont ^
etre d
ecrits dans les sections
suivantes:
sys Vous devrez sans doute modi er la ligne ME qui d
ecrit votre syst
eme,
bien que l'emploi de all/all soit une solution qui fonctionne toujours.
Il faudra aussi ajouter une ligne pour chaque site 
a qui vous enverrez
des articles.
Si vous^
etes un site UUCP isol
e en bout de cha^
ne, il vous sura d'une
ligne qui renvoie tous les articles g
en
er
es localement 
a votre fournis-
seur. En supposant que ce soit moria, votre chier sys ressemblera
simplement 
a ceci:
ME:all/all::
moria/moria.orcnet.org:all/all,!local:f:
organization Le nom de l'organisme auquel la machine appartient. Par exemple,
(
( SARL La bi
ere virtuelle )
). S'il s'agit de votre ordinateur domes-
tique, mettez ce que vous voulez, sinon la plupart des gens ne consi-
d
ereront pas votre site comme correctement con gur
e.
newsgroups Une liste de groupes, un par ligne, suivi de leur description sommaire.
Ces descriptions sont utilis
ees par les programmes lecteurs lorsqu'ils
achent la liste des forums accessibles.
270 Chapitre 17. C News
mailname L'adresse
electroniquede votre site, comme par exemple bibine.com.
whoami Le nom de votre site, pour le traitement des News. On y met le plus
souvent le nom UUCP, par exemple gueuze.
explist Vous devrez 
editer ce chier pour qu'il corresponde 
a vos besoins
d'expiration des messages. Son contenu d
epend 
etroitement de la
place disque dont vous disposez.
Pour cr
eer une hi
erarchie initiale, r
ecup
erez les chiers active et newsgroups d'un
site qui vous fournit, et installez-les dans /usr/lib/news, en v
eri ant bien qu'ils ap-
partiennent 
a news et ont le mode 644. Supprimez tous les groupes to.* du chier
active, puis rajoutez to.mon-site et to.fournisseur, ainsi que junk et control. Les
groupes to.* sont utilis
es pour l'
echange de messages ihave/sendme, mais vous devez
les cr
eer m^
eme si vous ne comptez pas employer ce protocole. Ensuite, remplacez tous
les num
eros d'articles contenus dans la deuxi
eme et la troisi
eme colonne du chier
active en ex
ecutant la commande suivante:
# cp active active.old
# sed 's/ [0-9]* [0-9]* / 0000000000 00001 /' active.old  active
# rm active.old
La deuxi
eme ligne appelle la commande sed(1), l'utilitaire favori des administrateurs.
Ici, il s'agit de remplacer deux cha^
nes de chi res par une cha^
ne de z
eros et la valeur
000001, respectivement.
En n, cr
eez le r
epertoire de spoule et les sous-r
epertoires utilis
es pour l'arriv
ee et le
d
epart des articles:
# cd /var/spool
# mkdir news news/in.coming news/out.going
# chown -R news.news news
# chmod -R 755 news
Si vous poss
edez une version r
ecente de C News, il vous faudra aussi cr
eer le r
epertoire
news/out.master.
Si vous utilisez des programmes lecteurs de provenances diverses, vous vous ren-
drez compte que certains recherchent le spoule dans /usr/spool/news au lieu de
/var/spool/news, et dans ce cas, ils seront incapables de trouver les articles. Si c'est le
cas, il voussura de cr
eerun lien symboliquede /usr/spool/news vers/var/spool/news.
Vous ^
etes maintenant 
equip
e pour recevoir des News. Notez que vous n'aurez pas
besoin de cr
eer d'autres r
epertoires que ceux mentionn
es ci-dessus, C News s'occupera
de le faire automatiquement lorsque des articles arriveront.
En particulier, cela se produit pour tous les groupes dans lesquels un article a
et
ecross-
post
e. Aussi, au bout d'un moment, vous trouverez le spoule rempli de r
epertoires
17.3. Le chier sys 271
correspondant 
a des groupes que vous n'avez jamais demand
e, comme alt.lang.teco.
Il est possible d'
eviter cela en supprimant chacun de ces groupes du chier active, ou
en lan
cant p
eriodiquement un shell-script qui supprime les r
epertoires vides 
a partir
de /var/spool/news (sauf bien entendu out.going et in.coming).
C News envoie les messages d'erreur et de service 
a un utilisateur particulier. Par
d
efaut, il s'appelle usenet. Si vous utilisez ce nom (ce qui est conseill
e), vous devrez
d
eclarer un alias qui enverra tout le courrier 
a ce nom vers les bo^
tes aux lettres des
personnes responsables. (Les chapitres 14 et 15 vous expliqueront comment faire.)
Vous pouvez aussi changer cette valeur par d
efaut en donnant 
a la variable d'en-
vironnement NEWSMASTER le nom appropri
e. Vous devrez le faire dans le chier
crontab de l'utilisateur news, ainsi qu'
a chaque fois que vous aurez 
a lancer un outil
d'administration 
a la main. Il est donc pr
ef
erable d'installer un alias pour ne pas se
compliquer la vie.
Il faudra aussi v
eri erque dans le chier /etc/passwd, le vrai nom de chaque utilisateur
gure bien dans le champ pw gecos (c'est le quatri
eme champ). Ce nom appara^
tra
dans la ligne From de l'article, et il ne faut pas qu'il y apparaisse n'importe quoi; c'est
une question de netiquette3. Si vous utilisez d
ej
a le courrier 
electronique, tout cela
est probablement d
ej
a proprement con gur
e.
17.3 Le chier sys
Le chier sys, situ
e dans /usr/lib/news, contr^
ole quelles hi
erarchies vous recevez et
envoyez aux autres sites. Bien qu'il existe des outils de maintenance pour le g
erer
(addfeed et delfeed), tout le monde s'accorde 
a dire qu'il vaut bien mieux e ectuer ces
op
erations 
a la main.
Il contient des entr
ees pour chaque site auquel vous envoyez des News, et une des-
cription des groupes que vous accepterez. Chaque entr
ee est de cette forme:
site[/exclusions]:liste-groupes[/distributions][:drapeaux[:commandes]]
Une entr
ee peut s'
etendre sur plusieurs lignes, en rajoutant un anti-slash au bout ().
Le signe di
ese (#) d
enote un commentaire.
site Il s'agit du nom du site auquel cette entr
ee s'applique, c'est g
en
era-
lement le nom UUCP qui est choisi. Il doit y avoir une entr
ee pour
votre propre site dans ce chier sys, sinon vous ne recevrez jamais
aucun article.
3: La nettiquette est en quelque sorte le manuel de savoir-vivre sur Usenet. Un document humo-
ristique post
e tous les mois en rappelle les principaux traits, vous pouvez en consulter la version
fran
caise dans la hi
erarchie francophone fr.*, ou la t
el
echarger sur le serveur ftp.fdn.org.
272 Chapitre 17. C News
Le nom sp
ecial ME d
enote votre site. Cette entr
ee d
e nit tous les
groupes que vous comptez stocker localement. Les articles de groupes
qui ne sont pas d
ecrits dans cette ligne seront plac
es dans junk.
Puisque C News compare site avec ceux contenus dans la ligne
Path des en-t^
etes d'articles, vous devez vous assurer que tout cor-
respond bien. Certains mettent leur nom pleinement quali 
e, ou un
alias comme news.site.domaine. Pour 
eviter que des articles en
provenance de tels sites ne leur soient inutilement r
eexp
edi
es, vous
devrez ajouter ces noms 
a la liste d'exclusion, s
epar
es par des vir-
gules.
Parexemple, pour l'entr
ees'appliquant 
a la machine moria,le champ
site contiendrait moria/moria.orcnet.org.
liste-groupes
Il s'agit d'une liste de souscription de groupes et hi
erarchies (dont le
caract
ere s
eparateur est la virgule) pour le site en question. Une hi
e-
rarchie peut ^
etre sp
eci 
ee en donnant son pr
e xe (comme comp.os
pour tous les groupes dont le nom commence par ces lettres), suivie
facultativement par le mot cl
e all (par exemple, comp.os.all).
Une hi
erarchie ou un groupe est exclus en le faisant pr
ec
eder par
un point d'exclamation, marquant la n
egation. Si un groupe est re-
cherch
e dans cette liste, c'est le plus long qui gagne. Par exemple, si
liste-groupes contient:
!comp,comp.os.linux,comp.folklore.computers
Cela signi era qu'aucun groupe appartenant 
a la hi
erarchie comp ne
sera envoy
e 
a ce site, sauf comp.folklore.computers et tous ceux
en dessous de comp.os.linux.
Pour lui envoyer toutes les News que vous recevez vous-m^
eme, mettez
simplement all dans liste-groupes.
distributions
Ce champ, s
epar
e du pr
ec
edent par un slash (/) contient une liste
des distributions qui seront envoy
ees au site concern
e. L
a encore,
vous pouvez en exclure certaines en les faisant pr
ec
eder d'un point
d'exclamation, ou les d
esigner toutes par le mot all. Si vous omettez
ce champ distributions, cela d
enote implicitement all.
Parexemple, vouspouvez mettre comme liste de distributions quelque
chose comme all,!local, pour 
eviter d'envoyer les groupes 
a usage local
aux sites distants.
Il y a en principe au moins deux distributions: world, qui est souvent
celle par d
efaut lorsque aucune n'est pr
ecis
ee, et local. Il peut y en
avoir d'autres s'appliquant 
a certaines r
egions, 
etats, pays, d
eparte-
17.3. Le chier sys 273
ments, etc. En n, il en existe deux sp
eci ques 
a C News: ce sont
sendme et ihave, qu'il utilise pour le protocole sendme/ihave.
L'utilisation des distributions fait l'objet de nombreusespol
emiques4.
Pour certains, quelques lecteurs de News cr
eent de (
( fausses )
) distri-
butions en utilisant simplement le nom de la hi
erarchie (comp par
exemple) en postant dans des groupes tel comp.os.linux.advocacy.
Les distributions s'appliquant aux r
egions sont douteuses, car les ar-
ticles peuvent prendre un chemin d
etourn
e et devoir sortir hors de
cette r
egion pour y revenir5. Les distributions s'appliquant 
a une or-
ganisation particuli
ere ont, par contre, un certain sens: par exemple,
pour 
eviter que des informations con dentielles sur votre entreprise
s'
echappent d'un groupe local. Mais pour ce genre de cas, mieux vaut
cr
eer une hi
erarchie s
epar
ee.
drapeaux Cette option d
ecrit certains param
etres du ux. Elle peut ^
etre ab-
sente, ou bien comporter une combinaison des valeurs suivantes:
F Ce drapeau valide la cr
eation de lots6.
f Pratiquement identique 
a F, mais permet 
a C News
de calculer la taille des lots 
a partir, de mani
ere plus
pr
ecise.
I Ce drapeau indique 
a C News de produire une liste
d'articles pour l'utilisation du protocole d'
echange
ihave/sendme. Il faut 
egalement e ectuer quelques
modi cations aux chiers sys et batchparms dans ce
cas.
n Cr
ee des chiers de lots pour les transferts NNTP
avecdes clients comme nntpxmit (voir le chapitre 18).
Ces lots contiennent les noms des chiers contenant
les articles ainsi que leurs Message-ID.
L Indique 
a C News de ne transmettre que les articles
post
es sur votre site. Ce drapeau peut ^
etre suivi par
un nombre d
ecimal n, qui permettra alors de ne pos-
ter que les messages en provenance d'au plus n hops
de votre site. Le nombre de hops est d
etermin
e par
4: En fait, de nos jours la plupart des administrateurs de sites Usenet s'accordent 
a dire que si
l'id
ee n'
etait pas mauvaise au d
epart, son application s'est plut^
ot tr
es mal pass
ee et qu'il faut 
eviter

a tout prix d'utiliser un champ (
( distribution )
), aucun site ne le g
erant de la m^
eme mani
ere; c'est le
meilleur moyen de perdre des articles.
5: Il est tr
es courant de voir des articles post
es par exemple 
a Hambourg, se retrouver 
a Francfort
via reston.ans.net aux Pays-Bas, voire en passant par un site des USA.
6: Ce sont les (
( batches de News )
) chers aux administrateurs dont la langue natale est le (
( fran-
glais )
).
274 Chapitre 17. C News
le contenu du champ Path de l'en-t^
ete.
u Seuls les articles des groupes non mod
er
es seront

emis.
m Seuls les articles des groupes mod
er
es seront 
emis.
Vous ne pouvez employer au plus qu'un F, f, I, ou n.
commandes Ce champ contient la commande 
a ex
ecuter pour chaque article
lorsque le traitement par lots est en service. Le message sera pass
e

a cette commande via son entr
ee standard; 
a n'utiliser que sur les
petits ux, sinon la charge sur chacun des deux syst
emes deviendra
prohibitive.
La commande par d
efaut est:
uux - -r -z syst
eme!rnews
Elle ex
ecute rnews sur le syst
eme distant, en lui passant l'article sur
son entr
ee standard.
Le chemin de recherche des commandes indiqu
ees dans ce champ
est par d
efaut /bin:/usr/bin:/usr/lib/news/bin/batch. Le dernier r
e-
pertoire contient un certain nombre de shell-scripts dont les noms
commencent par via; nous les d
ecrirons bri
evement un peu plus loin
dans ce chapitre.
Si le traitement par lots a 
et
e valid
e par l'un des drapeaux F, f,
I ou n, C News s'attendra 
a trouver un nom de chier dans ce
champ, et non pas une commande. Si ce nom ne commence pas
par un slash (/), il sera consid
er
e comme 
etant relatif au r
epertoire
/var/spool/news/out.going. Si le champ est vide, la valeur par d
efaut
sera syst
eme/togo.
Lors de la con guration de C News, vous devrez probablement r
ediger votre propre
chier sys. Pour vous aider dans cette t^
ache, nous allons vous donner un exemple
concernant bibine.com, 
a partir duquel vous pourrez recopier tout ce dont vous avez
besoin et l'adapter 
a votre site.
# Nous prenons tout ce qu'ils nous envoient.
ME:all/all::
# Nous envoyons tout ce que nous recevons 
a moria, sauf les
# articles locaux et ceux relatifs aux brasseurs. Nous utilisons
# des lots (batching).
moria/moria.orcnet.org:all,!to,to.moria/all,!local,!brasseurs:f:
# Nous exp
edions comp.risks par courrier 
electronique 
a
# l'utilisateur jack@ponderosa.uucp
17.4. Le chier active 275
ponderosa:comp.risks/all::rmail jack@ponderosa.uucp
# La machine swim veut un petit flux de News:
swim/swim.twobirds.com:comp.os.linux,rec.humor.oracle/all,!local:f:
# Nous enregistrons les cartes UUCP publi
ees pour traitement
# ult
erieur.
usenet-maps:comp.mail.maps/all:F:/var/spool/uumaps/work/batch
17.4 Le chier active
Le chier active est situ
e dans /usr/lib/news et contient la liste de tous les groupes
connus par votre site, ainsi que les articles actuellement accessibles. Vous n'aurez
que tr
es rarement besoin d'y toucher, mais nous allons tout de m^
eme expliquer son
contenu pour que vous compreniez bien son r^
ole. Il contient des entr
ees de la forme:
groupe haut bas permission
Le champ groupe contient le nom du groupe; bas et haut sont les num
eros du premier
et du dernier article actuellement disponibles dans ce groupe. S'il est vide, bas vaut
alors haut+1.
En n disons que c'est ce que bas est cens
e faire, parce que, pour des raisons d'eca-
cit
e, C News ne met jamais cette valeur 
a jour. Ce ne serait pas un probl
eme s'il n'y
avait pas certains lecteurs de News comptant sur ce champ pour v
eri er s'ils peuvent
purger des articles de leur base de donn
ees des ls de discussions. Pour mettre 
a jour
ce champ bas, vous devrez par cons
equent ex
ecuter p
eriodiquement la commande
updatemin (ou, dans de plus anciennes versions de C News, le script upact).
Le champ permission est un param
etre indiquant quel type d'acc
es auront les utili-
sateurs, il peut prendre l'une des valeurs suivantes:
y Les utilisateurs ont le droit de poster dans ce groupe.
n Les utilisateurs n'ont pas le droit de poster dans ce groupe, mais ils
peuvent le lire.
x Ce groupe a 
et
e invalid
e sur le syst
eme local. Cela arrive quelque-
fois lorsque des administrateurs (ou leurs sup
erieurs) se plaignent du
contenu des messages y 
etant post
es.
Les articles re
cus pour ce groupe ne sont pas stock
es localement, mais
ils seront toujours 
emis vers les sites qui les demandent.
m Indique un groupe mod
er
e. Lorsqu'un utilisateur tente de poster de-
dans, si son lecteur de News est bien con
cu, il lui noti era ce fait et
276 Chapitre 17. C News
enverra l'article au mod
erateur par courrier 
electronique. L'adresse
du mod
erateur est prise dans le chier moderators situ
e dans le r
e-
pertoire /usr/lib/news.
=vrai-groupe
Marque groupe comme 
etant un alias local pour un autre groupe,
nomm
e en r
ealit
e vrai-groupe. Tous les articles post
es dans groupe
y seront redirig
es.
Dans C News, vous n'aurez en g
en
eral pas besoin d'acc
eder directement 
a ce chier.
Les groupes peuvent ^
etre ajout
es ou supprim
es localement par les commandes add-
group et delgroup (consultez la section (
( Outils et travaux de maintenance)
) page 287).
Les messages de contr^
ole newgroup et rmgroup cr
eent ou suppriment un groupe dans
la totalit
e de Usenet. N'envoyez jamais un tel message vous-m^
eme! Vous vous feriez
ha
r du monde entier. Toutes les instructions de cr
eation de groupe 
a un tel niveau
sont post
ees tous les mois dans news.announce.newusers.
Le chier active.times est tr
es li
e 
a active: chaque fois qu'un nouveau groupe est cr
e
e,
C News enregistre un message dans ce chier. Il contient le nom du groupe cr
e
e, la
date de cr
eation, si celle-ci a 
et
e faite sur un message de contr^
ole newgroup ou locale-
ment, et le nom de la personne ayant cr
e
e ce groupe. Il sert aux programmes lecteurs
qui peuvent 
eventuellement noti er aux utilisateurs les nouveaux groupes r
ecemment
cr
e
es. Il est 
egalement utilis
e par la commande NEWGROUPS du protocole NNTP.
17.5 Le traitement par lots (batching)
Les lots d'articles se conforment 
a un format particulier qui est le m^
eme pour Bnews,
C News, and INN7. Chaque article est pr
ec
ed
e d'une ligne comme celle-ci:
#! rnews taille
La valeur taille est le nombre d'octets contenus dans l'article. Lorsque l'on utilise
la compression, c'est le chier r
esultant qui est compress
e; il est alors pr
ec
ed
e d'une
autre ligne, indiquant que les donn
ees qui suivent devront ^
etre d
ecompact
ees. L'outil
standard permettant la compression est compress, qui est rep
er
e par:
#! cunbatch
Il arrive que l'on doive faire passer des lots par courrier, o
u certaines liaisons suppri-
ment le huiti
eme bit des donn
ees. Dans ce cas, on peut prot
eger un lot compress
e en
utilisant l'encodage appel
e c7; ils seront alors rep
er
es par c7unbatch.
7: Ce format est d
e ni dans le document RFC 1036.
17.5. Le traitement par lots (batching) 277
Lorque le programme rnews du site distant re
coit un lot de News, il teste ces rep
eres
a n de traiter les donn
ees de mani
ereappropri
ee.Certains sites utilisent le compacteur
gzip, et indiquent alors zunbatch: C News ne reconna^
t pas ces en-t^
etes non standard,
vous devrez modi er le code source pour pouvoir les traiter.
Le programme /usr/lib/news/bin/batch/sendbatches est charg
e de la r
ealisation des
lots. Il prend une liste d'articles dans le chier site/togo, et constitue les archives en
les r
epartissantdans un ou plusieurs lots. Il doit^
etreex
ecut
ep
eriodiquement,au moins
une fois par heure, voire plus, en fonction du volume du tra c. Son fonctionnement
est contr^
ol
e par le chier batchparms situ
e dans /usr/lib/news, qui d
ecrit la taille
maximale autoris
ee pour chaque lot, et le transport 
a utiliser pour les d
elivrer; ceci
pour chaque site. Vous pouvez sp
eci er ces param
etres soit par site, soit par des
valeurs par d
efaut qui seront prises en compte pour tous les syst
emes non mentionn
es
explicitement.
Pour pr
eparer les lots destin
es 
a un site sp
eci que, utilisez la commande suivante:
# su news -c /usr/lib/news/bin/batch/sendbatches site
Appel
ee sans argument, la commande sendbatches traite toutes les les d'attente. Si
une entr
ee par d
efaut existe dans le chier batchparms, tous les r
epertoires contenus
dans /var/spool/news/out.going seront trait
es; sinon ne seront pris en compte que les
entr
ees indiqu
ees, dans l'ordre o
u elles se trouvent dans batchparms. Notez que lors
de la recherche dans out.going, sendbatches ne consid
ere comme nom de site que les
r
epertoires ne contenant aucun point ou signes @ dans leur nom.
Vous trouverez probablement dans votre distribution un chier batchparms tout pr^
et
contenant une entr
ee par d
efaut raisonnable, aussi il y a des chances que vous n'ayez
rien 
a modi er. Malgr
e tout, nous allons d
ecrire ce format, qu'il est bon de conna^
tre.
Chaque ligne contient six champs, s
epar
es par des espaces ou tabulations:
site taille max outil compacteur transport
Le champ site contient le nom du site auquel s'applique cette entr
ee. Le chier togo
correspondant devra se trouver dans le r
epertoire out.going/togo, dans le spoule. Le
mot cl
e /default/ indique l'entr
ee par d
efaut.
Le champ taille indique la taille maximale autoris
ee pour chaque lot, avant com-
pression. Si un article d
epasse 
a lui seul cette taille, C News fera une exception et
cr
eera un lot ne contenant que cet article.
La valeur max correspond au nombre maximum de batches 
a pr
eparer pour le transfert
vers ce site. C'est tr
es utile lorsqu'un syst
eme doit ^
etre indisponible pour une longue
p
eriode, car il 
evite de voir le spoule UUCP rempli par des milliers de lots en attente
d'^
etre transf
er
es.
C News d
etermine le nombre de lots en attente gr^
ace au script queulen, situ
e dans
le r
epertoire /usr/lib/news/bin. Le paquetage newspak de Vince Skahan en contient
278 Chapitre 17. C News
une version adapt
ee aux impl
ementations d'UUCP compatibles BNU. Si vous utilisez
un autre style de r
epertoires de spoule, comme Taylor UUCP, vous devrez 
ecrire un
script adapt
e8.
Le champ outil d
esigne la commande utilis
ee pour produire un lot 
a partir de la liste
d'articles contenue dans le chier togo. Pour les ux standard, il s'agit normalement
de batcher. Pour d'autres besoins, vous pouvez indiquer di 
erents autres programmes;
par exemple, le protocole ihave/sendme n
ecessite que cette liste soit transform
ee en
un message de contr^
ole post
e dans le groupe to.site. Cette op
eration est r
ealis
ee par
batchih et batchsm.
Le champ compacteur sp
eci e la commande utilis
ee pour la compression. G
en
erale-
ment, il s'agit du shell-script compcun9. Mais vous pouvez aussi indiquer un script
appelant gzip (que vous r
edigerez vous-m^
eme); vous devrez cependant vous mettre
d'accord avec le site distant pour que sa commande uncompress sache traiter les -
chiers compact
es par gzip.
Si le syst
eme distant ne poss
ede pas du tout de commande uncompress, vous pouvez
sp
eci er nocomp; dans ce cas, les lots resteront non compact
es.
Le dernier champ, transport, d
ecrit la m
ethode de transport qu'il faudra utiliser.
Il y a un certain nombre de commandes standard pour cela, dont le nom commence
par via. Le programme sendbatches leur passe le nom du site destinataire sur la ligne
de commandes. Si l'entr
ee dans batchparms n'est pas /default/, il d
erive ce nom du
champ site en prenant toute la partie pr
ec
edant un 
eventuel point ou slash. S'il s'agit
de l'entr
ee /default/, ce seront les noms des r
epertoires pr
esents dans out.going qui
seront utilis
es.
Il y a deux commandes utilisant uux pour faire ex
ecuter rnews sur le syst
eme distant:
viauux et viauuxz. La derni
ere positionne l'option -z n
ecessaire aux anciennes versions
de uux pour 
eviter qu'il retourne un message pour chaque article indiquant que le
transfert s'est bien pass
e. Vous trouverez une liste compl
ete de ces transports dans la
page de manuel newsbatch(8).
Toutes les commandes des trois derniers champs doivent se trouver soit dans le r
eper-
toire out.going/site, soit dans /usr/lib/news/bin/batch. La plupart d'entre elles sont
des shell-scripts, vous pourrez donc facilement vous 
ecrire des outils sur mesure le cas

ech
eant. Elles sont invoqu
ees par un tube; la liste des articles est envoy
ee sur l'entr
ee
standard, et le lot r
ealis
e arrive sur la sortie standard, qui elle-m^
eme est redirig
ee vers
le compacteur, etc.
Voici un exemple de ce chier:
8: Si le nombre de lots spoul
es ne vous pr
eoccupe pas (parce que vous ^
etes le seul 
a utiliser votre
machine et ne r
edigez pas des m
egaoctets d'articles), vous pouvez remplacer le contenu de ce script
par la simple instruction exit 0.
9: Tel que livr
e avec C News, compcun utilise compress avec l'option 12 bits, car c'est le plus
petit d
enominateur commun pour la plupart des sites. Vous pouvez en faire une copie, que vous
appellerez par exemple compcun16, o
u vous utiliserez la compression 16 bits.
17.6. Expiration des News 279
# Fichier batchparms pour les brasseurs
# site | taille | max | outil |compacteur |transport
#-------------+--------+-------+---------+-----------+-----------
/default/ 100000 22 batcher compcun viauux
swim 10000 10 batcher nocomp viauux
17.6 Expiration des News
Dans Bnews, l'expiration 
etait r
ealis
ee par un programme appel
e expire, qui prenait
une liste de groupes en arguments, ainsi que la date 
a prendre en compte. Pour que
des hi
erarchies di 
erentes aient des d
elais d'expiration di 
erents, il fallait 
ecrire un
script appelant expire s
epar
ement pour chacune d'elles. C News propose maintenant
une solution bien meilleure: dans un chier nomm
e explist, vous indiquez des groupes
et des intervalles d'expiration. Une commande appel
ee doexpire est invoqu
ee tous les
jours par cron, et traite ces groupes en fonction de ce que vous avez indiqu
e dans
cette liste.
Il est parfois n
ecessaire de conserver les articles de certains groupes, m^
eme apr
es
qu'ils ont expir
e. Par exemple, vous pouvez vouloir conserver les programmes post
es
dans comp.sources.unix. Cela s'appelle naturellement l'archivage; explist permet
de s
electionner des groupes 
a archiver.
Une entr
ee du chier explist est constitu
ee ainsi:
liste-groupes permission jours archive
Le champ liste-groupes est une liste de forums, s
epar
es par des virgules, auxquels
cette entr
ee s'appliquera. Les hi
erarchies peuvent ^
etre sp
eci 
ees en indiquant le pr
e-
xe des groupes, suivi le cas 
ech
eant du mot cl
e all. Par exemple, pour d
esigner
tous les groupes en dessous de comp.os, vous pouvez indiquer soit comp.os, soit
comp.os.all.
Lors de l'expiration d'un groupe, son nom est recherch
e dans les entr
ees du chier ex-
plist, dans l'ordre donn
e. La premi
ere entr
ee qui correspond s'appliquera. Parexemple,
pour supprimer la majorit
e de comp au bout de quatre jours, sauf les articles du
groupe comp.os.linux.announce que vous voudriez conserver une semaine, il vous
sut d'une entr
ee pour ce dernier sp
eci ant une p
eriode d'expiration de sept jours,
suivie par celle pour comp, qui indiquera quatre jours.
Le champ permission pr
ecise si l'entr
ee s'applique aux groupes mod
er
es, non mod
e-
r
es, ou tous les groupes. Il peut prendre la valeur m (mod
er
es), u (non mod
er
es), ou
x (tous).
Le troisi
eme champ, jours, contient le nombre de jours au bout desquels les articles
expireront s'ils ne se sont pas vu assigner une date d'expiration particuli
ere par le
280 Chapitre 17. C News
champ Expires de l'en-t^
ete. Notez que ce nombre de jours est compt
e 
a partir de
l'arriv
ee sur votre site, et non pas de la date o
u le message a 
et
e 
emis.
Ce champ jours peut toutefois ^
etre plus complexe. Il peut contenir une combinaison
pouvant aller jusqu'
a trois nombres s
epar
es les uns des autres par un tiret. Le premier
d
enotera le nombre de jours devant s'
ecouler avant que l'article ne soit consid
er
e
comme candidat 
a l'expiration. Il est rare d'y mettre autre chose que z
ero.Le deuxi
eme
champ contiendra le nombre de jours avant expiration, c'est le m^
eme que celui que
nous venons de d
ecrire plus haut. Le troisi
eme contiendra le nombre de jours au
bout desquels l'article sera supprim
e de force, quel que soit le contenu du champ
Expires de son en-t^
ete. Si l'on n'indique seulement que le nombre du milieu, les deux
autres prennent des valeurs par d
efaut, qui peuvent ^
etre sp
eci 
ees par l'entr
ee sp
eciale
/bounds/, d
ecrite un peu plus loin.
Le quatri
eme champ, archive, indique si le groupe doit ^
etre archiv
e, et 
a quel endroit.
Si l'archivage n'est pas demand
e, il sut d'y mettre un tiret. Sinon, vous pouvez
utiliser un chemin d'acc
es complet 
a un r
epertoire (et non pas d'un chier), ou le signe
@ qui symbolisera le r
epertoire d'archivage par d
efaut. Celui-ci sera alors indiqu
e 
a
doexpire par l'option -a de sa ligne de commandes. Un r
epertoire destin
e 
a l'archivage
doit appartenir 
a l'utilisateur news. Lorsque doexpire archive un article de, disons,
comp.sources.unix, il le place dans le r
epertoire comp/sources/unix 
a partir
du r
epertoire d'archivage, en cr
eant l'arborescence si n
ecessaire. Mais ce r
epertoire
d'archivage devra exister, il n'est jamais cr
e
e automatiquement.
Le programme doexpire tient comte de deux entr
ees de votre chier explist: au lieu
d'une liste de groupes, elles contiennent les mots-cl
es /bounds/ et /expired/. L'entr
ee
/bounds/ contient les valeurs par d
efaut 
a assigner aux trois valeurs du champ jours
d
ecrit plus haut.
Le champ /expired/ d
etermine combien de temps C News devra tenir compte des
lignes du chier history. Il est n
ecessaire, car les lignes de ce chier ne seront pas
supprim
ees imm
ediatement lorsque les articles correspondants auront expir
e: cela
permet de rejeter tout article d
ej
a expir
e qui viendrait 
a se repr
esenter, en provenance
d'un ux tr
es lent ou pour toute autre raison. Si vous n'avez qu'un fournisseur, vous
pouvez choisir une valeur assez faible. Pour les r
eseaux UUCP, quinze jours semble
une valeur raisonnable; 
a vous de voir en fonction des d
elais obtenus dans votre cas
particulier.
Voici ci-dessous un exemple de chier explist contenant des intervalles d'expiration
assez courts:
# Conservation des lignes du fichier history pendant quinze jours.
/expired/ x 14 -
# Personne ne conserve un article plus de trois mois.
/bounds/ x 0-1-90 -
# groupes que nous voulons conserver plus longtemps que les autres
comp.os.linux.announce m 10 -
comp.os.linux x 5 -
17.7. Fichiers divers 281
alt.folklore.computers u 10 -
rec.humor.oracle m 10 -
soc.feminism m 10 -
# Archivage des groupes *.sources
comp.sources,alt.sources x 5 @
# d
efauts pour les groupes tech
comp,sci x 7 -
# Suffisant pour un long week-end
misc,talk x 4 -
# supprime le groupe junk tr
es rapidement
junk x 1 -
# les messages de contr^
ole ne sont pas plus int
eressants
control x 1 -
# entr
ee qui s'appliquera 
a tout le reste
all x 2 -
Le processus d'expiration pose plusieurs probl
emes. Le premier se pr
esente si votre
lecteur de News tient compte du troisi
eme champ du chier active, qui contient le
num
ero du premier article de chaque groupe. C News ne met jamais cette valeur 
a
jour. Si ce champ doit vraiment repr
esenter la situation r
eelle, vous devrez ex
ecuter un
programme appel
e updatemiin apr
es chaque appel 
a doexpire. (Dans de pr
ec
edentes
versions, le nom du programme est upact.)
C News ne scrute pas le r
epertoire du groupe, mais teste simplement dans le -
chier history si l'article doit expirer10. Si ce chier est endommag
e ou ne repr
esente
plus exactement la situation pour une raison quelconque, certains articles resteront

eternellement sur votre disque, car C News les aura litt
eralement oubli
es11. Vous
pouvez rem
edier 
a la situation gr^
ace au script addmissing situ
e dans le r
epertoire
/usr/lib/news/bin/maint, qui rajoutera tous les articles absents du chier history, ou
encore la commande mkhistory, qui reconstruira enti
erement un nouveau chier tout
neuf. N'oubliez pas de passer sous l'utilisateur news auparavant, sinon le chier serait
inaccessible 
a C News.
17.7 Fichiers divers
Il existe un certain nombre de chiers contr^
olant le comportement de C News, mais qui
ne sont pas indispensables 
a son fonctionnement. Tous r
esident dans /usr/lib/news,
en voici une liste:
10: La date d'arriv
ee est enregistr
ee dans le champ du milieu de la ligne d'historique, exprim
ee en
nombre de secondes depuis le premier janvier 1970.
11: Ce cas se produit r
eellement de temps en temps, sans qu'on puisse trouver d'explication...
282 Chapitre 17. C News
newsgroups C'est le compagnon du chier active; il contient une liste de chaque
groupe connu sur votre syst
eme, avec une br
eve description (sur une
ligne) du groupe en question. Il est automatiquement mis 
a jour
lorsque C News re
coit un message de contr^
ole checknews.
localgroups Si vous avez cr
e
e des groupes locaux et que vous ne voulez pas que
C News se plaigne chaque fois que vous recevez un message check-
news, indiquez leurs noms et descriptions dans ce chier, de la m^
eme
mani
ere que dans le chier newsgroups.
mailpaths Ce chier contient les adresses des mod
erateurs de chaque groupe
mod
er
e. Chaque ligne contient le nom du groupe, suivi de l'adresse

electronique de la personne en question. Les deux champs sont s
epa-
r
es par un caract
ere de tabulation.
Deux entr
ees sp
eciales sont fournies par d
efaut: backbone et inter-
net. Toutes deux indiquent, en notation par bangs, le chemin vers
un site central et celui qui comprend les adresses RFC 822 (utilisa-
teur@machine). Les entr
ees par d
efaut sont:
internet backbone
Vous n'aurez pas besoin de modi er l'entr
ee internet si vous utilisez
smail ou sendmail, car ils comprennent l'adressage RFC 822.
L'entr
ee backbone est utilis
ee chaque fois qu'un utilisateur poste dans
un groupe mod
er
e dont le mod
erateur n'est pas indiqu
e explicite-
ment. Si le nom du groupe est alt.machin, et que l'entr
ee back-
bone contient chemin!%s, C News enverra par courrier l'article 
a
chemin!alt-machin, en esp
erant que cette machine sera capable de le
traiter. Pour trouver quel chemin utiliser, demandez aux administra-
teurs du site qui vous fournit les News. En tout dernier ressort, vous
pouvez mettre uunet.uu.net!%s.
distributions Il ne s'agit pas 
a proprement parler d'un chier de C News, il est
utilis
e par certains programmeslecteurs et le d
emon nntpd. Il contient
la liste des distributions reconnues par votre site, et une description
des e ets induits (ou esp
er
es...) Par exemple, celui de (
( La bi
ere
virtuelle )
) contient ceci:
world partout dans le monde
local Local 
a ce site
nl Hollande uniquement
mugnet MUGNET uniquement, s'il vit encore
fr France uniquement
de Allemagne uniquement
brasseurs Soci
et
e La bi
ere virtuelle seulement
17.8. Les messages de contr^
ole 283
M
e ez-vous de ces distributions, 
evitez-les. Lisez ou relisez ce qui est
dit 
a leur propos, page 272.
log Ce chier contient toutes les traces des activit
es de C News. Il est
purg
e r
eguli
erement par newsdaily; les copies des anciennes traces
sont conserv
ees dans log.o, log.oo, etc.
errlog Il contient les enregistrements de tous les messages d'erreurs g
en
er
es
par C News. Cela ne comprend pas les articles d
eplac
es dans junk. Il
est automatiquement envoy
epar courrier au newsmaster (usenetpar
d
efaut) par newsdaily s'il n'est pas vide au moment o
u cet utilitaire
est mis en route.
Ce chier est remis 
a z
ero par newsdaily, et sauvegard
e dans errlog.o,
errlog.oo, etc.
batchlog Il contient la trace de tous les travaux de sendbatches; il n'a que peu
d'int
er^
et. Il est 
egalement trait
e par newsdaily.
watchtime Il s'agit d'un chier vide cr
e
e chaque fois que newswatch est ex
ecut
e.
17.8 Les messages de contr^
ole
Le protocole de News Usenet comprend une cat
egorie d'articles sp
eciaux qui corres-
pondent en fait 
a des actions e ectu
ees par le syst
eme. On les appelle les messages de
contr^
ole. Ils sont reconnaissables par la pr
esence d'un champ Control dans l'en-t^
ete,
qui contient le nom de l'op
eration 
a r
ealiser. Toutes ces op
erations sont ex
ecut
ees par
des shell-scripts situ
es dans le r
epertoire /usr/lib/news/ctl.
La plupart s'e ectueront automatiquement au moment o
u l'article sera trait
e par
C News, sans que personne soit avis
e. Par d
efaut, seuls les messages checkgroups
seront pass
es au newsmaster, mais vous pouvez modi er ce comportement en 
editant
les scripts.
17.8.1 Le message cancel
C'est le plus connu, il permet 
a un utilisateur de supprimer un article qu'il a pr
ec
e-
demment post
e. Cette op
eration supprime physiquement le chier contenant l'article.
Le message cancel est exp
edi
e 
a tous les sites qui re
coivent le groupe concern
e, qu'ils
aient d
ej
a re
cu l'article ou non; il peut avoir 
et
e retard
e pour une raison quelconque.
Certains syst
emes permettent aux utilisateurs de supprimer des messages post
es par
d'autres personnes; ils sont 
a proscrire absolument, c'est un bogue impardonnable.
284 Chapitre 17. C News
17.8.2 Les messages newgroup et rmgroup
Ces messages g
erent la cr
eation et la suppression de groupes. Les groupes situ
es en
dessous des hi
erarchies (
( usuelles )
) ne peuvent ^
etre cr
e
es qu'apr
es une discussion et
un vote qui ont lieu au niveau mondial. Tous les utilisateurs de Usenet sont concern
es.
Les r
egles s'appliquant 
a la hi
erarchiealt sont, en revanche, assez proche de l'anarchie.
Pour plus d'informations, vous devez lire les articles d'information post
es r
eguli
ere-
ment dans news.announce.newusers et news.announce.newgroups. N'envoyez
jamais de messages de contr^
ole newgroup ou rmgroup vous-m^
eme, 
a moins que vous
soyez absolument certain d'en avoir obtenu l'autorisation.
17.8.3 Le message checkgroups
Les messages checkgroups sont envoy
es par les administrateurs pour que tous les sites
d'un r
eseau synchronisent leurs chiers active avec la r
ealit
e. Par exemple, certains
fournisseurs de service IP peuvent envoyer de tels messages 
a tous leurs clients uti-
lisant Usenet. Une fois par mois, un checkgroups (
( ociel )
) concernant toutes les
principales hi
erarchies mondiales est post
e dans comp.announce.newgroups par
son mod
erateur. Toutefois, il y est plac
e comme un article ordinaire et non pas sous
la forme d'un message de contr^
ole. Pour que l'op
eration de mise 
a jour ait lieu, sauvez
cet article dans un chier (appelons-le /tmp/maj, par exemple), supprimez tout ce
qui pr
ec
ede le d
ebut du message lui-m^
eme, et envoyez-le au shell-script checkgroups
par la commande suivante:
# su news -c /usr/lib/news/bin/ctl/checkgroups /tmp/maj
Votre chier newsgroups sera mis 
a jour, les groupes indiqu
es dans localgroups seront
pris en compte. L'ancien chier sera sauv
e sous le nom de newsgroups.bac. Notez que
poster un tel message localement fonctionnera rarement, car inews refuse des articles
aussi longs.
Si C News trouve des di 
erences entre la liste contenue dans le message checkgroups et
le chier active, il g
en
erera une s
erie de commandes qui mettront tout votre syst
eme

a jour et enverront un rapport par courrier 
a l'administrateur des News. La sortie
ressemble typiquement 
a ceci:
From news Sun Jan 30 16:18:11 1994
Date: Sun, 30 Jan 94 16:18 MET
From: news (News Subsystem)
To: usenet
Subject: Problems with your active file
The following newsgroups are not valid and should be removed.
alt.ascii-art
bionet.molbio.gene-org
comp.windows.x.intrisics
17.8. Les messages de contr^
ole 285
de.answers
You can do this by executing the commands:
/usr/lib/news/bin/maint/delgroup alt.ascii-art
/usr/lib/news/bin/maint/delgroup bionet.molbio.gene-org
/usr/lib/news/bin/maint/delgroup comp.windows.x.intrisics
/usr/lib/news/bin/maint/delgroup de.answers
The following newsgroups were missing.
comp.binaries.cbm
comp.databases.rdb
comp.os.geos
comp.os.qnx
comp.unix.user-friendly
misc.legal.moderated
news.newsites
soc.culture.scientists
talk.politics.crypto
talk.politics.tibet
Le premier paragraphe indique les groupes non valides que vous devez supprimer; le
deuxi
eme vous donne les commandes n
ecessaires pour le faire; et le troisi
eme est une
liste des groupes qui n'ont pas 
et
e trouv
es sur votre site.
Lorsque vous recevez un courrier comme celui-ci de la part de votre syst
eme de News,
ne le croyez pas aveugl
ement. En fonction de qui a envoy
e le message checkgroups, il
peut manquer quelques groupes voire des hi
erarchies enti
eres; aussi vous devez faire
attention 
a ne pas supprimer des choses qu'il aurait fallu conserver. Si vous notez
dans les groupes manquants, certains que vous aimeriez supporter sur votre site, vous
devrez les rajouter en utilisant le script addgroup. Sauvez la liste de ces groupes
manquants dans un chier, et envoyez-le dans le petit shell-script suivant:
#!/bin/sh
cd /usr/lib/news
while read group; do
if grep -si ^$group[[:space:]].*moderated newsgroup; then
mod=m
else
mod=y
fi
/usr/lib/news/bin/maint/addgroup $group $mod
done
17.8.4 Les messages sendsys, version et senduuname
Ces trois messages peuvent ^
etre utilis
es pour obtenir la topologie du r
eseau. Lorsqu'il
les re
coit, C News retourne 
a l'exp
editeur les informations demand
ees, par courrier

electronique. Le message sendsys renvoie le chier sys dans son int
egralit
e, version une
cha^
ne de caract
eres indiquant la version du syst
eme de News utilis
e, et senduuname
286 Chapitre 17. C News
renvoie la sortie de la commande uuname(1). C News est tr
es laconique lorsqu'on lui
demande son num
ero de version; il se contente de renvoyer un simple (
( C )
), sans
oritures.
L
a encore, vous ne devez jamais poster un tel message, sauf si vous ^
etes parfaitement
certain qu'il ne sortira pas de votre r
eseau r
egional.Les r
eponses aux messages sendsys
peuvent g
en
erer un tra c proprement gigantesque, et mettre beaucoup de sites UUCP
en dicult
e. N'essayez jamais sur l'Internet.
17.9 C News dans un environnement NFS
Une fa
con simple de distribuer les News sur un r
eseau local est de conserver les articles
sur un h^
ote central et d'exporter les r
epertoires concern
es par NFS, de sorte que les
programmes lecteurs puissent acc
eder directement aux messages. L'avantage de cette
m
ethode sur NNTP, c'est que les ressources n
ecessaires pour r
ecup
erer et lire les
articles sont tr
es inf
erieures. Par contre, NNTP gagne sur tous les tableaux dans un
r
eseau h
et
erog
ene o
u l'
equipement est tr
es vari
e, ou si les utilisateurs n'ont pas de
comptes 
equivalents sur la machine serveur.
Avec un montage NFS, les articles post
es sur un h^
ote local doivent ^
etre envoy
es sur
la machine centrale, car l'acc
es aux chiers administratifs peut donner lieu 
a des
con its entre syst
emes, et provoquer des inconsistances dans les donn
ees. De plus,
vous pr
ef
ererez sans doute exporter votre r
epertoire de spoule en lecture seule, ce qui
n
ecessitera obligatoirement un envoi des articles 
a poster sur le serveur qui aura les
droits d'
ecriture.
C News g
ere cette situation de mani
ere transparente. Lorsque vous postez un ar-
ticle, votre programme lecteur appelle en principe inews pour injecter le message
dans le syst
eme de News. Cette commande e ectue un certain nombre de tests sur
l'article, compl
ete l'en-t^
ete, et recherche un chier nomm
e server dans le r
epertoire
/usr/lib/news. Si ce chier existe et contient le nom d'un h^
ote di 
erent de la machine
locale, inews est invoqu
e sur ce syst
eme par la commande rsh. Puisque le script inews
utilise certaines commandes et chiers de con guration de C News, il faudra avoir
install
e C News sur la machine locale, ou l'avoir mont
e par NFS depuis le serveur.
Pour que l'appel 
a rsh fonctionne correctement, chaque utilisateur doit poss
eder un
compte 
equivalent sur le syst
eme serveur, c'est-
a-dire un compte o
u il peut acc
eder
par le r
eseau sans avoir besoin de donner son mot de passe.
V
eri ez bien que le nom d'h^
ote donn
e dans le chier server correspond lettre pour
lettre 
a la sortie de la commande hostname(1) sur la machine serveur, sinon C News
bouclera 
a l'in ni en essayant de d
elivrer l'article.
17.10. Outils et travaux de maintenance 287
17.10 Outils et travaux de maintenance
Malgr
e la complexit
e de C News, la vie d'un administrateur de News n'est pas si
dicile qu'on pourrait le penser car ce syst
eme o re une grande vari
et
e d'utilitaires
de maintenance. Certains sont destin
es 
a ^
etre appel
es 
a intervalles r
eguliers par cron,
comme par exemple newsdaily. L'emploi de ces scripts r
eduit consid
erablement le
temps n
ecessaire 
a l'administration de votre syst
eme C News.
Sauf exception, toutes ces commandes se trouvent dans /usr/lib/news/bin/maint.
Vous devez absolument passer utilisateur news avant de les utiliser. Les employer
depuis tout autre compte peut rendre certains chiers inaccessibles 
a C News.
newsdaily Comme son nom l'indique12, vous devez lancer cette commande une
fois par jour. C'est un script tr
es important qui permet de conser-
ver des chiers de trace susamment courts, v
eri er toute anomalie
comme de mauvais lots dans les r
epertoires de d
epart et d'arriv
ee,
les tentatives d'envoi vers des groupes inconnus ou mod
er
es, etc. Les
messages d'erreur sont envoy
es dans la bo^
te aux lettres de l'admi-
nistrateur newsmaster.
newswatch Vous devrez lancer ce script r
eguli
erement pour v
eri er l'
etat du sys-
t
eme de News, toutes les heures par exemple. Il d
etecte les probl
emes
qui peuvent avoir un e et imm
ediat sur le fonctionnement du sys-
t
eme, et envoie un rapport 
a newsmaster. Parmi les choses test
ees,
citons les chiers de verrouillage oubli
es, l'arriv
ee de lots inattendus,
et l'espace disque disponible.
addgroup Rajoute un groupe 
a votre syst
eme, localement. La commande s'uti-
lise ainsi:
addgroup groupe y|n|m|=vrai-groupe
Le second argument a la m^
eme signi cation que le drapeau corres-
pondant dans le chier active, c'est-
a-dire que tout le monde peut
poster (y), personne ne peut poster (n), que c'est un groupe mod
er
e
(m), ou qu'il s'agit d'un alias pour un autre groupe (=vrai-groupe).
Vous utiliserez aussi cette commande lorsque le premier article d'un
tout nouveau groupe arrive avant le message de contr^
ole destin
e 
a
cr
eer le groupe en question.
delgroup Permet de supprimer un groupe, localement. Sa syntaxe est simple:
delgroup groupe
12: Dans une autre langue...
288 Chapitre 17. C News
Vous devrez supprimer ensuite tous les articles qui resteront dans le
r
epertoire concern
e, soit manuellement, soit en attendant tranquille-
ment que la proc
edure d'expiration le fasse toute seule.
addmissing Rajoute les articles absents dans le chier history. Lancez ce script
lorsque vous constatez que certains messages semblent rester ind
e -
niment, sans jamais expirer.
newsboot Ce script doit ^
etre ex
ecut
e 
a chaque d
emarrage de la machine. Il net-
toie tout chier de verrouillage pouvant provenir de processus tu
es
lors de l'arr^
et du syst
eme, et referme puis extrait tout lot d'articles
laiss
e par les connexions NNTP qui se sont termin
ees au m^
eme mo-
ment.
newsrunning Celui-l
a se trouve dans le r
epertoire /usr/lib/news/bin/input et peut
^
etre utilis
e pour invalider l'extraction des lots de News qui arrivent,
par exemple pendant les heures de travail. Vous pouvez arr^
eter ce
traitement par:
/usr/lib/news/bin/input/newsrunning off
Il sera remis en service en mettant on au lieu de o .
289
Chapitre 18
Description du protocole
NNTP
Pour l'
echange de News Usenet, le protocole NNTP constitue une approche radicale-
ment di 
erente de C News. NNTP signi e Network News Transfer Protocol, protocole
de transfert de News par r
eseau. Il ne s'agit pas d'un programme particulier, mais
d'un standard Internet1. Il est bas
e sur une connexion (g
en
eralement TCP) entre un
client situ
e 
a n'importe quel endroit du r
eseau et un serveur fonctionnant sur un h^
ote
qui centralise le stockage des articles. La connexion permet au client et au serveur
de n
egocier le transfert des articles de mani
ere interactive, sans pratiquement aucun
d
elai, ce qui contribue 
a limiter le nombre de messages dupliqu
es. Alli
e 
a la grande
vitesse obtenue sur l'Internet, NNTP surpasse largement tout ce que l'on pouvait
obtenir auparavant par des r
eseaux UUCP. Alors qu'il y a encore quelques ann
ees,
il n'
etait pas rare qu'un article mette une quinzaine de jours pour arriver 
a l'autre
(
( bout )
) de Usenet, actuellement il ne faut plus, dans le pire des cas, qu'un jour ou
deux; et 
a peine quelques minutes si l'on ne sort pas d'Internet.
Di 
erentes commandes permettent aux clients de r
ecup
erer, envoyer et poster des
articles. La di 
erence entre envoyer et poster est simple: un article post
e peut avoir
un en-t^
ete incomplet que le serveur ach
evera de remplir, alors qu'un article envoy
e est
un (
( produit ni )
)
2. La r
ecup
eration des articles peut ^
etre employ
ee pour transf
erer
des News aussi bien que pour la lecture par des interfaces conviviales, les Lecteurs
de News. NNTP est le protocole id
eal pour o rir un acc
es Usenet 
a de nombreuses
machines sur un r
eseau local, sans passer par toutes les complications induites par un
montage NFS.
Il permet aussi des m
ethodes actives ou passives pour le transfert des articles, appel
ees
1: D
e ni dans le document RFC 977.
2: Lorsque l'on poste un article par NNTP, le serveur rajoute toujours au moins un champ dans
l'en-t^
ete: Nntp-Posting-Host, qui contient le nom de la machine sur laquelle se trouve ce client.
290 Chapitre 18. Description du protocole NNTP
le (
( pushing )
) et le (
( pulling )
). Le pushing est pratiquement le m^
eme que le proto-
cole ihave/sendme de C News: le client o re un article au serveur par la commande
(
( IHAVE Message-ID )
), et ce dernier retourne un code de r
eponse indiquant s'il
poss
ede d
ej
a cet article ou s'il d
esire qu'il lui soit envoy
e. Dans ce dernier cas, le client
envoie l'article, termin
e par un point sur une ligne s
epar
ee.
L'inconv
enient de cette m
ethode est la charge qu'elle induit sur le syst
eme serveur,
car il doit rechercher chaque article dans sa base de donn
ees d'historique.
Dans la technique oppos
ee, le pulling, le client demande une liste de tous les articles
(disponibles) dans un groupe donn
e, arriv
es sur le serveur apr
es une certaine date.
Cette requ^
ete se fait par la commande NEWNEWS. 
A partir de la liste de Message-ID
re
cus, le client s
electionne ceux qu'il ne poss
ede pas encore, en les r
eclamant par la
commande ARTICLE, un par un.
Cette m
ethode pr
esente l'inconv
enient de demander au serveur un contr^
ole tr
es serr
e
des groupeset distributions qu'il permet de transf
erer,pour chaque client. Parexemple,
il doit s'assurer qu'aucune information con dentielle en provenance de groupes locaux
ne peut ^
etre envoy
ee 
a des machines non autoris
ees.
NNTP propose 
egalement un certain nombre de commandes utilitaires destin
ees aux
programmes lecteurs, leur permettant de r
ecup
erers
epar
ementl'en-t^
ete et le corps des
articles, ou m^
eme uniquement certaines lignes de ces en-t^
etes. Ainsi, ces programmes
peuvent se trouver sur n'importe quelle machine du r
eseau (de pr
ef
erence local), et
acc
eder facilement 
a tous les articles qui restent centralis
es sur un seul h^
ote, ce qui
est une excellente alternative au montage des r
epertoires de News par NFS, comme
il est d
ecrit dans le chapitre 17.
NNTP sou re d'un petit d
efaut: quelqu'un d'exp
eriment
e, connaissant bien le proto-
cole, peut ins
erer des articles portant de fausses informations (au nom de quelqu'un
d'autre, par exemple)3. Il existe une extension de NNTP permettant au serveur de
demander une authenti cation de l'utilisateur avant d'ex
ecuter certaines commandes.
Il circule un certain nombre d'impl
ementations de NNTP. Le d
emon NNTP, plus
connu sous l'appellation impl
ementation de r
ef
erence, est la plus c
el
ebre. 
A l'origine,
elle fut r
ealis
ee par Stan Barber et Phil Lapsley pour illustrer les d
etails des sp
eci -
cations RFC 977. Nous allons d
ecrire sa version la plus r
ecente, nntpd-1.5.11. Vous
pouvez soit vous procurer le code source original et la compiler vous-m^
eme, soit utili-
ser le nntpd contenu dans le paquetage net-std pr
epar
e par Fred van Kempen. Aucune
version binaire pr
e-compil
ee n'est fournie en raison des diverses con gurations sp
eci-
ques au site qui doivent ^
etre int
egr
ees au programme.
L'ensemble nntpd consiste en un serveur et deux clients r
ealisant du pulling et du
pushing, ainsi qu'un remplacement de la commande inews. Ils sont pr
evus pour un
environnement Bnews, mais avec quelques petites modi cations, fonctionneront par-
faitement avec C News. Toutefois, si vous comptez utiliser NNTP pour faire plus
qu'o rir un acc
es aux lecteurs de News sur votre serveur, l'impl
ementation de r
ef
e-
3: Le m^
eme probl
eme se pose avec SMTP, le protocole de transfert du courrier 
electronique.
18.1. Installation du serveur NNTP 291
rence n'est plus vraiment une option. Par cons
equent, nous ne parlerons que du d
emon
NNTP contenu dans le paquetage nntpd et nous laisserons les programmes clients de
c^
ot
e.
Il existe 
egalement un ensemble appel
e (
( InterNet News )
), ou INN, r
ealis
e par Rich
Salz. Il o re 
a la fois un transport NNTP et UUCP, et est pr
ef
erable pour les sites
importants. En mati
ere de News par NNTP, il est sans comparaison avec nntpd, c'est
vraiment lui qu'il faut choisir. Si vous voulez installer INN, consultez la documentation
fournie avec son code source, ainsi que le document (
( INN FAQ )
) post
e r
eguli
erement
dans le groupe news.software.b.
18.1 Installation du serveur NNTP
Le serveur NNTP s'appelle nntpd, et peut ^
etre compil
e de deux fa
cons, en fonction
de la charge de la machine supportant les News. Il n'y a aucune version binaire
disponible, car la con guration sp
eci que au site doit ^
etre incluse dans l'ex
ecutable.
Tout se con gure par des macros d
e nies dans le chier common/conf.h.
Soit vous con gurez nntpd en tant que serveur autonome qui sera lanc
e au d
emarrage
du syst
eme depuis le script rc.inet2, soit vous le con gurez comme d
emon qui sera
appel
e par inetd. Dans ce dernier cas, vous devrez, bien entendu, avoir une entr
ee
comme celle-ci dans /etc/inetd.conf:
nntp stream tcp nowait news /usr/etc/in.nntpd nntpd
Si vous d
ecidez de l'employer en serveur autonome, v
eri ez que toute ligne comme
celle-ci dessus soit absente ou comment
ee dans inetd.conf. Dans un cas comme dans
l'autre, le chier /etc/services doit contenir la ligne:
nntp 119/tcp readnews untp # Network News Transfer Protocol
A n de g
erer les articles qui arrivent, nntpd a besoin d'un r
epertoire temporaire .tmp
dans votre spoule de News. Vous devrez le cr
eer 
a l'aide des commandes suivantes:
# mkdir /var/spool/news/.tmp
# chown news.news /var/spool/news/.tmp
18.2 Restreindre les acc
es NNTP
L'acc
es aux ressources NNTP est gouvern
e par le chier nntp access situ
e dans le r
e-
pertoire /usr/lib/news. Les lignes d
ecrivent les droits accord
esaux machines distantes,
avec le format suivant:
site read|xfer|both|no post|no [!groupes interdits]
292 Chapitre 18. Description du protocole NNTP
Si un client se connecte au port NNTP, nntpd va tenter d'obtenir son nom pleinement
quali 
e 
a partir de son adresse IP par une recherche inverse. Le nom et l'adresse de
ce client sont compar
es avec les champs site de chaque entr
ee, dans l'ordre o
u elles
appara^
ssent dans le chier. Si une entr
ee correspond exactement, elle s'applique; si
elle ne correspond que partiellement, elle s'appliquera s'il n'y a pas, plus loin, une
autre entr
ee correspondant mieux. Le champ site peut ^
etre sp
eci 
e sous l'une des
formes suivantes:
nom de machine
C'est le nom pleinement quali 
e d'un h^
ote. S'il est identique au nom
canonique de la machine connect
ee, l'entr
ee s'applique, et toutes les
suivantes sont ignor
ees.
adresse IP Il s'agit d'une adresse IP en notation sur 4 octets. Si l'adresse du
client correspond, l'entr
ee s'applique et les suivantes sont ignor
ees.
nom de domaine
C'est un nom de domaine, indiqu
e sous la forme *.domaine. Si le
domaine auquel appartient l'h^
ote connect
e correspond, l'entr
ee s'ap-
plique.
nom de r
eseau
Il s'agit du nom d'un r
eseau tel que sp
eci 
e dans /etc/networks. Si
la partie r
eseau de l'adresse IP de la machine connect
ee correspond

a l'adresse r
eseau associ
ee 
a ce nom, l'entr
ee s'applique.
Default La cha^
ne default correspond 
a tout client.
Les entr
ees comportant une sp
eci cation de site plus g
en
erale doivent appara^
tre en
premier, car toute correspondance 
eventuelle pourra ainsi ^
etre remplac
ee par une
suivante, plus exacte.
Le deuxi
eme et le troisi
eme champ d
ecrivent les droits d'acc
es autoris
es au client.
Le deuxi
eme d
e nit les permissions de lecture (read), et de transfert par pushing
(xfer). La valeur both valide les deux 
a la fois; alors que no interdit tout acc
es. Le
troisi
eme champ autorise le client 
a poster des articles, c'est-
a-dire 
a d
elivrer des
messages comportant des en-t^
etes incomplets qui seront compl
et
es par le serveur. Si
le deuxi
eme champ contient le mot cl
e no, le troisi
eme sera ignor
e.
Le quatri
eme champ est facultatif et contient une liste de groupes, s
epar
es par des
virgules, auxquels le client n'aura pas le droit d'acc
eder.
Voici ci-dessous un exemple de chier nntp access:
#
# par d
efaut, tout le monde peut transf
erer des News, mais
# ni lire ni poster:
default xfer no
18.3. Authenti cation NNTP 293
#
# la machine public.bibine.com offre un acc
es public par modem,
# nous leur autorisons de lire et de poster dans tous les groupes
# except
e les groupes local.*
public.bibine.com read post !local
#
# tous les autres h^
otes chez les brasseurs peuvent lire et poster
*.bibine.com read post
18.3 Authenti cation NNTP
Lorsqu'il totalise les droits d'acc
es d
e nis par xfer ou read dans le chier nntp acces,
le programme nntpd requiert une authenti cation de la part du client. Par exemple,
lorsqu'il est sp
eci 
e Xfer ou XFER, il ne laissera pas le client transf
erer d'articles tant
qu'il n'aura pas pass
e la proc
edure d'authenti cation avec succ
es.
Cette proc
edure est impl
ement
ee par l'interm
ediaire d'une nouvelle commande NNTP
appel
ee AUTHINFO. Par cette commande, le client transmet un nom d'utilisateur
et un mot de passe au serveur NNTP. Le d
emon nntpd les validera en les comparant
avec les donn
ees du chier /etc/passwd, et en v
eri ant que cet utilisateur appartient
bien au groupe nntp.
L'impl
ementation courante de l'authenti cation NNTP n'est qu'exp
erimentale est n'a
par cons
equent pas
et
e faite de mani
ere tr
es portable. En particulier, elle ne fonctionne
qu'avec des chiers /etc/passwd traditionnels; les mots de passe shadow ne sont pas
reconnus.
18.4 Int
egration de nntpd dans C News
Lorsqu'il re
coit un article, nntpd doit le d
elivrer au syst
eme de News. S'il est arriv
e par
une commande IHAVE, l'article sera pass
e 
a rnews; s'il s'agit de la commande POST,
il sera transmis 
a inews. Au lieu d'invoquer rnews, vous pouvez aussi con gurer le
programme (
a la compilation) pour qu'il cr
ee des lots avec les articles entrants dans
/var/spool/news/in.coming, qui seront trait
es ensuite par relaynews.
Pour que le protocole ihave/sendme fonctionne correctement, nntpd doit avoir acc
es
au chier history. Vous devez donc vous assurer lors de la compilation que le chemin
d'acc
es correct est bien indiqu
e, et que C News et nntpd l'attendent sous le m^
eme
format. C News utilise les fonctions de hachage de dbm pour y acc
eder; mais il existe
plusieurs impl
ementations incompatibles entre elles de cette biblioth
eque. Si C News
a 
et
e compil
e avec une version di 
erente de celle se trouvant dans votre biblioth
eque
C standard, il vous faudra recompiler nntpd dans le m^
eme environnement.
Le sympt^
ome typique lorsque nntpd et C News ne sont pas d'accord sur le format de
la base de donn
ees se pr
esente sous forme de messages d'erreurs dans les traces du
syst
eme, indiquant que nntpd n'a pas pu l'ouvrir correctement, ou que des messages
294 Chapitre 18. Description du protocole NNTP
dupliqu
es arrivent par NNTP. Un bon test consiste 
a prendre un message de votre
spoule, vous connecter par telnet sur le port nntp, et le proposer comme nous le
montrons dans l'exemple ci-dessous. Bien s^
ur, vous devrez remplacer msg@id par
le Message-ID de l'article que vous voulez renvoyer 
a nntpd.
$ telnet localhost nntp
Trying 127.0.0.1...
Connected to localhost
Escape character is '^]'.
201 gueuze NNTP[auth] server version 1.5.11t (16 November 1991) ready at Sun
Feb 6 16:02:32 1194 (no posting)
IHAVE msg@id
435 Got it.
QUIT
Cette transaction montre une r
eaction correcte de nntpd; le message (
( Got it )
) vous
indique qu'il poss
ede d
ej
a l'article en question. Si 
a la place vous obtenez le message
(
( 335 Ok )
), c'est que la recherche dans la base de donn
ees a 
echou
e pour une raison
quelconque. Terminez la conversation en tapant Ctrl-D. Vous pourrez rechercher ce
qui ne va pas en inspectant les chiers de trace; nntpd enregistre ces messages sous
la (
( facilit
e )
) daemon de syslog. Une biblioth
eque dbm incompatible se manifeste
elle-m^
eme en indiquant que la fonction dbminit a 
echou
e.
295
Chapitre 19
Les lecteurs de News
Un (
( lecteur de News )
) est un programme que les utilisateurs appellent a n de lire,
sauvegarder, et cr
eer des articles de News Usenet. Il en existe beaucoup, la plupart se
compilent parfaitement sous Linux ou ont fait l'objet d'un portage. Ici, nous d
ecrirons
la con guration de base de trois d'entre eux qui comptent parmi les plus populaires:
tin, trn et nn.
Le lecteur le plus ecace est celui-ci:
$ find /var/spool/news -name '[0-9]*' -exec cat {} ; | more
C'est ainsi que les vrais mordus d'UNIX lisent leurs News.
Cela dit, la plupart des autres lecteurs sont bien plus sophistiqu
es. Ils o rent g
en
erale-
ment une interface plein 
ecran comportant plusieurs niveaux d'achage pour scruter
les groupes que l'utilisateur fr
equente, un plan d'ensemble de tous les articles dans
chaque groupe, etc.
Au niveau groupe, pratiquement tous achent une liste d'articles, montrant leurs
sujets et leurs auteurs. Dans les forums les plus importants, il est souvent dicile de
suivre la trace des articles relatifs les uns aux autres, bien qu'il soit possible d'identi er
des r
eponses 
a de pr
ec
edents messages.
Une r
eponse reprend en g
en
eral le sujet original, en y rajoutant (
( Re: )
) au d
ebut. De
plus, le Message-ID de l'article original appara^
t dans la ligne References de l'en-
t^
ete. Si l'on trie les messages selon ces deux crit
eres, on aboutit 
a de petits ensembles
(en fait, arborescences) d'articles, que l'on appelle alors ls de discussions1. L'une des
t^
aches les plus diciles lors de l'
elaboration d'un lecteur de News consiste 
a trouver
une m
ethode ecace pour ce classement, car le temps requis est proportionnel au
carr
e du nombre d'articles 
a trier.
1: Dans les pays francophones, on utilise indi 
eremment les expressions (
( l de discussion )
), (
( l )
)
et (
( discussion )
) pour ce que les anglophones appellent un thread.
296 Chapitre 19. Les lecteurs de News
Nous n'entrerons pas plus dans le d
etail des interfaces utilisateur. Tous les lecteurs
disponibles sous Linux sont munis d'excellents manuels et de bonnes fonctions d'aide,
vous devriez pouvoir apprendre rapidement 
a les utiliser.
Nous allons nous concentrer sur les t^
aches administratives permettant de faire fonc-
tionner ces programmes correctement; ce ne sera bien s^
ur qu'un tr
es bref aper
cu, vous
devrez ensuite vous r
ef
erer 
a la documentation fournie avec le lecteur que vous aurez
choisi.
19.1 Con guration de tin
Tin est le lecteur le plus simple et universel concernant les ls de discussion. Il est
l'uvre de Iain Lea et est tr
es proche d'un ancien programme nomm
e tass (
ecrit par
Rich Skrenta). Il commence le classement des articles lorsque l'utilisateur s
electionne
un groupe, et il est tr
es rapide (sauf si cette op
eration a lieu dans certaines conditions
sous NNTP).
Sur une machine 486DX50, il lui faut environ 30 secondes pour trier 1000 articles, s'il
les lit depuis le disque. Par NNTP sur un serveur charg
e, ce temps peut aller jusqu'
a
plus de 5 minutes2. Vous pouvez aller encore plus vite en mettant r
eguli
erement 
a
jour vos chiers d'index par l'option -u, ou en appelant le programme avec l'option
-U.
En principe, tin 
ecrit ses bases de donn
ees de discussions dans le r
epertoire utilisateur,
dans .tin/index. Cela peut prendre trop de ressources pour votre con guration, aussi
vous devrez en conserver une seule copie dans un endroit central. Il vous faudra alors
passer tin setuid news, ou quelque autre compte non privil
egi
e3. Dans ce cas, le
programme 
ecrira toutes ses donn
ees dans le chier /var/spool/news/.index. Pour
tout acc
es chier ou appel au shell, il remettra son num
ero d'identi cation utilisateur
e ectif 
a celui du compte depuis lequel il a 
et
e appel
e4.
Une meilleure solution consiste 
a installer le d
emon d'indexation tind qui met 
a jour
r
eguli
erement les chiers d'index. Il n'est pas fourni dans les distributions de Linux,
vous devrez donc le compiler vous-m^
eme. Si vous ^
etes sur un r
eseau comportant un
serveur de News central, vous pouvez aussi installer tind sur le serveur, et tous les
clients r
ecup
ereront leurs chiers d'index par NNTP. Cela n
ecessite une extension 
a ce
protocole; les patches impl
ementant cette modi cation dans nntpd sont fournis dans
les sources de tin5.
2: Mais ce cas n'arrive jamais, car les serveurs de News modernes comme INN sont pr
evus pour
ce type d'application, et si tout est proprement con gur
e, il n'y a pas de di 
erence notable entre une
lecture directe sur disque et par NNTP.
3: N'utilisez pas le compte nobody pour 
ca. Par principe, aucun chier, commande, ou autres ne
doit ^
etre associ
e 
a cet utilisateur.
4: C'est la raison pour laquelle vous obtenez des messages d'erreurs lorsque vous l'appelez en tant
que root. Mais quoi qu'il en soit, vous ne devez jamais prendre la mauvaise habitude de travailler
sous le compte root, et en aucun cas l'utiliser pour poster sur Usenet.
5: Mais la meilleure solution dans ce cas est de ne pas employer C News mais INN, et d'oublier
19.2. Con guration de trn 297
La version de tin incluse dans certaines distributions de Linux est compil
ee sans aucun
support NNTP, mais cette erreur est maintenant corrig
ee dans la plupart d'entre elles.
Lorsqu'on l'appelle avec l'option -r, ou encore sous le nom de rtin, le programme tente
de se connecter au serveur NNTP sp
eci 
e dans le chier /etc/nntpserver ou dans la
variable d'environnement NNTPSERVER. Le chier contient simplement une seule ligne,
indiquant le nom de la machine 
a contacter.
19.2 Con guration de trn
C'est aussi le successeur d'un ancien lecteur, qui s'appelait rn (ce qui signi e read
news, (
( lecture de news)
)). La lettre (
( t)
) au d
ebut de son nom, est l
a pour (
( threaded)
),
petit terme qui se traduit chez nous par (
( g
erant les ls de discussions )
). L'auteur de
trn s'appelle Wayne Davidson.
Contrairement 
a tin, trn ne comporte aucune routine pour g
en
erer ses bases de don-
n
ees. Il utilise des bases pr
epar
ees 
a l'avance par un programme appel
e mthreads qui
doit ^
etre ex
ecut
e 
a intervalles r
eguliers par cron.
Si ce programme ne tourne pas, vous pourrez bien s^
ur acc
eder quand m^
eme aux
articles, mais comme ils ne seront pas tri
es par discussions, vous aurez dans le menu
de s
election des listes 
enormes de sujets tous semblables comme (
( O
u se trouve la
documentation sur Linux? )
) au lieu de ne voir appara^
tre qu'un seul l que vous
pourriez sauter en une fraction de seconde.
Pour g
en
erer les index, mthreads est appel
e en indiquant sur sa ligne de commandes,
la liste des groupes que vous voulez voir index
es. Cette liste doit ^
etre sp
eci 
ee selon
le m^
eme format que le chier sys:
$ mthreads comp,rec,!rec.games.go
La commande ci-dessus validera les ls de discussion pour tous les groupes comp et
rec, sauf rec.games.go (les gens jouant 
a ce jeu n'ont pas grand-chose 
a dire). Apr
es
cela, il sura de l'appeler sans aucune option pour qu'il traite tous les nouveaux
articles arriv
es. Vous pouvez choisir d'indexer tous les groupes connus dans votre
chier active en appelant mthreads avec une liste contenant simplement le mot all.
Si vous recevez les News pendant la nuit, vous pourrez ex
ecuter mthreads tous les
matins, ou plus souvent si vous en avez besoin. Les sites qui ont un tra c important
peuvent utiliser ce programme en mode d
emon. Lorsqu'il est lanc
e au d
emarrage du
syst
eme avec l'option -d, il s'installe en arri
ere-plan, et teste toutes les 10 minutes si
de nouveaux articles sont arriv
es, et les traitera le cas 
ech
eant. Pour l'utiliser dans ce
mode, mettez cette ligne dans votre script rc.news:
ces chiers d'index au pro t de la m
ethode des .overview, beaucoup plus 
el
egante et ecace. Vous
en trouverez une description dans les sources du serveur INN (entre autres), et sans doute dans une
prochaine 
edition de ce livre...
298 Chapitre 19. Les lecteurs de News
/usr/local/bin/rn/mthreads -deav
L'option -a valide l'indexation automatique de tous les nouveaux groupes lorsqu'ils
sont cr
e
es; -v met en service les messages de trace, qui s'enregistreront dans le chier
mt.log, situ
e dans le r
epertoire o
u vous avez install
e trn.
Les vieux articles qui ne sont plus disponibles doivent ^
etre r
eguli
erement supprim
es
des chiers d'index. Par d
efaut, seuls les articles dont le num
ero est inf
erieur 
a celui du
premier qui est accessible sera supprim
e6. Les articles dont le num
ero est sup
erieur 
a
ce nombre mais qui ont malgr
e tout expir
e (car le plus ancien s'
etait sans doute vu at-
tribuer une tr
es longue vie par le champ Expires de l'en-t^
ete), peuvent ^
etre supprim
es
en passant l'option -e 
a mthreads; elle valide un mode d'expiration plus (
( intelligent)
).
Lorsqu'il fonctionne en d
emon, cette option le fera passer automatiquement dans ce
mode une fois par jour, peu apr
es minuit.
19.3 Con guration de nn
Le programme nn, 
ecrit par Kim F. Storm, se targue d'^
etre un lecteur de News dont
le but essentiel est de ne pas lire les News. Son nom signi e (
( No News )
) (pas de
nouvelles), et sa devise est: (
( Pas de nouvelles, bonnes nouvelles. )
)
Pour arriver 
a ce but si ambitieux, nn est fourni avec tout un assortiment d'outils
de maintenance qui permettent non seulement la g
en
eration des ls de discussions,
mais 
egalement de r
ealiser des tests de coh
erence de ces bases de donn
ees, des sta-
tistiques, des restrictions d'acc
es, etc. Il y a aussi un programme d'administration
nomm
e nnadmin, qui o re toutes ces op
erations dans un mode interactif. Il est tr
es
simple d'emploi, aussi nous ne nous 
etendrons pas plus sur ces aspects du logiciel et
passerons de suite 
a la g
en
eration des chiers d'index.
Le gestionnaire des bases de donn
ees de discussions de nn s'appelle nnmaster. Il fonc-
tionne normalement en d
emon, lanc
e depuis le script rc.news ou rc.inet2 au d
emarrage
du syst
eme, de cette fa
con:
/usr/local/lib/nn/nnmaster -l -r -C
Cette commande valide les ls de discussions pour tous les groupes pr
esents dans
votre chier active.
Vous pouvez aussi ne pas le faire fonctionner en d
emon, mais l'appeler r
eguli
erement
par cron, en lui passant une liste de groupes 
a traiter. Cette liste ressemble beaucoup

a la liste de souscription du chier sys, mais elle utilise des espaces 
a la place des
virgules. Au lieu du groupe symbolique all, c'est un argument vide comme  qui
doit ^
etre utilis
e pour indiquer tous les groupes. Voici un exemple d'appel:
6: C news ne met pas 
a jour cette valeur; vous devez utiliser la commande updatemin pour le
faire. Consultez dans le chapitre 17, la page 275.
19.3. Con guration de nn 299
# /usr/local/lib/nn/nnmaster !rec.games.go rec comp
Notez que l'ordre est signi catif. La sp
eci cation de groupe la plus 
a gauche qui
correspond, gagnera toujours. Donc, si nous avions mis!rec.games.go apr
es rec, tous
les articles de ce groupe auraient 
et
e quand m^
eme trait
es.
Le lecteur nn propose plusieurs m
ethodes pour supprimer de ses index les articles
expir
es. La premi
ere consiste 
a mettre 
a jour la base en scrutant les r
epertoires conte-
nant les articles, et 
a supprimer les entr
ees correspondant 
a des messages qui ne sont
plus disponibles. C'est le mode op
eratoire par d
efaut, obtenu en appelant nnmaster
avec l'option -E. Elle est assez rapide, sauf par NNTP.
La deuxi
eme m
ethode fonctionne exactement comme l'expiration pard
efaut de mthreads,
en ce sens qu'elle ne supprime que les entr
ees qui se r
ef
erent 
a des articles dont le
num
ero est inf
erieur 
a celui du premier article dans le chier active. On la valide par
l'option -e.
En n, une troisi
eme strat
egie est possible, qui reconstruit enti
erement une nouvelle
base, en scrutant tous les articles. Elle peut ^
etre mise en service par l'option -E3.
La liste des groupes 
a expirer est donn
ee de la m^
eme fa
con par l'option -F. Toutefois,
si nnmaster fonctionne en mode d
emon, vous devez le tuer (par l'option -k) avant
que l'expiration ne se fasse, puis le relancer; par cons
equent, la commande correcte
pour l'expiration de tous les groupes par la premi
ere m
ethode sera:
# nnmaster -kF 
# nnmaster -lrC
Il y a encore beaucoup d'autres options qui permettent d'ajuster pr
ecis
ement le com-
portement de nn. Si vous d
esirez supprimer les articles d
efectueux ou r
ealiser des
compilations, r
esum
es, ou autres, consultez la page de manuel de nnmaster.
Ce programme nnmaster n
ecessite un chier nomm
e GROUPS, situ
e dans le r
epertoire
/usr/local/lib/nn. S'il n'existe pas, il sera automatiquement cr
e
e. Il contient pour
chaque groupe, une ligne commen
cant par le nom de ce forum, suivi 
eventuellement
par une date, et des drapeaux. Vous pouvez 
editer ces drapeaux pour valider un
comportement particulier sur le groupe en question, mais vous ne devez pas changer
l'ordre dans lequel ces groupes apparaissent dans le chier7. La description de ces
drapeaux se trouve dans la page de manuel de nnmaster.
7: Car leur ordre doit correspondre 
a celui des entr
ees du chier binaire MASTER.
300 Chapitre 19. Les lecteurs de News
301
Annexe A
C^
able port parall
ele pour
PLIP
Pour r
ealiser un c^
able reliant les ports imprimante parall
ele de deux PC (c^
able Null-
Printer), vous devez vous procurer deux connecteurs m^
ales 25 broches (appel
es DB-
25) et du c^
able comportant au moins 11 conducteurs. La longueur maximale possible
est d'environ 15 m
etres.
Si vous regardez attentivement un des connecteurs, vous devriez pouvoir lire des
num
eros (prenez une loupe le cas 
ech
eant) 
a la base de chaque broche. Vu du c^
ot
e
soudures, la premi
ere broche en haut 
a droite porte le num
ero 1, et la derni
ere en bas

a gauche le num
ero 25. Les connexions 
a r
ealiser seront les suivantes:
D0 2 () 15 ERREUR
D1 3 () 13 S
ELECTION
D2 4 () 12 PLUS de PAPIER
D3 5 () 10 ACQUITTEMENT
D4 6 () 11 OCCUP
EE
MASSE 25 () 25 MASSE
ERREUR 15 () 2 D0
S
ELECTION 13 () 3 D1
PLUS de PAPIER 12 () 4 D2
ACQUITTEMENT 10 () 5 D3
OCCUP
EE 11 () 6 D4
Toutes les autres broches ne sont pas utilis
ees. S'il s'agit d'un c^
able blind
e, le blindage
doit ^
etre soud
e sur le bo^
tier m
etallique de l'un des connecteurs, et un seul.
302 Annexe A. C^
able port parall
ele pour PLIP
303
Annexe B
Exemples de chiers de
con guration pour smail
Cette section donne des exemples de chiers de con guration adapt
es 
a un site UUCP
isol
e, connect
e
a un r
eseaulocal. Ils sont bas
essur les exemples fournis dans la distribu-
tion source de smail-3.1.28. Bien que nous ayons tent
e d'expliquer tr
es succinctement
comment ces chiers fonctionnent, nous devons vous pr
evenir que la lecture du manuel
de smail(8) est indispensable; vous y trouverez tout le d
etail. Une fois que vous aurez
compris le principe et l'organisation de ces chiers, ce manuel vous para^
tra bien plus
clair.
Le premier chier que nous vous pr
esentons, routers, d
ecrit un ensemble de routeurs
pour smail. Lorsqu'il doit d
elivrer un message 
a une adresse donn
ee, le programme
passe cette adresse successivement 
a tous les routeurs jusqu'
a en trouver un qui cor-
responde. Correspondre signi e dans ce cas que le routeur trouve l'h^
ote de destination
dans sa base de donn
ees, que ce soit le chier paths, /etc/hosts, ou tout autre m
eca-
nisme de r
esolution qu'il sait utiliser.
Les entr
ees des chiers de con guration de smail commencent toujours par un nom
unique identi ant routeur, transport et directeur. Ils sont suivis par une liste d'attri-
buts qui d
e nissent son comportement. Cette liste consiste en un ensemble d'attributs
globaux, comme le pilote utilis
e, et d'attributs priv
es qui ne sont compris que par ce
pilote particulier. Les attributs sont s
epar
es par des virgules, alors que les ensembles
globaux et priv
es sont s
epar
es les uns des autres par le caract
ere (
( : )
).
A n de clari er ces distinctions, consid
erons que vous d
esirez maintenir deux chiers
pathalias s
epar
es: l'un contenant les informations de routage pour votre domaine,
et l'autre des informations de routage g
en
erales, probablement g
en
er
ees 
a partir des
cartes UUCP. Avec smail, vous pouvez alors sp
eci er deux routeurs dans le chier
routers, tous deux utilisant le pilote pathalias qui recherchera les noms dans une base
304 Annexe B. Exemples de chiers de con guration pour smail
de donn
ees pathalias, et on lui donnera le nom du chier dans un attribut priv
e:
#
# base de donn
ees pathalias pour routage dans le domaine
domaine_paths:
driver=pathalias, # cherche l'h^
ote dans un fichier paths
transport=uux; # si trouv
e, d
elivrer par UUCP
file=paths/domaine, # le fichier est /usr/lib/smail/paths/domaine
proto=lsearch, # il n'est pas tri
e (recherche lin
eaire)
optional, # ignorer si le fichier n'existe pas
required=bibine.com, # ne rechercher que les h^
otes de *.bibine.com
#
# base de donn
ees pathalias pour routage hors de notre domaine
monde_paths:
driver=pathalias, # cherche l'h^
ote dans un fichier paths
transport=uux; # si trouv
e, d
elivrer par UUCP
file=paths/monde, # le fichier est /usr/lib/smail/paths/monde
proto=bsearch, # il est tri
e par sort(1)
optional, # ignorer si le fichier n'existe pas
-required, # pas de domaines requis
domain=uucp, # supprime extension .uucp avant recherche
Le second attribut global donn
e dans chacune des deux entr
ees routers ci-dessus d
e-
nissent le transport qu'il faudra utiliser lorsque ce routeur trouvera l'adresse. Dans
notre cas, le message sera d
elivr
e par le transport uux. Ces transports sont d
e nis
dans le chier transports, qui est d
ecrit un peu plus loin.
Vous pouvez ajuster avec pr
ecision par quel transport un message doit ^
etre d
elivr
e si
vous sp
eci ez un chier de m
ethodes 
a la place de l'attribut transports. Les chiers
de m
ethodes o rent une base de correspondance entre des noms de machines et des
transports. Nous ne les traiterons pas dans ce guide.
Le chier routers qui va suivre d
e nit des routeurs pour un r
eseau local qui interroge
la biblioth
eque resolver. Sur un site Internet, il faudra en utiliser un autre, sachant
g
erer les enregistrements MX du DNS. Par cons
equent, vous devrez supprimer les
commentaires devant le routeur inet bind qui utilise le pilote BIND int
egr
e 
a smail.
Dans un environnement mixte UUCP et TCP/IP, vous pouvez rencontrer des pro-
bl
emes avec des machines qui sont d
eclar
ees dans votre chier /etc/hosts, avec les-
quelles vous avez occasionnellement des connexions SLIP ou PPP. Or, vous voudrez
sans doute que le courrier pour ces sites passe quand m^
eme par UUCP. Pour 
eviter
que le pilote inet hosts ne reconnaisse ces h^
otes, vous devrez les d
eclarer dans le chier
paths/force. Il s'agit d'une autre base de donn
ees de type pathalias qui est consult
ee
avant que smail n'interroge le resolver.
# Un exemple de fichier /usr/lib/smail/routers
#
305
# force - force le transport par UUCP pour certaines machines,
# m^
eme si elles figurent dans votre /etc/hosts.
force:
driver=pathalias, # cherche l'h^
ote dans un fichier paths
transport=uux; # si trouv
e, d
elivrer par UUCP
file=paths/force, # le fichier est /usr/lib/smail/paths/force
optional, # ignorer si le fichier n'existe pas
proto=lsearch, # il n'est pas tri
e (recherche lin
eaire)
-required, # pas de domaines requis
domain=uucp, # supprime extension .uucp avant recherche
# inet_addrs - pour les domaines num
eriques, c'est-
a-dire contenant
# des adresses IP, comme dans dugenou@[172.16.2.1]
inet_addrs:
driver=gethostbyaddr, # pilote pour domaines IP num
eriques
transport=smtp; # d
elivrer par SMTP sur TCP/IP
fail_if_error, # 
echoue si adresse mal form
ee
check_for_local, # d
elivrer directement si h^
ote = nous-m^
emes
# inet_hosts - recherche des noms par gethostbyname(3N).
# Commentez cette partie si vous voulez utiliser la version
# BIND 
a la place, pour la gestion des MX du DNS.
inet_hosts:
driver=gethostbyname, # utilise la fonction biblioth
eque
transport=smtp; # d
elivre par d
efaut par SMTP
-required, # pas de domaines requis
-domain, # pas de suffixes de domaines d
efinis
-only_local_domain, # non restreint aux domaines d
efinis
# inet_hosts - alternative utilisant BIND pour acc
eder au DNS
#inet_hosts:
# driver=bind, # utilise le pilote BIND interne
# transport=smtp; # d
elivrer par SMTP sur TCP/IP
#
# defnames, # recherche de domaines standard
# defer_no_connect, # essaie plus tard si serveur de noms en panne
# -local_mx_okay, # 
echoue (ne traverse pas) un MX vers
# # la machine locale
#
# base de donn
ees pathalias pour routage dans le domaine
domaine_paths:
driver=pathalias, # cherche l'h^
ote dans un fichier paths
transport=uux; # si trouv
e, d
elivrer par UUCP
file=paths/domaine, # le fichier est /usr/lib/smail/paths/domaine
proto=lsearch, # il n'est pas tri
e (recherche lin
eaire)
optional, # ignorer si le fichier n'existe pas
required=bibine.com, # ne rechercher que les h^
otes de *.bibine.com
#
# base de donn
ees pathalias pour routage hors de notre domaine
306 Annexe B. Exemples de chiers de con guration pour smail
monde_paths:
driver=pathalias, # cherche l'h^
ote dans un fichier paths
transport=uux; # si trouv
e, d
elivrer par UUCP
file=paths/monde, # le fichier est /usr/lib/smail/paths/monde
proto=bsearch, # il est tri
e par sort(1)
optional, # ignorer si le fichier n'existe pas
-required, # pas de domaines requis
domain=uucp, # supprime extension .uucp avant recherche
# smart_host - sp
ecification d'un directeur particulier vers le smart host
# Si l'attribut smart_path n'est pas d
efini dans
# le fichier /usr/lib/smail/config, ce routeur sera ignor
e.
# L'attribut transport est 
ecras
e par la variable globale
# smart_transport.
smart_host:
driver=smarthost, # pilote sp
ecial
transport=uux; # d
elivre via UUCP par d
efaut
-path, # utilise la variable smart_path du
# fichier config.
Le traitement du courrier pour les adresses locales est con gur
e dans le chier direc-
tors. Il est constitu
e de la m^
eme mani
ere que le chier routers, avec une liste d'entr
ees
qui d
e nissent chaque directeur. Les directeurs ne d
elivrent pas de messages, ils ne
font qu'e ectuer toutes les redirections qui sont possibles, par exemple par les alias,
le renvoi du courrier, etc.
Lorsqu'il d
elivre un message 
a une adresse locale, comme dugenou, smail passe le
nom de l'utilisateur successivement 
a tous les directeurs. Si l'un d'eux correspond,
soit il sp
eci era un transport 
a utiliser pour d
elivrer le courrier (par exemple, vers la
bo^
te aux lettres de l'utilisateur), soit il g
en
erera une nouvelle adresse (par exemple,
en 
evaluant un alias).
Pour des raisons de s
ecurit
e, les directeurs e ectuent g
en
eralement un grand nombre
de tests pour v
eri er que les chiers qu'ils ont 
a utiliser sont ables et int
egres. Les
adresses obtenues d'une mani
ere douteuse (par exemple, depuis un chier aliases qui a
des permissions d'
ecriture pour tout le monde) sont not
ees comme non s^
ures. Certains
pilotes de transport 
elimineront de telles adresses, celui qui d
elivre un message dans
un chier en fait partie.
En dehors de cela, smail associe aussi un utilisateur 
a chaque adresse. Toute op
e-
ration de lecture ou d'
ecriture est e ectu
ee sous ce nom d'utilisateur. Pour d
elivrer
un message dans la bo^
te aux lettres de dugenou, l'adresse sera bien s^
ur associ
ee 
a
l'utilisateur dugenou. D'autres adresses, comme celles obtenues 
a partir du chier
aliases, se voient associer d'autres utilisateurs, comme par exemple nobody.
Pour plus de d
etails sur ce sujet, consultez la page de manuel de smail(8).
# Un exemple de fichier /usr/lib/smail/directors
307
# aliasinclude - expanse les adresses :include:fichier produites
# par les fichiers alias
aliasinclude:
driver=aliasinclude, # utiliser ce pilote sp
ecial
nobody; # acc
eder aux fichiers sous l'utilisateur
# nobody si adresse peu s^
ure
copysecure, # prend permissions dans directeur alias
copyowners, # prend propri
etaires dans directeur alias
# forwardinclude - expanse les adresses :include:fichier produites
# par les fichiers forward
forwardinclude:
driver=forwardinclude, # utiliser ce pilote sp
ecial
nobody; # acc
eder aux fichiers sous l'utilisateur
# nobody si adresse peu s^
ure
checkpath, # test d'accessibilit
e du chemin
copysecure, # prend permissions dans directeur alias
copyowners, # prend propri
etaires dans directeur alias
# aliases - cherche les alias 
a traiter stock
es dans une base de donn
ees
aliases:
driver=aliasfile, # directeur g
en
eral pour les alias
-nobody, # toutes les adresses seront associ
ees par
# d
efaut 
a nobody
sender_okay, # ne supprime pas l'exp
editeur dans l'expension
owner=owner-$user; # probl
emes dirig
es vers l'adresse du propri
etaire
file=/usr/lib/aliases, # compatibilit
e sendmail par d
efaut
modemask=002, # ne doit pas pouvoir ^
etre 
ecrit par tous
optional, # ignorer si le fichier n'existe pas
proto=lsearch, # c'est un fichier ASCII non tri
e
# dotforward - expansion des fichiers .forward des r
epertoires personnels
dotforward:
driver=forwardfile, # directeur g
en
eral pour les forward
owner=real-$user, # probl
emes dirig
es dans la bo^
te aux lettres
# de l'utilisateur
nobody, # utiliser le compte nobody si adresse peu s^
ure
sender_okay; # ne supprime pas l'exp
editeur dans l'expansion
file=~/.forward, # fichiers .forward dans r
epertoires personnels
checkowner, # l'utilisateur doit ^
etre propri
etaire du fichier
owners=root, # ou alors il doit appartenir 
a root
modemask=002, # il ne doit pas pouvoir ^
etre 
ecrit par tous
caution=0-10:uucp:daemon, # ne rien ex
ecuter sous root ou daemon
# faire tr
es attention aux r
epertoires suivants:
unsecure=~ftp:~uucp:~nuucp:/tmp:/usr/tmp,
# forwardto - expanse une ligne Forward to  au tout d
ebut d'une bo^
te aux
# lettres d'utilisateur.
forwardto:
driver=forwardfile,
owner=Postmaster, # erreurs dirig
ees au Postmaster
308 Annexe B. Exemples de chiers de con guration pour smail
nobody, # utiliser le compte nobody si adresse peu s^
ure
sender_okay; # ne supprime pas l'exp
editeur dans l'expansion
file=/var/spool/mail/${lc:user}, # les bo^
tes aux lettres sont par l
a
forwardto, # valide le test de Forward to 
checkowner, # l'utilisateur doit ^
etre propri
etaire du fichier
owners=root, # ou alors il doit appartenir 
a root
modemask=0002, # sous System V, le groupe mail peut 
ecrire
caution=0-10:uucp:daemon, # ne rien ex
ecuter sous root ou daemon
# user - traite les utilisateurs locaux et leur bo^
te aux lettres
user: driver=user; # pilote recherchant les utilisateurs locaux
transport=local, # le transport local aboutit aux bo^
tes aux
# lettres des utilisateurs
# user - traite les noms d'utilisateurs pr
efix
es par la cha^
ne real-
real_user:
driver=user; # pilote recherchant les utilisateurs locaux
transport=local, # le transport local aboutit aux bo^
tes aux
# lettres des utilisateurs
prefix=real-, # correspond par exemple, 
a real-root
# lists - expanse les listes de diffusions de dans /usr/lib/smail/lists
lists: driver=forwardfile,
caution, # teste toutes les adresses avec soin
nobody, # et leur associe l'utilisateur nobody
sender_okay, # ne supprime pas l'exp
editeur
owner=owner-$user; # le propri
etaire de la liste
# passe le nom de la liste de diffusion en lettres minuscules
file=lists/${lc:user},
Apr
es avoir r
eussi 
a router ou rediriger un message, smail le passe au transport sp
eci 
e
par le routeur ou le directeur correspondant. Ces transports sont d
e nis dans le chier
transports. L
a encore, les d
e nitions sont compos
eesd'un ensemble d'attributs globaux
et priv
es.
L'option la plus importante d
e nie par chaque entr
eeest le pilote qui g
erece transport,
par exemple le pilote pipe, qui appelle la commande sp
eci 
ee dans l'attribut cmd.

A c^
ot
e de cela, un transport peut utiliser un certain nombre d'attributs globaux
qui e ectuent diverses transformations sur l'en-t^
ete, et 
eventuellement le corps du
message. L'attribut return path, par exemple, demandera au transport d'ins
erer un
champ return path dans l'en-t^
ete du courrier. L'attribut unix from hack permet de
rajouter le caract
ere  devant chaque ligne du message commen
cant par le mot From.
# Un exemple de fichier /usr/lib/smail/transports.
# local - d
elivre le courrier local aux utilisateurs
local: driver=appendfile, # rajoute le message au bout d'un fichier
return_path, # rajoute un champ Return-Path:
309
from, # met une ligne From_ d'enveloppe
unix_from_hack, # ins
ere  devant toute ligne From dans le corps
local; # utiliser le format local
file=/var/spool/mail/${lc:user}, # les bo^
tes aux lettres sont par l
a
group=mail, # groupe propri
etaire du fichier en System V
mode=0660, # le groupe mail peut lire et 
ecrire
suffix=n, # rajoute un saut de ligne
# pipe - d
elivre le courrier 
a des commandes shell
pipe: driver=pipe, # envoie le message par tube 
a un autre programme
return_path, # rajoute un champ Return-Path:
from, # met une ligne From_ d'enveloppe
unix_from_hack, # ins
ere  devant toute ligne From dans le corps
local; # utiliser le format local
cmd=/bin/sh -c $user, # envoie l'adresse au shell Bourne
parent_env, # environnement de l'adresse parent
pipe_as_user, # utilise l'utilisateur associ
e 
a cette adresse
ignore_status, # ignore une valeur de retour non nulle
ignore_write_errors, # ignore erreurs d'
ecriture (comme broken pipe)
umask=0022, # umask du processus fils
-log_output, # n'envoie aucune trace sur stdout/stderr
# file - d
elivre le courrier dans des fichiers
file: driver=appendfile,
return_path, # rajoute un champ Return-Path:
from, # met une ligne From_ d'enveloppe
unix_from_hack, # ins
ere  devant toute ligne From dans le corps
local; # utiliser le format local
file=$user, # le fichier est pris dans l'adresse
append_as_user, # utilise l'utilisateur associ
e 
a cette adresse
expand_user, # expanse ~ et $ dans l'adresse
suffix=n, # rajoute un saut de ligne
mode=0600, # met les permissions 
a la valeur 600
# uux - d
elivre le message 
a la commande rmail du site UUCP distant.
uux: driver=pipe,
uucp, # utilise le style d'adressage UUCP
from, # met une ligne From_ d'enveloppe
max_addrs=5, # pas plus de 5 adresses par appel
max_chars=200; # pas plus de 200 caract
eres d'adresse
cmd=/usr/bin/uux - -r -a$sender -g$grade $host!rmail $(($user)$),
pipe_as_sender, # les logs UUCP contiendront l'appelant
log_output, # sauve les erreurs pour messages de rejet
# defer_child_errors, # r
eessaie si uux retourne une erreur
# demand - d
elivre le message 
a la commande rmail du site UUCP distant,
# en appelant imm
ediatement.
demand: driver=pipe,
uucp, # utilise le style d'adressage UUCP
from, # met une ligne From_ d'enveloppe
max_addrs=5, # pas plus de 5 adresses par appel
max_chars=200; # pas plus de 200 caract
eres d'adresse
310 Annexe B. Exemples de chiers de con guration pour smail
cmd=/usr/bin/uux - -a$sender -g$grade $host!rmail $(($user)$),
pipe_as_sender, # les logs UUCP contiendront l'appelant
log_output, # sauve les erreurs pour messages de rejet
# defer_child_errors, # r
eessaie si uux retourne une erreur
# hbsmtp - semi SMTP par lots. Les fichiers de sortie devront ^
etre
# trait
es r
eguli
erement, puis exp
edi
es par UUCP.
hbsmtp: driver=appendfile,
inet, # utilise le style d'adressage RFC 822
hbsmtp, # SMTP par lots sans HELO ni QUIT
-max_addrs, -max_chars; # pas de limite sur le nombre des adresses
file=/var/spool/smail/hbsmtp/$host,
user=root, # le fichier appartient 
a root
mode=0600, # lecture et 
ecriture seulement pour root
# smtp - d
elivre le courrier par SMTP sur TCP/IP
smtp: driver=tcpsmtp,
inet, # utilise le style d'adressage RFC 822
-max_addrs, -max_chars; # pas de limite sur le nombre des adresses
short_timeout=5m, # temps maxi pour op
erations courtes
long_timeout=2h, # temps maxi pour op
erations SMTP plus longues
service=smtp, # connexion sur ce port
# Pour utilisation sur l'Internet: supprimez les commentaires sur
# ces 4 derni
eres lignes:
# use_bind, # r
esout les enregistrement MX et multiples A
# defnames, # recherche de domaines standard
# defer_no_connect, # essaie plus tard si serveur de noms en panne
# -local_mx_okay, # 
echoue (ne traverse pas) un MX vers
# # la machine locale
311
Annexe C
Licence Publique G
en
erale
GNU
Vous trouverez ci-dessous la Licence Publique G
en
erale GNU (GPL ou copyleft), qui
prot
ege Linux. Elle est reproduite ici pour pr
eciser le statut des droits d'auteurs de
Linux, qui a parfois donn
e lieu 
a certaines confusions; Linux n'est pas un partagiciel et
n'est pas dans le domaine public. Les droits du noyau appartiennent 
a Linus Torvalds
depuis 1993, et le reste des programmes appartient 
a leurs auteurs respectifs. Ainsi,
Linux est prot
eg
e, mais vous pouvez toutefois le redistribuer sous les termes de la
Licence Publique G
en
erale (GPL) reproduite ici.
LICENCE PUBLIQUE G
EN
ERALE GNU
Version 2, Juin 1991
Copyright c 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave, Cambridge,
MA 02139, USA. La copie et la distribution de copies verbatim de ce document est
autoris
ee, mais aucune modi cation n'est permise.
C.1 Pr
eambule
Les licences d'utilisation de la plupart des programmes sont con
cues pour limiter ou
pour supprimer toute libert
e de l'utilisateur. A l'inverse, la Licence Publique G
en
erale
est destin
ee 
a vous garantir la libert
e de partager et de modi er les logiciels libres,
et de s'assurer que ces logiciels sont e ectivement accessibles 
a tout utilisateur. Cette
Licence Publique G
en
erale s'applique 
a la plupart des programmes de la Free Software
Foundation, ainsi qu'
a tout autre programme dont l'auteur l'aura d
ecid
e (d'autres
logiciels de la Free Software Foundation sont couverts pour leur part par la Licence
Publique G
en
erale pour Biblioth
eques GNU). Vous pouvez aussi utiliser les termes
de cette Licence pour vos propres programmes, si vous le d
esirez.
312 Annexe C. Licence Publique G
en
erale GNU
Libert
e des logiciels ne signi e pas forc
ement gratuit
e;. notre Licence est con
cue pour
vous assurer la libert
e de distribuer des copies des programmes, gratuitement ou non,
de recevoir le code source ou de pouvoir l'obtenir, de modi er les programmes ou d'en
utiliser des 
el
ements dans de nouveaux programmes libres, en sachant que vous y ^
etes
autoris
es.
A n de prot
eger vos droits, nous avons d^
u introduire des restrictions interdisant 
a qui-
conque de vous refuser ces droits ou de vous demander d'y renoncer. Ces restrictions
vous imposenten retour certaines obligations si vous distribuez ou si vous modi ez
des copies de programmes prot
eg
es par la Licence.
Ainsi, si vous distribuez des copies d'un tel programme, gratuitement ou non, vous
devez transmettre aux destinataires tous les droits que vous poss
edez; vous devez vous
assurer que les destinataires re
coivent le code source ou qu'ils peuvent se le procurer.
Vous devez leur remettre cette Licence a n qu'eux aussi connaissent leurs droits.
Nous prot
egeonsvos droits de deux fa
cons: d'abordpar le copyrightdu logiciel, ensuite
par la remise de cette Licence qui vous autorise l
egalement 
a copier, distribuer et/ou
modi er le logiciel.
En outre, pour la protection de chaque auteur et pour la n^
otre, nous voulons nous
assurer que chacun comprenne bien qu'il n'existe aucune garantie pour ce programme
libre. Si le logiciel est modi 
e par quelqu'un d'autre et redistribu
e ensuite, nous vou-
lons que tous ceux qui recevront ce logiciel sachent qu'ils ne sont pas en pr
esence de
l'original, a n que les probl
emes introduits par d'autres personnes n'entachent pas la
r
eputation de l'auteur du logiciel original.
En n, tout programme libre est sans cesse menac
e par des d
ep^
ots de licences. Nous
voulons 
a tout prix 
eviter que des distributeurs puissent d
eposer des licences de logi-
ciels libres pour leur propre compte. Pour l'
eviter, nous stipulons bien que tout d
ep^
ot

eventuel de licence doit pr
evoir express
ement un libre usage pour tous.
Les dispositions pr
ecises et les conditions pour la copie, la distribution et la modi -
cation de nos logiciels sont les suivantes:
C.2 Stipulations et conditions pour copie, distribu-
tion et modi cation
La pr
esente licence s'applique 
a tout programme ou autre travail contenant une in-
dication plac
ee par le d
etenteur des droits pr
ecisant que ce programme ou ce travail
peut ^
etre distribu
e selon les termes de cette Licence. Le terme (
( programme )
) d
esigne
soit le programme lui m^
eme, soit n'importe quel travail qui en est d
eriv
e selon la
loi: c'est-
a-dire un ouvrage contenant le programme ou une partie de celui-ci, que ce
soit 
a l'identique ou avec des modi cations, et/ou traduit dans une autre langue (la
traduction est consid
er
ee comme une modi cation). Chaque personne 
a qui s'applique
la Licence Publique G
en
erale sera d
esign
ee par le terme Vous.
C.2. Stipulations et conditions pour copie, distribution et modi cation313
Les activit
esautres que la copie, la distribution et la modi cation ne sont pas couvertes
par la pr
esente Licence et sortent de son cadre. Il n'y a aucune limitation 
a l'utilisation
du programme, et les donn
ees issues de celui-ci ne sont couvertes que si leur contenu
constitue un travail bas
e sur le logiciel (travail ind
ependant ou r
ealis
e en lan
cant le
programme). Tout d
epend de ce que le programme est cens
e faire.
Article 1. Vous pouvez copier et distribuer des copies conformes du code source
du programme, tel que vous l'avez re
cu, sur n'importe quel support,

a condition de placer sur chaque copie un copyright appropri
e et une
limitation de garantie, 
a condition de ne pas modi er ou omettre
toutes les stipulations se r
ef
erant 
a la pr
esente Licence et 
a la li-
mitation de garantie, et 
a condition de fournir avec toute copie du
programme un exemplaire de la Licence.
Vous pouvez demander une r
etribution nanci
ere pour l'acte phy-
sique de r
ealisation de la copie, et vous ^
etes libre de proposer une
garantie assur
ee par vos soins, moyennant nances.
Article 2. Vous pouvez modi er votre copie ou vos copies du programme ou
partie de celui-ci, ou d'un travail bas
e sur ce programme, et copier et
distribuer ces modi cations selon les termes de l'article 1, 
a condition
de vous conformez 
egalement aux conditions suivantes:
a) Vous devez rajouter aux chiers modi 
es l'indication tr
es claire
des modi cations e ectu
ees, et indiquer la date de chaque chan-
gement.
b) Vous devez distribuer sous les termes de la Licence Publique G
e-
n
erale l'ensemble de toute r
ealisation contenant tout ou partie
du programme, avec ou sans modi cations.
c) Si le programme modi 
e lit des commandes de mani
ere interac-
tive lors de son ex
ecution, vous devez faire en sorte qu'il ache,
lorsqu'il est lanc
e normalement, le copyright appropri
e en in-
diquant bien la limitation de garantie (ou la garantie que vous
vous engagez 
a fournir vous-m^
eme), qu'il stipule que tout utili-
sateur peut librement redistribuer le programme les conditions
de la Licence Publique G
en
erale GNU, et qu'il montre 
a tout
utilisateur comment lire une copie de celle-ci. (Exception: si le
programme original est interactif mais n'ache pas normale-
ment un tel message, tout travail d
eriv
e de ce programme ne
sera pas non plus oblig
e de l'acher).
Toutes ces conditions s'appliquent 
a l'ensemble des modi cations. Si
des 
el
ements identi ables de ce travail ne sont pas d
eriv
es du pro-
gramme, et peuvent ^
etre consid
er
esraisonnablement comme ind
epen-
dants, la pr
esente Licence ne s'applique pas 
a ces 
el
ements lorsque
vous les distribuez seuls. Mais si vous distribuez ces m^
emes 
el
ements
314 Annexe C. Licence Publique G
en
erale GNU
comme partie d'un ensemble coh
erent dont le reste est bas
e sur un
programme soumis 
a la Licence, ils lui sont 
egalement soumis, et la
Licence s'
etend ainsi 
a l'ensemble du produit, quel qu'en soit l'auteur.
Cet article n'a pas pour but de s'approprier ou de contester vos droits
sur un travail enti
erement 
ecrit par vous, mais plut^
ot de s'octroyer
un droit de contr^
ole sur la libre distribution de tout travail d
eriv
e ou
collectif bas
e sur le programme.
En outre, toute fusion d'un autre travail, non bas
e sur le programme,
avec le programme (ou avec un travail bas
e sur le programme), qui
serait e ectu
ee sur un support de stockage ou de distribution, ne fait
pas tomber cet autre travail sous le contr^
ole de la Licence.
Article 3. Vous pouvez copier et distribuer le programme (ou tout travail d
eriv
e
selon les d
e nitions donn
ees 
a l'article 2) sous forme de code objet
ou ex
ecutable, selon les termes des articles 1 et 2, 
a condition de
respecter les clauses suivantes:
a) Fournir le code source complet du programme, sous une forme
lisible par un ordinateur, et selon les termes des articles 1 et
2, sur un support habituellement utilis
e pour l'
echange de don-
n
ees; ou,
b) Faire une o re 
ecrite, valable pendant au moins trois ans, pr
e-
voyant de donner 
a tout tiers qui en fera la demande, une copie
sous forme lisible par un ordinateur du code source correspon-
dant, pour un tarif qui ne doit pas ^
etre sup
erieur au co^
ut de la
copie, selon les termes des articles 1 et 2, sur un support cou-
ramment utilis
epour l'
echange de donn
ees informatiques; ou,
c) Donner des informations sur l'endroit o
u le code source peut
^
etre obtenu (cette alternative n'est autoris
ee que dans le cas
d'une distribution non commerciale, et uniquement si vous avez
re
cu le programme sous forme de code objet ou ex
ecutable avec
l'o re pr
evue 
a l'alin
ea b) ci-dessus.
Le code source d'un travail d
esigne la forme de cet ouvrage sous la-
quelle les modi cations sont les plus ais
ees. Est ainsi d
esign
ee la tota-
lit
e du code source de tous les modules composant un programmeex
e-
cutable, de m^
eme que tout chier de d
e nition associ
e, ainsi que les
scripts utilis
es pour e ectuer la compilation et l'installation du pro-
gramme ex
ecutable. Toutefois, une exception particuli
ere concerne
tout ce qui a trait 
a l'environnement standard de d
eveloppement du
syst
eme d'exploitation utilis
e (source ou binaire) comme les com-
pilateurs, biblioth
eques, noyau, etc., sauf si ces 
el
ements sont aussi
di us
es avec le programme ex
ecutable.
Si la distribution de l'ex
ecutable ou du code objet consiste 
a o rir
C.2. Stipulations et conditions pour copie, distribution et modi cation315
un acc
es permettant de copier le programme depuis un endroit par-
ticulier, l'o re d'un acc
es 
equivalent pour se procurer le code source
au m^
eme endroit est consid
er
e comme une distribution de ce code
source, m^
eme si l'utilisateur choisit de ne pas pro ter de cette o re.
Article 4. Vous ne pouvez pas copier, modi er, c
eder, d
eposer, ou distribuer le
programme d'une autre mani
ere que l'autorise la Licence Publique
G
en
erale. Toute tentative de copier, modi er, c
eder, d
eposer, ou dis-
tribuer le programme di 
eremment, annulera imm
ediatement vos
droits d'utilisation du programme sous cette Licence. Toutefois, les
tiers ayant re
cu de vous des copies du programme ou le droit d'uti-
liser ces copies, continueront 
a b
en
e cier de leur droit d'utilisation
tant qu'ils respecteront pleinement les conditions de la Licence.
Article 5. Vous n'^
etes pas oblig
e d'accepter cette Licence, puisque vous ne l'avez
pas sign
ee. Cependant, rien d'autre ne vous autorise 
a modi er ou
distribuer le programme ou des travaux d
eriv
es: ces faits sont in-
terdits par la loi, tant que vous n'acceptez pas les termes de cette
Licence. En cons
equence, le simple fait de modi er ou distribuer le
programme (ou tout travail bas
e sur lui), indique implicitement votre
acceptation des termes et conditions de cette licence.
Article 6. Chaque fois que vous redistribuez le programme (ou tout travail d
e-
riv
e), le destinataire re
coit une licence du d
etenteur original autori-
sant la copie, la distribution ou la modi cation du programme, aux
termes et conditions de la Licence. Vous n'avez pas le droit d'imposer
de restrictions suppl
ementaires aux droits transmis au destinataire.
Vous n'^
etes pas responsable du respect de la Licence par les tiers.
Article 7. Si, 
a la suite d'une d
ecision de justice, il vous est impos
e d'aller

a l'encontre des conditions de la Licence Publique G
en
erale, cela
ne vous d
egage pas pour autant des obligations li
ees 
a celle-ci: si
vous ne pouvez pas concilier vos obligations l
egales ou autres avec les
stipulations de la Licence, vous ne devez pas distribuer le programme.
Si une partie quelconque de cet article est invalid
ee ou inapplicable
pour quelque raison que ce soit, le reste de l'article continue de s'ap-
pliquer et l'int
egralit
e de l'article s'appliquera en toutes autres cir-
constances.
Le pr
esent article n'a pas pour but de vous pousser 
a enfreindre des
droits ou des dispositions l
egales, ou de contester leur validit
e; elle
n'est l
a que pour prot
eger l'int
egrit
e du syst
eme de distribution du
logiciel libre. De nombreuses personnes ont g
en
ereusement contribu
e

a la large gamme de programmes distribu
ee de cette fa
con en toute
con ance; il appartient 
a chaque auteur/donateur de d
ecider de dif-
fuser ses programmes selon le syst
eme de son choix.
316 Annexe C. Licence Publique G
en
erale GNU
Article 8. Si la distribution et/ou l'utilisation du programme est limit
ee, dans
certains pays, par des brevets ou des droits sur des interfaces, le d
e-
tenteur original des droits qui place le programme sous la Licence
Publique G
en
erale peut ajouter explicitement une clause de limita-
tion g
eographique excluant ces pays. Dans ce cas, cette clause devient
une partie int
egrante de la Licence.
Article 9. La Free Software Foundation peut publier p
eriodiquement des mises

a jour ou de nouvelles versions de la Licence. Elles seront 
ecrites dans
le m^
eme esprit que la pr
esente version, mais pourront di 
erer dans
certains d
etails, destin
es 
a clari er de nouveaux probl
emes.
Chaque version poss
ede un num
ero bien distinct. Si le programme
pr
ecise un num
ero de version de cette Licence et (
( toute version
ult
erieure )
), vous avez le choix de suivre les termes et conditions
de cette version ou de toute autre version plus r
ecente publi
ee par la
Free Software Foundation. Si le programme ne sp
eci e aucun num
ero
de version, vous pouvez alors choisir n'importe quelle version publi
ee
par la Free Software Foundation.
Article 10. Si vous d
esirez incorporer des 
el
ements du programme dans d'autres
programmes libres dont les conditions de distribution di 
erent, vous
devez 
ecrire 
a l'auteur pour lui en demander la permission. Pour les
programmes directement d
epos
es par la Free Software Foundation,

ecrivez-nous: nous faisons parfois quelques exceptions. Notre d
eci-
sion sera guid
ee 
a la fois par le but de pr
eserver la libert
e de notre
programme ou de ses d
eriv
es, et par celui de promouvoir le partage
et la r
eutilisation du logiciel en g
en
eral.
LIMITATION DE GARANTIE
Article 11. Parce que la Licence d'utilisation de ce programme est
libre et gratuite, aucune garantie n'est fournie pour ce
programme, dans la mesure permise par la loi. Sauf men-
tion 
ecrite, les d
etenteurs du copyright et/ou les tiers
fournissent le programme en l'
etat, sans aucune sorte de
garantie, ni explicite ni implicite, y compris les garanties
de commercialisation ou d'adaptation dans un but parti-
culier. Vous prenez tous les risques quand 
a la qualit
e
et aux effets du programme. Si le programme est d
efec-
tueux, vous assumez le co^
ut de tous les services, correc-
tions ou r
eparations n
ecessaires.
Article 12. En aucun cas, 
a moins que ce ne soit explicitement pr
evu
par la loi ou accept
e par 
ecrit, ni le d
etenteur des droits,
ni toute autre personne autoris
ee 
a modifier et/ou redis-
tribuer le programme comme il est permis ci-dessus, ne
C.3. Comment appliquer ces directives 317
pourra ^
etre tenu pour responsable de tout dommage di-
rect, indirect, secondaire ou accessoire (y compris les
dommages entrain
es par la perte de b
en
efice, l'interrup-
tion d'activit
es ou la perte d'informations et autres d
e-
coulant de l'utilisation| ou de l'impossibilit
e d'utilisa-
tion | du programme.)
FIN DES TERMES ET CONDITIONS
C.3 Annexe: Comment appliquer ces directives 
a
vos nouveaux programmes
Si vous d
eveloppez un nouveau programme et d
esirez qu'il soit utilis
e le plus possible
par le public, la meilleure m
ethode est d'en faire un logiciel libre que tout le monde
pourra redistribuer et modi er selon les termes de la Licence Publique G
en
erale.
Pour cela, introduisez les indications suivantes dans votre programme. Il est pr
ef
erable
et plus s^
ur de les faire gurer au d
ebut de chaque chier source; dans tous les cas,
chaque module source devra comporter au minimum la ligne de (
( copyright )
) et
indiquer o
u se trouvent toutes les autres indications.
hune ligne pour donner le nom du programme et donner une id
ee de ce
qu'il est cens
e faire.i Copyright c 19xx hnom de l'auteuri
Ce programme est libre, vous pouvez le redistribuer et/ou le modi er selon
les termes de la Licence Publique G
en
erale GNU telle qu'elle est publi
ee
par la Free Software Foundation; soit la version 2 de cette licence, soit (
a
vous de voir) tout autre version ult
erieure.
Ce programme est distribu
e dans l'espoir qu'il sera utile, mais SANS AU-
CUNE GARANTIE, ni explicite ni implicite, y compris les garanties de
commercialisation ou d'adaptation dans un but sp
eci que. Prenez connais-
sance de la Licence Publique G
en
erale GNU pour plus de d
etails.
Vous devez avoirre
cu une copie de la Licence Publique G
en
eraleGNU avec
ce programme; si ce n'est pas le cas, 
ecrivez 
a la Free Software Foundation,
Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
Ajoutez 
egalement les informations n
ecessaires pour vous contacter par courrier 
elec-
tronique ainsi que votre adresse postale.
Si le programme est interactif, faites-lui acher un court avertissement comme celui-ci
lors de son lancement:
...(nom du programme) version 69, Copyright (C) 19yy nom de l'auteur
...(nom du programme) est fourni sans AUCUNE GARANTIE ; pour plus de d
etails
tapez `g'.
318 Annexe C. Licence Publique G
en
erale GNU
Ce programme est libre, et vous ^
etes encourag
es 
a le redistribuer sous certaines
conditions ; tapez `c' pour plus de d
etails.
Les commandes hypoth
etiques `g' et `c' doivent acher les parties appropri
ees de la
Licence Publique G
en
erale GNU. Bien entendu, vous pouvez appeler les commandes
comme bon vous semble: options dans un menu, options accessibles par le clic d'une
souris, etc., tout d
epend de votre programme.
Si vous travaillez en tant que programmeur, vous devez aussi demander 
a votre em-
ployeur ou votre 
ecole, ou autres, de signer une d
echarge stipulant qu'il renonce aux
droits qu'il pourrait avoir sur le programme. Par exemple:
...(employeur, 
ecole...) d
eclare par la pr
esente ne pas revendiquer de droits
sur le programme (
((nom du programme))
) 
ecrit par ...(nom de l'auteur).
hsignature du responsablei, ...(date),
...(nom et qualit
e du responsable).
La Licence Publique G
en
erale ne permet pas d'inclure votre programme dans des
logiciels d
etenteurs de droits. Si votre programme est une fonction de biblioth
eque,
vous pouvez consid
ererqu'il est plus utile de le faire relever du droit des biblioth
eques;
si c'est ce que vous d
esirez, utilisez la Licence G
en
erale de Biblioth
eque GNU et non
celle-ci.
319
Annexe D
SAGE: La guilde des
administrateurs syst
eme
Si vous n'obtenez pas tout ce que vous cherchez en fr
equentant les groupes Usenet
comp.os.linux.* et en lisant les diverses documentations disponibles, il est peut-
^
etre temps pour vous de rejoindre SAGE, la guilde des administrateurs syst
eme,
sponsoris
ee par Usenix. Le but principal de SAGE est de consid
erer l'administration
syst
eme comme un m
etier. SAGE am
ene les administrateurs r
eseau et syst
eme 
a par-
ticiper au d
eveloppement technique et professionnel, partager probl
emes et solutions,
communiquer avec les utilisateurs, d
ecideurs, constructeurs, distributeurs, 
a propos
d'administration syst
eme.
Les r
ealisations actuelles de SAGE comprennent:
{ En collaboration avec USENIX, les c
el
ebres conf
erences annuelles LISA sur l'ad-
ministration syst
eme.
{ La publication de (
( Job Descriptions for System Administrators )
), 
edit
e par
Tina Darmohray, le premier d'une s
erie de guides pratiques traitant de l'admi-
nistration syst
eme.
{ La cr
eation d'un site archive, ftp.sage.usenix.org, pour les articles des conf
e-
rences et toute documentation relative 
a l'administration syst
eme.
{ La cr
eation de groupes de travail dans des domaines importants pour les ad-
ministrateurs comme les emplois, publications, lois, distribution 
electronique de
l'information, 
education et standards.
Pour en savoir plus sur l'association USENIX et son groupe technique SAGE, t
el
epho-
nez au 510-528-8649aux USA, ou 
ecrivez 
a l'adresse 
electronique oce@usenix.org.
Pour recevoir des informations par courrier 
electronique, faites un nger sur l'adresse
320 Annexe D. SAGE: La guilde des administrateurs syst
eme
info@usenix.org. La cotisation annuelle pour ^
etre membre de SAGE ne co^
ute que
25 $ (vous devez aussi ^
etre membre de USENIX). Les membres b
en
e cient d'abon-
nements gratuits 
a;login: et 
a Computing Systems, revue trimestrielle r
eput
ee; des
r
eductions sur les entr
ees aux conf
erenceset symposiums, ainsi que sur certains achats,
publications ou autres services.
Glossaire 321
Glossaire
Dans le domaine des r
eseaux, il est toujours tr
es dicile de se souvenir de la signi-
cation de tous les termes et abr
eviations rencontr
es, surtout si l'on ne ma^
trise pas
la langue anglaise. Voici une liste de ceux fr
equemment utilis
es dans ce guide, suivis
d'une courte explication.
ACU Automatic Call Unit, Unit
e d'appel automatique. Un modem, en g
e-
n
eral1.
ARP Adress Resolution Protocole, protocole de r
esolution d'adresses utilis
e
pour la correspondance entre les adresses IP et les adresses Ethernet.
ARPA Advanced Research Project Agency, devenu plus tard DARPA. Fon-
dateur de l'Internet.
ARPANET L'anc^
etre de l'Internet d'aujourd'hui; r
eseau exp
erimental fond
e par
le Defense Advanced Research Project Agency (DARPA).
Assigned Numbers
Le titre d'un RFC publi
e r
eguli
erement qui liste les nombres d
e nis
au niveau mondial pour di 
erentes choses ayant trait 
a TCP/IP. Par
exemple, il contient la liste de tous les ports ou services bien connus
comme rlogin, telnet, etc. A l'heure o
u ce livre est r
edig
e, sa version
la plus r
ecente est RFC 1340.
babillard Voir BBS.
bang path Dans les r
eseaux UUCP, notation sp
eciale pour indiquer le chemin
d'un site 
a un autre. Le nom provient de l'utilisation de points d'ex-
clamation ((
( bangs )
)) pour s
eparer les noms des machines. Exemple:
foo!bar!ernie!bertd
enote un chemin vers le site bert, passant dans
l'ordre par foo, bar et ernie.
1: Alternative: un gamin avec un Minitel.
322 Glossaire
BBS Bulletin Board System. Serveur informatique fonctionnant en g
en
eral
sur un ordinateur personnel, permettant le t
el
echargement de chiers
et quelques fonctions de messagerie, locale ou partag
ee avec d'autres.
Accessibles par modem. S'appellent (
( babillards )
) au Qu
ebec.
bi
ere virtuelle La boisson favorite des utilisateurs de Linux. La premi
ere fois qu'elle
fut mentionn
ee, c'
etait semble-t-il dans les notes concernant la di u-
sion du noyau 0.98.X, Linus remerciant les (
( Oxford Beer Trolls )
) de
lui avoir exp
edi
e de la bi
ere virtuelle.
BGP Border Gateway Protocol. Un protocole destin
e 
a l'
echange d'infor-
mations de routage entre syst
emes autonomes.
BIND Une impl
ementation d'un serveur DNS: Le Berkeley Internet Name
Domain server.
BNU Basic Networking Utilities. C'est la vari
et
e d'UUCP la plus courante
actuellement. Elle est aussi connue sous le nom de (
( HoneyDanBer
UUCP )
), ou HDB, appellation d
eriv
ee du nom des auteurs: P. Ho-
neyman, D.A. Novitz et B.E. Redman.
broadcast network
R
eseau de di usion. Un r
eseau qui autorise une station 
a adresser un
datagramme simultan
ement 
a toutes les stations connect
ees.
BSD Berkeley Software Distribution. Une impl
ementation d'UNIX.
chemin Souvent employ
e comme synonyme de route, surtout dans les r
eseaux
UUCP. Voir aussi bang path.
CCITT Comit
e Consultatif International de T
el
egraphique et T
el
ephonique.
CSLIP Compressed Serial Line IP. Protocole permettant le transfert de pa-
quets IP sur une ligne s
erie, avec compression des en-t^
etes de la plu-
part des datagrammes TCP/IP.
daemon Abr
eviation de (
( Disk And Extension MONitor )
). Voir d
emon.
d
emon D
emon est une francisation famili
ere du vocable informatique an-
glais daemon, qui signi e Disk And Extension MONitor, c'est-
a-dire
qui n'est pas invoqu
e manuellement mais attend en t^
ache de fond que
quelque chose se passe, que quelque condition se produise. Ce terme
fut introduit au d
epart sous CTSS (Compatible Time Sharing Sys-
tem), un anc^
etre du syst
eme MULTICS, lui-m^
eme parent d'UNIX.
d
emon de routage
Dans les grands r
eseaux, les changements de topologie peuvent ^
etre
diciles 
a suivre manuellement, aussiexiste-t-il di 
erents programmes
Glossaire 323
permettant de distribuer les informations de routage courantes 
a
toutes les machines. C'est ce que l'on appelle le routage dynamique;
les informations sont di us
ees par des d
emons de routage fonction-
nant sur des machines centrales du r
eseau. Les protocoles utilis
es
s'appellent des protocoles de routage.
DNS Domain Name System. Il s'agit d'une base de donn
ees distribu
ee,
utilis
ee sur l'Internet pour la correspondance entre les noms des ma-
chines et leurs adresses IP.
EGP External Gateway Protocol. Un protocole pour l'
echange d'informa-
tions de routage entre des syst
emes autonomes.
Ethernet Par convention, nom d'un type de r
eseau et d'
equipement r
eseau.
Techniquement, Ethernet est une partie d'un ensemble de standards
d
e nis par l'IEEE. Le r
eseau Ethernet utilise un seul c^
able, tr
es sou-
vent coaxial, pour connecter un certain nombre d'h^
otes, et permet
des transferts allant jusqu'
a 10 Mbps. Le protocole Ethernet d
e nit
la mani
ere dont ces h^
otes communiquent entre eux sur ce c^
able2.
FQDN Fully Quali ed Domain Name, nom pleinement quali 
e. Un nom
d'h^
ote avec un nom de domaine au bout, qui est alors un index valide
dans la base de donn
ees DNS.
FTP File Transfer Protocol. Le plus c
el
ebre service de transfert de chiers
est bas
e sur ce protocole et porte le m^
eme nom.
FYI (
( For Your Information )
). S
eries de documents contenant des infor-
mations informelles sur des sujets relatifs 
a l'Internet.
GMU Groucho Marx University. L'universit
e Groucho Marx est un 
etablis-
sement imaginaire utilis
e comme exemple dans ce livre.
GNU GNU's not Unix. Cet acronyme r
ecursif est le nom du projet de la
Free Software Foundation dont le but est de fournir un ensemble
coh
erent d'outils UNIX pouvant ^
etre utilis
es et copi
es gratuitement.
Tous les logiciels GNU sont couverts par une licence sp
eciale, connue
sous le nom de GPL (Gnu Public Licence), ou (
( Copyleft )
). Elle est
reproduite dans la section C
HoneyDanBer Nom d'une vari
et
e de UUCP, HDB en abr
eg
e. Voir aussi BNU.
h^
ote En g
en
eral, un nud du r
eseau: quelque chose qui est capable de
recevoir et de transmettre des messages r
eseau. Il s'agit le plus sou-
vent d'un ordinateur, mais les terminaux-X, les imprimantes r
eseau
2: Au passage, le protocole Ethernet utilis
e couramment par TCP/IP n'est pas exactement le m^
eme
que l'IEEE 802.3. Les trames Ethernet poss
edent un champ de type alors que dans l'IEEE 802.3 elles
ont un champ longueur.
324 Glossaire
en font partie aussi.
ICMP Internet Control Message Protocol. Un protocole r
eseau utilis
e par IP
pour renvoyer des informations d'erreur aux h^
otes 
emetteurs, entre
autres choses.
IEEE Institute of Electrical and Eletronics Engineers. Une autre organisa-
tion de standardisation. Au point de vue UNIX, leur r
ealisation la
plus importante est sans conteste les sp
eci cations POSIX qui d
e-
nissent les aspects des syst
emes UNIX, des interfaces des appels
syst
emes aux outils d'administration.
En dehors de 
ca, l'IEEE a d
evelopp
e des sp
eci cations pour les r
e-
seaux Ethernet, Token Ring et Token Bus. Un des standards de re-
pr
esentation binaire des nombres r
eels parmi les plus utilis
es est aussi
le fruit des travaux de l'IEEE.
IETF Internet Engineering Task Force.
internet Un r
eseau d'ordinateurs compos
e d'un ensemble de r
eseaux indivi-
duels plus petits.
Internet Un internet particulier, s'
etendant dans le monde entier.
IP Internet Protocol. Un protocole r
eseau.
ISO International Standards Organization.
ISDN Integrated ServicesDigital Network.Nouvelle technologiede t
el
ecom-
munications utilisant des techniques num
eriques au lieu de circuits
analogiques. En France, ISDN se nomme RNIS (R
eseau Num
erique

a Int
egration de Services), et son nom commercial est NUM
ERIS.
LAN Local Area Network, r
eseau local. Un petit r
eseau d'ordinateurs.
MTA Mail Transport Agent, agent de transport de courrier. Il s'agit des
programmes charg
esde d
elivrer le courrier
electronique, comme smail
et sendmail.
MUA Mail User Agent. Ce sont les interfaces utilisateur permettant la saisie
conviviale du courrier 
electronique, comme elm. Les messages sont
ensuite transmis au MTU pour ^
etre rout
es et d
elivr
es.
MX Mail Exchanger, 
echangeur de courrier. Un type d'enregistrement
DNS utilis
e pour indiquer qu'un h^
ote sert de passerelle pour le cour-
rier d'un domaine.
NFS Network File System. Un protocole r
eseau standard et une suite
de programmes permettant d'acc
eder aux donn
ees de disques durs
Glossaire 325
distants de mani
ere transparente, comme si les syst
emes de chiers

etaient locaux.
NIS Network Information System. Une application RPC qui permet de
partager des chiers de con guration comme celui des mots de passe
entre plusieurs h^
otes. Voir aussi l'entr
ee (
( YP )
).
NNTP Network News Transfer Protocol. C'est le protocole destin
e 
a trans-
f
erer les News Usenet sur les connexions TCP.
nom canonique
Le premier nom d'une machine dans le DNS. C'est le seul nom auquel
est associ
e un enregistrement de type A, et c'est celui qui est renvoy
e
par les recherches inverses.
NUM
ERIS voir ISDN.
octet Un ensemble de 8 bits. La langue fran
caise ne conna^
t que ce mot,
l'anglais fait la di 
erence entre octet et byte.
Sur l'Internet, le terme technique d
esignant une quantit
e de 8 bits
est appel
e octet. Il est pr
ef
er
e 
a byte, car il existe sur ce r
eseau, des
machines dont la taille du byte n'est pas de 8 bits.
OSI Open Systems Interconnection. Un standard ISO concernant le r
e-
seau (partie logicielle).
path Voir chemin.
PLIP Parallel Line IP. Un protocole permettant l'
echange de paquets IP
par une liaison parall
ele, comme le port imprimante du PC.
port, TCP ou UDP
Les ports sont une abstraction TCP et UDP des acc
es aux services.
Avant qu'un processus ne puisse o rir ou acc
eder 
a un service r
eseau,
il doit acc
eder 
a un port. Avec les adresses IP des machines, les ports
identi ent de mani
ere unique les deux bouts d'une connexion TCP.
portmapper Le portmapper s'interpose entre les num
eros de programmes utilis
es
pour l'identi cation RPC des di 
erents serveurs RPC individuels, et
les num
eros de port TCP et UDP que ces services 
ecoutent.
PPP Le (
( Protocole Point-
a-Point)
). Il s'agit d'un protocole souple et uni-
versel permettant d'utiliser di 
erents protocoles r
eseaux comme IP
ou IPX sur une connexion point-
a-point. En plus d'^
etre largement
utilis
e sur des lignes s
erie (modem), PPP peut aussi ^
etre employ
e
par-dessus ISDN.
326 Glossaire
RARP Reverse Address Resolution Protocol. Il permet aux h^
otes d'un r
eseau
de trouver leurs adresses IP au d
emarrage.
recherche inverse
(reverse lookup). L'action de rechercher un nom de machine en fonc-
tion de son adresse IP. Dans le DNS, cette op
eration est r
ealis
ee en
e ectuant la recherche de l'adresse dans le domaine in-addr.arpa.
r
eseau 
a commutation de paquets
Une vari
et
e de r
eseaux qui o rent le transfert instantan
e des donn
ees
en les mettant toutes dans de petits paquets, qui sont transport
es
individuellement vers leur destination. Ils n
ecessitent des connexions
permanentes ou semi-permanentes.
r
eseaux 
a stockage interm
ediaire
Ils transf
erent les donn
ees sous forme de chiers entiers, et n'utili-
sent pas de connexion permanentes. Les h^
otes se connectent les uns
aux autres 
a certains moments, et transf
erent toutes les donn
ees en
une fois. Ils n
ecessitent un stockage interm
ediaire jusqu'
a ce qu'une
connexion soit 
etablie.
resolver Biblioth
eque responsable de la correspondance entre les noms d'h^
otes
et leurs adresses IP.
resource record
C'est l'unit
e d'information de la base de donn
ees DNS, que l'on
abr
ege en RR. Chaque enregistrement se voit associer un type et
une classe, par exemple ceux faisant correspondre un nom de ma-
chine 
a une adresse IP sont de type A (pour adresse), et de la classe
IN (pour protocole Internet).
RFC Request For Comments. S
eries de documents d
ecrivant les standards
Internet.
RIP Routing Information Protocol. C'est un protocole de routage destin
e

a ajuster dynamiquement les routes sur un (petit) r
eseau.
RNIS voir ISDN.
route La s
erie d'h^
otes qu'une information doit traverser, depuis la machine
originale jusqu'
a celle de destination. Trouver une route appropri
ee
s'appelle le routage.
RPC Remote Procedure Call. Protocole destin
e 
a ex
ecuter des proc
edures

a l'int
erieur d'un processus d'un h^
ote distant.
RR Abr
eviation de resource record, les enregistrements DNS.
Glossaire 327
RS-232 Le standard le plus courant d'interfaces s
erie.
RTS/CTS Le nom commun d
esignant le contr^
ole de ux mat
eriel e ectu
e par
deux p
eriph
eriques communiquant sur une liaison s
erie RS-232. Le
nom d
erive des deux lignes mises en jeu, RTS ((
( Request To Send )
))
et CTS ((
( Clear To Send )
)).
RTM (le ver Internet)
Un programme de type virus qui utilisa plusieurs trous de s
ecurit
e
dans VMS et Unix BSD 4.3 pour se r
epandre sur tout l'Internet.
Plusieurs (
( erreurs)
) dans le programme le faisaient se multiplier sans
limites, et par cons
equent mettre hors service de grandes portions de
l'Internet. RTM sont les initiales de l'auteur (Robert T. Morris), qu'il
avait laiss
ees dans le programme.
site Un ensemble d'h^
otes qui, vu de l'ext
erieur, se comporte pratique-
ment comme un seul nud du r
eseau. Par exemple, du point de vue
Internet, l'universit
e Groucho Marx est un site, malgr
e la complexit
e
de son r
eseau interne.
SLIP Serial Line IP. Protocole permettant l'
echange de paquets IP par une
ligne s
erie. Voir aussi CSLIP.
SMTP Simple Mail Transfer Protocol. Protocole destin
e 
a transf
erer du
courrier 
electronique sur les connexions TCP, mais peut aussi ^
etre
utilis
e pour des lots de messages transport
es par des liaisons UUCP.
SOA Start of Authority. Un type de ressource DNS.
System V Une vari
et
e d'UNIX.
TCP Transmission Control Protocol. Un protocole r
eseau.
TCP/IP Appellation g
en
erale de toute la s
erie de protocoles Internet.
UDP User Datagram Protocol. Un protocole r
eseau.
UUCP Unix to Unix Copy. Une s
erie de commandes de transport, permet-
tant l'
etablissement de r
eseaux fonctionnant sur des lignes t
el
epho-
niques.
Version 2 UUCP
Tr
es ancienne impl
ementation de UUCP.
services bien connus
On pr
ef
ere le plus souvent employer le terme anglais well-known ser-
vices. Il est fr
equemment utilis
e pour parler des services r
eseaux com-
muns comme telnet et rlogin. Du point de vue technique, il d
esigne
328 Glossaire
tous les services qui se sont vu attribuer un num
ero de port ociel
dans le document RFC (
( Assigned Numbers )
).
YP Yellow Pages, pages jaunes. L'ancien nom de NIS qui n'est plus uti-
lis
e, car c'est une marque d
epos
ee de British Telecom. N
eanmoins, la
plupart des utilitaires NIS ont conserv
e des noms commen
cant par
le pr
e xe yp. On ne va pas contre l'histoire...
Bibliographie comment
ee 329
Bibliographie comment
ee
Livres
[Tanen89] Andrew S. Tanenbaum: Computer Networks. Prentice-Hall Inter-
national, 1989. ISBN 0-13-166836-6 .
Cet ouvrage vous apportera une tr
es bonne connaissance du r
e-
seau. Utilisant le mod
ele de r
ef
erence OSI, il explique la concep-
tion de chaque couche, et les algorithmes pouvant ^
etre mis en
jeu. Pour chaque couche, les impl
ementations de plusieurs r
eseaux
(dont ARPAnet) sont compar
ees.
Le seul d
efaut de ce livre est l'abondance des abr
eviations, qui
rendent parfois sa lecture dicile. Mais c'est probablement un
inconv
enient inh
erent au sujet trait
e.
[CInternet] Susan Estrada: Connecting to the Internet: An O'Reilly Buyer's
Guide. O'Reilly and Associates, 1993. ISBN 1-56592-061-9.
Contient des conseils pratiques pour choisir un fournisseur de
connectivit
e IP, et le type de connexion Internet. Il vous aidera 
a
d
eterminer vos besoins r
eels et le prix qui en r
esultera, en fonction
des di 
erents fournisseurs cit
es. Il comprend une liste internatio-
nale de fournisseurs.
[AlbitzLiu92] Paul Albitz et Cricket Liu: DNS and BIND. O'Reilly and Asso-
ciates, 1992. ISBN 1-56592-010-4.
Ce livre sera tr
es utile pour tous ceux qui ont 
a g
erer un serveur
de noms. Il explique tout le d
etail du fonctionnement du DNS et
donne des exemples qui rendent compr
ehensibles les options de
330 Livres
BIND les plus obscures. Sa lecture est agr
eable et il pourra vous
apprendre beaucoup.
[Expect] Don Libes: Exploring Expect: A Tcl-based Toolkit for Automating
Interactive Programs. O'Reilly and Associates, 1995.
[welsh-linux] Matt Welsh: Le syst
eme Linux. O'Reilly and Associates, 1995.
ISBN 1-56592-100-3.
Cet ouvrage vous aidera 
a installer et utiliser un syst
eme Linux. Il
d
ecrit l'installation et les principales t^
aches d'administration, et
pr
esente un bon nombre d'applications du courrier
electronique au
multim
edia. C'est un ouvrage de base, 
a poss
eder si vous utilisez
Linux. Disponible en version anglaise ou fran
caise.
[Comer88] Douglas R. Comer: Internetworking with TCP/IP: Principles,
Protocols, and Architecture. Prentice-HallInternational, 1991.ISBN
0-13-468505-9.
[Unleashing] Stefan Strobel et Thomas Uhl: Linux - Unleashing the Worksta-
tion in Your PC. Springer-Verlag, 1994. ISBN 0-387-58077-8.
Disponible en anglais et en allemand, ce livre est une introduction
aux di 
erentes distributions de Linux, et un guide d'installation
et de con guration.
[ManagUUCP] Tim O'Reilly et Grace Todino: Managing UUCP and Usenet,
10
eme 
edition. O'Reilly and Associates, 1992. ISBN 0-93717593-5.
C'est l'ouvrage de r
ef
erence sur UUCP. Il traite aussi bien de la
Version 2 que de l'impl
ementation BNU. Il vous aidera 
a installer
votre site UUCP, en vous donnant de nombreux trucs et astuces
et des solutions 
a beaucoup de probl
emes. Il fait vraiment le tour
Livres 331
du sujet, et vous d
etaillera les subtiles di 
erences existant entre
les di 
erentes versions de UUCP. La seconde partie du livre est
consacr
ee 
a Usenet et aux programmes relatifs aux News. Il traite
de la con guration de B News (version 2.11) et C News, et des
travaux d'administration.
[NFS and NIS] Hal Stern: Managing NFS and NIS. O'Reilly and Associates,1992.
ISBN 0-937175-75-7.
C'est le compagnon du livre sur TCP/IP de Craig Hunt. Il couvre
en d
etail l'utilisation de NIS (Network Information System) et
NFS (Network File System) y compris la con guration de l'auto-
monteur et PC/NFS.
[NIS+] Rick Ramsey: All about Administering NIS+. Prentice Hall, 1993.
ISBN 0-13-068800-2.
[sendmail] Bryan Costales, Eric Allman et Neil Rickert: Sendmail. O'Reilly
and Associates, 1993. ISBN 1-56592-056-2.
L'ouvrage de r
ef
erence sur Sendmail.
[TCP/IP] Craig Hunt: TCP/IP Network Administration. O'Reilly and As-
sociates, 1992. ISBN 0-937175-82-X.
Si le guide (
( Administration R
eseau sous Linux )
) ne vous sut
pas, procurez-vous cet ouvrage. Il traite de tout ce qui concerne
le r
eseau, depuis l'obtention d'une adresse IP jusqu'au d
epannage
de votre installation, en passant par la s
ecurit
e. Il est centr
e sur
TCP/IP: con guration des interfaces, mise en place des routages,
r
esolution de noms. Il comprend une description des possibilit
es
o ertes par les d
emons de routage routed et gated, qui permet-
tent le routage dynamique.
Il d
ecrit 
egalement la con guration des applications et des d
e-
mons r
eseaux, comme inetd, les commandes en r, NIS et NFS.
332 Livres
L'annexe contient une r
ef
erence compl
ete sur gated et named, et
une description de la con guration de sendmail.
[Stevens90] Richard W. Stevens: UNIX Network Programming. Prentice-Hall
International, 1990. ISBN 0-13-949876-X.
Il s'agit probablement du libre le plus lu, concernant la program-
mation r
eseau TCP/IP; qui, en m^
eme temps, vous apprendra une
quantit
e de choses passionnantes sur les protocoles Internet3.
[Spaf93] Gene Spa ord et Simson Gar nkel:Practical UNIX Security. O'Reilly
and Associates, 1992. ISBN 0-937175-72-2.
C'est un livre que toute personne ayant 
a g
erer un syst
eme sur
un r
eseau se doit de poss
eder. Il traite de tout ce qui concerne
la s
ecurit
e, tant au point de vue logiciel que mat
eriel. Bien que
vous deviez vous e orcer de s
ecuriser toutes les parties de votre
syst
eme, les explications sur la s
ecurit
e des r
eseaux constituent,
dans notre contexte, la partie la plus importante. En dehors des
programmes classiques comme telnet, rlogin, etc., NFS et NIS,
il aborde 
egalement Kerberos, Secure RPC, et l'usage des portes
coupe-feu ( rewalls) permettant de prot
eger votre r
eseau de toute
attaque en provenance d'Internet.
[WInternet] Ed Krol: The Whole Internet User's Guide and Catalog, 2nd Ed.
O'Reilly and Associates, 1994.
Un guide sur tous les services de l'Internet, comprenant toutes
les instructions sur leur utilisation et une liste des sites les plus
connus.
[Kehoe92] Brendan P. Kehoe: Zen and the Art of the Internet. .
(
( Zen )
) fut le premier guide consacr
e 
a l'Internet, pr
esentant aux
novices les di 
erentes activit
es et services, ainsi que le folklore
3: Notez que Stevens vient juste de r
ealiser un autre ouvrage, appel
e TCP/IP Illustrated, Volume
1, The Protocols, publi
e par Addison Wesley.
Les (
( HOWTO )
) 333
de l'Internet. C'est un volume de 100 pages qui couvre des sujets
aussi vari
es que le courrier 
electronique, les News Usenet et le ver
Internet. Il est disponible en t
el
echargement par FTP anonyme
sur de nombreux sites, et peut ^
etre librement distribu
e et imprim
e.
On peut en acheter une version papier aupr
es de Prentice-Hall.
Les (
( HOWTO )
)
Voici un extrait du document (
( HOWTO-INDEX )
), r
ealis
e par Matt Welsh.
Les (
( HOWTO )
), c'est quoi?
Les HOWTO, que l'on pourrait traduire par les (
( comment faire)
), sont des documents
disponibles en t
el
echargementexpliquant en d
etail certaines parties de la con guration
ou de l'utilisation de Linux. Par exemple, il en existe un traitant de l'installation
du syst
eme (Installation-HOWTO), un autre d
ecrivant comment mettre en place le
courrier 
electronique (Mail-HOWTO), etc. Ces documents sont g
en
eralement bien
plus complets que les FAQ4.
Les HOWTO sont tr
es d
etaill
es et ne sont pas constitu
es de questions et r
eponses,
bien que cette forme apparaisse parfois 
a la n de certains d'entre eux. Ils font le tour
d'un sujet particulier, et sont tr
es souvent remis 
a jour pour re 
eter l'
etat actuel du
d
eveloppement de Linux.
Ils peuvent ^
etre t
el
echarg
essur les sites FTP suivants, ainsi que sur tous leurs miroirs,
et d'une mani
ere g
en
erale sur tous les serveurs di usant Linux. Une grande partie est
disponible en France, en version francaise.
{ tsx-11.mit.edu:/pub/linux/docs/HOWTO
{ tsx-11.mit.edu:/pub/linux/docs/HOWTO
{ ftp.ibp.fr:/pub/linux/docs/HOWTO (versions originales)
{ ftp.ibp.fr:/pub/linux/french/HOWTO (versions fran
caises)
{ ftp.loria.fr
L'index que nous vous pr
esentons constitue la liste des HOWTO actuellement dispo-
nibles. Ils sont r
eguli
erement post
es dans le forums Usenet comp.os.linux.answers,
qui a 
et
e cr
e
e dans ce but, ainsi que dans news.answers. Par cons
equent, vous pour-
rez toujours en dernier ressort les trouver dans l'archive de news.answers du site
rtfm.mit.edu.
4: FAQ, Frequently Asked Questions, se traduit, de l'avis g
en
eral et humoristique, dans la hi
erar-
chie francophone des News Usenet par (
( foire aux questions )
).
334 Index des documents HOWTO
Index des documents HOWTO
Voici la liste des documents disponibles.
{ Linux Busmouse HOWTO, par mike@starbug.apana.org.au (Mike Battersby). In-
formations sur les souris type PS/2 dans un syst
eme Linux.
{ Linux CDROM HOWTO, par tranter@software.mitel.com (Je Tranter). Informa-
tions sur les CD-ROM compatibles avec Linux.
{ Linux DOSEMU HOWTO, par deisher@enws125.EAS.ASU.EDU (Michael E. Dei-
sher). HOWTO concernant l'
emulateur MS-DOS sous Linux appel
e DOSEMU.
{ Linux Distribution HOWTO, par mdw@sunsite.unc.edu (Matt Welsh). Liste des
services commerciaux et vendeurs par correspondance.
{ Linux Ethernet HOWTO, par Paul Gortmaker gpg109@rsphysse.anu.edu.au.
Informations sur les cartes Ethernet compatibles avec Linux.
{ Linux Ftape HOWTO, par ftape@mic.dth.dk (responsable du ftape-HOWTO). In-
formations sur les syst
emes de sauvegarde type oppy-tape compatibles avec Linux.
{ Linux HOWTO Index, par mdw@sunsite.unc.edu (Matt Welsh). Liste des docu-
ments HOWTO disponibles concernant le syst
eme Linux.
{ Linux Hardware Compatibility HOWTO, par erc@apple.com (Ed Carp). Liste
des p
eriph
eriques compatibles fonctionnant sous Linux.
{ Linux Installation HOWTO, par mdw@sunsite.unc.edu (Matt Welsh). Comment
r
ecup
erer et installer un syst
eme sous Linux.
{ Linux JE-HOWTO, par Yasuhiro Yamazaki hiro@rainbow.physics.utoronto.ca.
Informations concernant JE, outils pour faire parler Linux en japonais.
{ Linux Keystroke HOWTO, par Zenon Fortuna (zenon@netcom.com). Comment
se concocter des raccourcis clavier sous Linux.
{ Linux MGR HOWTO, par broman@Np.nosc.mil (Vincent Broman). Informations
concernant l'interface graphique MGR sous Linux.
{ Linux Electronic Mail HOWTO, par vince@victrola.wa.com (Vince Skahan). In-
formations sur le courrier 
electronique sous Linux (serveur et client).
{ Linux NET-2 HOWTO, par terryd@extro.ucc.su.oz.au (Terry Dawson). Comment
con gurer proprement le r
eseau TCP/IP, SLIP, PLIP et PPP sous Linux.
{ Linux News HOWTO, par vince@victrola.wa.com (Vince Skahan). Informations
sur les serveurs et lecteurs de News USENET sous Linux.
{ Linux PCI-HOWTO, Michael Will michaelw@desaster.student.uni-tuebingen.de.
Informations sur la compatibilit
e des machines 
a bus PCI avec Linux.
{ Linux Printing HOWTO, par gtaylor@cs.tufts.edu (Grant Taylor). Comment faire
fonctionner l'impression sous Linux.
{ Linux SCSI HOWTO, par Drew Eckhardt drew@kinglear.cs.Colorado.EDU. In-
formations sur les cartes contr^
oleurs SCSI compatibles avec Linux.
{ Linux Serial HOWTO, par gregh@cc.gatech.edu (Greg Hankins). Informations sur
l'utilisation des ports s
erie et des logiciels de communication.
Les RFC 335
{ Linux Sound HOWTO, par tranter@software.mitel.com (Je Tranter). Les cartes
sonores et logiciels adapt
es sous Linux.
{ Linux Term HOWTO, par Bill Reynolds bill@goshawk.lanl.gov. Comment uti-
liser le protocole de communication (
( term )
) sous Linux.
{ Linux Tips HOWTO, par Vince Reed reedv@rpi.edu. Trucs et astuces en tous
genres sous Linux.
{ Linux UUCP HOWTO, par vince@victrola.wa.com (Vince Skahan). Informations
sur les logiciels UUCP sous Linux.
{ Linux XFree86 HOWTO, par geyer@polyhymnia.iwr.uni-heidelberg.de (Helmut
Geyer). Comment installer XFree86 (X11R6) sous Linux.
Les RFC
Voici la liste des RFC que nous avons mentionn
es tout au long de ce livre. Tous
sont disponibles par FTP anonyme sur nic.ddn.mil, ftp.uu.net, et de nombreux
autres sites de par le monde. Pour obtenir un RFC par courrier 
electronique, en-
voyez un message 
a l'adresse service@nic.ddn.mil, en mettant comme sujet send
RFC-num
ero.TXT.
rfc-1597 Address Allocation for Private Internets. Ce RFC liste les adresses IP
que les r
eseaux priv
es peuvent librement utiliser sans qu'ils aient
besoin d'^
etre enregistr
es aupr
es de l'autorit
e Internet comp
etente
(IANA), et pr
esente les avantages et inconv
enients de cette solution.
rfc-1340 Assigned Numbers, Postel et Reynolds. Ce RFC liste et d
e nit les
di 
erents num
eros utilis
es dans divers protocoles, comme les num
eros
de ports standard que les serveurs TCP et UDP 
ecoutent, et les
protocoles utilis
es dans les en-t^
etes des datagrammes IP.
rfc-1144 Compressing TCP/IP headers for low-speed serial links, Van Jacob-
son. Ce document d
ecrit l'algorithme utilis
e pour compresser les en-
t^
etes TCP/IP en CSLIP et PPP. Un document 
a lire!
rfc-1033 Domain Administrators Operations Guide, Lottor, M. Avec ses deux
compagnons RFC 1034 et RFC 1035, il constitue la r
ef
erence sur le
DNS.
rfc-1034 Domain Names - Concepts and Facilities, Mockapetris, P.V. Un com-
pl
ement au RFC 1033.
rfc-1035 Domain names - Implementation and Speci cation, Mockapetris, P.V.
Un compl
ement au RFC 1033.
rfc-974 Mail Routing and the Domain System, Partridge, C. Ce RFC d
ecrit
le routage du courrier sur l'Internet. 
A lire pour tout savoir sur les
336 Les RFC
enregistrements MX...
rfc-1548 The Point-to-Point Protocol (PPP), W.A. Simpson. Standard PPP,
le protocole de transport de datagrammes sur les liaisons point-
a-
point.
rfc-977 Network News Transfer Protocol, Kantor, B., and Lapsley, P. La
d
e nition du protocole NNTP, couramment utilis
e pour le transport
des News Usenet sur l'Internet.
rfc-1094 NFS: Network File System Protocol speci cation, Nowicki, B. Sp
e-
ci cations res protocoles NFS et mount (version 2).
rfc-1055 Nonstandard for Transmission of IP Datagrams over Serial Lines:
SLIP, Romkey, J.L. D
ecrit SLIP, le protocole Internet pour liaisons
s
eries.
rfc-1057 RPC: Remote Procedure Call Protocol Speci cation: Version 2, Sun
Microsystems, Inc. Sp
eci cations de l'encodage utilis
e pour les RPC
(appels de proc
edures distantes), utilis
ees entre autres pour NFS et
NIS.
rfc-1058 Routing Information Protocol, Hedrick, C.L. Description du proto-
cole RIP, qui est destin
e 
a l'
echange dynamique d'informations de
routages sur les r
eseaux locaux ou de moyenne importance.
rfc-1535 A Security Problem and Proposed Correction with Widely Deployed
DNS Software, E. Gavron. Ce RFC d
ecrit un probl
eme de s
ecurit
e
avec la liste de recherche par d
efaut utilis
ee par d'anciennes versions
de la biblioth
eque resolver.
rfc-821 Simple Mail Transfer Protocol, Postel, J.B. Description du protocole
SMTP, destin
e au transport du courrier 
electronique sur TCP/IP.
rfc-1036 Standard for the Interchange of USENET messages, Adams, R., and
Horton, M.R. D
ecrit le format des messages Usenet, et la fa
con dont
ils sont 
echang
es sur l'Internet et sur les r
eseaux UUCP. Une r
evision
de ce RFC, qui sera beaucoup plus pr
ecise et moins tol
erante vis-
a-
vis des mauvaises impl
ementations constat
ees sur certains logiciels
applicatifs, est attendue d'un moment 
a l'autre.
rfc-822 Standard for the Format of ARPA Internet text messages, Crocker,
D. C'est la r
ef
erence absolue en ce qui concerne le format du courrier

electronique. Tout le monde le conna^
t, peu l'ont vraiment lu...
rfc-968 Twas the Night Before Start-up, Cerf, V. La veille du jour o
u tout a
commenc
e. Qui a dit que les h
eros du r
eseau resteront inconnus?
Index
| A |
A (enregistrement DNS), 94
acc
es
autorisation, 105, 112, 164
chiers distants, 162
NNTP, 291, 293
PPP, 124
restriction, 16, 126, 134, 165, 291,
293
UUCP, 188{194
adresse
bang, 208, 210
broadcast, 21
choix (IP), 62
courrier, 208{209
de di usion, 21, 69, 76
de routage, 208
enregistrement DNS, 94
Ethernet, 7
Ethernet et IP, 10
hybride, 208
IP, 10
loopback, 21
nom de machine UUCP, 178
n
egociation sous PPP, 115, 120,
126
r
esolution, 21
route-addr, 208
trouver le nom d'h^
ote, 36
adresse de di usion, 76
adresses IP priv
ees, 62
achage
con guration des interfaces, 75
con guration UUCP, 179
connexions actives, 79
statistiques sur interface, 79
surnoms cartes NIS, 145
table de routage, 78
table de routage IP, 71
tables ARP, 80
alias
courrier, 233
et C News, 272
nom de machine, 34, 94
alias, 233
Allman, Eric, 203
amd, 166
appel de proc
edure distante, voir RPC
ARP, 21{22
acher les tables, 80
mise en service, 77
proxy, 73, 81, 121
ARPANET, 5
Assembleur de paquets/d
esassembleur,
8
assignation des adresses IP, 62
atteindre un h^
ote, 68, 70
authenti cation
sous NNTP, 293
sous PPP, 113, 124{128
sous UUCP, 192
authoritative name server, 34, 36
auto-IRQ, 50
automonteur, 166
AX.25, 8, 47
| B |
Barber, Stan, 290
batch, voir lots
baud, 55
BBS, 53
Becker, Donald, 47
337
338 INDEX
Berkeley Internet Name Domain, 83
BIND, 83, 88{100
Biro, Ross, 13
bit par seconde, 55
bi
ere virtuelle, 61
BNC, 6
BNU, voir UUCP, HDB
bo^
te aux lettres, 232
BOOTP, 22
bo^
te aux lettres
montage par NFS, 221
BSMTP, 207
| C |
C News, 261, 267{288
active ( chier), 267, 270{271,275{
276
alias des noms de machine, 272
archivage, 279
compression des lots, 278
cr
eation con guration initiale, 270

echange de news, 272, 274
envoi de News, 274, 276{279
exclusion de sites, 272
expiration, 279{281
chiers de trace, 283
groupes mod
er
es, 282
history ( chier), 267, 281
ihave/sendme, 273, 278
limiter les groupes, 272, 282
liste des groupes, 275, 281
lots, 268, 273, 274, 276{279
mise 
a jour chier active, 284
newsmaster, 271
param
etres des lots, 277{279
relaynews, 267
r
eseau, 286
rnews, 274
r
eception des news, 267{268, 271
r
epertoire de spoule, 267
support de NNTP, 273, 293
sys ( chier), 269, 271{275
togo ( chier), 274
usenet, 271
UUCP, 268, 278
cache (option BIND), 91
caract
eres nationaux dans elm, 216
cartes, Usenet, 211, 214
CHAP, 113, 124, 126{127
chargen, 132
chat, 117{119
choix
adresses IP, 62
cartes NIS, 151
domaine NIS, 146
nom de machine UUCP, 178
clients diskless, 22
CNAME (enregistrement DNS), 94, 95
coaxial, 6
collision, Ethernet, 7
Collyer, Geo , 261
communication, programmes, 53
compression d'en-t^
etes Van Jacobson,
102, 114
compression de paquets TCP/IP, 102,
114
con guration
adresses IP, 62
C News, 268{288
C News sur un r
eseau, 286
courrier par r
eseau local, 221{224
courrier UUCP, 220
dip, 104
DNS sur SLIP/PPP, 101
domaine NIS, 146, 150
domaine par d
efaut, 86
elm, 215{217

equipement r
eseau, 39{52
Ethernet, 43, 47{51, 69
interface loopback, 67
interfaces r
eseau, 66
IPX, 46
lecteur de News, 295
les commandes en r, 139{141
News Usenet, 268{288
NFS, 44
NIS, 143{157
NNTP, 289{294
nom de domaine, 62
nom de machine, 61
INDEX 339
noyau, 43
passerelle courrier, 222
passerelle IP, 72
PLIP, 43, 51, 72
ports s
erie, 57{58
PPP, 43, 74, 113{129
r
esolution de noms, 65, 83{100
sendmail, 237{260
serveur de noms, 88{100
serveur de noms cache seulement,
101
serveur SLIP, 111
services r
eseau, 131
SLIP, 43, 74, 101{112
smail, voir smail
utilisation serveur de noms, 86
UUCP, 169{201
con guration manuelle (Ethernet), 49
con guration manuelle (PLIP), 51
connecteur BNC, 6, 47
connexions, achage, 79
contr^
ole de ux, mat
eriel, 56, 57, 115
courrier, 203
adresse bang, 208, 210
adresse de routage, 208
alias, 233
cartes, 211, 214
centralisation, 209, 212, 213
d
emon, 219
diriger dans un chier, 231
distribution, 207
en-t^
etes, 204
chier paths, 211, 213{215
forcer le transport UUCP, 257
format des adresses, 208{209
format des messages, 204
multim
edia, 203
par lots, 207
par UUCP, 207
passer 
a une commande, 231
passerelle, 209
postmaster, 227
queue, 219, 226{227
rejet, 227, 242
renvoi, 232, 233
routage, 209{213
entre Internet et UUCP, 209
Internet, 209
par domaine, 212, 213
r
eseaux UUCP, 210
smart host, 211
routage par domaine, 209
route par d
efaut, 211
route-addr, 208
saisie, 207
site invisible, 221
sur r
eseau, 221
courrier 
electronique, 203
Cox, Alan, 13
cr
eation
cartes NIS, 148
sous-domaines, 32
sous-r
eseaux, 36, 63
zones DNS, 37
CSLIP, 10, 102, 103, 111, 114
| D |
D-Link, 47
daemon, 131
Davies, David C., 47
daytime, 132
DDI, 14
d
eboguage
base de donn
ees DNS, 100
con guration PPP, 119
con guration UUCP, 173
d
el
egation
sous-domaines DNS, 32, 36
sous-r
eseau IP, 24
d
emon, voir daemon
/dev/cua*, 55{56
/dev/modem, 56
/dev/ttyS*, 55{56
device driver interface, voir DDI
dialogue
PPP, 117
SLIP, 107
UUCP, 177, 181
dip, 104{112
diphosts, 111
340 INDEX
diplogin, 111
diriger un courrier dans un chier, 231
discipline de ligne, 54, 102, 114
distant
acc
es chiers, 3
acc
es chiers, 139, 159
ex
ecution, 3
ex
ecution, 207
ex
ecution de commandes, 139
login, 5, 11
session, 139
session X11, 5
syst
eme de chiers, 162
distribution
courrier, 207
news, 265{267
DNS, 29{38
base de donn
ees, 34
con gurer le serveur, 88{100
conversion /etc/hosts, 100
cr
eation de zones, 37
d
eboguage base de donn
ees, 100
recherche, 32
requ^
ete, 32
requ^
etes inverses, 36{38
resource record, 34, 91
RR, voir DNS, resource record
serveurs de noms racine, 96, 99
time to live, 33, 92
ttl, voir DNS, time to live
utilitaires, 100
v
eri cation, 96
zone, 32{34, 36, 92
dnswalk, 100
Domain Name System, voir DNS
domaine
NIS, 146, 150
routage du courrier, 212
domaine in-addr.arpa, 36
domaines
premier niveau, 31
domainname, 62, 146
dotted quad, 20
Dugenou, Marcel, 111
| E |

echange
courrier, 207
news, 262, 263
Ekwall, Bjrn, 47
elm, 215{217
jeux de caract
eres nationaux, 216
email, voir courrier

emulateurs de terminaux, 53
ERAU, voir UART
Eriksson, Peter, 144
espace de nommage (DNS), 30
eth0 (interface Ethernet), 69
Ethernet, 6{7
adresse, 7, 21
autod
etection des cartes, 49{51
c^
ablage, 47
collision, 7
con guration, 69
con guration manuelle, 49
et adresse IP, 10
n, 6, 47
installation, 47
mode global, 77
pilotes Becker, 47
via port parall
ele, 47

eviter les boucles de courrier, 227
exporter un volume NFS, 164
exports, 164
| F |
FDDI, 7
chier hosts, 65
chier networks, 65
chier paths, 213{215
chier paths, 211
chiers de verrouillage, 56
et PPP, 116
et UUCP, 177
FidoNet, 53
nger, 133
rewall, 104
Flintstone, Fred, 1
forwarding
IP, 8, 44
INDEX 341
UUCP, 3
fourniture, News, 263
FQDN, 30
fstab, 60, 162
FTP, trouver les sources de Linux, 14,
61
| G |
gated, 27, 73, 122
g
en
erer un chier paths, 213
gestion centralis
eedu courrier,212,213
gestion de courrier centralis
ee, 209
getty, 191
GNU, licence publique g
en
erale, 311{
318
Gortmaker, Paul, 48
group.bygid, 153
group.byname, 153
| H |
ham radio, 8
Hankins, Greg, 53
HDB, voir UUCP, HDB
HDLC, 113
HoneyDanBer, voir UUCP, HDB
host, 1
host.conf, 84, 144, 156
hostcvt, 100
hosts, 65, 144
conversion en chiers BIND, 100
hosts.byaddr, 144
hosts.byname, 144, 152
hosts.equiv, 139
h^
ote, 1
HOWTO
Ethernet, 48
Serial, 53
UUCP, 170
| I |
ICMP, 28
Port Unreachable, 28
redirection, 28
IDA, voir sendmail, IDA
ifcon g, 66, 74
IMAP, 222
inetd, 131, 138, 224
inetd.conf, 132{134
inews, 267
initialisation du r
eseau, 59
INN, 262, 291, 296
installation
binaires r
eseau, 60
interconnexion de r
eseaux, 8, 24, 71
interface, 19, 39, 41, 46
con guration, 66
D-Link DE-600, 47
dummy, 74
Ethernet, 47, 69
loopback, 46, 67
masque r
eseau, 23, 63, 69, 76
netmask, 23, 76
PLIP, 47, 72
PPP, 47, 74, 116
SLIP, 47, 74
statistiques, 79
interface dummy, 74
internationalisation de elm, 216
Internet, 5
et internet, 8
routage du courrier, 209
s'y connecter, 101, 113, 115
Internet Control Message Protocol, 28
InterNet News (INN), 262
invalider ARP, 77
IP, 8{10
tinygrams, 45
adresse, 10
assignation, 62
et nom de machine, 29, 36
n
egociation sous PPP, 115, 120,
126
priv
ee, 62
adresse de di usion, 69, 76
adresse et nom d'h^
ote, 10
adresses, 20{21
adresses multicast, 77
appel t
el
ephonique, 101, 113
con guration des interfaces, 66
Control Protocol, 114, 119
342 INDEX
forwarding, 8, 44
interface, 41
masque r
eseau, 23, 63, 69, 76
m
etrique, 27
MTU, 76
multicast, 77
m
etrique, 76
netmask, 23, 76
Network Control Protocol (PPP),
114
passerelle, 8, 44, 71, 72
port parall
ele, voir PLIP
protocoles de routage, 27
r
eseaux, 20, 22, 36
routage, 22{28, 45, 71, 72
routage dynamique, 27
route par d
efaut, 21, 72
routing, 8
sous-r
eseau, 23{24, 36, 45, 71, 72
sur ligne s
erie, voir SLIP, 101, 113
table de routage, 25, 71, 78
IPCP, voir IP, Control Protocol
IPX, 46
IRQ, 41, 50
ISDN, 47
ISO-8859-1, 216
| J |
jeux de caract
eres dans elm, 216
junk (newsgroup), 268
| K |
Karr, Ronald S., 203
Kempen, Fred van, 5, 13
| L |
LAN, 4
Lapsley, Phil, 290
Latin-1 (jeu de caract
eres), 216
LCP, voirLink ControlProtocol(PPP)
lecteur de News
cr
eation des index, 296{298
lecteurs de News
con guration, 295
ls de discussions, 295, 296
nn, 298
tass, 296
tin, 296
trn, 297
Les Pierrafeu, 1
liaison point-
a-point, 72, 74,76, 81, 113
ligne s
erie
protection de caract
eres, 122
lilo, 49
Link Control Protocol (PPP), 113
lmail, 207
lo (interface loopback), 67
localhost, 67
loopback
adresse, 21
interface, 67
lots
de courrier, 207
de News, 265, 276{279
| M |
mail, voir courrier
emp^
echer le transport UUCP, 258
maintenance, syst
eme, 15
Marx, Groucho, 5
mat
eriel
communication s
erie, 53{58
contr^
ole de ux, 56, 57, 115
r
eseau, 39{52
messaged'erreurportmapper failure, 156
messaged'erreurNetwork Unreachable,
68
metamail, 217
m
etrique, routage,voirroutage,m
etrique
mgetty, 191
modem, vitesse, 55
montage
automatique, 166
d'un volume NFS, 162
lecture seule, 165
syst
eme de chiers proc, 60
mots de passe
et sessions distantes, 139
pour tout le r
eseau, 153{155
mountd, 164
INDEX 343
MRU, 123
mthreads, 297
MTU, 75, 76, 82
multim
edia, 203
MX (enregistrement DNS), 95, 209
| N |
Nagle, algorithme, 45
named, 83, 88{100
named.boot, 88{91
NCP, voir Network Control Protocols
Net-1, 13
Net-2d, 13
Net-2Debugged, 13
Net-2e, 14, 61
Net-3, 14, 61
Net-BSD, 14, 61
netstat, 77{80
Network Control Protocols, 114
news, 261{266
ajouter un groupe, 284
archivage des articles, 279
article, 262
distribution, 265, 267
distributions, 272

echange, 262{266
expiration, 299
expiration des articles, 266, 298
feed, 263
chier active, 266, 267
follow-up, 295
forums, 262
fourniture, 262{266
groupes, 262
history ( chier), 265, 267
ihave/sendme, 265
lecteur, voir lecteurs de News
limiter les groupes, 265
lots, 265, 268, 276
message ID, 265
message-ID, 267
messages de contr^
ole, 283
cancel, 283
checkgroups, 284
newgroup, 284
rmgroup, 284
sendsys, 285
senduuname, 285
version, 285
mise 
a jour chier active, 284
newsmaster, 271
NNTP, 265
nntpd, 289
pulling, 265, 289
pushing, 265, 289
r
eception, 271
spoule, 266
suppression vieux articles, 266
supprimer un groupe, 284
tricher, 290
Usenet, 262
version C, voir C News
newsmaster, 271
NFS, 159{167
automonteur, 166
d
epassement de temps, 163
exporter un volume, 164
exports, 164
limitations, 160
montage d'un volume, 162
montage en dur, 163
monter un volume, 160
r
eduire la taille des blocs, 162
serveur, 160, 164
utilisateurs et groupes, 164, 166
volume en lecture seule, 165
nfsd, 160, 164
NIS, 143{157
bases de donn
ees, 144
carte, 144{145, 147
cartes passwd, 153{156
client, 147{148, 150{157
code traditionnel, 156
cr
eation des cartes, 148
domaine, 146{147, 150
et le resolver, 84
et mots de passe shadow, 155
localiser le serveur, 146
s
ecurit
e, 146, 149, 156
serveur, 145{150
344 INDEX
surnom, 145
NIS+, 147
nn, 298
NNTP, 261, 273, 289
nntp access, 291
nntpd, 290
Noll, Curt Landon, 203
nom canonique, 34, 94
nom d'utilisateur, 271
nom de domaine, 30{32
d
efaut, 86
NIS et DNS, 62
nom de machine
adresse correspondante, 29
alias, 94
ambigu, 210
assignation, 61
canonique, 34, 94
d
etecter si pas quali 
e, 235
et nom de domaine, 30
obtenir d'apr
es l'adresse, 36
quali 
e, 30
recherche, 32, 96
r
esolution, 29, 65, 83, 143, 156
UUCP, 178
notation sur 4 quatre octets, 10
nslookup, 96{100
nsswitch.conf, 151{153
num
eros de protocoles, 136
NYS, 144{157
| O |
obtenir le code source, 14, 61
| P |
packet-radio, 21
PAD, 8
pages jaunes, voir NIS
PAP, 113, 124, 127{128
partage de chiers, 159
passer un courrier 
a une commande,
231
passerelle, 8, 24{25
con guration, 72
courrier, 209
IP, 44, 71
passwd, 144
real user names, 271
passwd.byname, 153
passwd.byuid, 153
pathalias, 211, 214{215
PC/TCP, compatibilit
e, 45
pilote
D-Link, 47
Ethernet, 47
ISDN, 47
PLIP, 51
PPP, 52, 114
SLIP, 52
pilote, s
erie, 53{58
ping, 68
PLIP, 51, 72
con guration manuelle, 51
routage, 81
plip1 (interface PLIP), 72
POP, 222
port, voir r
eseau, port
num
eros, 12
port parall
ele
Ethernet, 47
IP, 51
port s
erie
contr^
ole de ux mat
eriel, 56, 57
chier p
eriph
erique, 55
vitesse, 55
portmap, 138
portmapper, d
emon, 138
PPP, 10, 74, 101, 113{129
adresses IP, 120
assignationdynamique des adresses,
120
async map, 122
authenti cation, 124{128
compression de donn
ees, 114, 123
d
eboguage, 119
d
emon, 114
encodagecaract
eresde contr^
ole,122
et adresses IP, 115
chiers d'options, 116
chiers de verrouillage, 116
INDEX 345
MRU, 123
pilote, 114
proxy ARP, 121
routage, 81, 121{122
route par d
efaut, 116
script de connexion, 117{119
s
ecurit
e, 124
serveur, 128
utiliser CHAP, 124, 126{127
utiliser PAP, 124, 127{128
ppp0 (interface PPP), 74, 116
pppd, 114{129
.ppprc, 116
primaire (option BIND), 90
/proc/net, 60
programmes de communication, 53
promiscuous, voir Ethernet, mode glo-
bal
protocole, 2
AX.25, 8, 47
CSLIP, 10
Ethernet, 6
IP, voir IP
IPX, 46, 47
NNTP, 289
PPP, 10
SLIP, 10
TCP, 10
UDP, 11
UUCP, 195
X.25, 8
protocole de contr^
ole de liaison (PPP),
122{123
protocoles, 132
protocols, 135{137
proxy ARP, 73, 81, 121
PTR (enregistrement DNS), 95
p
eriph
erique dialout, 55
p
eriph
erique d'entr
ee, 55
p
eriph
erique de sortie, 55
| Q |
queue de courrier, 226
| R |
radio-amateurs, 8, 21
RARP, 21, 22, 45
rc.inet, 59, 66, 68, 164
rcp, 139
Reber, Tobias, 143
r
eception des news, 271
recherche d'adresses, 36
renvoi
courrier, 232, 233
requ^
etes inverses, 36{38
r
eseau, 1
adresse IP, 62
achage des connexions, 79
amor
cage, 59
commandes en r, 139
connection, 121
connexions, voir r
eseau, port
courrier, 221
inaccessible, 68
installation des binaires, 60
interconnexion,voirinterconnexion
de r
eseaux
interface, 19
interface de programmation, 12
Internet, 5
mots de passe, 139, 153, 156
news, 286
num
eros de port, 12
options du noyau, 43
port, 11{12
protocoles, 2
p
eriph
eriques, 39
r
esolution de noms, 156
services, voir port
synchronisationmots de passe, 143
TCP/IP, voir TCP/IP
transmission par paquets, 4
UUCP, 2
r
eseau local, 4
r
esolution des adresses, 21
resolv.conf, 86
resolver
avec un serveur de noms, 84
biblioth
eque, 84
con guration, 84{88
346 INDEX
abilit
e, 88
utilisation de NIS, 84
variables d'environnement, 85
resource record, voir DNS, resource re-
cord
restreindre l'acc
es root, 165
restriction d'acc
es, 134, 291, 293
.rhosts, 139
RIP, voir Routing Information Proto-
col
rlogin, 139
rmail, 188, 207
rnews, 188, 267, 278
routage
boucles de courrier, 227
courrier 
electronique, 209
datagrammes IP, voir IP, routage
d
emon, 27
dynamique, 27, 28, 73, 81, 122
m
etrique, 27
m
etrique, 75, 76
passerelle, 72
passerelle IP, 71
protocoles, 27
proxy ARP, 81
redirection ICMP, 28
smart host, 211
table, 25, 78
via PPP, 121
routage dynamique, 27
route, 66, 71, 82
route par d
efaut du courrier, 211
route, d
efaut, 21, 72, 116
routed, 27
Routing Information Protocol, 27, 73,
76
RPC, 137{139
correspondanceports/programmes,
138
num
eros de programmes, 137
rpc, 137
rpcinfo, 151
RR, voir DNS, resource record
RS-232, 56
rsh, 139
rsmtp, 207
RTS/CTS, 56, 115
rustine, 208
r
eseau
noms, 65
| S |
Salz, Rich, 291
scripts rc, 59
secondaire (option BIND), 90
s
ecurit
e, 112
commandes en r, 139
comptes UUCP, 192{194
Ethernet, 77
faux noms d'h^
otes, 84
NIS, 149, 156
NNTP, 290, 293
PPP, 118, 124{128
serveurs TCP, 133, 134
sessions distantes, 139
SLIP, 105
spoo ng, 84
syst
eme, 15
UUCP, 188{194
s
ecurit
e syst
eme, 15
sendbatches, 277
sendmail, 203, 237{260
alias, 248, 250
CF, 238{244, 251{252
courrier dans un chier, 248
DECnet, 250
deliver, 241
emplacement des chiers, 259
emp^
echer le transport UUCP, 258
forcer le courrier, 256
forcer le transport UUCP, 257
g
en
erationde sendmail.cf, 251{252
h^
ote relais, 243
IDA, 238
installation, 250
mailertable, 245
m
ethodes, 245, 246, 248, 257, 258
nom non quali 
e, 246, 248, 257,
258
nom quali 
e, 246, 248
INDEX 347
noms locaux, 242, 243
postmaster, 242, 248
programme courrier local, 241
queue, 258
relais, 256
routage, 247
domaine, 256
smart-host, 243
UUCP, 246, 249, 257, 258
running, 252
sendmail.cf, 237
site distant mal con gur
e, 256
site Internet, 244
site UUCP, 244
statistiques, 259
tables, 238, 243, 249, 254
tests, 252{256
UUCP, 243, 246, 257, 258
version, 250
vider la queue, 258
sendmail.cf, voir sendmail, sendmail.cf
s
erie Becker, 39, 47
serveur
inetd, 131{135
tcpd, 134{135
nfsd, 160
NIS, 145
NNTP, 289
sendmail, 252
UUCP, 191{194
ypserv, 145
serveur de noms, 32{34
authoritative, 34
autoritatif, 33, 34, 36
ayant autorit
e, 33, 34, 36
cache, 91
cache seulement, 34, 101
con guration, 88{100
esclave, 91
primaire, 33, 90
racine, 99
secondaire, 33, 90
synchronisation, 33
v
eri cation, 96
serveur de noms autoritatif, 33, 34, 92
serveur de noms cache seulement, 101
serveur de noms racine, 96
services, 12
bien connus, 12, 135
con guration, 131
et num
eros de port, 12
restriction d'acc
es, 16, 134
services, 132, 135{137
services.byname, 152
setserial, 57
site, 1
sl0 (interface SLIP), 74, 103
slattach, 102
SLIP, 10, 52, 54, 74, 101{112
initialisation par utilisateurs, 105
routage, 81
SLIPDISC, 102
smail, 203, 219{236
adresses locales, 231{234
alias, 233
avec un r
eseau local, 221{224
bo^
te aux lettres, 232
BSMTP, 220, 234
compilation, 226
con g le, 227
directors, 228
diriger un courrier dans un chier,
231
et SLIP/PPP, 230
chier con g, 220{221
chier con g le, 219
chier paths, 229
chier paths, 230
chiers de trace, 224
gestion du courrier d'un domaine,
222
listes de di usion, 234
modes de distribution, 226
noms locaux, 221
noms non quali 
es, 235
passerun courrier
a une commande,
231
postmaster, 227
probl
emes, 224
queue de courrier, 226
348 INDEX
renvoi, 232
routage, 228{231

eviter les boucles, 227
Internet, 230
smart host, 221
UUCP, 229, 230
UUCP ou SLIP, 230
routers, 228
SMTP, 223{224, 235
test de la queue, 226
transports, 228
utilitaires, 219
UUCP, 220{221,229,230,234{235
vider la queue, 227
smart host, 211
SMTP, 207
par lots, 188, 207
service, 223
SNARL, 45, 82
SOA (DNS record), 34
SOA (enregistrement DNS), 92
socket, 12
sous-domaine (DNS), 32, 36
sous-r
eseau (DNS), 63
sous-r
eseau (IP), 24, 45
sous-r
eseaux sont locaux, voir SARL45
Space.c, 49, 51
Spencer, Henry, 261
spoo ng, 84
spoule, 3, 171
Start of Authority, 34
Storm, Kim F., 298
synchronisation des serveurs de noms,
33
syslog, 119, 134, 166
syst
eme de chiers proc , 60
| T |
T'so, Theodore, 57
tass, 296
Taylor, Ian, 169
TCP, 10{11
programme wrapper, 134
UUCP, 187
TCP/IP, 4{13, 19{28
tcpd, 134{135
t
el
ephone, transfert de donn
ees par, 10
temps de propagation (IP), 68
test con guration r
eseau, 68, 70
TFTP, 133
tftp, 133
Th
ummler, Swen, 143
tin, 296
tinygrams, les 
eviter, 45
tripwire, 17
trn, 297
tty, 54{58
discipline de ligne, 54, 102, 114
t
el
ephone,transfertde donn
eespar,101,
113
| U |
UART
8250, 56
16450, 56
16550, 56
UDP, 11{12
Universit
e Groucho Marx, 5, 23
Urlichs, Matthias, 14
Usenet, 262
cartes, 211, 214
uucico, 173
UUCP, 2{4, 53, 169{201
alternates, 183
alternatives, 183
anonyme, 194
avec smail, 220
BNU, 169
calling out, 173
cartes, 211, 214
cartes UUCP, 178
comptes, 191
con guration serveur, 191{195
courrier, 188, 207, 210
cr
eer des comptes, 191{192
esclave, 172
et getty, 191
ex
ecution de commandes, 188
chier
con g, 180
INDEX 349
dial, 186
dialcode, 181
passwd, 192
port, 184
sys, 180
chiers de con guration, 174{177
chiers de verrouillage, 177
forwarding, 3
grades, 171, 184
handshake, 172
HDB, 169, 200
horaires d'appel, 183
hostname, 180
intervalles entre tentatives, 184
job, 171
lignes directes, 188
login, 177
ma^
tre, 172
modem, 184, 186{187
news, 268
News Usenet, 188
nom de machine, 178, 180
num
ero de t
el
ephone, 180
priorit
es, 171, 184
probl
emes, 198
protocole, 172, 195{197
optimisation, 196
s
election, 197
p
eriph
erique, 181, 184{186
relais, 190
restriction
ex
ecution de commandes, 188
horaires, 183
relais, 190
transfert de chiers, 189
r
epertoire de spoule, 171
script de dialogue, 181{183
s
ecurit
e des comptes, 192{194
serveur, 191
statistiques, 200
sur TCP/IP, 187
syst
eme distant, 180{184
Taylor, 169
test de s
equenced'appels, 172,193{
194
traces et d
eboguage, 199{201
transfert de chiers, 189
tra
cage et d
eboguage, 173
uucico, 172{173
v
eri cation, 179, 198
Version 2, 169
UUCP anonyme, 194
uugetty, 191
uux, 278
| V |
valider ARP, 77
v
eri cation
activit
e TCP, 79
atteindre un h^
ote, 68, 70
con guration de smail, 225
con guration r
eseau, 68, 70
connexions r
eseau, 79
interface Ethernet, 80
interface r
eseau, 67, 79
NIS, 149, 151
NNTP, 293
noms de machines, 96
param
etres tty, 57
ports s
erie, 57
PPP, 119
queue de courrier, 226
sendmail, 252{256
serveur de noms, 96
table de routage, 78
table de routage IP, 71
tables ARP, 80
UUCP, 179
vitesse, 55
viticulteurs virtuels, 61
| W |
wrapper, TCP, 134
| X |
X.25, 8
XDR, 137
| Y |
YP, voir NIS
350 INDEX
yp-linux, 143
yp.conf, 150{151
ypbind, 146
ypcat, 145, 151
yps, 143
ypserv, 145
Yutaka, Niibe, 51
| Z |
Zen, 262
zone, DNS, voir DNS, zone

cours-ADLINISTRATION DUN RXO SOUS LINUX.pdf

  • 1.
    Administration r eseau sousLinux Copyright c 1992-1995 Olaf Kirch
  • 2.
  • 3.
    UNIX est unemarque d epos ee de X/Open. Linux n'est pas une marque d epos ee, et n'a aucun lien avec UNIXTM ou X/Open. Copyright c 1995 Olaf Kirch Kattreinstr. 38, 64295 Darmstadt, Germany okir@monad.swb.de Adaptation fran caise Ren e Cougnenc (rene@renux.frmug.fr.net)
  • 4.
    TABLE DES MATI ERESv Table des mati eres Pr eface xvii 1 Introduction aux r eseaux 1 1.1 Historique : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 1 1.2 R eseaux UUCP : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 2 1.2.1 Comment utiliser UUCP : : : : : : : : : : : : : : : : : : : : : : 3 1.3 R eseaux TCP/IP : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 4 1.3.1 Introduction aux r eseaux TCP/IP : : : : : : : : : : : : : : : : 5 1.3.2 Ethernet : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 6 1.3.3 Autres types de mat eriel : : : : : : : : : : : : : : : : : : : : : : 7 1.3.4 Le protocole Internet : : : : : : : : : : : : : : : : : : : : : : : : 8 1.3.5 IP sur lignes s erie : : : : : : : : : : : : : : : : : : : : : : : : : 10 1.3.6 Le protocole TCP : : : : : : : : : : : : : : : : : : : : : : : : : 10 1.3.7 Le protocole UDP : : : : : : : : : : : : : : : : : : : : : : : : : 11 1.3.8 Les ports : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 12 1.3.9 Les sockets : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 12 1.4 Le r eseau sous Linux : : : : : : : : : : : : : : : : : : : : : : : : : : : : 13 1.4.1 Orientations du d eveloppement : : : : : : : : : : : : : : : : : : 14 1.4.2 O u se procurer le code : : : : : : : : : : : : : : : : : : : : : : : 14 1.5 Maintenance du syst eme : : : : : : : : : : : : : : : : : : : : : : : : : : 15 1.5.1 S ecurit e du syst eme : : : : : : : : : : : : : : : : : : : : : : : : 15
  • 5.
    vi TABLE DESMATI ERES 2 Le r eseau TCP/IP 19 2.1 Interfaces r eseau : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 19 2.2 Adresses IP : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 20 2.3 R esolution des adresses : : : : : : : : : : : : : : : : : : : : : : : : : : 21 2.4 Routage IP : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 22 2.4.1 R eseaux IP : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 22 2.4.2 Sous-r eseaux : : : : : : : : : : : : : : : : : : : : : : : : : : : : 23 2.4.3 Passerelles : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 24 2.4.4 La table de routage : : : : : : : : : : : : : : : : : : : : : : : : 25 2.4.5 Valeurs m etriques : : : : : : : : : : : : : : : : : : : : : : : : : 27 2.5 Le protocole ICMP : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 28 2.6 DNS: Le Domain Name System : : : : : : : : : : : : : : : : : : : : : : 29 2.6.1 R esolution de noms : : : : : : : : : : : : : : : : : : : : : : : : 29 2.6.2 Introduction du DNS : : : : : : : : : : : : : : : : : : : : : : : : 30 2.6.3 Recherche de noms avec le DNS : : : : : : : : : : : : : : : : : 32 2.6.4 Serveurs de noms : : : : : : : : : : : : : : : : : : : : : : : : : : 33 2.6.5 La base de donn ees DNS : : : : : : : : : : : : : : : : : : : : : : 34 2.6.6 Requ^ etes inverses : : : : : : : : : : : : : : : : : : : : : : : : : : 36 3 Con guration de l' equipement r eseau 39 3.1 P eriph eriques, pilotes, etc. : : : : : : : : : : : : : : : : : : : : : : : : : 39 3.2 Con guration du noyau : : : : : : : : : : : : : : : : : : : : : : : : : : 42 3.2.1 Options du noyau dans Linux 1.0 et au-del a : : : : : : : : : : : 43 3.2.2 Options du noyau a partir de Linux 1.1.14 : : : : : : : : : : : : 44 3.3 Tour d'horizon des pilotes r eseau de Linux : : : : : : : : : : : : : : : : 46 3.4 Installation Ethernet : : : : : : : : : : : : : : : : : : : : : : : : : : : : 47 3.4.1 C^ ablage Ethernet : : : : : : : : : : : : : : : : : : : : : : : : : : 47 3.4.2 Cartes support ees : : : : : : : : : : : : : : : : : : : : : : : : : 48 3.4.3 Autod etection des cartes Ethernet : : : : : : : : : : : : : : : : 49 3.5 Le pilote PLIP : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 51 3.6 Les pilotes SLIP et PPP : : : : : : : : : : : : : : : : : : : : : : : : : : 52
  • 6.
    TABLE DES MATI ERESvii 4 Con guration des ports s erie 53 4.1 Programmes de communication pour modems : : : : : : : : : : : : : : 53 4.2 Introduction aux p eriph eriques s erie : : : : : : : : : : : : : : : : : : : 54 4.3 Acc eder aux ports s erie : : : : : : : : : : : : : : : : : : : : : : : : : : 55 4.4 Les ports s erie : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 56 5 Con guration du r eseau TCP/IP 59 5.1 Montage du syst eme de chiers proc : : : : : : : : : : : : : : : : : : : 60 5.2 Installation des binaires : : : : : : : : : : : : : : : : : : : : : : : : : : 60 5.3 Un nouvel exemple : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 61 5.4 Assignation du nom de machine : : : : : : : : : : : : : : : : : : : : : : 61 5.5 Assignation des adresses IP : : : : : : : : : : : : : : : : : : : : : : : : 62 5.6 Cr eation de sous-r eseaux : : : : : : : : : : : : : : : : : : : : : : : : : : 63 5.7 R edaction des chiers hosts et networks : : : : : : : : : : : : : : : : : 65 5.8 Con guration des interfaces r eseau : : : : : : : : : : : : : : : : : : : : 66 5.8.1 L'interface loopback : : : : : : : : : : : : : : : : : : : : : : : : : 67 5.8.2 Interfaces Ethernet : : : : : : : : : : : : : : : : : : : : : : : : : 69 5.8.3 Routage par une passerelle : : : : : : : : : : : : : : : : : : : : 71 5.8.4 Con guration d'une passerelle : : : : : : : : : : : : : : : : : : : 72 5.8.5 L'interface PLIP : : : : : : : : : : : : : : : : : : : : : : : : : : 72 5.8.6 Les interfaces SLIP et PPP : : : : : : : : : : : : : : : : : : : : 74 5.8.7 L'interface dummy : : : : : : : : : : : : : : : : : : : : : : : : : 74 5.9 Tout sur ifcon g : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 74 5.10 La commande netstat : : : : : : : : : : : : : : : : : : : : : : : : : : : : 77 5.10.1 Achage de la table de routage : : : : : : : : : : : : : : : : : : 78 5.10.2 Achage des statistiques sur une interface : : : : : : : : : : : : 79 5.10.3 Achage des connexions : : : : : : : : : : : : : : : : : : : : : : 79 5.11 Test des tables ARP : : : : : : : : : : : : : : : : : : : : : : : : : : : : 80 5.12 L'avenir : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 82 6 Con guration du serveur de noms et du resolver 83 6.1 La biblioth eque resolver : : : : : : : : : : : : : : : : : : : : : : : : : : 84
  • 7.
    viii TABLE DESMATI ERES 6.1.1 Le chier host.conf : : : : : : : : : : : : : : : : : : : : : : : : : 84 6.1.2 Variables d'environnement du resolver : : : : : : : : : : : : : : 85 6.1.3 Con guration des recherches DNS |resolv.conf : : : : : : : : : 86 6.1.4 Fiabilit e du Resolver : : : : : : : : : : : : : : : : : : : : : : : : 88 6.2 Utilisation de named : : : : : : : : : : : : : : : : : : : : : : : : : : : : 88 6.2.1 Le chier named.boot : : : : : : : : : : : : : : : : : : : : : : : : 89 6.2.2 Les chiers de la base de donn ees : : : : : : : : : : : : : : : : : 91 6.2.3 R edaction des chiers de r ef erence : : : : : : : : : : : : : : : : 95 6.2.4 V eri cation de la con guration du serveur de noms : : : : : : : 96 6.2.5 Autres outils pratiques : : : : : : : : : : : : : : : : : : : : : : : 100 7 IP sur ligne s erie | SLIP 101 7.1 G en eralit es : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 101 7.2 Mode d'emploi de SLIP : : : : : : : : : : : : : : : : : : : : : : : : : : 102 7.3 Le probl eme des r eseaux IP priv es : : : : : : : : : : : : : : : : : : : : 104 7.4 Utilisation de dip : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 104 7.4.1 Exemple de script : : : : : : : : : : : : : : : : : : : : : : : : : 105 7.4.2 Manuel de r ef erence de dip : : : : : : : : : : : : : : : : : : : : 107 7.5 Utilisation en mode serveur : : : : : : : : : : : : : : : : : : : : : : : : 111 8 Le protocole Point- a-Point | PPP 113 8.1 Sous les P, le protocole : : : : : : : : : : : : : : : : : : : : : : : : : : : 113 8.2 PPP sous Linux : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 114 8.3 Utilisation de pppd : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 115 8.4 Les chiers d'options : : : : : : : : : : : : : : : : : : : : : : : : : : : : 116 8.5 Appel t el ephonique par le programme chat : : : : : : : : : : : : : : : : 117 8.6 D eboguer votre con guration PPP : : : : : : : : : : : : : : : : : : : : 119 8.7 Options de con guration IP : : : : : : : : : : : : : : : : : : : : : : : : 119 8.7.1 Choix des adresses IP : : : : : : : : : : : : : : : : : : : : : : : 120 8.7.2 Routage via une liaison PPP : : : : : : : : : : : : : : : : : : : 121 8.8 Protocole de contr^ ole de liaison : : : : : : : : : : : : : : : : : : : : : : 122 8.9 La s ecurit e sous PPP : : : : : : : : : : : : : : : : : : : : : : : : : : : : 124
  • 8.
    TABLE DES MATI ERESix 8.10 Authenti cation sous PPP : : : : : : : : : : : : : : : : : : : : : : : : : 124 8.10.1 CHAP ou bien PAP? : : : : : : : : : : : : : : : : : : : : : : : 124 8.10.2 Le chier de secrets CHAP : : : : : : : : : : : : : : : : : : : : 126 8.10.3 Le chier de secrets PAP : : : : : : : : : : : : : : : : : : : : : 127 8.11 Con guration d'un serveur PPP : : : : : : : : : : : : : : : : : : : : : 128 9 Aspects importants du r eseau 131 9.1 Le super serveur inetd : : : : : : : : : : : : : : : : : : : : : : : : : : : 131 9.2 Contr^ ole d'acc es par tcpd : : : : : : : : : : : : : : : : : : : : : : : : : 134 9.3 Les chiers services et protocols : : : : : : : : : : : : : : : : : : : : : : 135 9.4 RPC: appel de proc edure distante : : : : : : : : : : : : : : : : : : : : 137 9.5 Con guration des commandes en ( ( r ) ) : : : : : : : : : : : : : : : : : : 139 10 NIS: Network Information System 143 10.1 Initiation a NIS : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 144 10.2 NIS contre NIS+ : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 147 10.3 Le c^ ot e client de NIS : : : : : : : : : : : : : : : : : : : : : : : : : : : : 147 10.4 Installer un serveur NIS : : : : : : : : : : : : : : : : : : : : : : : : : : 148 10.5 S ecurit e du serveur NIS : : : : : : : : : : : : : : : : : : : : : : : : : : 149 10.6 Con guration d'un client NIS avec NYS : : : : : : : : : : : : : : : : : 150 10.7 Choisir les bonnes cartes : : : : : : : : : : : : : : : : : : : : : : : : : : 151 10.8 Utilisation des cartes passwd et group : : : : : : : : : : : : : : : : : : : 153 10.9 NIS et les mots de passe shadow : : : : : : : : : : : : : : : : : : : : : 155 10.10Utilisation du code NIS traditionnel : : : : : : : : : : : : : : : : : : : 156 11 NFS, le syst eme de chiers par r eseau 159 11.1 V eri cations avant usage : : : : : : : : : : : : : : : : : : : : : : : : : : 161 11.2 Monter un volume NFS : : : : : : : : : : : : : : : : : : : : : : : : : : 162 11.3 Les d emons NFS : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 164 11.4 Le chier exports : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 164 11.5 Montage automatique: l'automonteur : : : : : : : : : : : : : : : : : : 166
  • 9.
    x TABLE DESMATI ERES 12 Ma^ triser Taylor UUCP 169 12.1 Transferts UUCP et ex ecution a distance : : : : : : : : : : : : : : : : 171 12.1.1 Fonctionnement interne de uucico : : : : : : : : : : : : : : : : : 172 12.1.2 La ligne de commandes de uucico : : : : : : : : : : : : : : : : : 173 12.2 Fichiers de con guration : : : : : : : : : : : : : : : : : : : : : : : : : : 173 12.2.1 Petite introduction a Taylor UUCP : : : : : : : : : : : : : : : : 174 12.2.2 Informations a poss eder au pr ealable : : : : : : : : : : : : : : : 177 12.2.3 Le nom du site : : : : : : : : : : : : : : : : : : : : : : : : : : : 178 12.2.4 Fichiers de con guration Taylor : : : : : : : : : : : : : : : : : : 179 12.2.5 Options de con guration g en erale | le chier con g : : : : : : 180 12.2.6 Informations sur les sites UUCP voisins | le chier sys : : : : 180 12.2.7 P eriph eriques disponibles | le chier port : : : : : : : : : : : : 184 12.2.8 Appeler un num ero | le chier dial : : : : : : : : : : : : : : : 186 12.2.9 UUCP sur TCP : : : : : : : : : : : : : : : : : : : : : : : : : : 187 12.2.10Utiliser une connexion directe : : : : : : : : : : : : : : : : : : : 188 12.3 Les erreurs a eviter | s ecurit e sous UUCP : : : : : : : : : : : : : : : 188 12.3.1 Ex ecution de commandes : : : : : : : : : : : : : : : : : : : : : 188 12.3.2 Transferts de chiers : : : : : : : : : : : : : : : : : : : : : : : : 189 12.3.3 Relais : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 190 12.4 Con gurer votre syst eme en serveur UUCP : : : : : : : : : : : : : : : 191 12.4.1 Con guration de getty : : : : : : : : : : : : : : : : : : : : : : : 191 12.4.2 O rir des comptes UUCP : : : : : : : : : : : : : : : : : : : : : 191 12.4.3 Protection contre les escrocs : : : : : : : : : : : : : : : : : : : : 192 12.4.4 Soyez parano | le test de s equence d'appels : : : : : : : : : : 193 12.4.5 UUCP anonyme : : : : : : : : : : : : : : : : : : : : : : : : : : 194 12.5 Protocoles UUCP de bas niveau : : : : : : : : : : : : : : : : : : : : : : 195 12.5.1 Pr esentation des protocoles : : : : : : : : : : : : : : : : : : : : 195 12.5.2 Optimisation du protocole de transmission : : : : : : : : : : : 196 12.5.3 S election des protocoles : : : : : : : : : : : : : : : : : : : : : : 197 12.6 En cas de probl eme... : : : : : : : : : : : : : : : : : : : : : : : : : : : : 198 12.7 Les chiers de trace : : : : : : : : : : : : : : : : : : : : : : : : : : : : 199
  • 10.
    TABLE DES MATI ERESxi 13 Le courrier electronique 203 13.1 Qu'est-ce qu'un message? : : : : : : : : : : : : : : : : : : : : : : : : : 204 13.2 Comment le courrier est-il d elivr e? : : : : : : : : : : : : : : : : : : : : 207 13.3 Adresses electroniques : : : : : : : : : : : : : : : : : : : : : : : : : : : 208 13.4 Le routage du courrier : : : : : : : : : : : : : : : : : : : : : : : : : : : 209 13.4.1 Routage du courrier sur l'Internet : : : : : : : : : : : : : : : : 209 13.4.2 Routage du courrier dans le monde UUCP : : : : : : : : : : : : 210 13.4.3 M elanger UUCP et RFC 822 : : : : : : : : : : : : : : : : : : : 212 13.5 Format des cartes et du chier pathalias : : : : : : : : : : : : : : : : : 213 13.6 Con guration de elm : : : : : : : : : : : : : : : : : : : : : : : : : : : : 215 13.6.1 Con guration g en erale par elm.rc : : : : : : : : : : : : : : : : : 216 13.6.2 Jeux de caract eres nationaux : : : : : : : : : : : : : : : : : : : 216 14 Mise en route de smail 219 14.1 Con guration UUCP : : : : : : : : : : : : : : : : : : : : : : : : : : : : 220 14.2 Con guration r eseau : : : : : : : : : : : : : : : : : : : : : : : : : : : : 221 14.2.1 R edaction des chiers de con guration : : : : : : : : : : : : : : 222 14.2.2 Mise en route de smail : : : : : : : : : : : : : : : : : : : : : : : 223 14.3 Si le courrier ne passe pas : : : : : : : : : : : : : : : : : : : : : : : : : 224 14.3.1 Compilation de smail : : : : : : : : : : : : : : : : : : : : : : : 226 14.4 Modes de distribution du courrier : : : : : : : : : : : : : : : : : : : : : 226 14.5 Options diverses du chier con g : : : : : : : : : : : : : : : : : : : : : 227 14.6 Routage et distribution : : : : : : : : : : : : : : : : : : : : : : : : : : 228 14.7 Routage des messages : : : : : : : : : : : : : : : : : : : : : : : : : : : 228 14.7.1 La base de donn ees paths : : : : : : : : : : : : : : : : : : : : : 230 14.8 Gestion des adresses locales : : : : : : : : : : : : : : : : : : : : : : : : 231 14.8.1 Utilisateurs locaux : : : : : : : : : : : : : : : : : : : : : : : : : 232 14.8.2 Renvoi de courrier : : : : : : : : : : : : : : : : : : : : : : : : : 232 14.8.3 Les alias : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 233 14.8.4 Listes de di usion : : : : : : : : : : : : : : : : : : : : : : : : : 234 14.9 Transport par UUCP : : : : : : : : : : : : : : : : : : : : : : : : : : : : 234 14.10Transport par SMTP : : : : : : : : : : : : : : : : : : : : : : : : : : : : 235
  • 11.
    xii TABLE DESMATI ERES 14.11Quali cation de noms : : : : : : : : : : : : : : : : : : : : : : : : : : : 235 15 Sendmail+IDA 237 15.1 Introduction a Sendmail+IDA : : : : : : : : : : : : : : : : : : : : : : : 237 15.2 Aper cu des chiers de con guration : : : : : : : : : : : : : : : : : : : 238 15.3 Le chier sendmail.cf : : : : : : : : : : : : : : : : : : : : : : : : : : : : 238 15.3.1 Exemple de chier sendmail.m4 : : : : : : : : : : : : : : : : : : 239 15.3.2 Param etres couramment utilis es dans sendmail.m4 : : : : : : : 239 15.4 Pr esentation des tables de Sendmail+IDA : : : : : : : : : : : : : : : : 245 15.4.1 La table mailertable : : : : : : : : : : : : : : : : : : : : : : : : 245 15.4.2 La table uucpxtable : : : : : : : : : : : : : : : : : : : : : : : : : 246 15.4.3 La table pathtable : : : : : : : : : : : : : : : : : : : : : : : : : 247 15.4.4 La table domaintable : : : : : : : : : : : : : : : : : : : : : : : : 248 15.4.5 Le chier aliases : : : : : : : : : : : : : : : : : : : : : : : : : : 248 15.4.6 Tables rarement utilis ees : : : : : : : : : : : : : : : : : : : : : : 249 15.5 Installation de sendmail : : : : : : : : : : : : : : : : : : : : : : : : : : 250 15.5.1 Extraction de la distribution binaire : : : : : : : : : : : : : : : 250 15.5.2 G en eration du chier sendmail.cf : : : : : : : : : : : : : : : : : 251 15.5.3 Tests du chier sendmail.cf : : : : : : : : : : : : : : : : : : : : 252 15.5.4 Tests d'int egration de sendmail.cf et des tables : : : : : : : : : 254 15.6 Trucs et astuces du parfait petit administrateur : : : : : : : : : : : : : 256 15.6.1 Renvoyer le courrier a une machine relais : : : : : : : : : : : : 256 15.6.2 Forcer du courrier dans des sites mal con gur es : : : : : : : : : 256 15.6.3 Forcer le courrier a partir par UUCP : : : : : : : : : : : : : : : 257 15.6.4 Emp^ echer le courrier de partir par UUCP : : : : : : : : : : : : 258 15.6.5 Vider sur demande la queue de Sendmail : : : : : : : : : : : : 258 15.6.6 Obtenir des statistiques sur le courrier trait e : : : : : : : : : : 259 15.7 Coh erence des distributions binaires : : : : : : : : : : : : : : : : : : : 259 15.8 Pour en savoir plus... : : : : : : : : : : : : : : : : : : : : : : : : : : : : 260 16 Les News Usenet 261 16.1 L'histoire de Usenet : : : : : : : : : : : : : : : : : : : : : : : : : : : : 261
  • 12.
    TABLE DES MATI ERESxiii 16.2 Mais qu'est-ce que Usenet? : : : : : : : : : : : : : : : : : : : : : : : : 262 16.3 Comment les News sont-elles g er ees sur Usenet? : : : : : : : : : : : : 263 17 C News 267 17.1 L'injection des articles : : : : : : : : : : : : : : : : : : : : : : : : : : : 267 17.2 Installation : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 268 17.3 Le chier sys : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 271 17.4 Le chier active : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 275 17.5 Le traitement par lots (batching) : : : : : : : : : : : : : : : : : : : : : 276 17.6 Expiration des News : : : : : : : : : : : : : : : : : : : : : : : : : : : : 279 17.7 Fichiers divers : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 281 17.8 Les messages de contr^ ole : : : : : : : : : : : : : : : : : : : : : : : : : : 283 17.8.1 Le message cancel : : : : : : : : : : : : : : : : : : : : : : : : : 283 17.8.2 Les messages newgroup et rmgroup : : : : : : : : : : : : : : : : 284 17.8.3 Le message checkgroups : : : : : : : : : : : : : : : : : : : : : : 284 17.8.4 Les messages sendsys, version et senduuname : : : : : : : : : : 285 17.9 C News dans un environnement NFS : : : : : : : : : : : : : : : : : : : 286 17.10Outils et travaux de maintenance : : : : : : : : : : : : : : : : : : : : : 287 18 Description du protocole NNTP 289 18.1 Installation du serveur NNTP : : : : : : : : : : : : : : : : : : : : : : : 291 18.2 Restreindre les acc es NNTP : : : : : : : : : : : : : : : : : : : : : : : : 291 18.3 Authenti cation NNTP : : : : : : : : : : : : : : : : : : : : : : : : : : 293 18.4 Int egration de nntpd dans C News : : : : : : : : : : : : : : : : : : : : 293 19 Les lecteurs de News 295 19.1 Con guration de tin : : : : : : : : : : : : : : : : : : : : : : : : : : : : 296 19.2 Con guration de trn : : : : : : : : : : : : : : : : : : : : : : : : : : : : 297 19.3 Con guration de nn : : : : : : : : : : : : : : : : : : : : : : : : : : : : 298 A C^ able port parall ele pour PLIP 301 B Exemples de chiers de con guration pour smail 303
  • 13.
    xiv TABLE DESMATI ERES C Licence Publique G en erale GNU 311 C.1 Pr eambule : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 311 C.2 Stipulations et conditions pour copie, distribution et modi cation : : : 312 C.3 Comment appliquer ces directives : : : : : : : : : : : : : : : : : : : : : 317 D SAGE: La guilde des administrateurs syst eme 319 Glossaire 321 Bibliographie comment ee 329 Livres : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 329 Les ( ( HOWTO ) ) : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 333 Les ( ( HOWTO ) ), c'est quoi? : : : : : : : : : : : : : : : : : : : : : : : 333 Index des documents HOWTO : : : : : : : : : : : : : : : : : : : : : : 334 Les RFC : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 335
  • 14.
    TABLE DES FIGURESxv Table des gures 1.1 L'envoi d'un datagramme entre erdos et quark se fait en trois etapes. 9 2.1 Subdivision d'un r eseau de classe B : : : : : : : : : : : : : : : : : : : 24 2.2 Une partie de la topologie du r eseau a l'universit e Groucho Marx. : : 26 2.3 Une partie de l'espace de nommage. : : : : : : : : : : : : : : : : : : : 30 2.4 Un extrait du chier named.hosts pour le D epartement de Physique. : 35 2.5 Un extrait du chier named.hosts de l'universit e Groucho Marx. : : : 36 2.6 Un extrait du chier named.rev du sous-r eseau 12. : : : : : : : : : : : 37 2.7 Un extrait du chier named.rev du r eseau 149.76. : : : : : : : : : : : 37 3.1 Les relations entre les interfaces, les pilotes et le mat eriel. : : : : : : : 40 5.1 Les deux sous-r eseaux des brasseurs et viticulteurs. : : : : : : : : : : 64 6.1 Exemple de chier host.conf. : : : : : : : : : : : : : : : : : : : : : : : 85 6.2 Le chier named.boot de la machine kro. : : : : : : : : : : : : : : : : : 89 6.3 Le chier named.ca. : : : : : : : : : : : : : : : : : : : : : : : : : : : : 96 6.4 Le chier named.hosts. : : : : : : : : : : : : : : : : : : : : : : : : : : 97 6.5 Le chier named.local. : : : : : : : : : : : : : : : : : : : : : : : : : : : 97 6.6 Le chier named.rev. : : : : : : : : : : : : : : : : : : : : : : : : : : : : 98 7.1 Un exemple de script pour le programme dip. : : : : : : : : : : : : : : 106 9.1 Un exemple de chier /etc/inetd.conf. : : : : : : : : : : : : : : : : : : 133 9.2 Exemple de chier /etc/services (extrait). : : : : : : : : : : : : : : : : 136 9.3 Exemple de chier /etc/protocols. : : : : : : : : : : : : : : : : : : : : 137
  • 15.
    xvi TABLE DESFIGURES 9.4 Un extrait du chier /etc/rpc. : : : : : : : : : : : : : : : : : : : : : : 138 10.1 Exemple de chier nsswitch.conf. : : : : : : : : : : : : : : : : : : : : : 153 12.1 Interaction des chiers de con guration de Taylor UUCP. : : : : : : : 176 15.1 Exemple du chier de con guration gueuze.m4. : : : : : : : : : : : : : 240 15.2 Exemple de chier aliases. : : : : : : : : : : : : : : : : : : : : : : : : : 249 16.1 Circuit des News Usenet a l'universit e Groucho Marx. : : : : : : : : : 264 17.1 Flux des News par relaynews. : : : : : : : : : : : : : : : : : : : : : : : 269
  • 16.
    Pr eface xvii Pr eface Vous ^ etessur le point de vous embarquer dans une fantastique aventure: vous allez entrer dans le monde de Linux. Pour r esumer, Linux vous rappellera l'esprit qui r egnait dans les premiers jours de la micro-informatique, o u programmeurs g eniaux et bidouilleurs passionn es passaient des nuits blanches avec un oscilloscope et un fer a souder pour construire leur propre micro-ordinateur. Les temps ont chang e, les outils aussi; les d ebogueurs ont remplac e la soudure, mais l' etat d'esprit est toujours pr esent. Linux est n e de cette passion, et gr^ ace a lui vous disposez d'un syst eme UNIX pour votre micro-ordinateur, n'ayant rien a envier aux autres impl ementations. Malgr e ses origines, Linux a evolu e et n'est plus r eserv e aux programmeurs aver- tis. Chaque jour, des milliers de personnes, de toute culture informatique, adoptent ce syst eme d'exploitation pour toutes sortes d'applications techniques, scienti ques, educatives, et... bien s^ ur, pour le plaisir aussi. Mais comment Linux a-t-il pu devenir aussi perfectionn e et performant, aussi c el ebre et appr eci e, sans ^ etre d evelopp e par une equipe de professionnels surpay es? Le FBI devrait-il ouvrir une enqu^ ete sur ce myst ere? Que se cache-t-il l a-dessous? La coop eration. Tout le secret est l a. Linux est libre, dans tous les sens du terme. Cette id ee de libert e, partag ee par tous les programmeurs ayant r^ ev e de poss eder un jour leur propre syst eme UNIX, a permis de r ealiser des miracles, chacun apportant sa pierre a l' edi ce. Demandez a n'importe quel d eveloppeur pourquoi il passe des nuits enti eres a travailler sur les sources de Linux. Tous auront la m^ eme r eponse: la passion de programmer, et d'o rir le meilleur a la communaut e, librement, sans contraintes. Vous ne r ealisez peut-^ etre pas qu'en utilisant Linux, vous contribuez a l'essor du logiciel libre, dans le monde entier. Le libre acc es aux programmes, avec la possibilit e de les modi er et de les distribuer sans restrictions, est consid er epar beaucoup comme un droit fondamental de tout utilisateur d'ordinateur; au m^ eme titre que les droits de l'homme, la libert e, la recherche de plus gros disques durs, et le digestif apr es le caf e. Le logiciel d e nit comment sont utilis ees les machines, le syst eme d'exploitation en etant le tout premier exemple. En choisissant un syst eme, vous d eterminez la mani ere dont votre ordinateur fonctionnera, depuis l'interface utilisateur jusqu'aux pilotes de p eriph eriques.
  • 17.
    xviii Pr eface Linux al' enorme avantage d'^ etre d evelopp e par, et pour ses utilisateurs. Le march e du logiciel n'a aucune in uence sur ses orientations: ce sont les besoins des utilisateurs qui les d e nissent. Cette situation est bien plus saine que de tenter de conqu erir un ( ( march e) ), ou de r ealiser des pro ts. Cela ne convient sans doute pas a tout le monde, mais tous ceux qui l'utilisent peuvent avoir une in uence sur son avenir. Pour tout dire, Linux est votre syst eme d'exploitation personnel, domestique, bien a vous. Ce sera votre compagnon de tous les jours. Que trouver de mieux? Power to the people. Linux is here. Matt Welsh, coordinateur du groupe de documentation Linux, 9 novembre 1994.
  • 18.
    1 Chapitre 1 Introduction auxr eseaux 1.1 Historique La notion de r eseau est probablement aussi ancienne que le besoin de communiquer a distance. Transportons-nous a l'^ age de pierre, et imaginons que les hommes s'en- voyaient des messages en frappant sur des tambours ou autres instruments a percus- sion. Supposons que l'homme des cavernes A veuille inviter son copain B pour jouer a se lancer des cailloux, mais qu'ils habitent trop loin l'un de l'autre pour pouvoir entendre leurs signaux sonores respectifs. Quelles sont les solutions possibles? Il pour- rait 1) rendre visite a B, 2) prendre un tambour plus gros, ou 3) demander a C, qui habite a mi-chemin, de faire passer le message. Cette derni ere solution s'appelle un r eseau. Bien s^ ur, nous avons parcouru un long chemin depuis les occupations primaires et les p eriph eriques primitifs de nos lointains anc^ etres. De nos jours, nous poss edons des ordinateurs qui peuvent communiquer entre eux par l'interm ediaire d'une vaste toile d'araign ee de c^ ables, bres optiques, micro-ondes ou bien d'autres solutions de haute technologie, a n de pouvoir prendre rendez-vous pour le match de football de samedi prochain1. Dans la description qui va suivre, nous verrons les moyens et m ethodes mis en uvre, mais nous laisserons de c^ ot e les c^ ables et la manifestation sportive. Nous aborderons deux types de r eseaux dans ce guide: ceux bas es sur UUCP et ceux bas es sur TCP/IP. Ce sont des ensembles de protocoles et de programmes qui permettent de transf erer des donn ees entre deux ordinateurs. Dans ce chapitre, nous verrons les principes de base de chacun de ces r eseaux. Nous d e nissons un r eseau comme etant un ensemble d'h^ otes capables de communi- quer entre eux, souvent en s'appuyant sur les services d'un certain nombre d'autres h^ otes sp ecialis es qui relayent les donn ees entre les participants. Ces h^ otes sont tr es 1: Dont l'esprit original (voir ci-dessus) appara^ t encore de temps en temps en Europe.
  • 19.
    2 Chapitre 1.Introduction aux r eseaux souvent des ordinateurs, mais ce n'est pas obligatoire; ce peut ^ etre tout aussi bien des terminaux X ou des imprimantes intelligentes. Les petits ensembles d'h^ otes sont appel es sites. Toute communication est impossible sans le truchement de quelque sorte de langage, ou de code. Dans le monde des r eseauxd'ordinateurs,ces codes sont appel esprotocoles. Toutefois, n'associez pas cette notion aux divers langages ecrits, mais plut^ ot aux codes bien pr ecis d e nissant le comportement a adopter lors de rencontres ocielles entre chefs d' Etats, par exemple. Les protocoles utilis es dans les r eseaux informatiques ne sont pas autre chose que des r egles tr es strictes lors de l' echange de messages entre plusieurs h^ otes. 1.2 R eseaux UUCP UUCP est l'abr eviation de UNIX-to-UNIX Copy. C' etait a l'origine un ensemble de programmes destin es a transf erer des chiers par des lignes de communication s erie, plani er ces transferts, et lancer l'ex ecution de programmes sur les sites distants. Il a subi de profondes modi cations vers la n des ann ees 70, mais reste toujours spartiate quant aux services o erts. Son application principale r eside encore dans les r eseaux a longue distance b^ atis sur des liaisons t el ephoniques. UUCP fut cr e e aux laboratoires Bell en 1977, pour permettre a leurs di erents sites de d eveloppement UNIX de communiquer. Vers le milieu de l'ann ee 1978, ce r eseau reliait d ej a pr es de 80 sites, autorisant le courrier electronique et l'impression a distance, bien que sa plus grande utilisation f^ ut alors la distribution de nouveaux programmes et de corrections de bogues. Aujourd'hui, UUCP n'est plus con n e dans l'environnement UNIX: il en existe des impl ementations, libres ou commerciales, pour une grande vari et e de plates-formes, dont AmigaOS, DOS, le TOS Atari, etc. Le plus gros inconv enient des r eseaux UUCP est leur faible bande passante: d'une part, l' equipement t el ephonique limite la vitesse de la liaison a des valeurs assez faibles; et d'autre part, il s'agit rarement de connexions permanentes, chaque h^ ote appelant ses correspondants a intervalles r eguliers. Par cons equent, chaque fois qu'un courrier doit traverser un r eseau UUCP, il reste bloqu e sur le disque dur de chaque machine en attendant que la prochaine connexion soit etablie. Malgr e ces limitations, il existe encore de nombreux r eseaux UUCP en fonctionnement dans le monde entier, exploit es principalement par des amateurs, qui permettent a des particuliers d'obtenir un service pour un prix raisonnable. La raison principale de la popularit e d'UUCP, est son prix d erisoire en comparaison d'une connexion au ( ( gros c^ able Internet ) ) : il sut d'un modem, d'une impl ementation correcte du protocole, et d'un autre site UUCP vous fournissant le courrier et les News Usenet pour ne plus ^ etre isol e du monde.
  • 20.
    1.2. R eseaux UUCP3 1.2.1 Comment utiliser UUCP Le principe d'UUCP est tr es simple: comme son nom l'indique, il copie des chiers d'une machine vers une autre, mais il permet egalement d'e ectuer certaines actions sur le site distant. Supposons que votre machine poss ede un acc es a un h^ ote hypoth etique appel e renux, et que vous vouliez qu'il ex ecute la commande d'impression lpr pour vous. Vous pouvez taper la commande suivante pour imprimer ce livre sur renux2 : $ uux -r renux!lpr !netguide.dvi Cela fera que le programme uux, une commande de l'ensemble UUCP, plani era un job pour le site renux. Ce job consistera a prendre le chier netguide.dvi et le passer au programme lpr. L'option -r indique a uux de ne pas appeler imm ediatement le syst eme distant, mais de stocker cette requ^ ete jusqu' a ce qu'une connexion soit etablie. Cela s'appelle spouler3. UUCP permet aussi de transmettre commandes et chiers a travers plusieurs h^ otes, a condition que ces derniers l'autorisent. Supposons que renux soit en liaison UUCP avec groucho, qui archive de nombreuses applications UNIX. Pour t el echarger le chier tripwire-1.0.tar.gz vers votre site, vous taperiez la commande: $ uucp -mr renux!groucho!~/security/tripwire-1.0.tar.gz trip.tgz Le job cr e e ici demandera a renux de r ecup erer le chier sur la machine groucho et de l'envoyer a votre site, o u votre UUCP le recevra sous le nom trip.tgz; puis vous avertira par courrier de son arriv ee. Cette op eration s'e ectuera en trois etapes. Tout d'abord, votre site envoie le job a renux. La prochaine fois que renux etablira le contact avec groucho, il t el echargera le chier. En n, la derni ere etape sera le transfert entre renux et votre machine. De nos jours, la principale activit e des r eseaux UUCP consiste a transf erer le courrier electronique et les News Usenet. Le courrier electronique (E-mail en abr eg e) permet d' echanger des messages entre utilisateurs de sites distants, sans se pr eoccuper de savoir comment se connecter sur ces h^ otes. Le travail de routage entre votre machine et le site distant est enti erement r ealis e par le syst eme de courrier electronique. Dans un environnement UUCP, les messages sont g en eralement transport es en ex ecutant la commande rmail sur un h^ ote voisin, en passant l'adresse du destinataire et le contenu du courrier. Le programme rmail transmettra a son tour les donn ees a un autre site, et ainsi de suite jusqu' a ce qu'il atteigne la machine de destination. Nous reviendrons l a-dessus plus en d etail dans le chapitre 13. 2: Si vous utilisez bash, le GNU Bourne Again Shell, ou tout autre shell moderne, vous devrez encoder le point d'exclamation par une s equence d' echappement car c'est le caract ere d'historique. 3: Nous sommes d esol es, il s'agit bien de l'expression a utiliser en fran cais pour le spooling...
  • 21.
    4 Chapitre 1.Introduction aux r eseaux Les ( ( News ) ) peuvent ^ etre d ecrites comme un genre de messageries BBS4 distribu ees. Ce terme d esigne le plus souvent les News Usenet, qui constituent le plus grand r eseau d' echange de messages au monde, avec un nombre de sites connect es estim e a 120000. Les origines de Usenet remontent a 1979, o u apr es l'introduction d'UUCP avec le nouvel UNIX V7, trois etudiants imagin erent un syst eme d' echange d'informations au sein de la communaut e UNIX. Ils ecrivirent quelques scripts, qui form erent le tout premier syst eme de News. En 1980, ce r eseau etait form e de trois sites; duke, unc et phs, entre deux universit es de Caroline du Nord. Et Usenet grandit a partir de l a. Bien que con cu a l'origine autour de UUCP, de nos jours Usenet n'est plus transport e par ce seul type de r eseau. L'unit e d'information est l'article, qui peut ^ etre post e dans une hi erarchie de forums, ou newsgroups, dont le d ebit peut atteindre, a l'heure o u nous ecrivons ces lignes, plus de 100 m egaoctets par jour. Dans le monde UUCP, les News sont en g en eral transf er ees par paquets, en rassem- blant tous les articles des forums demand es dans un certain nombre de batches. Le site r ecepteur passe ces chiers au programme rnews, qui les d ecompacte et assure le traitement n ecessaire. En n, UUCP est egalement un protocole de choix pour de nombreux sites d'archivage qui o rent un acc es public par ligne t el ephonique ordinaire. On peut g en eralement s'y connecter en les appelant par UUCP, sous un nom d'utilisateur invit e, comme guest, nuucp ou encore uucp, pour t el echarger les chiers publics. Les mots de passe courants pour ce type d'acc es sont souvent simplement uucp, nuucp, parfois m^ eme aucun mot de passe n'est n ecessaire. 1.3 R eseaux TCP/IP Bien qu'UUCP puisse ^ etre un choix raisonnable pour des liaisons t el ephoniques a faible co^ ut, il est de nombreuses situations o u sa technique de routage des informations s'av ere trop rigide, inadapt ee; c'est le cas par exemple dans les r eseaux locaux, ou LAN5. Ceux-ci sont en g en eral constitu es d'un petit nombre de machines situ ees dans le m^ eme b^ atiment, voireau m^ eme etage,interconnect eesa n d'o rir un environnement de travail etendu, puissant et homog ene. Des exemples typiques sont le partage de chiers entre les di erents h^ otes, ou l'ex ecution d'applications partag eessur di erentes machines. Ce type d'utilisation n ecessite une approche totalement di erente du fonctionnement en r eseau. Au lieu de transf ererdes chiers entiers associ es a la description des t^ aches a ex ecuter, toutes les donn ees sont tron conn ees en petits morceaux (paquets), qui sont imm ediatement exp edi es a l'h^ ote destinataire, qui les r eassemble a l'arriv ee. Cette 4: Les BBS, ou Bulletin Board System, appel es egalement babillards au Qu ebec, sont des serveurs proposant di erents forums de messageries, ou conf erences, dans lesquels les utilisateurs d ebattent par ecrit de sujets divers. 5: LAN: Local Area Network.
  • 22.
    1.3. R eseaux TCP/IP5 m ethode s'appelle un r eseau a commutation de paquets. Entre autres choses, cela permet d'utiliser des applications interactives a travers le r eseau; le prix a payer est, bien entendu, une plus grande complexit e du code mis en uvre. La solution adopt ee sur les syst emes UNIX (et beaucoup d'autres sites non UNIX) est connue sous le nom de TCP/IP. Nous allons voir de quoi il retourne. 1.3.1 Introduction aux r eseaux TCP/IP TCP/IP est n e d'un projet de recherche au sein du United States Defense Advanced Research Projects Agency (DARPA), en 1969. Le r eseau exp erimental ARPANET devint op erationnel en 1975, apr es avoir prouv e son succ es. En 1983, la nouvelle suite de protocoles TCP/IP fut adopt ee comme standard, et tous les h^ otes du r eseau durent alors l'utiliser. Lorsque ARPANET nit par gran- dir et se transformer en Internet (ARPANET en lui-m^ eme ayant cess e d'exister en 1990), l'usage de TCP/IP s' etait d ej a etendu bien au-del a de ce seul Internet. Les r e- seaux locaux UNIX en sont l'exemple notoire, mais l'av enement des communications t el ephoniques num eriques telles qu'ISDN6, lui promet l a aussi un bel avenir. Pour prendre un exemple concret tout au long des explications qui vont suivre, nous imaginerons l'universit e Groucho Marx (UGM), situ ee quelque part au pays de Fred- land. La plupart des laboratoires ont leur propre r eseau local, d'autres en ont un en commun et certains en comptent plusieurs. Ils sont tous interconnect es et reli es a l'Internet par une unique ligne a haut d ebit. Supposons que votre syst eme Linux s'appelle erdos et soit connect e au r eseau local de machines UNIX du D epartement de Math ematiques. Pour acc eder a un h^ ote du D epartement de Physique, disons quark, vous taperez la commande suivante: $ rlogin quark.physics - Universite Groucho Marx - Bienvenue au departement physique (ttyq2) login: A l'invite login, vous entrez alors votre nom d'utilisateur, par exemple dugenou, puis votre mot de passe. Vous obtenez alors un shell sur la machine quark, exactement comme si vous etiez devant la console de cet ordinateur. Votre travail termin e, en sor- tant de ce shell vous revenez a l'invite de votre propre machine. Vous venez d'utiliser l'une des applications interactives instantan ees o ertes par TCP/IP: le login distant. Lors de votre session sur quark, vous pouvez avoir besoin d'utiliser une application graphique sous X Window, par exemple un pr evisualiseurPostScript. Vous devez alors indiquer a ce programme que ses fen^ etres doivent s'acher sur votre ecran, et non sur 6: ISDN correspond a l' etranger a ce que nous appelons RNIS en France (r eseau num erique a int egration de services), commercialis e sous le nom de NUM ERIS.
  • 23.
    6 Chapitre 1.Introduction aux r eseaux celui de la machine sur laquelle il s'ex ecute. Cela se fait en positionnant la variable d'environnement DISPLAY: $ export DISPLAY=erdos.maths:0.0 Si maintenant vous lancez votre application, elle contactera votre serveur X au lieu de celui de quark, et tout s'achera sur votre propre ecran. Bien s^ ur, il va de soi que vous devez d ej a travailler sous X11 sur votre machine erdos. En r ealit e, TCP/IP permet a quark et erdos de s' echanger les paquets X11 a n de vous donner l'illusion d'^ etre sur un syst eme unique. Vous constatez ici que le r eseau est totalement transparent. Une autre application tr es importante rendue possible par TCP/IP s'appelle NFS, Network File System (syst eme de chiers par r eseau). Il s'agit d'une autre mani ere de rendre le r eseau transparent, qui vous permet litt eralement de monter des hi erar- chies de r epertoires depuis d'autres h^ otes, de telle mani ere qu'elles vous apparaissent comme des syst emes de chiers locaux. Par exemple, tous les r epertoires personnels des utilisateurs peuvent ^ etre situ es sur un serveur central depuis lequel chaque h^ ote du r eseau monte cette arborescence. Le r esultat est que chaque utilisateur peut em- ployer n'importe quelle machine en se retrouvant, quoi qu'il arrive, dans le m^ eme r epertoire. De m^ eme, il est possible de n'installer des applications tr es gourmandes en place disque (comme TEX) que sur un seul ordinateur et d'exporter ces r epertoires pour que les autres h^ otes puissent s'en servir. Nous reviendrons plus en d etail sur NFS dans le chapitre 11. Bien s^ ur, ce ne sont que quelques exemples simples de ce que vous pouvez r ealiser gr^ ace aux r eseaux TCP/IP; leurs possibilit es ne sont limit ees que par l'imagination. Nous allons maintenant regarder d'un peu plus pr es le fonctionnement de TCP/IP. Vous comprendrez ainsi comment et pourquoi con gurer votre machine. Nous com- mencerons par l' equipement mat eriel n ecessaire, et petit a petit nous guiderons vos premiers pas. 1.3.2 Ethernet L' equipement mat eriel le plus utilis e pour la r ealisation de r eseaux locaux est ce que l'on appelle l'Ethernet. Il consiste en un simple c^ able coaxial, sur lequel est connect e chaque h^ ote par l'interm ediaire de connecteurs, ou de bo^ tiers electroniques nomm es transceivers. Les r eseaux Ethernet sont extr^ emement peu co^ uteux et simples a instal- ler, et leur vitesse de transfert etant de 10 m egabits par seconde, ils rencontrent un succ es toujours grandissant. Il existe trois cat egories d'Ethernet: n, gros, et paire torsad ee. Les deux premiers utilisent un c^ able coaxial, qui di ere dans sa taille et la mani ere de s'y connecter. L'Ethernet n utilise des connecteurs ( ( BNC ) ) en ( ( T ) ), que vous pouvez ins erer au milieu du c^ able r eseau et brancher sur la prise pr evue a cet e et a l'arri ere de l'ordi- nateur. Le gros Ethernet s'utilise en faisant un petit trou dans le c^ able et en connec- tant un transceiver par l'interm ediaire d'une ( ( pince vampire ) ). Ces bo^ tiers peuvent
  • 24.
    1.3. R eseaux TCP/IP7 supporter un ou plusieurs h^ otes. Ces deux variantes supportent respectivement des distances d'utilisation de 200 et 500 m etres, d'o u leurs d enominations: 10base-2 et 10base-5. La paire torsad ee utilise deux ls de cuivre ordinaires et n ecessite un bo^ tier additionnel appel e hub; elle est connue sous le nom de 10base-T. Bien que rajouter un h^ ote sur un c^ able Ethernet n soit un peu g^ enant, cela n'ar- r^ ete pas le r eseau: le service est juste interrompu pendant un moment tr es court, le temps de couper le c^ able (en d ebranchant une prise s'il est bien con cu) a n d'ins e- rer le connecteur n ecessaire. Cette op eration ne prend que quelques secondes, au pis quelques minutes. La majorit e des utilisateurs pr ef erent l'Ethernet n pour des raisons economiques; on trouve des cartes pour PC a partir de 300 francs et le c^ able ne co^ ute que quelques dizaines de centimes le m etre. Toutefois, pour de grosses installations, le gros Ethernet est beaucoup plus appropri e; il n'est par exemple pas n ecessaired'interrompre le tra c quelques secondes pour connecter une nouvelle machine sur le r eseau. La longueur de c^ able maximale est l'un des principaux inconv enients de la technologie Ethernet. Toutefois, on peut relier plusieurs segments par l'interm ediaire de r ep eteurs, ponts ou routeurs. Les r ep eteurs copient simplement les signaux entre plusieurs tron- cons a n qu'ils apparaissent comme un unique c^ able Ethernet. En raison de la vitesse n ecessaire, il ne peut pas y avoir plus de quatre r ep eteursentre deux h^ otes quelconques du r eseau. Les ponts et routeurs sont beaucoup plus sophistiqu es: ils analysent les donn ees re cues et ne les retransmettent que lorsque la machine destinataire n'est pas situ ee sur l'Ethernet local. L'Ethernet se comporte comme un bus, o u chaque h^ ote peut envoyer des paquets (ou trames) pouvant atteindre 1500 octets vers une autre machine du m^ eme r eseau. Chaque ordinateur poss ede une adresse unique au monde form ee de 6 octets, inscrite dans la carte Ethernet lors de sa fabrication. Ces adresses sont g en eralement ach ees comme une s equence de nombres hexad ecimaux sur deux digits, s epar es par un deux- points, comme aa:bb:cc:dd:ee: . Une trame envoy ee par une station est vue par toutes les autres, mais seule la machine destinataire l'extrait et l'utilise. Si deux h^ otes tentent d'envoyer un paquet au m^ eme moment, il se produit une collision, dans ce cas les deux machines abandonnent l'envoi et recommencent quelques instants plus tard. 1.3.3 Autres types de mat eriel Dans les tr es grosses installations r eseau, l'Ethernet n'est g en eralement pas le seul support utilis e. A l'universit e Groucho Marx, chaque r eseau local est reli e a la dorsale du campus (backbone), qui est une bre optique utilisant FDDI (Fiber Distributed Data Interface). FDDI utilise une approche totalement di erente pour transmettre les donn ees, qui consiste a di user un certain nombre de jetons, chaque station n' etant alors autoris ee a emettre une trame que si elle capture un jeton. Le principal avantage de FDDI est la vitesse, pouvant atteindre 100 Mbps, ainsi qu'une longueur de c^ able
  • 25.
    8 Chapitre 1.Introduction aux r eseaux allant jusqu' a 200 km. Pour de tr es longues distances, on utilise fr equemment un autre type de transport, bas e sur un standard appel e X.25. Beaucoup de r eseaux utilisent ou o rent ce service; on peut citer Tymnet aux Etats-Unis, Datex-P en Allemagne, ou Transpac en France. X.25 n ecessite un equipement sp ecial appel e PAD (Assembleur/D esassembleur de paquets). X.25 d e nit un ensemble de protocoles qui lui sont propres, mais qui sont n eanmoins utilis es couramment pour relier des r eseaux utilisant TCP/IP ou tout autre protocole. Comme les trames IP ne peuvent pas ^ etre converties de fa con simple en paquets X.25, la m ethode employ ee est l'encapsulation. Chaque paquet IP est encapsul e dans une trame X.25 et envoy e sur le r eseau. Tr es souvent, les radio-amateurs utilisent leur equipement pour relier leurs machines en r eseau par ondes hertziennes; il s'agit du packet radio (ou ham radio). Le protocole utilis e s'appelle AX.25, et est d eriv e de X.25. D'autres techniques mettent en uvre des liaisons s eries lentes mais tr es economiques pour acc eder au r eseau par ligne t el ephonique. L a encore, d'autres protocoles de trans- mission de paquets sont employ es, comme SLIP ou PPP, que nous d ecrirons plus loin. 1.3.4 Le protocole Internet Bien s^ ur, vous ne voudriez pas d'un r eseau limit e a un simple brin d'Ethernet. L'id eal serait que vous puissiez vous connecter partout, quel que soit le mat eriel utilis e ou le nombre de sous-r eseaux composant l'installation. L'universit e Groucho Marx par exemple, poss ede plusieurs r eseaux locaux interconnect es. Le D epartement de Math e- matiques en a deux: le premier reliant les ordinateurs puissants pour les enseignants et chercheurs, le second, plus lent et moins bien equip e, destin e aux etudiants. Tous deux sont reli es a la dorsale FDDI du campus. Cette connexion est g er ee par un h^ ote d edi e que l'on appelle alors passerelle; son r^ ole est de copier les paquets entrants et sortants entre les r eseaux Ethernet et la bre optique de l'universit e. Par exemple, si vous ^ etes au D epartement Math ematiques et que vous d esirez acc eder a la machine quark du D epartement de Physique depuis votre syst eme Linux, les programmes r eseau ne peuvent pas envoyer directement les paquets a destination car quark n'est pas sur le m^ eme Ethernet. Les paquets seront donc envoy es a la passerelle qui fera le relais. Celle-ci (appelons-l a sophus) passera les trames a la passerelle du D epartement de Physique (niels) par l'interm ediaire de la dorsale, et niels les d elivrera a la machine destinataire. Le parcours des donn ees entre erdos et quark est montr e dans la gure 1.1. Cette fa con de diriger les donn ees vers leur destination s'appelle le routage, et dans ce contexte, les paquets sont souvent appel es datagrammes. Pour simpli er les choses, l' echange des datagrammes est g er e par un unique protocole ind ependant du mat eriel utilis e: IP, ou Internet Protocol. Nous d ecrirons plus en d etail IP et le routage dans le chapitre 2, page 19.
  • 26.
    1.3. R eseaux TCP/IP9 quark niels 2 sophus erdos R eseau Ethernet du D epartement de Physique D epartement Math ematiques R eseau Ethernet du Dorsale bre optique du campus 1 3 Fig. 1.1 - L'envoi d'un datagramme entre erdos et quark se fait en trois etapes.
  • 27.
    10 Chapitre 1.Introduction aux r eseaux Le b en e ce apport e par IP est de faire appara^ tre des r eseaux physiquement di erents en un seul r eseau homog ene. Cela se nomme l'interconnexion de r eseaux, et le ( ( m eta- r eseau ) ) r esultant est appel e un internet. Notez bien la subtilit e entre un internet et l' Internet. Ce dernier terme est le nom ociel d'un internet mondial particulier. Bien s^ ur, IP n ecessite aussi une m ethode d'adressage ind ependante du mat eriel. Pour ce faire, on assigne a chaque h^ ote un nombre unique sur 32 bits, appel e l'adresse IP. Une adresse IP est g en eralement not ee sous la forme de quatre nombres d ecimaux, un pour chaque portion de 8 bits, s epar es par des points. Par exemple, quark pourrait avoir une adresse IP de 0x954C0C04, qui serait alors ecrite 149.76.12.4; ce format est connu sous le nom evident de notation sur 4 octets, vous verrez aussi tr es souvent l'appellation anglaise dotted quad. Vous noterez que nous avonsmaintenant trois types d'adresses di erents: tout d'abord le nom d'h^ ote, comme quark, puis les adresses IP, et en n les adresses mat erielles, les 6 octets de l'interface Ethernet. Toutes doivent ^ etre li ees, de sorte que lorsque vous tapez rlogin quark, la partie logicielle du r eseau puisse obtenir l'adresse IP de quark; et quand IP d elivre des donn ees a l'Ethernet du D epartement de Physique, il puisse d eterminer a quelle adresse mat erielle correspond cette adresse IP. Nous verrons comment tout cela est r ealis e dans le chapitre 2. Pour l'instant, il vous sura de savoir que ces etapes se nomment la r esolution de noms, pour ce qui est de faire correspondre les noms d'h^ otes en adresses IP, et r esolution d'adresses, pour la correspondance de cette derni ere en adresse mat erielle. 1.3.5 IP sur lignes s erie Sur des liaisons s erie, on utilise fr equemment un standard ( ( de fait) ) connu sous le nom de SLIP, Serial Line IP. CSLIP (Compressed SLIP) en est une am elioration; il e ectue une compression des en-t^ etes IP pour tirer un meilleur parti du d ebit relativement faible o ert par une ligne s erie7. PPP, ou Point-to-Point Protocol, est un protocole di erent destin e au m^ eme usage; il est plus evolu e que SLIP. Son principal avantage est de ne pas ^ etre limit e au transport de datagrammes IP, car il a et e con cu pour transporter tout type de paquets. 1.3.6 Le protocole TCP Mais pouvoir envoyer des paquets d'une machine a l'autre n'est pas tout. Si vous vous connectez sur quark, vous aurez besoin d'une connexion able entre votre processus rlogin sur erdos et le shell lanc e sur quark. Par cons equent, les informations envoy ees et re cues devront ^ etre tron conn ees en paquets par l' emetteur, et r eassembl ees en un ux de caract eres par le r ecepteur. Bien que paraissant tr es simple, cette op eration entra^ ne un certain nombre de t^ aches complexes. 7: SLIP est d ecrit dans le RFC 1055, et CSLIP dans le RFC 1144.
  • 28.
    1.3. R eseaux TCP/IP11 Il est tr es important de savoir que IP, par conception, n'est pas un protocole able. Supposons que dix personnes, sur votre r eseau Ethernet, soient en train de t el echarger la derni ere version de XFree86 depuis le serveur ftp de GMU. Le tra c g en er e peut alors devenir trop important pour la passerelle, si elle est trop lente ou manque de m emoire. Si a ce moment, vous envoyez un paquet a destination de quark, sophus pourrait se trouver a cours de ressources pendant quelques instants et ne pas pouvoir traiter vos donn ees. IP r esout ce probl eme d'une fa con tr es simple: il elimine le paquet, qui est irr em ediablementperdu. Par cons equent, la responsabilit e de v eri er l'int egrit e des donn ees transmises, et de les retransmettre en cas d'erreur est celle des h^ otes en communication. Ce r^ ole est assur e par un autre protocole: TCP, ou Transmission Control Protocol, qui cr ee un service able par-dessusIP, en prenant en charge le contr^ ole de la transmission. La propri et e la plus importante de TCP est d'utiliser IP a n de donner l'illusion d'une simple connexion entre les deux processus distants, de mani ere a ce qu'il n'y ait pas a se pr eoccuper du routage des donn ees. Une connexion TCP fonctionne un peu comme un tube bidirectionnel dans lequel chaque programme peut lire et ecrire. Vous pouvez l'imaginer comme une conversation t el ephonique, par exemple. TCP identi e chaque bout d'une telle connexion par les adresses IP des h^ otes concer- n es, et un num ero de port sur chacun d'eux. Les ports peuvent ^ etre vus comme des points d'attache pour les connexions r eseau. En prenant encore une fois le t el ephone comme exemple, on pourrait comparerles adresses IP aux codes r egionaux(un num ero par ville), et les ports aux num eros individuels (un num ero par abonn e)8. Dans notre exemple de rlogin, l'application cliente (rlogin) ouvre un port sur erdos et se connecte au port 513 du syst eme quark, dont le serveur rlogind est a l' ecoute. Il s' etablit alors une connexion TCP. Par l'interm ediaire de cette connexion, rlogind e ectue la proc edure d'autorisation d'acc es, puis lance l'ex ecution du shell. L'entr ee et la sortie standard de ce dernier sont redirig ees vers la connexion TCP de sorte que tout ce que vous tapez sur votre machine dans rlogin soit envoy e au ux TCP et aboutisse a l'entr ee standard du shell distant. 1.3.7 Le protocole UDP Bien s^ ur, TCP n'est pas le seul protocole utilisateur sur un r eseau TCP/IP. Bien que parfait pour des utilisations comme rlogin, la surcharge induite le rend peu ecace pour des applications comme NFS, qui utilise plut^ ot le protocole UDP, ou User Data- gram Protocol. Tout comme TCP, il permet a un programme de contacter un service sur un port donn e de la machine distante, mais il n' etablit aucune connexion. UDP est utilis e pour envoyer simplement des paquets, d'o u son nom. Supposons que vous ayez mont e le r epertoire TEX de galois, le serveur NFS central du d epartement, et que vous d esiriez voir un document d ecrivant le mode d'emploi de L aTEX. Vous appelez votre editeur de texte, qui commence par lire la totalit e du chier. 8: La num erotation t el ephonique est faite di eremment en France.
  • 29.
    12 Chapitre 1.Introduction aux r eseaux Toutefois, etablir une connexion TCP avec galois, envoyer le chier, puis d econnecter prendrait bien trop de temps. A la place, une requ^ ete est envoy ee a galois, qui envoie alors le chier dans deux ou trois paquets UDP, ce qui est bien plus rapide. Mais UDP n'est pas con cu pour g erer la perte ou la corruption des donn ees; c'est a l'application, NFS dans le cas pr esent, de prendre en charge ces probl emes eventuels. 1.3.8 Les ports Les ports sont, en quelque sorte, des points d'attache logiciels pour les connexions r eseau. Si une application d esire o rir un certain service, elle s'attache a un port et attend les clients (on dit aussi qu'elle ecoute le port). Un client voulant utiliser ce service alloue alors un port sur sa machine locale, puis se connecte a celui de l'application serveur sur le syst eme distant. Une fois qu'une connexion est etablie entre le client et le serveur, une des caract e- ristiques importantes des ports est qu'une autre copie du serveur peut s'y attacher et continuer ainsi l' ecoute dans l'attente d'autres clients. Cela permet par exemple, plusieurs sessions rlogin concurrentes sur la m^ eme machine distante, toutes utilisant le port 513. TCP est capable de di erencier les connexions car elles proviennent toutes de di erents ports ou h^ otes. Par exemple, si vous avez deux rlogin sur quark depuis erdos, le premier client utilisera le port local 1023, et le second le 1022. Tous deux se connecteront n eanmoins au m^ eme port 513 sur quark. Cet exemple montre l'utilisation des ports en tant que points de rencontre, o u les serveurs donnent rendez-vous aux clients d esirant un service particulier. A n que ces clients sachent quel num ero de port contacter, les administrateurs des di erents syst emes connect es doivent se mettre d'accord sur leur assignation. En ce qui concerne les services les plus couramment utilis es, comme rlogin, ces num eros doivent ^ etre administr es de mani ere centrale: c'est le r^ ole de l'IETF (Internet Engineering Task Force), qui publie r eguli erement un RFC intitul e Assigned Numbers. Ce document d ecrit, entre autres choses, les num eros de port assign es aux services les plus connus utilis es mondialement. Linux utilise, comme beaucoup d'autres syst emes, un chier nomm e /etc/services, qui contient la correspondance entre les noms de ces services et les num eros de ports qui leur sont associ es. Bien que les connexions TCP et UDP se basent sur les ports, il faut noter que ces num eros n'entrent pas en con it. Comprenez par l a que le port TCP 513, par exemple, est di erent du port UDP 513: ils correspondent en pratique a rlogin (TCP) et rwho (UDP). 1.3.9 Les sockets Dans les syst emes d'exploitation UNIX, la partie logicielle responsable des t^ aches et des protocoles que nous venons de d ecrire succinctement fait g en eralement partie du noyau; Linux ne fait pas exception a la r egle. L'interface de programmation r eseau
  • 30.
    1.4. Le r eseausous Linux 13 la plus courante dans le monde UNIX est la biblioth eque de sockets de Berkeley. Ce nom, qui dans un contexte technique signi e ( ( prise ) ), ou ( ( connecteur ) ) en anglais, provient de l'analogie courante faite entre les ports et des prises, sur lesquels on vient se ( ( brancher ) ) pour r ealiser la connexion. Cette biblioth eque o re la fonction bind pour sp eci er un h^ ote distant, un protocole de transport, et un service auquel un programme peut se connecter ou bien ecouter (gr^ ace aux fonctions connect, listen et accept). Elle est assez g en eraliste, en ce sens qu'elle contient non seulement une classe de sockets TCP/IP (AF INET), mais egalement une classe qui permet les connexions locales a la machine (les sockets AF UNIX). Quelques impl ementations comportent m^ eme d'autres classes, comme le protocole XNS (Xerox Networking System) ou X.25. Sous Linux, la biblioth eque de sockets est partie int egrante de la biblioth eque C standard, libc. A l'heure actuelle, elle ne supporte que AF INET et AF UNIX, mais d'autres protocoles sont en d eveloppement et appara^ tront sans doute dans l'avenir. 1.4 Le r eseau sous Linux Etant le fruit de d eveloppeurs du monde entier, Linux n'aurait jamais pu voir le jour sans le r eseau mondial. Aussi, il n'est pas surprenant que tout au d ebut, plusieurs personnes aient entrepris de lui apporter les possibilit es r eseau n ecessaires. D es les toutes premi eres versions, il etait d ej a possible d'utiliser UUCP, et le travail sur les couches TCP/IP d ebuta en automne 1992, lorsque Ross Biro et quelques autres cr e erent ce qui est maintenant connu sous le nom de Net-1. Ross dut cesser ses activit es de d eveloppement pour Linux au mois de mai 1993, et Fred van Kempen commen ca a travailler sur une nouvelle impl ementation, r e ecrivant de grandes parties du code. Cette etape prit le nom de Net-2, dont la premi ere ver- sion publique, Net-2d, fut di us ee en et e 1993 (dans le noyau 0.99.10), et a depuis et e maintenue et am elior ee par plusieurs personnes, en particulier Alan Cox, sous l'ap- pellation Net-2Debugged. Apr es de grandes p eriodes de d eboguage et de nombreux perfectionnements, ce nom fut chang e en Net-3 apr es la sortie de Linux 1.0. C'est la version du code r eseau actuellement incluse dans les versions ocielles du noyau, a l'heure o u nous ecrivons ces lignes. Net-3 o re des pilotes pour une large gamme de cartes Ethernet, aussi bien que SLIP, PPP (pour des connexions r eseau via une liaison s erie), et PLIP (pour utiliser le port imprimante parall ele dans le m^ eme but). Avec Net-3, Linux est dot e d'une impl ementation de TCP/IP qui se comporte parfaitement bien dans la plupart des environnements r eseaux, avec une abilit e d epassant certains Unix commerciaux pour PC. Le d eveloppement continue, a n d'assurer une stabilit e encore meilleure en toutes circonstances sur les h^ otes o rant des services sur l'Internet. En plus de tout cela, certains projets sont en cours, qui augmenteront encore davan- tage l'universalit e de Linux. Un pilote AX.25 pour packet-radio est en Alpha test, et Alan Cox a egalement impl ement e une partie du protocole IPX de Novell. Mais ce dernier projet n'avance pas, car Novell n'a pas l'intention de fournir la documentation
  • 31.
    14 Chapitre 1.Introduction aux r eseaux n ecessaire a son aboutissement. Andrew Tridgell a r ealis esamba, un serveurNetBIOS9 gratuit pour syst emes Unix dont les premi eres versions sont tr es prometteuses. 1.4.1 Orientations du d eveloppement Fred a continu e parall element son d eveloppement pour faire Net-2e, une approche profond ement nouvelle des couches r eseau. Toutefois, on n'a pas entendu parler de ce travail depuis longtemps. Il existe une autre impl ementation de TCP/IP r ealis ee par Matthias Urlichs, qui a ecrit un pilote ISDN pour Linux et FreeBSD, en int egrant une partie du code r eseau de BSD dans le noyau Linux. Malgr e tout, Net-3 semble maintenant destin e a rester la version ocielle. Les ( ( mo- dules ) ), qui permettent d'ajouter des pilotes de p eriph eriques au noyau pendant le fonctionnement du syst eme, donneront sans nul doute un coup de fouet au d evelop- pement et la partie r eseau s'enrichira sans doute de nombreuses possibilit es au l du temps. Bien que ces di erentes impl ementations des couches r eseau s'e orcent d'o rir le m^ eme service, elles comportent d'importantes di erences au niveau noyau et pilotes. Par cons equent, vous ne pourrez pas con gurer un syst eme comportant un noyau avec Net-2e a l'aide des utilitaires en provenance de Net-2d ou Net-3, et vice versa. Cela ne s'applique qu'aux commandes tr es proches du noyau; les applications et programmes usuels comme rlogin ou telnet fonctionneront bien s^ ur avec n'importe quelle version. Quoi qu'il en soit, cette l eg ere confusion ne devrait pas vous inqui eter. A moins que vous ne participiez activement au d eveloppement, vous n'aurez pas a vous soucier de ces di erentes versions de TCP/IP. Les versions ocielles du noyau seront toujours accompagn ees des outils r eseau compatibles avec l'impl ementation courante. 1.4.2 O u se procurer le code Le derni ere version du code r eseau de Linux peut ^ etre obtenue par FTP anonyme au- pr es de di erents serveurs. Le site ociel pour Net-3 est sunacm.swan.ac.uk, repris par sunsite.unc.edu dans le r epertoire system/Network/sunacm. Les derni eres ver- sions connues de Net-2e se trouvent sur ftp.aris.com.Les travauxd eriv esde BSD, par Matthias Urlichs,sont sur ftp.ira.uka.dedans le r epertoire/pub/system/linux/netbsd. Le code source des derniers noyaux en date, ainsi que les versions en cours de d e- veloppement se trouvent dans le r epertoire /pub/OS/Linux/PEOPLE/Linus du site nic.funet. ; qui est repris par de nombreux serveurs10. 9: NetBIOS est le protocole sur lequel sont bas ees certaines applications comme lanmanager et Windows for Workgroups. 10: En France, avant d'utiliser de co^ uteuses liaisons internationales, vous devez visiter le site ftp.ibp.fr. Ce serveur est le site Linux de r ef erence pour la France, et tient a jour un miroir des principaux sites etrangers.
  • 32.
    1.5. Maintenance dusyst eme 15 1.5 Maintenance du syst eme Tout au long de ce livre, nous traiterons principalement de proc edures d'installation et de con guration. N eanmoins, l'administration d'un syst eme est bien plus que cela: une fois un service install e, vous devez le maintenir en parfait etat de fonctionnement. Dans la plupart des cas, il sut d'un peu d'attention; mais certains, comme le courrier et les News, n ecessitent un entretien de routine. Nous verrons en quoi consistent ces di erentes t^ aches d'administration dans les chapitres qui vont suivre. La maintenance minimale consiste a regarder r eguli erement les chiers de trace du syst eme et des di erentes applications, a la recherche d' eventuelles erreurs ou ev ene- ments inhabituels. Le plus simple est d' ecrire quelques shell-scripts qui seront ex ecut es automatiquement par cron a certaines heures. Les applications importantes, comme C News ou smail, sont souvent fournies avec de tels programmes qu'il ne vous reste plus qu' a modi er l eg erement pour les adapter a vos besoins particuliers. La sortie de tous les travaux ex ecut es par cron doit faire l'objet d'un courrier envoy e dans la bo^ te aux lettres d'un compte administratif. Par d efaut, beaucoup d'applica- tions postent leurs erreurs ou statistiques a l'utilisateur root. Cela n'a d'int er^ et que si vous vous connectez souvent sous ce compte, ce qui est d econseill e. Une solution bien meilleure sera de rediriger le courrier de root vers votre compte personnel en d eclarant un alias, comme d ecrit dans le chapitre 14. Quel que soit le soin apport e a la con guration de votre site, les lois de Murphy garan- tissent que malgr e tout, certains probl emes se produiront. Par cons equent, maintenir un syst eme signi e egalement ^ etre disponible pour r epondre aux r eclamations. G en e- ralement, on consid ere que l'administrateur syst eme doit au minimum pouvoir ^ etre joint par courrier electronique au compte root, mais il existe aussi d'autres adresses traditionnellement utilis ees pour des aspects ou services sp eci ques. Par exemple, tout ce qui concerne le fonctionnement du courrier electronique est envoy e a postmaster, alors que pour ce qui est des News Usenet, il s'agira de newsmaster ou usenet. Un message a destination de hostmaster devra ^ etre redirig e vers la personne en charge de la con guration r eseau de base, et du serveur de noms si vous fournissez un DNS. 1.5.1 S ecurit e du syst eme Prot eger votre machine et ses utilisateurs des intrus est un aspect tr es important de l'administration syst eme dans un environnement r eseau. N egliger ce point peut o rir de nombreuses cibles aux malfaisants, les attaques pouvant aller de tentatives de d ecryptage des mots de passe a l'analyse de datagrammes, avec des cons equences diverses comme courriers falsi es, destructions de donn ees ou entrave a la vie priv ee de vos utilisateurs. Nous mentionnerons quelques-uns de ces probl emes lorsque nous d ecrirons le contexte dans lequel chacun peut se produire, et les solutions les plus courantes employ ees pour se prot eger.
  • 33.
    16 Chapitre 1.Introduction aux r eseaux Il est evidemment impossible de d etailler ici tous les ennuis de s ecurit e auxquels vous serez peut-^ etre confront e. La lecture d'un ouvrage sp ecialis eest absolument n ecessaire, particuli erement en environnement r eseau. Le livre ( ( Practical UNIX Security ) ), de Simson Gar nkel (voir [Spaf93]) est hautement recommand e. La s ecurit e commence par une bonne administration syst eme. Cela comprend la v e- ri cation des propri etaires et droits d'acc es des chiers vitaux et des r epertoires, l'observation de l'utilisation des comptes privil egi es, etc. Le programme COPS, par exemple, permet de tester le syst eme de chiers et la con guration courante a la re- cherche de permissions dangereuses ou autres anomalies. Il est souvent raisonnable d'utiliser une gestion des mots de passe les rendant plus diciles a deviner. L'ensemble shadow password suite, par exemple, demande entre autres choses qu'ils aient une lon- gueur minimale de cinq caract eres et comportent un ensemble de lettres minuscules, majuscules et chi res. Lors de la cr eation d'un service accessible par r eseau, assurez-vous de ne lui donner que les privil eges minimaux, ne lui permettez pas de faire des choses inutiles pour son fonctionnement normal. Par exemple, vous ne devez faire de programmes setuid a root ou tout autre utilisateur privil egi e que lorsque c'est vraiment n ecessaire. Si vous d esirez n'utiliser un service que pour une application tr es limit ee, n'h esitez pas a le con gurer de mani ere aussi restrictive que possible. Si par exemple vous comptez au- toriser des stations diskless a s'amorcer depuis votre machine, vous devez o rir TFTP (Trivial File Transfer Protocol) a n qu'elles puissent t el echarger leur con guration de base depuis le r epertoire /boot. Toutefois, utilis e sans restrictions, TFTP permet a n'importe quel utilisateur du monde de t el echarger tout chier de votre machine qui soit lisible par tous. Si ce n'est pas ce que vous d esirez, pourquoi ne pas restreindre le service TFTP au r epertoire /boot?11. Dans le m^ eme ordre d'id ees, vous pouvez restreindre l'acc es a certains services a des utilisateurs de certains h^ otes, par exemple ceux de votre r eseau local. Dans le chapitre 9, nous pr esenterons tcpd, qui permet cette op eration pour une grande vari et e d'applications r eseaux. Un autre point tr es important: eviter les logiciels a risque. Bien s^ ur, tous les pro- grammes que vous utilisez peuvent ^ etre dangereux, puisqu'ils peuvent rec eler des bogues que des personnes malintentionn ees pourraient exploiter pour p en etrer dans votre syst eme. Ce genre de situation arrive, et il n'existe malheureusement pas de protection a toute epreuve. Ces probl emes a ectent aussi bien les applications du domaine public que les produits commerciaux12. Toutefois, les programmes n eces- sitant des privil eges particuliers sont fatalement plus dangereux que les autres, car le moindre trou de s ecurit e peut avoir de graves cons equences13. Si vous installez 11: Nous reviendrons sur ce sujet dans le chapitre 9. 12: Il y a eu des syst emes UNIX commerciaux (qui co^ utent une petite fortune), fournis avec un shell script setuid-root, qui permettait a tous les utilisateurs d'obtenir en une fraction de seconde tous les privil eges root par un simple tour d'adresse. 13: En 1988, le ver RTM provoqua l'arr^ et presque complet de la plus grande partie de l'Internet, en exploitant une grosse br eche dans quelques versions du programme sendmail. Ce trou de s ecurit e a et e corrig e depuis.
  • 34.
    1.5. Maintenance dusyst eme 17 un programme setuid, redoublez de prudence et assurez-vous de ne rien rater de sa documentation, a n d' eviter de cr eer une br eche de s ecurit e par erreur ou omission. Malgr e tout le soin que vous pourrez apporter a la s ecurit e, vous ne pourrez jamais vous consid erer comme totalement a l'abri. Par cons equent, vous devez pouvoir d e- tecter les eventuels intrus le plus t^ ot possible. La lecture des chiers de trace du syst eme est un bon point de d epart, mais les pirates le sachant aussi bien que vous, ils ne manqueront pas d'e acer tout ce qui pourrait les d enoncer. Il existe n eanmoins des outils comme tripwire14, qui calcule r eguli erement di erents checksums sur ces chiers, et les stocke dans une base de donn ees. Lors des acc es ult erieurs, ces valeurs sont recalcul ees et compar ees avec celles pr ec edemment trouv ees a n de d etecter toute modi cation anormale de ces traces. 14: Ecrit par Gene Kim et Gene Spa ord.
  • 35.
    18 Chapitre 1.Introduction aux r eseaux
  • 36.
    19 Chapitre 2 Le r eseauTCP/IP Nous allons maintenant aborder tous les d etails que vous devrez conna^ tre lors de la connexion de votre syst eme Linux a un r eseau TCP/IP, notamment la gestion des adresses IP, les noms de machines, et le routage. Ce chapitre vous apportera les bases n ecessaires pour la compr ehension de ce que n ecessite une con guration r eseau, les suivants d ecriront les di erents outils a employer. 2.1 Interfaces r eseau A n de s'a ranchir des nombreuses di erences entre les equipements divers utili- s es dans un environnement r eseau, TCP/IP d e nit une interface abstraite, a travers laquelle on acc ede a la partie mat erielle. Cette interface permet un ensemble d'op e- rations, communes a tout type d' equipement r eseau, et g ere l'envoi et la r eception de paquets. Pour chaque p eriph erique a connecter au r eseau, il faut une interface correspondante dans le noyau du syst eme. Par exemple, les cartes Ethernet sous Linux s'appellent eth0 et eth1, les interfaces SLIP sont sl0, sl1, etc. Ces noms sont utilis es lors de la con guration, pour indiquer au noyau a quel p eriph erique physique vous d esirez acc eder. Ils n'ont pas d'autre signi cation. A n d'^ etre utilisable sur un r eseau TCP/IP, une interface doit se voir attribuer une adresse IP, qui permet de l'identi er lors de communications avec le reste du monde. Cette adresse est di erente du nom cit e ci-dessus; si vous comparez une interface a une porte, l'adresse est comme la plaque clou ee dessus, portant le num ero. Bien entendu, d'autres param etres peuvent ^ etre ajust es. L'un d'entre eux est la taille maximale des datagrammesque cette interface particuli erepeut g erer,que l'on appelle Maximum Transfer Unit, ou MTU. Nous en verrons bien d'autres plus tard.
  • 37.
    20 Chapitre 2.Le r eseau TCP/IP 2.2 Adresses IP Comme nous l'avons vu dans le chapitre pr ec edent, les adresses comprises par le protocole r eseau IP sont des nombres de 32 bits. Chaque machine se voit assign e un nombre unique dans l'environnement: si vous concevez un r eseau local qui ne partage pas de tra c TCP/IP avec d'autres r eseaux, vous pouvez choisir ces nombres selon vos propres crit eres. Toutefois, pour les sites connect es a l'Internet, ces adresses sont fournies par une autorit e centrale, le Network Information Center, ou NIC1. Pour en faciliter la lecture, les adresses IP sont partag ees en quatre nombres de 8 bits appel es octets2. Par exemple, l'adresse 0x954C0C04, qui est en hexad ecimal celle du site quark.physique.groucho.edu, s' ecrira 149.76.12.4. Ce format est souvent appel e notation sur 4 octets ou notation point ee (dotted quad notation en anglais). Cette notation est aussi due au fait que les adresses IP sont compos ees d'une valeur r eseau, contenue dans les premiers octets, et une valeur h^ ote, dans ceux qui restent. Lorsque vous demandez une adresse ocielle au NIC, vous n'obtenez pas de valeurs individuelles pour chaque machine que vous comptez connecter: le NIC vous accorde une adresse de r eseau, et c'est a vous d'assigner toutes les adresses IP individuelles valides qu'elle permet, selon vos pr ef erences. En fonction de la taille du r eseau, la partie h^ ote peut ^ etre plus ou moins grande. Pour faire face aux di erents besoins, il existe plusieurs classes de r eseau, d e nissant di erentes mani eres de d ecouper les adresses IP. Classe A La classe A comprend les r eseaux 1.0.0.0 a 127.0.0.0. La valeur r eseau est contenue dans le premier octet. Cela donne une partie h^ ote de 24 bits, permettant environ 1,6 million de machines. Classe B La classe B comprend les r eseaux 128.0.0.0 a 191.255.0.0; la valeur r eseau est contenue dans les deux premiers octets. Elle permet donc 16320 r eseaux de 65024 h^ otes chacuns. Classe C La classe C comprend les r eseaux 192.0.0.0 a 223.255.255.0, la va- leur r eseau etant contenue dans les trois premiers octets. Elle permet pr es de 2 millions de r eseaux de 254 h^ otes. Classes D, E, et F Les adresses comprises entre 224.0.0.0 et 254.0.0.0 sont soit exp e- rimentales, soit r eserv ees pour un usage futur et ne sp eci ent aucun r eseau. 1: Tr es souvent, les adresses IP vous seront assign ees par le fournisseur de services aupr es du- quel vous achetez votre connectivit e. Mais vous pouvez egalement traiter directement aupr es du NIC a n d'obtenir une adresse pour votre r eseau, en envoyant un courrier electronique a l'adresse hostmaster@internic.net. 2: Il faut noter ici que la langue anglaise fait la di erence entre un nombre quelconque sur 8 bits, appel e byte, de son utilisation dans la notation d'adresses IP, o u il prend l'appellation octet. En fran cais, nous ne disposons que du terme octet pour les deux cas.
  • 38.
    2.3. R esolution desadresses 21 Si nous reprenons l'exemple du chapitre pr ec edent, nous pouvons maintenant voir que 149.76.12.4, l'adresse de quark, d esigne l'h^ ote 12.4 du r eseau de classe B 149.76.0.0. Vous aurez peut-^ etre remarqu e dans la liste ci-dessus que toutes les valeurs possibles pour la partie h^ ote ne sont pas autoris ees. En e et, les valeurs 0 et 255 sont r eserv ees a des usages sp eciaux: une adresse dont tous les bits de la partie h^ ote sont a z ero d esigne le r eseau en lui-m^ eme, et si les bits sont tous a 1 il s'agit alors de l'adresse de di usion (broadcast). Celle-ci d esigne simultan ement toutes les machines connect ees au r eseau en question. Par cons equent, 149.76.255.255 n'est pas une adresse d'h^ ote valide, mais r ef erence tous ceux du r eseau 149.76.0.0. Il y a egalement deux autres adresses r eserv ees, 0.0.0.0 et 127.0.0.0. La premi ere s'appelle la route par d efaut et la seconde, l'adresse loopback. La route par d efaut est en rapport avec la fa con dont sont dirig es les datagrammes, ce que nous verrons dans la section suivante. Le r eseau 127.0.0.0 est r eserv e au tra c IP local a votre ordinateur. En g en eral, l'adresse 127.0.0.1 sera assign ee a une interface sp eciale de votre syst eme, appel ee interface loopback, qui se comporte comme un circuit ferm e. Chaque paquet TCP ou UDP qui lui est transmis, est imm ediatement retourn e comme s'il arrivait d'un autre r eseau. Ainsi, il est possible de d evelopper et tester des programmes sans disposer d'un ( ( vrai ) ) r eseau; cette interface trouve toutefois sa principale utilit e lors de l'emploi de logiciels utilisant le r eseau sur la m^ eme machine, ou sur un ordinateur totalement isol e. Cette situation n'est pas si rare qu'il y para^ t: par exemple, beaucoup de sites UUCP ne disposent d'aucune connectivit e IP, mais ont besoin de faire fonctionner le serveur de News INN. Celui-ci utilisera alors l'interface loopback. 2.3 R esolution des adresses Maintenant que vous savez comment sont constitu ees les adresses IP, vous devez sans doute vous demander comment elles sont utilis ees pour acc eder aux di erentes machines. Apr es tout, le protocole Ethernet identi e les h^ otes par un nombre de six octets qui n'a absolument rien en commun avec une adresse IP, n'est-ce pas? C'est exact. Et c'est pourquoi il faut un m ecanisme sachant mettre en correspondance les adresses IP et Ethernet: ce protocole se nomme Address Resolution Protocol, ou ARP. En fait, ARP n'est pas limit e a l'Ethernet, mais est egalement employ e sur d'autres types de r eseaux, comme par exemple le packet-radio des radio-amateurs. Pour fonctionner, ARP utilise exactement la m ethode qu'emploient la plupart des gens pour trouver M. Marcel Dugenou dans une foule de 150 inconnus: se promener en criant son nom, en esp erant qu'il r epondra s'il est l a. Lorsque ARP veut trouver l'adresse Ethernet correspondant a une adresse IP donn ee, il fait appel a une possibilit e appel ee la ( ( di usion ) ) (broadcasting), qui consiste a envoyer un datagramme simultan ement a toutes les stations pr esentessur le r eseau. Ce
  • 39.
    22 Chapitre 2.Le r eseau TCP/IP paquet exp edi e par ARP contient une requ^ ete pour l'adresse IP en question. Chaque h^ ote le recevant compare alors cette adresse a la sienne, et si elles correspondent, retourne une r eponse ARP a la machine appelante. Celle-ci peut alors en extraire l'adresse Ethernet de l'exp editeur. Vous pouvez vous demander comment un h^ ote peut atteindre une adresse Internet pouvant se trouver sur un r eseau Ethernet di erent, quelque part dans le monde, ou comment, en tout premier lieu, il peut savoir que cette adresse est sur un r eseau Ethernet. Toutes ces questions mettent en jeu ce que l'on appelle le routage, qui consiste a localiser physiquement un h^ ote dans un r eseau. Ce sera le sujet de la section suivante. Voyons ARP plus en d etail. Une fois qu'un h^ ote a d ecouvert une adresse Ethernet, il la stocke dans son cache ARP a n de ne pas avoir a la redemander la prochaine fois qu'il devra envoyer un datagramme a la machine en question. Toutefois, il ne serait pas judicieux de conserver cette information ind e niment; la machine distante peut changer de con guration (changement de carte Ethernet pour des raisons techniques par exemple) et l'entr ee ARP ne serait plus valide. Par cons equent, les entr ees conte- nues dans le cache ARP sont supprim ees au bout d'un certain temps a n de forcer une nouvelle requ^ ete. Il est aussi quelquefois n ecessaire de trouver l'adresse IP associ ee a une adresse Ether- net donn ee. Cela se produit lorsqu'une machine diskless veut s'amorcer depuis un serveur du r eseau, ce qui est une situation tr es courante sur les r eseaux locaux. Ce type de station ne poss ede pratiquement aucune information sur elle-m^ eme, a l'ex- ception de son adresse Ethernet: par cons equent, elle di use un message demandant aux serveurs de lui indiquer son adresse IP. Il existe un autre protocole pour cela, appel e Reverse Address Resolution Protocol, ou RARP. Avec le protocole BOOTP, il permet de d e nir une proc edure d'amor cage de clients diskless via r eseau. 2.4 Routage IP Nous allons maintenant voir comment localiser un h^ ote a qui nous voulons envoyer des paquets, en fonction de son adresse IP. Les di erentes parties de l'adresse sont g er ees di eremment; et c'est a vous de con gurer correctement les chiers qui indiquent comment traiter chacune de ces parties. 2.4.1 R eseaux IP Lorsque vous ecrivez une lettre a quelqu'un, vous indiquez g en eralement sur l'enve- } loppe une adresse compl ete sp eci ant le pays, le d epartement, le code postal, etc. Ensuite, vous mettez l'enveloppe dans une bo^ te aux lettres et les services postaux la d elivreront au destinataire: elle sera exp edi ee dans le pays indiqu e, o u d'autres ser- vices nationaux la dirigeront vers le d epartement indiqu e, et ainsi de suite jusqu'au
  • 40.
    2.4. Routage IP23 destinataire. L'avantage de cette m ethode hi erarchique est evident: quelle que soit la destination, la poste locale saura dans quelle direction diriger la lettre, mais n'aura pas a se soucier de savoir comment elle voyagera une fois qu'elle aura atteint le pays de destination. Les r eseaux IP sont structur es de fa con similaire. L'Internet consiste en un certain nombre de r eseaux particuliers, appel es syst emes autonomes. Chaque syst eme e ectue tout le routage n ecessaire entre ses h^ otes internes de telle mani ere que l'envoi d'un datagramme se r eduise a trouver un chemin vers le r eseau sur lequel se trouve l'h^ ote destinataire. Cela signi e qu'aussit^ ot que le paquet est pass e a n'importe quel h^ ote de ce r eseau particulier, le reste du traitement est exclusivement r ealis e par ce r eseau lui-m^ eme. 2.4.2 Sous-r eseaux Cette structure est re et ee par le d ecoupage des adresses IP en une partie r eseau et une partie h^ ote, comme nous l'avons expliqu e plus haut. Par d efaut, le r eseau de destination est d eriv e de la partie r eseau de l'adresse IP. Par cons equent, les h^ otes pour lesquels ce nombre est le m^ eme doivent se trouver sur le m^ eme r eseau, et r eci- proquement3. Il est alors logique d'o rir un sch ema similaire a l'int erieur du r eseau, puisqu'il peut lui-m^ eme consister en un ensemble de centaines de r eseaux plus petits, la plus petite unit e etant des r eseaux physiques comme l'Ethernet. Par cons equent, IP permet de subdiviser un r eseau IP en plusieurs sous-r eseaux. Un sous-r eseau prend la responsabilit e de d elivrer les datagrammes pour une certaine plage d'adresses IP appartenant au r eseau IP dont il fait partie. Tout comme dans les classes A, B, ou C, il est identi e par la partie r eseau des adresses IP. Toutefois, cette partie r eseau est alors etendue en incluant quelques bits de la partie h^ ote. Le nombre de bits qui seront interpr et es en tant que valeur de sous-r eseau est donn e par ce que l'on appelle le masque de sous-r eseau ou masque r eseau, en anglais netmask. Il s'agit aussi d'un nombre sur 32 bits, qui sp eci e le masque de bits pour la partie r eseau de l'adresse IP. Le r eseau du campus de l'universit e Groucho Marx est un exemple d'une telle orga- nisation. Il poss ede le r eseau de classe B 149.76.0.0, et son masque r eseau est par cons equent 255.255.0.0. A l'int erieur, il est en fait constitu e de plusieurs r eseaux plus petits, comme ceux des di erents d epartements. Aussi, la plage d'adresses IP est divis ee en 254 sous-r eseaux, 149.76.1.0 a 149.76.254.0. Par exemple, le D epartement de Physique Th eorique s'est vu assigner 149.76.12.0. La dorsale du campus est aussi un r eseau, auquel on a attribu e l'adresse 149.76.1.0. Ces sous-r eseaux partagent la m^ eme valeur r eseau, bien que le troisi eme octet soit utilis e pour les distinguer entre eux. Ils utiliseront un masque de sous-r eseau de 255.255.255.0. 3: Les syst emes autonomes sont plus g en eraux et peuvent comporter plus d'un r eseau IP.
  • 41.
    24 Chapitre 2.Le r eseau TCP/IP 149 76 12 4 149 76 12 4 Partie r eseau Partie h^ ote Partie r eseau Partie h^ ote Fig. 2.1 - Subdivision d'un r eseau de classe B La gure 2.1 montre comment 149.76.12.4, l'adresse de quark, est interpr et ee dif- f eremment selon qu'elle est consid er ee sur un r eseau de classe B ordinaire, ou comme sous-r eseau. Il faut bien avoir a l'esprit que la subdivision de r eseaux n'est qu'une division interne. Les sous-r eseauxsont cr e es par le propri etairedu r eseau (ou les administrateurs). Sou- vent, ils sont mis en place pour d elimiter des zones pr ecises, qu'elles soient physiques (entre deux Ethernet), administratives (entre deux d epartements), ou g eographiques; et une personne se voit d el eguer la responsabilit e de ces sous-r eseaux. Mais cette structure n'a ecte que le comportement interne et est compl etement invisible pour le reste du monde. 2.4.3 Passerelles La subdivision de r eseaux n'est pas seulement utile pour des raisons administratives, mais est aussi tr es souvent la cons equence naturelle des limitations mat erielles. Le point de vue d'un h^ ote connect e a un r eseau physique donn e (Ethernet par exemple), est tr es limit e: il ne pourra acc eder directement qu'aux machines situ ees sur le m^ eme r eseau local. Tous les autres h^ otes ne lui sont accessibles qu' a travers ce que l'on appelle une passerelle. Une passerelleest un h^ ote qui est connect ephysiquement a deux r eseaux (ou plus) simultan ement, et qui est con gur e sp ecialement pour permettre d' echanger des paquets entre eux. Pour que IP puisse facilement savoir si un h^ ote est sur un r eseau local physique, ces di erents r eseaux physiques doivent appartenir a di erents r eseaux IP. Par exemple, le r eseau IP 149.76.4.0 est r eserv e aux h^ otes du r eseau local du D epartement de Math ematiques. Lors de l'envoi d'un datagramme vers quark, les logiciels r eseau de erdos d eduisent imm ediatement de l'adresse IP 149.76.12.4 que l'h^ ote destinataire est situ e sur un r eseau physique di erent, et par cons equent ne sera joignable que par une passerelle (sophus par d efaut).
  • 42.
    2.4. Routage IP25 Cette machine passerelle, sophus, est connect ee a deux sous-r eseaux distincts: celui du D epartement de Math ematiques et la dorsale du campus. Il acc ede a chacun d'eux par une interface di erente, qui sont respectivement eth0 et fddi0. Mais alors, quelle adresse IP devons-nous lui assigner? Faut-il lui en donner une appartenant au sous- r eseau 149.76.1.0, ou bien a 149.76.4.0? La r eponse est: les deux, mon g en eral. Lors de dialogues avec des h^ otes du D epar- tement de Math ematiques, sophus devra utiliser une adresse IP de 149.76.4.1, et avec la dorsale, ce sera 149.76.1.4. Donc, une passerelle se voit assigner une adresse IP par r eseau auquel elle est connec- t ee. Ces adresses (et les masques correspondants) sont li ees aux interfaces par les- quelles on acc ede aux sous-r eseaux. La correspondance entre les interfaces et adresses de sophus ressemblera donc a ceci: Interface Adresse Masque r eseau eth0 149.76.4.1 255.255.255.0 fddi0 149.76.1.4 255.255.255.0 lo 127.0.0.1 255.0.0.0 La derni ere entr ee correspond a l'interface loopback, que nous avons d ecrit plus haut. La gure 2.2 montre une partie de la topologie du r eseau a l'universit e Groucho Marx (GMU). Les machines connect ees simultan ement a deux sous-r eseaux sont indiqu ees avec leurs deux adresses IP. La plupart du temps, vous pouvez ignorer la di erence entre l'adresse IP d'un h^ ote et son interface. Pour ceux qui ne sont que sur un seul r eseau, comme erdos, vous pourrez dire que cette machine a telle ou telle adresse IP, bien qu'en r ealit e ce soit son interface Ethernet qui ait cette adresse. Mais la distinction n'est vraiment importante que pour les passerelles. 2.4.4 La table de routage Nous allons maintenant concentrer notre attention sur la mani ere dont IP choisit une passerelle pour d elivrer des donn ees a un r eseau distant. Nous venons de voir que erdos, lorsqu'il a un datagramme pour quark, teste l'adresse de destination et s'aper coit qu'elle n'est pas sur le r eseau local. Par cons equent, il envoie le paquet a la passerelle par d efaut sophus, qui est alors confront ee au m^ eme probl eme. Sophus voit que quark ne fait partie d'aucun des r eseaux sur lesquels elle est directement connect ee, et qu'il lui faut trouver une autre passerelle a qui passer le ambeau. Le bon choix serait niels, celle reliant le D epartement de Physique: sophus a donc besoin d'informations lui permettant d'associer un r eseau destinataire a une passerelle ad equate. Les informations de routage qu'IP utilise pour cela consistent en une table indiquant les r eseaux et les passerelles n ecessaires pour les atteindre. De plus, une route par
  • 43.
    26 Chapitre 2.Le r eseau TCP/IP sophus niels quark erdos 12.4 4.17 gauss 4.1 12.1 1.4 1.12 4.0 12.0 4.23 gcc1 1.1 2.1 1.0 D epartement Math ematiques D epartement Physique Th eorique Dorsale du campus Centre de calcul de Groucho Fig. 2.2 - Une partie de la topologie du r eseau a l'universit e Groucho Marx.
  • 44.
    2.4. Routage IP27 d efaut doit g en eralement ^ etre indiqu ee; il s'agit d'une entr ee associant une passerelle au r eseau 0.0.0.0. Tous les paquets destin es a un r eseau inconnu seront exp edi es par ce chemin. Sur sophus, cette table pourrait ressembler a celle-ci: R eseau Passerelle Interface 149.76.1.0 - fddi0 149.76.2.0 149.76.1.2 fddi0 149.76.3.0 149.76.1.3 fddi0 149.76.4.0 - eth0 149.76.5.0 149.76.1.5 fddi0 : : : : : : : : : 0.0.0.0 149.76.1.2 fddi0 Les routes vers les r eseaux sur lesquels sophus est directement connect ee n'ont pas besoin de passerelle, c'est pourquoi ici la colonne correspondante contient un tiret. Les tables de routage peuvent ^ etre construites par di erents moyens. Dans le cas de petits r eseaux, la meilleure m ethode est de le faire manuellement et de les positionner par la commande route lors de l'amor cage des syst emes (voir le chapitre 5). Sur les grands r eseaux, elles sont ajust ees en cours de fonctionnement par des programmes qui s' echangent des informations de routage pour d eterminer les meilleures routes. En fonction de la taille du r eseau, di erents protocoles de routage seront alors utilis es. A l'int erieur de syst emes autonomes (comme le campus Groucho Marx), les protocoles de routage interne sont employ es. Le plus courant, RIP (Routing Information Proto- col) est impl ement e par le d emon BSD routed. Entre les syst emes autonomes, il faut faire appel aux protocoles de routage externe comme EGP (External Gateway Protocol) ou BGP (Border Gateway Protocol); ceux-ci (aussi bien que RIP) sont impl ement es dans le d emon gated de l'universit e de Cornell4. 2.4.5 Valeurs m etriques Le routage dynamique bas e sur RIP choisit le meilleur chemin vers un h^ ote ou un r eseau en fonction du nombre de ( ( sauts ) ) (hops), c'est- a-dire le nombre de passerelles travers ees pour amener un datagramme a destination. Plus ce chemin est court, mieux il est not e par RIP. Lorsqu'il est trop long, 16 sauts ou plus, il est consid er e comme inutilisable et elimin e. Pour utiliser RIP a n de g ererles informations de routageinternes a votre r eseaulocal, il faut que le programme gated soit en service sur chaque h^ ote. Au d emarrage, gated teste toutes les interfaces r eseau actives. S'il en trouve plus d'une (loopback exclue), il consid ere que cette machine sert de passerelle entre di erents r eseaux et devient alors actif, echangeant et di usant des informations de routage. Sinon, il restera passif, 4: Le programme routed est consid er e comme bogu e par beaucoup d'administrateurs. Puisque gated supporte egalement RIP, il est toujours pr ef erable d'utiliser ce dernier.
  • 45.
    28 Chapitre 2.Le r eseau TCP/IP attendant la r eception de mises a jour RIP pour modi er la table de routage locale de mani ere appropri ee. Lors de la di usion des informations sur la table locale, gated d etermine la longueur du chemin a partir de la valeur m etrique associ ee avec chaque entr ee. Cette valeur est initialis ee par l'administrateur syst eme lors de l' etablissement de la route et doit re eter le prix de revient de ce chemin particulier. Par cons equent, la valeur m etrique d'une route vers un sous-r eseau dont l'h^ ote est directement connect e doit toujours valoir z ero, alors qu'une route passant par deux passerelles aura la valeur deux. Notez que vous n'avez toutefois pas a vous soucier de cette valeur m etrique si vous n'utilisez jamais le protocole RIP ou le programme gated. 2.5 Le protocole ICMP IP vient avec un protocole dont nous n'avons pas encore parl e: le protocole de contr^ ole de messages, Internet Control Message Protocol. ICMP est utilis e par les couches r eseau du noyau pour communiquer des messages d'erreurs aux autres h^ otes. Par exemple, supposons que vous ^ etes une nouvelle fois sur erdos et d esirez lancer un telnet sur le port 12345 de quark, mais qu' a l'autre bout il n'y ait aucun processus a l' ecoute de ce port. Lorsque le premier paquet TCP arrivera sur quark, la couche r eseau se rendra imm ediatement compte de cet etat de fait et renverra un message ICMP a erdos disant ( ( Port Unreachable ) ), soit ( ( Port inaccessible ) ). ICMP sait traiter un certain nombre de messages, dont beaucoup sont des conditions d'erreur. Malgr e tout, l'un d'eux est particuli erement int eressant: le message de redi- rection. Il est g en er e par le module de routage lors qu'il d etecte qu'un autre h^ ote est en train d'utiliser la machine comme passerelle, alors qu'il existe une route bien plus courte. Par exemple, apr es le d emarrage de sophus, sa table de routage peut ^ etre incompl ete. Elle pourrait contenir des routes vers le D epartement de Math ematiques, la dorsale FDDI, et la route par d efaut pointerait sur la passerelle du centre de calcul (gcc1). Par cons equent, tout paquet a destination de quark serait envoy e a gcc1 plut^ ot qu' a niels, la passerelle vers le r eseau du D epartement de Physique. En rece- vant un tel datagramme, gcc1 se rendra compte qu'il s'agit d'un tr es mauvais choix de routage et le renverra a niels, tout en retournant un message ICMP de redirection a sophus, lui indiquant cette route, bien meilleure. Cela peut sembler une m ethode tr es habile pour se contenter de ne positionner ma- nuellement que le strict minimum de routes, et laisser les syst emes faire le reste. N eanmoins, nous devons vous avertir que compter sur le routage dynamique, que ce soit par RIP ou les redirections ICMP, n'est pas toujours une bonne id ee: ces protocoles ne vous o rent que tr es peu, voire aucune possibilit e de v eri cation de l'authenticit e des informations de routage. Des utilisateurs malintentionn es peuvent arriver a rendre votre r eseau totalement hors service, ou pis encore. Pour cette rai- son, certaines versions du code r eseau de Linux traitent les messages de redirection a ectant des routes r eseaux comme s'il ne s'agissait que des routes d'h^ otes.
  • 46.
    2.6. DNS: LeDomain Name System 29 2.6 DNS: Le Domain Name System Nous abordons une partie o u vous allez rencontrer beaucoup de termes techniques am ericains: en l'absence d' equivalents fran cais reconnus et accept es, nous avons pr e- f er e conserver les expressions originales connues du monde entier plut^ ot que d'inventer des noms b^ atards du plus mauvais e et. 2.6.1 R esolution de noms Comme nous le savons maintenant, l'adressage sur un r eseau TCP/IP est bas e sur } des nombres de 32 bits. Comme ils sont dicilement m emorisables, les h^ otes sont g en eralement baptis es de fa con plus humaine, par de simples noms comme pluton, zeus ou marcel. C'est alors au syst eme de trouver les adresses IP correspondantes: il s'agit de la r esolution de noms. Lorsqu'une application a besoin de trouverl'adresse IP d'un h^ ote donn e, il s'appuie sur les fonctions gethostbyname(3) et gethostbyaddr(3). Traditionnellement, celles-ci sont group ees avec quelques autres de la m^ eme famille, dans une biblioth eque sp ecialis ee; sous Linux l'ensemble est int egr e dans la biblioth eque standard libc. On fait en g en eral r ef erence a ces fonctions en parlant du ( ( resolver ) ). Sur un petit r eseau,il n'est pas tr es dicile de maintenir des tables de correspondances entre les noms de machines et leurs adresses. Ces informations sont en principe conte- nues dans un chier nomm e /etc/hosts. Lors de l'ajout ou la suppression d'h^ otes, ou en cas de r eassignation d'adresse, il sut de mettre a jour le chier hosts sur toutes les machines. Il est evident que cette op eration devient quasi impossible sur des r eseaux compos es d'une tr es grande quantit e de syst emes. NIS, le Network Information System d evelopp e par Sun Microsystems, est une solu- tion a ce probl eme (On l'appelle YP, Yellow Pages ou pages jaunes pour des raisons historiques). NIS conserve le chier hosts, ainsi que certaines autres informations, dans une base de donn ees sur une machine ma^ tre depuis laquelle des clients peu- vent r ecup erer a tout moment ce dont ils ont besoin. Mais l a encore, cette approche n'est utilisable que sur des r eseaux d'importance moyenne, comme les r eseaux locaux, car il faut stocker et maintenir la base de donn ees hosts de mani ere centralis ee et la distribuer a tous les serveurs. Sur l'Internet, ces informations etaient aussi a l'origine stock ees dans un unique - chier, HOSTS.TXT. Il etait maintenu au Network Information Center, ou NIC, et devait ^ etre t el echarg e puis install e par tous les sites connect es. La croissance du r e- seau engendra plusieurs probl emes. En plus du surcro^ t de travail d^ u a la n ecessit e d'installer HOSTS.TXT r eguli erement, la charge des serveurs le di usant devint vite trop elev ee. Pis encore, tous les noms devaient ^ etre enregistr es aupr es du NIC, qui devait s'assurer que tous soient bien uniques.
  • 47.
    30 Chapitre 2.Le r eseau TCP/IP C'est pourquoi, en 1984, une nouvelle m ethode de r esolution des noms fut adopt ee, le Domain Name System. Le DNS est l'uvre de Paul Mockapetris, et r egle simulta- n ement les deux probl emes que nous venons d' evoquer. 2.6.2 Introduction du DNS DNS organise les noms d'h^ otes en une hi erarchie de domaines. Un domaine est un ensemble de sites qui ont une certaine relation entre eux; ils peuvent former un r eseau particulier (toutes les machines d'un campus par exemple), ou bien tous appartenir a une organisation particuli ere (comme le Gouvernement fran cais) ou encore, ^ etre tout simplement proche g eographiquement parlant. Aux USA par exemple, toutes les universit es sont regroup ees dans le domaine edu, chacune utilisant un sous-domaine la d e nissant mieux. L'universit e Groucho Marx pourrait ainsi se trouver dans le domaine groucho.edu, et son D epartement de Math ematiques pourrait ^ etre baptis e maths.groucho.edu. Les h^ otes du d epartement verraient alors leur nom ajout e a tout cela; ainsi la machine erdos serait connue comme erdos.maths.groucho.edu. C'est ce que l'on appelle le fully quali ed domain name, ou FQDN, qui identi e de mani ere unique cet h^ ote aux yeux du monde entier. . com gauss up niels maths sophus erdos down strange otto quark edu groucho net physique th eorique particules Fig. 2.3 - Une partie de l'espace de nommage. La gure 2.3 montre une partie de l'espace de nommage. Tout en haut de cette ar- borescence, l'entr ee d enot ee par un simple point, correspond a la racine et est appel e root domain. Pour indiquer qu'un nom d'h^ ote est FQDN (c'est- a-dire compl etement
  • 48.
    2.6. DNS: LeDomain Name System 31 quali e, et non pas relatif a un domaine local implicite), on l' ecrit parfois en le ter- minant par un point. Cela signi e que la derni ere composante est le domaine racine (root domain). En fonction de sa position dans la hi erarchie, un domaine peut ^ etre appel e de premier niveau (top-level), second niveau ou troisi eme niveau. Il peut y en avoir encore plus, mais le cas est assez rare. Voici plusieurs domaines am ericains de premier niveau que vous rencontrerez tr es souvent: edu Sites en rapport avec l' education (coll eges, universit es...). com Entreprises commerciales. org Organisationspriv eesnon commerciales.Beaucoup de r eseauxUUCP priv es sont dans ce domaine. net Passerelles et autres machines administratives d'un r eseau. mil Institutions militaires am ericaines. gov Institutions gouvernementales am ericaines. uucp Ociellement, tous les noms de sites d epourvus de domaines utilis es en UUCP ont et e plac es dans ce domaine. Techniquement, les quatre premiers appartiennent aux Etats-Unis, mais vous pourrez quand m^ eme rencontrer des sites d'autres pays dans ces domaines; en particulier dans net. En revanche, mil et gov sont exclusivement am ericains. En dehors des USA, chaque etat utilise g en eralement un domaine de premier niveau bien a lui, constitu e d'apr es les deux lettres d e nissant le code pays ISO-3166. La Fin- lande, par exemple, utilise le domaine ; la France fr, l'Allemagne de, et l'Australie au. En dessous, chaque NIC est libre d'organiserles noms comme il l'entend. L'Austra- lie, par exemple, utilise des domaines de second niveau identiques aux niveaux interna- tionaux sup erieurs: com.au, edu.au, et ainsi de suite. D'autres, comme l'Allemagne, n'utilisent pas cette m ethode et pr ef erent avoir des noms de machines bien plus longs repr esentant directement les organismes g erant des domaines particuliers. Il n'est pas rare de rencontrer des noms d'h^ otes comme ftp.informatik.uni-erlangen.de. La langue allemande fonctionne de m^ eme, para^ t-il... Bien s^ ur, ces domaines nationaux n'impliquent absolument pas que les machines r esi- dent physiquement dans les pays correspondants; ils signalent seulement qu'elles ont et e enregistr ees aupr es du NIC de cet etat. Une entreprise su edoise peut avoir une branche australienne, mais toutes ses adresses dans le domaine de premier niveau se. Il appara^ t donc maintenant que l'organisation de l'espace de nommage en une hi e- rarchie de domaines, r esout el egamment le probl eme d'unicit e des noms: gr^ ace au DNS, un nom d'h^ ote n'a besoin de rester unique qu' a l'int erieur de son domaine pour
  • 49.
    32 Chapitre 2.Le r eseau TCP/IP qu'il soit egalement unique au monde. De plus, les domaines quali es sont facilement m emorisables. Ces deux raisons susent d ej a pour vouloir s eparer un grand domaine en plusieurs sous-domaines. Mais DNS peut faire bien plus encore. Il permet de d el eguer l'autorit e sur un sous- domaine a ses administrateurs. A l'universit e Groucho Marx, les responsables peuvent par exemple cr eer un sous-domaine par d epartement, nous avons d ej a rencontr e ce cas avec mathset physique. Lorsqu'ils trouverontle r eseaudu D epartement de Physique trop grand et trop complexe a administrer, et dicile a appr ehender de l'ext erieur, ils pourront simplement passer le contr^ ole du domaine physique.groucho.edu aux administrateurs de ce sous-r eseau. Ceux-ci seront alors libres de d ecider des noms de machines voulus et de leur assigner des adresses IP de leur r eseau comme ils l'entendent, sans intervention ext erieure. En n, l'espace de nommage est s epar e en zones, chacune partant d'un domaine. No- tez bien la di erence subtile entre une zone et un domaine: le domaine groucho.edu comprend toutes les machines de l'universit e Groucho Marx, alors que la zone grou- cho.edu ne contient que celles g er ees directement par le centre de calcul, celles du D epartement de Math emathiques par exemple. Les h^ otes du D epartement de Physique appartiennent a une zone di erente, physique.groucho.edu. Dans la gure 2.3, le d ebut de chaque zone est rep er e par un petit cercle a droite du nom de domaine. 2.6.3 Recherche de noms avec le DNS Au premier coup d'il, tout ce bazar de zones et domaines semble compliquer incon- sid er ement la r esolution de noms. Apr es tout, s'il n'existe aucune autorit e centrale contr^ olant quels noms sont assign es a quelle machine, comment diable une petite application saura-t-elle se d ebrouiller? C'est l a qu'intervient la partie la plus ing enieuse du DNS. Si vous voulez trouver l'adresse IP de erdos, le DNS vous dira d'aller la demander a ceux qui la g erent, car eux sauront vous l'indiquer. En fait, le DNS est une base de donn ees distribu ee g eante. Elle est impl ement ee par ce que l'on appelle des serveurs de noms, qui d elivrent les informations relatives a un domaine donn e, ou un ensemble de domaines. Pour chaque zone, il y a au moins deux, ou un petit nombre de serveurs de noms qui d etiennent les informations sur les h^ otes de cette zone. Pour obtenir l'adresse IP de erdos, tout ce que vous avez a faire est de contacter le serveur de noms pour la zone groucho.edu, qui vous retournera les donn ees d esir ees. Facile a dire, devez-vous penser. Mais comment saurai-je contacter ce serveur de noms de l'universit e Groucho Marx? Et bien au cas o u votre ordinateur ne serait pas equip e d'une boule de cristal, le DNS saura aussi vous o rir ce service. Lorsque votre application a besoin d'obtenir des informations sur erdos, elle contacte un serveur de noms local, qui e ectue alors une requ^ ete it erative.Il commence par envoyer au serveur de noms du domaine du plus haut niveau, une demande d'adresse de
  • 50.
    2.6. DNS: LeDomain Name System 33 erdos.maths.groucho.edu. Celui-ci reconna^ t que ce nom n'appartient pas a sa zone d'autorit e, mais plut^ ot a l'une situ ee en dessous du domaine edu. Par cons equent, il indique de contacter un serveur de noms de cette zone et joint a sa r eponse la liste de tous ces serveurs, avec leurs adresses. Votre serveur de noms local contactera alors l'un d'entre eux, par exemple a.isi.edu. Celui-ci a son tour, indiquera que groucho.edu poss ede sa propre zone et renverra les adresses des serveurs de noms concern es. Le serveur de noms local pr esenteraalors sa requ^ ete pour l'adresse de erdos a l'un d'entre eux, qui, nalement, reconna^ tra que ce nom appartient a sa zone et pourra retourner l'adresse IP correspondante. Tout cela peut para^ tre g en ererbeaucoup de tra c pour trouver une simple adresse IP, mais c'est en r ealit e minuscule en comparaison de la quantit e de donn ees qu'il aurait fallu transf erer si nous en etions encore au chier HOSTS.TXT central. Toutefois, cette m ethode est encore perfectible. A n d'am eliorer le temps de r eponse lors des requ^ etes suivantes, le serveur de noms stocke les informations obtenues dans son cache local. Ainsi, la prochaine fois que quelqu'un, sur votre r eseau local, d esire trouver l'adresse d'une machine du domaine groucho.edu, votre serveur de noms n'aura pas besoin de recommencer toute la proc edure, et ira directement se connecter au serveur de noms de groucho.edu5. Bien s^ ur, le serveur de noms ne conservera pas cette information ind e niment, mais elle sera supprim ee au bout d'un certain temps. La dur ee de vie des informations contenues dans le cache est appel ee time to live, ou TTL. Elle est positionn ee par les administrateurs responsables de chaque zone. 2.6.4 Serveurs de noms Les serveurs de noms qui contiennent toutes les informations relatives aux h^ otes d'une zone particuli ere sont dits ayant autorit e pour cette zone et sont quelquefois quali es de serveurs de noms autoritatifs6. Toute requ^ ete concernant une machine de cette zone nira par aboutir sur l'un de ces serveurs poss edant l'information absolue. A n de pouvoir o rir une image coh erented'une zone, ses serveursma^ tres doivent^ etre parfaitement synchronis es. Ceci est r ealis e en faisant de l'un d'entre eux un serveur primaire, qui charge les informations sur sa zone depuis des chiers de donn ees, alors que les autres deviennent serveurs secondaires, qui transf erent leurs informations a intervalles r eguliers depuis le serveur primaire. L'emploi de plusieurs serveurs de noms permet de distribuer la charge de travail, et d'obtenir une certaine redondance des informations. Si l'un des serveurs a un probl eme quelconque, comme la perte de connexion r eseau ou un arr^ et momentan e, toutes les 5: Si aucun cache n' etait utilis e, le DNS serait aussi m ediocre que n'importe quelle autre m ethode puisque chaque requ^ ete mettrait en jeu les serveurs de noms principaux. 6: Le mot ( ( autoritatif ) ) n'est pas fran cais. Il n'existe aucune traduction satisfaisante de l'expres- sion ( ( Authoritative Name Server ) ), aussi avons-nous d ecid e d'employer le terme utilis e par tout le monde dans le langage courant, m^ eme s'il s'agit d'un barbarisme.
  • 51.
    34 Chapitre 2.Le r eseau TCP/IP requ^ etes aboutiront aux autres serveurs. Bien entendu, ce sch ema ne met pas a l'abri de dysfonctionnements produisant des r eponses erron ees a toutes les requ^ etes DNS, comme des bogues dans le programme lui-m^ eme par exemple. Bien s^ ur, vous pouvez aussi utiliser un serveur de noms qui n'a autorit e sur aucun domaine domaine7. Ce type de serveur peut n eanmoins ^ etre utile, car il est toujours capable de g erer des requ^ etes DNS pour les applications fonctionnant sur le r eseau local, ainsi qu'un cache des informations. On l'appelle par cons equent serveur caching- only (cache seulement). 2.6.5 La base de donn ees DNS Nous avons vu que le DNS ne g ere pas que des adresses IP de machines, mais qu'il echange egalement des informations sur les serveurs de noms. En fait, la base de donn ees DNS peut poss eder une grande quantit e d'entr ees di erentes. Chaque information el ementaire de la base de donn ees DNS est un objet appel e ( ( re- source record ) ), ou RR en abr eg e. Chaque enregistrement est associ e a un type d e- crivant le genre de donn ees qu'il repr esente, et une classe sp eci ant le type de r eseau auquel il s'applique. Cette derni ere permet di erents sch emas d'adressage, comme les adresses IP (classe IN), adresses r eseaux Hesiod (utilis e au MIT), et quelques autres. Le RR typique est de classe A, qui associe une adresse IP avec un domaine quali e. Bien s^ ur, une machine peut avoir plusieurs noms. Toutefois, un seul de ces noms doit ^ etre d eclar e comme nom ociel, ou nom canonique, alors que les autres sont simplement des alias s'y r ef erant. La di erence est que le nom canonique est celui qui est associ e avec l'enregistrement A, les autres faisant l'objet d'un enregistrement de type CNAME pointant sur ce nom canonique. Nous n'allons pas d ecrire tous les types possibles ici | ce sera fait dans un pro- chain chapitre | mais plut^ ot vous donner un bref exemple. La gure 2.4 montre une partie de la base de donn ees qui est charg ee dans les serveurs de noms de la zone physique.groucho.edu. En dehors des enregistrements A et CNAME, il y en a un d'un type particulier en haut du chier, qui s' etend sur plusieurs lignes. C'est le resource record SOA, signalant le d ebut d'autorit e, Start Of Authority, qui contient l'information g en erale sur la zone pour laquelle le serveur a autorit e. Il comprend, entre autres, le temps par d efaut pendant lequel tous les enregistrements doivent ^ etre conserv es. Notez que tous les noms dans ce chier d'exemple, qui ne se terminent pas par un point, doivent ^ etre interpr et es comme relatifs au domaine groucho.edu. Le nom sp ecial ( ( @ ) ) utilis e dans le SOA correspond au nom du domaine lui-m^ eme. Nous avons vu plus haut que les serveurs de noms du domaine groucho.edu doivent avoir connaissance de la zone physique de sorte qu'ils puissent pointer les requ^ etes 7: En n, presque. Un serveur de noms doit au moins o rir un service pour localhost et une recherche inverse sur 127.0.0.1.
  • 52.
    2.6. DNS: LeDomain Name System 35 ; ; Information ayant autorit e pour physique.groucho.edu. @ IN SOA niels.physique.groucho.edu. janet.niels.physique.groucho.edu. ( 940902 ; num ero de s erie 360000 ; mise a jour 3600 ; tentative apres echec 3600000 ; d elai d'expiration 3600 ; ttl par d efaut (time to live) ) ; ; Serveurs de noms IN NS niels IN NS gauss.maths.groucho.edu. gauss.maths.groucho.edu. IN A 149.76.4.23 ; ; Physique th eorique (sous-r eseau 12) niels IN A 149.76.12.1 IN A 149.76.1.12 nameserver IN CNAME niels otto IN A 149.76.12.2 quark IN A 149.76.12.4 down IN A 149.76.12.5 strange IN A 149.76.12.6 ... ; Physique des particules (acc el erateur) (sous-r eseau 14) boson IN A 149.76.14.1 muon IN A 149.76.14.7 bogon IN A 149.76.14.12 ... Fig. 2.4 - Un extrait du chier named.hosts pour le D epartement de Physique.
  • 53.
    36 Chapitre 2.Le r eseau TCP/IP vers leurs serveurs de noms. Ceci est g en eralement r ealis e par une paire d'enregistre- ments: NS qui donne le nom quali e du serveur, et un enregistrement A qui associe une adresse a ce nom. Puisque ces enregistrements sont ce qui relie le tout pour que l'espace de nommage soit maintenu unique et coh erent, ils sont souvent appel es glue records (enregistrements-colle). Ce sont les seuls endroits o u une zone contient des informations sur les h^ otes de la zone inf erieure. Les glue records pointant vers les serveurs de noms de physique.groucho.edu sont montr es dans la gure 2.5. ; : Donn ees pour la zone groucho.edu. @ IN SOA vax12.gcc.groucho.edu. joe.vax12.gcc.groucho.edu. ( 940701 ; num ero de s erie 360000 ; mise a jour 3600 ; tentative apr es echec 3600000 ; d elai d'expiration 3600 ; ttl par d efaut (time to live) ) .... ; ; Glue records pour la zone physique.groucho.edu physique IN NS niels.physique.groucho.edu. IN NS gauss.maths.groucho.edu. niels.physique IN A 149.76.12.1 gauss.maths IN A 149.76.4.23 ... Fig. 2.5 - Un extrait du chier named.hosts de l'universit e Groucho Marx. 2.6.6 Requ^ etes inverses Au lieu de rechercher une adresse IP appartenant a un h^ ote, on peut parfois avoir besoin de l'inverse, c'est- a-dire de trouver le nom canonique correspondant a une adresse. C'est ce qu'on appelle la requ^ ete inverse (reverse mapping) qui est utilis ee par di erents services r eseau pour v eri er l'identit e d'un client. Lorsque l'on ne poss ede qu'un simple chier hosts, la recherche inverse consiste simplement a trouver la ligne o u gure la machine et prendre l'adresse IP qui s'y trouve. Avec le DNS, il est hors de question d'e ectuer une recherche exhaustive dans tout l'espace de nommage, bien entendu. Alors, un domaine sp ecial a et e cr e e, in-addr.arpa., contenant les adresses de toutes les machines en notation invers ee. Par exemple, une adresse IP de 149.76.12.4 correspond au nom 4.12.76.149.in-addr.arpa. Le RR type reliant ces noms a leurs noms canoniques est PTR. La cr eation d'une zone d'autorit e signi e g en eralement que ses administrateurs ont re cu le contr^ ole total de l'assignation des adresses. Puisqu'ils ont en principe un ou plusieurs r eseaux IP ou sous-r eseaux a leur disposition, il y a une subdivision entre les zones DNS et les r eseaux IP. Le D epartement de Physique, par exemple, comprend les sous-r eseaux 149.76.8.0, 149.76.12.0, et 149.76.14.0.
  • 54.
    2.6. DNS: LeDomain Name System 37 En cons equence, de nouvelles zones du domaine in-addr.arpa doivent ^ etre cr e ees avec la zone physique et d el egu ees aux administrateurs r eseau du d epartement: 8.76.149.in-addr.arpa,12.76.149.in-addr.arpa,et 14.76.149.in-addr.arpa.Au- trement, l'installation d'une nouvelle machine au laboratoire de physique des parti- cules n ecessiterait qu'ils contactent leur domaine parent pour que la nouvelle adresse soit int egr ee dans leur chier de la zone in-addr.arpa. La base de donn ees de la zone pour le sous-r eseau12 est montr ee dans la gure 2.6. Les glue records correspondants dans la base de leur zone parente sont illustr es gure 2.7. ; ; Le domaine 12.76.149.in-addr.arpa. @ IN SOA niels.physique.groucho.edu. janet.niels.physique.groucho.edu. ( 940902 360000 3600 3600000 3600 ) 2 IN PTR otto.physique.groucho.edu. 4 IN PTR quark.physique.groucho.edu. 5 IN PTR down.physique.groucho.edu. 6 IN PTR strange.physique.groucho.edu. Fig. 2.6 - Un extrait du chier named.rev du sous-r eseau 12. ; ; Le domaine 76.149.in-addr.arpa. @ IN SOA vax12.gcc.groucho.edu. joe.vax12.gcc.groucho.edu. ( 940701 360000 3600 3600000 3600 ) ... ; sous-r eseau 4: d epartement math ematiques. 1.4 IN PTR sophus.maths.groucho.edu. 17.4 IN PTR erdos.maths.groucho.edu. 23.4 IN PTR gauss.maths.groucho.edu. ... ; sous-r eseau 12: d epartement de physique, zone s epar ee. 12 IN NS niels.physique.groucho.edu. IN NS gauss.maths.groucho.edu. niels.physique.groucho.edu. IN A 149.76.12.1 gauss.maths.groucho.edu. IN A 149.76.4.23 ... Fig. 2.7 - Un extrait du chier named.rev du r eseau 149.76. Une cons equence importante du syst eme in-addr.arpa est que les zones ne peuvent ^ etre cr e ees que comme sur-ensembles de r eseaux IP, et encore pis, que ces masques r e- seaux doivent ^ etre align es sur des octets. Tous les sous-r eseauxde l'universit e Groucho Marx ont un masque de 255.255.255.0, par cons equent une zone in-addr.arpa peut ^ etre cr e ee pour chaque sous-r eseau. Toutefois, si le masque etait 255.255.255.128, la cr eation de zones pour le sous-r eseau 149.76.12.128 serait impossible, car il n'y a
  • 55.
    38 Chapitre 2.Le r eseau TCP/IP aucun moyen de dire au DNS que le domaine 12.76.149.in-addr.arpa a et e s epar e en deux zones d'autorit e, avec des h^ otes r epartis de 1 a 127, et 128 a 255.
  • 56.
    39 Chapitre 3 Con gurationde l' equipement r eseau 3.1 P eriph eriques, pilotes, etc. Jusqu' a maintenant, nous avons parl e d'interfaces r eseau et de TCP/IP en g en eral, mais nous n'avons pas vu ce qui se passe lorsque le ( ( code r eseau ) ) du noyau acc ede a la partie mat erielle. Pour cela, nous devons introduire le concept d'interfaces et de pilotes de p eriph eriques. Tout d'abord, il y a bien s^ ur l' equipement lui-m^ eme, par exemple la carte Ethernet: C'est une plaque de r esine Epoxy, peupl ee de nombreux composants electroniques, et ins er ee dans un des nombreux connecteurs d'extension de votre PC. Elle constitue ce que l'on nomme g en eralement un p eriph erique. Pour que vous puissiez utiliser cette carte Ethernet, le noyau de Linux doit contenir des fonctions sp eciales connaissant la m ethode a employer pour acc eder a ce p eriph e- rique. Ce sont les fameux pilotes de p eriph eriques. Par exemple, Linux poss ede des pilotes pour plusieurs marques de cartes Ethernet qui se ressemblent beaucoup. Ils sont connus en tant que ( ( s erie Becker ) ), du nom de leur auteur, Donald Becker. Un exemple di erent, le pilote D-Link g ere un adaptateur de poche D-Link qui se branche sur le port parall ele du PC. Mais, lorsque nous disons qu'un pilote ( ( g ere) ) un p eriph erique, qu'entendons-nous par l a? Revenons a la carte Ethernet que nous examinions tout a l'heure. Le pilote doit ^ etre capable de communiquer par un moyen quelconque avec la logique pr esente sur ce montage electronique: il doit pouvoir lui envoyer des commandes et des donn ees, et la carte doit d elivrer toute donn ee re cue a ce pilote. Dans les PC, cette communication se fait par l'interm ediaire d'une zone de m emoire destin ee aux entr ees/sorties (E/S) qui donne acc es aux registres de la carte. Toutes
  • 57.
    40 Chapitre 3.Con guration de l' equipement r eseau eth2 eth0 eth1 eth3 Code r eseau du noyau Linux Pilote SMC Pilote 3Com Interface p eriph erique Pilote de r eseau Mat eriel Fig. 3.1 - Les relations entre les interfaces, les pilotes et le mat eriel.
  • 58.
    3.1. P eriph eriques, pilotes,etc. 41 les commandes et les donn ees que le noyau envoie doivent passer par ces registres. La m emoire d'E/S est g en eralement d ecrite en donnant son adresse de d epart, ou adresse de base. Les adresses de base typiques pour les cartes Ethernet sont 0x300 ou 0x360. En principe, vous n'avez pas a vous occuper de ces probl emes mat eriels, car le noyau teste ces caract eristiques lors de l'amor cage pour tenter de d etecter les p eriph eriques install es. Il lit plusieurs adresses m emoire et compare les donn ees trouv ees avec ce qu'il devrait voir si certaines cartes Ethernet etaient pr esentes. Toutefois, il est pos- sible qu'il n'arrive pas a d etecter certain mat eriel; c'est parfois le cas avec des cartes Ethernet bon march e qui ne sont pas des clones parfaits des r ealisations standard d'autres constructeurs. De plus, Linux n'essaiera de d etecter que le premier p eriph e- rique Ethernet. Si vous utilisez plusieurs cartes, il vous faudra l'indiquer explicitement au noyau. Vous pourrez aussi parfois ^ etre oblig e d'indiquer au noyau un autre param etre: la ligne d'IRQ (interruptions mat erielles). Les p eriph eriques g en erent une interruption pour indiquer au noyau qu'ils ont besoin qu'il s'occupe d'eux, par exemple lorsque des donn ees sont arriv ees ou qu'un ev enement sp ecial s'est produit. Dans un PC, ces signaux electriques peuvent se produire sur l'une des 15 lignes d'interruption, num erot ees de 0 a 15.1 Le num ero du canal d'interruption assign e a un p eriph erique est appel e son IRQ, pour r esumer. Comme nous l'avons expliqu e dans le chapitre 2, le noyau acc ede a un p eriph erique par l'interm ediaire d'une interface. Les interfaces sont des parties logicielles qui o rent un ensemble de fonctions communes pour tout type de mat eriel, comme l'envoi ou la r eception de datagrammes. On les identi e par des noms, d e nis directement a l'int erieur du noyau; ce ne sont pas des chiers d ecrivant un p eriph erique comme ceux pr esents dans le r epertoire /dev. Les noms courants pour les interfaces Ethernet sont eth0, eth1, etc. L'assignation des interfaces aux p eriph eriques d epend souvent de l'ordre dans lequel ils ont et e con gu- r es et d etect es. Par exemple, la premi ere carte Ethernet install ee deviendra eth0, la suivante eth1, et ainsi de suite. Les interfaces SLIP et PPP sont g er ees di eremment des autres, car elles sont dynamiques: chaque fois qu'une telle connexion est etablie, le noyau assigne une nouvelle interface au port s erie concern e. Les relations entre le mat eriel, les pilotes de p eriph eriques et les interfaces sont illus- tr ees dans la gure 3.1. Lors de l'amor cage, le noyau ache quels sont les p eriph eriques qu'il a pu d etecter et le nom des interfaces qu'il leur a assign e. Voici un tout petit extrait de ce que l'on peut voir a l' ecran lors du d emarrage de Linux: . . This processor honours the WP bit even when in supervisor mode. Good. 1: Les IRQ 2 et 9 sont les m^ emes, car le PC poss ede deux processeurs d'interruption g erant 8 lignes chacun, mont es en cascade. Le processeur secondaire est connect e a la ligne IRQ 2 du premier.
  • 59.
    42 Chapitre 3.Con guration de l' equipement r eseau Floppy drive(s): fd0 is 1.44M Swansea University Computer Society NET3.010 IP Protocols: ICMP, UDP, TCP PPP: version 0.2.1 (4 channels) OPTIMIZE_FLAGS TCP compression code copyright 1989 Regents of the University of California PPP line discipline registered. SLIP: version 0.7.5 (4 channels) CSLIP: code copyright 1989 Regents of the University of California dl0: D-Link DE-600 pocket adapter, Ethernet Address: 00:80:C8:71:76:95 Checking 386/387 coupling... Ok, fpu using exception 16 error reporting. Linux version 1.1.11 (okir@monad) #3 Sat May 7 14:57:18 MET DST 1994 Nous voyons que le noyau a et e compil e avec le support de TCP/IP et qu'il comprend des pilotes pour SLIP, CSLIP et PPP. La troisi eme ligne en partant de la n indique qu'un adaptateur D-Link a et e d etect e et install e en tant qu'interface dl0. Si vous avez une carte Ethernet, le noyau achera une ligne commen cant par eth0, suivie par le type de carte d etect ee, par exemple: eth0: 3c509 at 0x300 tag 1, BNC port, address 00 60 8c 53 d4 1d, IRQ 15. 3c509.c:1.03 10/8/94 becker@cesdis.gsfc.nasa.gov Si vous avez install e une carte Ethernet et qu'aucun message de ce type n'appara^ t, c'est que le noyau est incapable de d etecter la carte correctement. Nous verrons com- ment rem edier a cette situation un peu plus loin. 3.2 Con guration du noyau La plupart des distributions binaires de Linux sont fournies avec une disquette d'amor- cage qui convient a tous les equipements courants des PC. Cela signi e que le noyau contient toutes sortes de pilotes pr econ gur es dont vous n'aurez jamais besoin, mais qui g^ achent inutilement votre pr ecieuse m emoire. Par cons equent, vous devrez g en e- ralement vous constituer votre propre version du noyau, ne contenant que ce dont vous aurez r eellement besoin. Avec Linux, vous devrez vous habituer a recompiler le noyau. Cette op eration est d ecrite dans l'ouvrage Le Syst eme Linux, de Matt Welsh (voir l'annexe ( ( Bibliogra- phie ) )). Ici, nous nous limiterons aux options de con gurations qui concernent le r eseau. La commande make config commencera par vous demander de choisir certaines op- tions de con guration g en erale, par exemple si vous poss edez un coprocesseur ma- th ematique ou non. L'une de ces options concernera le r eseau; lorsque vous verrez ( ( TCP/IP networking ) ), r epondez y a la question (sinon votre noyau sera incapable de travailler en r eseau).
  • 60.
    3.2. Con gurationdu noyau 43 3.2.1 Options du noyau dans Linux 1.0 et au-del a Apr es cette partie, le programme de con guration vous proposera di erentes choses commes les pilotes SCSI, etc. Suivra une liste de questions concernant le support du r eseau. Ces options sont en constante evolution au fur et a mesure du d eveloppement du noyau et de nouveaux pilotes, aussi ce que vous verrez s'acher chez vous pourra di erer l eg erement de ce que vous lirez ici. Typiquement, la liste des options o ertes par la plupart des noyaux Linux aux alentours des versions 1.0 et 1.1 ressemble a ceci: * * Network device support * Network device support? (CONFIG_ETHERCARDS) [y] En d epit de ce qui est ecrit entre parenth eses, vous devez r epondre y quel que soit le type de p eriph erique r eseau, Ethernet, SLIP, ou PPP. En r epondant y, le support Ethernet est valid e automatiquement; mais les autres types de pilotes r eseau feront l'objet de questions s epar ees. SLIP (serial line) support? (CONFIG_SLIP) [y] SLIP compressed headers (SL_COMPRESSED) [y] PPP (point-to-point) support (CONFIG_PPP) [y] PLIP (parallel port) support (CONFIG_PLIP) [n] Ces questions concernent les di erentes couches de protocoles support ees par Linux. SLIP permet le transport de datagrammes IP sur les ports s erie; CSLIP en est une am elioration, les en-t^ etes TCP/IP sont compress es. Notez que cette option ne valide pas automatiquent CSLIP, mais inclut les fonctions n ecessaires dans le noyau pour pouvoir l'utiliser eventuellement. PPP est un autre protocole utilis e pour r ealiser une liaison r eseau a travers des liaisons s erie. Il est bien plus souple que SLIP et n'est pas limit e a IP; il peut tranf erer n'importe quel type de paquet r eseau. Si cette option n'appara^ t pas chez vous, c'est que vous poss edez une version peu r ecente de Linux. PLIP permet d'envoyer des datagrammes IP a travers un port imprimante parall ele. Peu performant, il est surtout utilis e pour communiquer tant bien que mal avec des PC fonctionnant sous MS-DOS, ou sur des machines portables d epourvues de cartes Ethernet. Les questions suivantes concernent les cartes Ethernet de di erents constructeurs. De jour en jour, de nouveaux pilotes appara^ ssent et par cons equent vous verrez de plus en plus de questions ajout ees a cette section. Si vous d esirez r ealiser un noyau utilisable sur plusieurs machines equip ees de cartes di erentes, vous pouvez valider plusieurs pilotes. NE2000/NE1000 support (CONFIG_NE2000) [y] WD80*3 support (CONFIG_WD80x3) [n]
  • 61.
    44 Chapitre 3.Con guration de l' equipement r eseau SMC Ultra support (CONFIG_ULTRA) [n] 3c501 support (CONFIG_EL1) [n] 3c503 support (CONFIG_EL2) [n] 3c509/3c579 support (CONFIG_EL3) [n] HP PCLAN support (CONFIG_HPLAN) [n] AT1500 and NE2100 (LANCE and PCnet-ISA) support (CONFIG_LANCE) [n] AT1700 support (CONFIG_AT1700) [n] DEPCA support (CONFIG_DEPCA) [n] D-Link DE600 pocket adaptor support (CONFIG_DE600) [y] AT-LAN-TEC/RealTek pocket adaptor support (CONFIG_ATP) [n] * * CD-ROM drivers * ... En n, dans la section consacr ee aux syst emes de chiers, le script de con guration vous demandera si vous voulez le support de NFS, le syst eme de chiers par r eseau. Il vous permet de monter ou d'exporter des disques durs distants a travers le r eseau, ceux-ci apparaissant de mani ere transparente comme s'ils etaient locaux, directement connect es a la machine. NFS filesystem support (CONFIG_NFS_FS) [y] 3.2.2 Options du noyau a partir de Linux 1.1.14 A partir de la version 1.1.14 de Linux, o u un support de IPX en alpha-test t son apparition, la proc edure de con guration a l eg erement chang e. La section concernant les options g en erales demande maintenant si l'on d esire le support r eseau en g en eral. Elle est imm ediatement suivie par quelques questions concernant diverses options possibles. * * Networking options * TCP/IP networking (CONFIG_INET) [y] Pour pouvoir utiliser TCP/IP, vous devez r epondre y a cette question. Si vous r epon- dez n, vous pourrez toutefois compiler le noyau avec le support IPX. IP forwarding/gatewaying (CONFIG_IP_FORWARD) [n] Vous devez valider cette option si votre syst eme fonctionne en passerelle entre deux r eseaux Ethernet, ou encore entre un r eseau et un lien SLIP/PPP. Bien qu'il n'y ait aucun inconv enient majeur a laisser cette possibilit e en service, vous pouvez pr ef erer ne pas la valider a n de con gurer votre machine en tant que rewall. Les Firewalls sont des h^ otes connect es a deux r eseaux ou plus, mais qui ne routent aucun tra c entre eux. Ils sont couramment employ es pour o rir des acc es Internet a moindres
  • 62.
    3.2. Con gurationdu noyau 45 risques pour le r eseau local interne. Les utilisateurs sont autoris es a se connecter sur le rewall et acc eder ainsi a l'Internet, mais les machines locales sont prot eg ees de toute attaque ext erieure puisqu'aucune connexion ne pourra traverser ce rewall. * * (it is safe to leave these untouched) * PC/TCP compatibility mode (CONFIG_INET_PCTCP) [n] Cette option permet d' eviter de d eclencher un bogue dans certaines versions de PC/TCP, une impl ementation commerciale de TCP/IP pour le syst eme MS-DOS. Si vous la validez, vous pourrez toujours communiquer avec le reste du monde, mais les performances peuvent devenir m ediocres sur les liaisons a faible vitesse. Reverse ARP (CONFIG_INET_RARP) [n] Ici, il s'agit de valider ou non le protocole RARP (Reverse Address Resolution Pro- tocol). Il sert aux stations diskless et aux terminaux X, qui ont besoin d'obtenir leur adresse IP au d emarrage. Vous ne devez valider RARP que si vous compter utiliser de tels clients. Assume subnets are local (CONFIG_INET_SNARL) [y] Lorsqu'il envoie des donn ees par TCP, le noyau doit les tron conner en plusieurs pa- quets avant de les passer a la couche IP. Pour les h^ otes pouvant ^ etre atteints par un r eseau local comme l'Ethernet, il cr eera des paquets plus grands que pour ceux qui vont parcourir une longue distance2. Si vous ne validez pas SNARL (( ( SubNets ARe Local ) ), les sous-r eseaux sont locaux), le noyau consid erera qu'un r eseau n'est local que s'il y a une interface y etant directement rattach ee. Toutefois, si vous regardez le r eseau de classe B de l'universit e Groucho Marx, la totalit e de cette classe B est locale, mais la plupart des h^ otes sont interfac es avec seulement un ou deux sous-r eseaux. Si vous validez SNARL, le noyau pourra consid erer que tous les sous-r eseaux sont locaux et utiliser de grands paquets avec toutes les machines du campus. Si vous avez besoin de paquets de plus petite taille en direction de certains h^ otes (parce que les donn ees passent par exemple par une liaison modem SLIP), vous pourrez le faire gr^ ace a l'option mtu de la commande route, qui est bri evement d ecrite a la n de ce chapitre. Disable NAGLE algorithm (normally enabled) (CONFIG_TCP_NAGLE_OFF) [n] L'algorithme de Nagle permet d' eviter d'envoyer des paquets IP particuli erement petits, appel es tinygrams. Ils sont souvent cr e es par les outils interactifs qui ont a 2: Cette m ethode permet d' eviter la fragmentation par des liens qui ont une taille de paquet maximale tr es r eduite.
  • 63.
    46 Chapitre 3.Con guration de l' equipement r eseau transmettre par le r eseau tr es peu de donn ees a la fois, comme telnet ou rsh. Sur des liaisons lentes, comme celles r ealis ees par modem, ils constituent une perte de d ebit importante. Cet algorithme tente d' eviter ce ph enom ene en retenant la transmission de donn ees TCP quelques instants, en certaines circonstances. Vous n'aurez besoin de supprimer cette fonction que si vous avez de s erieux et fr equents probl emes de perte de datagrammes. The IPX protocol (CONFIG_IPX) [n] Cette option valide le support de IPX, le protocole de transport utilis e par les r eseaux Novell. Il est toujours en d eveloppement, et n'est pas tr es utilisable pour l'instant. Le d eveloppement est bloqu e en raison du manque d'information disponible sur les di erentes couches de ce protocole, qui n'est pas du domaine public: les sp eci cations sont vendues a un prix inadmissible, et selon une clause de non-divulgation. Si la situation se d ebloque, il sera peut-^ etre possible dans l'avenir d' echanger des donn ees avec des utilitaires MS-DOS utilisant IPX et de router du tra c entre des r eseaux Novell a travers une liaison PPP. A partir de la version 1.1.16, Linux o re un nouveau type de pilote, le pilote dummy; que l'on peut traduire par ( ( bidon ) ), vous allez voir pourquoi. La question suivante appara^ t vers le d ebut de la section concernant les pilotes r eseau: Dummy net driver support (CONFIG_DUMMY) [y] Ce pilote ne fait pas grand-chose, mais il est tr es utile sur des machines isol ees ou reli ees uniquement en SLIP ou PPP. C'est, en r esum e, une interface loopback sup- pl ementaire, qui permet aux machines faisant du SLIP mais n'ayant aucune liaison Ethernet, d'avoir une interface correspondant en permanence a votre adresse IP. Vous trouverez des explications plus d etaill ees sur le sujet dans la section The Dummy Interface du chapitre 5, a la page 74. 3.3 Tour d'horizon des pilotes r eseau de Linux Le noyau de Linux supporte un bon nombre de pilotes pour divers types de p eriph e- riques r eseau. Cette section propose un bref aper cu des di erentes familles existantes, et le nom des interfaces associ ees. Vous trouverez ci-dessous la liste des noms standards attribu es aux interfaces r eseau sous Linux. La plupart des pilotes supportent plus d'une interface, dans ce cas celles-ci sont num erot ees a partir de z ero (comme eth0, eth1, ainsi de suite). lo L'interface locale loopback. Utilis ee a des ns de tests, ou par quelques applications r eseau. Elle fonctionne comme un circuit ferm e dans le- quel tout datagramme ecrit sera imm ediatement retourn e a la couche
  • 64.
    3.4. Installation Ethernet47 r eseaudu syst eme. Il y a toujours une interface loopback pr esentedans le noyau, et il n'y a que peu d'int er^ et a en disposer de plusieurs. eth0, eth1: : : Cartes Ethernet. Il s'agit du nom g en erique de la plupart de ces p eriph eriques. dl0, dl1: : : Ces interfaces permettent d'acc eder a un adaptateur de poche D-Link DE-600, un autre p eriph erique Ethernet. Il est un peu sp ecial, en ce sens qu'il est pilot e par le port imprimante parall ele du PC. sl0, sl1: : : Interfaces SLIP. Elles sont associ ees aux ports s erie, dans l'ordre o u elles sont allou ees pour une liaison SLIP. Le noyau supporte jusqu' a quatre interfaces de ce type (16 sur option dans les versions r ecentes). ppp0, ppp1: : : Interfaces PPP. Tout comme les pr ec edentes, elles sont associ ees a chaque port s erie pass e en mode PPP. Pour l'instant, il peut y en avoir jusqu' a quatre, ou plus en modi ant l eg erement le code source. plip0, plip1: : : Interfaces PLIP, permettant de transporter des datagrammes IP par les ports imprimante parall ele. Jusqu' a trois interfaces de ce type sont support ees; elles sont allou ees par le pilote PLIP au moment de l'amor cage du syst eme, pour chaque port parall ele. Lorsque d'autres pilotes de p eriph eriques verront le jour, comme ISDN, AX.25 (qui sont en stade alpha de d eveloppement), ou autres, de nouveaux noms feront leur apparition. Dans les sections suivantes, nous allons aborder en d etail l'utilisation des pilotes d e- crits ci-dessus. 3.4 Installation Ethernet Le code r eseau du noyau de Linux supporte diverses marques de cartes Ethernet. L'es- sentiel des pilotes a et e ecrit par Donald Becker (becker@cesdis.gsfc.nasa.gov), auteur d'une famille de pilotes pour les cartes construites autour du circuit 8390 de National Semiconductor, connue maintenant sous le nom de ( ( s erie Becker ) ). Il y a egalement de quoi g erer l'adaptateur D-Link, qui permet de connecter un r e- seau Ethernet par le port parall ele, ce pilote est r ealis e par David C. Davies (da- vies@wanton.lkg.dec.com). 3.4.1 C^ ablage Ethernet Si vous installez un r eseau Ethernet pour la premi ere fois de votre vie, quelques mots sur son c^ ablage ne seront pas de trop ici. L'Ethernet est tr es sensible a la qualit e des liaisons; le c^ able doit ^ etre termin e a chacun des deux bouts par une r esistance de 50 ,
  • 65.
    48 Chapitre 3.Con guration de l' equipement r eseau et vous ne devez pas cr eer de branches (c'est- a-dire de connexion en etoile). Si vous employez un c^ able coaxial avec des connecteurs en ( ( T ) ), ces connecteurs doivent ^ etre branch es directement sur la carte Ethernet: vous ne devez jamais ins erer un c^ able a cet endroit. Si vous vous connectez sur un ( ( gros ) ) Ethernet, vous devrez brancher votre machine par l'interm ediaire d'un transceiver (appel e quelquefois Ethernet Attachment Unit). Il peut se brancher dans la prise AUI a 15 broches de votre carte Ethernet. Mais il est aussi possible d'employer un c^ able blind e entre le transceiver et la prise AUI. 3.4.2 Cartes support ees Une liste compl ete des cartes Ethernet support ees par Linux est disponible dans le document ( ( Ethernet HOWTO ) ), qui est post e tous les mois dans le forum Usenet comp.os.linux.anwers, par Paul Gortmaker3. La liste ci-dessous contient les cartes les plus connues support ees par Linux. La liste originale est au moins trois fois plus longue. M^ eme si votre mat eriel est cit e ici, consultez d'abord le HOWTO; il y a souvent de petits d etails importants a savoir pour con gurer correctement certains equipements. Un excellent exemple: certaines cartes Ethernet utilisent par d efaut le m^ eme canal DMA (acc es direct m emoire) que le contr^ oleur SCSI Adaptec 1542. Si vous ne changez rien sur ces cartes, votre disque dur risque de contenir des donn ees erratiques a chaque paquet r eseau re cu... 3Com EtherLink Sont support es parfaitement les mod eles 3c503 et 3c503/16, ainsi que les 3c507 et 3c509. La carte 3c501 fonctionnera egalement sous Linux, mais est bien trop m ediocre pour une r eelle utilisation. Novell Eagle NE1000 et NE2000, et une grande quantit e de clones. Les mod eles NE1500 et NE2100 sont egalement support es. Western Digital/SMC WD8003 et WD8013 (les m^ emes que SMC Elite et SMC Elite Plus) sont support ees, ainsi que la nouvelle SMC Elite 16 Ultra. Hewlett Packard HP 27252, HP 27247B, et HP J2405A. D-Link Adaptateur ( ( pocket ) ) DE-600, DE-100, DE-200, et DE-220-T. Il existe aussi un patch pour faire fonctionner la DE-650-T, qui est une carte PCMCIA4. DEC DE200 (32K/64K), DE202, DE100, et DEPCA r evision E. 3: Paul peut ^ etre joint a l'adresse gpg109@rsphysse.anu.edu.au. 4: On peut l'obtenir, ainsi que d'autres utilitaires, sur les sites miroir Linux comme tsx- 11.mit.edu ou en France ftp.ibp.fr, dans /pub/linux/packages/laptops.
  • 66.
    3.4. Installation Ethernet49 Allied Teliesis AT1500 et AT1700. Pour utiliser l'une de ces cartes sous Linux, vous pouvez employer un noyau pr e- compil e en provenance de l'une des principales distributions binaires du syst eme; tous les pilotes correspondants y sont g en eralement int egr es. Toutefois, a terme, la meilleure solution sera de vous compiler votre propre noyau avec la con guration exacte dont vous aurez besoin. 3.4.3 Autod etection des cartes Ethernet Lors de l'amor cage de Linux, le noyau va essayer de localiser votre carte Ethernet et en d eterminer le type. Le tableau suivant montre l'ordre dans lequel ces tests sont e ectu es (le premier est en haut) et les adresses test ees. Carte Adresses test ees SMC 16 Ultra 0x300, 0x280 3c501 0x280 3c503 0x300, 0x310, 0x330, 0x350, 0x250, 0x280, 0x2a0, 0x2e0 NEx000 0x300, 0x280, 0x320, 0x340, 0x360 HP 0x300, 0x320, 0x340, 0x280, 0x2C0, 0x200, 0x240 DEPCA 0x300, 0x320, 0x340, 0x360 Cette d etection automatique pose deux probl emes. Le premier est que le code peut ne pas d etecter correctement toutes les cartes; c'est particuli erement vrai dans le cas de clones bon march e courants et pour quelques cartes de type WD80x3. Le second probl eme, est que le noyau ne prendra en compte qu'une seule carte Ethernet, la premi ere rencontr ee, et ne cherchera pas plus loin. Ce comportement est volontaire, car on suppose que, dans ce cas, vous voulez contr^ oler quelle carte est assign ee a quelle interface. Si vous utilisez plusieurs cartes Ethernet dans la m^ eme machine, ou si l'autod etection echoue, il vous faudra indiquer au noyau le mat eriel utilis e et les adresses de base a prendre en compte. Avec Net-3, il y a deux fa cons de faire. L'une consiste a changer ou ajouter les infor- mations n ecessaires dans le chier drivers/net/Space.c des sources du noyau. Cette m ethode n'est recommand ee que si vous connaissez bien le code r eseau de Linux. L'autre solution, bien meilleure, consiste a indiquer ces informations au moment de l'amor cage de Linux. Si vous utilisez lilo pour lancer votre syst eme, il vous est pos- sible de passer des param etres au noyau en les sp eci ant par l'option append du chier
  • 67.
    50 Chapitre 3.Con guration de l' equipement r eseau lilo.conf. Pour informer Linux de la pr esence d'une carte Ethernet particuli ere, vous pouvez mettre: ether=irq,adresse,param1,param2,nom Les quatre premiers param etres sont num eriques, le dernier est le nom du p eriph e- rique. Toutes les valeurs num eriques sont optionnelles; si l'une d'elles est omise ou initialis ee a z ero, le noyau tentera de la d etecter automatiquement ou utilisera une valeur par d efaut. Le premier param etre ajuste la ligne d'IRQ assign ee au p eriph erique. Par d efaut, le noyau tentera une autod etection; le pilote pour 3c503 a la particularit e de s electionner une IRQ libre parmi les IRQ 5, 9, 3 et 4, et con gure la carte pour cette valeur. Le param etre adresse donne l'adresse de base d'entr ees/sorties de la carte; la valeur z ero indique qu'il faudra tenter une d etection automatique aux adresses cit ees plus haut. Les deux param etres restants peuvent avoir di erentes signi cations selon les pilotes. Pour ce qui est des cartes utilisant de la m emoire partag ee, comme les WD80x3, ils sp eci ent le d ebut et la n de cette zone de m emoire. D'autres cartes utilisent param1 pour ajuster le niveau des messages de d eboguage ach es. Les valeurs de 1 a 7 correspondent a une verbosit e croissante, alors que 8 les supprimera tous; 0 d enote la valeur par d efaut. Les pilotes 3c503 utilisent param2 pour s electionner le transceiver interne (d efaut) ou un bo^ tier externe (avec une valeur de 1). Le premier utilise le connecteur BNC, le second le port AUI de la carte. Si vous avez deux cartes Ethernet, vous pouvez laisser Linux d etecter la premi ere et passer les param etres pour la seconde par lilo. Vous devez toutefois faire attention que le pilote ne trouve pas accidentellement la seconde carte avant la premi ere, vous disposez pour cela de l'option reserve de lilo, qui indique explicitement au noyau d' eviter de tester l'espace d'E/S occup e par cette seconde carte. Par exemple, pour que Linux installe un second adaptateur Ethernet a 0x300 en tant que eth1, vous passerez les param etres suivants: reserve=0x300,32 ether=0,0x300,eth1 L'option reserve permet d'^ etre assur e qu'aucun pilote ne tentera d'acc eder a l'espace d'entr ees/sorties de la carte pour tenter d'autod etecter quelque p eriph erique. Vous pouvez egalement utiliser les param etres du noyau pour forcer l'autod etection de eth0: reserve=0x340,32 ether=0,0x340,eth0 Pour supprimer toute d etection automatique, vous pouvez sp eci er un argument adresse de valeur -1: ether=0,-1,eth0
  • 68.
    3.5. Le pilotePLIP 51 3.5 Le pilote PLIP PLIP signi e Parallel Line IP (IP sur port parall ele) et constitue une m ethode econo- mique pour communiquer en r eseau lorsque vous n'avez que deux machines a connec- ter. Il utilise le port imprimante parall ele et un c^ able sp ecial, et permet des vitesses de 10 a 20 kbps. PLIP fut originellement d evelopp e par la soci et e Crynwr, Inc. Sa r ealisation est plut^ ot ing enieuse: Depuis toujours, le port parall ele des PC n'est qu'un port imprimante unidirectionnel; les huit lignes de donn ees ne pouvaient ^ etre utilis ees que pour envoyer du PC vers le p eriph erique, mais pas dans l'autre sens. PLIP s'a ranchit de cette limitation en utilisant les cinq lignes de statut du port pour l'entr ee des donn ees, ce qui oblige a transf erer des demi-octets. Ce mode op eratoire s'appelle le mode PLIP 0. De nos jours, ces ports unidirectionnels ne semblent plus ^ etre utilis es; par cons equent, il y a une extension nomm ee mode 1 qui utilise l'interface 8 bits. Pour l'instant, Linux ne supporte que le mode 0. Contrairement aux toutes premi eres versions du code, il tente maintenant d'^ etre compatible avec les impl ementations PLIP de Crynwr, aussi bien qu'avec le pilote PLIP du programme NCSA telnet.5 Pour connecter deux machines par PLIP, il vous faut un c^ able sp ecial que l'on peut acheter chez certains revendeurs sous le nom de ( ( Null Printer ) ) ou ( ( Turbo Laplink ) ). Vous pouvez toutefois le r ealiser vous-m^ eme; c'est tr es simple et bien plus economique. L'annexe A vous montrera comment. Le pilote PLIP de Linux est le r esultat du travail d'innombrables participants; il est actuellement maintenu par Niibe Yutaka. Lorsqu'il est inclus dans le noyau, il cr ee une interface r eseau pour chacun des ports imprimante possibles, plip0 correspondant au premier (lp0), plip1 etant le second (lp1), et ainsi de suite. La correspondance entre ces interfaces et les ports est la suivante: Interface Port E/S IRQ plip0 0x3BC 7 plip1 0x378 7 plip2 0x278 5 Si vous avez con gur e votre port parall ele di eremment, vous devrez changer ces valeurs dans le chier drivers/net/Space.c des sources du noyau de Linux et recompiler une nouvelle version. Les ports imprimante restent utilisables normalement: ils ne sont pris en charge par le pilote PLIP que lorsque l'interface correspondante est con gur ee ( ( up ) ). 5: NCSA telnet est un c el ebre programme pour MS-DOS qui fournit TCP/IP sur Ethernet ou PLIP, et supporte telnet et FTP.
  • 69.
    52 Chapitre 3.Con guration de l' equipement r eseau 3.6 Les pilotes SLIP et PPP SLIP (Serial Line IP) et PPP (Point-to-Point Protocol) sont tr es utilis es pour transf e- rer des paquets IP par des liaisons s erie. Beaucoup de fournisseurs de connectivit e IP o rent des acc es a l'Internet par connexion t el ephonique, a l'aide d'un modem et de SLIP ou PPP (seul moyen nanci erement a la port ee des particuliers pour l'instant). Pour employer ces protocoles, aucune modi cation mat erielle n'est a e ectuer; vous pouvez utiliser n'importe quel port s erie. Comme la con guration de ces ports s erie n'est pas sp eci que a TCP/IP, un chapitre s epar e y est consacr e. Pour plus d'infor- mations, consultez par cons equent le chapitre 4, page 53.
  • 70.
    53 Chapitre 4 Con gurationdes ports s erie Certaines rumeurs rapportent qu'il y aurait des gens n'ayant qu'un ordinateur, et trop pauvres pour s'o rir une liaison Internet T1. Il para^ trait que pour acc eder tout de m^ eme au courrier electronique et aux News Usenet, ils utilisent des connexions SLIP, des r eseaux UUCP et des serveurs BBS, qui passent par le r eseau t el ephonique public. Ce chapitre est destin e a aider tous ceux qui, comme eux, sont reli es au reste du monde gr^ ace a un modem. Toutefois, nous ne pourrons entrer dans le d etail ici, comme la con guration du modem en r eponse pour r ealiser un serveur par exemple. Consultez le document Linux Serial HOWTO de Greg Hankins1, qui est post e r eguli erement dans le forum Usenet comp.os.linux.announce, pour obtenir des renseignements plus pr ecis. 4.1 Programmes de communication pour modems Vous trouverez bon nombre de programmes de communications fonctionnant sous Linux. Beaucoup d'entre eux sont des emulateurs de terminaux, qui permettent de se connecter a un autre ordinateur comme depuis un simple terminal. Le programme traditionnel permettant cela sous UNIX est kermit. Mais ses possibilit es sont plut^ ot r eduites, il existe bien d'autres logiciels plus souples et ergonomiques, comportant annuairest el ephoniques,langagesscript, etc. L'un deux, minicom, ressemble beaucoup aux programmesde communications pour MS-DOS, tant dans son apparence que dans son utilisation. Il en existe egalement pour X Window, seyon par exemple. Il existe aussi un certain nombre de logiciels de BBS, pour ceux qui d esirent monter un serveur de ce type. On peut en trouver par exemple sur sunsite.unc.edu dans le r epertoire /pub/Linux/system/Network. 1: On peut joindre Greg a l'adresse gregh@cc.gatech.edu.
  • 71.
    54 Chapitre 4.Con guration des ports s erie En dehors des emulateurs de terminaux, il existe aussi des programmes utilisant une liaison s erie non interactive pour transporter des donn ees entre ordinateurs. En e et, il est beaucoup plus rapide de t el echargerde mani ereautomatique quelques douzainesde kilo-octets que de lire votre courrier en restant connect e, par exemple. En contrepartie, cela demande bien plus de place disque en raison des informations inutiles que vous ne lirez pas, mais transf ererez quand m^ eme; particuli erement dans les News Usenet. Le meilleur exemple de ce type de logiciels de communication est UUCP. Il s'agit d'une s erie de programmes qui copient des chiers entre ordinateurs, ex ecutent des commandes sur la machine distante, etc. UUCP est fr equemment utilis e pour le trans- port du courrier electronique et de Usenet dans les r eseaux priv es. L'ensemble Taylor- UUCP, de Ian Taylor, qui fonctionne aussi sous Linux, sera d ecrit dans le chapitre suivant. Il existe d'autres logiciels non interactifs du m^ eme genre, utilis es sur le r eseau de BBS Fidonet, et des portages Linux sont disponibles, comme par exemple ifmail. SLIP se situe entre les deux, permettant un usage interactif ou non. Beaucoup utilisent SLIP pour appeler leur fournisseur de services IP a n de se connecter a l'Internet, ou pour acc eder a tout autre r eseau priv e. Ce protocole peut aussi ^ etre employ e pour des liaisons permanentes entre deux r eseaux, bien que ce ne soit vraiment int eressant que par ISDN2. 4.2 Introduction aux p eriph eriques s erie Les p eriph eriques qu'o re un noyau UNIX pour acc eder aux terminaux s erie sont typiquement appel es ttys. Il s'agit de l'abr eviation de TeletypeTM, qui etait l'un des principaux constructeur de terminaux dans les premiers jours d'UNIX. Le terme est rest e pour d esigner maintenant tout terminal fonctionnant en mode texte. Tout au long de ce chapitre, nous utiliserons tty exclusivement pour d esigner les p eriph eriques o erts par le noyau. Linux fait la distinction entre trois classe de ttys: les consoles (virtuelles), les pseudo- terminaux (semblables a un tube bi-directionnel, utilis es par des applications comme X11), et les p eriph eriques s erie. Ces derniers sont compt es parmi les ttys, car ils permettent des sessions interactives via une connexion s erie; que ce soit depuis un terminal c^ abl e ou un ordinateur distant connect e par t el ephone. Les ttys poss edent un certain nombre de param etres con gurables, par l'interm ediaire de l'appel syst eme ioctl(2). Beaucoup ne concernent que les ports s erie, car ce type de p eriph erique demande une grande souplesse pour s'adapter a tout type de connexions. Parmi les param etres les plus importants de la ligne, on trouve la vitesse et la parit e. Mais il existe aussi des drapeaux ( ags) pour la conversion entre majuscules et mi- nuscules, des retour-chariots en sauts de ligne, etc. Le pilote tty peut aussi supporter 2: Dans certains pays, une liaison permanente par l' equivalent de notre NUM ERIS est nanci ere- ment abordable pour un particulier; ce n'est evidemment pas du tout le cas en France.
  • 72.
    4.3. Acc eder auxports s erie 55 diverses disciplines de ligne, qui permettent de changer compl etement le comporte- ment du p eriph erique. Par exemple, le pilote SLIP de Linux est impl ement e au moyen d'une discipline de ligne sp eciale. La mesure de la vitesse d'une ligne s erie est un peu ambigu e. En principe, il s'agit du nombre de bits par seconde (bps). Quelquefois, vous entendrez des gens exprimer cette vitesse en bauds, ce qui est incorrect. Ces deux termes ne sont pas interchangeables: les bauds se r ef erent a une caract eristique physique de quelque p eriph erique, la fr e- quence a laquelle des impulsions sont transmises. Les bits par seconde d enotent une caract eristique d'une connexion s erie existant entre deux points, mesurant le nombre moyen de bits transmis en une seconde. Il est important de savoir que ces deux valeurs sont g en eralement di erentes, car beaucoup de p eriph eriques encodent plusieurs bits par impulsion electrique. 4.3 Acc eder aux ports s erie Comme pour tous les p eriph eriques dans un systeme UNIX, on acc ede aux ports s erie par l'interm ediaire de chiers sp eciaux, situ es dans le r epertoire /dev. Mais dans le cas particulier des ports s erie, chaque port se voit attribuer deux chiers di erents, qui conf ereront au p eriph erique un comportement di erent selon qu'on utilisera l'un ou l'autre. Le premier p eriph erique est employ e lorsque le port est utilis e en entr ee, pour recevoir des appels; il a un nombre majeur de 4, et les chiers s'appellent ttyS0, ttyS1, etc. Le second sert pour utiliser le port en sortie, pour r ealiser des appels; le nombre majeur est 5 et les chiers se nomment alors cua0, cua1, etc. Les nombres mineurs sont identiques pour les deux types. Si votre modem est connect e a l'un des ports que l'on appelle souvent COM1 a COM4, le nombre mineur sera le num ero du port de communication plus 63. Si votre equipement est di erent, par exemple si vous employez une carte multis erie o rant bien plus de 4 ports, consultez le document Serial HOWTO. Supposons que votre modem soit connect e sur COM2. Par cons equent le nombre mineur vaudra 65, et pour l'utiliser en appel le nombre majeur sera 5. Il devrait y avoir un chier de p eriph erique nomm e cua1 ayant ces caract eristiques. Achez la liste des ttys s erie du r epertoire /dev. Les colonnes 5 et 6 montrent respectivement les nombres majeurs et mineurs: $ ls -l /dev/cua* crw-rw-rw- 1 root root 5, 64 Nov 30 19:31 /dev/cua0 crw-rw-rw- 1 root root 5, 65 Nov 30 22:08 /dev/cua1 crw-rw-rw- 1 root root 5, 66 Oct 28 11:56 /dev/cua2 crw-rw-rw- 1 root root 5, 67 Mar 19 1992 /dev/cua3 Si vous n'avez rien de tout cela sur votre syst eme, vous allez devoir les cr eer.
  • 73.
    56 Chapitre 4.Con guration des ports s erie Passez superutilisateur et tapez: # mknod -m 666 /dev/cua1 c 5 65 # chown root.root /dev/cua1 Certains sugg erent de cr eer un lien symbolique du nom de /dev/modem vers le p eri- ph erique o u le modem est connect e, de sorte que les utilisateurs occasionnels n'aient pas a se souvenir de noms aussi peu intuitifs que /dev/cua1. Toutefois, vous ne devrez pas utiliser /dev/modem dans un programme et le vrai /dev/cua1 dans un autre, car certains logiciels emploient parfois des chiers de verrouillage pour signaler l'utilisa- tion du p eriph erique. Par convention, ces chiers portent un nom d eriv e; par exemple ce sera LCK..cua1 pour indiquer que /dev/cua1 est occup e. Si di erents programmes acc edaient au m^ eme modem par di erents noms de p eriph eriques, ils ne pourraient pas reconna^ tre leurs chiers de verrouillage les uns des autres, et les applications ne fonctionneraient pas correctement. 4.4 Les ports s erie Linux supporte une grande vari et ede cartes s erie au standard RS-232, qui est la norme la plus r epandue pour la communication s erie dans le monde du PC (et ailleurs). Elles utilisent di erents circuits electroniques pour transmettre des bits et des informations de synchronisation, et des lignes additionnelles peuvent ^ etre pr esentes pour signa- ler des conditions particuli eres de la machine ou du modem (d etection de porteuse, contr^ ole de ux mat eriel, etc). Bien que le contr^ ole de ux mat eriel soit facultatif, il est extr^ emement utile. Il permet a chacune des stations de signaler lorsqu'elle est pr^ ete a recevoir plus de donn ees, ou si l'autre c^ ot e doit attendre un peu que les caract eres re cus aient et e trait es avant de continuer. Les lignes utilis ees pour cela sont appel ees ( ( Clear to Send ) ) (CTS) et ( ( Request to Send ) ) (RTS), ce qui a donn e naissance au terme universellement utilis e de ( ( contr^ ole de ux RTS/CTS ) ) 3. Dans les PC, l'interface RS-232 est g en eralement r ealis ee autour d'un circuit ERAU4 d eriv e du 16450 de National Semiconductor, ou de la nouvelle version NSC 16550A5. La principale di erence entre les 16450 et les 16550 est que ces derniers comportent un tampon FIFO de 16 octets, alors que le premier ne poss ede de stockage que pour 1 octet. Le 16550 est donc pr ef erable pour une utilisation a de hautes vitesses, par rapport au 16450 qu'il vaut mieux eviter au-del a de 9600 bauds. Linux g ere bien 3: Il existe une d enomination fran caise pour tous les signaux RS-232, bas ee non pas sur des noms, mais des num eros tellement peu compr ehensibles et m emorisables que personne ne l'utilise. 4: ERAU: ( ( Emetteur-R ecepteur Asynchrone Universel ) ), UART en anglais. 5: Quelques constructeurs, en particulier les fabricants de modems internes equip es de circuits Rockwell, utilisent des composants totalement di erents qui ont et e programm es pour se comporter comme le NSC 16550.
  • 74.
    4.4. Les portss erie 57 entendu tous ces circuits, ainsi que le 8250, qui fut le premier ERAU a equiper les ordinateurs de type PC. Dans la con guration par d efaut, le noyau teste les quatre ports s erie standard COM1 a COM4. Ils se verront assigner les nombres mineurs 64 a 67, comme nous l'avons vu plus haut. Si vous voulez con gurer vos ports s erie correctement, il vous faudra installer le pro- gramme setserial de Ted Tso's, ainsi que le script /etc/rc.serial qui sera ex ecut e au d emarrage du syst eme. Voici un exemple d'un tel script: # /etc/rc.serial - script de configuration des ports s erie. # # D etection interruptions /sbin/setserial -W /dev/cua* # Configuration des p eriph eriques /sbin/setserial /dev/cua0 auto_irq skip_test autoconfig /sbin/setserial /dev/cua1 auto_irq skip_test autoconfig /sbin/setserial /dev/cua2 auto_irq skip_test autoconfig /sbin/setserial /dev/cua3 auto_irq skip_test autoconfig # Affichage de la configuration courante /sbin/setserial -bg /dev/cua* Consultez la documentation fournie avec setserial pour avoir une explication d etaill ee des param etres a employer. Si votre carte s erie n'est pas d etect ee, ou si la commande setserial -bg montre une con guration erron ee, vous devrez forcer les valeurs correctes en les indiquant explici- tement. Ce probl eme se produit parfois avec des modems internes equip es de circuits Rockwell. Si, par exemple, l'ERAU est d etect e comme etant un NSC 16450, alors qu'il s'agit en r ealit e d'un compatible NSC 16550, vous devrez modi er la con guration du port en question ainsi: /sbin/setserial /dev/cua1 auto irq skip test autoconfig uart 16550 Il existe des options similaires pour forcer le port de communication, l'adresse de base, et la ligne d'IRQ utilis ee. Lisez la page de manuel de setserial(8) pour plus de d etails. Si votre modem supporte le contr^ ole de ux mat eriel, assurez-vous qu'il soit bien en service. Les programmes de communications n'essaient pas de le valider par d efaut; vous devez, aussi etonnant que cela puisse para^ tre,le faire manuellement. La meilleure solution est de le mettre en service au lancement du syst eme en mettant dans le chier rc.serial une commande stty comme ceci: $ stty crtscts /dev/cua1
  • 75.
    58 Chapitre 4.Con guration des ports s erie Pour v eri er si le contr^ ole de ux RTS/CTS est actif, faites: $ stty -a /dev/cua1 Cette commande vous achera le param etrage du port s erie concern e avec tous les d etails; chaque drapeau est ach e, avec un signe n egatif s'il est invalid e. Vous devrez trouver dans la liste, crtscts. Si vous voyez -crtscts, c'est que le contr^ ole de ux n'est pas en service.
  • 76.
    59 Chapitre 5 Con gurationdu r eseau TCP/IP Nous allons d ecrire dans ce chapitre toutes les etapes n ecessaires pour con gurer TCP/IP sur votre machine. En partant de l'assignation des adresses IP, nous verrons la con guration des interfaces et, petit a petit, aboutirons a la description de quelques outils tr es pratiques pour traquer les eventuels probl emes pouvant survenir sur votre installation r eseau. Les di erentes op erations que nous allons d ecrire ne seront a e ectuer qu'une seule fois, pour la majorit e d'entre elles. Ensuite, vous n'aurez de modi cations a faire que lors de l'ajout d'une nouvelle machine sur le r eseau,ou si vous recon gurezenti erement le syst eme. Quelques commandes seront toutefois a ex ecuter a chaque d emarrage de Linux, on les invoque g en eralement depuis les scripts /etc/rc du syst eme. Tr es souvent, la partie de cette proc edure sp eci que au r eseau se trouve dans un script appel erc.net ou rc.inet. Quelquefois, vousen trouverezdeux, nomm esrc.inet1 et rc.inet2, le premier initialisant la partie r eseau relative au noyau, le second s'occupant de lancer les services et applications de base. Ici, nous adopterons cette derni ere solution, ces chiers rc.inet1 et rc.inet2 ayant l'avantage de bien clari er les choses. Nous allons commencer par rc.inet1, et nous traiterons des applications dans les pro- chains chapitres. Apr es avoir assimil e celui-ci, vous devriez avoir etabli une s equence de commandes qui con gurent proprement le r eseau TCP/IP sur votre ordinateur. Vous devrez alors remplacer tous les exemples contenus dans rc.inet1 par vos propres commandes, et vous assurer que ce script est bien ex ecut e au d emarrage du syst eme. Les scripts rc fournis dans votre distribution favorite de Linux devraient vous donner un bon exemple de ce qu'il faut faire.
  • 77.
    60 Chapitre 5.Con guration du r eseau TCP/IP 5.1 Montage du syst eme de chiers proc Quelques outils de con guration de la version Net-2 ont besoin du syst eme de chiers proc pour communiquer avec le noyau. Il s'agit d'une interface qui permet d'acc eder a certaines informations internes par l'interm ediaire de chiers. Lorsque /proc est mont e, vous pouvez lister son contenu comme n'importe quel autre syst eme de chiers, et acher par les m ethodes habituelles toutes les informations disponibles. Vous y trouverez par exemple le chier loadavg, contenant la charge de la machine, meminfo, qui montre l'utilisation instantan ee de la m emoire et de la zone de swap. Le code r eseau ajoute a tout cela le r epertoire net. Il contient un certain nombre de chiers montrant certaines choses comme les tables ARP du noyau, l' etat des connexions TCP, les tables de routage, etc. La plupart des outils d'administration r eseau obtiennent leurs informations en lisant ces donn ees. Le syst eme de chiers proc (connu aussi sous le nom de procfs) est g en eralement mont e dans /proc lors du d emarrage du syst eme. La meilleure m ethode pour qu'il le soit est d'ajouter la ligne suivante dans le chier /etc/fstab: # point de montage du procfs: none /proc proc defaults et d'ex ecuter ( ( mount /proc ) ) depuis votre script /etc/rc. Ce procfs est maintenant con gur e dans la plupart des noyaux par d efaut. S'il ne l'est pas dans le v^ otre, vous obtiendrez un message du genre: ( ( mount: fs type procfs not supported by kernel ) ) (syst eme de chiers type procfs non support e par le noyau). Il vous faudra dans ce cas recompiler ce noyau en r epondant ( ( yes ) ) lorsque la con guration vous demandera si vous d esirez le support de procfs. Un dernier mot a propos de procfs. Bien qu'apparaissant comme n'importe quel r eper- toire, contenant des chiers textes ou binaires de toutes tailles, vous ne devez pas vous inqui eter pour votre pr ecieux espace disque dur: ce ne sont que des chiers virtuels, simul es par le noyau. Le tr es gros kcore, par exemple, correspond simplement a toute la m emoire dont vous disposez; plus vous aurez de RAM, plus il sera gros, mais il n'occupe aucune place disque. 5.2 Installation des binaires Si vous utilisez l'une des distributions toutes faites de Linux, elle contiendra probable- ment la plus grande partie des applications et utilitaires r eseau, ainsi qu'un ensemble coh erent d'exemples de con guration. Le seul cas o u vous pourrez avoir a vous procu- rer et installer cette partie, sera lorsque vous installerez une toute nouvelle version du noyau, pouvant demander une mise a jour de ces programmes. Souvent, l' evolution de Linux apporte de profondes modi cations rendant les anciens utilitaires relatifs au r eseau, incompatibles avec la partie correspondante dans le noyau. Il sut souvent
  • 78.
    5.3. Un nouvelexemple 61 de recompiler l'ensemble, mais quelquefois il vous faudra quand m^ eme changer tous les programmes. L'ensemble est g en eralement distribu e parall element aux nouvelles sources du noyau, dans des chiers appel es net-XXX.tar.gz, o u varXXX correspond au num ero de version. Pour Linux 1.0, il s'agit de 0.32b. Le dernier noyau, a l'heure o u nous ecrivons ces lignes (1.1.72 et plus), n ecessite au minimum net-tools-1.1.56.tar.gz. Si vous d esirez compiler et installer les applications TCP/IP standard vous-m^ eme, vous en trouverez les sources sur la plupart des serveurs FTP ou BBS di usant Linux. Ce sont des versions plus ou moins modi ees des programmes de Net-BSD ou quelques autres sources. D'autres grosses applications, comme Mosaic, Archie, Gopher ou IRC doivent ^ etre obtenues s epar ement, comme pour tout autre syst eme UNIX. La plupart se compilent sans modi cation sous Linux si vous suivez correctement les instructions. Le site FTP ociel de Net-3 est sunacm.swan.ac.uk, repris par sunsite.unc.edu dans le r epertoire system/Network/sunacm. Le code d eriv e de BSD par Matthias Ur- lich peut ^ etre obtenu sur ftp.ira.uka.de dans /pub/system/linux/netbsd. En France, allez d'abord voir sur ftp.ibp.fr, le r epertoire /pub/linux contient des miroirs de di erents sites; vous ne devriez pas avoir besoin d'utiliser de co^ uteuses liaisons inter- nationales pour vous procurer du code source Linux. 5.3 Un nouvel exemple Pour toute la suite de ce livre, nous allons prendre un exemple bien plus simple que l'universit e Groucho Marx, et qui devrait ^ etre plus proche de ce que vous allez couramment rencontrer. Consid erons donc ( ( La bi ere virtuelle) ), une petite soci et e qui brasse, comme son nom l'indique, de la bi ere virtuelle. A n de g erer plus ecacement leurs a aires, nos brasseurs virtuels d esirent relier leurs ordinateurs en r eseau, et il se trouve qu'ils fonctionnent tous sous le merveilleux Linux 1.0. Au m^ eme etage, de l'autre c^ ot e du couloir de l'immeuble, se trouve la soci et e ( ( Les caves virtuelles ) ), des viticulteurs travaillant etroitement avec nos brasseurs. Ils pos- s edent leur propre r eseau Ethernet. Naturellement, les deux compagnies veulent relier leurs deux r eseaux ensemble une fois qu'ils seront op erationnels. Pour commencer, ils d esirent installer une passerelle permettant de transf erer des datagrammes entre ces deux r eseaux. Plus tard, ils etabliront un lien UUCP avec le monde ext erieur, a n d'avoir acc es au courrier electronique et aux News Usenet. En n, dans l'avenir, ils pensent installer une connexion SLIP pour pouvoir occasionnellement ^ etre reli es a l'Internet. 5.4 Assignation du nom de machine Pratiquement toutes les applications r eseau n ecessitent qu'il ait et e attribu e un nom a la machine. G en eralement, cela est r ealis e lors du d emarrage du syst eme en ex ecutant
  • 79.
    62 Chapitre 5.Con guration du r eseau TCP/IP la commande hostname; pour initialiser le nom d'h^ ote a la valeur nom, elle doit ^ etre invoqu ee ainsi: # hostname nom La pratique courante est d'indiquer ici le nom d'h^ ote non quali e, c'est- a-dire sans sp eci erle nom de domaine. Parexemple, les machinesde ( ( La bi erevirtuelle) ) peuvent s'appeler trappiste.bibine.com, kro.bibine.com, etc. Ce sont leurs noms ociels, pleinement quali es. Leur noms d'h^ otes locaux seraient alors uniquement la premi ere composante, comme trappiste. Toutefois, comme le nom local est fr equemmentutilis e pour trouver l'adresse IP de la machine, vous devez vous assurer que le resolver soit capable de le faire; cela signi e que vous devez indiquer ce nom dans le chier /etc/hosts. Certains sugg erent d'utiliser la commande domainname pour indiquer au noyau quel est le nom de domaine, la partie restante du FQDN. Ainsi, il serait possible de com- biner la sortie de hostname et de domainname pour obtenir le nom quali e. Pourtant, cette solution n'est qu' a moiti e correcte: la commande domainname est normalement utilis ee pour initialiser le domaine NIS de la machine, qui peut ^ etre totalement di e- rent du domaine DNS auquel cet h^ ote appartient. 5.5 Assignation des adresses IP Si vous con gurez le r eseau sur votre machine pour une utilisation locale autonome (par exemple, juste pour installer le serveur de News INN), vous pouvez sauter cette section, car la seule adresse IP dont vous avez besoin correspond a l'interface loopback, et vaudra toujours 127.0.0.1. Les choses se compliquent un peu avec de vrais r eseaux comme l'Ethernet. Si vous d esirez connecter votre syst eme a un r eseau existant, vous devrez demander a ses administrateurs de vous donner une adresse IP. Si vous installez vous-m^ eme tout un r eseau, ce sera a vous d'attribuer toutes les adresses. Les h^ otes d'un r eseau local doivent en principe partager des adresses appartenant au m^ eme r eseau IP logique. Par cons equent, vous devez attribuer une adresse au r eseau. Si vous devez installer plusieurs r eseaux physiques, vous devrez soit leur attribuer des valeurs r eseau di erentes, soit utiliser des sous-r eseaux pour partager votre gamme d'adresses IP possibles en plusieurs sous-r eseaux. Nous d etaillerons cette derni ere solution dans la section suivante. Le choix d'une adresse IP r eseau d epend etroitement de ce que vous comptez en faire. Si vous avez l'intention de vous connecter a l'Internet dans un avenir proche, il va vous falloir obtenir d es maintenant une adresse ocielle. La meilleure fa con de proc eder est de demander a votre fournisseur de connectivit e IP de vous aider, c'est son travail. Sinon, demandez un formulaire de demande d'adresse (( ( Network Address Application
  • 80.
    5.6. Cr eation desous-r eseaux 63 Form ) )) a hostmaster@internic.net, ou au NIC (( ( Network Information Center ) )) de votre pays s'il en existe un. Si votre r eseau n'est pas connect e a l'Internet et n'y sera pas dans un avenir proche, vous ^ etes libre de choisir n'importe quelle adresse valide. Assurez-vous simplement que jamais aucun de vos datagrammes internes ne s' echappe vers le vrai Internet. Pour en ^ etre vraiment s^ ur, il vaut mieux utiliser l'une des adresses r eseau r eserv ees pour les usages priv es. Le IANA (Internet Assigned Numbers Authority), la ( ( haute autorit e ) ) r egissant l'attribution des adresses sur l'Internet, a mis au point plusieurs adresses r eseau de classes A, B et C que vous pouvez utiliser librement sans avoir a vous enregistrer ociellement. Elles ne sont valides qu' a l'int erieur de votre r eseau priv e et ne sont jamais rout ees entre les vrais sites Internet. Ces valeurs, d e nies dans le RFC 1597, sont: Classe R eseaux A 10.0.0.0 B 172.16.0.0 jusqu' a 172.31.0.0 C 192.168.0.0 jusqu' a 192.168.255.0 Notez que les deuxi eme et troisi eme blocs contiennent respectivement 16 et 256 r e- seaux. Choisir vos adresses dans l'un de ces r eseaux n'est pas seulement utile lorsque vous ^ etes isol e de l'Internet; vous pouvez aussi r ealiser un acc es bien plus restrictif en employant une machine en tant que passerelle. Pour votre r eseau local, la passerelle sera accessible par son adresse IP interne, alors que le reste du monde la conna^ tra par une adresse ocielle d^ ument enregistr ee (que votre fournisseur de services vous aura attribu ee par exemple). Nous reviendrons sur ce type de con guration lorsque nous parlerons de SLIP, dans le chapitre 7 (page 101). Pour toute la suite de cet ouvrage, nous consid ererons que l'administrateur r eseau de ( ( La bi ere virtuelle ) ) utilise un r eseau de classe B, disons 172.16.0.0. Bien s^ ur, une classe C aurait largement su pour satisfaire les besoins de nos brasseurs et viticulteurs virtuels. Nous avons choisi une classe B pour des raisons de simplicit e, cela rendra les exemples de sous-r eseaux de la section suivante bien plus faciles a comprendre. 5.6 Cr eation de sous-r eseaux Pour g ererplusieurs r eseauxEthernet (ou d'autres types, selon les pilotes disponibles), vous devez scinder votre r eseau en sous-r eseaux. Notez que ce n'est n ecessaire que si vous avez plus d'une adresse de di usion; les liaisons point- a-point ne comptent pas. Par exemple, si vous avez un r eseau Ethernet et un ou plusieurs liens SLIP vers le
  • 81.
    64 Chapitre 5.Con guration du r eseau TCP/IP 0 0 72 191 0 72 191 0 72 191 1 2 Passerelle Sous-r eseau brasseurs Sous-r eseau viticulteurs Fig. 5.1 - Les deux sous-r eseaux des brasseurs et viticulteurs. monde ext erieur, vous n'avez pas besoin de cr eer de sous-r eseaux: nous expliquerons pourquoi dans le chapitre 7. Pour g erer les deux r eseaux locaux Ethernet, l'administrateur des brasseurs virtuels a d ecid e d'utiliser 8 bits de la partie h^ ote comme bits additionnels de sous-r eseau. Cela lui laisse 8 autres bits pour la partie h^ ote, permettant 254 machines sur chacun des sous-r eseaux. Il assigne alors le sous-r eseau num ero 1 aux brasseurs, et donne le num ero 2 aux viticulteurs. Leurs adresses r eseaux respectives sont alors 172.16.1.0 et 172.16.2.0. Le masque de sous-r eseau vaut 255.255.255.0. La machine kro, qui est la passerelle entre les deux r eseaux, se voit attribuer un nombre d'h^ ote de 1 sur chacun d'eux, ce qui donne respectivement les adresses IP 172.16.1.1 et 172.16.2.1. La gure 5.1 illustre la situation, montrant la passerelle et les deux sous-r eseaux. Notez que dans cet exemple, nous utilisons un r eseau de classe B pour simpli er les choses; une classe C serait plus r ealiste. Sous les versions r ecentes de Linux, les sous- r eseaux ne sont pas born es sur 8 bits, par cons equent m^ eme un r eseau de classe C peut ^ etre tron conn e en plusieurs sous-r eseaux. Par exemple, vous pourriez utiliser 2 bits de la partie h^ ote pour le masque r eseau, ce qui vous donnerait quatre sous-r eseaux possibles comportant chacun 64 machines1. 1: Le dernier nombre de chaque r eseau est r eserv e a l'adresse de di usion, donc il ne s'agirait en r ealit e que de 63 machines possibles par sous-r eseau.
  • 82.
    5.7. R edaction deschiers hosts et networks 65 5.7 R edaction des chiers hosts et networks Apr es avoir divis e votre r eseau, vous devez vous arranger pour que la r esolution des noms de quelques machines cruciales soit possible par le chier /etc/hosts. Si vous ne comptez pas utiliser DNS ou NIS pour la r esolution d'adresses, vous devrez indiquer tous les h^ otes dans ce chier. M^ eme si en fonctionnement normal, DNS ou NIS sont en service, vous devez inclure un petit sous-ensemble de machines dans /etc/hosts. En premier lieu, vous aurez besoin d'une m ethode de r esolution de noms m^ eme lorsqu'aucune interface r eseau n'est en service, par exemple lors du d emarrage du syst eme. Ce n'est pas qu'une question de commodit e, cela vous permet aussi d'utiliser des noms symboliques dans vos scripts rc.inet. Ainsi, lors de modi cations d'adresses IP, vous n'aurez qu' a copier une mise a jour du chier hosts puis r eamorcer la machine, au lieu d'^ etre oblig e de modi er un grand nombre de chiers rc s epar ement.G en eralement,ce sont les noms et adresses des machines locales que l'on met dans /etc/hosts, plus ceux des passerelles ou eventuels serveurs NIS s'il en existe2. Vous devrez egalement, lors des premiers essais de mise au point, vous assurer que le resolver n'utilisera que les informations du chier hosts, sans tenter de se connecter a un hypoth etique serveur de noms. Vos eventuels programmes DNS ou NIS peuvent ^ etre fournis avec des exemples de con guration donnant de tr es curieux r esultats. Pour ^ etre certain de n'utiliser exclusivement que /etc/hosts, vous devrez editer le chier /etc/host.conf. Commentez toutes les lignes qui commencent par le mot cl e order en les faisant pr ec eder d'un di ese, et ins erez uniquement la ligne: order hosts La con guration de la biblioth eque resolver sera trait ee en d etail dans le chapitre 6. Le chier hosts contient une entr ee par ligne, consistant en une adresse IP, un nom d'h^ ote, et une liste facultative d'alias permettant d'appeler plus facilement cette ma- chine par tout autre nom. Les champs sont s epar es par des espaces ou des tabulations, et tout ce qui suivra un signe di ese (#) sera consid er e comme commentaire et sera ignor e. Les noms d'h^ otes peuvent ^ etre quali es ou relatifs au domaine local. Dans le cas de trappiste, on met g en eralement le nom quali e, trappiste.bibine.com, puis trappiste seul, de mani ere a ce que la machine soit connue aussi bien par son nom pleinement quali e que par son petit nom local. Voici un exemple de ce que pourrait ^ etre un chier hosts de l'entreprise ( ( La bi ere virtuelle ) ) : deux noms sp eciaux ont et e ajout es, kro-if1 et kro-if2, qui donnent les adresses des deux interfaces utilis ees sur kro. 2: Vous n'aurez besoin de l'adresse des serveurs NIS que si vous utilisez la version NYS de Peter Eriksson. Les autres impl ementations de NIS trouvent leurs serveurs en cours de route, simplement en utilisant ypbind.
  • 83.
    66 Chapitre 5.Con guration du r eseau TCP/IP # # Fichier hosts des brasseurs et viticulteurs. # # IP FQDN alias # 127.0.0.1 localhost # 172.16.1.1 kro.bibine.com kro kro-if1 172.16.1.2 gueuze.bibine.com gueuze 172.16.1.3 trappiste.bibine.com trappiste # 172.16.2.1 kro-if2 172.16.2.2 brouilly.bibine.com brouilly 172.16.2.3 gamay.bibine.com gamay 172.16.2.4 cahors.bibine.com cahors Tout comme avec les adresses IP des machines, vous aurez parfois besoin d'utiliser un nom symbolique pour d esignerles adresses r eseau.Parcons equent,le chier /etc/hosts est accompagn e d'un chier semblable, /etc/networks, qui est son equivalent pour les r eseaux. Chez nos brasseurs, nous pourrions installer un chier networks comme celui- ci3 : # /etc/networks de la societe La bi ere virtuelle. biere-net 172.16.1.0 pinard-net 172.16.2.0 5.8 Con guration des interfaces r eseau Apr es avoir con gur e correctement votre equipement comme expliqu e dans le chapitre pr ec edent, vous devrez faire en sorte que ces p eriph eriques soient connus de la couche r eseau du noyau. Deux commandes sont n ecessaires pour cela, qui con gurent les interfaces et initialisent la table de routage: ifcon g (o u ( ( if ) ) signi e interface), et route. Elles sont g en eralement invoqu ees depuis le script rc.inet1 lors du d emarrage du syst eme. La commande ifcon g a pour but de rendre une interface accessible a la couche r eseau du noyau. Cela implique l'assignation d'une adresse IP et quelques autres param etres; ainsi que l'activation de l'interface, qui sera alors dite ( ( en service ) ), ou ( ( up ) ), par opposition a ( ( hors service ) ), ou ( ( down ) ). Une interface d eclar ee active signi e que le noyau l'utilisera pour le transport de datagrammes. La fa con la plus simple de r ealiser cela est de taper: ifconfig interface addresse-ip 3: Les noms du chier networks ne doivent pas entrer en con it avec ceux du chier hosts, sous peine de r eactions tr es bizarres de certains programmes.
  • 84.
    5.8. Con gurationdes interfaces r eseau 67 Cette commande assignera l'adresse adresse-ip a interface, et activera celle-ci. Tous les autres param etresseront mis a des valeurs par d efaut. Par exemple, le masque r eseau sera d eriv e de la classe du r eseau de l'adresse IP, comme 255.255.0.0pour une adresse de classe B. La commande ifcon g est d ecrite en d etail a la n de ce chapitre. La commande route, quant a elle, permet d'ajouter ou de supprimer des entr ees dans la table de routage du noyau; sa syntaxe est (en partie) la suivante: route [add|del] cible Les arguments add et del d eterminent l'action a e ectuer: add ajoute la route vers cible, alors que del la supprime. 5.8.1 L'interface loopback La toute premi ere interface a activer est l'interface loopback: # ifconfig lo 127.0.0.1 Occasionnellement, vous rencontrerez aussi le nom localhostutilis e a la place de cette adresse IP. Le programme ifcon g cherchera ce nom dans le chier /etc/hosts, o u une entr ee doit le d eclarer comme etant le nom correspondant a l'adresse 127.0.0.1: # Exemple d'entr ee du fichier /etc/hosts pour localhost localhost 127.0.0.1 Pour voir quelle est la con guration courante d'une interface, appelez simplement ifcon g en lui passant le nom de l'interface en argument: $ ifconfig lo lo Link encap Local Loopback inet addr 127.0.0.1 Bcast [NONE SET] Mask 255.0.0.0 UP BROADCAST LOOPBACK RUNNING MTU 2000 Metric 1 RX packets 0 errors 0 dropped 0 overrun 0 TX packets 0 errors 0 dropped 0 overrun 0 Comme vous le voyez, l'interface loopback s'est vu assigner un masque r eseau de 255.0.0.0, puisque 127.0.0.1 est une adresse de classe A. Aucune adresse de di u- sion n'est positionn ee, et il n'y en a de toutes fa cons pas vraiment besoin avec cette interface si particuli ere. Toutefois, si vous utilisez le d emon rwhod sur cette machine, vous pourrez avoir besoin d'initialiser l'adresse de di usion de l'interface loopback pour que ce programme fonctionne correctement. Vous trouverez comment faire dans la section ( ( Tout sur ifcon g ) ), un peu plus loin dans ce chapitre.
  • 85.
    68 Chapitre 5.Con guration du r eseau TCP/IP Maintenant, vous pouvez presque commencer a jouer avec votre ( ( mini-r eseau ) ). Il ne manque qu'une chose: une entr ee dans la table de routage qui indique a IP qu'il peut utiliser cette interface comme route vers 127.0.0.1. On lui indique par: # route add 127.0.0.1 L a encore, vous pouvez indiquer le nom localhost au lieu de l'adresse IP. Ensuite, vous devez tester que tout marche bien, par exemple en utilisant ping. Le programme ping est un peu l' equivalent d'un sonar pour le r eseau4. On emploie ping pour v eri er qu'il est bien possible d'atteindre une adresse donn ee, et pour mesurer le temps de propagation entre le moment o u l'on envoie un datagramme et o u il nous revient. On appelle parfois ce d elai le ( ( temps moyen de propagation) ), ou ( ( round-trip time ) ). # ping localhost PING localhost (127.0.0.1): 56 data bytes 64 bytes from 127.0.0.1: icmp_seq=0 ttl=32 time=1 ms 64 bytes from 127.0.0.1: icmp_seq=1 ttl=32 time=0 ms 64 bytes from 127.0.0.1: icmp_seq=2 ttl=32 time=0 ms ^C --- localhost ping statistics --- 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max = 0/0/1 ms En appelant ping comme ci-dessus, il emettra des paquets ind e niment jusqu' a ce qu'il soit interrompu par l'utilisateur. Le ^C visible dans l'exemple correspond au moment o u le programme a et e arr^ et e par Ctrl-C5. Notre exemple montre que les paquets a destination de 127.0.0.1 sont correctement d elivr es et qu'une r eponse nous est retourn ee quasi instantan ement. Cela prouve que nous avons r eussi a con gurer notre premi ere interface r eseau. Si la sortie que vous obtenez de ping ne ressemble pas a ce qui est montr e ci-dessus, c'est que vous avez un probl eme quelque part. V eri ez que les programmes ifcon g et route que vous utilisez sont compatibles avec la version du noyau, et avant tout, que ce noyau a bien et e compil e avec le support du r eseau (vous pouvez le v eri er par la pr esence du r epertoire /proc/net). Si vous obtenez le message d'erreur ( ( Net- work unreachable ) ), signi ant que le r eseau est inaccessible, c'est que vous vous ^ etes probablement tromp e en tapant la commande route. V eri ez que vous utilisez bien la m^ eme adresse que celle indiqu ee a ifcon g. Les etapes que nous venons de voir sont susantes pour faire fonctionner des appli- cations r eseau sur une machine isol ee. Apr es avoir ajout e les lignes de con guration 4: Souvenez-vous... ( ( Echoes ) ), Pink Floyd... 5: Certaines impl ementations de ping n ecessitent la commande ping -s pour obtenir le m^ eme r esultat, typiquement celles des syst eme BSD.
  • 86.
    5.8. Con gurationdes interfaces r eseau 69 que nous avons vues dans le chier rc.inet1 et vous ^ etre assur e que ces scripts rc.inet sont bien appel es depuis /etc/rc, vous pouvez r eamorcer votre machine et essayer dif- f erentes applications. Par exemple, ( ( telnet localhost ) ) devrait etablir une connexion avec votre propre machine, en vous proposant une invite login. L'interface loopback n'est pas utile qu'en tant qu'exemple dans les livres sur le r eseau, ou comme test de con guration. Elle est utilis ee par quelques applications lors du fontionnement normal6. Par cons equent, vous devez toujours la con gurer, que votre machine soit connect ee a un r eseau ou non. 5.8.2 Interfaces Ethernet La con guration d'une interface Ethernet est tr es semblable a celle de l'interface loopback, elle demande juste quelques param etres suppl ementaires si vous employez des sous-r eseaux. A ( ( La bi ere virtuelle ) ), nous avons subdivis e le r eseau IP, qui etait a l'origine de classe B, en r eseaux de classe C. Pour que l'interface reconnaisse ce fait, nous devons appeler ifcon g de la mani ere suivante: # ifconfig eth0 gueuze netmask 255.255.255.0 Cette commande assigne l'adresse IP de gueuze (172.16.1.2) a l'interface eth0. Si nous avions omis le masque r eseau, ifcon g l'aurait d eduit de la classe de l'adresse r eseau, ce qui aurait donn e 255.255.0.0. Une petite v eri cation nous donne mainte- nant: # ifconfig eth0 eth0 Link encap 10Mps Ethernet HWaddr 00:00:C0:90:B3:42 inet addr 172.16.1.2 Bcast 172.16.1.255 Mask 255.255.255.0 UP BROADCAST RUNNING MTU 1500 Metric 1 RX packets 0 errors 0 dropped 0 overrun 0 TX packets 0 errors 0 dropped 0 overrun 0 Vous pouvez voir que ifcon g initialise automatiquement l'adresse de di usion (le champ Bcast ci-dessus) selon la m ethode usuelle, en mettant a 1 tous les bits de la partie h^ ote de l'adresse r eseau. De plus, le MTU (( ( Maximum Transfer Unit ) ), la taille maximale des trames Ethernet que le noyau g en erera pour cette interface) a et e positionn e a 1500 octets. Toutes ces valeurs peuvent ^ etre forc ees par des options sp eciales que nous d ecrirons plus tard. Tout comme avec l'interface loopback, nous devons installer une entr ee dans la table de routage pour informer le noyau de ce r eseau accessible par eth0. Chez nos brasseurs virtuels, il faudra donc taper la commande route suivante: # route add -net 172.16.1.0 6: Par exemple, toutes les applications bas ees sur les RPC utilisent l'interface loopback pour s'en- registrer aupr es du d emon portmapper au d emarrage du syst eme.
  • 87.
    70 Chapitre 5.Con guration du r eseau TCP/IP A premi ere vue, cela semble tenir de la magie, puisqu'il n'appara^ t pas clairement comment route peut d etecter par quelle interface cette route doit passer. Pourtant, le truc est simple: le noyau regarde toutes les interfaces qui ont et e con gur ees et compare l'adresse de destination (172.16.1.0 dans ce cas) avec la partie r eseau de l'adresse de l'interface (c'est- a-dire, un ( ( ET ) ) bit a bit entre l'adresse de l'interface et le masque r eseau). La seule qui correspond est eth0. Mais qu'est-ce que cette option -net est donc cens ee faire? Elle est utilis ee car route peut traiter aussi bien des routes vers des r eseaux que des routes vers de simples h^ otes (comme vous l'avez vu plus haut dans le cas de localhost). Lorsqu'on lui passe une adresse en notation sur 4 octets, le programme tente de deviner s'il s'agit d'un r eseau ou d'un h^ ote, en regardant les bits de la partie h^ ote. Si cette partie h^ ote de l'adresse vaut z ero, route consid ere qu'il s'agit d'un r eseau; et d'une adresse d'h^ ote dans le cas contraire. Par cons equent, route penserait que 172.16.1.0 est un h^ ote et non pas un r eseau, car le programme ne sait pas que nous utilisons un sous-r eseau. Nous devons donc lui indiquer explicitement qu'il s'agit d'un r eseau, en lui passant l'option -net. Bien s^ ur, la commande ci-dessus est un peu p enible a taper, et peut entra^ ner des fautes de frappe. Une approche plus pratique consiste a employer les noms de r eseaux que nous avons d e nis dans le chier /etc/networks auparavant. Du coup, notre com- mande devient plus lisible; et l'on peut m^ eme supprimer l'option -net puisque route sait maintenant que 172.16.1.0 correspond a un r eseau. # route add biere-net Maintenant que nous avons termin e les etapes de base de la con guration, nous al- lons v eri er que notre interface Ethernet fonctionne correctement. Choisissez un h^ ote connect e a votre r eseau local, par exemple kro, et tapez: # ping kro PING kro: 64 byte packets 64 bytes from 172.16.1.1: icmp_seq=0. time=11. ms 64 bytes from 172.16.1.1: icmp_seq=1. time=7. ms 64 bytes from 172.16.1.1: icmp_seq=2. time=12. ms 64 bytes from 172.16.1.1: icmp_seq=3. time=3. ms ^C ----gueuze.bibine.com PING Statistics---- 4 packets transmitted, 4 packets received, 0% packet loss round-trip (ms) min/avg/max = 3/8/12 Si vous ne voyez pas quelque chose ressemblant a cela sur votre ecran, c'est sans nul doute que quelque chose ne va pas. Si vous rencontrez un taux inhabituel de paquets perdus, il s'agit probablement d'un probl eme mat eriel, comme des r esistances de terminaison absentes, un c^ ablage incorrect, voire... l'oubli de connecter la machine au r eseau. Si vous ne recevez aucun paquet, testez la con guration de l'interface par la commande netstat. Les statistiques sur les paquets emis et re cus ach es par ifcon g devraient vous indiquer si, au moins, des datagrammes ont et e envoy es. Si vous avez
  • 88.
    5.8. Con gurationdes interfaces r eseau 71 un acc es physique a la machine distante, allez voir egalement les statistiques qu'elle indique. Vous pourrez ainsi d eterminer exactement o u les paquets se sont perdus. De plus, v eri ez les informations de routage par la commande route pour voir si les deux h^ otes sont correctement con gur es a ce niveau. Invoqu ee sans arguments, route ache la totalit e de la table de routage du noyau (l'option -n lui fait acher les adresses IP au lieu des noms des machines): # route -n Kernel routing table Destination Gateway Genmask Flags Metric Ref Use Iface 127.0.0.1 * 255.255.255.255 UH 1 0 112 lo 172.16.1.0 * 255.255.255.0 U 1 0 10 eth0 La signi cation d etaill ee de ces champs est expliqu ee plus loin, dans la section ( ( La commande netstat) ). La colonne Flag contient une liste des drapeaux positionn es pour chaque interface: U signi e qu'elle est active, et H indique que l'adresse de destination est un h^ ote. Si le drapeau H est mis alors que vous vouliez que cette route soit une route r eseau, il vous faut retaper la commande route avec l'option -net. Pour v eri er qu'une route est utilis ee, testez si la valeur indiqu ee dans le champ Use de l'avant-derni ere colonne s'incr emente entre deux invocations de ping. 5.8.3 Routage par une passerelle Dans la section pr ec edente, nous n'avons vu que le cas d'une machine sur un unique r eseau Ethernet. Or, il est courant de rencontrer des interconnexions de r eseaux par l'interm ediaire de passerelles. Ces passerelles peuvent se contenter de relier deux r e- seaux ou plus, ou bien o rir egalement un acc es au monde ext erieur, l'Internet. Pour utiliser une passerelle, il va falloir donner quelques informations suppl ementaires a la couche r eseau du noyau. Par exemple, les r eseaux Ethernet des entreprises ( ( La bi ere virtuelle ) ) et ( ( Les caves virtuelles ) ) sont interconnect es par une passerelle, en l'occurrence la machine kro. En consid erant que kro a d ej a et e correctement con gur ee, nous n'aurons juste qu' a rajouter une autre entr ee a la table de routage de gueuze, qui indiquera au noyau qu'il peut atteindre toutes les machines du r eseau des viticulteurs par l'interm ediaire de kro. La commande route e ectuant cette op eration est celle indiqu ee ci-dessous; le mot cl e gw lui signale que le prochain argument d enote une passerelle (gateway): # route add pinard-net gw kro Bien entendu, chaque machine du r eseau des viticulteurs a laquelle vous voudrez par- ler devra comporter une route correspondante vers le r eseau des brasseurs. Sinon, vous ne pourriez qu'envoyer des donn ees depuis gueuze vers, par exemple, gamay; mais aucune r eponse de cette derni ere ne pourrait revenir, les paquets etant irr em e- diablement perdus.
  • 89.
    72 Chapitre 5.Con guration du r eseau TCP/IP Cet exemple ne d ecrit qu'une passerelle permettant l' echange de datagrammes entre deux r eseaux Ethernet isol es. Maintenant, supposons que kro soit aussi connect ee a l'Internet (disons, par une liaison suppl ementaire SLIP). Nous voudrions alors que les datagrammes a destination de n'importe quel r eseau autre que celui des brasseurs soit pass es a kro. On peut r ealiser cela en la d eclarant comme passerelle par d efaut: # route add default gw kro Le nom de r eseau default est un raccourci pour indiquer 0.0.0.0, qui d enote la route par d efaut. Vous n'avez pas besoin d'ajouter ce nom au chier /etc/networks, il est int egr e directement dans la commande route. Si vous constatez de nombreuses pertes de paquets en essayant ping vers une machine situ ee a une ou plusieurs passerelles de l a, ce peut ^ etre le signe d'un r eseau tr es charg e. La perte de datagrammes n'est pas tellement le fait de d e ciences techniques, mais elle est surtout li ee aux exc es momentan es de charge sur les passerelles, qui peuvent entra^ ner un temps de transfert inconsid er ement long, voire l'omission de quelques paquets. 5.8.4 Con guration d'une passerelle Con gurer une machine pour qu'elle puisse echanger des paquets entre deux r eseaux Ethernet est extr^ emement simple. Consid erons que nous sommes revenus sur kro, qui est equip ee de deux cartes Ethernet, chacune connect ee a l'un des deux r eseaux. Tout ce que vous avez a faire se r esume a con gurer chaque interface s epar ement, en leur donnant leur adresse IP respective, et le tour est jou e. Il est tr es pratique de rajouter les informations sur ces deux interfaces au chier hosts comme nous le montrons ci-dessous, a n de pouvoir les appeler aussi par des noms: 172.16.1.1 kro.bibine.com kro kro-if1 172.16.2.1 kro-if2 La s erie de commandes a invoquer pour con gurer les deux interfaces devient alors: # ifconfig eth0 kro-if1 # ifconfig eth1 kro-if2 # route add biere-net # route add pinard-net 5.8.5 L'interface PLIP Avec une liaison PLIP pour connecter deux machines, les choses sont un petit peu di erentes de ce que vous avez vu avec l'Ethernet. PLIP r ealise ce que l'on appelle
  • 90.
    5.8. Con gurationdes interfaces r eseau 73 une liaison point- a-point, car ce type de liaison met en jeu deux h^ otes (( ( points ) )), par opposition aux grands r eseaux. Prenons un exemple. Admettons que l'un des employ esde ( ( La bi ere virtuelle) ) poss ede un ordinateur portable, connect e a kro par PLIP. Le portable s'appelle le e et ne poss ede qu'un seul port parall ele. A l'amor cage, ce port parall ele sera enregistr e en tant que plip1. Pour activer le lien, vous devrez con gurer l'interface plip1 a l'aide des commandes suivantes7 : # ifconfig plip1 leffe pointopoint kro # route add default gw kro La premi ere commande con gure l'interface, signalant au noyau qu'il s'agit d'une liaison point- a-point, l'autre c^ ot e ayant l'adresse de kro. La seconde installe la route par d efaut, utilisant kro comme passerelle. Sur cette derni ere, une commande ifcon g similaire sera n ecessaire pour activer la liaison (route n'est pas utile ici): # ifconfig plip1 kro pointopoint leffe Ce qui est int eressant ici, c'est que l'interface plip1 sur kro n'a pas une adresse IP s epar ee, mais peut aussi se voir attribuer l'adresse 172.16.1.18. Nous avons donc maintenant con gur e le routage du portable vers le r eseau des bras- seurs; mais il nous faut encore trouver une m ethode pour router les paquets de n'im- porte quel h^ ote de ce r eseau vers le e. Une solution particuli erement lourde consiste a rajouter une route sp eci que sur chaque h^ ote de ce r eseau, d eclarant kro comme passerelle vers le e: # route add leffe gw kro Lorsque l'on est confront e a l' etablissement de routes temporaires comme ici, faire appel au routage dynamique est une solution nettement meilleure. Pour cela, une m e- thode consiste a employer gated, un d emon de routage, que vous devrez installer sur chaque h^ ote du r eseau de mani ere a distribuer les informations de routage dynami- quement. Cependant, la meilleure solution est encore proxy ARP (Address Resolution Protocol, protocole de r esolution d'adresses). Avec proxy ARP, kro r epond a n'im- porte quelle requ^ ete ARP pour le e en envoyant sa propre adresse Ethernet. Le r esultat est que tous les paquets a destination de le e arriveront en r ealit e a kro, qui les renverra alors a l'ordinateur portable. Nous reviendrons sur proxy ARP dans la section ( ( Checking the ARP Tables ) ). Les futures versions des utilitaires r eseau pour Linux contiendront un outil nomm e plipcon g, qui permettra de choisir la ligne d'IRQ a utiliser pour le port imprimante. Plus tard, il pourrait m^ eme ^ etre remplac e par une commande ifcon g plus g en erale. 7: Notez bien que pointopoint n'est pas une faute typographique; c'est vraiment le nom de l'option. 8: Par pr ecaution, ne con gurez toutefois de liaisons PLIP, SLIP ou PPP que lorsque vous avez compl etement initialis e les tables de routages pour vos r eseaux. Avec certaines anciennes versions de Linux, votre route r eseau pourrait se mettre a pointer sur le lien point- a-point.
  • 91.
    74 Chapitre 5.Con guration du r eseau TCP/IP 5.8.6 Les interfaces SLIP et PPP Bien que SLIP et PPP ne soient pas autre chose que de simples liaisons point- a-point comme les connexions PLIP, il y a beaucoup plus a dire a leur propos. G en eralement, l' etablissement d'une liaison SLIP implique l'appel d'un num ero de t el ephone du site distant par l'interm ediaire d'un modem, et passer la ligne s erie en mode SLIP. PPP s'utilise de la m^ eme mani ere. Les outils n ecessaires pour r ealiser des liaisons SLIP ou PPP seront d ecrits dans les chapitres 7 et 8. 5.8.7 L'interface dummy L'interface dummy (muette) est un peu exotique, n eanmoins elle est plut^ ot utile. Elle est surtout destin ee aux machines isol ees, ou celles dont la seule connexion IP est une liaison de type SLIP. En fait, ce dernier cas revient au premier, lorsque le syst eme n'est pas connect e. Le probl eme de ces machines isol ees est qu'elles n'ont qu'un seul p eriph erique r eseau actif, l'interface loopback, qui se voit normalement attribuer l'adresse 127.0.0.1. Mais parfois, il est n ecessaire d'envoyer des donn ees a l'adresse IP ( ( ocielle ) ) de cet h^ ote local. Consid erons par exemple l'ordinateur portable le e, que nous d econnectons de tout r eseau le temps de cet exemple. Une application fonctionnant sur cette machine veut envoyer quelque donn ee vers un autre programme sur ce m^ eme ordinateur. La recherche de le edans /etc/hosts renvoie l'adresse 172.16.1.65,par cons equentnotre application essaie d'utiliser cette valeur. Comme pour l'instant, la seule interface active est le loopback, le noyau n'est absolument pas au courant que 172.16.1.65 r ef erence aussi cette machine! En cons equence, il elimine ce datagramme et renvoie une erreur a l'application. C'est l a que l'interface dummy entre en jeu. Elle permet de r esoudre ce probl eme en servant de seconde interface loopback, a laquelle on attribue l'adresse 172.16.1.65. On ajoute bien entendu une route vers elle, et ainsi chaque datagramme a destination de 172.16.1.65sera d elivr e localement. Les commandes n ecessaires pour etablir cette con guration sont: # ifconfig dummy leffe # route add leffe 5.9 Tout sur ifcon g La commande ifcon g poss ede bien plus de param etres que nous n'en avons utilis e jusqu' a pr esent. Sa syntaxe exacte est: ifconfig interface [[-net|-host] adresse [parametres]]
  • 92.
    5.9. Tout surifcon g 75 L'argument interface est bien s^ ur le nom de l'interface, et adresse correspond a l'adresse IP a lui assigner. Ce peut ^ etre indi eremment une adresse exprim ee en no- tation sur 4 octets, ou un nom de machine que ifcon g recherchera dans les chiers /etc/hosts et /etc/networks. Les options -net et -host forcent la commande a consi- d erer l'adresse comme un r eseau ou un h^ ote, respectivement. Si ifcon g est invoqu ee uniquement avec le nom de l'interface, cette commande ache alors la con guration courante de l'interface en question. Sans aucun param etre, elle consid ereratoutes celles qui sont con gur ees; une option -a permet de lui faire acher egalement les interfaces inactives. Sur eth0, la sortie de ifcon g peut donner quelque chose comme ceci: # ifconfig eth0 eth0 Link encap 10Mbps Ethernet HWaddr 00:60:8C:53:D3:65 inet addr 193.56.58.85 Bcast 193.56.58.255 Mask 255.255.255.0 UP BROADCAST RUNNING MTU 1500 Metric 1 RX packets 414652 errors 3 dropped 3 overruns 3 TX packets 518279 errors 0 dropped 0 overruns 0 Les champs MTU et Metric montrent respectivement le MTU et la valeur m etrique pour cette interface. La valeur m etrique est utilis ee par certains syst emes d'exploitation pour d eterminer le prix ou l'ecacit e d'une route. Pour l'instant, Linux n'utilise pas cette valeur, mais elle est d e nie pour des raisons evidentes de compatibilit e. Les lignes RX et TX montrent combien de paquets ont et e re cus (RX) ou transmis (TX) sans erreurs, combien d'erreurs se sont produites, combien de paquets furent elimin es (probablement par manque de m emoire), et combien ont et e perdus en raison de d ebit trop important. Ces ( ( overruns ) ) se produisent g en eralement lorsque les paquets arrivent trop rapidement, et que le noyau n'a pas eu le temps de servir la derni ere interruption alors qu'une autre arrive. Les drapeaux ach es par ifcon g correspondent plus ou moins aux noms des options de sa ligne de commande; nous allons les expliquer ci-dessous. Voici la liste des param etres reconnus par la commande ifcon g, avec les noms des drapeaux correspondants. Les options qui ne sont que des bascules de conditions particuli eres permettent egalement de les supprimer si elles sont pr ec ed ees du signe ( ( moins ) ) (-). up Cette option marque l'interface comme etant accessible a la couche r eseau du noyau. Elle est implicite lorsqu'une adresse est donn ee sur la ligne de commandes. Elle peut aussi ^ etre utilis ee pour remettre en service une interface qui a et e arr^ et ee momentan ement par l'option down. Elle correspond aux drapeaux UP et RUNNING. down Marque l'interface comme etant inaccessible a la couche IP du noyau. Cela interdit tout tra c IP a travers l'interface. Notez que cette op- tion ne supprime pasles entr eesde la table de routagepouvant utiliser
  • 93.
    76 Chapitre 5.Con guration du r eseau TCP/IP cette interface. Si vous d ecidez de mettre une interface hors service de fa con permanente, vous devrez egalement supprimer tout routage passant par elle et, si possible, o rir une alternative pour l'achemi- nement des datagrammes. netmask masque Assigne le masque de sous-r eseau a utiliser pour cette interface. Il peut ^ etre donn e soit par un nombre hexad ecimal sur 32 bits pr ec ed e de 0x (comme en langage C), soit en notation traditionnelle sur 4 octets. pointopoint adresse Cette option est utilis ee pour les liaisons point- a-point qui ne mettent en jeu que deux machines. Elle est n ecessaire pour con gurer, par exemple, des interfaces SLIP ou PLIP. Si une adresse point- a-point est initialis ee, la commande ifcon g af- chera alors le drapeau POINTOPOINT. broadcast adresse L'adresse de di usion est g en eralement constitu ee a partir de la va- leur r eseau en mettant tous les bits de la partie h^ ote a 1. Quelques impl ementations de IP (notamment les syst emes d eriv es de BSD 4.2) utilisent un sch ema di erent, o u la partie h^ ote est mise a z ero). L'op- tion broadcast est l a, entre autres, pour s'adapter a ces environne- ments etranges. Si une adresse de di usion est positionn ee, ifcon g achera le dra- peau BROADCAST. metric nombre Option employ ee pour assigner une valeur m etrique a l'entr ee de la table de routage cr e ee pour cette interface. Cette valeur est utilis ee par RIP (Routing Information Protocol) pour construire les tables de routage pour le r eseau9. La valeur m etrique mise par d efaut par ifcon g est z ero. Si vous n'employez pas de d emon RIP, vous n'aurez pas besoin de cette option; si vous le faites, vous n'aurez que tr es rarement besoin de changer cette valeur. mtu octets Permet d'ajuster la taille de l'unit e de transfert (( ( Maximum Trans- mission Unit ) )), qui correspond au nombre maximum d'octets que l'interface est capable de manipuler en une seule transaction. Pour 9: RIP choisit la route optimale vers un h^ ote donn e en se basant sur la ( ( longueur ) ) du chemin a parcourir. Elle est calcul ee en ajoutant toutes les valeurs m etriques individuelles de chaque liaison entre les machines rencontr ees. Par d efaut, un saut (( ( hop ) )) a une valeur de 1, mais ce peut ^ etre n'importe quelle valeur enti ere inf erieure a 16 (une route egale a 16 est consid er ee comme in nie, et inutilisable). Le param etre metric permet d'ajuster cette valeur, qui est alors di us ee par le d emon de routage.
  • 94.
    5.10. La commandenetstat 77 l'Ethernet, la valeur par d efaut est 1500; pour les interfaces SLIP c'est 296. arp Il s'agit d'une option sp eci que aux r eseaux comme l'Ethernet ou le packet-radio. Elle met en service le protocole de r esolution d'adresses, ARP, a n de d etecter les adresses physiques des machines attach ees au r eseau. Pour les r eseaux cit es, elle est toujours en service par d efaut. Si ARP est hors service, ifcon g achera le drapeau NOARP. -arp Supprime l'utilisation de ARP sur cette interface. promisc Passe l'interface en mode global (promiscuous mode). Sur un r eseau Ethernet (par exemple), cela a pour e et de faire recevoir tous les paquets a l'interface, qu'ils soient destin es a un autre h^ ote ou non. On peut ainsi analyser le tra c sur le r eseau a l'aide de ltres de paquets ou autres outils. G en eralement, cette technique appel ee ( ( Ethernet snooping ) ) est une bonne m ethode pour traquer certains probl emes r eseau quasi ind etectables autrement. D'un autre c^ ot e, elle permet aux personnes malintentionn ees de son- der ce qui passe sur le r eseau, a la recherche de mots de passe ou pour r ealiser d'autres actions ill egales. Pour se prot eger, une solution consiste a ne laisser personne connecter impun ement sa machine sur votre r eseau Ethernet. Une autre option est d'utiliser des protocoles d'authenti cation s ecuris es, comme Kerberos, ou le login SRA10. Cette option correspond au drapeau PROMISC. -promisc Annule le mode global. allmulti Les adresses multicast sont un genre d'adresses de di usion limit ees a un groupe de machines qui n'ont pas n ecessairement besoin de se trouver sur le m^ eme sous-r eseau. Elles sont support ees sous Linux a partir du noyau version 1.1.72, en alpha-test. Cette option correspond au drapeau ALLMULTI. -allmulti Invalide les adresses multicast. 5.10 La commande netstat Tournons-nous maintenant vers un outil presque indispensable pour tester la con gu- ration et l'activit e du r eseau: la commande netstat, qui est en fait une collection de plusieurs outils rassembl es en un seul. Nous allons en d etailler chaque fonction. 10: L'ensemle SRA peut ^ etre obtenu sur ftp.tamu.edu dans le r epertoire /pub/sec/TAMU.
  • 95.
    78 Chapitre 5.Con guration du r eseau TCP/IP 5.10.1 Achage de la table de routage Invoqu ee avec l'option -r, netstat ache la table de routage du noyau sous la m^ eme forme que la commande route que nous avons d ej a vue. Sur la machine gueuze, cela nous donne: # netstat -nr Kernel routing table Destination Gateway Genmask Flags Metric Ref Use Iface 127.0.0.1 * 255.255.255.255 UH 1 0 50 lo 172.16.1.0 * 255.255.255.0 U 1 0 478 eth0 172.16.2.0 172.16.1.1 255.255.255.0 UGN 1 0 250 eth0 L'option -n indique a netstat d'acher les adresses IP selon la notation sur 4 octets plut^ ot que d'indiquer les noms symboliques des h^ otes et des r eseaux. C'est particuli e- rement utile lorsque l'on veut eviter des recherches de noms a travers le r eseau (via un serveur DNS ou NIS). La seconde colonne montre la passerelle vers laquelle pointe l'entr ee de la table. Si au- cune passerelle n'est utilis ee, un ast erisque est ach e a la place. La troisi eme colonne indique la ( ( g en eralit e) ) de la route. Lorsqu'on lui demande de trouver une route pour une certaine adresse IP, le noyau regarde toutes les entr ees de la table de routage, faisant un ET bit a bit de l'adresse et de ce masque avant de la comparer a la cible de cette route. La quatri eme colonne indique les di erents drapeaux qui caract erisent cette route: G La route utilise une passerelle (gateway). U L'interface est en service (up). H On ne peut joindre qu'un simple h^ ote par cette route. C'est pas exemple le cas pour l'entr ee loopback 127.0.0.1. D Ce drapeau est positionn e si l'entr ee de la table a et e g en er ee par un message ICMP de redirection (voir la section 2.5). M Positionn e si l'entr ee de la table a et e modi ee par un message ICMP de redirection. La colonne Ref de la sortie de netstat montre le nombre de r ef erences a cette route, c'est- a-dire combien d'autres routes (par des passerelles par exemple) n ecessitent sa pr esence. Les deux derni eres colonnes indiquent le nombre de fois o u cette entr ee a et e utilis ee, et l'interface a laquelle les datagrammes sont envoy es.
  • 96.
    5.10. La commandenetstat 79 5.10.2 Achage des statistiques sur une interface L'option -i de netstat permet l'achage des statistiques des interfaces r eseau actuel- lement con gur ees. Si l'on y rajoute l'option -a, ce seront toutes les interfaces qui seront indiqu ees, et non plus seulement celles actuellement en service. Sur gueuze, la sortie de netstat nous donne ceci: $ netstat -i Kernel Interface table Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flags lo 0 0 3185 0 0 0 3185 0 0 0 BLRU eth0 1500 0 972633 17 20 120 628711 217 0 0 BRU Les champs MTU et Met montrent le MTU et la valeur m etrique courants pour cette interface. Les colonnes RX et TX indiquent combien de paquets ont et e re cus (RX-OK) ou emis (TX-OK) sans erreurs, avec erreurs (RX-ERR/TX-ERR), combien furent elimin es (RX-DRP/TX-DRP) et combien furent perdus en raison de d ebit trop haut pour le noyau (RX-OVR/TX-OVR). La derni ere colonne indique quels drapeaux sont positionn es. Ce sont les initiales des noms qui sont ach es lorsque vous demandez l' etat de la con guration de l'interface par la commande ifcon g. B Une adresse de di usion est positionn ee. L Cette interface est un p eriph erique loopback. M Tous les paquets sont re cus (mode global). O ARP est hors service. P Il s'agit d'une connexion point- a-point. R L'interface est en fonctionnement. U L'interface est en service. 5.10.3 Achage des connexions La commande netstat supporte un ensemble d'options permettant de visualiser les sockets actives ou passives. Ce sont les options -t, -u, -w et -x qui montrent respec- tivement les connexions TCP, UDP, RAW, et UNIX. Si vous ajoutez -a, les sockets en attente de connexion ( a l' ecoute d'un port par exemple) sont egalement ach ees. Vous aurez ainsi une liste de tous les serveurs qui sont actuellement en service sur votre syst eme. Le r esultat de netstat -ta sur kro est:
  • 97.
    80 Chapitre 5.Con guration du r eseau TCP/IP $ netstat -ta Active Internet connections Proto Recv-Q Send-Q Local Address Foreign Address (State) tcp 0 0 *:domain *:* LISTEN tcp 0 0 *:time *:* LISTEN tcp 0 0 *:smtp *:* LISTEN tcp 0 0 kro:smtp gueuze:1040 ESTABLISHED tcp 0 0 *:telnet *:* LISTEN tcp 0 0 localhost:1046 gamay:telnet ESTABLISHED tcp 0 0 *:chargen *:* LISTEN tcp 0 0 *:daytime *:* LISTEN tcp 0 0 *:discard *:* LISTEN tcp 0 0 *:echo *:* LISTEN tcp 0 0 *:shell *:* LISTEN tcp 0 0 *:login *:* LISTEN Nous voyons que la plupart des serveurs sont simplement en attente de connexion. Toutefois, la quatri eme ligne indique une connexion SMTP en cours depuis gueuze, et la sixi eme nous apprend qu'il existe une connexion telnet sortante vers la machine gamay11. L'emploi de l'option -a seule achera toutes les sockets de toutes les cat egories. 5.11 Test des tables ARP Il est des occasions o u il peut ^ etre utile de visualiser, voire de modi er le contenu des tables ARP du noyau, par exemple si vous suspectez qu'une adresse Internet dupliqu ee est la cause de probl emes r eseaux intermittents. L'outil arp est destin e a de telles situations. Sa syntaxe est la suivante: arp [-v] [-t materiel] -a [nom-de-machine] arp [-v] [-t materiel] -s nom-de-machine materiel arp [-v] -d nom-de-machine [nom-de-machine: : : ] Tous les arguments nom-de-machine peuvent ^ etre soit des noms d'h^ otes en clair, soit des adresses IP en notation sur 4 octets. La premi ere invocation ache les entr ees ARP pour les adresses IP ou h^ otes sp eci es, ou tous les h^ otes connus si aucun nom-de-machine n'est donn e. Par exemple, sur kro, nous pourrions obtenir: # arp -a IP address HW type HW address 11: Vous pouvez savoir si une connexion est sortante ou entrante a partir des ports mis en jeu. Le num ero de port ach e sur l'h^ ote appelant sera toujours un simple entier, alors que sur la machine appel ee, un service connu sera actif, pour lequel netstat utilisera le nom symbolique trouv e dans le chier /etc/services.
  • 98.
    5.11. Test destables ARP 81 172.16.1.3 10Mbps Ethernet 00:00:C0:5A:42:C1 172.16.1.2 10Mbps Ethernet 00:00:C0:90:B3:42 172.16.2.4 10Mbps Ethernet 00:00:C0:04:69:AA Ce qui montre les adresses Ethernet de kro, gueuze et trappiste. Avec l'option -t, vous pouvez limiter l'achage au type de mat eriel sp eci e. Ce peut ^ etre ether, ax25 ou pronet, correspondant respectivement a l'Ethernet 10 Mbps, AMPR AX.25 et les equipements token ring IEEE 802.5. L'option -s sert a ajouter de fa con permanente l'adresse Ethernet de nom-de-machine dans les tables ARP. L'argument materiel sp eci e l'adresse mat erielle, qui est par d efaut une adresse Ethernet sous la forme de six nombres hexad ecimaux s epar es par le signe ( ( : ) ). Vous pouvez aussi initialiser l'adresse mat erielle d'autres types d' equipement, gr^ ace a l'option -t. Vous pouvez avoir a ajouter manuellement une adresse IP a la table ARP si pour une raison quelconque, les requ^ etes ARP vers la machine distante echouent; par exemple si son pilote ARP est bogu e ou s'il existe une autre machine sur le r eseau qui, suite a une erreur de con guration, poss ede la m^ eme adresse IP. Forcer manuellement les adresses IP dans la table ARP est aussi une m ethode (plut^ ot violente) pour se prot eger des h^ otes de votre r eseau qui tenteraient de se faire passer pour d'autres. Appeler arp avec l'option -d a pour e et de supprimer toutes les entr ees ARP rela- tives a l'h^ ote concern e. Ce peut ^ etre un moyen de forcer l'interface a faire une nouvelle tentative d'obtention de l'adresse Ethernet pour l'adresse IP en question. Cette fonc- tion est tr es utile lorsqu'une machine mal con gur ee a di us e une information ARP erron ee (bien s^ ur, vous devrez corriger la con guration de ce syst eme avant). L'option -s peut aussi servir a impl ementer proxy ARP. Il s'agit d'une technique sp eciale o u un h^ ote, appelons-le relais, agit comme une passerelle vers un autre h^ ote que nous nommerons truc en pr etendant que les deux adresses se r ef erent au m^ eme h^ ote, relais. Il e ectue cela en di usant une entr ee ARP pour truc qui pointe sur sa propre interface Ethernet. Du coup, lorsqu'une machine enverra une requ^ ete ARP pour truc, relais retournera une r eponse contenant sa propre adresse Ethernet. La machine demandeuse enverra alors tous les datagrammes vers relais, qui les passera gentiment a truc, l'autre bout n'y voyant que du feu. Cette gymnastique peut devenir n ecessaire quand, par exemple, vous voulez acc eder a truc depuis une machine MS-DOS poss edant une impl ementation compl etement d efectueuse de TCP, qui ne comprend pas trop bien les m ethodes de routage. Avec proxy ARP, cette machine MS-DOS aura l'impression que truc est sur le sous-r eseau local, et n'aura donc pas besoin de savoir comment router des datagrammes a travers une passerelle. Proxy ARP est aussi tr es utile lorsqu'une machine doit faire passerelle uniquement de temps en temps, par exemple a travers une liaison t el ephonique. Dans un pr ec edent exemple, nous avons rencontr e l'ordinateur portable le e, qui etait connect e a kro par une liaison PLIP, mais seulement de temps a autre. Bien s^ ur, cela ne marchera
  • 99.
    82 Chapitre 5.Con guration du r eseau TCP/IP que si l'adresse de la machine pour laquelle vous voulez o rir proxy ARP se trouve sur le m^ eme sous-r eseau IP que votre passerelle. Par exemple, gueuze pourrait faire du proxy ARP pour n'importe quel h^ ote du sous-r eseau des brasseurs (172.16.1.0), mais ce serait impossible pour une machine sur celui des viticulteurs (172.16.2.0). La syntaxe a employer pour o rir un service proxy ARP a truc est donn ee ci-dessous; il est bien entendu que l'adresse Ethernet indiqu ee doit ^ etre celle de relais. # arp -s truc 00:00:c0:a1:42:e0 pub Cette entr ee proxy ARP peut ^ etre supprim ee par: # arp -d truc 5.12 L'avenir Le r eseau sous Linux est en perp etuelle evolution. De profonds changements dans le noyau apporteront une m ethode de con guration tr es souple permettant de con gurer les p eriph eriques r eseau en cours de route. Par exemple, la commande ifcon g prendra des arguments qui permettront de choisir l'IRQ et le canal DMA. La commande route se verra ajouter bient^ ot des options suppl ementaires, comme mtu pour modi er le MTU d'une route particuli ere, qui modi era, pour cette route seule- ment, le MTU sp eci e pour l'interface correspondante. Vous utiliserez cette possibilit e pour les routes passant par des passerelles, lorsque la liaison entre la passerelle et la machine de destination n ecessite un MTU tr es faible. Par exemple, supposons que la machine alambic soit connect ee a kro par une liaison SLIP. Lors de l'envoi de donn ees depuis gueuze vers alambic, la couche r eseau de alambic utilisera des paquets allant jusqu' a 1500 octets puisqu'ils sont emis sur l'Ethernet. La liaison SLIP, elle, fonctionne avec un MTU de 296 octets, aussi il faudrait que le code r eseau de kro fragmente ces paquets IP en morceaux plus petits tenant dans 296 octets. Si, au lieu de cela, vous aviez con gur e la route sur gueuze pour utiliser depuis le d ebut 296 octets, cette fragmentation relativement co^ uteuse aurait pu ^ etre evit ee: # route add alambic gw kro mtu 296 Notez que l'option mtu permet aussi de supprimer s electivement les e ets de la r egle SNARL (( ( les sous-r eseaux sont locaux ) )). Il s'agit de l'option de con guration du noyau d ecrite dans le chapitre 3. En n, consultez les pages de manuel et les documentations de la version de Linux et des commandes que vous poss edez. A l'heure o u nous ecrivons ces lignes, certaines de ces nouvelles caract eristiques sont d ej a op erationnelles.
  • 100.
    83 Chapitre 6 Con gurationdu serveur de noms et du resolver Nous avons vu dans le chapitre 2 que le r eseau TCP/IP peut employer di erentes m ethodes pour convertir les noms des machines en adresses IP. La plus simple, qui ne tire aucun parti de la fa con dont l'espace de noms est organis e,utilise une table stock ee dans le chier /etc/hosts. Elle n'est utilisable que sur de petits r eseaux locaux g er es par un seul administrateur, et n'ayant aucun acc es au monde ext erieur. Le format de ce chier a et e d ecrit dans le chapitre 5. L'autre alternative consiste a utiliser BIND, Berkeley Internet Name Domain, pour la r esolution de noms en adresses. La con guration de BIND peut ^ etre un vrai pensum, mais une fois qu'elle est termin ee, les modi cations dans la topologie du r eseau de- viennent ais ees. Sous Linux, tout comme dans beaucoup d'autres syst emes UNIX, le service des noms est r ealis e par le programme appel e named. Au d emarrage, il charge un ensemble de chiers de r ef erence dans son cache interne et attend les requ^ etes en provenance des machines distantes ou des processus utilisateur locaux. Il y a plusieurs fa cons de con gurer BIND, et toutes ne n ecessitent pas la pr esence d'un serveur de noms sur chaque h^ ote. Ce chapitre ne pourra pas faire beaucoup plus que vous donner une esquisse de la mani ere de faire fonctionner un serveur de noms. Si vous comptez employer BIND dans un environnement plus important qu'un petit r eseau local, avec probablement un lien sur l'Internet, vous devrez acheter un bon livre traitant du sujet, comme ( ( DNS and BIND ) ) de Cricket Liu (voir [AlbitzLiu92]). Pour une documentation a jour, vous devrez prendre connaissance des informations contenues dans les sources de BIND. En dehors des pages de manuel et des notes, vous y trouverez un guide complet, ( ( BIND Operator's Guide ) ), ou BOG. Ne vous laissez pas tromper par ce titre: il s'agit vraiment d'un document tr es utile. Il existe egalement un forum Usenet d edi e aux questions relatives au DNS, dont le nom est comp.protocols.tcp-ip.domains.
  • 101.
    84 Chapitre 6.Con guration du serveur de noms et du resolver 6.1 La biblioth eque resolver Le terme ( ( resolver ) ) ne d esigne pas une application particuli ere, mais une biblio- th eque de fonctions. Il s'agit d'un ensemble de routines contenues sous Linux dans la biblioth eque C standard. Les principales sont gethostbyname(2) et gethostbyaddr(2), qui recherchent toutes les adresses IP appartenant a un nom d'h^ ote, et vice versa. Elles peuvent ^ etre con gur ees pour ne rechercher l'information que dans le chier hosts, in- terroger un certain nombre de serveurs de noms, ou utiliser la base de donn ees hosts de NIS (Network Information Service). D'autres applications, comme smail, peuvent inclure des pilotes pour chacune de ces m ethodes et leur con guration demande un soin tout particulier. Les parties s'occupant du DNS dans le resolver proviennent a l'origine des sources de BIND, qui contiennent egalement le serveur de noms named que nous d etaillerons plus loin dans ce chapitre. A partir de la version 4.6.8 de la biblioth eque C de Linux, le code de la derni ere version de BIND (4.9 ou plus r ecent) est inclus en standard. BIND-4.9 apporte une possibilit e nouvelle au resolver, la liste de recherche, que nous allons d ecrire. Pour tout le reste, les di erentes versions des biblioth eques devraient avoir un comportement identique. 6.1.1 Le chier host.conf Le chier central qui contr^ ole le comportement du resolver est host.conf. Il se trouve dans /etc et indique aux fonctions de la biblioth eque quels services utiliser, et dans quel ordre. Dans host.conf, chaque option doit se trouver sur une ligne s epar ee. Les champs peuvent ^ etre d elimit es par des espaces ou des tabulations. Le signe di ese (#) introduit un commentaire qui s' etend jusqu' a la n de la ligne. Les options disponibles sont: order D etermine l'ordre dans lequel les services vont ^ etre sollicit es. Les valeurs valides sont bind pour l'interrogation du serveur de noms, hosts pour une recherche dans le chier /etc/hosts, et nis pour utiliser NIS. Tous peuvent ^ etre sp eci es, eventuellement. multi Prend les arguments on ou o , indiquant si un h^ ote cit e dans le chier /etc/hosts est autoris e a poss eder plusieurs adresses IP, ou non. Cette option n'a aucun e et sur les requ^ etes DNS ou NIS. nospoof Comme nous l'avons expliqu e dans le chapitre pr ec edent, DNS vous permet de trouver le nom d'h^ ote appartenant a une adresse IP donn ee en utilisant le domaine in-addr.arpa. Les tentatives d'envoi d'un faux nom sont appel ees le ( ( spoo ng ) ). Pour se pr eserver, le resolver peut ^ etre con gur e pour tester si l'adresse IP originale est vraiment associ ee avec le nom obtenu. Si ce n'est pas le cas, le nom est rejet e
  • 102.
    6.1. La biblioth equeresolver 85 et une erreur est retourn ee. Ce comportement est mis en service en mettant nospoof on. alert Cette option prend les arguments on ou o . Si elle est en service (on), toute tentative de spoo ng (voir ci-dessus) sera enregistr ee dans les chiers trace du syst eme via syslog. trim Prend en argument un nom de domaine, qui sera elimin e des noms d'h^ otes avant la recherche. Tr es utile pour les entr ees hosts, o u vous pouvez ne trouver que des noms de machines sans domaine local. La recherche d'un h^ ote comprenant le domaine local verra ce dernier supprim e, permettant ainsi a la recherche dans /etc/hosts d'aboutir. L'option trim est cumulative, votre h^ ote pouvant alors ^ etre consid er e comme local a plusieurs domaines. Un exemple d'un tel chier pour la machine kroest fourni dans la gure 6.1 ci-dessous. # /etc/host.conf # Nous utilisons named, mais pas NIS (pas encore) order bind hosts # Autorise les adresses multiples multi on # Pr evention des tentatives de spoofing nospoof on # Supprime domaine local (pas vraiment n ecessaire). trim bibine.com. Fig. 6.1 - Exemple de chier host.conf. 6.1.2 Variables d'environnement du resolver La con guration inscrite dans host.conf peut ^ etre modi ee par un certain nombre de variables d'environnement qui sont: RESOLV HOST CONF Sp eci e un chier a lire a la place de /etc/host.conf. RESOLV SERV ORDER Remplace l'option order donn ee dans host.conf. Les services sont hosts, bind et nis, s epar es par une espace, une virgule, un point, ou un deux-points (:). RESOLV SPOOF CHECK D etermine les mesures a prendre en cas de spoo ng. Compl etement invalid e par o . Les valeurs warn et warn o mettent le test de spoo-
  • 103.
    86 Chapitre 6.Con guration du serveur de noms et du resolver ng en service, mais valident ou invalident l'enregistrement dans les chiers trace, respectivement. Une valeur de * met le test en service, mais laisse l'enregistrement des traces tel que con gur e dans le chier host.conf. RESOLV MULTI Les valeurs on ou o sont utilis ees pour prendre le dessus sur celles indiqu ees a l'option multi dans host.conf. RESOLV OVERRIDE TRIM DOMAINS Sp eci e la liste des domaines a supprimer, rempla cant celle donn ee dans host.conf par l'option trim. RESOLV ADD TRIM DOMAINS Sp eci e une liste de domaines a supprimer, qui s'ajoutera a celle donn ee dans host.conf par l'option trim. 6.1.3 Con guration des recherches DNS |resolv.conf Lorsque vous con gurez le resolver pour qu'il utilise le service BIND pour la recherche de noms, vous devez aussi lui indiquer quels serveurs de noms il doit utiliser. Il y a un chier s epar e destin e a cet usage, resolv.conf. S'il n'existe pas, ou s'il est vide, le resolver consid erera que le serveur de noms se trouve sur votre propre machine. Pour utiliser un serveur de noms sur votre h^ ote local, il vous faut le con gurer s e- par ement, comme nous le d ecrirons dans les sections suivantes. Si vous ^ etes connect e a un r eseau local et que vous avez la possibilit e d'utiliser un serveur de noms d ej a existant, cette solution sera toujours a pr ef erer. L'option la plus importante dans resolv.conf est nameserver, qui indique l'adresse IP du serveur de noms a contacter. Si vous en sp eci ez plusieurs, en utilisant cette option plusieurs fois, ils seront essay es dans l'ordre donn e. Par cons equent, vous devez toujours indiquer le plus able en premier. L'impl ementation courante autorise jusqu' a trois d eclarations nameserver dans le chier resolv.conf. Si aucune option nameserver n'est pr ecis ee, le resolver tentera de se connecter sur celui qui est local a la machine. Deux autres options, domain et search, vous permettent d'employer des raccourcis pour les h^ otes appartenant a votre domaine local. G en eralement, pour vous connecter sur une machine de votre r eseau, vous pr ef erez taper un nom simple et court comme gauss, et laisser le resolver rajouter la partie mathematiques.groucho.edu tout seul. C'est le but de l'option domain. Elle vous permet de sp eci er un domaine par d efaut, qui sera rajout e si le DNS echoue lors de la r esolution d'un nom. Par exemple, en recherchant gauss, il ne trouvera pas ( ( gauss. ) ) puisqu'il n'y a aucun domaine de haut niveau de ce nom. Si on lui indique mathematiques.groucho.edu comme domaine par d efaut, il fera sa requ^ ete sur gauss.mathematiques.groucho.edu, qui cette fois aboutira.
  • 104.
    6.1. La biblioth equeresolver 87 Tout cela est tr es bien, nous direz-vous; mais d es que l'on sort du D epartement Math ematiques, nous revoil a avec ces noms pleinement quali es. Et bien s^ ur, vous voudriez aussi pouvoir utiliser des raccourcis comme quark.physique pour atteindre les machines dans le domaine du D epartement de Physique. Et c'est ici que la liste de recherche entre en jeu: l'option search permet d'indiquer une liste de recherche, qui correspond a une g en eralisation de la d eclaration domain. L a o u cette derni ere n'autorise qu'un seul domaine par d efaut, search permet de sp eci er toute une liste de domaines, chacun etant essay esjusqu' a ce que la rechercheaboutisse. Cette liste utilise des espaces ou des tabulations comme caract ere de s eparation. Les d eclarations domain et search sont mutuellement exclusives, et ne peuvent appa- ra^ tre plus d'une fois. Si aucune d'elles n'est indiqu ee, le resolver tentera de deviner le domaine par d efaut a partir du nom d'h^ ote local, en utilisant l'appel syst eme getdo- mainname(2). Si le nom n'a pas de partie domaine, c'est le domaine racine qui sera utilis e par d efaut. Si vous d ecidez de mettre une instruction search dans resolv.conf, vous devez faire } tr es attention aux domaines que vous d eclarez dans la liste. Les biblioth eques resolver de version ant erieure a BIND-4.9 construisaient une liste de recherche par d efaut a partir du nom de domaine, si aucune liste n' etait pr ecis ee. Cette liste par d efaut etait constitu ee du domaine par d efaut lui-m^ eme, plus tous ses domaines parents, jusqu' a la racine. Cela a pos e quelques probl emes car les requ^ etes DNS aboutissaient a des serveurs de noms qui n'auraient jamais d^ u ^ etre concern es. Supposons que vous vous trouviez a ( ( La bi ere virtuelle ) ), et que vous vouliez vous connecter a la machine foot.groucho.edu. Mais, ayant un peu abus e des productions de cette honorable soci et e, vos doigts d erapent sur le clavier et au lieu de taper foot, vous mettez foo, qui n'existe pas. Le serveur de noms de GMU vous indiquera donc qu'il ne conna^ t aucun h^ ote de ce nom. Avec l'ancienne impl ementation de la liste de recherche, le resolver commencerait alors a rajouter bibine.com, puis com au bout. Ce dernier cas pose un gros probl eme car groucho.edu.com pourrait ^ etre un domaine valide. Leur serveur de noms pourrait m^ eme trouver une machine foo dans leur domaine, ce qui n'est pas du tout ce que vous vouliez1 ! Dans certaines applications, ces recherches bogu ees peuvent poser des probl emes de s ecurit e. Par cons equent, vous devez g en eralement limiter les domaines de votre liste de recherche a votre organisation locale, ou equivalent. Au D epartement de Ma- th ematiques de l'universit e Groucho Marx, la liste de recherche serait initialis ee a maths.groucho.edu et groucho.edu. Si vous trouvez que les domaines par d efaut sont un peu diciles a appr ehender, regardez cet exemple de chier resolv.conf pour ( ( La bi ere virtuelle ) ) : # /etc/resolv.conf # Notre domaine domain bibine.com 1: Pour une explication d etaill ee de ce probl eme, consultez le RFC 1535.
  • 105.
    88 Chapitre 6.Con guration du serveur de noms et du resolver # # Nous utilisons kro comme serveur de noms central: nameserver 172.16.1.1 Lors de la recherche du nom trappiste, le resolver cherchera trappiste, et ne le trouvant pas, trappiste.bibine.com. 6.1.4 Fiabilit e du Resolver Si vous ^ etes connect e sur un r eseau local faisant partie d'un r eseau plus important, vous devez absolument utiliser les eventuels serveurs de noms centraux. Ils d evelop- peront petit a petit des caches extr^ emement bien fournis, puisque toutes les requ^ etes leur seront pass ees. Toutefois, cette m ethode a ses failles: lorsqu'un incendie d etruisit un jour le c^ able de la dorsale de notre universit e, plus aucun travail ne fut possible sur notre r eseau local car aucun resolver ne pouvait plus atteindre aucun serveur de noms. Il etait impossible d'utiliser les terminaux X, les imprimantes, etc. Bien que cette situation soit tr es rare, il vaut mieux prendre ses pr ecautions contre les pannes, toujours possibles. Vous pouvez par exemple installer un serveur de noms local, qui g ere les machines de votre domaine local et renvoie les requ^ etes pour tous les autres noms aux ser- veurs principaux. Bien entendu, cela n'est possible que si vous poss edez votre propre domaine local. Alternativement, vous pouvez maintenir une sauvegarde des h^ otes de votre r eseau dans le chier /etc/hosts. A ce moment-l a, vous mettriez dans le chier /etc/host.conf la ligne ( ( order bind hosts ) ) a n que le resolver utilise ce chier hosts en cas de panne du serveur de noms central. 6.2 Utilisation de named Le programme qui r ealise le service de noms sur la plupart des machines UNIX s'ap- pelle en g en eral named (prononcez naime-d e). Il s'agit d'un programme serveur d e- velopp e a l'origine pour BSD, o rant un service de noms aux clients, aussi bien qu' a d'autres serveurs de noms. La version actuellement utilis ee sous Linux semble ^ etre BIND-4.8.3. La nouvelle version, BIND-4.9.3, est encore en b^ eta-test a l'heure ou nous ecrivons ce livre2. Elle comporte de nombreuses nouveaut es, comme des zones s ecuris ees pour restreindre les transferts a certains h^ otes ou r eseaux. Consultez la documentation fournie avec le code source pour plus de d etails. A partir de maintenant, nous consid erons que vous comprenez et ma^ trisez la fa con dont DNS, le Domain Name System, fonctionne. Si tout ce qui va suivre vous para^ t confus, relisez le chapitre 2, qui contient les notions de base n ecessaires. 2: BIND-4.9 est d evelopp e par Paul Vixie, paul@vix.com.
  • 106.
    6.2. Utilisation denamed 89 Le programme named est en principe lanc e au d emarrage du syst eme et fonctionne continuellement jusqu' a l'arr^ et de la machine. Il prend ses informations dans un chier de con guration nomm e /etc/named.boot, ainsi que dans divers autres chiers qui contiennent des correspondances entre domaines et adresses, et d'autres donn ees de ce type. Ces derniers sont appel es chiers de zone. Le format et la s emantique de ces chiers constituent l'objet de la section suivante. Pour lancer named, tapez simplement: # /usr/sbin/named Aussit^ ot, named va lire le chier named.boot et tous les chiers de zone indiqu es dedans. Il ecrit son num ero de processus dans /var/run/named.pid sous forme ASCII, t el echarge des donn ees depuis le serveur primaire si n ecessaire, puis se met a l' ecoute du port 53 en attente de requ^ etes DNS3. 6.2.1 Le chier named.boot Le chier named.boot est g en eralement tr es petit et ne contient pratiquement que des pointeurs vers des chiers de r ef erence, dans lesquels se trouvent les informations de la zone et des pointeurs sur d'autres serveurs de noms. Les commentaires commencent par un point-virgule et s' etendent jusqu' a la n de la ligne. Avant de d etailler le format de ce chier, regardons un exemple pratique: le chier named.boot de la machine kro, gure 6.24. ; ; Fichier /etc/named.boot pour la machine kro.bibine.com ; directory /var/named ; ; domaine fichier ;--------------------------------------------------- cache . named.ca primary bibine.com named.hosts primary 0.0.127.in-addr.arpa named.local primary 72.191.in-addr.arpa named.rev Fig. 6.2 - Le chier named.boot de la machine kro. 3: Si vous utilisez une version pr ecompil ee, il existe plusieurs binaires de named pour Linux, con gur es di eremment. Certains ecrivent leur chier named.pid dans in /etc; d'autres dans /tmp ou /var/tmp, etc. Il est egalement possible que vous ayez install e le programme ailleurs que dans /usr/sbin. 4: Notez que les noms de domaines sont indiqu es sans point nal. D'anciennes versions de named semblent traiter un point nal dans named.boot comme une erreur, et ne tiennent pas compte de la ligne incrimin ee, sans le signaler. BIND-4.9.3 corrige ce probl eme.
  • 107.
    90 Chapitre 6.Con guration du serveur de noms et du resolver Les commandes cache et primary que l'on peut voir dans cet exemple chargent des informations dans named. Ces informations sont prises dans les chiers de r ef erence indiqu es dans le second argument; ils repr esentent les RR (resource records) du DNS, que nous allons voir ci-dessous. Ici, nous avons con gur e named en tant que serveur de noms primaire pour trois domaines, comme l'indiquent les trois lignes primary de la n du chier. La premi ere de ces lignes, par exemple, indique a named qu'il doit agir comme serveur primaire pour bibine.com, en prenant les informations de zone dans le chier named.hosts. Le mot cl e directory lui indique que tous les chiers de zone sont situ es dans le r epertoire /var/named. L'entr ee cache est tr es sp eciale et doit ^ etre pr esente sur pratiquement toutes les ma- chines comportant un serveur de noms. Sa fonction est double: elle indique a named de valider son cache et de charger les informations sur les domaines racine depuis le chier cache sp eci e (named.ca dans notre exemple). Nous reviendrons sur ces do- maines racine un peu plus loin. Voici une liste des options les plus importantes que vous pouvez utiliser dans na- med.boot: directory D esigne un r epertoire dans lequel r esident les chiers de zone. Le nom de ces chiers peut ensuite ^ etre indiqu e relativement a ce r epertoire. Il est possible d'avoir plusieurs r epertoires en indiquant chaque fois le mot-cl e directory. Selon le standard adopt e sous Linux, ce doit ^ etre en principe /var/named. primary Prend deux arguments, un nom de domaine et un nom de fichier, d eclarant le serveur de nom local comme ayant autorit e pour le do- maine indiqu e. En tant que serveur primaire, named charge les infor- mations de zone depuis le chier de r ef erence sp eci e. G en eralement, il y aura au moins une entr ee primary dans chaque chier named.boot, pour la recherche inverse du r eseau 127.0.0.0, qui correspond au r eseau loopback. secondary Prend comme arguments un nom de domaine, une liste d'adres- ses, et un nom de fichier. D eclare le serveur de noms local comme etant le serveur ma^ tre secondaire pour le domaine indiqu e. Un serveur secondaire contient aussi les donn ees ayant autorit e pour le domaine, mais il ne les r ecup ere pas dans des chiers; il essaie de les t el echarger depuis le serveur primaire. L'adresse IP d'au moins un serveur primaire doit ^ etre fournie a named dans la liste d'adresses. Le serveur de noms local contactera tour a tour chacune d'elles jusqu' a ce qu'il ait r eussi a transf erer la base de donn ees de la zone, qui sera alors stock ee dans le chier de sauvegarde sp eci e dans le troisi eme argument. Si aucun des serveursprimairesne r epond,les informations
  • 108.
    6.2. Utilisation denamed 91 de zone seront charg ees depuis cette sauvegarde. Le programme named tentera alors de remettre a jour ces informa- tions a intervalles r eguliers. Tout cela sera d ecrit plus loin, avec le RR de type SOA. cache Prend un domaine et un nom de fichier en arguments. Ce chier contient les informations sur les domaines racine, qui est une liste d'enregistrements pointant vers les serveurs de noms racine. Seuls les enregistrements NS et A seront reconnus. Le domaine doit ^ etre soit le nom du domaine racine, soit un simple point (.). Cette information est absolument cruciale pour named: si la ligne cache n'appara^ t pas dans le chier d'amor cage, named ne cr eera pas du tout de cache. Les performances seront alors s erieusement d egrad eeset la charge du r eseau extr^ emement augment ee si le serveur suivant n'est pas sur le r eseau local. De plus, named sera incapable de joindre les serveurs racine, et par cons equent il ne r esoudra aucune adresse, except ees celles pour lesquelles il a autorit e. forwarders Prend une liste d'adresses en argument. Les adresses IP gurant dans cette liste d esignent des serveurs de noms que named peut in- terroger s'il echoue dans la r esolution d'une requ^ ete en utilisant son cache local. Elles sont essay ees dans l'ordre indiqu e, jusqu' a ce que l'un de ces serveurs r eponde a la requ^ ete. slave Cette instruction fait du serveur un serveur de noms esclave, c'est- a-dire qu'il ne fera jamais de recherche r ecursive par lui-m^ eme, mais les transmettra aux serveurs indiqu es par forwarders. Il y a encore deux options que nous ne d ecrirons pas ici, sortlist et domain. De plus, il existe deux directives pouvant ^ etre utilis ees a l'int erieur de ces chiers de la base de donn ees: $INCLUDE et $ORIGIN. Elles sont rarement utilis ees, aussi nous ne les d ecrirons pas non plus. 6.2.2 Les chiers de la base de donn ees Les chiers de r ef erence lus par named, comme named.hosts, poss edent toujours un domaine associ e, qui est appel e l'origine. Il s'agit du nom de domaine sp eci e par les commandes cache et primary. A l'int erieur d'un chier de r ef erence, vous ^ etes autoris e a indiquer noms de machines et domaines, par rapport a cette origine. Un nom donn e dans un chier de con guration sera consid er e comme absolu s'il se termine par un point, sinon il sera compris comme relatif a l'origine. Cette origine peut ^ etre elle-m^ eme indiqu ee par le signe ( ( @ ) ) (A commercial). Les donn ees contenues dans un chier de r ef erence sont divis ees en enregistrements appel es resource records, ou RR en abr eg e. Ils constituent la plus petite unit e d'infor-
  • 109.
    92 Chapitre 6.Con guration du serveur de noms et du resolver mation disponible depuis le DNS. Chaque RR a un type. Le type A, par exemple, fait correspondre un nom d'h^ ote a une adresse IP, et un enregistrement de type CNAME associe un alias a un nom ociel de machine. Par exemple, jetons un il a la gure 6.4, qui repr esente le chier named.hosts de l'entreprise ( ( La bi ere virtuelle ) ). Les resource records des di erents chiers de r ef erence partagent un format commun: [domaine] [ttl] [classe] type donn ees Les champs sont s epar es par des espaces ou des tabulations. Une entr ee peut s' etendre sur plusieurs lignes s'il y a une parenth ese ouvrante avant le premier caract ere de saut de ligne, et si le dernier champ est suivi d'une parenth ese fermante. Tout ce qui se trouve entre un signe point-virgule et le saut de ligne suivant est consid er e comme un commentaire et donc ignor e. domaine Il s'agit du nom de domaine auquel s'appliquent les entr ees. Si aucun domaine n'est donn e, le RR est consid er e comme s'appliquant au domaine du pr ec edent RR. ttl A n de forcer les resolvers a supprimer l'information au bout d'un certain temps, chaque RR se voit attribuer une dur ee de vie maxi- male, appel e time to live, ou ttl. Le champ ttl sp eci e le temps en secondes pendant lequel l'information restera valide apr es qu'elle a et e r ecup er eesur le serveur. Il s'agit d'un nombre d ecimal comportant 8 chi res au plus. Si aucune valeur ttl n'est donn ee, c'est la valeur du champ minimum du pr ec edent enregistrement SOA qui sera prise par d efaut. classe Il s'agit d'une classe d'adresses, comme IN pour les adresses IP, HS pour des objets Hesiod. Pour le r eseau TCP/IP, ce sera IN. S'il n'y a aucun champ classe, c'est la classe du RR pr ec edent qui sera prise. type D ecrit le type du RR. Les types d'enregistrement les plus courants sont A, SOA, PTR, et NS. Nous verrons bient^ ot a quoi ils correspon- dent. donn ees Contient les donn ees associ ees avec le RR. Le format de ce champ d epend du type de l'enregistrement. Il sera d ecrit s epar ement, avec chaque type de RR. Voici ci-dessous une liste non exhaustive des RR a utiliser dans les chiers de r ef erence. Il y en a d'autres, que nous ne d ecrirons pas: ils sont exp erimentaux et tr es peu employ es.
  • 110.
    6.2. Utilisation denamed 93 SOA SOA signi e ( ( Start of Authority) ) et signale que l'enregistrement qui suit contient les informationsayant autorit epour ce domaine. Chaque chier de r ef erence inclus par une instruction primary doit contenir un enregistrement SOA pour cette zone. Il contient les champs sui- vants: origine Il s'agit du nom canonique du serveur de noms pri- maire pour ce domaine. Il est en g en eral indiqu e de mani ere absolue. contact L'adresse electronique de la personne responsable de la maintenance du domaine, mais avec le signe `@' remplac e par un point. Par exemple, si la per- sonne responsable a ( ( La bi ere virtuelle ) ) est l'uti- lisateur marcel, alors ce champ contiendra mar- cel.bibine.com. num ero de s erie Le num ero de version du chier de zone, exprim e sous la forme d'un nombre d ecimal entier. Chaque fois que des donn ees sont modi ees, ce nombre doit ^ etre incr ement e. Ce num ero de s erie est utilis e par les serveurs de noms secondaires pour savoir quand les informations de zone ont chang e. Pour rester a jour, les serveurs secondairesdemandent l'enregistrementSOA du pri- maire a intervalles r eguliers et comparent le num ero de s erie a celui du SOA se trouvant dans leur cache. S'il a chang e, les serveurs secondaires t el echargent alors toute la base de donn ees de la zone depuis le serveur primaire. rafra^ chissement Sp eci e l'intervalle, en secondes, entre les v eri ca- tions p eriodiques des enregistrements SOA du ser- veur primaire pour les eventuelles mises a jour. L a encore, il s'agit d'un nombre d ecimal entier exprim e sur 8 chi res au plus. G en eralement, la topologie du r eseau ne change pas tr es souvent, aussi ce nombre doit indiquer approxi- mativement une journ ee pour les grands r eseaux, voire davantage pour les plus petits. tentatives Ce nombre d etermine les intervalles auxquels un ser- veur secondaire doit tenter de recontacter le serveur
  • 111.
    94 Chapitre 6.Con guration du serveur de noms et du resolver primaire si une requ^ ete ou un rafra^ chissement de zone echoue. Il ne doit pas ^ etre trop faible, sinon une panne momentan ee du serveur ou un probl eme r eseau peut amener le serveur secondaire a g^ acher inutilement des ressources r eseau. On choisit en g e- n eral une heure, ou une demi-heure. expiration Indique le temps, en secondes, au bout duquel un serveur secondaire doit eliminer toutes les informa- tions de zone s'il n'a pas pu contacter le serveur pri- maire. Normalement, vous devez mettre au moins une semaine (604800 secondes), mais l'augmenter jusqu' a un mois reste encore raisonnable. minimum Il s'agit de la valeur ttl par d efaut pour les RR qui n'en contiennent pas explicitement une. Cette valeur sp eci e le temps maximal pendant lequel les autres serveurs de noms doivent conserver le RR dans leur cache. Il ne s'applique qu'aux requ^ etes normales, et n'a aucun rapport avec le temps au bout duquel un serveur secondaire doit essayer de mettre a jour les informations de zone. Si la topologie de votre r eseau ne change pas sou- vent, une semaine, voir plus, constitue un bon choix. Si certains RR sont modi es plus fr equemment, vous pourrez toujours leur assigner des valeurs ttl indivi- duelles. Si, d'un autre c^ ot e, votre r eseau est souvent modi e, vous pourrez peut-^ etre ramener cette valeur a environ une journ ee (86400 secondes). A Cet enregistrement associe une adresse IP a un nom de machine. Le champ de donn ees contient l'adresse en notation sur 4 octets. Pour chaque h^ ote, il ne doit exister qu'un enregistrement de type A. Le nom utilis e est consid er ecomme le nom ociel, ou nom canonique, de la machine. Tous les autres noms sont des alias et doivent ^ etre associ es au nom canonique par un enregistrement de type CNAME. NS Les enregistrements NS servent a sp eci er un serveur primaire de zone et tous ses serveurs secondaires. Ils pointent vers un serveur de noms ma^ tre de la zone concern ee, le champ de donn ees contenant le nom de ce serveur de noms. Vous rencontrerez des enregistrements NS dans deux situations: lors- que vous d el eguez l'autorit e a une zone subordonn ee, et dans la base de donn ees de la zone subordonn ee elle-m^ eme. Les listes de serveurs sp eci es dans les zones parent et d el egu ees doivent correspondre.
  • 112.
    6.2. Utilisation denamed 95 A n de r esoudre le nom vers lequel pointe un enregistrement NS, un enregistrement A suppl ementaire peut ^ etre n ecessaire, le fameux glue record qui donne l'adresse IP du serveur de noms. Les glue records sont n ecessaires dans le chier de zone lorsque le serveur point e est hors du domaine d el egu e. CNAME Cet enregistrement associe un alias au nom canonique d'un h^ ote. Le nom canonique est celui indiqu e par un enregistrement A; les alias y sont simplement li es par un CNAME, mais ne poss edent pas leur propre enregistrement. PTR Ce type d'enregistrement est utilis e pour associer les noms dans le domaine in-addr.arpa avec les noms d'h^ otes. Il sert a la recherche des noms en fonction de l'adresse IP (recherche inverse). Le nom indiqu e doit ^ etre le nom canonique. MX Cet RR annonce un echangeur de courrier (mail exchanger) pour un domaine. Le sujet est d ecrit dans la section ( ( Mail Routing on the Internet ) ), chapitre 13. La syntaxe d'un enregistrement MX est: [domaine] [ttl] [classe] MX pr ef erence h^ ote L'argument h^ ote nomme l' echangeur de courrier pour domaine. Chaque echangeur est associ e a une pr ef erence, nombre entier. Un programme agent de transport de courrier d esirant d elivrer un mes- sage a domaine essaiera tous les h^ otes qui ont un enregistrement MX pour ce domaine, jusqu' a ce qu'il aboutisse. Celui dont la valeur de pr ef erence est la plus faible sera essay e en premier, et ainsi de suite. HINFO Donne des informations sur l' equipement mat eriel et logiciel de la machine. Sa syntaxe est: [domaine] [ttl] [classe] HINFO mat eriel logiciel Le champ mat eriel indique le type d'ordinateur. Plusieurs conven- tions sont utilis ees; une liste de noms valides est donn ee dans ( ( As- signed Numbers ) ), RFC 1340. S'il contient des espaces, il doit ^ etre d elimit e par des double quotes ( ). Le champ logiciel indique le syst eme d'exploitation utilis e. L a encore, il faut choisir l'un des noms reconnus, indiqu es dans le document RFC 1340. 6.2.3 R edaction des chiers de r ef erence Les gures 6.3, 6.4, 6.5 et 6.6 donnent des exemples des chiers d'un serveur de noms de l'entreprise ( ( La bi ere virtuelle ) ), situ e sur la machine kro. En raison de la nature du r eseau (un simple r eseau local), l'exemple est assez simple. Si vos besoins sont plus
  • 113.
    96 Chapitre 6.Con guration du serveur de noms et du resolver complexes et que vous n'arrivez pas a faire fonctionner named, procurez-vous le livre DNS and BIND de Cricket Liu et Paul Albitz ([AlbitzLiu92]). Le chier cache named.ca pr esent e dans la gure 6.3 montre un exemple d'enregis- trement pour un serveur de noms racine. Un chier cache typique d ecrit en g en eral environ une douzaine de serveurs de noms. Vous pouvez obtenir la liste courante des serveurs de noms pour le domaine racine en employant l'utilitaire nslookup d ecrit dans la section suivante5. ; ; /var/named/named.ca Fichier cache pour les brasseurs. ; Nous ne sommes pas sur l'Internet, par cons equent ; nous n'avons besoin d'aucun serveur racine. ; Pour activer ces enregistrements, supprimez les ; points-virgules qui les mettent en commentaire. ; ; . 99999999 IN NS NS.NIC.DDN.MIL ; NS.NIC.DDN.MIL 99999999 IN A 26.3.0.103 ; . 99999999 IN NS NS.NASA.GOV ; NS.NASA.GOV 99999999 IN A 128.102.16.10 Fig. 6.3 - Le chier named.ca. 6.2.4 V eri cation de la con guration du serveur de noms Pour v eri erle fonctionnement d'un serveur de noms, l'outil adapt e s'appelle nslookup. Il peut ^ etre utilis e aussi bien en ligne de commandes que de mani ere interactive. Dans le premier cas, on le lance simplement par: nslookup nom-de-machine Et nslookup interroge alors le serveur de noms d eclar e dans le chier resolv.conf, a propos de nom-de-machine (Si ce chier contient plusieurs serveurs, nslookup en choisit un au hasard). Le mode interactif est bien plus int eressant. En plus de pouvoir obtenir des ren- seignements sur des h^ otes individuels, vous pouvez demander n'importe quel type d'enregistrement DNS et t el echarger la totalit e des informations de zone pour un domaine. Invoqu e sans arguments, nslookup ache le serveur de noms qu'il utilise et passe en mode interactif. A l'invite , vous pouvez alors entrer n'importe quel domaine sur 5: Notez que vous ne pouvez pas interroger votre serveur de noms a propos des serveurs racine si aucun chier d'informations les concernant n'est install e. Pour contourner ce probl eme, vous pouvez soit indiquer un autre serveur de noms a nslookup, soit utiliser l'exemple donn e dans la gure 6.3 comme point de d epart, puis obtenir ainsi la liste compl ete des serveurs valides.
  • 114.
    6.2. Utilisation denamed 97 ; ; /var/named/named.hosts H^ otes locaux chez les brasseurs. ; L'origine est bibine.com ; @ IN SOA kro.bibine.com. marcel.bibine.com. ( 16 ; num ero de s erie 86400 ; rafra^ chissement une fois par jour 3600 ; tentatives: une heure 3600000 ; expiration: 42 jours 604800 ; minimum: 1 semaine ) IN NS kro.bibine.com. ; ; le courrier local est distribu e sur kro IN MX 10 kro ; ; adresse loopback localhost. IN A 127.0.0.1 ; Ethernet des brasseurs kro IN A 172.16.1.1 kro-if1 IN CNAME kro ; kro est aussi un serveur de News Usenet news IN CNAME kro gueuze IN A 172.16.1.2 trappiste IN A 172.16.1.3 ; Ethernet des viticulteurs kro-if2 IN A 172.16.2.1 gamay IN A 172.16.2.2 cahors IN A 172.16.2.3 brouilly IN A 172.16.2.4 Fig. 6.4 - Le chier named.hosts. ; ; /var/named/named.local Recherche inverse de 127.0.0 ; L'origine est 0.0.127.in-addr.arpa. ; @ IN SOA kro.bibine.com. alfred.bibine.com. ( 1 ; num ero de s erie 360000 ; rafra^ chissement: 100 heures 3600 ; tentatives: une heure 3600000 ; expiration: 42 jours 360000 ; minimum: 100 heures ) IN NS kro.bibine.com. 1 IN PTR localhost. Fig. 6.5 - Le chier named.local.
  • 115.
    98 Chapitre 6.Con guration du serveur de noms et du resolver ; ; /var/named/named.rev Recherche inverse de notre adresse IP ; L'origine est 72.191.in-addr.arpa. ; @ IN SOA kro.bibine.com. alfred.bibine.com. ( 16 ; num ero de s erie 86400 ; rafra^ chissement une fois par jour 3600 ; tentatives: une heure 3600000 ; expiration: 42 jours 604800 ; minimum: 1 semaine ) IN NS kro.bibine.com. ; brewery 1.1 IN PTR kro.bibine.com. 2.1 IN PTR gueuze.bibine.com. 3.1 IN PTR trappiste.bibine.com. ; winery 1.2 IN PTR kror-if1.bibine.com. 2.2 IN PTR gamay.bibine.com. 3.2 IN PTR cahors.bibine.com. 4.2 IN PTR brouilly.bibine.com. Fig. 6.6 - Le chier named.rev. lequel vous d esirez des renseignements. Par d efaut, il demande les enregistrements de classe A, ceux contenant l'adresse IP relative au nom du domaine. Vous pouvez changer ce comportement par la commande ( ( set type=type ) ) o u type est l'un des RR d ecrits plus haut, ou bien ( ( ANY ) ), c'est- a-dire tous. Voici un exemple de session nslookup: $ nslookup Default Name Server: rs10.hrz.th-darmstadt.de Address: 130.83.56.60 sunsite.unc.edu Name Server: rs10.hrz.th-darmstadt.de Address: 130.83.56.60 Non-authoritative answer: Name: sunsite.unc.edu Address: 152.2.22.81 Si vous recherchez un nom qui n'a pas d'adresse IP associ ee, mais d'autres enregistre- ment dans la base de donn ees DNS, nslookup retournera le message d'erreur ( ( No type A records found ) ). Toutefois, vous pouvez lui faire qu erir d'autres enregistrements que le type A par la commande set type. Par exemple, pour obtenir l'enregistrement SOA de unc.edu, vous feriez:
  • 116.
    6.2. Utilisation denamed 99 unc.edu *** No address (A) records available for unc.edu Name Server: rs10.hrz.th-darmstadt.de Address: 130.83.56.60 set type=SOA unc.edu Name Server: rs10.hrz.th-darmstadt.de Address: 130.83.56.60 Non-authoritative answer: unc.edu origin = ns.unc.edu mail addr = shava.ns.unc.edu serial = 930408 refresh = 28800 (8 hours) retry = 3600 (1 hour) expire = 1209600 (14 days) minimum ttl = 86400 (1 day) Authoritative answers can be found from: UNC.EDU nameserver = SAMBA.ACS.UNC.EDU SAMBA.ACS.UNC.EDU internet address = 128.109.157.30 Vous pouvez de la m^ eme fa con obtenir les MX, etc. set type=MX unc.edu Non-authoritative answer: unc.edu preference = 10, mail exchanger = lambada.oit.unc.edu lambada.oit.unc.edu internet address = 152.2.22.80 Authoritative answers can be found from: UNC.EDU nameserver = SAMBA.ACS.UNC.EDU SAMBA.ACS.UNC.EDU internet address = 128.109.157.30 Demander le type ANY retournera tous les RR associ es a un nom donn e. En dehors de la mise au point et du d eboguage, nslookup permet d'obtenir la liste des serveurs de noms racine courants. Vous pouvez l'obtenir en demandant tous les enregistrements NS associ es au domaine racine: set typ=NS . Name Server: fb0430.mathematik.th-darmstadt.de Address: 130.83.2.30 Non-authoritative answer: (root) nameserver = NS.INTERNIC.NET (root) nameserver = AOS.ARL.ARMY.MIL (root) nameserver = C.NYSER.NET (root) nameserver = TERP.UMD.EDU (root) nameserver = NS.NASA.GOV (root) nameserver = NIC.NORDU.NET
  • 117.
    100 Chapitre 6.Con guration du serveur de noms et du resolver (root) nameserver = NS.NIC.DDN.MIL Authoritative answers can be found from: (root) nameserver = NS.INTERNIC.NET (root) nameserver = AOS.ARL.ARMY.MIL (root) nameserver = C.NYSER.NET (root) nameserver = TERP.UMD.EDU (root) nameserver = NS.NASA.GOV (root) nameserver = NIC.NORDU.NET (root) nameserver = NS.NIC.DDN.MIL NS.INTERNIC.NET internet address = 198.41.0.4 AOS.ARL.ARMY.MIL internet address = 128.63.4.82 AOS.ARL.ARMY.MIL internet address = 192.5.25.82 AOS.ARL.ARMY.MIL internet address = 26.3.0.29 C.NYSER.NET internet address = 192.33.4.12 TERP.UMD.EDU internet address = 128.8.10.90 NS.NASA.GOV internet address = 128.102.16.10 NS.NASA.GOV internet address = 192.52.195.10 NS.NASA.GOV internet address = 45.13.10.121 NIC.NORDU.NET internet address = 192.36.148.17 NS.NIC.DDN.MIL internet address = 192.112.36.4 Pour avoir une liste compl ete des commandes disponibles, dans nslookup, tapez la commande help. 6.2.5 Autres outils pratiques Il existe quelques utilitaires pouvant vous aider dans votre t^ ache d'administration d'un serveur de noms; nous allons en d ecrire bri evement deux. Consultez la documentation fournie avec ces programmes pour en avoir le mode d'emploi. Le programme hostcvt est un outil qui vous aidera pour la con guration initiale en convertissant votre chier /etc/hosts en chiers de r ef erence pour named. Il g en ere les deux chiers contenant les enregistrements A et PTR (recherche inverse), et prend soin des eventuels alias. Bien s^ ur, il ne fera pas tout le travail pour vous; vous devrez tout de m^ eme editer le r esultat, ne serait-ce que pour ajuster les di erentes valeurs de temporisation dans le SOA, ou rajouter des MX, par exemple. Mais il peut malgr e tout vous faire economiser quelques cachets d'aspirine. Ce programme fait partie de la distribution source de BIND, mais on peut aussi le trouver seul sur quelques sites di usant Linux. Apr es avoir con gur e votre serveur de noms, vous pouvez avoir envie de tester le r esultat. L'outil id eal (et le seul, a notre connaissance), s'appelle dnswalk. Il s'agit d'un programme en langage perl qui traverse votre base de donn ees DNS, a la recherche des erreurs courantes et en v eri ant que les informations sont coh erentes. Il a et e di us e sur le forum Usenet comp.sources.misc r ecemment, et devrait ^ etre disponible sur tous les sites qui archivent ce groupe (ftp.uu.net si vous ne trouvez vraiment pas de site plus proche de chez vous).
  • 118.
    101 Chapitre 7 IP surligne s erie | SLIP Les protocoles SLIP et PPP permettent l'acc es a l'Internet aux moins fortun es. En dehors d'un modem et d'une carte s erie equip ee d'un bon circuit avec tampon FIFO, aucun equipement suppl ementaire n'est n ecessaire. Leur utilisation n'est pas plus compliqu ee que celle d'une bo^ te aux lettres, et le nombre croissant de fournisseurs de connectivit e IP par t el ephone rend ce type d'acc es abordable pour tout le monde1. Linux supporte aussi bien SLIP que PPP. Ce dernier protocole, dont le pilote est l'uvre de Michael Callahan et Alfred Longyear, sera d ecrit dans le chapitre suivant. 7.1 G en eralit es Pour utiliser SLIP ou PPP, vous devez con gurer un minimum de r eseau comme nous l'avons d ecrit auparavant dans cet ouvrage. Vous devez au moins poss eder l'interface loopback et o rir une m ethode quelconque de r esolution de noms. Si vous comptez vous connecter a l'Internet, vous devrez bien entendu employer le DNS. L'option la plus simple et n eanmoins ecace est de mettre l'adresse d'un serveur de noms accessible dans votre chier resolv.conf, puis d'ajouter l'option bind dans /etc/host.conf si elle n'y est pas d ej a. Le serveur sp eci e sera alors interrog e d es que le lien SLIP sera actif. Plus ce serveur de noms sera proche du lieu o u vous ^ etes connect e, plus rapide sera la r eponse. Cette solution n'est toutefois pas optimale, car toutes les r esolutions de noms pas- seront par votre liaison SLIP/PPP. Si le d ebit demand e vous inqui ete, vous pouvez aussi installer un serveur de noms cache seulement. Il ne g ere pas vraiment un do- maine, mais fonctionne comme un relais pour toutes les requ^ etes DNS g en er ees par votre machine. Son avantage sera le cache, gr^ ace auquel les requ^ etes n'auront a passer 1: C'est encore loin d'^ etre vrai en France.
  • 119.
    102 Chapitre 7.IP sur ligne s erie | SLIP qu'une seule fois par la liaison s erie. Un chier named.boot de serveur cache seulement ressemble a ceci: ; Fichier named.boot pour serveur de noms cache seulement directory /var/named primary 0.0.127.in-addr.arpa db.127.0.0 ; r eseau loopback cache . db.cache ; serveurs racine En plus de ce chier, il vous faudra initialiser db.cache par une liste valide de serveurs de noms racine; consultez la n du chapitre 6 pour cela. 7.2 Mode d'emploi de SLIP Les serveurs proposant une connectivit e IP o rent souvent ce service par l'interm e- diaire de comptes utilisateurs sp eciaux: au lieu d'un banal shell, c'est un programme ou un script qui est ex ecut e lorsque vous entrez dans le syst eme; il passe la liaison s e- rie en mode SLIP et con gure l'interface r eseau appropri ee. Il vous faut donc e ectuer les m^ emes op erations de votre c^ ot e. Dans certains syst emes d'exploitation, le pilote SLIP est un programme fonctionnant au niveau utilisateur; sous Linux il est partie int egrante du noyau, ce qui le rend beaucoup plus rapide. Cela n ecessite toutefois que la ligne s erie soit convertie en mode SLIP explicitement, ce qui est r ealis e par une discipline de ligne sp eciale: SLIPDISC. Le mode d'op eration normal du tty est DISC0, qui n' echange des donn ees qu'avec les processus utilisateurs, gr^ ace aux fonctions standards read(2) et write(2) et le pilote SLIP est incapable d' ecrire ou de lire sur ce tty. En mode SLIPDISC, les r^ oles sont invers es: tout processus utilisateur est interdit de lecture ou d' ecriture, et les donn ees du port s erie sont directement pass ees au pilote SLIP. Ce pilote SLIP conna^ t plusieurs variantes du protocole. En dehors du SLIP ordinaire, il comprend aussi CSLIP, qui e ectue ce que l'on appelle la compression d'en-t^ etes Van Jacobson sur les paquets IP sortants2, qui am eliore dans de grandes proportions la vitesse en utilisation interactive. De plus, il existe des versions 6 bits de chacun de ces protocoles. La fa con la plus simple de passer un port s erie en mode SLIP est d'utiliser le pro- gramme slattach. Consid erons que votre modem est branch e sur /dev/cua3 et que vous vous ^ etes connect e avec succ es sur le serveur SLIP. Vous ex ecuterez alors: # slattach /dev/cua3 La discipline de ligne de cua3 basculera en SLIPDISC et le port sera attach e a l'une des interfaces r eseau SLIP. S'il s'agit de votre premi ere liaison, la ligne sera atta- 2: La compression d'en-t^ etes Van Jacobson est d ecrite dans le RFC 1144.
  • 120.
    7.2. Mode d'emploide SLIP 103 ch ee a l'interface sl0; la seconde serait sur sl1, et ainsi de suite. Les noyaux actuels supportent 4, 8 ou 16 liaisons SLIP simultan ees. L'encapsulation choisie par d efaut par slattach est CSLIP. Vous pouvez choisir un autre mode gr^ ace a l'option -p ; pour le mode SLIP normal (sans compression) ce serait: # slattach -p slip /dev/cua3 D'autres modes sont disponibles: cslip, slip6, cslip6 (pour la version 6 bits), et adaptive. Ce dernier mode laisse le noyau d etecter automatiquement quel type d'encapsulation SLIP est employ e par le site distant. Vous devez utiliser la m^ eme encapsulation a chaque bout. Par exemple, si votre cor- respondant emploie CSLIP, vous devez le faire aussi, sinon la liaison sera incorrecte. Les sympt^ omes sont en g en eral qu'un ping ne revient pas, et l'autre c^ ot e de la liaison peut acher le message d'erreur ( ( Can't build ICMP header ) ) sur la console. Il est possible d' eviter cela en utilisant le mode adaptatif (option adaptive). Pour tous renseignements, consultez la page de manuel de slattach(8). Apr es avoir pass e la ligne en SLIP, vous devez con gurer l'interface r eseau. L a encore, il faut utiliser les commandes standards ifcon g et route. Supposons que nous ayons, a partir de la machine kro, appel e un serveur nomm e gogoslip. Nous devons taper les commandes suivantes: # ifconfig sl0 kro-slip pointopoint gogoslip # route add gogoslip # route add default gw gogoslip La premi ere commande con gure l'interface en tant que liaison point- a-point avec gogoslip, les deux autres ajoutent une route vers cette machine et positionne celle par d efaut a gogoslip tout en l'utilisant comme passerelle. Il faut noter deux choses a propos de la commande ifcon g montr ee dans cet exemple. La premi ere, c'est l'option pointopoint qui sp eci e l'adresse de la machine distante, la seconde etant l'utilisation de kro-slip comme adresse de l'interface SLIP locale. Nous avons dit auparavant que l'on pouvait utiliser la m^ eme adresse qui est assign ee a l'interface Ethernet de kro pour SLIP. Dans le cas pr esent, kro-slippourrait tr es bien n'^ etre qu'un alias de 172.16.1.1.Toutefois, il peut arriverque l'on soit oblig ed'utiliser une adresse compl etement di erente pour la liaison SLIP; c'est le cas par exemple lorsque le r eseau utilise une adresse IP de r eseau non enregistr ee ociellement, comme cela se passe a ( ( La bi ere virtuelle ) ). Nous reviendrons sur ce sujet en d etail dans la section suivante. Jusqu' a la n de ce chapitre, nous utiliserons toujours kro-slippour d esigner l'adresse de l'interface SLIP locale.
  • 121.
    104 Chapitre 7.IP sur ligne s erie | SLIP A la n de la session, vous devez d'abord supprimer toutes les routes vers gogoslip par l'option del de la commande route, puis mettre l'interface hors service, et envoyer le signal HUP a slattach (hangup, d econnexion de ligne). Ensuite, vous couperez la liaison modem. # route del default # route del gogoslip # ifconfig sl0 down # kill -HUP 516 7.3 Le probl eme des r eseaux IP priv es Vous vous souvenez que nous avons dit dans le chapitre 5 que ( ( La bi ere virtuelle ) ) utilise une adresse r eseau qui est r eserv ee uniquement aux usages internes: aucun pa- quet de ce r eseau ne sera rout e sur l'Internet. Cela signi e que les h^ otes de l'entreprise ne peuvent pas parler a des machines connect ees sur l'Internet, car les trames seraient discr etement elimin ees par le premier routeur venu. Pour contourner ce probl eme, nous allons con gurer kro comme une sorte de rampe de lancement permettant d'acc eder aux services Internet. Pour le monde ext erieur, elle se pr esentera comme un h^ ote tout a fait normal, avec une adresse IP d^ ument enregistr ee (probablement assign ee par le fournisseur de services). Pour avoir acc es a l'Internet, par exemple a un serveur FTP, les utilisateurs doivent se connecter sur kro et invoquer le client FTP sur cette machine, de sorte que la connexion paraisse venir d'un h^ ote valide. Pour les autres applications, il peut y avoir des solutions evitant cette connexion interm ediaire. Les utilisateurs de WWW par exemple, peuvent employer ce que l'on appelle un serveur proxy sur kro, qui fera le relais des requ^ etes vers les serveurs demand es. C'est une solution assez lourde, bien entendu. Mais, en plus d'avoir elimin e la paperas- serie n ecessaire a l'enregistrement d'un r eseau IP, elle apporte le b en e ce de r ealiser une con guration rewall tr es ecace. Les rewalls sont des h^ otes d edi es destin es a o rir des acc es limit es a l'Internet aux utilisateurs d'un r eseau local, sans exposer ce r eseau aux attaques ext erieures. Consid erons que nos brasseurs se sont vu attribuer pour la session SLIP, l'adresse IP 192.168.5.74. Tout ce que vous aurez a faire pour r ealiser la con guration d ecrite ci- dessus sera d'indiquer cette adresse dans le chier /etc/hosts, en l'appelant kro-slip. La proc edure d' etablissement du lien SLIP reste inchang ee. 7.4 Utilisation de dip Jusqu'ici, tout etait plut^ ot simple. N eanmoins, vous souhaiterez sans doute automa- tiser toutes les etapes de mani ere a n'avoir qu'une seule commande a taper pour que
  • 122.
    7.4. Utilisation dedip 105 tout se fasse tout seul. C'est le r^ ole du programme dip.3. La version actuelle, a l'heure o u nous ecrivonsces lignes, est 3.3.7. Il a et e enorm ementmodi e par un grand nombre de personnes, aussi il n'est plus possible de parler d'un unique programme dip. Ces di erentes variantes de d eveloppement aboutiront heureusement un jour a une seule version d e nitive. Le programme dip o re un petit langage script permettant de dialoguer avec le modem et le serveur, passer en mode SLIP et con gurer les interfaces. Il est tr es primitif et limit e, mais susant dans la plupart des cas. Ce langage changera peut-^ etre dans une future version, plus elabor ee. Pour pouvoir con gurer l'interface SLIP, dip a besoin des privil eges root. Il serait tentant de l'installer setuid a root, pour que tout utilisateur ordinaire puisse appeler un service SLIP sans qu'il soit n ecessaire de lui donner l'acc es superutilisateur. C'est pourtant une m ethode extr^ emement dangereuse, car con gurer de mauvaises inter- faces ou routes par d efaut avec dip peut paralyser compl etement votre r eseau. Pis, cela autoriserait n'importe quel utilisateur a t el ephoner n'importe o u, entre autres choses. Aussi, si vous avez vraiment besoin d'autoriser un utilisateur a initialiser lui-m^ eme des liaisons SLIP, la meilleure solution est d' ecrire un petit programme frontal pour chaque serveur a connecter, qui lui seul r ealisera l'appel a dip en tant que root avec les scripts adapt es a chaque cas, en toute s ecurit e.4 7.4.1 Exemple de script Supposons que l'h^ ote avec lequel nous voulons r ealiser notre connexion SLIP soit gogoslip, et que nous ayons d ej a ecrit un script appel e gogoslip.dip. Nous appellerons dip de cette fa con: # dip gogo.dip DIP: Dialup IP Protocol Driver version 3.3.7 (12/13/93) Written by Fred N. van Kempen, MicroWalt Corporation. connected to gogoslip.mou.com with addr 192.168.5.74 # Le script correspondant est pr esent e dans la gure 7.1. Apr es s'^ etre connect e a gogoslip et avoir mis SLIP en service, dip va se d etacher du terminal et se mettre en arri ere-plan. Vous pouvez alors commencer a utiliser les services r eseaux habituels par la liaison SLIP. Pour terminer la session, invoquez simplement dipavec l'option -k. Cela enverrasimplement un signal HUP au processus indiqu e dans /etc/dip.pid, que dip a cr e e au d emarrage. # dip -k 3: dip signi e Dialup IP, son auteur est Fred van Kempen. 4: Le programme diplogin peut (et doit) ^ etre setuid root, egalement. Voyez la n de ce chapitre.
  • 123.
    106 Chapitre 7.IP sur ligne s erie | SLIP # Exemple de script dip pour appeler gogoslip # Set local and remote name and address # Initialise les adresses locale et distante get $local kro-slip get $remote gogoslip port cua3 # choix du port s erie speed 38400 # choix de la vitesse modem HAYES # type de modem reset # remise a z ero du modem et du tty flush # nettoie le tampon de r eception modem # Pr eparation de l'appel send ATQ0V1E1X1r wait OK 2 if $errlvl != 0 goto error dial 41988 if $errlvl != 0 goto error wait CONNECT 60 if $errlvl != 0 goto error # Voil a, nous sommes connect es sleep 3 send rnrn wait ogin: 10 if $errlvl != 0 goto error send Skron wait ssword: 5 if $errlvl != 0 goto error send salutn wait running 30 if $errlvl != 0 goto error # Nous sommes sur le syst eme distant, qui lance SLIP. print Connect e a $remote avec l'adresse $rmtip default # Positionne ce lien comme route par d efaut mode SLIP # Et nous passons aussi en mode SLIP. # Les erreurs arrivent ici: error: print La connexion SLIP avec $remote a echou e. Fig. 7.1 - Un exemple de script pour le programme dip.
  • 124.
    7.4. Utilisation dedip 107 Dans le langage de script de dip, les mots cl es pr e x es par le symbole dollar ($) d enotent les noms de variables. Le programme conna^ t un certain nombre de va- riables pr ed e nies, que nous allons d etailler plus loin; $remote et $local, par exemple, contiennent les noms des deux machines, respectivement distante et locale, de la liai- son point- a-point. Les deux premi eres instructions du script sont des commandes get, qui est la m ethode par laquelle dip initialise une variable. Ici, la machine locale est kro-slipet la machine distante gogoslip. Les cinq instructions suivantes initialisent le terminal et le modem: reset envoie une commande de remise a z ero du modem; pour les modems compatibles Hayes, il s'agit de ATZ. La ligne suivante elimine le cas ech eant tous les caract eres d ej a re cus par le modem a n que le dialogue avec le serveur puisse s' etablir proprement. Cette s equence de dialogue est tr es simple: elle appelle le num ero 41988, le num ero de t el ephone de gogoslip, et se connecte sous le compte utilisateur Skro avec le mot de passe salut. La commande wait indique a dip d'attendre la cha^ ne de caract eres donn ee comme premier argument pendant le nombre de secondes indiqu e dans le second. La condition if imbriqu ee dans la proc edure teste qu'aucune erreur ne s'est produite pendant l'ex ecution de la commande. Les derni eres commandes ex ecut ees sont default, qui assigne la route par d efaut a la liaison SLIP, et mode, qui valide le mode SLIP sur la ligne s erie et con gure l'interface et la table de routage pour vous. 7.4.2 Manuel de r ef erence de dip Bien que tr es utilis e, dip n'est pas encore tr es bien document e. Nous allons malgr e tout vous donner un r esum e des principales commandes. Vous pourrez avoir un aper cu de la fonction de chacune d'elles en appelant dip en mode test et en tapant la commande help. Pour trouver la syntaxe d'une commande, vous pouvez l'entrer sans arguments; bien s^ ur, cela ne marche pas pour celles qui ne prennent pas d'argument. $ dip -t DIP: Dialup IP Protocol Driver version 3.3.7 (12/13/93) Written by Fred N. van Kempen, MicroWalt Corporation. DIP help DIP knows about the following commands: databits default dial echo flush get goto help if init mode modem parity print port reset send sleep speed stopbits term wait DIP echo Usage: echo on|off DIP _
  • 125.
    108 Chapitre 7.IP sur ligne s erie | SLIP Tout au long de la section suivante, les exemples qui achent l'invite DIP mon- trent comment entrer une commande en mode test et ce qu'elle ache a l' ecran. Les exemples d epourvus de cette invite doivent ^ etre consid er es comme des extraits de scripts. Les commandes modem Dip o re un certain nombre de commandes permettant la con guration de la ligne s erie et du modem. Certaines parlent d'elles-m^ emes, comme port, qui s electionne le port s erie a utiliser, ou speed, databits, stopbits et parity, qui permettent d'initialiser les param etres courants de la ligne (respectivement vitesse, nombre de bits, bits de stop, et parit e). La commande modem s electionne un type de modem. Pour l'instant, et pour encore longtemps sans doute, le seul type support e est HAYES (majuscules requises). L'indi- cation du type de modem est obligatoire, sinon dip refusera d'ex ecuter les commandes dial (num erotation) et reset. La commande reset envoie une cha^ ne de remise a z ero du modem; elle d epend du type s electionn e. Pour les mod eles compatibles HAYES, il s'agit de ATZ. L'instruction ush peut ^ etre utilis ee pour ( ( vidanger ) ) toutes les r eponses (ou les parasites) que le modem a d ej a re cues. Sinon, un script de dialogue suivant imm edia- tement un reset par exemple pourrait ^ etre perturb e s'il lit OK ou d'autres r eponses de commandes pr ec edentes. La commande init s electionne une cha^ ne d'initialisation a envoyer au modem avant la num erotation. Pour les modems Hayes, il s'agit par d efaut de ( ( ATE0 Q0 V1 X1 ) ), qui positionne l' echo des commandes et de longues r eponses, et supprime le test de la pr esence de la tonalit e sur la ligne. En n, la commande dial envoie la cha^ ne d'initialisation au modem et e ectue la num erotation pour appeler le site distant. La commande de num erotation par d efaut est ATD pour le type Hayes. echo et term La commande echo est une aide au d eboguage. Dans ce mode, dip ache sur la console tout ce qu'il envoie au port s erie. L'e et peut ^ etre annul e par echo o . Vous pouvez aussi quitter momentan ement le mode script et passer en mode terminal. Dans ce mode, vous pouvez utiliser dip comme n'importe quel autre programme de terminal. Pour le quitter, entrez Ctrl-] (combinaison de touches peu pratique sur un clavier fran cais).
  • 126.
    7.4. Utilisation dedip 109 La commande get C'est par elle qu'on initialise les variables. La forme la plus simple est l'assignation d'une constante, comme nous l'avons fait dans gogoslip.dip. Vous pouvez egalement demander a l'utilisateur de saisir la donn ee, en sp eci ant le mot cl e ask au lieu d'une valeur: DIP get $local ask Enter the value for $local: _ Une troisi eme m ethode consiste a obtenir la valeur depuis la machine distante. Aussi bizarre que cela puisse para^ tre,c'est tr es utile dans certains cas. Beaucoup de serveurs SLIP ne vous autoriseront pas a utiliser votre propre adresse IP sur cette liaison, mais vous en assigneront une dynamiquement lorsque vous appellerez, en achant un message vous informant de la valeur a prendre. Si ce message est de la forme ( ( Your address: 192.168.5.74 ) ), ce qui est courant, alors le bout de code dip suivant saura la r ecup erer tout seul: # fin du dialogue login wait address: 10 get $locip remote La commande print Elle est destin ee a acher du texte sur le terminal o u dip a et e lanc e. N'importe quelle variable peut ^ etre utilis ee dans le texte, comme ceci: DIP print Utilisation du port $port a la vitesse de $speed Utilisation du port cua3 a la vitesse de 38400 Noms de variables Le programme dip ne comprend qu'un ensemble pr ed e ni de variables. Leur nom commence toujours par le signe dollar ($) et doit ^ etre en lettres minuscules. Les variables $local et $locip contiennent le nom de la machine locale et son adresse IP. Si l'on initialise le nom d'h^ ote, dip stockera le nom canonique dans $local, et mettra l'adresse correspondante dans $locip. La m^ eme chose se passe pour $locip. Les variables $remote et $rmtip ont la m^ eme fonction, pour le nom de la machine distante et son adresse; et $mtu contient la valeur du MTU pour la connexion. Ces cinq variables sont les seules qui peuvent se voir assigner des valeurs directement par la commande get. Un h^ ote, ou toute autre variable, ne peut ^ etre initialis e que par les commandes correspondantes, mais peut ^ etre utilis e dans les instructions print; ce sont $modem, $port et $speed.
  • 127.
    110 Chapitre 7.IP sur ligne s erie | SLIP Le r esultat des commandes ex ecut ees se trouve dans la variable $errlvl. Une valeur de 0 indique que tout s'est bien pass e, une valeur non nulle d enote une erreur. Les commandes if et goto La commande if est un saut conditionnel, et non pas une impl ementation compl ete du if habituel. Sa syntaxe est: if variable op erateur valeur goto etiquette L'expression doit ^ etre une simple comparaison entre l'une des variables $errlvl, $locip et $rmtip; variable doit ^ etre un nombre entier; l'op erateur peut ^ etre ==, !=, , , =, et =. La commande goto branche l'ex ecution du script a la ligne suivant l' etiquette indiqu ee. Une etiquette doit ^ etre le premier mot sur la ligne et doit ^ etre suivie imm ediatement par le caract ere deux-points (:). send, wait, et sleep Ces commandes aident a impl ementer des scripts de dialogue simples: send envoie ses arguments sur la ligne s erie. Il ne supporte pas les variables, mais comprend toutes les s equences d' echappement du langage C comme n et b. Le caract ere tilde (~) sert d'abr eviation pour le couple retour-chariot/saut de ligne. Dans l'autre sens, wait prend un nom en argument et lit tout ce qui arrive du port s erie jusqu' a ce qu'il reconnaisse ce mot, qui ne doit contenir aucun blanc. Vous pouvez ajouter un temps maximal (en secondes) comme deuxi eme argument; si le mot n'est pas trouv e pendant ce laps de temps, l'analyse s'arr^ etera et la variable $errlvl sera positionn ee a la valeur 1. L'instruction sleep peut ^ etre utilis ee pour attendre un certain temps, l a encore l'in- tervalle est exprim e en secondes. mode et default Ces commandes servent a basculer la ligne s erie en mode SLIP et a con gurer l'inter- face. La commande mode est la derni ere que dip doit ex ecuter avant de passer en arri ere- plan. A moins qu'une erreur ne se produise, on ne revient pas de cette commande. La commande mode prend un protocole en argument; pour l'instant dip ne reconna^ t que SLIP et CSLIP. La version courante de dip ne conna^ t pas le mode SLIP adaptatif. Apr es avoir pass e la discipline de ligne en SLIP, dip ex ecute ifcon g a n de con gurer
  • 128.
    7.5. Utilisation enmode serveur 111 l'interface pour une liaison point- a-point, et appelle route pour positionner la route vers la machine distante. Si, de plus, le script ex ecute la commande default avant mode, dip fera aussi pointer la route par d efaut sur cette liaison. 7.5 Utilisation en mode serveur La con guration de votre client SLIP etait la partie la plus dicile. Faire le contraire, c'est- a-dire faire fonctionner votre syst eme en serveur SLIP, est bien plus simple. Vous pouvez pour cela utiliser dip en mode serveur, ce qui peut ^ etre r ealis e en l'ap- pelant sous le nom diplogin. Son chier de con guration principal est /etc/diphosts, qui associe des comptes utilisateurs avec des adresses assign ees a chacun. Alterna- tivement, vous pouvez aussi utiliser sliplogin, un outil d eriv e de BSD qui o re une con guration beaucoup plus etendue, vous permettant d'ex ecuter des shell-scripts a la connexion et d econnexion de chaque machine. En fait, c'est le programme le plus adapt e pour r ealiser un serveur SLIP. Quel que soit votre choix, vous devrez pr eparer un compte utilisateur par client SLIP appel e a se connecter. Par exemple, supposons que vous voulez o rir un service SLIP a Marcel Dugenou, a dugenou.beta.org. Vous pourrez cr eer un compte baptis e dugenou en ajoutant la ligne suivante dans votre chier passwd: dugenou:*:501:60:Compte SLIP de Marcel Dugenou:/tmp:/usr/sbin/diplogin Ensuite, il reste bien s^ ur a positionner le mot de passe avec la commande passwd. Maintenant, lorsque dugenou entre sur le syst eme, dip se lance en tant que serveur. Pour v eri er si l'utilisateur est autoris e a utiliser SLIP, il regardera dans le chier /etc/diphosts. Ce chier d etaille les droits d'acc es et les param etres de connexion pour chaque utilisateur SLIP. L'entr ee de dugenou pourrait ressembler a ceci: dugenou::dugenou.beta.org:Marcel Dugenou:SLIP,296 Le premier champ est le nom de l'utilisateur. Le second peut contenir un mot de passe suppl ementaire (voir plus bas). Le troisi eme est le nom ou l'adresse IP de la machine appelante. Ensuite vient le champ d'informations, sans aucune signi cation pour le programme (pas encore, du moins). Le dernier champ d ecrit les param etres de connexion. C'est une liste dont le s eparateur est la virgule, sp eci ant le protocole (pour l'instant donc, soit SLIP ou CSLIP), suivi par le MTU. Lorsque dugenou arrive, diplogin extrait les informations le concernant du chier diphosts, et si le champ du mot de passe n'est pas vide, il le lui demande. La cha^ ne entr ee par l'utilisateur est compar ee avec celle (en clair, non crypt ee) contenue dans diphosts. Si elles ne correspondent pas, l'utilisateur est refus e.
  • 129.
    112 Chapitre 7.IP sur ligne s erie | SLIP Sinon, diplogin passe alors la ligne s erie en mode CSLIP ou SLIP et initialise l'interface et la route. Cette connexion reste etablie jusqu' a ce que l'utilisateur se d econnecte et que le modem coupe la ligne; diplogin remettra alors la discipline de ligne normale et s'arr^ etera. Attention, diplogin n ecessite les privil eges du superutilisateur. Si vous n'utilisez pas dip avec les permissions setuid root, diplogin devra ^ etre une copie s epar ee (et non un simple lien) a n de pouvoir en toute s ecurit e le positionner setuid, sans a ecter dip.
  • 130.
    113 Chapitre 8 Le protocolePoint- a-Point | PPP 8.1 Sous les P, le protocole Tout comme SLIP, PPP est un protocole permettant d'envoyer des datagrammes par une connexion s erie; mais il est plus complet que le premier. Il autorise chaque partie a n egocier certaines options, comme l'adresse IP et le MTU, et comporte di erentes m ethodes d'authenti cation. Chacune de ces possibilit es fait l'objet d'un protocole s epar e. Ici, nous ne d ecrirons que bri evement ces di erentes ( ( briques) ) qui composent PPP, pour en savoir plus, nous vous conseillons de lire ses sp eci cations dans le RFC 1548, et tous ceux qui y sont relatifs1. La couche la plus basse de PPP s'appelle HDLC, qui est l'abr eviation de ( ( High-Level Data Link Control ) ) 2, qui d e nit les trames PPP individuelles et o re un checksum sur 16 bits. Contrairement a l'encapsulation plus primitive de SLIP, une trame PPP est capable de contenir des paquets d'autres protocoles que IP, comme Novell IPX ou Appletalk. PPP r ealise cela en rajoutant un champ protocole a la trame HDLC de base qui identi e le type de paquet transf er e. LCP, le protocole de contr^ ole de liaison (Link Control Protocol), est utilis e par-dessus HDLC pour la n egociation d'options relatives a la liaison, comme le MRU (Maximum Receive Unit), qui indique la taille de datagramme maximale qu'un c^ ot e du lien est capable de recevoir. Au stade de la con guration, l'authenti cation client est une etape importante dans l' etablissement de la liaison. Bien que facultative, c'est vraiment un plus pour les 1: Ces documents sont indiqu es dans la bibliographie pr esent ee a la n de ce livre. 2: En fait, HDLC est un protocole bien plus g en eral, d e ni par l'ISO (International Standards Organization).
  • 131.
    114 Chapitre 8.Le protocole Point- a-Point | PPP serveurs accessibles sur appel t el ephonique. G en eralement, la machine appel ee (le ser- veur) demande au client de s'identi er en prouvant qu'il conna^ t une cl e secr ete. Si l'appelant echoue, la connexion se termine imm ediatement. Sous PPP, l'identi cation est bidirectionnelle: l'appelant peut aussi demander au serveur de s'identi er. Ces pro- c edures sont totalement ind ependantes les unes des autres; il existe deux protocoles permettant deux types distincts d'authenti cation, que nous d ecrirons plus loin. Ils s'appellent PAP (Password Authentication Protocol) et CHAP (Challenge Handshake Authentication Protocol). Chaque protocole r eseau rout e par la liaison s erie, comme IP, Appletalk, etc., est con gur e dynamiquement par un protocole de contr^ ole r eseau, ( ( Network Control Protocol ) ), ou NCP. Par exemple, pour envoyer des datagrammes IP, les deux c^ ot es de PPP doivent d'abord n egocierquelle adresse IP chacun d'eux utilisera. Le protocole de contr^ ole utilis e a cet e et est IPCP, le protocole de contr^ ole de protocoles Internet, ( ( Internet Protocol Control Protocol ) ). En plus du transfert de datagrammes IP standard, PPP supporte aussi la compression Van Jacobson de ces trames IP. Il s'agit d'une technique de r eduction des en-t^ etes TCP jusqu' a une taille de 3 octets, egalement utilis ee dans CSLIP et que l'on appelle en principe la compression d'en-t^ etes Van Jacobson, ou compression VJ en abr eg e. Son emploi peut ^ etre n egoci e au d epart par IPCP. 8.2 PPP sous Linux Sous Linux, PPP est compos e de deux parties; un pilote bas niveau HDLC situ e dans le noyau, et un d emon pppd fonctionnant au niveau utilisateur, g erant les di erents protocoles de contr^ ole. Dans la version courante, le petit utilitaire chat est aussi fourni, qui permet l' etablissement de la liaison en g erant la communication par modem et le dialogue avec le serveur d'une fa con simple mais ecace. Le pilote PPP inclus dans le noyau est ecrit par Michael Callahan, qui fut rejoint par Al Longyear. Le d emon pppd utilis e est une impl ementation libre supportant egalement SunOS, 386BSD et quelques autres syst emes, r ealis ee au d epart par Drew Perkins et maintenue actuellement par Paul Mackerras; la partie Linux est maintenue par Alfred Longyear. Le programme chat est l'uvre de Karl Fox3. Comme SLIP, PPP est impl ement e par une discipline de ligne sp eciale. Pour utiliser une ligne s erie sous PPP, vous commencez par etablir une connexion modem tradi- tionnelle, puis basculez la ligne en mode PPP. Dans ce mode, toutes les donn ees sont pass ees au pilote PPP, qui teste la validit e des trames HDLC (chacune comporte un checksum sur 16 bits), puis les traite. Actuellement, seuls les datagrammes IP sont 3: Karl Fox peut ^ etre joint a l'adresse karl@morningstar.com. Al Longyear et Paul Mackerras sont tr es pris; si vous avez des questions concernant PPP il vaut mieux les poser dans le forum Usenet comp.protocols.ppp ou l'un des groupes Linux, ou encore dans le canal ( ( Net ) ) des listes de di usion Linux.
  • 132.
    8.3. Utilisation depppd 115 support es, avec la compression VJ en option. Si Linux supporte un jour IPX, le pilote PPP sera mis a jour pour savoir les g erer aussi. Le pilote inclus dans le noyau est assist e par pppd, le d emon PPP, qui e ectue les phases d'initialisation et d'authenti cation n ecessaires avant que tout tra c soit pos- sible sur la liaison. Le comportement de ce programme peut ^ etre ajust e par un certain nombre d'options. Comme PPP est plut^ ot complexe, il est impossible de les expliquer toutes dans un seul chapitre; par cons equent ce livre ne pourra pas traiter tous les as- pects de pppd, ce sera juste une introduction. Pour obtenir plus d'informations, consul- tez les pagesde manuel et la documentation fournie avec la distribution sourcede pppd, o u vous trouverez l'essentiel de ce qui n'est pas trait e dans cet ouvrage. Si vous avez toujours des probl emes, tournez-vous vers le forum Usenet comp.protocols.ppp, o u vous pourrez dialoguer avec la plupart des gens impliqu es dans le d eveloppement de pppd. 8.3 Utilisation de pppd Pour vous connecter a l'Internet par une liaison PPP, il vous faut une con guration r eseau minimale, c'est- a-dire au moins l'interface loopback et une m ethode de r eso- lution de noms, tout cela a et e expliqu e dans les pr ec edents chapitres. Pour utiliser DNS sur une liaision s erie, consultez le chapitre 7 qui d etaille ce cas particulier. Comme exemple pratique, nous allons encore une fois consid erer que vous ^ etes sur la machine kro. Vous avez d ej a appel e le serveur PPP, que nous appellerons pabo, et ^ etes entr e sur le syst eme sous le compte utilisateur ppp. La machine pabo a d ej a lanc e son pilote PPP. Apr es ^ etre sorti du programme de communications que vous avez employ e pour appeler le serveur, vous faites alors: # pppd /dev/cua3 38400 crtscts defaultroute Cette commande va basculer la ligne s erie cua3 en mode PPP et etablir une liaison IP avec l'h^ ote pabo. La vitesse de transfert utilis ee sur le port s erie sera 38400 bps. L'option crtscts valide le contr^ ole de ux RTS/CTS, ce qui est indispensable avec des vitesses sup erieures a 9600 bps. La premi ere chose que fait pppd est de n egocier plusieurs caract eristiques de la liai- son par le protocole LCP. G en eralement, les options par d efaut fonctionneront, nous n'entrerons donc pas dans les d etails. Pour l'instant, nous allons egalement consid erer que pabo ne demande aucune iden- ti cation, et que par cons equent la phase de con guration est termin ee. Le programme pppd va alors n egocier les adresses IP a utiliser en employant IPCP, le protocole de contr^ ole IP. Puisque nous n'avons sp eci e aucune adresse particuli ere en appelant pppd dans l'exemple ci-dessus, il va essayer de prendre les adresses obtenues par le resolver sur les noms de chaque h^ ote. Chacun annoncera alors son adresse a l'autre.
  • 133.
    116 Chapitre 8.Le protocole Point- a-Point | PPP G en eralement, ce comportement par d efaut est parfait. M^ eme si votre machine est sur un r eseau Ethernet, vous pouvez employer la m^ eme adresse IP pour les deux interfaces. N eanmoins, pppd permet d'utiliser une adresse di erente, ou m^ eme de demander a l'autre c^ ot e de vous en assigner une. Ces options sont d ecrites dans la section ( ( Options de con guration IP ) ). Apr es la phase de con guration IPCP, pppd va pr eparer la couche r eseau de votre syst eme a l'utilisation d'une liaison PPP. Tout d'abord, il con gure l'interface PPP comme un lien point- a-point, en prenant ppp0 pour la premi ere interface active, ppp1 pour la seconde, et ainsi de suite. Ensuite, il va initialiser une entr ee dans la table de routage qui pointe vers l'h^ ote connect e a l'autre bout de la liaison. Dans l'exemple ci-dessus, pppd mettra aussi la route par d efaut sur pabo, car nous lui avons pass e l'option defaultroute4. Par cons equent, tous les datagrammes a destination de ma- chines hors de votre r eseau local seront envoy es a pabo. Il existe di erents autres sch emas de routage rendus possibles par pppd, nous les verrons en d etail un peu plus loin. 8.4 Les chiers d'options Avant que pppd n'analyse les arguments de sa ligne de commande, il recherche di e- rents chiers pouvant contenir des options par d efaut. Ces chiers peuvent indiquer n'importe quelle option valide, sur plusieurs lignes si n ecessaire; les commentaires sont introduits par le signe di ese (#). Le chier /etc/ppp/options est le premier recherch e, a chaque d emarrage de pppd. L'utiliser pour initialiser certaines valeurs par d efaut est une bonne id ee, car cela evite aux utilisateurs de forcer certains param etres pouvant compromettre la s ecurit e. Par exemple, pour faire que pppd demande a chaque fois que l'autre c^ ot e s'identi e (avec PAP ou CHAP), il sut d'ajouter l'option auth dans ce chier. Elle ne pourra plus ^ etre forc ee par l'utilisateur, et il devient alors impossible d' etablir une connexion PPP avec des syst emes absents de votre base de donn ees d'authenti cation. L'autre chier d'options, qui est lu apr es /etc/ppp/options, s'appelle .ppprc dans le r epertoire personnel de l'utilisateur. Il permet a chacun de sp eci er ses propres options par d efaut. Voici un exemple de chier /etc/ppp/options : # Options globales pour pppd sur kro.bibine.com auth # demande l'authentification usehostname # utilise le nom d'h^ ote local pour CHAP lock # emploie les fichiers de verrouillage style UUCP domain bibine.com # notre nom de domaine 4: La route par d efaut ne sera mise que s'il n'en existe pas d ej a une.
  • 134.
    8.5. Appel t el ephoniquepar le programme chat 117 Les deux premi eres options concernent l'identi cation et seront d ecrites plus bas. Le mot cl e lock rend pppd compatible avec la m ethode UUCP pour le verrouillage des p eriph eriques. Dans cette convention, chaque processus acc edant a un port s erie, disons /dev/cua3, cr ee un chier nomm e LCK..cua3 dans le r epertoire spool/uucp pour signaler que le p eriph erique est en cours d'utilisation. Cela permet d' eviter que certains autres programmes tentent d'acc eder au port s erie au m^ eme moment. L'int er^ et de mettre ces options dans le chier de con guration global, c'est qu'elles ne pourront plus ^ etre forc ees par quiconque par la suite, o rant ainsi un niveau de s ecurit e raisonnable. Notez que quelques-unes n'ob eissent pas a cette r egle, la cha^ ne connect par exemple. 8.5 Appel t el ephonique par le programme chat Le fait d'^ etre oblig e d' etablir la connexion manuellement avant de lancer pppd vous a peut-^ etre rebut e. A la di erence de dip, pppd ne poss ede pas son propre langage script pour l'appel d'un serveur, mais n ecessite qu'un programme externe quelconque prenne en charge cette op eration.La commande n ecessairepeut ^ etre automatiquement ex ecut ee par pppd, si on la lui passe en argument de l'option connect; il redirigera alors l'entr ee et la sortie standard de la commande vers le port s erie. Certains utilisent expect, ecrit par Don Libes. Il comporte un langage tr es puissant bas e sur Tcl et est etudi e exactement pour ce type d'applications. Le paquetage pppd contient un programme similaire appel e chat, qui vous permet de r ediger des scripts de dialogue dans le style UUCP. Il s'agit de s equences de cha^ nes de caract eres que l'on attend du serveur distant, et des r eponses que nous devons envoyer pour chacune d'elles. Nous les appellerons respectivement attente et envoi; en voici un exemple typique, extrait d'un script de dialogue: ogin: dugenou ssword: salut Ici, chat attendra que le syst eme distant nous envoie l'invite de login, et nous lui r epondrons par le nom de l'utilisateur dugenou. Nous n'attendons que la cha^ ne ogin:. Ainsi, que la premi ere lettre soit majuscule ou minuscule, ou remplac ee par un malheureux parasite, sera sans importance. Ensuite, nous attendons que l'on nous demande le mot de passe (ssword:), et nous envoyons la r eponse. Un script de dialogue n'est pas autre chose. Bien s^ ur, pour etablir la communication, il faut egalement y inclure les commandes n ecessaires au modem. Supposons que vous disposez d'un modem Hayes (le contraire serait etonnant), et que le num ero de t el ephone du serveur est 318714. Pour appeler pabo, la commande chat compl ete est alors: $ chat -v '' ATZ OK ATDT318714 CONNECT '' ogin: ppp word: GaGariN
  • 135.
    118 Chapitre 8.Le protocole Point- a-Point | PPP Par d e nition, la premi ere cha^ ne doit ^ etre une attente, mais comme le modem ne dira jamais rien tant que nous ne lui avons pas adress e la parole, nous indiquons une cha^ ne vide pour que chat n'attende pas ind e niment. Nous envoyons ensuite ATZ, la commande de remise a z ero des modems compatibles Hayes, et attendons sa r eponse (OK). La cha^ ne suivante envoie la commande de num erotation et le num ero de t el ephone, et attend le message CONNECT en r eponse. L a encore, cette attente est suivie d'une cha^ ne vide car nous ne voulons rien envoyer pour l'instant, il nous faut attendre l'invite du serveur. La suite de ce script fonctionne exactement comme nous l'avons d ecrit plus haut. L'option -v indique a chat d'enregistrer toutes les activit es dans les chiers trace du syst eme, par le d emon syslog; c'est le niveau local2 qui est utilis e5. Sp eci er le script de dialogue sur la ligne de commandes pr esente un certain risque, car tout utilisateur peut se servir de ps et visualiser cette ligne de commandes. Vous pouvez eviter ce probl eme en mettant ce script dans un chier, disons par exemple appel-pabo. Il sura d'indiquer a chat, par l'option -f suivie du nom de chier, d'aller lire le script dedans. Maintenant, l'appel a pppd se passe donc comme ceci: # pppd connect chat -f appel-pabo /dev/cua3 38400 -detach crtscts modem defaultroute En plus de l'option connect qui sp eci e le script de dialogue, nous avons ajout e deux autres options a la commande: -detach, qui demande a pppd de ne pas se d etacher de la console et passer en arri ere-plan, et le mot cl e modem, qui lui permet de g erer la ligne s erie dans le cas particulier d'un modem, par exemple en d econnectant la ligne apr es l'appel. Si vous n'utilisez pas ce mot cl e, pppd ne testera pas la ligne DCD (d etection de porteuse) et ne d etectera jamais la d econnexion eventuelle de la machine distante. Tous ces exemples sont plut^ ot simples; chat permet de faire des scripts bien plus complexes. Il o re par exemple l'int eressante possibilit e de pouvoir abandonner la session en retournant une erreur, en fonction des r eponses obtenues. Les messages sur lesquels on utilisera typiquement cette fonction sont BUSY ou NO CARRIER, que votre modem indiquera si le num ero appel e est occup e ou ne r epond pas. Pour que chat reconnaisse imm ediatement ces messages, vous pouvez les indiquer au d ebut du script par le mot cl e ABORT : $ chat -v ABORT BUSY ABORT 'NO CARRIER' '' ATZ OK ... De m^ eme, vous pouvez changer le temps d'attente maximal de toute partie du dialogue en ins erant l'option TIMEOUT. Consultez la page de manuel de chat(8) pour les d etails. Quelquefois, vous aurez aussi besoin de conditions d'ex ecution de certaines parties du script. Par exemple, lorsque vous ne recevez pas l'invite de la machine appel ee, 5: Si vous modi ez syslog.conf pour rediriger ces traces dans un chier, assurez-vous qu'il ne soit pas lisible par tout le monde, car chat enregistre tout le dialogue, tel quel, y compris les mots de passe.
  • 136.
    8.6. D eboguer votrecon guration PPP 119 vous pouvez vouloir lui envoyer un BREAK, ou un retour-chariot. C'est r ealisable en ajoutant un script secondaire a une attente de cha^ ne: il consiste en une s erie de s equences attente/envoi, comme le script principal, mais qui sont s epar ees par des tirets. Le script secondaire est ex ecut e lorsque la cha^ ne attendue a laquelle il est rattach e n'est pas re cue dans le temps imparti. Nous pourrions modi er l'exemple pr ec edent de cette fa con: ogin:-BREAK-ogin: ppp ssword: GaGariN Maintenant, lorsque chat ne re coit pas l'invite login dans le temps pr evu, le script secondaire est ex ecut e et envoie un BREAK, puis attend a nouveau. Si l'invite appa- ra^ t, le script continue a se d erouler normalement, sinon chat se termine en retournant une erreur au syst eme ou au programme qui l'a appel e. 8.6 D eboguer votre con guration PPP Par d efaut, pppd enregistrera tous les messages d'avertissement ou d'erreurs par la ( ( facilit e) ) daemon de syslog. Vous devrez ajouter une entr ee a syslog.conf qui redirigera ces messages vers un chier ou m^ eme la console, sinon syslog les ignorera purement et simplement. L'entr ee suivante envoie ces messages dans le chier /var/log/ppp-log : daemon.* /var/log/ppp-log Si votre con guration PPP ne marche pas du premier coup, vous pourrez consulter ce chier de trace pour avoir une id ee de ce qui ne va pas. Si vous ne trouvez rien, il faudra utiliser l'option debug de pppd, pour qu'il ajoute plus d'informations. Cette option lui fera enregistrer le contenu de tous les paquets de contr^ ole envoy es ou re cus. Tous les messages passent par syslog, au niveau daemon. En n, il est possible de valider le d eboguage au niveau du noyau en invoquant pppd avec l'option kdebug. Celle-ci doit ^ etre suivie d'un argument num erique qui est un OU avec les valeurs suivantes: 1 pour les messages g en eraux, 2 pour l'enregistrement du contenu de toutes les trames HDLC entrantes, 4 pour celles sortantes. Pour capturer les messages de d eboguage du noyau, vous devez soit employer une version de syslogd qui lit aussi le chier /proc/kmsg, soit le d emon klogd. Tous deux dirigent les messages de d eboguage du noyau vers la ( ( facilit e ) ) kernel de syslog. 8.7 Options de con guration IP IPCP est utilis e pour n egocier deux param etres IP au moment de la con guration. G en eralement, chaque c^ ot e envoie un paquet IPCP de requ^ ete de con guration, indi- quant les valeurs qu'il d esire au lieu de celles par d efaut. Le correspondant examine chaque option a son tour et acquitte ou rejette la demande.
  • 137.
    120 Chapitre 8.Le protocole Point- a-Point | PPP Avec pppd, vous disposez d'un contr^ ole presque total des options IPCP qu'il tentera de n egocier. Vous pouvez les ajuster par di erentes commandes que nous allons pr esenter ci-dessous. 8.7.1 Choix des adresses IP Dans l'exemple ci-dessus, pppd appelait pabo et etablissait une liaison IP. Aucune pr ecaution n' etait prise quant au choix d'adresses IP particuli eres de chaque c^ ot e de la liaison. Nous avions simplement pris l'adresse de kro comme adresse IP locale, et laiss e pabo indiquer la sienne. Quelquefois n eanmoins, il est n ecessaire d'avoir un contr^ ole sur les adresses mises en jeu; pour cela pppd propose plusieurs options. Pour demander une adresse particuli ere, il sut en principe de l'indiquer a pppd par l'option suivante: adresse locale:adresse distante Vous pouvez utiliser pour adresse locale et adresse distante, aussi bien des noms de machines que des adresses IP en notation sur 4 octets6. Avec cette option, pppd tentera d'utiliser la premi ere adresse comme sa propre adresse IP, et la seconde pour la machine distante. Si cette derni ere rejette l'une ou l'autre pendant la n egociation IPCP, aucune liaison IP ne sera etablie7. Si vous ne d esirez assigner que l'adresse locale et accepter toute adresse distante que l'autre c^ ot e annoncera, il vous sut de ne rien mettre a l'emplacement de la variable adresse distante. Par exemple, pour que kro utilise l'adresse 130.83.4.27 au lieu de la sienne, vous passeriez l'option 130.83.4.27: sur la ligne de commandes. De m^ eme, pour n'assigner que l'adresse distante, vous laisseriezle champ adresse locale en blanc. Par d efaut, pppd utilisera alors l'adresse associ ee au nom de la machine. Certains serveurs PPP g erant beaucoup de connexions assignent les adresses de ma- ni ere dynamique: elles sont choisies lorsqu'un syst eme se connecte, et lib er ees a la d econnexion. Lors de l'appel de tels services, vous devez vous assurer que pppd ne demande aucune adresse IP particuli ere au serveur, mais qu'au contraire il est pr^ et a accepter celles qui lui seront impos ees. Cela signi e que vous ne devez pas sp eci er d'argument adresse locale, pour le moins. De plus, vous devrez utiliser l'option noipdefault, qui indique au programme d'attendre que l'autre c^ ot e lui indique son adresse IP au lieu de prendre celle de la machine locale. 6: L'utilisation de noms de machines avec cette option a certaines cons equences sur l'authenti - cation CHAP. Consultez la section correspondante dans ce chapitre. 7: Vous pouvez autoriser la machine distante a vous imposer une adresse IP malgr e tout par l'option ipcp-accept-local, et vous pouvez accepter l'adresse qu'elle d esire pour elle par ipcp-accept-remote. Consultez la page de manuel pour plus de d etails.
  • 138.
    8.7. Options decon guration IP 121 8.7.2 Routage via une liaison PPP Apr es avoir initialis e l'interface r eseau, pppd positionne g en eralement une route, uni- quement vers l'h^ ote distant. Si celui-ci est sur un r eseau, vous voudrez sans doute avoir la possibilit e de vous connecter a des machines ( ( derri ere ) ) lui; c'est- a-dire qu'il faudra une route vers un r eseau. Nous avons d ej a vu plus haut que pppd peut ^ etre param etr e pour positionner une route par d efaut gr^ ace a l'option defaultroute, qui est tr es utile si le serveur PPP que vous avez appel e est cens e ^ etre votre passerelle vers l'Internet. Le cas inverse, o u votre syst eme agit comme une passerelle pour un simple h^ ote, est aussi relativement simple a r ealiser. Prenons par exemple un employ e de l'entreprise ( ( La bi ere virtuelle ) ), dont l'ordinateur domestique s'appelle houblon. Lorsqu'il se connecte a kro par PPP, il utilise une adresse appartenant au sous-r eseau des bras- seurs. Sur kro, nous pouvons alors passer l'option proxyarp a pppd, qui installera une entr ee proxy ARP pour houblon. Cela rendra automatiquement houblon accessible depuis toutes les machines du r eseau des brasseurs, et de celui des viticulteurs. Toutefois, les choses ne sont pas toujours aussi simples que ca, par exemple lorsque l'on relie deux r eseaux locaux. En principe, cela demande l'ajout d'une route r eseau sp eci que, car chacun peut avoir sa propre route par d efaut. Par-dessus le march e, si les deux bouts utilisaient le lien PPP comme route par d efaut, cela g en ererait une boucle, et les paquets a destination inconnue feraient des aller et retour entre chaque bout de la liaison jusqu' a ce que leur ttl expire. Comme exemple, supposons que ( ( La bi ere virtuelle) ) installe une succursale dans une autre ville. Celle-ci poss ede un r eseau Ethernet qui lui est propre, poss edant l'adresse r eseau IP 172.16.3.0,c'est- a-dire le sous-r eseau3 du r eseau de classe B des brasseurs. Cette succursale veut se connecter au r eseau principal du si ege par PPP pour mettre a jour leurs chiers clients et les tarifs, etc. L a encore, kro joue le r^ ole de passerelle; son correspondant s'appelle, disons, province et son adresse IP vaut 172.16.3.1. Lorsque provincese connecte a kro, il positionne la route par d efaut vers kro, comme de coutume. Sur la machine kro, toutefois, nous devrons installer une route r eseau pour le sous-r eseau 3, qui passera par province. Pour cela, nous allons employer une possibilit e de pppd dont nous n'avons pas encore parl e: la commande ip-up. Il s'agit d'un shell-script ou d'un programme situ e dans le r epertoire /etc/ppp, qui est ex ecut e apr es que l'interface PPP a et e con gur ee. Lorsque ce chier existe, il est appel e automatiquement par pppd avec les param etres suivants: ip-up interface p eriph erique vitesse adresse locale adresse distante Le param etre interface indique l'interface r eseau utilis ee, p eriph erique est le che- min d'acc es au port s erie (/dev/tty s'il s'agit de stdin/stdout), et vitesse corres- pond a la vitesse d'utilisation de ce port s erie. Bien entendu, adresse locale et adresse distante correspondent aux adresses IP de chaque c^ ot e de la liaison et sont
  • 139.
    122 Chapitre 8.Le protocole Point- a-Point | PPP exprim ees en notation sur 4 octets. Dans notre cas, le script ip-up pourrait contenir, entre autres lignes de code, celles-ci: #!/bin/sh case $5 in 172.16.3.1) # La machine province route add -net 172.16.3.0 gw 172.16.3.1; ... esac exit 0 De la m^ eme fa con, /etc/ppp/ip-down est appel e pour annuler toutes les actions de ip-up lorsque la liaison est interrompue. Toutefois, ce sch ema de routage n'est pas encore complet. Nous avons positionn e des entr ees dans la table de routage de chaque h^ ote PPP, mais, pour l'instant, aucune autre machine de l'un ou l'autre des r eseaux n'est au courant de cette liaison PPP. Ce n'est pas un gros probl eme si tous les h^ otes de la succursale ont leur route par d efaut pointant vers province, et si tous les h^ otes du r eseau des brasseurs passent par d efaut par kro. Mais si ce n'est pas le cas, la seule solution sera d'employer un d emon de routage comme gated. Apr es avoir cr e e la route r eseau sur kro, le d emon de routage di usera cette nouvelle route a toutes les machines connect ees aux r eseaux concern es. 8.8 Protocole de contr^ ole de liaison Nous avons d ej a rencontr e LCP, Link Control Protocol, le protocole de contr^ ole de liaison qui permet la n egociation des di erents param etres utilis es pour notre lien PPP. Les deux options les plus importantes qu'il n egocie sont le MRU (Maximum Re- ceive Unit) et ce que l'on appelle commun ement l'async map, Asynchronous Control Character Map. Il y a d'autres options de con guration, mais elles sont bien trop sp ecialis ees pour ^ etre pr esent ees ici. Consultez le document RFC 1548 pour en avoir une description d etaill ee. L'async map est utilis ee sur les liaisons asynchrones comme les lignes t el ephoniques pour identi er les caract eres de contr^ ole qui doivent ^ etre encod es (remplac es par une s equence sp eci que de deux caract eres). Par exemple, vous pouvez avoir besoin d'en- coder les caract eres XON et XOFF utilis es pour le contr^ ole de ux logiciel si quelque modem mal con gur e est tromp e par la r eception de XOFF. Parmi les autres bons candidats, citons Ctrl-] (le caract ere d' echappement de telnet). PPP vous permet d'encoder n'importe quel caract ere du code ASCII entre 0 et 31 en le d eclarant dans l'async map. L'async map est un champ de 32 bits, dont le moins signi catif correspondau caract ere ASCII NUL, et le plus signi catif au caract ereASCII 31. Si un bit est mis a 1, il signale
  • 140.
    8.8. Protocole decontr^ ole de liaison 123 que le caract ere correspondant doit ^ etre encod e avant d'^ etre envoy e sur la ligne. Par d efaut, l'async map vaut 0xffffffff, c'est- a-dire que tous les caract eres de contr^ ole seront encod es. Pour indiquer a votre correspondant qu'il n'a besoin d'encoder que quelques caract eres de contr^ ole, vous pouvez sp eci er une nouvelle async map a pppd gr^ ace a l'option asyncmap. Par exemple, si seulement ^S et ^Q (ASCII 17 et 19, couramment utilis es pour XON et XOFF) doivent ^ etre trait es, utilisez l'option suivante: asyncmap 0x000A0000 Le Maximum Receive Unit, ou MRU, signale au correspondant la taille maximale des trames HDLC que nous voulons recevoir. Bien que cela puisse vous rappeler la valeur MTU (Maximum Transfer Unit), il n'y a pas grand rapport. Le MTU est un param etre de l'interface, au niveau noyau, et indique la taille maximale d'une trame IP que cette interface peut g erer. Le MRU est tout au plus un avertissement a la machine correspondante de ne pas g en erer de trames plus grandes que la valeur sp eci ee; l'interface peut n eanmoins ^ etre tout a fait capable de recevoir des paquets allant jusqu' a 1500 octets. Choisir un MRU n'est par cons equent pas tellement une question de capacit e de transfert, c'est surtout un moyend'obtenir le meilleur r esultat.Si vous comptez utiliser des applications interactives sur la liaison, baisser le MRU jusqu' a une valeur de 296 est une bonne id ee, ainsi un eventuel paquet plus large (provenant d'une session FTP par exemple) ne ( ( g elera) ) pas momentan ement le curseur sur votre ecran. Pour dire a pppd de demander un MRU de 296, il sut de lui passer l'option mru 296. Etonnant, non? Toutefois, de petites valeurs n'ont d'int er^ et que si vous n'avez pas supprim e la compression d'en-t^ etes VJ (elle est valid ee par d efaut). Le programme pppd conna^ t aussi quelques options permettant de con gurer le com- portement g en eral de la proc edure de n egociation, comme le nombre maximal de requ^ etes de con guration qui peuvent ^ etre echang ees avant d'abandonner tout espoir. Sauf si vous savez exactement ce que vous faites, ne touchez a rien. En n, il y a deux options concernant les messages d'echo LCP. Le protocole PPP d e nit deux messages, Echo Request et Echo Response (demande et r eponse d' echo). Le d emon pppd utilise cette possibilit e pour tester si une liaison est toujours op era- tionnelle. Vous pouvez la valider par l'option lcp-echo-interval suivie d'une dur ee exprim ee en secondes. Si aucune trame n'est re cue de la machine distante pendant cet intervalle, pppd va g en erer une demande d' echo et attendre une r eponse. Si rien n'arrive, la liaison se terminera apr es un certain nombre de tentatives, dont le nombre peut ^ etre positionn e par l'option lcp-echo-failure. Par d efaut, cette possibilit e n'est pas en service.
  • 141.
    124 Chapitre 8.Le protocole Point- a-Point | PPP 8.9 La s ecurit e sous PPP Un d emon PPP mal con gur e peut ouvrir une br eche d evastatrice dans la s ecurit e de votre syst eme. Cela peut revenir a laisser n'importe qui brancher sa machine sur votre r eseau Ethernet (et c'est tr es dangereux). Nous allons voir dans cette section quelques-unes des mesures a prendre pour obtenir une con guration s ecuris ee. Pour que pppd puisse con gurer l'interface r eseau et la table de routage, il n ecessite les privil eges superutilisateur, ce qui pose un probl eme. Vous le r esoudrez en principe en mettant le programme setuid a root. Or, pppd permet aux utilisateurs d'initia- liser di erentes options pouvant avoir trait a la s ecurit e. Pour se prot eger de toute attaque en provenance d'un utilisateur, il est fortement conseill e d'initialiser quelques valeurs par d efaut dans le chier global /etc/ppp/options, en particulier celles indi- qu ees dans l'exemple de la section ( ( Les chiers d'option ) ). Quelques unes, comme les options d'authenti cation, ne peuvent pas ^ etre forc ees par l'utilisateur, et o rent alors une protection raisonnable contre les manipulations de personnes maladroites ou malintentionn ees. Bien entendu, vous devez aussi vous prot egerdu syst eme avec lequel vous vous connec- tez en PPP. Pour s'a ranchir des h^ otes se faisant passer pour d'autres, vous devez toujours demander une identi cation de la machine. De plus, vous ne devez pas au- toriser les syst emes appelants a utiliser une adresse IP de leur choix, mais leur en imposer une, ou leur donner le choix entre plusieurs. Nous allons voir tout ca. 8.10 Authenti cation sous PPP 8.10.1 CHAP ou bien PAP? Avec PPP, chaque syst eme peut demander a son correspondant de s'identi er par l'un des deux protocoles d'authenti cation. Ce sont PAP (Password Authentication Proto- col) et CHAP (Challenge Handshake Authentication Protocol). Lorsqu'une connexion est etablie, chaque c^ ot e peut demander que l'autre s'identi e, quel que soit l'appelant ou l'appel e. Nous parlerons abusivement de ( ( client ) ) et ( ( serveur ) ) dans les pages qui suivent, uniquement dans le but de distinguer plus facilement le syst eme identi ant du syst eme identi e, n'y voyez donc qu'une commodit e de langage. Un d emon PPP demande l'identi cation en envoyant une requ^ ete LCP de con gura- tion sp eci ant le protocole d esir e pour cette op eration. PAP est bas e sur un syst eme similaire aux mots de passe Unix. Le client s'identi e en envoyant un nom d'utilisateur et un mot de passe (crypt e sur option) au serveur, qui compare alors ces donn ees a celles qu'il poss ede dans sa base de donn ees secr ete. Cette technique est vuln erable, certains pouvant obtenir le mot de passe en espionnant la ligne s erie, ou en faisant des essais r ep etitifs.
  • 142.
    8.10. Authenti cationsous PPP 125 CHAP n'a pas ces inconv enients. Avec lui, le serveur d esirant l'authenti cation envoie un ( ( d e ) ) au client, sous forme d'une cha^ ne de caract eres g en er ee al eatoirement, en m^ eme temps que son nom de machine. Le client doit alors utiliser le nom pour trouver le secret correspondant, le combiner avec la cha^ ne, et encrypter la cha^ ne par une fonction de hachage. Le r esultat est retourn e au serveur avec le nom de machine du client. Celui-ci e ectue alors les m^ emes calculs, et autorise l'acc es au client s'il obtient le m^ eme r esultat. Un autre avantage de CHAP est qu'il ne demande pas seulement au client de s'iden- ti er au d ebut de la connexion, mais il envoie des d e s a intervalles r eguliers pendant la communication pour s'assurer que la machine n'a pas et e remplac ee discr etement par un intrus, par exemple en commutant la ligne t el ephonique. Le programme pppd conserve les cl es secr etes pour CHAP et PAP dans deux chiers distincts, nomm es respectivement /etc/ppp/chap-secrets et pap-secrets. En ajoutant un nom de machine dans l'un ou l'autre de ces chiers, vous pouvez facilement choisir quels syst emes authenti er avec quel protocole. Par d efaut, pppd ne demande aucune authenti cation de la machine distante, mais sera d'accord pour s'identi er lui-m^ eme sur demande. Comme CHAP est plus puissant que PAP, pppd tentera d'utiliser le premier chaque fois que possible. Si l'autre bout ne le supporte pas, ou que pppd ne trouve pas de secret CHAP pour le syst eme distant dans son chier chap-secrets, il passera a PAP. S'il ne poss ede pas de secret PAP pour son correspondant non plus, il refusera toute authenti cation. En cons equence, la connexion se terminera l a. Ce comportement peut ^ etre modi e de di erentes fa cons. Par exemple, avec le mot cl e auth, pppd demandera a son correspondant de s'authenti er. Il acceptera aussi bien CHAP que PAP, tant qu'il poss ede des informations concernant la machine en question dans ses bases CHAP ou PAP. Il y a d'autres options permettant de supprimer l'un ou l'autre protocole, mais nous ne les d ecrirons pas ici; consultez la page de manuel de pppd(8) si vous en avez besoin. Si tous les syst emes avec lesquels vous faites du PPP sont d'accord pour s'authenti er aupr es de vous, vous devez mettre l'option auth dans le chier global /etc/ppp/options et d e nir des mots de passe pour chaque syst eme dans le chier chap-secrets. Si l'un d'eux ne supporte pas CHAP, ajoutez son entr ee dans le chier pap-secrets. Ainsi, vous serez assur e qu'aucun syst eme inconnu ne pourra r ealiser de connexion PPP chez vous. Les deux sections suivantes vont traiter des deux chiers secrets, pap-secrets et chap- secrets. Ils r esident dans le r epertoire /etc/ppp et contiennent des triplets de clients, serveurs, et mots de passe, suivis facultativement par une liste d'adresses IP. L'inter- pr etation des champs client et serveur est di erente selon qu'il s'agit de CHAP ou de PAP, et d epend egalement de quel c^ ot e provient la demande d'authenti cation.
  • 143.
    126 Chapitre 8.Le protocole Point- a-Point | PPP 8.10.2 Le chier de secrets CHAP Lorsqu'il doit s'identi er aupr es de quelque serveur utilisant CHAP, pppd cherche dans le chier chap-secrets une entr ee dont le champ client est identique au nom de machine local, et dont le champ serveur est identique au nom de l'h^ ote distant re cu dans le d e CHAP. Lorsque au contraire, il demande au correspondant de s'identi er, les r^ oles sont simplement invers es: pppd recherchera alors une entr ee dont le champ client est identique au nom de la machine distante (envoy e dans la r eponse client CHAP), et dont le champ serveur est egal au nom local. Voici ci-dessous un exemple de chier chap-secrets, pour la machine kro8. # Fichier secrets CHAP de kro.bibine.com # # client serveur secret adresses #---------------------------------------------------------------------- kro.bibine.com pabo.moche.com Un Linux Sinon Rien kro.bibine.com pabo.moche.com kro.bibine.com horreur, Boudinus pabo.moche.com * kro.bibine.com MotDePasseIdiot pub.bibine.com Lors de l' etablissement d'une connexion PPP avec la machine pabo, celle-ci demande a kro de s'authenti er en envoyant un d e CHAP. Alors, pppd cherche une entr ee dont le champ client est kro.bibine.comet le champ serveur pabo.bibine.com9, dans le chier chap-secrets. Il trouve la premi ere ligne du chier, comme nous le voyons dans l'exemple; il g en ere alors la r eponse CHAP a partir de la cha^ ne de d e et du secret correspondant (Un Linux Sinon Rien), et l'envoie a pabo. Dans le m^ eme temps, pppd compose un d e CHAP pour pabo contenant une cha^ ne unique et son nom pleinement quali e kro.bibine.com. La machine pabo construit alors la r eponse comme nous venons de l'expliquer, et l'envoie a kro. Alors, pppd en extrait le nom du client (pabo.moche.com) et cherche dans le chier chap-secrets une ligne dans laquelle pabo est client et kro est serveur. La second ligne correspond, aussi pppd combine-t-il le d e CHAP et le secret (horreur, Boudinus), encrypte la chose, et compare le r esultat a la r eponse CHAP de pabo. Les 4 champs optionnels listent les adresses IP qui sont acceptables pour les clients indiqu es dans le premier champ. Les adresses peuvent ^ etre donn ees en notation sur 4 octets, ou sous forme de noms qui seront r esolus par le resolver. Par exemple, si pabo demande, pendant la n egociation IPCP, une adresse IP qui n'est pas dans cette liste, la requ^ ete sera rejet ee. Dans l'exemple ci-dessus, pabo est par cons equent limit e a l'emploi de sa propre adresse IP. Si le champ adresse est vide, n'importe laquelle sera autoris ee; et la valeur ( ( - ) ) interdit toute liaison IP avec ce client. La troisi eme ligne de notre exemple de chier chap-secrets autorise n'importe quelle machine a etablir une liaison PPP avec kro, car un champ client ou serveur conte- nant * correspond a n'importe quel nom, il s'agit d'un caract ere g en erique. La seule 8: Les double quotes ( ) ne font pas partie du mot de passe; ces caract eres sont l a pour pr eserver l'espace contenu dans le mot de passe. 9: Ce nom est r ecup er e dans le d e CHAP.
  • 144.
    8.10. Authenti cationsous PPP 127 condition est que le correspondant connaisse le secret, et utilise l'adresse de la ma- chine pub.bibine.com. Les entr ees contenant des caract eres g en eriques dans le nom de machine peuvent appara^ tre n'importe o u dans le chier, puisque pppd utilisera toujours la ligne la plus sp eci que s'appliquant a un couple client/serveur. Le d emon pppd peut avoir besoin d'un peu d'aide pour les noms d'h^ otes. Comme nous l'avons d ej a expliqu e, le nom de la machine distante est toujours fourni par celle-ci dans le d e CHAP ou le paquet de r eponse. Le nom local sera trouv e en appelant la fonction gethostname(2). Si vous avez initialis e le nom du syst eme sans le domaine, donc non quali e, il vous faudra indiquer le domaine a pppd par l'option domain : # pppd : : : domain bibine.com Cela lui permettra d'ajouter ce domaine au nom kro, pour toutes les op erations d'identi cation. D'autres options permettent de changer l'id ee que se fait pppd du nom local de la machine: usehostname et name. Lorsque vous donnez l'adresse IP locale sur la ligne de commande par adresse locale:adresse distante, et que adresse locale est un nom au lieu d'une adresse IP, pppd l'utilisera comme nom local. Pour plus de d etails, consultez la page de manuel de pppd(8). 8.10.3 Le chier de secrets PAP Le chier de secrets PAP est tr es semblable a celui utilis e pour CHAP. Les deux premiers champs contiennent toujours un nom d'utilisateur et de serveur; le troisi eme contient le secret. Lorsque l'autre c^ ot e envoie une requ^ ete d'authenti cation, pppd utilise l'entr ee qui a un champ serveur identique au nom de machine local, et un champ utilisateur identique a celui qui a et e envoy e avec la requ^ ete. Lorsqu'il s'identi e lui- m^ eme avec le syst eme distant, pppd prend le secret a envoyer dans la ligne dont le champ utilisateur est identique au nom utilisateur local, et dont le champ serveur est identique au nom de la machine distante. Voici un exemple: # /etc/ppp/pap-secrets # # utilisateur serveur secret adresses kro-pap pabo cassoulet kro.bibine.com pabo kro DonaldGNUth pabo.moche.com La premi ere ligne est utilis ee pour nous identi er lorsque nous communiquons avec pabo. La seconde d ecrit comment un utilisateur nomm e pabo doit s'identi er aupr es de nous. Le nom kro-pap, dans la premi ere colonne, est le nom d'utilisateur que nous envoyons a pabo. Par d efaut, pppd prendra le nom de machine local comme nom d'utilisateur, mais vous pouvez aussi indiquer un nom di erent en le passant par l'option user.
  • 145.
    128 Chapitre 8.Le protocole Point- a-Point | PPP Lorsqu'il prend une entr ee dans le chier pap-secrets pour authenti cation avec le correspondant, pppd a besoin de conna^ tre le nom de la machine distante. Comme il n'a aucun moyen de le deviner, vous devez lui sp eci er sur la ligne de commandes par l'option remotename. Par exemple, pour utiliser l'entr ee ci-dessus pour une authenti- cation avec pabo, nous devons rajouter l'option suivante lors de l'appel a pppd: # pppd ... remotename pabo user kro-pap Dans le quatri eme champ (et tous les suivants), vous pouvez indiquer quelles adresses IP sont autoris ees pour cette machine particuli ere, exactement comme dans le chier de secrets CHAP. Le correspondant ne pourra alors demander que des adresses faisant partie de cette liste. Dans notre exemple, nous exigeons que pabo utilise sa propre adresse IP. Notez que PAP est une m ethode d'identi cation plut^ ot l eg ere, et il est fortement conseill e d'employer CHAP chaque fois que possible. Par cons equent, nous n'entrerons pas plus dans les d etails de PAP ici; si vous en avez besoin vous pourrez trouver les renseignements qui vous manquent dans le manuel de pppd(8). 8.11 Con guration d'un serveur PPP Employer pppd en tant que serveur PPP consiste juste a lui passer les bonnes options sur la ligne de commandes. L'id eal est de cr eer un compte utilisateur sp ecial, disons ppp, et de lui donner comme shell un script ou un programme invoquant le d emon pppd avec les options ad equates. Par exemple, vous pourriez avoir dans /etc/passwd une ligne ressemblant a celle-ci: ppp:*:500:200:Compte PPP public:/tmp:/etc/ppp/ppplogin Bien entendu, vous aurez des valeurs UID et GID di erentes de celles montr ees ici (500 et 200), et il vous faudra positionner le mot de passe avec la commande passwd. Le script ppplogin pourrait ressembler a celui-ci: #!/bin/sh # ppplogin - script pour lancer pppd en serveur mesg n stty -echo exec pppd -detach silent modem crtscts La commande mesg interdit aux autres utilisateurs d' ecrire sur le tty par la com- mande write, par exemple. La commande stty, elle, supprime l' echo des caract eres, a n que ce qu'envoie l'appelant ne lui soit pas retourn e en echo. L'option la plus im- portante est -detach, car elle emp^ eche pppd de se d etacher du terminal de contr^ ole. Si nous ne mettions pas cette option, il se placerait en arri ere-plan, et le script se
  • 146.
    8.11. Con gurationd'un serveur PPP 129 terminerait, ce qui aurait pour cons equence de faire raccrocher la ligne. L'option si- lent indique au programme d'attendre jusqu' a ce qu'il re coive un paquet du syst eme appelant avant d'en envoyer lui-m^ eme. Cela permet d' eviter des probl emes avec cer- tains syst emes assez lents a lancer leur client PPP. L'option modem indique qu'il faut prendre en compte les lignes de contr^ ole du modem sur le port s erie. Il faut toujours mettre cette option quand on utilise pppd avec un modem. En n, crtscts valide le contr^ ole de ux mat eriel. Parall element a ces options, il est conseill e de forcer une authenti cation quelconque, par exemple en sp eci ant auth sur la ligne de commandes ou dans le chier global. La page de manuel indique aussi des options sp eci ques permettant de valider ou de supprimer individuellement chaque protocole d'authenti cation.
  • 147.
    130 Chapitre 8.Le protocole Point- a-Point | PPP
  • 148.
    131 Chapitre 9 Aspects importantsdu r eseau Apr es avoir r eussi a con gurer IP et le resolver, vous allez devoir vous occuper des services que vous d esirez o rir sur le r eseau. Ce chapitre traite de la con guration de quelques applications r eseau simples, le serveur inetd et les programmes de la famille rlogin y compris. L'interface RPC (Remote Procedure Call), qui permet des services comme NFS (Network File System) ou NIS (Network Information System) sera egalement rapidement pr esent ee. La con guration de ces deux derniers services, toutefois, prend beaucoup de place et sera donc trait ee dans des chapitres s epar es, ainsi que le courrier electronique et les News Usenet. Bien entendu, il est impossible de d ecrire toutes les applications r eseau possibles dans ce livre. Si vous devez installer un service qui n'est pas d ecrit dans cet ouvrage, comme talk, gopher ou Mosaic, consultez ses pages de manuel pour obtenir les informations n ecessaires. 9.1 Le super serveur inetd Tr es souvent, les services r eseau sont assur es par ce que l'on appelle des d emons1. Un d emon est un programme qui ouvre un certain port et attend des connexions. Lorsque cela se produit, il cr ee un processus ls qui accepte la connexion, pendant que le processus p ere continue a ecouter le port en attente d'autres requ^ etes. Ce principe est la base de tous les services o erts; un d emon doit ^ etre en attente de connexions sur un port donn e, ce qui signi e g en eralement un g^ achis de ressources syst eme, m emoire ou zone de swap. 1: D emon est une francisation famili ere du vocable informatique anglais daemon, qui signi e Disk And Extension MONitor, c'est- a-dire qui n'est pas invoqu e manuellement mais attend en arri ere-plan que quelque chose se passe, ou que quelque condition soit remplie. Ce terme fut introduit au d epart sous CTSS (Compatible Time Sharing System), un anc^ etre du syst eme MULTICS, lui-m^ eme parent d'UNIX. Le traducteur remercie Jon Collins et Steve Pate pour l' etymologie de l'acronyme daemon.
  • 149.
    132 Chapitre 9.Aspects importants du r eseau Par cons equent, pratiquement toutes les installations UNIX emploient un ( ( super serveur ) ) qui cr ee des sockets pour un certain nombre de services et les ecoute toutes en m^ eme temps par l'appel syst eme select(2). Lorsqu'un h^ ote distant demande l'un de ces services, ce super serveur s'en aper coit et ex ecute le d emon sp eci e pour ce port. Le super serveur commun ement utilis e s'appelle inetd, Internet Daemon. Il est lanc e lors du d emarrage du syst eme et prend la liste des services qu'il doit g erer dans un chier nomm e /etc/inetd.conf. En plus de ceux-ci, inetd lui-m^ eme o re un certain nombre de services tr es simples, ce sont les services internes. Ils comprennent chargen, qui g en ere une simple cha^ ne de caract eres a des ns de test et daytime, qui retourne la date syst eme sous forme ASCII. Une entr ee de ce chier consiste en une simple ligne compos ee des champs suivants: service type protocole wait utilisateur serveur ligne-de-commandes Voici la signi cation de chacun de ces champs: service Donne le nom du service. Il doit ^ etre traduit en num ero de port, en le recherchant dans le chier /etc/services, qui sera d ecrit dans la section ( ( Les chiers services et protocols ) ). type Sp eci e un type de socket, soit stream (pour les protocoles orient es connexion) ou dgram (pour les protocoles sans connexion). Les ser- vices bas es sur TCP doivent par cons equent toujours utiliser le mot cl e stream, alors que ce sera dgram pour ceux bas es sur UDP. protocol Donne le protocole de transport employ e par ce service. Ce doit ^ etre un protocole valide, d eclar e dans le chier protocols, d ecrit un peu plus loin. wait Cette option ne s'applique qu'aux sockets dgram. Ce peut ^ etre soit wait, soit nowait. Dans le cas de wait, inetd n'ex ecute qu'un seul serveur a la fois pour le port en question. Sinon, il continuera imm e- diatement l' ecoute apr es avoir lanc e le service. Cette possibilit e est tr es utile pour les serveurs qui lisent tous les datagrammes qui arrivent, puis se terminent. La plupart des serveurs RPC sont de ce type et doivent par cons equent ^ etre utilis es avec le mot cl e wait. Les sockets stream doivent toujours employer nowait. utilisateur Il s'agit de l'identi cation utilisateur sous lequel le processus doit ^ etre ex ecut e. Ce sera souvent root, le superutilisateur, mais quelques ser- vices peuvent n ecessiter di erents comptes. Ici, c'est toujours une bonne id ee d'appliquer le principe des privil eges mimimaux, qui d e- clare que vous ne devez pas ex ecuter une commande sous un compte
  • 150.
    9.1. Le superserveur inetd 133 privil egi e si ce n'est pas n ecessaire pour qu'elle fonctionne correcte- ment. Par exemple, les serveurs NNTP de News Usenet fonctionne- ront sous l'utilisateur news, et les services pouvant poser des pro- bl emes de s ecurit e (comme tftp ou nger) sont souvent sous l'utilisa- teur nobody. serveur Donne le chemin d'acc es complet au programme serveur qui doit ^ etre ex ecut e. Les services internes sont rep er es par le mot cl e internal. ligne-de-commandes Il s'agit de la ligne de commandes a passer au serveur. Elle inclut l'argument 0, c'est- a-dire le nom de la commande. G en eralement, ce sera le nom du programme, sauf s'il a un comportement di erent selon le nom sous lequel il est invoqu e. Pour les services internes, ce champ est vide. # # services inetd ftp stream tcp nowait root /usr/sbin/ftpd in.ftpd -l telnet stream tcp nowait root /usr/sbin/telnetd in.telnetd -b/etc/issue #finger stream tcp nowait bin /usr/sbin/fingerd in.fingerd #tftp dgram udp wait nobody /usr/sbin/tftpd in.tftpd #tftp dgram udp wait nobody /usr/sbin/tftpd in.tftpd /boot/diskless login stream tcp nowait root /usr/sbin/rlogind in.rlogind shell stream tcp nowait root /usr/sbin/rshd in.rshd exec stream tcp nowait root /usr/sbin/rexecd in.rexecd # # services internes a inetd # daytime stream tcp nowait root internal daytime dgram udp nowait root internal time stream tcp nowait root internal time dgram udp nowait root internal echo stream tcp nowait root internal echo dgram udp nowait root internal discard stream tcp nowait root internal discard dgram udp nowait root internal chargen stream tcp nowait root internal chargen dgram udp nowait root internal Fig. 9.1 - Un exemple de chier /etc/inetd.conf. Un exemple de chier inetd.conf est donn e dans la gure 9.1. Les services nger et tftp sont comment es de mani ere a les rendre indisponibles. On agit souvent ainsi pour des raisons de s ecurit e, nger peut par exemple ^ etre utilis e pour obtenir les noms des utilisateurs de votre syst eme. Le programme tftp impl emente le Trivial File Transfer Protocol, qui permet a n'im- porte qui de transf erer n'importe quel chier lisible par tous depuis votre syst eme,
  • 151.
    134 Chapitre 9.Aspects importants du r eseau sans aucun test de mot de passe. C'est particuli erement dangereux pour le chier /etc/passwd, surtout si vous n'utilisez pas le syst eme shadow. TFTP est utilis e par les clients diskless et les terminaux X pour t el echarger leur code depuis un serveur. Si vous devez vraiment utiliser tftpd pour cela, assurez-vous de limiter sa vision de votre syst eme aux r epertoires dans lesquels se trouvent les chiers a prendre, en ajoutant leur nom sur la ligne de commandes de tftpd. Vous pouvez voir un exemple de cette m ethode dans la seconde ligne tftp de la gure 9.1. 9.2 Contr^ ole d'acc es par tcpd Puisque permettre un acc es r eseau a un ordinateur implique beaucoup de risques de violation de s ecurit e, les applications sont con cues pour pr evenir plusieurs types d'attaques. Malgr e tout, rien n'est jamais parfait et certaines protections sont vuln e- rables, ou bien ne distinguent pas les machines ables dont les requ^ etes pour un service particulier sont autoris ees, d'h^ otes incertains dont les m^ emes requ^ etes devraient ^ etre rejet ees. Nous avons d eja entr'aper cu plus haut le probl eme pos e par nger et tftp. Il serait parfois souhaitable de limiter l'acc es a ces services, uniquement aux ( ( h^ otes de con ance ) ), ce qui est impossible avec la con guration normale, o u inetd ne sait qu'o rir un service ou le refuser, pour tout le monde. Il existe un outil tr es pratique pour cela: tcpd2, un wrapper3 de d emon. Lorsque vous voulez tracer ou prot eger un service TCP, il est appel e a la place du programme original. Il enregistre la requ^ ete via le d emon syslog, teste si l'appelant est autoris e a utiliser ce service, et si la r eponse est positive, il ex ecute alors le vrai programme serveur. Notez que cela ne fonctionne pas avec les services UDP. Par exemple, pour prot eger le service nger, vous devez modi er la ligne correspon- dante dans inetd.conf: # Encapsule le d emon finger finger stream tcp nowait root /usr/sbin/tcpd in.fingerd Si l'on ne rajoute aucun contr^ ole d'acc es, rien ne para^ tra chang e sur la machine, tout fonctionnera comme d'habitude, sauf que toutes les requ^ etes seront trac ees via la facilit e auth de syslog. Ce contr^ ole d'acc es est impl ement e au moyen de deux chiers appel es /etc/hosts.allow et /etc/hosts.deny. Ils contiennent des entr ees autorisant ou refusant l'acc es, respecti- vement, a certains services et h^ otes. Lorsque tcpd g ere une requ^ ete d'un service comme nger en provenance d'un client nomm e, par exemple, geneur.penible.com, il re- garde dans hosts.allow et hosts.deny (dans cet ordre) si une entr ee correspond a la fois a ce nom et au service demand e. S'il la trouve dans hosts.deny, la requ^ ete est rejet ee et la connexion imm ediatement ferm ee. Si rien n'est trouv e, la requ^ ete est accept ee. 2: Ecrit par Wietse Venema, wietse@wzv.win.tue.nl. 3: Le terme semble consacr e, inutile donc de fournir un equivalent fran cais.
  • 152.
    9.3. Les chiersservices et protocols 135 Les entr ees dans le chier d'acc es ressemblent a ceci: services: hotes [:commande] services est une liste de noms valides dans /etc/services, ou encore le mot cl e ALL (tout). Pour d esigner tous les services sauf nger et tftp, vous pouvez mettre ( ( ALL EXCEPT nger, tftp ) ). hotes est une liste de noms de machines ou d'adresses IP, ou encore les mots-cl es ALL, LOCAL ou UNKNOWN (inconnu). ALL indique n'importe quelle machine alors que LOCAL d esigneuniquement celles dont le nom ne contient pas de point4. UNKNOWN d esigne tous les h^ otes dont la recherche de nom ou d'adresse a echou e. Un nom commen cant par un point correspond a tous les h^ otes dont le domaine est identique a cette cha^ ne. Par exemple, .penible.com d esignera aussi bien geneur.penible.com que lourd.penible.com. Il est possible aussi de traiter les adresses IP r eseau et sous-r eseau; consultez la page de manuel hosts access(5) pour en savoir plus. Pour interdire l'acc es a nger et tftp a tout le monde sauf aux machines locales, mettez ce qui suit dans /etc/hosts.deny, et laissez vide le chier /etc/hosts.allow : in.tftpd, in.fingerd: ALL EXCEPT LOCAL, .votre.domaine Le champ facultatif commande peut contenir une commande shell a appeler lorsque l'entr ee correspond. C'est tr es utile pour poser des pi eges permettant de mettre en evidence les eventuels intrus: in.ftpd: ALL EXCEPT LOCAL, .bibine.com : echo Requete de %d@%h /var/log/finger.log; if [ %h != kro.bibine.com ]; then finger -l @%h /var/log/finger.log fi Les arguments %h %d sont traduits par tcpd sous forme du nom de machine e ectuant la requ^ ete et de celui du service, respectivement. L a encore, consultez la page de manuel hosts access(5) pour plus de d etails. 9.3 Les chiers services et protocols Les num eros de ports par lesquels certains services ( ( standard ) ) sont o erts sont d e nis dans le RFC ( ( Assigned Numbers ) ), d ej a signal e. Pour que serveurs et clients puissent convertir ces noms de services en ports, leur liste (ou au moins une partie) 4: G en eralement, seules les machines locales, dont le nom est obtenu par une recherche dans /etc/hosts n'ont pas de domaine ajout e a leur nom, donc pas de point.
  • 153.
    136 Chapitre 9.Aspects importants du r eseau # Le fichier /etc/services: # # Services bien connus echo 7/tcp # Echo echo 7/udp # discard 9/tcp sink null # Discard discard 9/udp sink null # daytime 13/tcp # Date syst eme daytime 13/udp # chargen 19/tcp ttytst source # G en erateur de caract eres chargen 19/udp ttytst source # ftp 21/tcp # File Transfer Protocol telnet 23/tcp # Virtual Terminal Protocol smtp 25/tcp # Simple Mail Transfer Protocol nntp 119/tcp readnews # Network News Transfer Protocol # # Services UNIX exec 512/tcp # BSD rexecd biff 512/udp comsat # notification du courrier login 513/tcp # login distant who 513/udp whod # who and uptime distants shell 514/tcp cmd # commande distante, sans mot de passe syslog 514/udp # syslog par r eseau printer 515/tcp spooler # spouleur d'imprimante route 520/udp router routed # protocole RIP Fig. 9.2 - Exemple de chier /etc/services (extrait). est maintenue sur chaque machine; elle se trouve dans un chier dont le nom est /etc/services. Il comporte des entr ees compos ees ainsi: service port/protocole [alias] Ici, service et port d e nissent respectivement le nom du service et le port correspon- dant, et protocole indique quel protocole de transport est utilis e. En principe, c'est soit udp, soit tcp. Il est possible qu'un service soit disponible par plus d'un protocole, ou bien qu'un m^ eme port soit utilis e pour plusieurs services, tant que ces protocoles sont di erents. Le champ alias permet de sp eci er plusieurs noms pour un m^ eme service. G en eralement, il n'est pas n ecessaire de modi er le chier services fourni avec la partie r eseau de votre syst eme Linux. N eanmoins, vous trouverez un petit extrait de ce chier dans la gure 9.2. Par exemple, notez que le service echo est o ert sur le port 7 a la fois pour TCP et UDP, et que le port 512 sert a deux services di erents: ex ecution distante (rexec(1)) utilisant TCP, et le d emon COMSAT, qui indique aux utilisateurs que du nouveau courrier est arriv e, par UDP (voir xbi (1x)).
  • 154.
    9.4. RPC: appelde proc edure distante 137 # # Protocoles Internet (IP) # ip 0 IP # internet protocol, pseudo protocol number icmp 1 ICMP # internet control message protocol igmp 2 IGMP # internet group multicast protocol tcp 6 TCP # transmission control protocol udp 17 UDP # user datagram protocol raw 255 RAW # RAW IP interface Fig. 9.3 - Exemple de chier /etc/protocols. Comme pour les services, les fonctions r eseau ont besoin d'un moyen de traduire les noms de protocoles | par exemple, ceux indiqu es dans le chier services | en num eros de protocoles compris par la couche IP de toute autre machine. Il existe un chier pour cela, /etc/protocols. Il contient une entr ee par ligne, compos ee du nom du protocole, et de son num ero associ e. Vous n'aurez probablement jamais a modi er ce chier, dont un exemple est donn e gure 9.3. 9.4 RPC: appel de proc edure distante RPC, l'ensemble ( ( Remote Procedure Call ) ) (appel de proc edure distante), fournit un m ecanisme tr es g en eral pour la r ealisation d'applications client-serveur. RPC a et e d evelopp e par Sun Microsystems et consiste en une collection d'outils et de biblio- th eques de fonctions. Parmi les applications les plus importantes reposant sur RPC, citons NFS et NIS, que nous pr esenterons dans de prochains chapitres. Un serveur RPC est fait d'un ensemble de proc edures qu'un client appelle en lui envoyant une requ^ ete RPC, ainsi que les param etres de cette proc edure. Le serveur appellera la fonction pour le client, et lui renverra sa valeur de retour, s'il y en a une. A n d'^ etre ind ependant de l'architecture des machines mises en jeu, toutes les donn ees echang ees doivent ^ etre converties dans un format universel, chaque ordinateur faisant la conversion inverse pour les adapter a son format interne lorsqu'il les re coit. Ce format est appel e XDR, soit External Data Representation (repr esentation externe de donn ees). Parfois, certaines am eliorations d'une application RPC introduisent des modi cations incompatibles dans l'interface d'appel de proc edure. Bien s^ ur, changer simplement le serveur emp^ echerait tous les programmes attendant encore le comportement original de fonctionner. Par cons equent, les programmes RPC se voient assigner un num ero de version, g en eralement a partir de 1, qui est incr ement e a chaque nouvelle version de l'interface. Souvent, un serveur peut proposer plusieurs versions simultan ement; les clients indiquent quelle impl ementation du service ils d esirent utiliser par ce num ero de version dans leurs requ^ etes.
  • 155.
    138 Chapitre 9.Aspects importants du r eseau La communication r eseau entre serveurs et clients RPC est un peu particuli ere. Un serveur RPC o re un ou plusieurs ensembles de proc edures; chacun etant appel e un programme et identi e de mani ere unique par un num ero de programme. Une liste contenant la correspondance entre les noms de services et les num eros de programmes est en principe disponible dans le chier /etc/rpc, dont un extrait est reproduit dans la gure 9.4. # # /etc/rpc - divers services RPC # portmapper 100000 portmap sunrpc rstatd 100001 rstat rstat_svc rup perfmeter rusersd 100002 rusers nfs 100003 nfsprog ypserv 100004 ypprog mountd 100005 mount showmount ypbind 100007 walld 100008 rwall shutdown yppasswdd 100009 yppasswd bootparam 100026 ypupdated 100028 ypupdate Fig. 9.4 - Un extrait du chier /etc/rpc. Sur les r eseaux TCP/IP, les auteurs de RPC furent confront es au probl eme de faire correspondre un service r eseau g en erique aux num eros de programmes. Ils d ecid erent que chaque serveur proposerait a la fois un port TCP et UDP pour chaque programme et chaque version. G en eralement, les applications RPC utiliseront UDP pour envoyer des donn ees, et ne prendront TCP que si les donn ees a transf erer ne tiennent pas dans un seul datagramme UDP. Bien s^ ur, les clients doivent avoir un moyen de trouver a quel port correspond un num ero de programme donn e. Un chier de con guration serait inadapt e; comme les applications RPC n'utilisent pas de ports r eserv es, il n'y aurait aucune garantie qu'un port utilis e a l'origine pour notre application de base de donn ees n'ait pas et e pris par quelque autre processus. Par cons equent, les applications RPC prennent n'importe quel port possible et l'enregistrent par le biais du d emon portmapper. Il agit comme un concierge pour tous les serveurs RPC en fonctionnement sur sa machine. Un client d esirantcontacter un service avecun num erode programmedonn edemandera d'abord au portmapper de la machine serveur, qui lui indiquera les ports TCP et UDP par lesquels le service peut ^ etre atteint. Cette m ethode a l'inconv enient d'introduire un point faible, un peu comme le fait le d emon inetd pour les services Berkeley standard. Mais ici, c'est encore pire car lorsque le portmapper s'arr^ ete pour une raison quelconque, toutes les informations sont perdues; ce qui signi e que vous devez relancer manuellement chaque serveur, ou r eamorcer compl etement la machine.
  • 156.
    9.5. Con gurationdes commandes en ( ( r ) ) 139 Sous Linux, le portmapper s'appelle rpc.portmap et se trouve dans /usr/sbin. Il ne demande aucune con guration particuli ere, il sut de s'assurer qu'il est bien lanc e au d emarrage du syst eme, par exemple depuis le chier rc.inet2. 9.5 Con guration des commandes en ( ( r ) ) Il existe certaines commandes destin ees a ex ecuter des programmes sur des machines distantes. Ce sont rlogin, rsh, rcp, et rcmd. Toutes lancent un shell sur l'h^ ote distant et permettent a l'utilisateur d'ex ecuter des commandes. Bien entendu, le client doit poss ederun compte sur la machine en question. Parcons equent, toutes ces commandes passent par une proc edure d'authenti cation; en g en eral le client indique le nom d'utilisateur au serveur, qui a son tour demande un mot de passe valid e par la m ethode habituelle. Quelquefois il est malgr e tout n ecessaire d'assouplir cette proc edure d'autorisation pour certains utilisateurs. Par exemple, si vous devez fr equemment vous connecter sur d'autres machines de votre r eseau, vous aimeriez ne pas avoir a taper votre mot de passe a chaque fois. Invalider l'authenti cation n'est envisageableuniquement que sur un tout petit nombre d'h^ otes dont les chiers de mots de passe sont synchronis es, ou pour quelques utili- sateurs privil egi es qui ont besoin d'acc eder a beaucoup de machines pour des raisons administratives. Chaque fois que vous autorisez des gens a entrer sur votre machine sans avoir besoin de pr eciser leur identit e ou leur mot de passe, assurez-vous bien que vous n'o rez pas accidentellement l'acc es a d'autres. Il y a deux fa cons de supprimer les tests d'identi cation pour ces fameuses commandes en r. L'une permet au superutilisateur d'autoriser certains utilisateurs (ou tous) de certains h^ otes (ou tous, mais c'est vraiment une tr es mauvaise id ee) a se connecter sans qu'il leur soit demand e de mot de passe. Cet acc es est contr^ ol e par un chier nomm e /etc/hosts.equiv. Il contient une liste des h^ otes et utilisateurs qui sont consi- d er es comme equivalents a ceux de la machine locale. L'autre option est destin ee aux utilisateurs. Elle permet a un utilisateur d'autoriser d'autres personnes, sur certaines machines, a utiliser son propre compte. Ils doivent alors se trouver dans le chier .rhosts du r epertoire personnel de cet utilisateur. Pour des raisons de s ecurit e, ce chier doit absolument appartenir soit a l'utilisateur, soit au superutilisateur, et ne doit pas ^ etre un lien symbolique: sinon, il sera purement et simplement ignor e5. Lorsqu'un client demande un service r, le nom de sa machine et son nom d'utilisateur sont recherch es dans le chier /etc/hosts.equiv, puis dans le chier .rhosts de l'uti- lisateur sous lequel il d esire se connecter. Prenons un exemple concret. Supposons que janet travaille sur gauss et tente de se connecter sur le compte de joe, sur la 5: Dans un environnement NFS, vous devrez peut-^ etre lui donner les permissions 444 car le su- perutilisateur a souvent des possibilit es d'acc es aux chiers tr es restreintes sur les disques mont es par le r eseau.
  • 157.
    140 Chapitre 9.Aspects importants du r eseau machine euler. Tout au long de cet exemple, nous consid ererons Janet comme l'uti- lisateur client, et Joe comme l'utilisateur local. Janet tape sa commande sur gauss: $ rlogin -l joe euler Le serveur commence par tester hosts.equiv6 pour voir si Janet a droit a un acc es libre, et si la r eponse est n egative, il essaiera de le trouver dans le chier .rhosts du r epertoire personnel de joe. Le chier hosts.equiv sur euler contient ceci: gauss euler -public quark.physique.groucho.edu andres Une entr ee consiste en un nom de machine, suivi facultativement par un nom d'utili- sateur. Si un h^ ote appara^ t seul, tous ses utilisateurs seront admis sous leurs comptes locaux sans aucun test d'identi cation. Dans l'exemple ci-dessus, Janet aurait le droit de se connecter sous son compte janet en arrivant de gauss, et ce serait vrai pour tout autre utilisateur a l'exception de root. Toutefois, si Janet voulait entrer sous le nom joe, il lui serait demand e le mot de passe correspondant. Si un nom d'h^ ote est suivi par un utilisateur, comme dans la derni ere ligne de l'exemple, ce dernier poss ede alors un acc es libre, sans mot de passe, a tous les comptes except e celui de root. Le nom de machine peut aussi ^ etre pr ec ed e du signe moins, comme dans l'entr ee - public. Cela a pour e et de demander l'authenti cation pour tous les comptes de -public, quels que soient les droits que les utilisateurs pourraient s'octroyer via leur chier .rhosts. Le format de .rhosts est identique a celui de hosts.equiv, mais sa signi cation est un peu di erente. Consid erons le chier .rhosts de Joe, sur la machine euler: chomp.cs.groucho.edu gauss janet La premi ere entr ee autorise un acc es libre a l'utilisateur joe lorsqu'il arrive de la ma- chine chomp.cs.groucho.edu, mais ne change rien aux droits de tout autre compte sur euler ou chomp. La seconde entr ee est une variante, en ce sens qu'elle donne un acc es libre du compte de Joe a janet, s'il arrive de gauss. Notez que le nom de machine du client est obtenu par la recherche inverse sur son adresse IP, et donc que cette possibilit e ne fonctionnera pas avec des h^ otes inconnus 6: Notez que le chier hosts.equiv n'est pas utilis e si quelqu'un tente de se connecter sous root.
  • 158.
    9.5. Con gurationdes commandes en ( ( r ) ) 141 du resolver. Ce nom d'h^ ote est consid er e correspondre au nom contenu dans le chier hosts dans l'un des cas suivants: { Le nom canonique du client (et non pas un alias) est identique a celui contenu dans le chier. { Si le nom de la machine cliente est un nom pleinement quali e (comme le re- tournera le resolver si vous utilisez le DNS), et qu'il n'est pas identique a celui trouv e dans le chier, il sera compar e a ce dernier, augment e du nom de domaine local.
  • 159.
    142 Chapitre 9.Aspects importants du r eseau
  • 160.
    143 Chapitre 10 NIS: NetworkInformation System Sur un r eseau local, le but de votre travail d'administration est en principe d'o rir un environnement rendant le r eseau transparent a vos utilisateurs. Il vous faudra alors un moyen de conserver les informations vitales comme les comptes utilisateurs, en parfait synchronisme sur toutes les machines. Nous avons d ej a vu que pour la r esolution des noms, nous avons un outil puissant et adapt e: DNS. Pour d'autres t^ aches, il n'y a pas de service sp ecialis e. De plus, si vous ne g erez qu'un petit r eseau non connect e a l'Internet, l'utilisation du DNS est sans grand int er^ et. C'est pourquoi Sun a d evelopp e NIS, le Network Information System (syst eme d'in- formation r eseau). NIS o re des facilit es d'acc es de base de donn ees utilis ees pour distribuer des informations, comme celles contenues dans les chiers passwd et groups, a tous les h^ otes de votre r eseau. Celui-ci appara^ t alors comme un unique syst eme, avec les m^ emes comptes sur toutes les machines. De m^ eme, vous pouvez utiliser NIS pour distribuer les renseignements sur les noms contenus dans /etc/hosts a travers le r eseau. NIS est bas e sur RPC, et comprend un serveur, une biblioth eque client, et di erents outils d'administration. A l'origine, le syst eme s'appelait les pages jaunes (Yellow Pages), ou YP; et ce nom est encore souvent employ e. Or, ( ( Yellow Pages ) ) est une marque d epos ee de British Telecom, qui imposa a Sun l'utilisation d'un autre nom. C'est pour cette raison que YP reste le pr e xe de la plupart des commandes relatives a NIS comme ypserv, ypbind, etc. Aujourd'hui, NIS est disponible pour pratiquement tous les syst emes Unix, et il en existe m^ eme des impl ementations gratuites. L'une d'elles provient de la distribution Net-2 de BSD et est d eriv ee d'une version de r ef erence en domaine public, o erte par Sun. Le code de la biblioth eque client de cette version fait partie de la biblioth eque standard GNU libc depuis longtemps, mais les programmes d'administration n'ont et e
  • 161.
    144 Chapitre 10.NIS: Network Information System que tr es r ecemment port es sous Linux, par Swen Th ummler1. Il manque un serveur NIS dans l'impl ementation de r ef erence. Tobias Reber a r ealis e un autre paquetage NIS comprenant tous les outils et un serveur; il s'appelle yps2. Actuellement, une r e ecriture compl ete du code NIS, appel ee NYS est en cours, ce travail est e ectu e par Peter Eriksson;3 elle supportera aussi bien le NIS standard que la nouvelle version tr es am elior ee de Sun, NIS+. NYS o re non seulement un ensemble d'outils et un serveur, mais ajoute de toutes nouvelles biblioth eques de fonctions qui l'am eneront sans doute a faire partie de la libc standard un jour. Cela comprend une nouvelle m ethode de con guration pour la r esolution de noms qui remplace l'actuelle, avec host.conf. Nous d ecrirons les caract eristiques de ces fonctions. Ce chapitre est orient e sur NYS plut^ ot que les deux autres paquetages, que nous appellerons le code NIS ( ( traditionnel ) ). Si vous avez l'intention d'utiliser l'une ou l'autre impl ementation, les instructions contenues dans ce guide pourront peut-^ etre ne pas sure. Pour toute information suppl ementaire, consultez un ouvrage sp ecialis e sur le sujet, comme NFS and NIS, par Hal Stern ([NFS and NIS]). Pour l'instant, NYS est encore en cours de d eveloppement, et par cons equent les uti- litaires standard de Linux comme les programmes r eseau ou login n'ont pas encore et e adapt es. Toutefois, NYS est int egr e a la biblioth eque C libc depuis sa version 4.6, vous pouvez par cons equent facilement construire votre propre biblioth eque sup- portant NYS au lieu du code NIS traditionnel4. Les responsables du projet GNU semblent aussi avoir l'intention d'int egrer NYS dans leur impl ementation ocielle de la biblioth eque GNU libc, dont celle de Linux est d eriv ee. 10.1 Initiation a NIS NIS tient sa base de donn ees a jour dans des cartes contenant des couples de mots- cl es/valeurs. Elles sont stock ees sur un h^ ote central sur lequel se trouve le serveur NIS, depuis lequel les clients peuvent extraire les informations par le truchement de divers appels RPC. Tr es souvent, les cartes sont au format DBM5. Les cartes sont g en eralement r ealis ees a partir de chiers ASCII de r ef erence comme /etc/hosts ou /etc/passwd. Pour certains chiers, plusieurs cartes sont g en er ees, une pour chaque type de cl e de recherche. Par exemple, vous pouvez e ectuer une re- 1: On peut joindre Swen a l'adresse swen@uni-paderborn.de. Les clients NIS sont disponibles dans l'archive yp-linux.tar.gz, sur sunsite.unc.edu dans le r epertoire system/Network, et sur les principaux sites di usant Linux, bien entendu. 2: La version courante ( a l'heure o u nous ecrivons ces lignes) est yps-0.21 et peut ^ etre t el echarg ee sur ftp.lysator.liu.se dans le r epertoire /pub/NYS. 3: L'adresse de Peter est pen@lysator.liu.se. 4: Toutes les instructions n ecessaires pour cr eer une biblioth eque C contenant le support de NYS se trouvent dans le chier README.nys, dans le code source de cette biblioth eque. 5: DBM est une librairie de gestion de base de donn ees simple qui utilise des techniques de hachage pour acc el erer les op erations de recherche. Il existe une impl ementation libre de cette biblioth eque appel ee gdbm, du projet GNU. Elle fait partie de toute distribution s erieuse de Linux.
  • 162.
    10.1. Initiation aNIS 145 cherche dans le chier hosts pour un nom de machine, ou pour une adresse IP. Par cons equent, on va donc d eriver de ce chier deux cartes NIS, nomm ees hosts.byname et hosts.byaddr. Le tableau 10.1 enum ere les cartes courantes et les chiers a partir desquels elles sont g en er ees. Fichier de r ef erence Carte(s) correspondante(s) /etc/hosts hosts.byname hosts.byaddr /etc/networks networks.byname networks.byaddr /etc/passwd passwd.byname passwd.byuid /etc/group group.byname group.bygid /etc/services services.byname services.bynumber /etc/rpc rpc.byname rpc.bynumber /etc/protocols protocols.byname protocols.bynumber /usr/lib/aliases mail.aliases Tab. 10.1 - Quelques cartes NIS standard et les chiers correspondants. Vous pourrez trouver le support d'autres chiers et cartes dans certains paquetages NIS. Ils seront souvent relatifs aux informations d'applications que nous ne d ecrivons pas dans ce livre, comme la carte bootparams qui est utilis ee par le serveur bootparamd de Sun. Il est courant d'attribuer des surnoms a certaines cartes, plus courts et plus simples a taper. Ces surnoms ne sont compris que de ypcat et ypmatch, deux outils destin es a tester la con guration NIS. Pour en obtenir la liste, tapez la commande suivante: $ ypcat -x NIS map nickname translation table: passwd - passwd.byname group - group.byname networks - networks.byaddr hosts - hosts.byname protocols - protocols.bynumber services - services.byname aliases - mail.aliases ethers - ethers.byname rpc - rpc.bynumber netmasks - netmasks.byaddr publickey - publickey.byname netid - netid.byname passwd.adjunct - passwd.adjunct.byname group.adjunct - group.adjunct.byname timezone - timezone.byname Le programme serveur NIS s'appelle traditionnellement ypserv. Pour un r eseau de moyenne importance, un seul sut; de plus grands r eseaux peuvent avoir plusieurs de ces serveurs sur di erentes machines et di erents segments du r eseau a n de limiter
  • 163.
    146 Chapitre 10.NIS: Network Information System la chargedes h^ otes serveurset des routeurs.Ils sont synchronis esen rendant un serveur ma^ tre, alors que les autres sont serveurs esclaves. Les cartes sont cr e ees uniquement sur la machine du serveur ma^ tre, et distribu ees aux esclaves. Vous aurez remarqu e que, jusqu' a pr esent, nous avons toujours parl e de ( ( r eseaux) ) de mani ere vague. NIS consid ere comme r eseau l'ensemble des h^ otes qui partagent une partie des donn ees de leur con guration syst eme par son interm ediaire; et comprend un concept un peu particulier: le domaine NIS. Malheureusement, les domaines NIS n'ont absolument rien en commun avec les domaines que nous avons rencontr es dans le DNS. Pour eviter toute ambigu t e, nous devrons donc dans les pages qui suivent toujours indiquer de quel type de domaine nous parlons. Les domaines NIS n'ont qu'une fonction purement administrative. Ils sont pratique- ment invisibles des utilisateurs, sauf pour le partage des mots de passe entre machines du domaine. Par cons equent, le nom donn e a un domaine NIS ne concerne que les administrateurs. G en eralement, n'importe quel nom fera l'a aire, tant qu'il est dif- f erent de tous les autres noms de domaines NIS eventuellement pr esents sur votre r eseau local. Par exemple les administrateurs de ( ( La bi ere virtuelle ) ) peuvent choisir de cr eer deux domaines NIS, un pour eux-m^ emes et un autre pour ( ( Les caves vir- tuelles ) ), qu'ils appelleront respectivement canette et bouteille, par exemple. Une autre m ethode courante est d'employer tout simplement le nom du domaine DNS comme domaine NIS. Pour positionner et acher le domaine NIS de votre h^ ote, vous disposez de la commande domainname. Invoqu ee sans arguments, elle ache le do- maine NIS courant; pour le changer, vous devez passer superutilisateur et taper: # domainname canette Les domaines NIS d eterminent quel serveur interroger. Par exemple, le programme login d'une machine de nos viticulteurs ne doit, bien entendu, employer que le serveur de leur domaine NIS (ou l'un d'eux s'il y en a plusieurs) pour demander le mot de passe d'un utilisateur, et il en va de m^ eme pour les brasseurs; a chaque domaine NIS son serveur. Il nous reste un myst ere a r esoudre: comment un client peut-il trouver sur quel serveur se connecter? L'approche la plus simpliste serait d'avoir un chier de con guration indiquant le nom de la machine a contacter. Ce n'est toutefois pas satisfaisant car il serait impossible de contacter plusieurs serveurs (du m^ eme domaine NIS, cela va sans dire), selon leur disponibilit e. Par cons equent, les impl ementations traditionnelles de NIS emploient un d emon sp ecial appel e ypbind pour d etecter un serveur dans leur domaine NIS. Avant de pouvoir e ectuer des requ^ etes NIS, une application doit trouver, gr^ ace a ypbind, le serveur a contacter. Ce d emon ypbind sonde les serveurs en emettant sur le r eseau IP local un message de di usion (broadcast); le premier qui r epond est consid er e comme le plus rapide et sera utilis e pour toutes les requ^ etes NIS qui suivront. Apr es un certain temps, ou si le serveur devient indisponible, ypbind recherche a nouveau les serveurs actifs.
  • 164.
    10.2. NIS contreNIS+ 147 Cette m ethode est discutable sur un point; vous n'en avez que rarement besoin, et elle introduit un probl eme de s ecurit e: ypbind croit aveugl ement la premi ere machine qui r epond, qui peut aussi bien ^ etre un humble serveur NIS tout a fait correct, qu'un malicieux intrus. Il n'est pas besoin de dire que c'est particuli erement g^ enant lorsque vous g erez vos mots de passe par NIS. Pour se prot eger, la biblioth eque NIS de Linux n'utilise pas ypbind par d efaut, mais r ecup ere le nom du serveur depuis un chier de con guration. 10.2 NIS contre NIS+ NIS et NIS+ n'ont gu ere en commun que leur nom et leur fonction. NIS+ est organis e d'une mani ere tr es di erente. Au lieu d'avoir un espace de noms lin eaire avec des domaines NIS disjoints, il utilise un espace de noms hi erarchique similaire a celui du DNS. A la place des cartes, ce sont des tables qui sont utilis ees, constitu ees de lignes et de colonnes; chaque ligne repr esente un objet dans la base de donn ees NIS+, et chaque colonne contient les propri et es de ces objets, que NIS+ conna^ t et g ere. Chaque table d'un domaine NIS+ donn e comprend celles de ces domaines parents. De plus, une entr ee dans une table peut contenir un lien vers une autre table. Ainsi, il est possible de structurer l'information de nombreuses fa cons. Le NIS traditionnel a une version RPC de 2, alors que NIS+ porte le num ero 3. Ce dernier ne semble pas encore largement utilis e, et nous devons avouer que nous ne connaissons pas grand-chose a son sujet, voire rien du tout. Par cons equent, nous n'en parlerons pas davantage ici. Si vous voulez en savoir plus, consultez le manuel d'administration NIS+ de Sun ([NIS+]). 10.3 Le c^ ot e client de NIS Si vous avez l'habitude d' ecrire ou de porter des applications r eseau, vous aurez not e que la plupart des cartes NIS cit ees plus haut correspondent a des fonctions de la biblioth eque C. Par exemple, pour obtenir des informations concernant le mot de passe (passwd), vous appelez en g en eral les fonctions getpwnam(3) et getpwuid(3), qui retournent les donn ees associ ees avec le nom d'utilisateur ou son num ero d'identi - cation, respectivement. En des circonstances normales, ces fonctions e ectueront la recherche sur les chiers standard, en g en eral /etc/passwd. Pour supporter NIS, le comportement de ces fonctions sera modi e; un appel RPC est e ectu e a n de pouvoir interroger le serveur NIS et r ecup erer les informations demand ees. Cette modi cation est transparente pour l'application. La fonction peut soit ( ( ajouter ) ) la carte NIS au chier original, soit le ( ( remplacer ) ) enti erement. Bien s^ ur, il ne s'agit pas de r eelles modi cations du chier, mais de ce qui appara^ t vu du c^ ot e de l'application.
  • 165.
    148 Chapitre 10.NIS: Network Information System En ce qui concerne les impl ementations traditionnelles de NIS, certaines conventions ont emerg e qui permettent de d eterminer quelles cartes sont ajout ees ou lesquelles remplacent l'information originale. Quelques-unes, comme les cartes passwd, deman- dent des modi cations du chier passwd qui, incorrectement e ectu ees, cr eent des failles dans la s ecurit e du syst eme. Pour eviter ces pi eges, NYS emploie un syst eme de con guration g en erale qui d etermine si un ensemble de fonctions particulier doit utiliser les chiers originaux, NIS ou NIS+, et dans quel ordre. Nous d ecrirons cela un peu plus loin. 10.4 Installer un serveur NIS Apr es autant de th eorie r ebarbative, il est temps de mettre les mains dans le cambouis en installant r eellement la chose. Dans cette section, nous allons donc aborder la con guration d'un serveur NIS. S'il y en a d ej a un en fonctionnement sur votre r eseau, vous n'aurez pas besoin d'installer le v^ otre; vous pouvez sans risque ignorer cette section. Si vous comptez juste faire quelques exp eriences avec le serveur, assurez- } vous de ne pas le con gurer pour un domaine NIS d ej a existant sur votre r eseau. Cela pourrait interrompre tout le service et vous rendre tr es im- populaire aupr es de beaucoup de gens... Il existe actuellement deux serveurs NIS disponibles sous Linux; l'un se trouve dans le paquetage yps de Tobias Reber, et l'autre dans l'ensemble ypserv de Peter Eriksson. Celui que vous utiliserez n'a aucune importance, que vous preniez NYS ou le code NIS standard qui est actuellement dans la biblioth eque libc. A l'heure o u nous r edigeons ce chapitre, le code g erant les serveurs esclaves NIS semble plus complet dans yps. D'un autre c^ ot e, ypserv corrige un probl eme de s ecurit e courant sous NIS (qui sera d ecrit plus loin), ce que ne fait pas yps. Le choix d epend donc enti erement de vos besoins. Apr es avoir install e le programme serveur (ypserv) dans /usr/sbin, vous devrez cr eer le r epertoire destin e a recevoir les cartes qui seront distribu ees. Pour con gurer le domaine NIS canette, les cartes devront se trouver dans /var/yp/canette. Le serveur d etermine s'il g ere un domaine NIS particulier en testant l'existence de ce r epertoire. Si vous supprimez le service d'un domaine NIS, assurez-vous de supprimer egalement ce r epertoire. A n d'acc el erer les recherches, les cartes sont souvent stock ees au format DBM. Elles sont cr e ees a partir des chiers de r ef erence a l'aide d'un programme appel e makedbm (pour le serveur de Tobias) ou dbmload (pour celui de Peter). Attention, ces com- mandes peuvent ne pas ^ etre interchangeables. Transformer un chier en une forme compr ehensible par dbmload n ecessite g en eralement un peu de magie awk ou sed, par cons equent le paquetage ypserv de Peter Eriksson contient un Make le (nomm e yp- Make le) qui e ectue tout le travail pour vous. Vous devrez l'installer sous le nom
  • 166.
    10.5. S ecurit e duserveur NIS 149 Make le dans le r epertoire o u se trouvent vos cartes et l' editer pour qu'il re ete celles que vous d esirez distribuer. Vers le d ebut de ce chier, vous trouverez la cible all qui indique les services que ypserv devra o rir. Par d efaut, la ligne ressemble a celle-ci: all: ethers hosts networks protocols rpc services passwd group netid Si par exemple vous ne voulez pas produire les cartes ethers.byname et ethers.byaddr, il sut de supprimer le mot ethers de cette ligne. Pour tester votre con guration, vous pouvez commencer avec juste une ou deux cartes, comme services.*. Apr es avoir edit e ce Make le, restez dans le r epertoire et tapez make. Les cartes seront alors automatiquement g en er ees et install ees. Il ne faudra pas oublier de mettre a jour ces cartes chaque fois que vous modi erez les chiers de r ef erence, faute de quoi les modi cations resteraient invisibles sur le r eseau. La section suivante d etaille la con guration de la partie client de NIS. Si rien ne marche, essayez de voir si les requ^ etes arrivent a votre serveur. En indiquant l'option -debug sur la ligne de commandes de ypserv, vous obtiendrez des messages de d ebo- guage sur la console, indiquant toutes les requ^ etes NIS re cues et le r esultat qui est envoy e aux clients; cela devrait vous permettre de localiser le probl eme. Le serveur de Tobias ne poss ede pas cette option. 10.5 S ecurit e du serveur NIS NIS avait un important trou de s ecurit e: il permettait la lecture de votre chier de mots de passe par pratiquement n'importe qui sur l'Internet, ce qui repr esente une quantit e non n egligeable d'intrusions possibles. Il susait de conna^ tre votre domaine NIS et l'adresse de votre serveur, et de lui envoyer une requ^ ete demandant la carte passwd.byname, pour recevoir aussit^ ot tous les mots de passe de votre site. Avec un programme rapide comme crack et un bon dictionnaire, il etait en g en eral tr es facile d'en trouver au moins quelques-uns. C'est pourquoi l'option securenets a et e cr e ee. Elle restreint l'acc es de votre serveur NIS a certains h^ otes, en fonction de leur adresse IP ou du r eseau.La derni ereversionde ypserv impl emente cette option de fa con assez pratique, par les chiers etc/hosts.allow et /etc/hosts.deny que nous avons d ej a rencontr es dans le chapitre 96. Par exemple, pour restreindre l'acc es aux machines des brasseurs, leur administrateur r eseau ra- jouterait dans le chier hosts.allow la ligne suivante: ypserv: 172.16.2. 6: Pour valider cette option, il peut ^ etre n ecessaire de recompiler le serveur. Lisez les instructions contenues dans le chier README fourni dans la distribution.
  • 167.
    150 Chapitre 10.NIS: Network Information System Tous les h^ otes du r eseau IP 172.16.2.0 auraient acc es au serveur NIS. Pour interdire tous les autres, l'entr ee correspondante dans hosts.deny serait: ypserv: ALL Les num erosIP ne sont pas la seule fa con de sp eci erh^ otes ou r eseauxdans hosts.allow et hosts.deny. Consultez la page de manuel hosts access(5) sur votre syst eme pour avoir plus de d etails. Toutefois, vous devez savoir qu'il est impossible d'utiliser des noms d'h^ otes ou de domaines dans l'entr ee ypserv: si vous y mettez un nom, le serveur essaie de le r esoudre, mais le resolver appelle a son tour ypserv, et vous entrez dans une boucle in nie. Vous pouvez aussi utiliser le portmapper s ecuris e a la place de l'option securenets de ypserv. Cette version (portmap-3.0)7 emploie aussi la m ethode par hosts.allow, mais o re cette s ecurit e pour tous les serveurs RPC, et non pas uniquement pour ypserv. Mais n'essayez pas d'utiliser a la fois securenets et le portmapper s ecuris e, ce serait inutile et la charge serait trop importante. 10.6 Con guration d'un client NIS avec NYS La n de ce chapitre sera enti erement consacr ee a la con guration d'un client NIS. La premi ere etape consiste a indiquer a NYS quel serveur NIS doit ^ etre utilis e. Vous pouvez mettre son nom dans le chier de con guration /etc/yp.conf; voici un exemple pour une machine du r eseau des viticulteurs: # yp.conf - Configuration YP pour la biblioth eque NYS. # domainname bouteille server gamay La premi ere ligne indique a tous les clients NIS que cet h^ ote appartient au domaine NIS bouteille. Si vous omettez cette d eclaration, NYS utilisera le nom de domaine que vous avez assign e au syst eme par la commande domainname. La seconde ligne indique le nom du serveur NIS a utiliser. Bien entendu, l'adresse IP correspondant a gamay doit se trouver dans le chier hosts; l'alternative etant de mettre directement cette adresse IP au lieu du nom. Dans la forme ci-dessus, la commande server indique a NYS d'utiliser le serveur sp e- ci e, quel que soit le domaine NIS courant. Si, toutefois, vous d eplacez votre machine fr equemment d'un domaine NIS a un autre, vous pouvez indiquer ces domaines dans le chier yp.conf: il sut d'indiquer plusieurs serveurs, suivi du domaine NIS corres- pondant. Par exemple: 7: Disponible par FTP anonyme sur sunsite.unc.edu dans le r epertoire Linux/systems/Network.
  • 168.
    10.7. Choisir lesbonnes cartes 151 # yp.conf - YP configuration for NYS library. # server gamay bouteille server gueuze canette Ce pourrait ^ etre la con guration d'une machine portable, appel ee a ^ etre utilis ee tour a tour dans ces deux domaines NIS. Il sura d'initialiser le domaine d esir e au moment du d emarrage du syst eme, par la commande domainname. Apr es avoir cr e e ce chier de con guration de base et avoir v eri e qu'il est lisible par tout le monde, vous devez faire votre premier test pour voir si vous pouvez bien vous connecter a votre serveur. Choisissez une carte que celui-ci distribue, comme hosts.byname, et essayez de la r ecup erer avec l'utilitaire ypcat. Ce programme, comme tous les autresoutils d'administrationNIS, doit se trouverdansle r epertoire/usr/sbin. # ypcat hosts.byname 172.16.2.2 brouilly.bibine.com brouilly 172.16.2.3 gamay.bibine.com gamay 172.16.1.1 kro.bibine.com kro 172.16.2.1 kro.bibine.com kro 172.16.1.2 gueuze.bibine.com gueuze 172.16.1.3 trappiste.bibine.com trappiste 172.16.2.4 cahors.bibine.com cahors Vous devriez obtenir une sortie ressemblant a celle ci-dessus. Si vous avez un message d'erreur disant ( ( Can't bind to server which serves domain ) ), c'est que soit le domaine NIS que vous avez initialis e n'a pas de serveur correspondant d e ni dans le chier yp.conf, soit que le serveur est inaccessible pour une raison quelconque. Dans ce dernier cas, v eri ez qu'un ping vers cette machine fonctionne bien, et qu'il y existe bien un serveur NIS. Vous pouvez v eri er si un serveur NIS est pr esent par la commande rpcinfo, qui devrait vous acher: # rpcinfo -u nom-de-machine ypserv program 100004 version 2 ready and waiting 10.7 Choisir les bonnes cartes Apr es avoir v eri e que le serveur NIS est accessible, vous devez d ecider quels chiers doivent ^ etre remplac es ou compl et es par les cartes NIS. G en eralement, ce sont ceux permettant la recherche de noms et de mots de passe qui sont choisis. Le premier cas est tr es utile si vous n'employez pas BIND; le second permet a tous les utilisateurs de se connecter sous leur compte depuis n'importe quel syst eme du domaine NIS, et va g en eralement de pair avec le partage d'un r epertoire /home central mont e sur tous les h^ otes par NFS. La carte concernant les mots de passe est expliqu ee en d etail dans la section suivante.
  • 169.
    152 Chapitre 10.NIS: Network Information System D'autres cartes, comme services.byname, rendent un service moins impressionnant, mais peuvent n eanmoins vous epargner un peu de travail d' edition de chiers de con guration. La carte services.byname est int eressante si vous installez des applica- tions r eseaux qui emploient des services absents du chier services standard (ce qui est un cas assez courant). En g en eral, il sera bon de pouvoir choisir quand une fonction de recherche devra utili- ser les chiers locaux ou le serveur NIS. NYS permet de con gurer l'ordre dans lequel ces recherches sont faites, par l'interm ediaire du chier /etc/nsswitch.conf, (Name Service Switch). Ce chier contient une ligne pour chacune des fonctions de recherche support ees par NYS. L'ordre correct d epend du type des donn ees. Il y a peu de chances que la carte ser- vices.byname contienne des entr ees di erentes de celles du chier local /etc/services; tout au plus pourra-t-elle contenir des entr ees suppl ementaires. Par cons equent, il para^ t raisonnable d'e ectuer les recherches d'abord dans le chier local, et ne tester NIS que si le nom de service recherch e ne s'y trouve pas. En revanche, les informa- tions sur les noms de machines peuvent changer fr equemment, donc DNS ou NIS sont toujours plus a jour que le chier /etc/hosts qui ne contient qu'une sauvegarde en cas de probl eme. Dans ce cas, il ne faudra e ectuer les recherches dans ce chier qu'en dernier recours. L'exemple suivant montre comment forcer les fonctions gethostbyname(2), gethost- byaddr(2) et getservbyname(2) a interroger NIS et DNS avant de scruter le chier hosts. Elle essaieront chaque service cit e dans l'ordre o u ils apparaissent sur la ligne. Si une recherche aboutit, le r esultat est imm ediatement retourn e, sinon le service suivant est interrog e. # petit exemple de fichier /etc/nsswitch.conf # hosts: nis dns files services: files nis Voici la liste compl ete des services susceptibles d'^ etre utilis es dans une entr ee de nss- witch.conf. Les cartes, chiers, serveurs et objets utilis es pour les recherches d ependent bien entendu du nom de l'entr ee. nisplus ou nis+ Utilise le serveur NIS+ du domaine. Son adresse sera obtenue par le chier /etc/nis.conf. nis Interroge le serveur NIS du domaine. La machine a contacter est con gur ee dans le chier yp.conf comme d ecrit dans la section pr e- c edente. Pour les entr ees hosts, ce sont les cartes hosts.byname et hosts.byaddr qui seront demand ees. dns Utilise le serveur de noms DNS. Ce type de service n'est utile qu'avec
  • 170.
    10.8. Utilisation descartes passwd et group 153 l'entr ee hosts. Les serveurs de noms interrog es sont toujours d eter- min es par le chier resolv.conf standard. les E ectue la recherche dans les chiers locaux, comme par exemple /etc/hosts dans le cas de l'entr ee hosts. dbm Recherche l'information dans les chiers DBM, qui sont situ es dans le r epertoire /var/dbm. Le nom du chier est celui de la carte NIS correspondante. Pour l'instant, NYS supporte les entr ees nsswitch.conf suivantes: hosts, networks, passwd, group, shadow, gshadow, services, protocols, rpc et ethers. D'autres entr ees seront probablement ajout ees dans les versions ult erieures. La gure 10.1 montre un exemple plus complet, qui introduit un autre aspect de nsswitch.conf. Le mot cl e [NOTFOUND=return] dans l'entr ee hosts indique a NYS d'arr^ eter la recherche si les donn ees recherch ees n'ont pu ^ etre trouv ees dans les bases de donn ees NIS ou DNS. C'est- a-dire que NYS continuera la recherche dans les chiers locaux uniquement si les appels aux serveurs NIS et DNS echouent pour une raison quelconque. Les chiers locaux ne seront alors utilis es qu'au moment du d emarrage du syst eme et comme sauvegarde lorsque le serveur NIS est inaccessible. # /etc/nsswitch.conf # hosts: nis dns [NOTFOUND=return] files networks: nis [NOTFOUND=return] files services: files nis protocols: files nis rpc: files nis Fig. 10.1 - Exemple de chier nsswitch.conf. 10.8 Utilisation des cartes passwd et group L'une des principales applications de NIS est la synchronisation des informations uti- lisateur sur tous les h^ otes d'un domaine NIS. Pour cela, on ne conserve en g en eral qu'un petit chier /etc/passwd local, auquel les donn ees de tout le r eseau en prove- nance des cartes NIS sont ajout ees. Toutefois, il ne sut pas de valider les recherches NIS pour ce service dans nsswitch.conf pour que tout fonctionne. Pour employer les informations utilisateur distribu ees par NIS, vous devez d'abord vous assurer que les valeurs de chaque num ero d'utilisateur pr esentes dans votre chier passwd local correspondent a celles connues de NIS. Ce sera egalement n ecessaire pour
  • 171.
    154 Chapitre 10.NIS: Network Information System bien d'autres choses, comme les montages NFS de partitions d'autres machines de votre r eseau sur la v^ otre. Si l'une des valeurs de /etc/passwd ou /etc/group di ere de celle enregistr ee dans les cartes, vous devrez ajuster les propri etaires de tous les chiers qui appartiennent a cet utilisateur. Tout d'abord, il faudra changer tous les num eros d'utilisateurs et de groupes dans ces deux chiers pour les mettre a jour, puis trouver tous les chiers appartenant aux utilisateurs concern es, et en n changer leur propri etaire. Supposons que news avait un num ero d'utilisateur de 9, et marcel de 103, et qu'ils ont et e chang es pour de nouvelles valeurs. Il faudra alors ex ecuter les commandes suivantes: # find / -uid 9 -print /tmp/uid.9 # find / -uid 103 -print /tmp/uid.103 # cat /tmp/uid.9 | xargs chown news # cat /tmp/uid.103 | xargs chown marcel Il est tr es important d'ex ecuter ces commandes une fois le nouveau chier passwd install e, et que tous les chiers ont et e trouv es. La mise a jour des groupes se fait de la m^ eme mani ere. Apr es cela, les num eros d'utilisateurs et de groupes sur votre syst eme correspondront a ceux des autres machines de votre domaine NIS. L' etape suivante sera d'ajouter les lignes de con guration dans nsswitch.conf qui valideront les recherches NIS pour les informations utilisateur et groupe: # /etc/nsswitch.conf - traitement de passw et group passwd: nis files group: nis files Cela changera la mani ere dont la commande login et toute sa famille rechercheront les informations utilisateur. Lorsque quelqu'un tente de se connecter, login demande d'abord la carte NIS, et si la recherche echoue, il se tournera vers les chiers locaux. En principe, on supprime pratiquement tous les utilisateurs des chiers locaux, pour ne laisser que les entr ees r eellement indispensables comme root, mail ou autres, car certaines applications ont besoin de trouver la correspondance entre ces noms d'utilisateurs et leur num ero, et vice versa. Par exemple, les travaux administratifs de cron peuvent ex ecuter la commande su pour devenir provisoirement news, ou bien le syst eme UUCP peut avoir a poster un courrier de statistiques. Si news et uucp n'ont pas d'entr eesdans le chier local passwd, ces travaux echouerontlamentablement pendant les pannes NIS. Il y a deux gros pi eges avec ce syst eme. D'une part, la con guration d ecrite jusqu'ici ne fonctionne que pour la famille login qui n'utilise pas les mots de passe shadow, comme ceux inclus dans le paquetage util-linux. Nous verrons le cas des mots de passe shadow un peu plus loin. D'autre part, il y a d'autres commandes qui ont besoin des informations contenues dans le chier passwd; regardons par exemple la commande ls, que tout le monde utilise presque constamment. Lorsqu'on lui demande une sortie
  • 172.
    10.9. NIS etles mots de passe shadow 155 ( ( longue ) ), ls ache les noms des groupes et des utilisateurs propri etaires de chaque chier. Pour chaque num ero rencontr e, elle devra donc interroger le serveur NIS. Cela ralentira enorm ement les choses, surtout si votre r eseau local est charg e; ne parlons m^ eme pas de la situation o u le serveur NIS n'est pas sur le m^ eme r eseau physique et que les datagrammes doivent traverser un routeur. Mais ce n'est pas tout! Imaginez ce qui arrive si un utilisateur d esire changer son mot de passe. Il appellera la commande passwd le plus naturellement du monde, qui mettra a jour le chier passwd local. Or c'est impossible avec NIS, puisque ce chier n'est plus disponible localement, et il n'y a aucune option pour que les utilisateurs puissent se connecter au serveur NIS pour changer leurs mots de passe. Par cons equent, NIS o re une commande de remplacement appel ee yppasswd, qui est equivalente a passwd lorsque NIS est disponible. Elle contacte le serveur NIS par RPC, et lui donne le nouveau mot de passe. En g en eral, on installe yppasswd a la place de la commande passwd originale, en faisant quelque chose comme ceci: # cd /bin # mv passwd passwd.old # ln yppasswd passwd Vous devrez en m^ eme temps installer rpc.yppasswdd sur le serveur et le lancer depuis rc.inet2. Ainsi, toutes les complications induites par NIS seront totalement cach ees aux utilisateurs. 10.9 NIS et les mots de passe shadow Utiliser NIS avec les mots de passe shadow tient malheureusement du bricolage. Le syst eme shadow a et e invent e pour emp^ echer les utilisateurs ordinaires d'avoir acc es aux mots de passe des autres, fussent-ils crypt es. D'un autre c^ ot e, NIS n ecessite que ces donn ees soient disponibles sur tout le r eseau, ce qui va compl etement a l'encontre du but initial. Actuellement, il n'y a aucune solution r eellement satisfaisante a ce probl eme. La seule fa con de distribuer des mots de passe et autres informations utilisateur par NIS passe par les cartes standard passwd.*. Si vous avez le syst eme shadow, la m ethode la plus simple de les partager est de g en erer un chier passwd ordinaire a partir de /etc/shadow a l'aide d'outils comme pwunconv, et de cr eer les cartes NIS a partir de celui-ci. Bien s^ ur, quelques astuces peu pratiques sont n ecessaires pour utiliser NIS et le sys- t eme shadow en m^ eme temps; par exemple installer un chier /etc/shadow sur chaque h^ ote du r eseau, tout en distribuant le reste des informations (groupes, shells, etc.) par NIS. Inutile de dire que cette solution est plut^ ot b^ atarde et d e e l'orientation de NIS, qui est de faciliter la t^ ache de l'administrateur syst eme. A notre avis, une m ethode for cant les utilisateurs a choisir de ( ( bons ) ) mots de passe est bien meilleure que celle qui consiste a les cacher dans un chier suppl ementaire en cr eant des incompatibilit es.
  • 173.
    156 Chapitre 10.NIS: Network Information System 10.10 Utilisation du code NIS traditionnel Si vous utilisez le code client qui est actuellement int egr e a la biblioth eque standard libc, la con guration d'un client NIS est un peu di erente. En premier lieu, le code traditionnel ne supporte que les cartes hosts, passwd et group. De plus, la fa con dont il combine les informations des chiers locaux avec celles de NIS est tr es di erente de ce qui se passe avec NYS. Par exemple, pour utiliser les cartes NIS des mots de passe, il faut inclure la ligne suivante quelque part dans le chier /etc/passwd: +:*:0:0::: Elle marque l'endroit o u les fonctions de recherche ( ( ins erent ) ) les cartes NIS. Une ligne similaire dans le chier /etc/group a le m^ eme e et pour les cartes group.*. Pour utiliser les cartes hosts.* distribu ees par votre serveur YP, changez la ligne order du chier host.conf. Par exemple, pour utiliser NIS, DNS et /etc/hosts (dans cet ordre), cette ligne doit appara^ tre ainsi: order yp bind hosts Contrairement a NYS, le code traditionnel n ecessite un d emon ypbind pour trouver les serveurs actifs, qui doit ^ etre invoqu e au d emarrage du syst eme apr es que le domaine NIS a et e initialis e et que le portmapper RPC a et e lanc e. Jusqu' a il y a peu, ypbind cherchait les serveurs par di usion RPC. Comme nous l'avons dit au d ebut, c'est une solution peu s^ ure. C'est pourquoi la derni ere version des outils YP (de la distribution yp-linux) poss ede maintenant un d emon ypbind qui supporte le chier de con guration /etc/yp.conf. Si ce chier existe, le programme y recherchera une ou plusieurs lignes de la forme: # yp.conf - name YP server for ypbind. ypserver gamay Le d emon ypbind recherchealorsles serveursactifs parmi ceux indiqu es8. S'il ne trouve pas de chier yp.conf, ou si aucun des serveurs ne r epond, il reprendra l'ancienne m ethode de di usion RPC, a la recherche d'un serveur qui veuille bien r epondre. Il y a eu r ecemment de nombreux rapports de bogue signalant que NIS echouait avec les messages d'erreur: clntudp create: RPC: portmapper failure - RPC: unable to receive 8: Notez que le mot cl e est di erent de celui utilis e par NYS pour le nom du serveur.
  • 174.
    10.10. Utilisation ducode NIS traditionnel 157 Ils sont dus a une modi cation malencontreuse de la fa con dont ypbind communique avec les fonctions de la biblioth eque. Pour y rem edier, il faut se procurer les derni eres versions des sources des utilitaires NIS et les recompiler9. 9: Le code source de yp-linux peut ^ etre obtenu sur le site ftp.uni-paderborn.dedans le r epertoire /pub/Linux/LOCAL.
  • 175.
    158 Chapitre 10.NIS: Network Information System
  • 176.
    159 Chapitre 11 NFS, lesyst eme de chiers par r eseau NFS, le syst eme de chiers par r eseau, est probablement le service le plus r epandu utilisant RPC. Il permet d'acc eder aux chiers pr esents sur des machines distantes exactement comme s'ils etaient locaux. Il est constitu e d'un m elange de fonctionnalit es int egr ees au noyau c^ ot e client et d'un serveur NFS de l'autre c^ ot e. Cet acc es est compl etement transparent pour le client, et fonctionne sur une grande vari et e de serveurs et d'architectures. NFS o re un certain nombre d'avantages: { Les donn ees auxquelles tous les utilisateurs acc edent peuvent r esider sur un h^ ote central, chaque client montant ce r epertoire au d emarrage du syst eme. Par exemple, vous pouvez conserver tous les comptes des utilisateurs sur une machine et faire que toutes les autres montent le r epertoire /home depuis cet endroit. Si, de plus, NIS est install e, les utilisateurs peuvent se connecter sur n'importe quel h^ ote et travailler toujours sur les m^ emes chiers. { Les donn ees occupant beaucoup de place disque peuvent ^ etre stock ees sur une seule machine. Par exemple, tous les chiers et programmes relatifs a L aTEX et METAFONT peuvent ^ etre install es et maintenus en un seul endroit. { Les donn ees administratives peuvent se trouver sur une unique machine. Il n'y a pas besoin d'utiliser rcp pour installer le m^ eme stupide chier sur 30 ordinateurs di erents. Sous Linux, NFS est en grande partie le travail de Rick Sladkey1, qui a ecrit le code NFS du noyau et une bonne partie du serveur. Ce dernier est d eriv e de unfsd (user 1: On peut joindre Rick a l'adresse jrs@world.std.com.
  • 177.
    160 Chapitre 11.NFS, le syst eme de chiers par r eseau space NFS server), r ealis e a l'origine par Mark Shand, et de hnfs (Harris NFS server), ecrit par Donald Becker. Voyons le fonctionnement de NFS. Un client essaie de monter un r epertoire d'une machine distante sur un r epertoire local, exactement de la m^ eme mani ere qu'il le fait pour un p eriph erique physique. Mais la syntaxe a employer pour d esigner le r epertoire distant est di erente. Par exemple, pour monter le /home de kro sur le r epertoire users de trappiste, l'administrateur tape la commande suivante sur trappiste2 : # mount -t nfs kro:/home /users La commande mount essaiera de se connecter au d emon mountd de kro via RPC. Le serveur testera si trappiste a l'autorisation de monter le r epertoire en question, et si c'est le cas, retournera un descripteur de chier. Il sera utilis e pour toutes les requ^ etes suivantes concernant les chiers de /users. Lorsque quelqu'un acc ede a un chier par NFS, le noyau envoie un appel RPC a nfsd (le d emon NFS) sur la machine serveur. Cet appel prend comme param etres le descripteur de chier, le nom du chier auquel il faut acc eder, et l'identi cation (num ero et groupe) de l'utilisateur. Ces derniers sont utilis es pour d eterminer les droits d'acc es au chier en question. A n d' eviter que des utilisateurs non autoris es puissent lire ou modi er des donn ees, les num eros d'utilisateurs et de groupes doivent ^ etre les m^ emes sur les deux machines. Dans la plupart des impl ementations d'UNIX, le client comme le serveur NFS sont impl ement es comme des d emons de niveau noyau qui sont lanc es depuis l'espace utilisateur au moment du d emarrage du syst eme. Ce sont nfsd, le d emon NFS sur le serveur, et biod (Block I/O Daemon) sur la machine cliente. Pour am eliorer la vitesse, biod e ectue des entr ees/sorties asynchrones et plusieurs exemplaires fonctionnent simultan ement. Sous Linux, l'impl ementation de NFS est un peu di erente,en ce sens que le code client est int egr e a la couche VFS du noyau (Virtual File System, syst eme de chiers virtuel) et ne n ecessite aucun autre contr^ ole additionnel par biod. De l'autre c^ ot e, le code serveur fonctionne enti erement dans l'espace utilisateur, aussi est-il impossible d'avoir plusieurs copies de ce serveur fonctionnant simultan ement, en raison des probl emes de synchronisation que cela poserait. Il n'y a pas non plus de cache, mais cela fait partie des projets de Rick Sladkey. Dans la version 1.0 de Linux, le plus gros probl eme avec NFS est que le noyau n'est pas capable d'allouer de la m emoire par blocs de plus de 4 Ko. En cons equence, le code r eseau ne peut pas g erer de datagrammes sup erieurs a environ 3500 octets apr es soustraction des en-t^ etes et autres donn ees internes. Cela signi e que les transferts NFS avec des machines utilisant de grands datagrammes UDP par d efaut (8 Ko sur SunOS par exemple) doivent ^ etre arti ciellement r eduits. Les performances en sont 2: Vous pouvez omettre l'option -t nfs, car mount voit qu'il s'agit d'un volume NFS, gr^ ace au caract ere ( ( : ) ).
  • 178.
    11.1. V eri cationsavant usage 161 sensiblement a ect eesen certaines circonstances3. Cette limite est franchie les versions Linux-1.1 r ecentes, et le code client a et e modi e en cons equence, bien entendu. 11.1 V eri cations avant usage Avant que vous ne puissiez utiliser NFS, que ce soit en client ou en serveur, vous devez v eri er que le noyau que vous utilisez a bien et e compil e avec le support de NFS. Pour cela, Les versions r ecentes de Linux ont une interface dans le syst eme de chiers proc, le chier /proc/ lesystems que vous pouvez acher par la commande cat: $ cat /proc/filesystems minix ext2 xiafs msdos nodev proc nodev nfs iso9660 Si vous ne voyez pas nfs dans la liste, vous devez recompiler votre noyau en validant le support de NFS. Consultez la section ( ( Con guration du noyau ) ) du chapitre 3. Dans le cas d'une ancienne version, ant erieure a Linux 1.1, le meilleur moyen de savoir si NFS est valid e est d'essayer de monter un volume NFS. Pour cela, vous pouvez cr eer un r epertoire de test dans /tmp, et essayer de monter un r epertoire local dessus: # mkdir /tmp/test # mount localhost:/etc /tmp/test Si cette op eration echoue avec un message d'erreur indiquant ( ( fs type nfs not supported by kernel ) ), vous devrez vous compiler un nouveau noyau en validant NFS. Tout autre message d'erreur est sans importance, puisque rien n'est encore con gur e. 3: Comme l'a expliqu e Alan Cox: Les sp eci cations de NFS n ecessitent que le serveur termine toute ecriture disque avant de renvoyer un acquittement. Comme les noyaux BSD ne sont capables d' ecrire que des pages (4 Ko), ecrire quatre fragments de 1 Ko chacun sur un serveur NFS BSD r esulte en quatre op erations d' ecriture de 4 Ko chacune.
  • 179.
    162 Chapitre 11.NFS, le syst eme de chiers par r eseau 11.2 Monter un volume NFS Les volumes NFS4 sont mont es presque de la m^ eme fa con que les syst emes de chiers traditionnels. Vous appelez la commande mount avec la syntaxe suivante: # mount -t nfs volume nfs r epertoire local options Avec volume nfs indiqu e comme h^ ote distant:r epertoire distant. Puisque cette notation est unique aux syst emes de chiers NFS, vous pouvez omettre l'option -t nfs. Il y a un certain nombre d'options additionnelles possibles que vous pouvez indiquer a la commande mount. Elles peuvent ^ etre donn ees soit apr es le commutateur -o sur la ligne de commandes, soit dans le champ pr evu a cet e et dans l'entr ee du chier /etc/fstab correspondant a ce volume. Dans les deux cas, ces options sont s epar ees entre elles par des virgules. Celles sp eci ees en ligne de commandes ont toujours priorit e sur celles du chier fstab. Voici un exemple d'entr ee de /etc/fstab: # volume point de montage type options news:/usr/spool/news /usr/spool/news nfs timeo=14,intr Ce volume peut alors ^ etre mont e par cette commande: # mount news:/usr/spool/news En l'absence d'une entr ee fstab, la commande a passer est un peu moins lisible. Par exemple, supposons que vous montiez vos r epertoires utilisateurs depuis une machine appel ee labas, qui utilise par d efaut des blocs de 4 Ko pour les op erations de lec- ture/ ecriture. Vous voulez r eduire cette taille a 2 Ko parce que vous avez un ancien noyau Linux; la commande est alors: # mount labas:/home /home -o rsize=2048,wsize=2048 La liste de toutes les options valides est d ecrite en totalit e dans la page de manuel de nfs(5) fournie avec la version de mount de Rick Sladkey (qui fait partie du paquetage util-linux). En voici un extrait: rsize=n et wsize=n Sp eci ent la taille du datagramme utilis ee par les clients NFS pour les requ^ etes de lecture et d' ecriture, respectivement. Actuellement, leur valeur par d efaut est de 1024 octets pour les raisons evoqu ees plus haut. 4: On ne dit pas syst eme de chiers, car ce ne sont pas a proprement parler des syst emes de chiers.
  • 180.
    11.2. Monter unvolume NFS 163 timeo=n Indique le temps (en dixi emes de seconde) pendant lequel le client NFS attendra qu'une requ^ ete aboutisse. La valeur par d efaut est 7 (0,7 seconde). hard Marque explicitement le volume comme mont e en dur. C'est l'option par d efaut. soft Il s'agit de l'option inverse de hard. intr Autorise les signaux a interrompre un appel NFS. C'est utile lorsque le serveur ne r epond pas. Sauf pour rsize et wsize, toutes ces options concernent le comportement du client si le serveur devient momentan ement inaccessible. Elles s'organisent de la fa con suivante: Lorsque le client envoie une requ^ ete au serveur NFS, il attend pendant un certain temps (d e ni par l'option timeout) que l'op eration soit termin ee. Si aucune con r- mation ne lui arrive pendant le temps imparti, un d epassement de temps mineur est compt e, et il recommence l'op eration en doublant cet intervalle de temps. Lorsque cette valeur atteint 60 secondes, un d epassement de temps majeur se produit. Par d efaut, un d epassement de temps majeur provoquera l'achage d'un message sur la console, et l'op eration recommencera, en doublant encore une fois le temps imparti. Le cycle peut durer eternellement. Les volumes mont es ainsi, o u les op erations seront tent ees jusqu' a ce que le serveur r eponde, sont dits mont es en dur. Dans le cas inverse, le processus appelant re coit une erreurd'entr ee/sortielorsqu'und epassementde temps majeur se produit. En raison du cache, cette condition d'erreur n'est pas propag ee au processus avant son prochain appel a la fonction write(2), aussi dans ce cas de montage, un programme ne peut jamais ^ etre certain qu'une op eration d' ecriture a r eussi. Monter en dur ou non est une question de go^ ut, mais d epend aussi des donn ees aux- quelles vous comptez acc eder par NFS. Par exemple, s'il s'agit de vos programmes X, vous ne souhaitez sans doute pas que votre session de travail se termine anorma- lement, uniquement parce que quelqu'un a momentan ement surcharg e le r eseau en lan cant sept copies de xv simultan ement, ou parce que la prise s'est d ebranch ee. Avec un montage en dur, vous serez s^ ur que votre machine attendra jusqu' a ce que le contact soit r etabli avec le serveur NFS. D'un autre c^ ot e, les donn ees non critiques, comme les partitions de News Usenet ou les archives FTP, ne n ecessitent pas de montage en dur, de sorte que les sessions ne restent pas en attente ind e niment en cas de panne r eseau ou d'arr^ et de la machine distante. Si votre r eseau est souvent surcharg e ou lent pour des raisons diverses, vous pouvez augmenter le d elai d'attente par l'option timeo, ou monter les volumes en dur, mais autorisez l'interruption des appels NFS (intr) pour ne pas rester bloqu e en cas de probl eme. G en eralement, le d emon mountd conservera d'une mani ere ou d'une autre une trace des r epertoires qui ont et e mont es, et par quels h^ otes. Cette information peut ^ etre ach ee par la commande showmount, qui fait partie du paquetage serveur NFS. La
  • 181.
    164 Chapitre 11.NFS, le syst eme de chiers par r eseau version Linux, toutefois, n'impl emente pas encore cette possibilit e. 11.3 Les d emons NFS Si vous d esirez o rir un service NFS a d'autres h^ otes, vous devrez lancer les d emons nfsd et mountd sur votre machine. En tant que programmes RPC, ils ne sont pas g er es par inetd, mais sont ex ecut es au d emarrage du syst eme et enregistr es par le portmapper. Par cons equent, vous devez vous assurer qu'ils sont bien appel es apr es rpc.portmap. G en eralement, on rajoute les lignes suivantes dans le script rc.inet2: if [ -x /usr/sbin/rpc.mountd ]; then /usr/sbin/rpc.mountd; echo -n mountd fi if [ -x /usr/sbin/rpc.nfsd ]; then /usr/sbin/rpc.nfsd; echo -n nfsd fi Les informations sur les propri etaires des chiers qu'un d emon NFS fournit a ses clients ne contiennent en principe que les valeurs num eriques d'utilisateur et de groupe. Si le client et le serveur associent les m^ emes valeurs aux m^ emes personnes et groupes, on dit qu'ils partagent le m^ eme espace. C'est par exemple le cas lorsque vous utilisez NIS pour distribuer les informations passwd a toutes les machines de votre r eseau. Toutefois en certaines occasions ces valeurs ne correspondent pas. Plut^ ot que de mo- di er la con guration de l'un ou l'autre syst eme, vous pouvez employer le d emon ugidd, qui s'occupera de parer au probl eme. Gr^ ace a l'option map daemon expliqu ee plus loin, vous pouvez demander a nfsd de faire correspondre les valeurs utilisateur et groupe du serveur a celles du client, a condition que ugidd soit en fonctionnement sur ce dernier. Il s'agit d'un serveur RPC qui est lanc e depuis rc.inet2, exactement comme nfsd et mountd. if [ -x /usr/sbin/rpc.ugidd ]; then /usr/sbin/rpc.ugidd; echo -n ugidd fi 11.4 Le chier exports Pour chaque client, le serveur d etermine le type d'acc es autoris e. Cet acc es est sp eci e dans le chier /etc/exports, qui liste les r epertoires partag es. Par d efaut, mountd interdira a tout le monde de monter des r epertoires de l'h^ ote local, ce qui est une attitude plut^ ot sens ee. Pour autoriser un ou plusieurs h^ otes a monter
  • 182.
    11.4. Le chierexports 165 un r epertoire par NFS, ce r epertoire doit ^ etre export e, c'est- a-dire indiqu e dans le chier exports. En voici un exemple: # Fichier exports de kro.bibine.com /home trappiste(rw) gueuze(rw) leffe(rw) /usr/X11R6 trappiste(ro) gueuze(ro) leffe(ro) /usr/TeX trappiste(ro) gueuze(ro) leffe(ro) / trappiste(rw,no_root_squash) /home/ftp (ro) Chaque ligne d e nit un r epertoire et les h^ otes autoris es a le monter. Les noms de machines sont en g en eral pleinement quali es, mais peuvent egalement contenir les caract eres g en eriques * et?, qui ont la m^ eme signi cation que dans le shell Bourne. Par exemple, lab*.foo.com correspondra aussi bien a lab01.toto.com qu' a la- beur.toto.com. Si aucun nom de machine n'est pr ecis e, comme pour le r epertoire /home/ftp dans l'exemple ci-dessus, n'importe quel h^ ote pourra monter ce volume. Lorsqu'il v eri e les permissions pour un client donn e, mountd recherchera son nom par l'appel gethostbyaddr(2). Avec le DNS, cet appel retournera le nom canonique, aussi vous devez faire attention a ne pas utiliser d'alias dans le chier exports. Sans DNS, le nom retourn e est le premier trouv e dans le chier hosts, qui correspond a l'adresse du client. Le nom de machine est suivi par une liste facultative de drapeaux, s epar es par des virgules, entre parenth eses. Ils peuvent prendre les valeurs suivantes: insecure Autorise des acc es non authenti es. unix-rpc Demande l'authenti cation RPC. Cela n ecessite simplement que la requ^ ete provienne d'un port r eserv e (un port dont le num ero est inf erieur a 1024). C'est l'option par d efaut. secure-rpc Demande l'authenti cation RPC s ecuris ee. Ce n'est pas encore im- pl ement e; consultez la documentation de Sun pour plus de d etails. kerberos Demande l'authenti cation Kerberos. Cette option n'est pas encore impl ement ee; consultez la documentation du MIT pour plus de d e- tails sur le syst eme Kerberos. root squash Il s'agit d'une s ecurit e interdisant aux superutilisateurs des machines sp eci ees tout acc es sp ecial, en transformant les requ^ etes de l'utili- sateur 0 sur le client en utilisateur 65534 (-2) sur le serveur, qui correspond en principe a l'utilisateur nobody. no root squash Ne change rien pour les requ^ etes de superutilisateurs. C'est l'option par d efaut. ro Monte la hi erarchie de chiers en lecture seule. C'est l'option par d efaut.
  • 183.
    166 Chapitre 11.NFS, le syst eme de chiers par r eseau rw Monte la hi erarchie de chiers en lecture et ecriture. link relative Convertit les liens symboliques absolus (dont le contenu commence par un slash) en liens relatifs en ajoutant ../ autant de fois que n e- cessaire pour aller du r epertoire contenant le lien a la racine sur le serveur. Cette option n'a de sens que lorsque la totalit e d'un syst eme de chiers d'un h^ ote est mont e; autrement certains liens peuvent pointer nulle part, ou pis, vers des chiers vers lesquels ils n'auraient jamais d^ u pointer. Cette option est en service par d efaut. link absolute Laisse tous les liens symboliques inchang es (le comportement normal des serveurs NFS fournis par Sun). map identity Cette option indique au serveur de consid erer que le client utilise les m^ emes identi cateurs d'utilisateurs et de groupes que le serveur. Cette opion est en service par d efaut. map daemon Indique que les clients et le serveur n'ont pas les m^ emes valeurs d'identi cation utilisateurs et groupes. Le d emon nfsd construira alors une liste de correspondance entre les deux machines en interro- geant le d emon ugidd du client. Une erreur de syntaxe dans le chier exports sera rapport ee via la ( ( facilit e ) ) daemon de syslogd, au niveau notice, chaque fois que nfsd ou mountd sont lanc es. Notez que les noms de machines correspondant aux adresses IP des clients sont ob- tenus par recherche inverse, aussi le resolver doit ^ etre con gur e proprement. Si vous employez BIND et ^ etes tr es concern es par la s ecurit e, vous devez employer l'option nospoof dans votre chier host.conf. 11.5 Montage automatique: l'automonteur Il n'est quelquefois pas raisonnable de monter tous les volumes NFS dont les utili- sateurs pourraient avoir besoin, soit en raison de leur grand nombre, soit parce que cela prendrait trop de temps au d emarrage du syst eme. On peut alors employer un automonteur. Il s'agit d'un d emon qui monte automatiquement, et de fa con trans- parente, tout volume NFS lorsque c'est n ecessaire, et le d emonte lorsqu'il n'a pas et e utilis e pendant un certain temps. L'une des possibilit es les plus int eressantes d'un automonteur, c'est de pouvoir monter un certain volume depuis plusieurs endroits dif- f erents. Par exemple, vous pouvez stocker des copies de vos programmes et chiers de con guration X11 sur deux ou trois h^ otes, et les faire utiliser par les autres machines via NFS. Avec un automonteur, vous pouvez sp eci er que les trois sont a monter sur /usr/X11R6; le programme tentera alors de monter n'importe lequel, jusqu' a ce que l'un des montages r eussisse.
  • 184.
    11.5. Montage automatique:l'automonteur 167 L'automonteur couramment utilis e sous Linux s'appelle amd. Il a et e ecrit par Jan- Simon Pendry et port e sous Linux par Mitch D'Souza. La version actuelle est amd-5.3. Le fonctionnement de amd d epassele cadre de ce guide. Pourun bon manuel, consultez les sources; elles contiennent un chier Texinfo avec des informations tr es d etaill ees.
  • 185.
    168 Chapitre 11.NFS, le syst eme de chiers par r eseau
  • 186.
    169 Chapitre 12 Ma^ triser TaylorUUCP UUCP fut d evelopp e vers la n des ann ees soixante-dix par Mike Lesk aux labo- ratoires ATT Bell pour permettre des transmissions sur les lignes t el ephoniques ordinaires. Puisque la plupart des personnes d esirant avoir le courrier electronique et les News Usenet a domicile communiquent par modem, UUCP est rest e tr es popu- laire. Bien qu'il en existe de tr es nombreuses impl ementations, sur une grande vari et e d'architectures et de syst emes d'exploitation, elles sont toutes compatibles entre elles. Toutefois, comme avec tout logiciel devenu ( ( standard ) ) au l des ann ees, il n'y a aucun UUCP que l'on pourrait appeler ( ( Le UUCP ) ), la r ef erence. Son evolution est permanente depuis que la premi ere version vit le jour en 1976. Actuellement, il y a deux types qui di erent dans leur support mat eriel et leur con guration. Plusieurs impl ementations existent pour chacun, qui comportent egalement des variantes. L'un s'appelle UUCP Version 2, et remonte a l'impl ementation de Mike Lesk, David A. Novitz et Greg Chesson en 1977. Bien que tr es ancienne, cette version est en- core souvent utilis ee. Ses impl ementations r ecentes o rent beaucoup du confort des nouvelles sp eci cations de UUCP. Le second fut d evelopp e en 1983 et on le nomme couramment BNU (Basic Networking Utilities), ou HoneyDanBer UUCP que l'on abr ege en HDB. Ce nom est d eriv e de celui des auteurs, P. Honeyman, D. A. Novitz et B. E. Redman. HDB a et e con cu pour parer a quelques d e ciences de UUCP Version 2. Par exemple, de nouveaux protocoles de transfert ont et e rajout es, et le r epertoire de spoule est divis e pour que chaque site avec lequel il y a du tra c UUCP poss ede son propre sous-r epertoire. L'impl ementation de UUCP qui est actuellement distribu ee avec Linux est Taylor UUCP 1.051, c'est celle dont nous allons traiter dans ce chapitre. Taylor UUCP version 1.05 est apparu en mai 1994. En plus des chiers de con guration traditionnels, il peut aussi ^ etre compil e pour utiliser un nouveau style, la ( ( con guration Taylor ) ). 1: Ecrit par Ian Taylor, Copyright c 1993-1994
  • 187.
    170 Chapitre 12.Ma^ triser Taylor UUCP Si vous ne disposez que de la version pr ec edente (1.04), les di erences etant minimes vous devriez pouvoir utiliser les renseignements contenus dans ce chapitre pour le con gurer. Dans la plupart des distributions de Linux, Taylor UUCP est fourni pr ecompil e pour la compatibilit e BNU, ou Taylor, ou les deux. La m ethode Taylor est bien plus exible et probablement plus facile a comprendre que les chiers de con guration BNU parfois assez obscurs, c'est donc celle-ci que nous allons d ecrire dans ce guide. Le but de ce chapitre n'est pas de vous donner une description exhaustive de tout ce que peut faire UUCP, mais plut^ ot de vous apporter de bonnes bases pour l'installation d'un site UUCP qui fonctionne. La premi ere section est une petite introduction sur la mani ere dont UUCP impl emente le transfert de chiers et l'ex ecution de commandes a distance. Si tout cela n'est pas nouveau pour vous, vous pouvez aller directement a la section ( ( Fichiers de con guration ) ), qui d etaille les di erents chiers utilis es pour la con guration de UUCP. Nous consid ererons toutefois que vous connaissez les programmes utilisateurs mis en jeu dans UUCP. Ce sont principalement uucp et uux; vous en trouverez la description dans le manuel en ligne. A c^ ot e de ces deux commandes accessibles a tout le monde, UUCP en contient beau- coup d'autres qui ne sont destin ees qu'aux t^ aches administratives. Elles servent a suivre le tra c UUCP, supprimer les vieux chiers de trace, ou calculer des statis- tiques. Aucun de ces programmes ne sera d ecrit ici car ils ne concernent pas direc- tement le fonctionnement de UUCP. De plus, ils sont tr es bien document es et tr es simples a utiliser. Il y a n eanmoins une troisi eme cat egorie de programmes, compre- nant le cur de UUCP: uucico (o u cico signi e copy-in copy-out, le programme de communications), et uuxqt, qui ex ecute les commandes re cues des syst emes distants. Ils feront l'objet de ce chapitre. Ceux qui ne trouveront pas ici tous les renseignements dont ils ont besoin devront se reporter a la documentation fournie avec Taylor UUCP. Elle est compos ee d'un ensemble de chiers Texinfo qui d ecrivent la con guration selon le sch ema Taylor, et est extr^ emement compl ete. Si vous voulez utiliser la con guration BNU (ou m^ eme la Version 2), il existe un excel- lent livre sur le sujet: Managing UUCP and Usenet ([ManagUUCP]). Vous trouverez egalement des informations tr es utiles dans le document Linux UUCP-HOWTO de Vince Skahan, post e r eguli erement dans comp.os.linux.answers, et disponible en version fran caise sur les sites di usant Linux en France. Usenet comprend egalement un forum d edi e aux discussions sur UUCP, qui s'ap- pelle comp.mail.uucp. Si vous avez des questions sp eci ques a Taylor UUCP, c'est l'endroit id eal pour les poser, plut^ ot que dans les groupes d edi es a Linux.
  • 188.
    12.1. Transferts UUCPet ex ecution a distance 171 12.1 Transferts UUCP et ex ecution a distance La notion de job2 est vitale pour la compr ehension d'UUCP. Chaque transfert de- mand e par un utilisateur via uucp ou uux s'appelle un job. Il est constitu e d'une commande a ex ecuter sur le syst eme distant, et un ensemble de chiers a transf erer entre les deux sites. L'une ou l'autre de ces deux parties peut ^ etre absente. Comme exemple, consid erons que vous avez tap e la commande suivante sur votre machine, qui demande a UUCP de copier le chier netguide.ps sur la machine pablo, puis ex ecute la commande lpr a n de l'imprimer: $ uux -r pablo!lpr !netguide.ps UUCP n'appelle g en eralement pas imm ediatement le syst eme distant pour ex ecuter un job (sinon vous pourriez tr es bien utiliser kermit). Il stocke la description du travail a e ectuer, ce qui s'appelle spouler. Le r epertoire dans lequel ces jobs sont temporai- rement stock es s'appelle par cons equent le r epertoire de spoule, et est g en eralement /var/spool/uucp. Dans notre exemple, la description de job contiendrait des infor- mations concernant la commande a e ectuer (lpr), l'utilisateur ayant demand e cette ex ecution, et quelques autres renseignements. En plus de cela, UUCP doit stocker le chier d'entr ee, netguide.ps. Le nom et l'emplacement exact de ces chiers spoul es peuvent varier, en fonction des options de compilation. En mode compatible HDB, UUCP les met en g en eral dans un sous-r epertoire de /var/spool/uucp du nom du site distant. En mode Taylor, il cr eera des sous-r epertoires sous le r epertoire de spoule sp eci que au site pour les di erents types de chiers. A intervalles r eguliers, UUCP appelle le syst eme distant. Lorsqu'une connexion est etablie, il transf ere les chiers d ecrits dans le job, plus tout chier d'entr ee. Les com- mandes ne seront pas ex ecut ees imm ediatement, mais juste apr es que la connexion est termin ee. C'est le r^ ole de uuxqt, qui prend egalement soin de renvoyer tout job destin e a un autre site. Pour distinguer les jobs les plus importants des autres, UUCP associe un grade a chacun. Il s'agit d'une simple lettre, allant de 0 a 9, de A a Z et de a a z, par ordre de priorit e d ecroissante. Le courrier est g en eralement spoul e avec le grade B ou C, alors que les News Usenet le sont avec le grade N. Plus le grade est elev e, plus le job sera transf er e avant les autres. Ces grades peuvent ^ etre assign es par l'option -g lors de l'appel de uucp ou uux. Vous pouvez aussi interdire le transfert en dessous d'un certain grade a certaines heures; c'est le grade maximum de spoule autoris e pendant une communication, dont la valeur par d efaut est z. Notez que la terminologie est assez ambigu e ici: un chier ne sera transf er e que si le grade est egal ou sup erieur a cette valeur. 2: Le mot job est mis a toutes les sauces en informatique; il serait vain de vouloir en imposer un autre, plus fran cais.
  • 189.
    172 Chapitre 12.Ma^ triser Taylor UUCP 12.1.1 Fonctionnement interne de uucico Pour comprendre pourquoi uucico a besoin de conna^ tre certaines choses, une br eve } description de la fa con dont il se connecte a un syst eme distant sera tr es utile. Lorsque vous ex ecutez uucico -s syst eme depuis la ligne de commandes, le programme doit d'abord r ealiser une connexion physique avec le correspondant. La m ethode d e- pend du type de liaison a employer; dans le cas d'une ligne t el ephonique par exemple, il doit trouver un modem, et le faire num eroter. Sur TCP, il doit appeler gethostby- name(3) pour convertir le nom en adresse IP, trouver quel port ouvrir, et lier cette adresse a la socket correspondante. Une fois la connexion etablie, il faut mettre en uvre une proc edure d'autorisation d'acc es. Elle est g en eralement constitu ee du classique couple login/mot de passe, et r ealis ee par les programmes habituels getty/login, ou bien lorsqu'il s'agit de sockets TCP, par uucico lui-m^ eme. Si l'autorisation d'entr ee est accord ee, la machine appel ee lance alors uucico. Sur la machine qui est appelante, le programme uucico est appel e ma^ tre, et celui de la machine appel ee se nomme esclave. Ensuite, vient le handshake (poign ee de main; ce qui est assez r ealiste puisque les deux programmes se pr esentent l'un a l'autre): le ma^ tre annonce son nom ainsi que certaines autres informations, l'esclave v eri e les permissions qui lui sont accord ees. Puis, si ce test est valid e, prend place la v eri cation d'un num ero de s equence d'ap- pel. Cette proc edure facultative permet de maintenir sur chaque site, un compte des connexions r eussies, ces comptes sont alors compar es. S'ils ne correspondent pas, la connexion est refus ee; ce qui permet d' eliminer les imposteurs. En n, les deux uucico tentent de se mettre d'accord sur un protocole de transfert, parmi ceux qu'ils ont en commun. C'est lui qui va d eterminer la fa con de transf erer les donn ees, tester les erreurs, g erer les retransmissions en cas de probl eme, etc. Il est n ecessaire de disposer de plusieurs protocoles en raison des di erents types de connexions possibles. Par exemple, les lignes de t el ephones n ecessitent un protocole tr es ( ( s^ ur ) ), car ce sont des liaisons de qualit e souvent m ediocre; alors que les trans- missions par TCP sont par essence ables et peuvent faire appel a un protocole moins regardant, et plus ecace. Apr es ce premier dialogue, la transmission peut commencer. Chaque c^ ot e met en route le pilote du protocole choisi, qui peut eventuellement e ectuer une s equence d'initialisation sp eci que suppl ementaire. Le ma^ tre envoie tous les chiers destin es au syst eme esclave en attente dans la queue, et dont le grade est susant. Lorsqu'il a termin e, il informe l'esclave qu'il a ni son travail et que la communication peut ^ etre coup ee. A ce moment, les r^ oles s'inversent: le ma^ tre devient esclave, et r eciproquement. Le nouveau ma^ tre envoie alors ses chiers, puis nalement les deux uucico s' echangent des messages indiquant la n des jobs et ferment la connexion. Nous n'entrerons pas plus dans le d etail dans ce guide: consultez soit les sources, soit tout bon ouvrage traitant du sujet. Vous trouverez aussi un document post e
  • 190.
    12.2. Fichiers decon guration 173 r eguli erement dans comp.mail.uucpsous le nom de uucp internals, d ecrivant chaque protocole support e par Taylor UUCP. 12.1.2 La ligne de commandes de uucico Cette section d ecrit les options les plus importantes support ees par le programme uucico. Sa page de manuel contient la liste compl ete, consultez-la si besoin est. -s syst eme Appelle syst eme, sauf en cas de restriction horaire. -S syst eme Appel forc e de syst eme, quelles que soient les conditions. -r1 Lance uucico en mode ma^ tre. C'est le mode par d efaut avec les options -s et -S. Utilis ee seule, cette option provoque l'appel tour a tour de tous les syst emes connus, sauf en cas de restriction. -r0 Lance uucico en mode esclave. C'est le mode par d efaut lorsque au- cune option -s ou -S n'est donn ee. Dans ce mode, soit l'entr ee et la sortie standard sont consid er ees comme etant connect ees a un port s erie, soit le port TCP doit ^ etre pr ecis e par l'option -p. -x type, -X type Met en route les traces de d eboguage du type sp eci e. Plusieurs types peuvent ^ etre donn es sous forme de liste s epar ee par des virgules. Les types suivants sont valides: abnormal, chat, handshake, uucp- proto, proto, port, con g, spooldir, execute, incoming et outgoing. Le mot cl e all les valide tous. Pour rester compatible avec les autres impl ementations de UUCP, on peut aussi sp eci er un nombre, ce qui valide alors le d eboguage pour les n premiers items de cette liste. Ces traces sont enregistr ees dans le chier Debug, situ e dans le r e- pertoire /var/spool/uucp. 12.2 Fichiers de con guration A la di erence des protocoles de transfert ordinaires, UUCP est destin e a fonction- ner enti erement automatiquement. Une fois qu'il est con gur e, il ne n ecessite pas d'intervention quotidienne de l'administrateur syst eme. Les informations n ecessaires pour ces transferts automatiques tiennent dans deux ou trois chiers de con guration r esidant dans le r epertoire /usr/lib/uucp, utilis es surtout lors d'appels sortants.
  • 191.
    174 Chapitre 12.Ma^ triser Taylor UUCP 12.2.1 Petite introduction a Taylor UUCP Dire que la con guration de UUCP est dicile est un euph emisme. C'est r eellement un sujet tou u, et le format souvent complexe et peu lisible des chiers de con gura- tion ne facilite pas les choses (bien que le format Taylor soit presque facile a lire en comparaison de ceux de HDB et Version 2). Pour vous donner une id ee de la mani ere dont tous ces chiers interagissent, nous vous pr esenterons les plus importants et donnerons des exemples pratiques. Nous n'allons pas entrer dans le d etail tout de suite; ce sera le r^ ole de chaque section de ce chapitre. Si vous d esirez con gurer UUCP sur votre machine, la meilleure solution sera de partir des exemples et de les adapter graduellement. Vous pouvez choisir soit ceux qui vont suivre, soit ceux fournis avec votre distribution de Linux. Tous les chiers d ecrits ici r esident dans /usr/lib/uucp ou un sous-r epertoire.Quelques distributions contiennent des binaires supportant a la fois les con gurations HDB et Taylor, et utilisent di erents sous-r epertoires pour chacune; il y aura en principe un chier README dans /usr/lib/uucp. Pour que UUCP fonctionne correctement, ces chiers doivent appartenir a l'utilisateur uucp. Certains contenant des mots de passe et des num eros de t el ephone, ils doivent avoir une permission d'acc es de 6003. Le chier de con guration central s'appelle /usr/lib/uucp/con g, et d etermine les param etres g en eraux. Le plus important d'entre eux (et pour l'instant, le seul) est le nom de votre site UUCP. A ( ( La bi ere virtuelle) ), leur passerelle UUCP est la machine gueuze: # /usr/lib/uucp/config - Fichier principal de configuration UUCP hostname gueuze Le suivant est le chier sys. Il contient toutes les informations sp eci ques aux sites auxquels vous ^ etes reli es par UUCP. Cela comprend le nom des machines et des infor- mations sur le lien lui-m^ eme, comme le num ero de t el ephone, par exemple. Une entr ee typique pour un site connect e par modem que nous appellerons pablo ressemblerait a ceci: # /usr/lib/uucp/sys - liste des voisins UUCP # syst eme: pablo system pablo time Any phone 123-456 port serial1 speed 38400 chat ogin: gueuze ssword: lorca 3: Bien que la plupart des commandes UUCP doivent ^ etre setuid uucp, vous devez faire tr es attention a ce que le programme uuchk ne le soit pas. Sinon, tous les utilisateurs auraient acc es aux mots de passe m^ eme si les chiers ont un mode de 600.
  • 192.
    12.2. Fichiers decon guration 175 Le mot cl e port d esigne le port a utiliser, et time les heures auxquelles il peut ^ etre appel e. La ligne chat d ecrit le script de dialogue n ecessaire pour permettre a uucico d'entrer dans le syst eme pablo; nous reviendrons sur ces scripts un peu plus loin. La ligne port indique simplement le nom d'une entr ee dans le chier port. Vous pouvez y mettre le nom qui vous pla^ t, tant que cette entr ee existe. Ce chier port contient les informations sp eci ques a la liaison. Pour les modems, il d ecrit le chier de p eriph erique a utiliser, la gamme des vitesses support ees, et le type de num eroteur connect e. L'entr ee ci-dessous d ecrit /dev/cua1 (COM 2), sur lequel est connect e un modem NakWell capable de supporter la vitesse de 38400 bps. Le nom du port est choisi de mani ere a correspondre a celui indiqu e dans le chier sys. # /usr/lib/uucp/port - ports UUCP # /dev/cua1 (COM2) port serial1 type modem device /dev/cua1 speed 38400 dialer nakwell Les informations relatives au syst eme num eroteur se trouvent dans un troisi eme - chier, dial. Pour chaque type, il contient la s equence de commandes n ecessaires pour appeler un site, avec un num ero de t el ephone donn e. L a encore, il s'agit d'un script de dialogue. Par exemple, l'entr ee pour le num eroteur NakWell pourrait ^ etre celle-ci: # /usr/lib/uucp/dial - num eroteurs # Modems NakWell dialer nakwell chat ATZ OK ATDTT CONNECT La ligne commen cant par chat indique la s equencede commandes a envoyerau modem, avec les r eponses a attendre, pour l'initialiser et le faire t el ephoner. Le programme uucico remplacera la s equence T par le num ero de t el ephone. Pour vous donner une id ee de la mani ere dont uucico traite ces chiers de con gura- tion, consid erons que vous avez tap e la commande: $ uucico -s pablo La premi ere chose que fait uucico est de chercher pablo dans le chier sys. Il voit alors dans l'entr ee correspondante qu'il doit utiliser le port serial1 pour etablir la connexion. Le chier port lui indique qu'il s'agit d'un port sur lequel est connect e un modem NakWell. Alors, uucico cherche dans le chier dial une entr ee d ecrivant ce modem NakWell, et lorsqu'il l'a trouv ee, ouvre le port s erie /dev/cua1 et ex ecute le dialogue de num ero- tation: ici, il envoie ATZ, attend la r eponse OK, etc. Lorsqu'il rencontre la cha^ ne T, il lui substitue le num ero de t el ephone (123{456) extrait du chier sys.
  • 193.
    176 Chapitre 12.Ma^ triser Taylor UUCP system port speed ... pablo 38400 serial1 dialer chat chat-fail ... nakwell ATZ .. BUSY port type speed device dialer ... serial1 modem 38400 /dev/cua1 nakwell Le chier sys Le chier port Le chier dial Fig. 12.1 - Interaction des chiers de con guration de Taylor UUCP.
  • 194.
    12.2. Fichiers decon guration 177 Apr es que le modem a retourn e CONNECT,la connexion est etablie et le dialogue modem est termin e; uucico retourne alors au chier sys et ex ecute le dialogue d'entr ee dans le syst eme. Dans notre exemple, il attendra l'invite login: puis enverra son nom d'utilisateur (neruda), attendra password: et r epondra par le mot de passe, lorca. Ensuite, la machine appel ee lancerason propreuucico. Les deux programmesentreront dans la phase de handshake d ecrite dans la section pr ec edente. La gure 12.1 symbolise les d ependances entre les divers chiers de con guration. 12.2.2 Informations a poss eder au pr ealable Avant de commencer a r ediger votre con guration, vous devez rassembler certaines informations qui vont ^ etre n ecessaires a UUCP. Tout d'abord, vous devrez d eterminer sur quel port s erie votre modem est connect e. G en eralement, les ports que MS-DOS nomme COM1 a COM4 correspondent sous Linux aux p eriph eriques /dev/cua0 a /dev/cua3. Beaucoup de distributions cr eent un lien nomm e /dev/modem vers le p eriph erique appropri e, et con gurent certains programmes de communication (kermit, minicom, seyon, etc.) pour qu'ils utilisent ce port. Dans ce cas, vous devrez aussi utiliser /dev/modem pour UUCP. La raison de ce lien, outre la facilit e de m emorisation du nom, est que les programmes e ectuant des appels sortants utilisent parfois des chiers de verrouillage pour signa- ler l'occupation d'un port s erie. Les noms de ces chiers sont la concat enation de la cha^ ne LCK.. et du nom du p eriph erique, par exemple LCK..cua1. Si les programmes utilisaient des noms di erents pour acc eder aux m^ emes p eriph eriques, ils ne reconna^ - traient pas les chiers de verrouillage des autres applications et le r esultat serait tr es hasardeux. Lorsque l'on programme les appels UUCP par une entr ee crontab, il faut absolument que cette convention soit respect ee. Pour plus de d etails sur la con guration des ports s erie, consultez le chapitre 4. Ensuite, vous devrez d eterminer a quelle vitesse votre modem et Linux communi- queront. Il faudra utiliser la vitesse de transfert e ective maximale que vous esp erez atteindre. Cette vitesse peut ^ etre largement sup erieure a celle a laquelle la connexion se fait: par exemple, beaucoup de modems envoient et recoivent des donn ees a 2400 bps, mais avec les protocoles de compression comme V.42bis, la vitesse de transfert peut atteindre 9600 bps. La documentation fournie avec votre appareil vous rensei- gnera mieux sur ce sujet. Bien entendu, il vous faudra vous procurer les num eros de t el ephone des syst emes a appeler. Vous aurez egalement besoin de l'identit e et de l' eventuel mot de passe a utiliser pour entrer dans ces machines4. 4: Si vous comptez juste essayer UUCP a titre exp erimental, procurez-vous le num ero de t el ephone d'un site archive pr es de chez vous. Notez le login et le mot de passe; ils sont publics pour que tout le monde puisse faire des t el echargements anonymement. Dans la plupart des cas, ce sont des noms du genre uucp/uucp ou nuucp/uucp.
  • 195.
    178 Chapitre 12.Ma^ triser Taylor UUCP Il vous faudra aussi savoir exactement comment entrer sur le syst eme convoit e. Devez- vous presser la touche BREAK avant que l'invite n'apparaisse? Est-ce qu'il ache login: ou bien user: ? Ces renseignements sont indispensables pour r ediger le script de dialogue. Si vous ne savez pas, ou si le script que vous utilisez habituellement ailleurs ne marchepas, appelez le site avecun programmede terminal ordinaire comme kermit ou minicom et notez exactement ce que vous devez taper. 12.2.3 Le nom du site Tout comme avec le r eseau TCP/IP, votre machine doit avoir un nom pour UUCP. Tant que vous ne faites que des transferts avec des sites que vous appelez directe- ment, ou sur un r eseau local, ce nom n'a pas besoin de correspondre a un quelconque standard5. Toutefois, si vous devez utiliser UUCP pour du courrier electronique ou les News Use- net, vous devez absolument utiliser un nom valide, par exemple en vous enregistrant dans les cartes UUCP. Le projet de cartes UUCP est d ecrit dans le chapitre 13. Beaucoup choisissent de prendre la premi ere composante de leur nom pleinement quali e comme nom UUCP. Supposons que l'adresse de votre machine soit mai- son.ici.com; votre nom UUCP serait alors maison. C'est un peu comme si les sites UUCP se connaissaient entre eux par leur pr enom. Bien s^ ur, vous pouvez choisir un nom totalement di erent de votre nom pleinement quali e, c'est un choix. N eanmoins, assurez-vous de ne jamais utiliser ce nom qui n'est pas quali e dans les adresses de courrier electronique, sauf s'il est enregistr e dans les cartes UUCP comme nom ociel6. Au mieux, un courrier exp edi e a un site UUCP non enregistr e partira aux oubliettes. Si vous utilisez un nom d ej a existant, le courrier sera rout e a ce site et causera des maux de t^ ete sans n a son administrateur. Par d efaut, UUCP utilise le nom positionn e par hostname comme nom de site UUCP. Il est en g en eralinitialis e dans le script /etc/rc.local. Si le nom choisi doit^ etredi erent, vous devrez utiliser l'option hostname du chier de con guration pour indiquer ce cas a uucico; nous allons voir ca bient^ ot. 5: La seule limitation est qu'il ne doit pas d epasser sept caract eres, a n de ne pas g^ ener certaines impl ementations fonctionnant sur des syst emes d'exploitation imposant de telles limites. Les noms plus longs sont souvent tronqu es par UUCP. Quelques versions les limitent m^ eme a six caract eres! 6: Le projet de cartes UUCP enregistre tous les noms d'h^ otes UUCP du monde entier et s'assure qu'ils sont bien tous uniques. En ce qui concerne la France, ce projet est abandonn e depuis 1994 et il en va de m^ eme dans de plus en plus de pays; le seul moyen d'obtenir une adresse valide est maintenant de passer par un domaine g er e par le DNS.
  • 196.
    12.2. Fichiers decon guration 179 12.2.4 Fichiers de con guration Taylor Revenons a notre con guration. Taylor UUCP obtient ses informations depuis les chiers suivants: con g Il s'agit du chier de con guration principal. Vous pouvez y d e nir votre nom de site UUCP. sys Ce chier d ecrit tous les sites connus de vous. Pour chacun, il sp eci e son nom, a quelles heures il est possible de l'appeler, quel num ero de t el ephone composer (si n ecessaire), quel p eriph erique utiliser, et comment se connecter. port Contient les entr ees d ecrivant chaque port disponible, avec la vitesse support ee et le num eroteur a utiliser. dial D ecrit les num eroteurs employ es pour etablir une communication t el ephonique. dialcode Contient les expansions pour les codes de num erotation symboliques. call Contient le nom d'utilisateur et le mot de passe a employer pour se connecter a un syst eme. Rarement utilis e. passwd Contient les noms et mots de passe que les syst emes doivent prendre pour se connecter chez vous. Ce chier n'est utilis e que lorsque uucico s'occupe lui-m^ eme de cette op eration. Ces chiers de con guration sont principalement compos es de lignes contenant des paires de mots cl es/valeurs. Un signe di ese introduit un commentaire qui s' etend jusqu' a la n de la ligne. Pour utiliser ce caract ereautrement que comme commentaire, il faut l' echapper par un backslash, c'est- a-dire le coder comme ceci: # Vous pouvez encore ajuster un bon nombre d'options gr^ ace a ces chiers. Nous ne d etaillerons pas tous les param etres possibles, mais uniquement les plus importants; vous devriez ensuite ^ etre capable de faire fonctionner une liaison UUCP par modem. Quelques sections suppl ementaires d ecriront les modi cations a e ectuer pour utiliser UUCP sur r eseau TCP/IP ou par une ligne s erie directe. Les documents Texinfo qui accompagnent le code source de Taylor UUCP d ecrivent tout cela en d etail. Votre con guration termin ee, vous pouvez la tester a l'aide de l'utilitaire uuchk (situ e dans /usr/lib/uucp). Il lit les chiers que vous avez r edig e avec soin et ache un rapport d etaill e des valeurs qui seront utilis ees pour chaque syst eme.
  • 197.
    180 Chapitre 12.Ma^ triser Taylor UUCP 12.2.5 Options de con guration g en erale | le chier con g Vous n'aurez en principe jamais besoin de ce chier pour autre chose que votre nom UUCP. Par d efaut, UUCP prend le nom que vous positionnez par la commande host- name, mais il est possible de le pr eciser ici (s'il doit ^ etre di erent, par exemple). Voici un exemple de chier con g: # /usr/lib/uucp/config - Fichier de configuration principal hostname gueuze Il est possible de positionner un certain nombre de param etres divers dans ce chier, comme le nom du r epertoire de spoule, ou les droits d'acc es pour l'entr ee UUCP anonyme. Ce dernier cas sera trait e dans une section ult erieure. 12.2.6 Informations sur les sites UUCP voisins | le chier sys Le chier sys d ecrit les machines qui sont connues de vous. Une entr ee est introduite par le mot cl e system; les lignes suivantes, jusqu' a la prochaine directive system, d etaillent les param etres sp eci ques a ce site. En g en eral, une telle entr ee d e nit le num ero de t el ephone et le script de dialogue. Les param etres pr ec edant la toute premi ere ligne system initialisent des valeurs par d efaut utilis ees pour tous les sites. Vous y mettrez en g en eral les param etres par d efaut des protocoles, s'il y a lieu. Nous allons maintenant voir en d etail les champs les plus importants de ce chier sys. Syst eme distant Le mot cl e system d esigne le syst eme distant. Vous devez sp eci er le nom correct, et non pas un alias de votre imagination, car uucico le v eri era par rapport a ce que cette machine lui indiquera lorsque vous serez connect e7. Chaque nom de syst eme ne doit appara^ tre qu'une fois. Si vous d esirez plusieurs con - gurations pour une m^ eme machine (plusieurs num eros de t el ephone, par exemple), vous pouvez employer le mot cl e alternate, d ecrit plus loin. Num ero de t el ephone Si le syst eme distant doit ^ etre atteint par une ligne t el ephonique, le champ phone indique le num ero que le modem doit appeler. Il peut contenir plusieurs codes sym- boliques qui seront interpr et es par la proc edure de num erotation de uucico; un signe 7: Les anciennes versions de UUCP Version 2 n'annoncent pas leur nom lorsqu'elles sont appel ees; n eanmoins les impl ementations r ecentes le font, ainsi que Taylor UUCP.
  • 198.
    12.2. Fichiers decon guration 181 d' egalit e (=) signi e d'attendre une seconde tonalit e, et un tiret (-) g en ere une pause d'une seconde. Par exemple, certaines installations t el ephoniques n ecessitent une at- tente entre certains pr e xes de num erotation sp eciaux et le num ero a appeler8. Toute cha^ ne alphab etique peut ^ etre utilis ee pour cacher des informations d ependantes du site, comme des pr e xes d'appel. Ces cha^ nes seront remplac ees par le num ero indiqu e dans le chier dialcode. Supposons que vous avez un chier dialcode comme celui-ci: # /usr/lib/uucp/dialcode - dialcode translation Sirius 024881 Pluton 035119 Avec ces translations, vous pouvez utiliser un num ero de t el ephone comme Pluton4722 dans le chier sys, ce qui rend les choses un peu plus lisibles. Port et vitesse Les options port et speed servent respectivement a s electionnerle p eriph erique a utiliser pour l'appel et la vitesse maximale a laquelle il doit ^ etre initialis e. Une entr ee system peut utiliser soit l'une, soit l'autre, ou les deux options ensemble. Lors de la recherche d'un p eriph erique dans le chier port, seuls ceux qui ont un nom correspondant et/ou une vitesse sont s electionn es. G en eralement, l'option speed est susante. Si vous n'avez qu'un port s erie d e ni dans port, uucico prendra toujours celui-l a de toute fa con; il sut donc d'indiquer a quelle vitesse l'utiliser. Si vous avez plusieurs modems, il n'est pas non plus n ecessaire d'indiquer un port particulier: si uucico trouve plusieurs possibilit es, il essaiera tour a tour chaque p eriph erique jusqu' a ce qu'il en trouve un qui soit libre. Le script de dialogue Nous avons d ej a rencontr e ce script de dialogue, qui indique a uucico comment entrer sur le syst eme distant. Il consiste en une liste de cha^ nes de caract eres attendues et envoy ees par le processus uucico local. Les cha^ nes a attendre et a envoyer sont ins er ees alternativement, et uucico rajoute automatiquement un retour-chariot (r) a la n de chaque envoi. Ainsi, un script de dialogue simple pourrait ressembler a ceci: ogin: gueuze ssword: grqt22 Vous noterez que les cha^ nes a attendre ne sont pas indiqu ees enti erement. Cela permet de s'assurer que, par exemple, Login: sera equivalent a login:, au cas o u. 8: La plupart des installations t el ephoniques priv ees n ecessitent que vous composiez le num ero 0 ou 9 pour obtenir l'ext erieur. On nous a indiqu e que cela s'appelait un code d'acc es secret. Sans rire...
  • 199.
    182 Chapitre 12.Ma^ triser Taylor UUCP Il est aussi possible d'obtenir une sorte d'ex ecution conditionnelle avec uucico, dans le cas o u le getty de la machine distante a besoin d'^ etre recycl e ou r einitialis e avant qu'il n'ache une invite. Pour cela, vous pouvez attacher un script secondaire a une cha^ ne d'attente, constitu e de tirets. Ce script secondairen'est ex ecut eque si l'attente echoue. Une utilisation possible consiste a envoyerun BREAK si le site distant n'ache aucune invite de login. L'exemple qui suit propose un script de dialogue g en eral, qui devrait aussi fonctionner s'il faut envoyer un retour-chariot pour r eveiller un peu la machine appel ee. Le premier argument vide indique qu'il ne faut rien attendre et envoyer directement la prochaine cha^ ne de caract eres. nrdrnc ogin:-BREAK-ogin: gueuze ssword: grqt22 Certaines s equences sp eciales peuvent appara^ tre dans le script de dialogue. La liste qui suit est un extrait des caract eres valides dans les cha^ nes d'attente: La cha^ ne vide. Elle indique a uucico de ne rien attendre, et de conti- nuer avec la prochaine cha^ ne a envoyer. t Le caract ere de tabulation. r Le caract ere retour-chariot. s Le caract ere espace. Vous en aurez besoin pour ins erer des espaces dans une cha^ ne de dialogue. n Le caract ere de saut de ligne. Le caract ere backslash (). Sur les cha^ nes a envoyer, les s equences d' echappement suivantes sont valides, en plus des pr ec edentes: EOT Caract ere de n de transmission (^D). BREAK ( ( Caract ere ) ) Break. c Suppression du rajout automatiquedu retour-charioten n de cha^ ne. d Pause d'une seconde. E Valide le test d' echo. Dans ce mode, uucico attend que l' echo de tout ce qu'il ecrit lui revienne avant de continuer le dialogue. C'est surtout utile pour les dialogues avec les modems (que nous rencontreronsplus loin). Par d efaut, ce mode est hors service. e Supprime le test d' echo.
  • 200.
    12.2. Fichiers decon guration 183 K Identique a BREAK. p Pause d'une fraction de seconde. Entr ees alternatives Il est parfois n ecessaire d'avoir plusieurs entr ees pour un m^ eme syst eme, par exemple s'il peut ^ etre joint par plusieurs lignes. Avec Taylor UUCP, vous pouvez r ealiser cela en d e nissant des entr ees alternatives, par le mot cl e alternate. Une entr ee alternative conserve tous les param etres de l'entr ee syst eme principale et ne modi e que ceux qui y sont express ement indiqu es. Elles sont plac ees a l'int erieur d'une entr ee syst eme et rep er ees par le mot alternate. Pour utiliser deux num eros de t el ephone pour la machine pablo, il sut de modi er son entr ee dans le chier sys de la mani ere suivante: system pablo phone 123-456 ... entr ees comme pr ec edemment ... alternate phone 123-455 En appelant pablo, uucico t el ephonera d'abord au 123-456, et si l'appel echoue, il essaiera l'alternative. Ici, cette entr ee alternative ne modi e que le num ero de t el e- phone. Restriction des horaires d'appel Taylor UUCP o re plusieurs fa cons de restreindre les horaires d'appel d'un syst eme distant. Ces restrictions peuvent correspondre a l'ouverture d'un service, ou aux tarifs t el ephoniques. Notez qu'il est toujours possible de passer outre en utilisant l'option -S ou -f de uucico. Par d efaut, Taylor UUCP interdira les connexions quelle que soit l'heure, il faut donc absolument indiquer les horaires autoris es d'une mani ere ou d'une autre dans le chier sys. Si vous ne d esirez aucune restriction, vous pouvez mettre la valeur Any dans la ligne time. La fa con la plus simple de limiter les horaires d'appel est d'employer l'entr ee time, suivie d'une cha^ ne constitu ee d'un jour et d'une heure. Le jour peut combiner les valeurs Mo, Tu, We, Th, Fr, Sa, Su (lundi, mardi... dimanche) ou bien Any (tous les jours), Never (jamais), ou Wk (tous les jours de la semaine). L'heure consiste en deux valeurs sur 24 heures, s epar ees par un tiret. La combinaison r esultante est ecrite sans aucune espace de s eparation. Plusieurs jours ou horaires peuvent ^ etre indiqu es en les s eparant par des virgules.
  • 201.
    184 Chapitre 12.Ma^ triser Taylor UUCP time MoWe0300-0730,Fr1805-2000 Cet exemple autorise les appels les lundis et mercredis de 3 heures a 7 heures 30, et les vendredis entre 18 heures 05 et 20 heures. Lorsqu'un champ horaire s' etend apr es minuit, par exemple Mo1830-0600, cela signi e lundi, entre minuit et 6 heures du matin et entre 18 heures 30 et minuit. Les mots cl es sp eciaux Any et Never signi ent respectivement que les appels pourront avoir lieu a toute heure, ou jamais. La commande time prend un second argument facultatif qui indique un d elai entre plusieurs tentatives, en minutes. Lorsqu'un appel echoue, uucico n'autorisera aucun autre appel de cette machine pendant un certain temps. Par exemple, si vous sp eci ez un intervalle de 5 minutes, il refusera d'appeler le syst eme distant pendant 5 minutes apr es le dernier appel infructueux. Par d efaut, ce temps est incr ement e chaque fois qu'un appel echoue. Le mot timegrade permet d'attacher un grade maximal a un horaire. Par exemple, supposons que vous avez une entr ee comme ceci dans l'entr ee system: timegrade N Wk1900-0700,SaSu timegrade C Any Elle autorise les jobs ayant un grade de C ou plus (g en eralement le courrier est spoul e avec le grade B ou C) a ^ etre transf er es chaque fois qu'une connexion est etablie, alors que les News (qui ont usuellement le grade N) ne seront echang ees que pendant la nuit et les ns de semaine. Tout comme time, la commande timegrade peut prendre un intervalle entre les tenta- tives d'appel comme troisi eme argument optionnel. Il y a toutefois un pi ege ici: tout d'abord, l'option timegrade ne s'applique qu' a ce que votre syst eme envoie; la machine distante peut toujours transf erer ce qu'elle veut. Vous pouvez employer l'option call-timegrade pour lui demander de n'envoyer que les jobs dont le grade est d'un certain niveau; mais il n'y a aucune garantie qu'elle ob eisse a cette requ^ ete9. Il faut savoir aussi que le champ timegrade n'est pas test e lorsque c'est le syst eme distant qui vous appelle, et les jobs en attente seront tous transf er es. Mais il peut, bien s^ ur, demander a votre uucico de se limiter a un certain grade, s'il sait le faire. 12.2.7 P eriph eriques disponibles | le chier port Le chier port renseigne uucico sur les p eriph eriques disponibles. Ce peut ^ etre des ports modem, aussi bien que d'autres types comme des lignes s erie directes ou des sockets TCP. 9: Si le syst eme distant utilise Taylor UUCP, il ob eira.
  • 202.
    12.2. Fichiers decon guration 185 Il est constitu e d'entr ees s epar ees commen cant par le mot cl e port suivi du nom qui le d esigne. Ce nom peut ^ etre utilis e dans le chier sys, pour la d eclaration port. Il n'a pas besoin d'^ etre unique; s'il y en a plusieurs, uucico les essaiera tous un par un jusqu' a trouver le premier qui est disponible. La commande port doit ^ etre imm ediatement suivie par la d eclaration type, qui in- dique de quel genre de port il s'agit. Les valeurs valides sont modem, direct pour les connexions directes et tcp pour les sockets TCP. Si la commande port est absente, c'est un modem qui sera consid er e par d efaut. Ici, nous ne d ecrirons que les ports modem; les deux autres types feront l'objet de sections s epar ees un peu plus loin. Pour les types modem et directs, vous devez sp eci er le p eriph erique a utiliser par la directive device. C'est g en eralement le nom d'un chier de p eriph erique du r epertoire /dev, comme /dev/cua110. Dans le cas d'un modem, l'entr ee d etermine aussi le type d'appareil connect e. Di e- rents types ou marques de modems peuvent demander une con guration particuli ere; m^ eme ceux d eclar es compatibles Hayes ne le sont pas toujours vraiment. Par cons e- quent, vous devez indiquer a uucico comment initialiser le modem et appeler le num ero de t el ephone d esir e. Taylor UUCP stocke les descriptions de tous les num eroteurs dans le chier dial. Pour utiliser l'un deux, il faut sp eci er son nom par la commande dialer. Quelquefois, vous aurez besoin d'utiliser un modem de di erentes fa cons, selon le ser- vice que vous appelez. Par exemple, certains modems archa ques ne comprennent rien lorsqu'un appareil r ecent tente de se connecter a 14400 bps ou plus; ils raccrochent la ligne au lieu d' etablir la connexion a 9600 bps, ou moins. Lorsque vous appelez de tels sites, vous devez con gurer votre modem di eremment pour que la commu- nication aboutisse. Pour cela, vous aurez besoin d'une entr ee additionnelle dans le chier port qui d esignera un num eroteur di erent. Vous pouvez donner a ce port un nom di erent, comme par exemple serial1-lent, et la directive port dans l'entr ee du syst eme vieuxsite dans le chier sys. Une meilleure m ethode consiste a faire la distinction des ports en fonction des vitesses support ees. Par exemple, les deux entr ees de la situation que nous venons d' evoquer pourraient ^ etre indiqu ees comme ceci: # Modem NakWell; connexions hautes vitesses port serial1 # nom du port type modem # port modem device /dev/cua1 # il s'agit de COM2 speed 38400 # vitesse support ee dialer nakwell # num eroteur normal # Modem NakWell; connexions basses vitesses port serial1 # nom du name 10: Certains utilisent les p eriph eriques ttyS* a la place, qui sont con cus sp ecialement pour les appels uniquement entrants, ce qui n'est pas une bonne id ee en raison des con its possibles et de la gestion fort di erente de ces p eriph eriques.
  • 203.
    186 Chapitre 12.Ma^ triser Taylor UUCP type modem # port modem device /dev/cua1 # il s'agit de COM2 speed 9600 # vitesse support ee dialer nakwell-lent # ne tente pas de connexion haute vitesse L'entr ee syst eme pour ce site vieuxsiteindiquerait maintenant serial1 comme nom de port, mais demanderait de ne l'utiliser qu' a 9600 bps. Le programme uucico utilisera alors la seconde entr ee automatiquement. Tous les sites restants qui ont une vitesse de 38400 bps dans l'entr ee syst eme seront appel es par la premi ere entr ee port. 12.2.8 Appeler un num ero | le chier dial Le chier dial d ecrit comment les di erents num eroteurs doivent ^ etre utilis es. Tra- ditionnellement, UUCP ne parle pas a des modems mais a des num eroteurs pour composer un num ero de t el ephone, car en des temps recul es la pratique courante etait d'avoir un appareil (tr es co^ uteux) destin e a la composition d'appels t el ephoniques, servant une banque de plusieurs modems. Aujourd'hui, la plupart des modems savent num eroter eux-m^ emes, aussi cette distinction devient assez obscure. N eanmoins, di erents num eroteurs ou modems n ecessitent chacun une con guration particuli ere. Vous pouvez d ecrire chaque type dans le chier dial, dont les entr ees commencent par la commande dialer suivie du nom du num eroteur. L'entr ee la plus importante est le script de dialogue, sp eci e par la commande chat. Il est similaire au script de connexion, et consiste en une s equence de cha^ nes que uucico envoie a l'appareil et les r eponses qu'il doit en attendre. On s'en sert le plus souvent pour remettre le modem a z ero ou dans un etat connu avant de composer le num ero; l'exemple qui suit montre une entr ee typique pour un appareil compatible Hayes: # Modem NakWell modem; connexions hautes vitesses dialer nakwell # nom du num eroteur chat ATZ OKr ATH1E0Q0 OKr ATDTT CONNECT chat-fail BUSY chat-fail ERROR chat-fail NOsCARRIER dtr-toggle true Le script de dialogue commence par , la cha^ ne d'attente vide. Par cons equent, uucico enverra directement la commande ATZ, qui est la commande Hayes de remise a z ero. Il attend ensuite la r eponse OK et envoie la commande suivante, qui sup- prime l' echo local et initialise certains registres. Apr es que le modem a encore une fois r epondu OK, uucico lui envoie la commande de num erotation ATDT. La s equence d' echappement T sera remplac ee par le num ero de t el ephone pris dans le chier sys. Ensuite, uucico attend que le modem lui ait annonc e que la connexion est etablie par la cha^ ne CONNECT. Souvent, la communication ne peut pas s' etablir, si par exemple la ligne de l'autre syst eme est occup ee. Dans ce cas, le modem renvoie un message d'erreur indiquant la
  • 204.
    12.2. Fichiers decon guration 187 situation. Les scripts de dialogue ne sont pas capables de d etecter de tels messages; uucico continuera l'attente jusqu' a ce que le temps imparti soit ecoul e. Le chier de trace de UUCP indiquera alors le message ( ( timed out in chat script ) ) au lieu de la raison r eelle de l' echec. Toutefois, Taylor UUCP vous permet d'informer uucico de ces messagesd'erreur par la commande chat-fail que nous avonsvue plus haut. Lorsqu'il d etecte une telle situation, il arr^ ete aussit^ ot l'appel, et enregistre le message dans le chier de trace de UUCP. La derni ere commande de l'exemple ci-dessus indique a UUCP de basculer l' etat de la ligne DTR avant de commencer le dialogue. Normalement, le pilote des ports s erie monte le signal DTR (Data Terminal Ready) lorsqu'un processus ouvre le port, pour indiquer au modem qui y est connect e que quelqu'un veut lui parler. Avec le mot cl e dtr-toggle, la DTR sera baiss ee, puis remont ee apr es un petit d elai. Beaucoup de modems modernes peuvent ^ etre con gur es pour reconna^ tre cette manipulation et e ectuer di erentes actions, comme raccrocher la ligne, passer en mode commandes ou se remettre a z ero11. 12.2.9 UUCP sur TCP Aussi absurde que cela puisse para^ tre, utiliser UUCP pour transf erer des donn ees par un r eseau TCP/IP n'est pas une mauvaise id ee du tout, particuli erement lors de gros transferts comme les News Usenet. Sur les liens TCP, les News sont g en eralement echang ees par le protocole NNTP, dans lequel les articles sont envoy es un par un, sans aucune compression ou autre optimisation. Bien que parfaitement adapt es aux grands sites poss edant plusieurs sources concurrentes et connect es par des lignes tr es rapides, cette technique est tr es peu ecace pour les petits sites qui re coivent leurs donn ees par des connexions tr es lentes comme ISDN (NUM ERIS en France). Ces sites pr ef ereront alors allier les avantages du r eseau TCP/IP avec ceux des echanges de gros chiers compress es comme c'est le cas par les liaisons t el ephoniques et UUCP. Dans le chier sys, on indique qu'un syst eme doit ^ etre appel e par TCP de la mani ere suivante: system gmu address news.groucho.edu time Any port tcp-conn chat ogin: gueuze word: clouseau La commande address donne l'adresse IP de l'h^ ote ou bien son nom pleinement qua- li e. L'entr ee correspondante dans le chier port sera alors: port tcp-conn type tcp service 540 11: Certains modems bon march e n'appr ecient pas du tout, en revanche.
  • 205.
    188 Chapitre 12.Ma^ triser Taylor UUCP Cette entr ee indique qu'il faudra utiliser une connexion TCP lorsqu'une entr ee du chier sys r ef erence tcp-conn, et que uucico devra demander le port 540 sur le syst eme distant. Il s'agit du num ero de port par d efaut pour le service UUCP. Au lieu de ce num ero, vous pouvez aussi donner le nom symbolique qui lui est associ e dans le chier /etc/services, c'est en g en eral uucpd. 12.2.10 Utiliser une connexion directe Supposons que vous poss edez une liaison sp ecialis ee reliant directement votre syst eme gueuze a la machine minus. Comme dans le cas d'un modem, vous devez r ediger une entr ee dans le chier sys. La commande port identi e le port s erie sur lequel minus est connect ee. system minus time Any port direct1 speed 38400 chat ogin: cathcart word: catch22 Dans le chier port, vous devez d ecrire le port s erie, mais une entr ee dialer n'est pas n ecessaire puisqu'il n'y a aucun num ero de t el ephone a composer. port direct1 type direct speed 38400 device /dev/ttyS1 12.3 Les erreurs a eviter | s ecurit e sous UUCP 12.3.1 Ex ecution de commandes UUCP est destin e a copier des chiers d'un syst eme a un autre, et a demander l'ex e- cution de certaines commandes sur des machines distantes. Bien s^ ur, en tant qu'ad- ministrateur syst eme vous voudrez avoir le contr^ ole des droits accord es aux autres machines: les autoriser a ex ecuter des commandes chez vous est une tr es mauvaise id ee. Par d efaut, les seules commandes que Taylor UUCP autorise aux autres machines sont rmail et rnews, qui servent a l' echange du courrier electronique et des News Usenet par UUCP. Le chemin de recherche par d efaut utilis e par uuxqt est d etermin e lors de la compilation du programme, et contient g en eralement /bin, /usr/bin et /usr/local/bin. Pour changer l'ensemble des commandes attribu ees a un syst eme donn e, vous pouvez utiliser le mot cl e commands dans le chier sys. De m^ eme, le chemin de recherche peut
  • 206.
    12.3. Les erreurs a eviter | s ecurit e sous UUCP 189 ^ etre modi e par la d eclaration command-path. Vous pouvez par exemple autoriser la machine pablo a ex ecuter la commande rsmtp en plus de rmail et rnews12 : system pablo ... commands rmail rnews rsmtp 12.3.2 Transferts de chiers Taylor UUCP permet aussi de ma^ triser les chiers transf er es. Au pis, vous pouvez carr ement les interdire, en mettant request a la valeur no; aucun syst eme ne pourra alors demander un transfert de chiers, quelle que soit la direction. De m^ eme, vous pouvez interdire aux utilisateurs de transf erer des chiers avec un syst eme donn e en mettant transfer a no. Par d efaut, les utilisateurs de la machine locale comme du syst eme distant sont autoris es a transf erer des chiers. De plus, il est possible de con gurer les r epertoires mis en jeu. G en eralement, vous restreindrez l'acc es a une seule hi erarchie pour les syst emes distants, mais autoriserez vos utilisateurs a envoyer des chiers depuis leur r epertoire personnel. La plupart du temps, les utilisateurs distants ne seront autoris es a recevoir des donn ees que dans le r epertoire public destin e a UUCP, /var/spool/uucppublic. Il s'agit traditionnellement de l'endroit ou les chiers publics sont mis a disposition, un peu comme les serveurs FTP sur l'Internet. On l'indique souvent par le caract ere tilde. Taylor UUCP o re di erentes commandes pour con gurer les r epertoires d'envoi et de r eception. Ce sont: local-send, qui sp e cie la liste des r epertoires depuis lesquels un utilisateur peut envoyer des chiers; local-receive, qui indique la liste de r epertoires dans lesquels un utilisateur peut demander a recevoir les chiers; puis remote-send et remote-receive, qui ont le m^ eme r^ ole pour un syst eme distant. Voyons l'exemple suivant: system pablo ... local-send /home ~ local-receive /home ~/receive remote-send ~ !~/incoming !~/receive remote-receive ~/incoming La commande local-send autorise les utilisateurs de votre machine a envoyer n'importe quel chier a partir du r epertoire /home et du r epertoire UUCP public de pablo. La commande local-receive leur permet de recevoir des donn ees soit dans le r epertoire receive de uucppublic, soit dans n'importe quel r epertoire a partir de /home. La direc- tive remote-send autorisepablo a demander des chiers depuis /var/spool/uucppublic, sauf a partir de incoming et receive. C'est le point d'exclamation qui indique cette 12: Le programme rsmtp sert a d elivrer le courrier electronique par lots SMTP. Nous d ecrirons cette technique dans les chapitres consacr es au courrier.
  • 207.
    190 Chapitre 12.Ma^ triser Taylor UUCP n egation a uucico. En n, la derni ere ligne autorise pablo a envoyer n'importe quel chier dans le r epertoire incoming. Le plus gros probl eme des transferts UUCP est que les chiers ne peuvent ^ etre re cus que si les r epertoires de destination sont accessibles en ecriture par tout le monde. Cela peut inciter certains utilisateurs a tendre des pi eges a d'autres, mais il n'y a aucun moyen d' eviter cela, a moins d'interdire purement et simplement tout transfert de chier par UUCP. 12.3.3 Relais UUCP o re un m ecanisme permettant de demander a d'autres machines de transf erer des chiers pour vous. Cela permet par exemple de demander a la machine truc de r ecup erer un chier sur bidule pour vous et de vous l'envoyer. Voici la commande correspondante: $ uucp -r truc!bidule!~/find-ls.gz ~/bidule.liste.gz Cette technique faisant passer des jobs a travers plusieurs syst emes s'appelle le relais, ou encore le forwarding. Dans l'exemple ci-dessus, elle est employ eecar truca un acc es UUCP sur machin, mais votre syst eme n'en a pas. Mais en tant qu'administrateur, vous devrez limiter cette possibilit e sur votre syst eme a quelques sites dans lesquels vous avez une pleine con ance, pour eviter que certains ne passent par vous pour t el echarger la derni ere version de X11R6 et vous ruiner en notes de t el ephone. Par d efaut, Taylor UUCP interdit tout relais. Pour l'autoriser a un syst eme donn e, vous disposez de la commande forward; qui sp eci e une liste de sites qui auront le droit de vous demander de ramener des chiers pour eux. Par exemple, l'administrateur du syst eme truc devra ajouter la ligne suivante dans son chier sys pour autoriser pablo a demander des chiers sur la machine bidule: #################### # pablo system pablo ... forward bidule #################### # bidule system bidule ... forward-to pablo L'entr ee forward-to pour bidule est n ecessaire de sorte que tout chier qu'il retourne soit pass e a pablo, sinon UUCP le rejetterait. Cette entr ee utilise une variante de la commande forward qui permet a bidule d'envoyer des chiers a pablo par l'interm e- diaire de truc, et uniquement dans ce sens. Pour autoriser le relais vers n'importe quel syst eme, il faut utiliser le mot cl e sp ecial ANY (les majuscules sont obligatoires).
  • 208.
    12.4. Con gurervotre syst eme en serveur UUCP 191 12.4 Con gurer votre syst eme en serveur UUCP Si vous d esirez que votre site puisse ^ etre appel e, vous devez en autoriser l'acc es par les ports s erie et con gurer quelques chiers syst eme pour o rir des comptes UUCP. Nous allons d ecrire la marche a suivre. 12.4.1 Con guration de getty Si vous voulez utiliser une ligne s erie pour recevoir des appels entrants, vous devrez mettre en service un processus getty sur ce port. Toutefois, certaines impl ementations du programme getty ne sont pas tr es adapt ees a cet usage, car vous voudrez sans doute pouvoir egalement e ectuer des appels sortants par le m^ eme port s erie lorsque la ligne est libre; il faudra par cons equent que ce p eriph erique puisse ^ etre partag e aussi bien par getty que par des programmes de communication comme uucico ou minicom. Le syst eme Linux, a l'image de bien d'autres impl ementations Unix modernes, sait g erer cette situation, n eanmoins beaucoup utilisent encore, m^ eme sous Linux, des arti ces a l'ancienne mode. Nous n'entrerons pas plus dans le d etail, qui d epasserait vite le cadre de ce chapitre; pour plus d'informations sur ce sujet, consultez par exemple le document Linux SE- RIAL HOWTO par Grag Hankins, et les di erentes pages de manuel des di erentes impl ementations de getty. Nous consid ererons donc a partir de maintenant que votre syst eme et le modem sont correctement con gur es pour que la machine soit accessible. 12.4.2 O rir des comptes UUCP Vous allez donc avoir a cr eer des comptes utilisateur qui permettent aux sites distants d'entrer dans votre syst eme et d' etablir une connexion UUCP. G en eralement,on ouvre un compte par syst eme appelant, avec un nom permettant de mettre en evidence qu'il ne s'agit pas d'un utilisateur ordinaire. Par exemple, la machine pablo se connectera sous le nom d'utilisateur Upablo ou uupablo. Dans le cas des machines se connectant par le port s erie, il faut ajouter ces comptes au chier des mots de passe /etc/passwd. Une bonne pratique consiste a mettre tous les comptes UUCP dans un groupe sp ecial comme, par exemple, uuguest. Le r epertoire personnel doit ^ etre le r epertoire public /var/spool/uucppublic ; et le shell doit ^ etre le programme uucico. Si vous utilisez les mots de passe shadow, vous pourrez sans doute ouvrir ces comptes par la commande useradd: # useradd -d /var/spool/uucppublic -G uuguest -s /usr/lib/uucp/uucico uupablo
  • 209.
    192 Chapitre 12.Ma^ triser Taylor UUCP Sinon, il vous faudra probablement le faire manuellement, en editant /etc/passwd pour y rajouter une ligne comme dans l'exemple suivant, o u 5000 et 150 sont les num eros identi cateurs de l'utilisateur uupablo et du groupe uuguest, respectivement. uupablo:x:5000:150:Compte UUCP:/var/spool/uucppublic:/usr/lib/uucp/uucico Ensuite, vous devrez assigner un mot de passe a ce compte par la commande passwd. Dans le cas des machines se connectant par TCP, vous devrez con gurer inetd pour qu'il g ere les connexions sur le port uucp. Pour cela, il faudra rajouter la ligne suivante dans le chier /etc/inetd.conf13 : uucp stream tcp nowait root /usr/sbin/tcpd /usr/lib/uucp/uucico -l L'option -l demande a uucico de r ealiser sa propre s equence d'acc es login/passwd.Il n'utilisera pas le chier /etc/passwd standard du syst eme, mais une base de donn ees de mots de passe qui lui est propre (/usr/lib/uucp/passwd) constitu ee de paires de noms d'utilisateurs et des mots de passe associ es: uupablo IslaNegra uulorca co'rdoba Bien entendu, ce chier doit appartenir a l'utilisateur uucp et avoir le mode 600 pour que personne ne puisse en prendre connaissance. Si cette m ethode vous pla^ t tellement que vous voudriez pouvoir l'utiliser aussi pour les acc es ordinaires par port s erie, vous devez savoir que c'est impossible actuellement, du moins sans un certain bricolage. Tout d'abord, vous devez passer l'option -u a uucico, suivi du nom d'utilisateur. Pour cela, vous devrez poss eder ou (probablement) bricoler un programme getty capable de passer ce nom d'utilisateur, et qui appelle uucico a la place de la commande standard /bin/login. Pour prot eger vos utilisateurs UUCP des intrus donnant un faux nom de syst eme et piratant tout leur courrier, vous devrez ajouter la commande called-login dans chaque entr ee du chier sys. Cette op eration est d ecrite dans la section suivante. 12.4.3 Protection contre les escrocs Le gros probl eme d'UUCP est que le syst eme appelant peut tricher sur son nom; il s'annonce apr es avoir pass e la premi ere authenti cation par mot de passe, mais la machine appel ee n'a aucun moyen de v eri er ce nom. Par cons equent, un petit malin pourrait se connecter sur son propre compte UUCP, et pr etendre ensuite qu'il est 13: Notez que g en eralement, tcpd a le mode 700, vous devrez donc l'invoquer sous root et non pas sous uucp.
  • 210.
    12.4. Con gurervotre syst eme en serveur UUCP 193 quelqu'un d'autre pour t el echarger le courrier destin e a cet autre site. C'est parti- culi erement dangereux dans le cas o u vous o rez des acc es UUCP anonymes, pour lesquels le mot de passe est public, ou absent. A moins que vous ne soyez absolument s^ ur de l'honn^ etet e de tous les sites qui vous appellent, vous devez vous prot eger de ce type d'imposture. Le rem ede consiste a demander a chaque syst eme d'utiliser un nom particulier pour la connexion, que vous sp eci ez par called-login dans le chier sys. Voici un exemple: system pablo ... options habituelles ... called-login uupablo Le r esultat est que chaque fois qu'un syst eme arrive et pr etend ^ etre pablo, uucico v eri era s'il est bien entr e sous le compte uupablo. Si ce n'est pas le cas, la connexion sera imm ediatement coup ee. Vous devez prendre l'habitude de con gurer cette v eri - cation chaque fois que vous ouvrez un nouveau compte UUCP; il est tr es important de le faire pour tous les syst emes, qu'ils appellent votre site ou non. Pour ceux qui ne vous appellent jamais, vous pourrez initialiser called-login a n'importe quoi, par exemple yapadappel. 12.4.4 Soyez parano | le test de s equence d'appels Le test de s equence d'appels est une autre m ethode d' elimination des imposteurs. M^ eme ceux qui trouvent noms et mots de passe a employer ne pourront que dicile- ment franchir cette barri ere. Avec ce syst eme, chaque machine conserve une trace du nombre de connexions etablies depuis le d ebut. Il est incr ement e a chaque connexion r eussie. Au d ebut de chaque communication, ces nombres sont echang es entre les deux syst emes pour ^ etre com- par es: s'ils ne correspondent pas, de quelque c^ ot e que ce soit, la communication sera imm ediatement coup ee. Si, de plus, le nombre initial est tir e au hasard, les pirates auront beaucoup de mal a deviner la bonne s equence. Mais ce test de s equence d'appels peut faire encore mieux: m^ eme si quelqu'un, par un miraculeux hasard, pirate votre compte UUCP en trouvant la bonne s equence et votre mot de passe, vous vous en rendrez compte imm ediatement. Car lorsqu'il se connectera a votre place, cela incr ementera le compte des appels. La prochaine connexion que vous tenterez vous sera alors refus ee, puisque vous ne serez plus en possession de la s equence correcte! Par cons equent, si vous avez valid e ce test, vous devez r eguli erement jeter un il aux chiers de trace pour d etecter les attaques possibles. Si votre syst eme rejette une connexion en raison d'une mauvaise s equence, uucico enregistre un message disant quelque chose comme ( ( Out of sequence call rejected ) ). Si c'est votre machine qui est refus ee lorsque c'est vous qui appelez, le message sera ( ( Handshake failed (RBADSEQ) ) ).
  • 211.
    194 Chapitre 12.Ma^ triser Taylor UUCP Pour mettre ce test en service, vous devez rajouter la commande suivante dans l'entr ee du syst eme en question: # Valide le test de s equence d'appels sequence true Vous devez aussi cr eer le chier contenant le num ero initial. Taylor UUCP le place dans un chier nomm e .Sequence dans le r epertoire de spoule du site distant. Il doit appartenir a l'utilisateur uucp et avoir le mode 600 (lecture et ecriture uniquement au propri etaire). Il vaut mieux initialiser ce nombre en se mettant d'accord avec l'autre site sur une valeur arbitraire; sinon quelqu'un pourrait arriver a le deviner en essayant di erentes valeurs plausibles. # cd /var/spool/uucp/pablo # echo 94316 .Sequence # chmod 600 .Sequence # chown uucp.uucp .Sequence Bien s^ ur, le site distant doit egalement valider ce test et commencer avec le m^ eme nombre que vous. 12.4.5 UUCP anonyme Pour proposer un acc es UUCP anonyme, vous devez con gurer un compte sp ecial comme nous l'avons d ecrit ci-dessus. La tradition veut que ce compte s'appelle uucp ou nuucp, et que son mot de passe soit uucp, si toutefois vous d ecidez d'en mettre un. De plus, vous devrez con gurer quelques options de s ecurit e pour les syst emes incon- nus. Par exemple, vous leur interdirez d'ex ecuter des commandes, y compris eventuel- lement rmail et rnews pour ne pas avoir d'ennuis. Mais vous ne pouvez pas indiquer ce fait dans une entr ee du chier sys puisque la commande system requiert le nom du syst eme, que vous ne connaissez pas. Taylor UUCP r esout ce probl eme par la commande unknown, qui peut ^ etre utilis ee dans le chier con g pour d esigner toute commande qui appara^ t d'ordinaire dans l'entr ee d'un syst eme: unknown remote-receive ~/incoming unknown remote-send ~/pub unknown max-remote-debug none unknown command-path /usr/lib/uucp/anon-bin unknown commands rmail L'exemple ci-dessus restreint les syst emes inconnus au t el echargement depuis le r e- pertoire pub, et a l'envoi de chiers dans le sous-r epertoire incoming de l'espace public /var/spool/uucppublic. La troisi eme ligne indique a uucico d'ignorer les requ^ etes de mise en route du d eboguage local (sinon un malin pourrait remplir votre disque dur
  • 212.
    12.5. Protocoles UUCPde bas niveau 195 de chiers de trace). Les deux derni eres lignes autorisent les syst emes inconnus a ex ecuter la commande rmail; mais le chemin de recherche est limit e a un r epertoire priv e nomm e anon-bin. Cela permet d'y installer une commande rmail sp eciale qui, par exemple, dirige tout courrier des sites anonymes vers la bo^ te aux lettres du superutilisateur. Cela autorise les utilisateurs anonymes a laisser un message a l'ad- ministrateur (qui ne pourra pas leur r epondre par ce m^ eme chemin, bien s^ ur), tout en interdisant aux personnes malintentionn ees de passer par l a pour distiller du courrier dans le monde entier. Pour valider l'UUCP anonyme, vous devez au moins avoir une directive unknown dans votre chier con g, sinon uucico rejettera tous les syst emes inconnus. 12.5 Protocoles UUCP de bas niveau Pour n egocier l' etablissement de la session et des transferts de chiers avec son corres- pondant, uucico utilise un ensemble de messages standardis es; c'est ce que l'on appelle couramment le protocole de haut niveau. Pendant la phase d'initialisation et de d e- connexion, ils sont simplement echang es sous forme de cha^ nes de caract eres ASCII. Toutefois, pendant le transfert des donn ees, un protocole additionnel, de bas niveau, est employ e a n d'assurer l'int egrit e des donn ees. Il est pratiquement transparent pour le protocole de haut niveau. 12.5.1 Pr esentation des protocoles Comme UUCP est employ e sur di erents types de connexions, comme les lignes s eries, TCP ou m^ eme X.25, il est n ecessaire d'avoir des protocoles adapt es a chaque cas. De plus, di erentes impl ementations de UUCP ont introduit divers protocoles qui font grosso modo la m^ eme chose. On peut classer ces protocoles en deux cat egories: ceux qui sont orient es ux et ceux qui sont orient es paquets. Les premiers transf erent un chier dans son int egralit e, en calculant eventuellement un checksum dessus. C'est extr^ emement ecace mais n ecessite une connexion tr es able, car a la moindre erreur il faut retransmettre tout le chier. Ce type de protocole est essentiellement utilis e sur des connexions TCP mais est totalement inadapt e pour des liaisons par lignes t el ephoniques. Bien que les modems modernes disposent de correction d'erreurs, ce n'est pas parfait, et il n'y en a pas entre l'appareil et l'ordinateur. Les protocolesde la seconde cat egoriedivisent le chier en plusieurs morceaux.Chaque paquet est envoy e et re cu s epar ement, un checksum est calcul e, et un acquittement de bonne r eception est retourn e a l'exp editeur, qui peut alors envoyer la partie suivante. Pour am eliorer l'ecacit e de cette m ethode, on a invent e des protocoles a fen^ etres variables, qui permettent l'envoi d'un petit nombre de paquets (une fen^ etre) sans attendre d'acquittement. Cela r eduit notablement les temps d'attente de uucico pen-
  • 213.
    196 Chapitre 12.Ma^ triser Taylor UUCP dant la transmission, mais les performances sont malgr e tout trop r eduites compar ees a celles de la premi ere cat egorie de protocoles, ce qui les rend peu adapt es a une utilisation sur TCP. Les caract eristiques de la liaison ont aussi une importance: quelquefois, il est impos- sible d'envoyer des caract eres sur 8 bits par une liaison s erie car un stupide serveur de terminaux supprime le huiti eme bit. Dans ce cas, il faut encoder tous ces caract eres, ce qui double presque la taille des donn ees a transmettre, bien que l' eventuelle com- pression r ealis ee par le mat eriel de transmission puisse aider un peu. Parmi les lignes correctes, capables de passer des caract eres sur 8 bits, on compte les liaisons TCP et la plupart des connexions par modem. Taylor UUCP dispose au moins des protocoles suivants: g C'est le protocole le plus courant et qui doit ^ etre compris par tous les programmes uucico. Il e ectue une correction d'erreurs et il est par cons equent adapt e aux lignes t el ephoniques de mauvaise qualit e. Ce protocole n ecessite une transmission sur 8 bits, c'est un protocole orient e paquets avec une technique de fen^ etrage. i C'est un protocole bidirectionnel, qui peut envoyer et recevoir des chiers en m^ eme temps. Il n ecessite une liaison bidirectionnelle sur 8 bits, il n'est compris pour l'instant que par Taylor UUCP. Il est extr^ emement ecace. t Destin e a l'usage sur les connexions TCP ou les liaisons sans au- cune erreur. Il utilise des paquets de 1024 octets et n ecessite une transmission 8 bits. e Semblable au protocole t, mais orient e ux. f Destin e aux connexions X.25. C'est un protocole orient e ux, mais qui peut fonctionner sur une transmission 7 bits. Tous les caract eres ayant le huiti eme bit positionn e sont encod es, ce qui le rend particu- li erement inecace. G Il s'agit de la version System V Release 4 du protocole g. Il est aussi compris par quelques autres impl ementations de UUCP. a Ce protocole ressemble a ZMODEM. Il n ecessite une transmission sur 8 bits, mais encode certains caract eres de contr^ ole comme XON et XOFF. 12.5.2 Optimisation du protocole de transmission Tous ces protocoles permettent d'ajuster certains de leurs param etrescomme les d elais d'attente, la taille des paquets, etc. G en eralement, les valeurs par d efaut fonctionnent
  • 214.
    12.5. Protocoles UUCPde bas niveau 197 correctement en des circonstances normales, mais il est des cas o u ils peuvent ^ etre inadapt es. Le protocole g, par exemple, emploie des fen^ etres de 1 a 7, et des tailles de paquet allant de 64 a 4096 par puissances de 214. Si votre ligne t el ephonique est si mauvaise que vous perdez plus de 5% des paquets, vous devrez probablement r eduire leur taille ainsi que celle de la fen^ etre. Toutefois, si votre liaison est excellente, augmenter la taille de ces paquets a 512 voire 1024 octets am eliorera l'ecacit e du protocole dans de grandes proportions. Taylor UUCP o re la commande protocol-parameter du chier sys, qui permet d'ajus- ter ces param etres selon vos besoins. Par exemple, pour passer la taille des paquets du prococole g a 512 lors de communications avec pablo, vous rajouterez: system pablo ... protocol-parameter g packet-size 512 Les di erents param etres accessibles varient d'un protocole a l'autre. Pour en avoir la liste compl ete, consultez la documentation fournie avec les sources de Taylor UUCP. 12.5.3 S election des protocoles Les diverses impl ementations de uucico ne connaissent pas toutes l'ensemble des pro- tocoles possibles, aussi, pendant la phase d'initialisation de la session, les deux c^ ot es doivent se mettre d'accord sur un protocole commun. Le ma^ tre propose a l'esclave une liste des protocoles dont il dispose en lui envoyant la s equence Pprotlist, et l'esclave fait son choix. En fonction du type de port utilis e (modem, TCP, direct), uucico composera une liste par d efaut des protocoles souhaitables. Pour les liaisons modem et directes, cette liste comprendra g en eralement i, a, g, G et j. Dans le cas de liaison TCP, ce sera t, e, i, a, g, G, j et f. Vous pouvez modi er cette liste par d efaut par la commande protocols, qui peut ^ etre sp eci ee dans une entr ee de syst eme aussi bien que dans une entr ee de port. Par exemple, vous pouvez editer l'entr ee modem de votre chier port comme ceci: port serial1 ... protocols igG Cela aurapour e et de forcer l'utilisation des protocoles i, g ou G pour toute connexion e ectu ee par ce port. Si le syst eme distant ne conna^ t aucun de ces protocoles, la communication echouera. 14: Beaucoup de binaires fournis avec les distributions Linux ont une fen^ etre par d efaut de 7 et des paquets de 128 octets.
  • 215.
    198 Chapitre 12.Ma^ triser Taylor UUCP 12.6 En cas de probl eme... Cette section tente de faire le tour des erreurs que vous pourrez rencontrer, et de sugg erer o u regarder pour trouver la solution au probl eme. Malgr e tout, nous avons rassembl e tout cela de t^ ete et il y a sans doute beaucoup d'autres choses susceptibles de ne pas marcher correctement. Dans tous les cas, validez le d eboguage par l'option -xall, et regardez attentivement la sortie obtenue dans le chier Debug cr e e dans le r epertoire de spoule. Vous devriez rapidement trouver la cause du probl eme. De plus, mettez toujours le haut-parleur de votre modem en service, cela permet de se rendre compte si la communication s' etablit. Avec un modem compatible Hayes, il vous sura de rajouter ( ( ATL1M1 OK ) ) dans le script de dialogue du chier dial. La premi ere v eri cation a e ectuer doit toujours concerner les permissions des chiers relatifs a UUCP. Le programme uucico doit ^ etre setuid uucp, et tous les chiers conte- nus dans /usr/lib/uucp, /var/spool/uucp et /var/spool/uucppublic doivent appartenir a cet utilisateur uucp. Il existe egalement des chiers cach es15 dans le r epertoire de spoule qui doivent appartenir a uucp. uucico persiste a acher( ( Wrong time to call ) ) : ce n'est pas l'heure d'appeler le site en question. Cela signi e probablement que vous n'avez pas sp eci e de commande time dans le chier sys, d etaillant quand le site peut ^ etre joint, ou qu'e ectivement il n'est pas l'heure d'appeler. Si time n'est pas l a, uucico consid ere que ce syst eme ne pourra jamais ^ etre appel e. uucico se plaint que le site est d ej a verrouill e (site already locked): cela signi e qu'il d etecte un chierde verrouillagepour le syst emeen question dans /var/spool/uucp. Il peut provenir d'un appel pr ec edent qui ne s'est pas termin e correctement. Toutefois, il s'agit le plus souvent d'un autre processus uucico qui est en train d'essayer d'appeler le site et qui est coinc e dans un script de dialogue, ou ailleurs. Si cet uucico n'arrive pas a etablir la liaison, tuez-le avec un signal HUP et supprimez tous les chiers de verrouillage qu'il pourrait oublier de nettoyer. J'arrive a me connecter au site distant, mais le script de dialogue echoue: regardez le texte que vous recevez de ce site. S'il est plein de parasites, ce peut ^ etre un probl eme de vitesse inadapt ee. Sinon, v eri ez qu'il correspond bien a ce qu'attend votre script de dialogue. Souvenez-vous que ce script commence sur une attente. Si vous attendez l'invite de login et que vous envoyez votre nom, mais que jamais l'autre c^ ot e ne vous demande le mot de passe, ins erez quelques d elais d'attente avant votre envoi, ou m^ eme entre chaque lettre; il se peut que l'envoi se fasse trop rapidement. Mon modem ne compose pas le num ero: s'il n'indique pas que la ligne DTR a et e mont ee lorsque uucico appelle, il se peut que vous n'avez pas indiqu e le bon p eriph erique. Sinon, v eri ez avec un emulateur de terminal que vous pouvez bien ecrire dessus. Si ca marche, mettez l' echo en service par E au d ebut du script de 15: C'est- a-dire dont le nom commence par un point, et qui ne sont pas ach es par la commande ls si on ne lui pr ecise pas.
  • 216.
    12.7. Les chiersde trace 199 dialogue modem. S'il ne fait pas l' echo de vos commandes pendant ce dialogue, v eri ez si la vitesse de votre ligne ne serait pas trop rapide ou trop lente pour ce modem. Si vous voyez l' echo, v eri ez la validation des r eponses du modem ou passez-les en mode num erique. V eri ez que le script de dialogue, lui-m^ eme, est correct. Souvenez-vous qu'il faut ecrire deux caract eres backslash pour en envoyer un au modem. Mon modem essaie de num eroter mais cela n'aboutit pas: ins erez une pause dans le num ero de t el ephone, particuli erement si vous appelez d'un central priv e. Essayez les deux types de num erotation: vocale, puis d ecimale. Et v eri ez le num ero de t el ephone... Mon chier de trace indique que je perds beaucoup de paquets: ce peut ^ etre un probl eme de vitesse. Si la liaison entre votre ordinateur et votre modem est plus lente que celle a laquelle la communication s'est etablie, rem ediez a cette situation. Il se peut que votre equipement soit trop lent pour suivre le nombre d'interruptions g en er ees par les hautes vitesses. Dans ce cas, il faut employer un circuit NSC 16550A sur votre port s erie. Vous devez egalement v eri er que le contr^ ole de ux mat eriel est en service, tant du c^ ot e du syst eme que sur le modem. Taylor UUCP n'a rien de pr evu pour valider ce contr^ ole de ux, vous devez donc le faire explicitement depuis le chier rc.serial (par exemple) en utilisant cette com- mande: $ stty crtscts /dev/cua3 J'entre dans le syst eme mais le handshake echoue: les causes peuvent ^ etre nombreuses. Le chier de trace vous sera d'un pr ecieux secours. Regardez quels pro- tocoles o re le site distant (il doit envoyer la cha^ ne Pprotlist ). Il se peut que vous n'en ayez aucun en commun (avez-vous s electionn e des protocoles sp eciaux dans les chiers sys ou port?). Si le syst eme distant envoie RLCK, c'est qu'il y a l a-bas un chier de verrouillage vous concernant. Si ce n'est pas parce que vous y ^ etes d ej a connect e par une autre ligne, demandez a son administrateur qu'il corrige cette erreur. S'il envoie RBADSEQ, c'est que l'autre c^ ot e a valid e le test de s equence d'appels pour votre site, mais que les valeurs ne correspondent pas. S'il envoie RLOGIN, c'est que vous n'^ etes pas autoris e a vous connecter sous ce nom d'utilisateur. 12.7 Les chiers de trace Lorsque l'on compile Taylor UUCP en choisissant les traces de style Taylor, cela ne donne que trois chiers globaux, chacun r esidant dans le r epertoire spoule. Le chier principal s'appelle Log et contient toutes les informations concernant les connexions etablies et les chiers transf er es. Voici un extrait de ce que cela peut donner (apr es reformatage pour que les lignes ne d ebordent pas de la page...):
  • 217.
    200 Chapitre 12.Ma^ triser Taylor UUCP uucico pablo - (1994-05-28 17:15:01.66 539) Calling system pablo (port cua3) uucico pablo - (1994-05-28 17:15:39.25 539) Login successful uucico pablo - (1994-05-28 17:15:39.90 539) Handshake successful (protocol 'g' packet size 1024 window 7) uucico pablo postmaster (1994-05-28 17:15:43.65 539) Receiving D.pabloB04aj uucico pablo postmaster (1994-05-28 17:15:46.51 539) Receiving X.pabloX04ai uucico pablo postmaster (1994-05-28 17:15:48.91 539) Receiving D.pabloB04at uucico pablo postmaster (1994-05-28 17:15:51.52 539) Receiving X.pabloX04as uucico pablo postmaster (1994-05-28 17:15:54.01 539) Receiving D.pabloB04c2 uucico pablo postmaster (1994-05-28 17:15:57.17 539) Receiving X.pabloX04c1 uucico pablo - (1994-05-28 17:15:59.05 539) Protocol 'g' packets: sent 15, resent 0, received 32 uucico pablo - (1994-05-28 17:16:02.50 539) Call complete (26 seconds) uuxqt pablo postmaster (1994-05-28 17:16:11.41 546) Executing X.pabloX04ai (rmail okir) uuxqt pablo postmaster (1994-05-28 17:16:13.30 546) Executing X.pabloX04as (rmail okir) uuxqt pablo postmaster (1994-05-28 17:16:13.51 546) Executing X.pabloX04c1 (rmail okir) Le chier suivant, par ordre d'importance, s'appelle Stats et indique les statistiques des transferts de donn ees. La section de Stats correspondant au chier de trace ci- dessus ressemble a celle-ci (l a encore, les lignes ont et e reformat ees): postmaster pablo (1994-05-28 17:15:44.78) received 1714 bytes in 1.802 seconds (951 bytes/sec) postmaster pablo (1994-05-28 17:15:46.66) received 57 bytes in 0.634 seconds (89 bytes/sec) postmaster pablo (1994-05-28 17:15:49.91) received 1898 bytes in 1.599 seconds (1186 bytes/sec) postmaster pablo (1994-05-28 17:15:51.67) received 65 bytes in 0.555 seconds (117 bytes/sec) postmaster pablo (1994-05-28 17:15:55.71) received 3217 bytes in 2.254 seconds (1427 bytes/sec) postmaster pablo (1994-05-28 17:15:57.31) received 65 bytes in 0.590 seconds (110 bytes/sec) Le troisi eme chier s'appelle Debug. C'est l a que sont enregistr ees les informations de d eboguage lorsqu'il est mis en service. Vous devez vous assurer que ce chier a le mode 600, car en fonction du niveau de d eboguage choisi, il peut contenir les mots de passe utilis es pour toutes les connexions. Certains binaires fournis avec des distributions de Linux sont compil es avec le style de trace HDB. Ce mode utilise une grande quantit e de chiers de trace stock es dans /var/spool/uucp/.Log. Ce r epertoire contient trois autres sous-r epertoires, nomm es uucico, uuxqt et uux. Ils contiennent la trace g en er ee par chacun des programmes correspondants, tri es dans di erents chiers pour chaque site. Ainsi, la sortie de uucico lors de l'appel du site pablo se trouvera dans .Log/uucico/pablo, et les invocations de uuxqt qui r esulteront de cet appel seront enregistr ees dans .Log/uuxqt/pablo. Les lignes ont, en revanche, le m^ eme format que celles des traces du style Taylor.
  • 218.
    12.7. Les chiersde trace 201 Lorsque vous validez le d eboguage avec un style de trace HDB, l'enregistrement se fera dans .Admin/audit.local, alors que la sortie de uucico, lorsque c'est un site qui appelle, sera dans .Admin/audit.
  • 219.
    202 Chapitre 12.Ma^ triser Taylor UUCP
  • 220.
    203 Chapitre 13 Le courrier electronique Depuis que les premiers r eseaux furent imagin es, le courrier electronique en fait un usage chaque jour plus important. Cela a commenc e par un simple service qui copiait un chier d'une machine a une autre en le mettant dans le chier bo^ te aux lettres du correspondant. C'est d'ailleurs toujours le cas; bien que par-dessus se soient gre ees beaucoup de choses rendues n ecessaires par la complexit e du r eseau et l'augmentation constante du ux de messages. Divers standards d' echange de courrier ont et e imagin es. Les sites connect es a l'In- ternet adh erent a celui d e ni par le RFC 822, associ e a d'autres documents RFC qui d ecrivent une m ethode de transmission de caract eres sp eciaux ou autres informations, ind ependante des machines mises en jeu. On fait beaucoup de bruit depuis quelque temps autour du courrier ( ( multim edia ) ), qui permet de transf erer egalement des images et du son avec le courrier. Il existe un autre standard, X.400, qui est d e ni par le CCITT. Vous trouverez beaucoup de programmes destin es au transport du courrier pour les syst emes UNIX. L'un des plus connus et des plus utilis es, toutes plates-formes confon- dues, s'appelle sendmail; c'est l'impl ementation de l'universit e de Berkeley, l'auteur est Eric Allman. Il y a actuellement deux portages de sendmail-5.56c sous Linux, dont l'un sera d ecrit dans le chapitre 15. La version de d eveloppement actuelle porte le num ero 8.6.9. L'agent de transport de courrier le plus employ e sous Linux est smail-3.1.28, r ealis e par Curt Landon Noll and Ronald S. Karr. Il est fourni dans la plupart des distribu- tions binaires de Linux. Compar e a sendmail, smail est plus r ecent et plus simple. Pour g erer le courrier d'un petit site sans routages tr es compliqu es, ils sont quasi equivalents. Pour les grands sites, sendmail gagne a tous les coups, en raison de ses possibilit es et de sa souplesse de con guration.
  • 221.
    204 Chapitre 13.Le courrier electronique Tous deux supportent un ensemble de chiers de con gurationqui doivent^ etreadapt es a chaque cas. En dehors des informations n ecessaires pour que le sous-syst eme de courrierfonctionne (comme le nom de la machine), il y a beaucoup d'autres param etres con gurables. Le chier de con guration principal de sendmail est tr es dicile a comprendre au premier abord; ceux de smail sont plus structur es et beaucoup plus clairs, mais n'o rent pas autant de possibilit es pour ajuster le comportement du programme. Quoi qu'il en soit, pour les petits sites UUCP ou Internet, le travail demand e par la con guration est sensiblement le m^ eme pour tous les deux. Ce chapitre va pr esenter le courrier electronique et les t^ aches qui vous attendent en tant qu'administrateur. Les chapitres 14 et 15 vous permettront ensuite d'e ectuer votre premi ere con guration de l'un de ces agents de transfert de courrier. Vous devriez trouver toutes les informations n ecessaires pour le fonctionnement d'un petit site, mais il y a beaucoup plus d'options possibles, et vous pourrez plus tard occuper de longues soir ees en essayant passionn ement de mettre au point une con guration bien plus personnelle. Vers la n du chapitre, nous pr esenterons rapidement la con guration de elm, une interface utilisateur destin ee au courrier electronique, tr es courante sur de nombreux syst emes UNIX, y compris Linux. Pour plus d'informations sur le courrier electronique sous Linux, consultez le docu- ment de Vince Skahan, ( ( Electronic Mail HOWTO ) ), post e r eguli erement sur Usenet. Les distributions originales de elm, smail et sendmail contiennent egalement beaucoup de documentations tr es d etaill ees o u vous devriez trouver la r eponse a la plupart de vos questions concernant leur con guration. Si vous voulez vous informer sur le cour- rier electronique d'une mani ere plus g en erale, un certain nombre de RFC traitent de ce sujet, ils sont indiqu es dans la bibliographie fournie a la n de ce guide. 13.1 Qu'est-ce qu'un message? Un message de courrier electronique est constitu e d'un corps, qui est le texte du message, et de donn ees sp eciales indiquant les destinataires, les moyens de transport, etc., un peu comme ce que vous voyez en regardant de pr es l'enveloppe d'un courrier postal. Ces donn ees administratives se divisent en deux cat egories. Dans la premi ere, se trou- vent toutes les informations sp eci ques aux moyens de transport, comme l'adresse de l'exp editeur et du destinataire. Elle est par cons equent appel ee l'enveloppe. Elle peut ^ etre modi ee par les di erents logiciels d'acheminement qui feront transiter le message. La seconde cat egorie contient toutes les donn ees n ecessaires a la manipulation du message, et qui n'est pas sp eci que d'un m ecanisme de transport; on y trouve le sujet, une liste de destinataires, et la date d'exp edition. Sur de nombreux r eseaux, il est devenu standard de placer ces donn ees au d ebut du message, qui forment alors ce
  • 222.
    13.1. Qu'est-ce qu'unmessage? 205 qui est appel e l'en-t^ ete. Il est s epar e du corps du message par une ligne vide1. La plupart des logiciels de transport de courrier du monde UNIX utilisent le format d'en-t^ etes d e ni dans le RFC 822. Son but etait a l'origine de d e nir un standard sur le r eseau ARPANET, mais puisqu'il est pr evu pour ^ etre ind ependant de tout environnement, il a et e tr es vite adapt e a d'autres r eseaux, y compris ceux bas es sur UUCP. RFC 822 n'est toutefois que le plus petit d enominateur commun; d'autres formats ont r ecemment et e con cus pour faire face aux besoins grandissants d'encryptage de donn ees, de caract eres internationaux, et d'extensions multim edia (MIME). Dans tous ces standards, l'en-t^ ete est constitu e de plusieurs lignes, s epar ees par des caract eres de saut de ligne. Chaque ligne est constitu ee d'un nom de champ, com- men cant sur la premi ere colonne, et de la valeur de ce champ, s epar ee par le caract ere ( ( : ) ) suivi d'une espace. Le format et la s emantique de chaque champ varient selon leur nom. Un champ peut s' etendre sur plusieurs lignes, si la suivante commence par le caract ere de tabulation. Les champs peuvent appara^ tre dans n'importe quel ordre. Voici un exemple d'en-t^ ete de courrier: From brewhq.swb.de!ora.com!andyo Wed Apr 13 00:17:03 1994 Return-Path: brewhq.swb.de!ora.com!andyo Received: from brewhq.swb.de by monad.swb.de with uucp (Smail3.1.28.1 #6) id m0pqqlT-00023aB; Wed, 13 Apr 94 00:17 MET DST Received: from ora.com (ruby.ora.com) by brewhq.swb.de with smtp (Smail3.1.28.1 #28.6) id m0pqoQr-0008qhC; Tue, 12 Apr 94 21:47 MEST Received: by ruby.ora.com (8.6.8/8.6.4) id RAA26438; Tue, 12 Apr 94 15:56 -0400 Date: Tue, 12 Apr 1994 15:56:49 -0400 Message-Id: 199404121956.PAA07787@ruby From: andyo@ora.com (Andy Oram) To: okir@monad.swb.de Subject: Re: Your RPC section G en eralement, tous les champs n ecessaires sont g en er es par l'interface de courrier que vous utilisez, comme par exemple elm, pine, mush ou mailx. Toutefois, certains sont facultatifs et peuvent ^ etre rajout es par l'utilisateur. L'interface elm, par exemple, permet d' editer une partie de l'en-t^ ete du message. D'autres sont plac es par l'agent de transport de courrier. Voici une liste des champs les plus courants et leur signi cation: From: Contient l'adresse electronique de l'exp editeur, ainsi que son ( ( vrai nom ) ) (facultatif). Il existe beaucoup de formats standards pour ce champ. To: Il s'agit de l'adresse du destinataire. Subject: Le sujet, qui d ecrit le contenu du courrier en quelques mots. Du moins, c'est ce qu'il devrait faire. 1: Il est courant de rajouter une signature ou .sig aux courriers, contenant des informations sur l'auteur, souvent suivies d'un dicton ou d'une plaisanterie. Elle est s epar ee du corps du message par une ligne contenant ( ( -- ) ) suivi d'une espace.
  • 223.
    206 Chapitre 13.Le courrier electronique Date: La date a laquelle le courrier a et e exp edi e. Reply-To: Sp eci e l'adresse a laquelle l'exp editeur veut que les r eponses even- tuelles lui soient envoy ees. Ce peut ^ etre tr es utile si vous poss edez plusieurs adresses, mais que vous ne voulez recevoir le courrier qu' a celle que vous utilisez le plus souvent. Ce champ est optionnel. Organization: D ecrit l'organisme, soci et e, universit e, ou autres, qui est propri etaire de la machine d'o u provient le courrier. Ce champ est facultatif; s'il s'agit de votre ordinateur personnel, omettez-le ou mettez ce que vous voulez. Message-ID: Il s'agit d'une cha^ ne g en er ee par l'agent de transport de courrier du syst eme o u le message a et e g en er e; cet identi cateur est propre au message, unique dans le monde entier. Received: Chaque site traitant votre courrier (y compris ceux d'origine et de destination) ins ere ce champ dans l'en-t^ ete, indiquant son nom, un identi cateur, la date et l'heure de r eception, de quel site le message est arriv e,et quel logiciel de transport a et eutilis e. Ainsi, vous pouvez suivre facilement la route parcourue par le message et vous plaindre a la personne responsable si quelque chose ne s'est pas bien pass e. X-nom-quelconque: Aucun programme relatif au courrier ne doit se plaindre d'en-t^ etes commen cant par X-. Ce champ sert a ajouter des informations suppl e- mentaires concernant toute possibilit e nouvelle qui n'est pas encore d e nie dans un document RFC, ou ne le sera jamais. Les listes de di usion ( ( Linux Activists ) ) utilisent par exemple cette possibilit e pour la s election du canal appropri e, rep er e par X-Mn-Key: canal. La seule exception a cette structure concerne la toute premi ere ligne. Celle-ci com- mence par le motcl e From suivi d'une espace au lieu du caract ere ( ( deux-points) ). A n de la distinguer du champ ordinaire From:, on la r ef erence souvent par From . Elle contient le chemin que le message a emprunt e selon la syntaxe UUCP (expliqu ee plus loin), la date et l'heure a laquelle il a et e re cu par la derni ere machine qui l'a trait e, et une partie optionnelle sp eci ant de quel h^ ote il est arriv e. Puisque ce champ est r e ecrit par chaque syst eme voyant passer le message, il est parfois consid er e comme faisant partie de l'enveloppe. Le champ From est n ecessaire pour des raisons de compatibilit e avec d'anciens agents de transport; il n'est pratiquement plus utilis e, sauf par certaines interfaces qui s'en servent pour marquer le d ebut d'un message dans la boite aux lettres de l'utilisateur. Pour eviter des ennuis potentiels dus a la confusion possible avec les lignes du corps du message pouvant aussi commencer par ( ( From ) ), il est de coutume de modi er chaque occurrence de ces lignes en la faisant pr ec eder du caract ere .
  • 224.
    13.2. Comment lecourrier est-il d elivr e? 207 13.2 Comment le courrier est-il d elivr e? En g en eral, le courrier est saisi par l'interm ediaire d'une interface comme mail ou mailx, ou encore d'un programme plus sophistiqu e comme elm, mush ou pine. On les appelle des MUA, Mail User Agents. Si vous exp ediez un message, l'interface le passera dans la plupart des cas a un autre logiciel pour qu'il soit distribu e, que l'on appelle le MTA (Mail Transport Agent, agent de transport du courrier). Sur certains syst emes, vous rencontrerez plusieurs MTA, sp ecialis es dans le courrier local et distant; sur d'autres il s'agit du m^ eme programme. La commande permettant de d elivrer un courrier distant s'appelle g en eralement rmail, et s'il en existe une particuli ere pour les messages locaux, ce sera sans doute un nom comme lmail. D elivrer un courrier local ne consiste pas, bien s^ ur, qu' a rajouter le message dans la bo^ te aux lettres du destinataire. G en eralement,le MTA local sait reconna^ tredes alias (adresses pointant vers d'autres adresses) et la r eexp edition (rediriger tout le courrier de quelqu'un vers d'autres adresses). De plus, les messages qui ne peuvent pas ^ etre distribu es doivent revenir a leur exp editeur, accompagn es d'un message d'erreur. Pour la distribution de courrier non local, le logiciel de transport d epend de la nature de la liaison. Si la destination se trouve sur un r eseau utilisant TCP/IP, c'est g e- n eralement le protocole SMTP qui est employ e. SMTP signi e Simple Mail Transfer Protocol, c'est un protocole de transfert de courrier par TCP/IP qui est d e ni dans les documents RFC 788 et RFC 821. Il se connecte en g en eral directement a la machine du destinataire, et n egocie le transfert du message avec son d emon SMTP. Dans les r eseaux UUCP, le courrier est rarement distribu e directement, mais transite par di erents syst emes interm ediaires faisant le relais vers la machine destinataire. Pour envoyer un message sur une liaison UUCP, le MTA emetteur ex ecutera la com- mande rmail sur le syst eme distant gr^ ace a uux, en envoyant le message sur l'entr ee standard. Puisque cette op eration doit ^ etre r ealis ee pour chaque message, cela pourrait pro- duire une surcharge de travail consid erable sur une machine jouant le r^ ole de nud important pour le courrier, et remplir le spoule UUCP de centaines de petits chiers occupant beaucoup trop de place sur le disque dur2. Par cons equent, certains MTA permettent de rassembler plusieurs messages pour un syst eme distant dans un seul lot. Ce chier contient les commandes SMTP que la machine locale devrait normale- ment ex ecuter si une telle connexion directe etait employ ee. C'est ce que l'on appelle BSMTP, ou SMTP par lots (( ( batched SMTP ) )). Le lot est alors envoy e au programme rsmtp ou bsmtp du syst eme distant, qui traitera les commandes contenues comme s'il s'agissait d'une connexion SMTP normale. 2: L'espace disque est g en eralement allou e par blocs de 1024 octets. Aussi, m^ eme un message de 400 octets utilisera 1 Ko d'espace disque
  • 225.
    208 Chapitre 13.Le courrier electronique 13.3 Adresses electroniques Pour le courrier electronique, une adresse est constitu ee au minimum du nom d'une machine g erantle courrierdu destinataire, et de l'identi cation de ce dernier, reconnue par son syst eme. Ce peut ^ etre son nom d'utilisateur, aussi bien que tout autre chose. D'autres m ethodes d'adressage, comme X.400, emploient un ensemble plus g en eral d'( ( attributs ) ) pour retrouver la machine du destinataire dans le r epertoire d'un serveur X.500. La mani ere dont le nom de machine est interpr et e, c'est- a-dire sur quel site votre message nira par arriver, et la fa con de combiner ce nom avec celui du destinataire d ependent etroitement du r eseau sur lequel vous ^ etes connect e. Les sites Internet respectent le standard RFC 822, qui n ecessite une notation de type utilisateur@h^ ote.domaine, o u h^ ote.domaine est le nom pleinement quali e de la machine. Le signe du milieu, le ( ( A commercial ) ), se prononce ( ( at ) ) dans ce cas3. Puisque cette notation ne met en jeu aucune route vers l'adresse de destination, et ne donne que le nom (unique) de la machine, on la d esigne par adresse absolue. Dans l'environnement UUCP original, la forme dominante des adresses etait che- min!h^ ote!utilisateur, chemin d ecrivait une s equence de machines par lesquels le message devait passer avant d'atteindre sa destination. Cette construction s'appelle la notation bang, tout simplement parce qu'un point d'exclamation est famili erement appel e un ( ( bang ) ), chez les informaticiens anglophones. Aujourd'hui, la plupart des r eseaux bas es sur UUCP ont adopt e le standard RFC 822 ou comprennent au moins ce type d'adressage. Maintenant, il faut savoir que ces deux types d'adresses n'aiment pas trop ^ etre m elan- g es. Consid erons par exemple l'adresse machineA!utilisateur@machineB. Il n'est pas du tout evident de savoir si le signe @ a priorit e sur le bang, ou vice versa: devons- nous envoyerle message a machineB,qui le transmettra a machineA!utilisateurou bien alors faut-il le passer a machineA, qui l'exp ediera a utilisateur@machineB? Les adresses comme celle-ci, qui m elangent les deux types de notations, sont appel ees adresses hybrides. Notre exemple est un cas d' ecole, il est g en eralement r esolu en donnant la priorit e au signe @, ce qui signi era ici que le message sera transmis d'abord a machineB. Toutefois, il existe un moyen de sp eci er des routes en restant conforme au RFC 822: @machineA,@machineB:utilisateur@machineC d enote l'adresse de utilisa- teur sur l'h^ ote machineC, machine qui peut ^ etre jointe en passant par machineA et machineB, dans l'ordre. Ce type d'adresse est une adresse de routage, nomm ee souvent route-addr. En n, il y a l'op erateur % (le signe pour cent): user%machineB@machineA sera d'abord envoy e a machineA, qui changera le signe pour cent le plus a droite (ici, c'est 3: Traduisez ( ( at ) ) par ( ( chez ) ) et vous constaterez que cette notation n'est pas si compliqu ee a comprendre, cela donne utilisateur chez h^ ote.domaine.
  • 226.
    13.4. Le routagedu courrier 209 le seul) en un signe @. L'adresse devient alors pour ce site utilisateur@machineB, et le MTA passera le message le plus naturellement du monde a machineB qui le d elivrera a utilisateur. Ce type d'adressage est souvent appel e ( ( La vieille rustine de l'ARPANET ) ), et n'est pas encourag e. N eanmoins, beaucoup de MTA savent g erer et parfois g en erent ce genre de chose. D'autres r eseaux utilisent des m ethodes d'adressages encore di erentes. Les r eseaux DECnet, par exemple, utilisent les deux caract eres ( ( :: ) ) comme s eparateur, ce qui donne le format h^ ote::utilisateur4. En n, le standard X.400 emploie une notation compl etement di erente, d ecrivant un destinataire par un ensemble de paires attribut- valeur. Sur FidoNet, chaque utilisateur est identi e par un code du type 2:320/204.9,consis- tant en quatre nombres indiquant la zone (2 pour l'Europe), le r eseau (320 pour Paris et sa banlieue), le nud et le point (la machine personnelle de l'utilisateur). Les adresses Fidonet peuvent facilement ^ etre transform ees au format RFC 822, celle de notre exemple peut s' ecrire Thomas.Quinot@p9.f204.n320.z2. donet.org. N'avions-nous pas dit que les noms de domaines sont faciles a retenir? Nous verrons ce qu'implique l'utilisation de ces di erents types d'adresses dans les sec- tions suivantes. Dans un environnement RFC 822, vous n'aurez toutefois que rarement besoin d'autre chose que des adresses absolues comme utilisateur.h^ ote.domaine. 13.4 Le routage du courrier L'action de diriger un message vers la machine du destinataire s'appelle le routage. En plus de trouver un chemin du site exp editeur vers la destination, le routage met en jeu des tests d'erreurs et une optimisation en fonction de la vitesse et du co^ ut. Il y a une grande di erence entre la fa con dont un site UUCP g ere le routage, et celle employ ee par un site Internet. Sur l'Internet, toute la t^ ache d'acheminer les donn ees, une fois que la machine de destination est connue par son adresse IP, est faite par la couche IP du r eseau; dans une zone UUCP, la route doit ^ etre indiqu ee par l'utilisateur ou g en er ee par le MTA. 13.4.1 Routage du courrier sur l'Internet Sur l'Internet, le routaged epend enti erement de l'h^ ote destinataire, o u tout traitement eventuel du courrier sera e ectu e. Par d efaut, le message est d elivr e a cette machine en recherchant son adresse IP et en laissant ensuite le r eseau faire son travail. La plupart des sites feront en g en eral arriver le courrier sur un serveur toujours dispo- nible, capable de g erer tout le tra c et qui s'occupera de la distribution locale. Pour 4: Pour joindre une adresse DECnet depuis un environnement RFC 822, vous pouvez utiliser h^ ote::utilisateur@relais, o u relais est le nom d'une passerelle Internet-DECnet connue.
  • 227.
    210 Chapitre 13.Le courrier electronique faire conna^ tre ce service, le site publie dans le DNS un enregistrement de type MX pour leur domaine local. MX signi e mail exchanger ( echangeur de courrier), et sert a annoncer que l'h^ ote indiqu e s'occupera de r epartir le courrier pour toutes les ma- chines de son domaine. Les enregistrements MX peuvent aussi ^ etre utilis es pour g erer le courrier de machines qui ne sont pas connect ees directement a l'Internet, comme certains sites UUCP ou des r eseaux transportant des informations con dentielles. Ces MX se voient aussi associer une pr ef erence, sous la forme d'un nombre entier. S'il existe plusieurs echangeurs de courrier pour un h^ ote, l'agent de transport essaiera de passer le message a l' echangeur qui a la plus faible valeur de pr ef erence, et il n'essaiera les autres que si le premier est inaccessible. Si l'h^ ote local est lui-m^ eme un echangeur pour l'adresse de destination, il ne doit pas renvoyer de messages a des h^ otes MX ayant une pr ef erence sup erieure a la sienne; cela permet d' eviter des bouclages. Supposons qu'une organisation, que nous appellerons toto, veuille que tout leur cour- rier soit g er e par leur machine qui s'appelle laposte.toto.com. Ils auront alors dans la base de donn ees du DNS, des enregistrements MX comme celui-ci: jaune.toto.com. IN MX 5 laposte.toto.com. Il annonce laposte.toto.comcomme un echangeur de courrier pour d elivrer un mes- sage a destination de, par exemple, marcel@jaune.toto.com, avec une pr ef erence de valeur 5. Un h^ ote d esirant d elivrer un message a cette adresse interrogera le DNS, trouvera le MX pointant sur laposte. S'il n'y a pas d'autre MX ayant une pr ef erence inf erieure a 5, le message sera envoy e a laposte, qui saura alors le diriger sur la machine jaune. Bien s^ ur, cet exemple n'est qu'une ebauche du fonctionnement des enregistrements MX. Consultez le document RFC 974 pour obtenir plus d'informations sur le routage du courrier sur l'Internet. 13.4.2 Routage du courrier dans le monde UUCP La distribution du courrier sur les r eseaux UUCP est beaucoup plus compliqu ee que sur l'Internet, car le logiciel de transport n'e ectue aucun routage lui-m^ eme. Autre- fois, tous les messages devaient ^ etre adress es par la m ethode des bangs, qui consiste a sp eci er une liste d'h^ otes par lesquels faire passer le message, s epar es par des points d'exclamation (les ( ( bangs ) )), termin ee par le nom de l'utilisateur. Pour envoyer une lettre a l'utilisateur alfred sur une machine nomm ee hopla, il fallait ecrire eek!swim!hopla!alfred. Le courrier aurait et e envoy e de votre machine vers eek, puis de l a sur swim, et en n sur hopla. L'inconv enient de cette technique c'est qu'il faut se souvenir de toute la topologie du r eseau, des liaisons les plus rapides, etc. Pis, le moindre changement dans l'orga- nisation (machines supprim ees, liaisons modi ees) peut emp^ echer la distribution du courrier si vous n'^ etes pas mis au courant de ce changement. En n, si vous d em enagez, vous devrez probablement mettre a jour toutes ces routes.
  • 228.
    13.4. Le routagedu courrier 211 Ce routage a la source etait n ecessaire en raison de la pr esence de noms d'h^ otes ambigus. Par exemple, supposons qu'il existe deux sites appel es hopla; l'un aux Etats-Unis, l'autre en France. Lorsque l'on ecrit hopla!alfred, de quel site s'agit-il? Pour le pr eciser, il faut sp eci er quel est le chemin a utiliser pour joindre hopla. A n de parer aux noms ambigus, la premi ere etape fut la fondation du UUCP Map- ping Project, a Rutgers University. Son but est d'enregistrer tous les noms ociels de machines UUCP, avec des informations concernant leurs voisins et leur position g eographique; et de s'assurer que chaque nom est unique au monde. Toutes les infor- mations collect ees sont publi ees sous la forme de cartes UUCP, distribu ees r eguli ere- ment via Usenet5. Apr es suppression des commentaires, l'entr ee d'un syst eme dans une carte ressemble a ceci: renux frmug(DAILY/2), keltia(WEEKLY) Cette entr ee indique que la machine renux se connecte deux fois par jour a frmug, et sur keltia une fois par semaine. Nous reviendrons en d etail sur ce format un peu plus loin. Gr^ ace aux informations sur la connectivit e contenues dans ces cartes, vous pouvez g en erer automatiquement le chemin d'acc es complet depuis votre machine vers n'im- porte quel site. Ces informations sont g en eralement stock ees dans le chier paths, appel e aussi la base de donn ees pathalias. Supposons que les cartes indiquent que vous pouvez joindre keltia via imladris; une entr ee pathalias pour renux cr e ee a partir de l'extrait de carte montr e plus haut pourrait ressembler a ceci: renux imladris!keltia!renux!%s Si maintenant, vous donnez l'adresse de destination sous la forme rene@renux.uucp, votre MTA utilisera la route ci-dessus et enverra le message a imladris, avec une adresse d'enveloppe de keltia!renux!rene. Cr eer un chier paths a partir de la totalit e des cartes UUCP n'est toutefois pas une tr es bonne id ee. Les informations sont g en eralement distordues et parfois obsol etes. Par cons equent, seul un petit nombre de sites importants utilise la totalit e des cartes UUCP du monde entier pour construire leurs chiers paths. La plupart des autres se contentent de poss eder les informations de routage concernant leurs voisins les plus proches, et d'envoyer tout le courrier pour les sites absents de leur base de donn ees vers une machine mieux inform ee, qui s'appelle alors le smart-host. Les machines ne poss edant qu'un seul lien UUCP ne font jamais aucun routage, et envoient tout leur courrier a leur smart-host qui s'en occupera a leur place. 5: Les cartes des sites enregistr es dans ce projet sont distribu ees dans le groupe comp.mail.maps; d'autres organisations peuvent di user des cartes s epar ees pour leurs r eseaux.
  • 229.
    212 Chapitre 13.Le courrier electronique 13.4.3 M elanger UUCP et RFC 822 La meilleure solution aux probl emes de routage du courrier dans les r eseaux UUCP est l'adoption du DNS. Bien s^ ur, il est impossible d'interroger un serveur de noms par UUCP. N eanmoins, beaucoup de sites UUCP se sont organis es en petits domaines qui coordonnent leurs routages entre eux. Dans les cartes, ces domaines annoncent une ou deux machines comme leurs passerelles pour le courrier, ainsi il n'y a plus besoin d'entr ees sp eci ques pour chaque h^ ote de ce domaine. Les passerelles g erent tout le courrier entrant et sortant pour le domaine en question; le routage e ectu e entre les machines composant ce domaine est compl etement invisible au reste du monde. Cela fonctionne tr es bien avec la m ethode de routage par les smart-hosts que nous ve- nons de d ecrire.L'information n ecessaire a l'int egralit edu routage n'est maintenue que sur les passerelles; les petits sites d'un domaine n'auront que quelques paths r edig es a la main indiquant comment diriger le courrier vers le smart-hosts et eventuellement a l'int erieur de leur domaine. Les passerelles n'ont plus besoin de conna^ tre tous les sites UUCP du monde entier; en dehors du domaine qu'elles g erent, il leur sut d'avoir des routes vers d'autres domaines dans leur base de donn ees. Par exemple, l'entr ee pa- thalias ci-dessous dirigera tout le courrier a destination des sites du domaine sub.org vers schtroumpf: .sub.org swim!schtroumpf!%s Un message adress e a claire@jones.sub.org sera envoy e a swim avec une adresse d'enveloppe de schtroumpf!jones!claire. L'organisation hi erarchis ee de l'espace de noms permet aux serveurs de courrier de m elanger des routes bien sp eci ques avec d'autres plus g en erales. Par exemple, un sys- t eme situ e en France peut avoir des routes particuli eres pour certains sous-domaines de fr, mais router tout courrier a destination des machines du domaine us vers un syst eme situ e aux U.S.A. Ainsi, le routage par domaine r eduit consid erablement la taille des bases de donn ees n ecessaires, aussi bien que les t^ aches administratives. Toutefois, le plus gros b en e ce apport e par l'emploi de noms de domaines dans un environnement UUCP, c'est que la conformit e au standard RFC 822 permet une interconnexion facile entre les r eseaux UUCP et l'Internet. Beaucoup de domaines UUCP poss edent de nos jours un lien avec une passerelle Internet qui joue le r^ ole de smart host. L'envoi de messages par l'Internet est beaucoup plus rapide, et les informations de routage sont beaucoup plus ables puisque c'est le DNS qui entre en jeu, au lieu des cartes UUCP. Pour ^ etre joignables depuis l'Internet, les domaines UUCP poss edent g en eralement un enregistrement MX dans le DNS. Par exemple, supposons que moria appartient au domaine orcnet.org. La machine gcc2.groucho.edu joue le r^ ole de leur passerelle Internet. Par cons equent, moria utiliserait gcc2 comme son smart host de sorte que tout le courrier a destination d'autres domaines soit d elivr e par l'Internet. D'un autre c^ ot e, gcc2 annoncerait un MX pour *.orcnet.org et enverrait tout message
  • 230.
    13.5. Format descartes et du chier pathalias 213 arrivant pour les machines de orcnet a moria. L'ast erisque dans *.orcnet.org est un caract ere g en erique qui correspondra a tous les h^ otes de ce domaine qui ne sont associ es a aucun autre enregistrement; c'est g en eralement ce qui doit ^ etre fait pour les domaines uniquement UUCP. Il reste un probl eme: les programmes de transport par UUCP ne savent pas g erer les noms pleinement quali es. La plupart des programmes furent pr evus pour traiter des noms ne d epassant pas huit caract eres, parfois moins, et l'utilisation de caract eres non alphanum eriques comme de simples points est hors de question avec la plupart d'entre eux. Par cons equent, il est n ecessaire de pouvoir e ectuer la correspondance entre les noms RFC 822 et UUCP. La fa con dont cela est r ealis e d epend enti erement de l'impl emen- tation. Une m ethode courante consiste a utiliser le chier pathalias: moria.orcnet.org ernie!bert!moria!%s Cette entr ee produira un chemin purement UUCP avec la notation par bangs a partir d'une adresse sp eci ant un nom pleinement quali e. Certains MTA proposent un chier sp ecial destin e a ces op erations; sendmail, par exemple, utilise un chier appel e uucpxtable. La transformation inverse (qu'il est courant d'appeler ( ( domainisation ) )), est parfois n ecessaire lors de l'envoi d'un courrier depuis un r eseau UUCP vers l'Internet. Tant que l'exp editeur utilise un nom pleinement quali e pour l'adresse de destination, ce probl eme peut ^ etre evit e en ne supprimant pas le nom du domaine de l'adresse d'en- veloppe lors de l'envoi du message au smart host. Toutefois, il reste encore quelques sites UUCP qui ne font partie d'aucun domaine. Ils sont alors domainis es en leur rajoutant le pseudo-domaine uucp. 13.5 Format des cartes et du chier pathalias La base de donn ees pathalias contient les principales informations de routage dans les r eseaux UUCP. Une entr ee typique ressemble a la suivante (sites et chemins doivent ^ etre s epar es par des tabulations, et non par des espaces): moria.orcnet.org ernie!bert!moria!%s moria ernie!bert!moria!%s Cette entr ee fera que tout message pour moria sera d elivr e en passant par ernie et bert. Il faut indiquer a la fois le nom pleinement quali e et le nom UUCP de moria si le MTA ne sait pas faire la correspondance de l'un a l'autre. Si vous voulez diriger tous les messages pour les h^ otes d'un domaine particulier vers son relais de courrier, vous pouvez aussi sp eci er un chemin dans la base de donn ees pathalias, indiquant le domaine comme une cible, pr ec ed e d'un point. Par exemple,
  • 231.
    214 Chapitre 13.Le courrier electronique si toutes les machines de sub.org peuvent ^ etre atteintes par swim!smurf, l'entr ee pathalias s' ecrira comme ceci: .sub.org swim!smurf!%s La r ealisation manuelle d'un chier pathalias n'est acceptable que si votre site n'a pas trop de routages a e ectuer. Sinon, il vaut mieux utiliser la commande pathalias qui cr eera le chier a partir des cartes UUCP. Ces cartes peuvent ^ etre maintenues bien plus facilement, car il vous sut de rajouter ou de supprimer l'entr ee d'un syst eme dans la carte et de relancer la commande pour recr eer le nouveau chier. Bien que les cartes publi ees sur Usenet ne soient pratiquement plus utilis ees pour le routage, certains r eseaux plus petits peuvent proposer leur propre jeu de cartes a cette n. Un chier de cartes consiste principalement en une liste de sites, contenant les ma- chines avec lesquelles le syst eme est r eguli erement connect e par UUCP, soit comme appelant, soit comme appel e. Le nom du syst eme commence en premi ere colonne, et est suivi par une liste de liens, s epar es par des virgules. Cette liste peut s' etendre sur plusieurs lignes a condition que la suivante commence par une tabulation. Chaque lien est constitu e du nom du site suivi du co^ ut imaginaire de la connexion, indiqu e entre parenth eses. Il s'agit d'une expression arithm etique, faite de valeurs et de prix symboliques. Les lignes commen cant par un di ese sont ignor ees. Par exemple, consid erons moria, qui appelle swim.twobirds.comdeux fois par jour et bert.sesame.com une fois par semaine. De plus, la liaison avec bert ne se fait qu'avec un vieux modem 2400 bps, tr es lent. La carte publi ee par moria serait alors la suivante: moria.orcnet.org bert.sesame.com(DAILY/2), swim.twobirds.com(WEEKLY+LOW) moria.orcnet.org = moria La derni ere ligne la ferait conna^ tre aussi sous son nom UUCP. Notez que DAILY/2 correspond a deux appels par jour, alors que DAILY*2 signi erait un appel tous les deux jours. Avec ces informations, la commande pathalias est capable de d eterminer les routes optimales a destination de tout site cit e dans le chier paths, et de produire une base de donn ees pathalias qui pourra alors ^ etre utilis ee pour le routage vers ces sites. Le programme pathalias o re plusieurs autres possibilit es, consultez sa page de ma- nuel, ainsi qu'une liste compl ete des prix symboliques. Dans la carte, les commentaires contiennent g en eralement des informations suppl e- mentaires sur les sites d ecrits. Il existe un format tr es strict pour la sp eci cation de ces renseignements, de mani ere a pouvoir les r ecup erer par programme. Par exemple, la commande uuwho utilise une base de donn ees r ealis ee a partir de ces cartes pour acher toutes les informations selon un format agr eable a lire.
  • 232.
    13.6. Con gurationde elm 215 Lorsque vous enregistrez votre site aupr es d'un organisme qui distribue des cartes a ses membres, vous devrez en principe remplir une telle entr ee. Voici un exemple d'entr ee dans les cartes UUCP (en fait, il s'agit de celle du site de l'auteur): #N monad, monad.swb.de, monad.swb.sub.org #S AT 486DX50; Linux 0.99 #O private #C Olaf Kirch #E okir@monad.swb.de #P Kattreinstr. 38, D-64295 Darmstadt, FRG #L 49 52 03 N / 08 38 40 E #U brewhq #W okir@monad.swb.de (Olaf Kirch); Sun Jul 25 16:59:32 MET DST 1993 # monad brewhq(DAILY/2) # Domains monad = monad.swb.de monad = monad.swb.sub.org Le blanc suivant les deux premiers caract eres doit ^ etre une tabulation. La signi cation des champs est evidente; vous recevrez tout le d etail lorsque vous vous enregistrerez. Le champ L est le plus dicile a remplir: il donne votre position g eographique en latitude/longitude, et n'est plus utilis e que pour dessiner la carte au format PostScript qui montre tous les sites de chaque pays6. 13.6 Con guration de elm Le programme elm est l'un des outils UNIX les mieux nomm es: ( ( elm ) ) signi e ( ( elec- tronic mail) ), soit courrier electronique. Il o re une interface plein ecran tr es puissante et une aide ecace. Nous ne parlerons pas de son utilisation ici, mais seulement de certaines de ses options de con guration. En th eorie, vous pouvez lancer elm sans l'avoir con gur e, et avec un peu de chance, tout devrait fonctionner quand m^ eme. Mais il y a malgr e tout certaines options a initialiser, bien qu'elles ne soient n ecessaires qu'en quelques occasions. Au d emarrage, elm lit un ensemble de variables indiqu ees dans le chier elm.rc se trouvant dans le r epertoire /usr/lib/elm. Ensuite, il tente de lire le chier .elm/elmrc de votre r epertoire personnel. Ce chier n'est g en eralement pas r edig e a la main, mais cr e e automatiquement lorsque vous s electionnez ( ( save options ) ) depuis le menu du programme. L'ensemble des options de votre chier elmrc est aussi disponible dans le chier global elm.rc; le v^ otre ne servira qu' a modi er certaines valeurs par d efaut positionn ees dans la con guration globale. 6: Ces cartes g eographiques sont post ees r eguli erement dans news.lists.ps-maps.Attention, c'est tr es gros!
  • 233.
    216 Chapitre 13.Le courrier electronique 13.6.1 Con guration g en erale par elm.rc Dans le chier global elm.rc, vous devez positionner les options relatives au nom de votre syst eme. Par exemple, a ( ( La bi ere virtuelle ) ), le chier de la machine kro contiendrait: # # Le nom local hostname = kro # # Le domaine hostdomain = .bibine.com # # Le nom pleinement qualifi e hostfullname = kro.bibine.com Ces options d eterminent la notion qu'aura elm de votre syst eme. Bien que ces in- formations ne soient que rarement utilis ees, vous devez les indiquer par pr ecaution. Notez qu'elles n'ont d'e et que lorsqu'elles se trouvent dans ce chier de con guration global. Il est impossible de modi er ces valeurs depuis le chier personnel, pour des raisons de s ecurit e evidentes. 13.6.2 Jeux de caract eres nationaux Il y a eu r ecemment des propositions pour apporter au standard RFC 822 le support de divers types de messages, comme le texte pur, des donn ees binaires, des chiers PostScript, etc. L'ensemble de documents RFC traitant de ces possibilit esa et ebaptis e MIME, ou Multipurpose Internet Mail Extensions (extensions multi-usages au courrier Internet). Entre autres choses, elles permettent au destinataire de savoir si un jeu de caract eres di erent de l'ASCII a et e employ e pour r ediger le message, par exemple pour obtenir des accents fran cais. Ce standard est en grande partie support e par elm. Le jeu de caract eres utilis e en interne par Linux est conforme au standard ISO-8859- 1, egalement connu sous le nom de Latin-1. Tout message utilisant cet ensemble de caract eres doit (ou devrait) comporter la ligne suivante dans son en-t^ ete: Content-Type: text/plain; charset=iso-8859-1 Le syst eme r ecepteur doit reconna^ tre ce champ et prendre les mesures appropri ees lors de l'achage du message. Le d efaut pour les messages text/plain est une valeur charset de us-ascii. A n de pouvoir acher des messages avec d'autres caract eres que l'ASCII, elm doit savoir comment le faire. Par d efaut, lorsqu'il re coit un courrier dont le champ charset est di erent de us-ascii (ou un champ Content-Type di erent de text/plain), il essaie de l'acher en appelant une commande nomm ee metamail. Les messages n ecessitant
  • 234.
    13.6. Con gurationde elm 217 metamail sont indiqu es par un M dans la toute premi ere colonne de la liste du courrier propos ee par elm. Comme le jeu de caract eres natif de Linux est l'ISO-8859-1, il n'est pas n ecessaire d'appeler metamail pour acher des messages utilisant ces caract eres. Si l'on indique a elm que l'achage conna^ t l'ISO-8859-1, il l'achera instantan ement, sans appeler de programme externe. Il sut pour cela de positionner l'option suivante dans le chier global elm.rc: displaycharset = iso-8859-1 Notez que vous devez indiquer cette option m^ eme si vous n'allez jamais recevoir ou emettre de messages comportant ces caract eres: les personnes qui postent de tels courriers con gurent leurs programmes pour qu'ils mettent le champ Content-Type par d efaut, qu'ils utilisent ces caract eres ou ne postent que de l'ASCII. Toutefois, cette option n'est pas susante. Le probl eme est que lorsqu'il ache le message avec son visionneur interne, elm appelle une fonction de biblioth eque pour chaque caract ere, pour d eterminer s'il est achable ou pas. Par d efaut, cette fonction ne reconna^ t que les caract eres purement ASCII, et ache un point d'interrogation pour tous les autres. Vous pouvez modi er ce comportement en positionnant la va- riable d'environnement LC CTYPE a la valeur ISO-8859-1, ce qui indiquera a la biblioth eque que ces caract eres sont achables. Sous Linux, le support pour l'inter- nationalisation est pr esent depuis la biblioth eque libc-4.5.8. Lorsque vous postez des messages contenant des caract eres sp eciaux du jeu ISO, vous devez vous assurer de positionner deux autres variables dans le chier global elm.rc: charset = iso-8859-1 textencoding = 8bit Ainsi, elm indiquera correctement dans les en-t^ etes de tous les courriers di us es que le jeu de caract eres est ISO-8859-1, et les enverra sur 8 bits (par d efaut, le huiti eme bit est mis a z ero pour tout transformer en 7 bits). Bien s^ ur, toutes ces options peuvent aussi ^ etre positionn ees dans le chier de con - guration personnel elmrc de chaque utilisateur.
  • 235.
    218 Chapitre 13.Le courrier electronique
  • 236.
    219 Chapitre 14 Mise enroute de smail Ce chapitre sera une rapide initiation a la con guration de smail et vous donnera un aper cu des fonctionnalit es o ertes. Bien que ce programme soit largement compatible avec sendmail dans son comportement, ses chiers de con guration sont compl etement di erents. Le chier de con guration principal s'appelle /usr/lib/smail/con g. Vous devrez obli- gatoirement editer ce chier pour y placer les valeurs sp eci ques a votre site. Si vous n'^ etes qu'un petit syst eme UUCP, vous n'aurez pratiquement jamais rien d'autre a faire. D'autres chiers permettant la mise au point des options de routage et de transport peuvent aussi ^ etre utilis es, nous en parlerons bri evement. Par d efaut, smail traite et d elivre imm ediatement tout le courrier. Si vous avez beau- coup de tra c, vous pr ef ererez sans doute lui indiquer de rassembler tous les messages dans ce que l'on appelle une queue, et de ne les traiter qu' a intervalles r eguliers. Lorsque le courrier passe par un r eseau TCP/IP, smail est tr es souvent utilis e en mode d emon: au d emarrage du syst eme, il est invoqu e depuis rc.inet2 et se place en t^ ache de fond, o u il attend des connexions TCP sur le port SMTP (le port 25, en principe). Cette m ethode est a pr ef erer chaque fois que vous attendez un tra c important, car le programme n'a pas a ^ etre lanc e s epar ement a chaque connexion. L'alternative serait de laisser inetd g erer le port SMTP, il appellerait alors smail chaque fois qu'une connexion sur se port se pr esenterait. Smail poss ede plusieurs options contr^ olant son comportement; les d ecrire en d etail ici ne vous serait pas tr es utile. Heureusement, il supporte un certain nombre de modes de fonctionnements standards, qui sont valid es lorsque vous l'invoquez sous des noms particuliers, comme par exemple rmail ou smtpd. G en eralement, ces alias sont des liens symboliques vers l'unique binaire smail. Nous rencontrerons la plupart d'entre eux lorsque nous aborderons les di erentes possibilit es o ertes par ce programme.
  • 237.
    220 Chapitre 14.Mise en route de smail En toute circonstance, vous devrez avoir au moins deux liens pointant sur le pro- gramme smail: /usr/bin/rmail et /usr/sbin/sendmail1. Lorsque vous r edigez puis exp ediez un courrier avec une interface comme elm, le message sera pass e a rmail pour ^ etre d elivr e, avec la liste des destinataires sur la ligne de commandes. La m^ eme chose se passe avec le courrier arrivant par UUCP. Quelques versions de elm invoquent toutefois /usr/sbin/sendmail, au lieu de rmail, aussi est-il plus prudent de disposer des deux commandes. Par exemple, si votre binaire de smail se trouve dans /usr/local/bin, tapez ce qui suit pour cr eer les liens corrects: # ln -s /usr/local/bin/smail /usr/bin/rmail # ln -s /usr/local/bin/smail /usr/sbin/sendmail Si vous voulez entrer dans le d etail de la con guration de smail, r ef erez-vous aux pages de manuel smail(1) et smail(5). Si vous ne les poss edez pas, vous les trouverez dans les sources du programme. 14.1 Con guration UUCP Pour utiliser smail dans un environnement uniquement UUCP, l'installation de base est tr es simple. Tout d'abord, v eri ez que vous avez bien les deux liens symboliques vers rmail et sendmail mentionn es plus haut. Si vous comptez recevoir des lots SMTP en provenance d'autres sites, vous devez aussi cr eer un lien nomm e rsmtp sur smail. La distribution smail de Vince Skahan fournit un exemple de chier de con guration, dont le nom est con g.sample; il se trouve dans /usr/lib/smail. Copiez-le sous le nom de con g et editez-le pour y placer les valeurs sp eci ques a votre site. Consid erons que votre machine s'appelle swim.twobirds.comet est enregistr ee dans les cartes UUCP en tant que swim. Votre smart host s'appelle ulysses. Votre chier con g sera alors celui-ci: # # Nos noms de domaine visible_domain=two.birds:uucp # # Notre nom pour les courriers emis visible_name=swim.twobirds.com # # Ce sera le m^ eme pour UUCP uucp_name=swim.twobirds.com # # Notre smart-host smart_host=ulysses 1: Il s'agit de l'emplacement standard de sendmail sous Linux, si l'on suit les recommandations du projet du ( ( Linux File System Standard ) ). Sur beaucoup d'autres syst emes, sendmail se trouve traditionnellement dans /usr/lib.
  • 238.
    14.2. Con gurationr eseau 221 La premi ere instruction renseigne smail sur les domaines auxquels votre site appar- tient. Mettez leurs noms, s epar es par le caract ere ( ( : ) ). Si le nom de votre site est enregistr e dans les cartes UUCP, vous devez egalement ajouter le pseudo-domaine uucp. Lorsqu'il traite un message, smail d etermine le nom de votre machine par l'ap- pel syst eme hostname(2), et teste l'adresse du destinataire pour la comparer a ce nom, en y rajoutant tour a tour tous ces domaines. Si l'adresse correspond a l'un des cas (ou au nom non quali e), le courrier est consid er e comme local et sera d elivr e a l'utilisateur ou l'alias correspondant sur votre machine. Sinon, il est consid er e comme etant distant, et smail tentera de l'exp edier a la machine de destination. La ligne visible name doit contenir un unique nom pleinement quali e, c'est celui que vous voulez voir appara^ tre dans tout le courrier emis. Vous devez ^ etre certain que le nom utilis e est reconnu par smail comme celui de l'h^ ote local (par exemple, l'une des combinaisons donn ees avec l'attribut visible domain). Sinon, les r eponses a vos messages ne vous arriveraient jamais... La derni ere ligne indique le chemin a utiliser pour atteindre le smart host (d ecrit dans le chapitre pr ec edent). Avec cet exemple, smail enverra tout le courrier non local au smart host. Le nom de cette machine doit ^ etre connu par UUCP, puisque c'est le protocole utilis e pour la liaison. Pour cela, consultez le chapitre 12. Il reste une option dont nous n'avons pas encore parl e: uucp name. Par d efaut, smail prend la valeur retourn ee par hostname(2) pour indiquer les informations sp eci ques a UUCP, comme le chemin de retour donn e dans la ligne From de l'en-t^ ete. Si votre nom de machine n'est pas enregistr e dans les cartes UUCP, vous devez dire a smail d'y mettre votre nom pleinement quali e a la place2. Il sut pour cela de l'ajouter gr^ ace a l'option uucp name du chier con g. Vous trouverez aussi dans /usr/lib/smail un autre chier, paths.sample. Il s'agit d'un exemple de chier paths; mais vous n'en aurez pas besoin, a moins que vous n'ayez des liaisons avec plusieurs sites pour la distribution du courrier. Si vous devez utiliser ce chier, il faudra de toute fa con le r ediger vous-m^ eme, ou le cr eer a partir des cartes UUCP. Ce chier paths sera d ecrit plus loin. 14.2 Con guration r eseau Si votre site contient deux h^ otes (ou plus) connect es en r eseau, vous devrez d esigner l'un deux pour la gestion de vos connexions UUCP vers le monde ext erieur. Entre les machines du r eseau, vous ferez passer le courrier par SMTP sur TCP/IP. Revenons dans notre entreprise ( ( La biere virtuelle ) ), o u gueuze est con gur ee en passerelle UUCP. 2: Voil a pourquoi: supposons que votre syst eme s'appelle nomade,maisqu'il ne soit pas enregistr e dans les cartes. Supposons aussi qu'il existe dans ces cartes un site nomm e nomade, quelque part dans le monde. Tout le courrier adress e a nomade!root,m^ eme post e depuis un de vos voisins UUCP, arrivera sur l'autre machine et non chez vous.
  • 239.
    222 Chapitre 14.Mise en route de smail Dans un environnement r eseau, il vaut mieux placer toutes les bo^ tes aux lettres des utilisateurs sur un unique syst eme de chiers qui est mont e par NFS sur toutes les autres machines. Cela permet d'utiliser n'importe quel h^ ote sans avoir a d epla- cer son courrier (ou pis, tester cinq ou six bo^ tes aux lettres di erentes chaque ma- tin). Par cons equent, il vous faudra aussi faire en sorte que les adresses des exp e- diteurs soient ind ependantes de la machine sur laquelle les messages sont r edig es. La pratique courante est de ne mettre que le nom de domaine seul, sans faire ap- para^ tre d'h^ ote particulier. Par exemple, ce sera marcel@bibine.com au lieu de marcel@trappiste.bibine.com. Nous verrons comment faire pour que le nom de domaine soit reconnu par le serveur comme un nom valide pour votre site. Une autre m ethode permettant de conserver toutes les bo^ tes aux lettres sur un h^ ote central consiste a utiliser POP ou IMAP. POP signi e ( ( Post Oce Protocol ) ) et permet aux utilisateurs d'acc eder a leur courrier par une simple connexion TCP/IP. IMAP est un protocole interactif d'acc es au courrier (( ( Interactive Mail Access Pro- tocol ) )) similaire a POP, mais plus g en eral. Clients et serveurs POP et IMAP ont et e port es sous Linux et sont disponibles sur les sites di usant ce syst eme. 14.2.1 R edaction des chiers de con guration La con guration n ecessaire pour nos brasseurs fonctionne de la mani ere suivante: Toutes les machines, except e le serveur de courrier gueuze, routent tous les messages sortants vers ce serveur par la m ethode du smart host. Le serveur gueuze envoie tout ce courrier vers le vrai smart host qui g ere la totalit e du courrier, cette machine s'appelle moria. Le chier con g de tous les h^ otes, autres que gueuze est le suivant: # # Notre domaine: visible_domain=bibine.com # # Comment nous d esirons nous appeler visible_name=bibine.com # # Routage SMTP vers le smart host gueuze: smart_path=gueuze smart_transport=smtp Il est tr es semblable a ce que nous avons utilis e pour un site uniquement UUCP. La plus grosse di erence, c'est le transport utilis e pour envoyer les messages vers le smart host, qui est ici SMTP. L'attribut visible domain indique a smail d' ecrire le nom de domaine sp eci e dans tout le courrier emis, au lieu du nom local de la machine depuis laquelle le message est post e. Sur la passerelle UUCP geuze, le chier con g est un petit peu di erent: #
  • 240.
    14.2. Con gurationr eseau 223 # Nos noms de machines hostnames=bibine.com:gueuze.bibine.com:gueuze # # Comment nous d esirons nous appeler visible_name=bibine.com # # Dans le monde uucp, nous sommes connus sous le nom bibine.com uucp_name=bibine.com # # Smart transport: par uucp vers moria smart_path=moria smart_transport=uux # # Nous avons autorit e pour notre domaine auth_domains=bibine.com Ici, la m ethode pour indiquer a smail quel est notre nom local est di erente. Au lieu de lui donner une liste de domaines et de le laisser trouver le nom de machine par un appel syst eme, nous lui indiquons explicitement ce qu'il en est. La liste contient a la fois le nom pleinement quali e et celui non quali e, et le nom du domaine lui-m^ eme. Ainsi, smail reconna^ tra marcel@bibine.com comme une adresse locale et d elivrera le message a l'utilisateur marcel. La variable auth domains indique les domaines pour lesquels gueuze est consid er e comme ayant autorit e. C'est- a-dire que si smail re coit un courrier adress e a ma- chine.bibine.com, o u machine ne correspond a aucun h^ ote local, il refusera le message et le renverra a son exp editeur. Si cette entr ee n'est pas pr esente, tout mes- sage de ce type serait envoy e au smart host, qui le renverrait a son tour a gueuze, cette partie de ping-pong pouvant durer ind e niment. (Heureusement, il est possible de xer une limite maximale a ce genre de boucle et le message sera nalement perdu.) 14.2.2 Mise en route de smail Tout d'abord, vous devez d ecider si vous utiliserez smail en tant que d emon s epar e, ou si vous pr ef erez que ce soit inetd qui g ere le port SMTP et qui l'appelle le moment venu. G en eralement, la solution du d emon autonome est pr ef erable sur le serveur de courrier, car cela charge beaucoup moins la machine que de multiples invocations de smail chaque fois qu'une connexion se produit. Comme le serveur d elivre egalement le courrier aux utilisateurs, vous prendrez la solution par inetd sur la plupart des autres machines. Quel que soit le mode choisi, vous devez v eri er que le chier /etc/services de chaque h^ ote contient bien l'entr ee suivante: smtp 25/tcp # Simple Mail Transfer Protocol Elle d e nit le port TCP que smail devra utiliser pour les conversations SMTP. Le port 25 est le standard d e ni par le RFC ( ( Assigned Numbers ) ).
  • 241.
    224 Chapitre 14.Mise en route de smail En mode d emon, smail se place en t^ ache de fond et attend les connexions sur le port SMTP. Pour chacune, il cr ee un nouveau processus par l'appel syst eme fork() pour le temps de la conversation. Le d emon smail est g en eralement lanc e au d emarrage du syst eme depuis le script rc.inet2 a l'aide de la commande suivante: /usr/local/bin/smail -bd -q15m L'option -bd indique le mode d emon, et -q15m lui demande de traiter tous les messages eventuellement accumul es dans la queue de courrier toutes les 15 minutes. Si vous pr ef erez qu'il soit g er e par inetd, votre chier /etc/inetd.conf devra contenir une ligne comme celle-ci: smtp stream tcp nowait root /usr/sbin/smtpd smtpd Le programme smtpd devra ^ etre un lien symbolique vers le binaire de smail. Souvenez- vous que pour toute modi cation de ce chier, vous devez demander a inetd de le relire en lui envoyant un signal HUP, pour que les modi cations soient prises en compte. Le mode d emon et le mode inetd sont mutuellement exclusifs. Si vous utilisez smail en d emon, vous devez vous assurer de bien mettre en commentaire toute ligne relative au service smtp dans le chier inetd.conf. Inversement, si vous l'utilisez par inetd, v eri ez que rc.inet2 ne lance pas le d emon smail. 14.3 Si le courrier ne passe pas En cas de probl eme, vous disposez de plusieurs possibilit es d'investigation. La pre- mi ere chose a regarder, ce sont les chiers de trace de smail. Ils se trouvent dans /var/spool/smail/log et se nomment log le et paniclog. Le premier contient toutes les transactions, alors que le second n'est destin e qu'aux messages d'erreur relatifs a la con guration. Voici une entr ee du chier log le: 04/24/94 07:12:04: [m0puwU8-00023UB] received | from: root | program: sendmail | size: 1468 bytes 04/24/94 07:12:04: [m0puwU8-00023UB] delivered | via: gueuze.bibine.com | to: root@gueuze.bibine.com | orig-to: root@gueuze.bibine.com | router: smart_host | transport: smtp Nous y voyons qu'un message de l'utilisateur root ayant pour adresse de destination root@gueuze.bibine.com a et e correctement d elivr e a la machine gueuze par le protocole SMTP.
  • 242.
    14.3. Si lecourrier ne passe pas 225 Les courriers que smail ne peut pas d elivrer g en erent une entr ee similaire, mais avec un message d'erreur a la place de la partie delivered: 04/24/94 07:12:04: [m0puwU8-00023UB] received | from: root | program: sendmail | size: 1468 bytes 04/24/94 07:12:04: [m0puwU8-00023UB] root@gueuze.bibine.com ... deferred (ERR_148) transport smtp: connect: Connection refused L'erreur ci-dessus est typique lorsque smail reconna^ t correctement que le message doit ^ etre d elivr e a gueuze, mais qu'il n'arrive pas a se connecter sur le service SMTP de cette machine. Si cela se produit, vous devez avoir un probl eme de con guration, ou le support de TCP est absent dans votre binaire de smail. Ce cas n'est pas si rare. Il a circul e des versions pr ecompil ees de smail, y compris dans certaines distributions de Linux, sans support pour le r eseau TCP/IP. Si vous ^ etes en possession de l'une d'elles, vous devrez recompiler correctement le programme. Pour v eri er, vous pouvez tester si smail supporte TCP en connectant par telnet le port SMTP de votre machine. Voici a quoi ressemble une connection r eussie: $ telnet localhost smtp Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 renux.frmug.fr.net Smail3.1.28.1 #3 ready at Sun, 25 Dec 94 14:59 MET QUIT 221 renux.frmug.fr.net closing connection Si ce test n'ache pas la banni ere SMTP (la ligne commen cant par le code 220), v eri ez d'abord que votre con guration est vraiment correcte avant de vous lancer dans la compilation de smail, que nous allons maintenant d ecrire. Si vous rencontrez un probl eme que vous n'arrivez pas a situer dans les messages d'erreurs g en er es par smail, vous pouvez mettre en route les messages de d eboguage. Il sut d'employer l'option -d suivie d'une valeur facultative, sp eci ant le niveau de verbosit e d esir e (ne mettez pas d'espace entre l'option et la valeur). Toutes les op erations qu'e ectuera smail s'acheront alors a l' ecran, ce qui pourra vous aider a situer a quel moment le probl eme se produit. Si vraiment rien ne va plus, vous pouvez invoquer le mode Rogue de smail en lui passant l'option -bR sur la ligne de commandes. La page de manuel dit a peu pr es ceci: ( ( Entrez dans le monde hostile des messages g eants, o u d e lent les standards RFC. Tente de descendre au niveau de protocole 26, et de revenir a la normale. ) ) Cette option ne r eglera s^ urement pas vos probl emes, mais elle vous apportera peut- ^ etre quelque consolation.:-)
  • 243.
    226 Chapitre 14.Mise en route de smail 14.3.1 Compilation de smail Si vous ^ etes certain que le support r eseau manque dans votre version de smail, vous devrez vous procurer les sources. Vous les trouverez sur tous les sites di usant Linux, et bien d'autres serveurs FTP. Si vous avez obtenu Linux sur un CD-ROM, elles se trouvent sans aucun doute dessus3. Pour compiler smail, vous devez partir de l'ensemble des chiers de con guration four- nis avec la distribution newspak de Vince Skahan (vous gagnerez un temps pr ecieux, m^ eme si vous ^ etes un programmeur con rm e). Pour valider le support du r eseau TCP/IP, vous devez positionner la macro DRIVER CONFIGURATION du chier conf/EDITME soit a bsd-network, soit a arpa-network. La premi ere valeur est cor- recte pour une utilisation sur r eseau local, mais pour l'Internet il faudra choisir la seconde. La di erence est que l'option arpa-network inclut un pilote pour le service BIND, capable de reconna^ tre les enregistrements MX, ce que bsd-network ne sait pas faire. 14.4 Modes de distribution du courrier Comme nous l'avons vu, smail est capable de d elivrer les messages imm ediatement, ou de les mettre en attente dans une queue pour les g erer plus tard. Si vous choisissez la queue, smail stockera tout le courrier dans le r epertoire messages de /var/spool/smail. Il ne traitera rien tant qu'on ne lui demandera pas de le faire. (L'op eration s'appelle en anglais ( ( running the queue ) ), ce que certains traduisent de mani ere humoristique par ( ( vider la queue ) ).) Vous pouvez choisir parmi trois modes en positionnant l'attribut delivery mode dans le chier con g sur l'une des valeurs foreground, background, ou queued. Cela s elec- tionnera respectivement le traitement en avant-plan (gestion imm ediate des messages qui arrivent), en arri ere-plan (le courrier est d elivr e par un processus ls de smail), et en le d'attente. Le courrier entrant sera toujours mis dans une queue, quelle que soit l'option choisie, si la variable bool eenne queue only est positionn ee dans le chier con g. Si vous validez cette le d'attente, vous devrez vous assurer qu'elle est trait ee r eguli e- rement, en g en eral toutes les 10 a 15 minutes. Si vous utilisez smail en mode d emon, vous devrez ajouter l'option -q10m sur la ligne de commandes pour que la queue soit trait ee toutes les 10 minutes environ. Vous pouvez aussi faire invoquer la commande runq par cron a intervalles r eguliers. Cette commande est un lien sur smail. Vous pouvez acher le contenu courant de la queue en invoquant smail avec l'option -bp ; ou alors vous pouvez appeler la commande mailq, qui est l a encore un simple 3: Si vous avez ( ( achet e ) ) une distribution de Linux comportant smail, le vendeur est tenu de vous fournir le code source de ce programme sans autre suppl ement de prix que l'exp edition du support, selon la licence de copie de smail.
  • 244.
    14.5. Options diversesdu chier con g 227 lien sur smail: $ mailq -v m0pvB1r-00023UB From: root (in /var/spool/smail/input) Date: Sun, 24 Apr 94 07:12 MET DST Args: -oem -oMP sendmail root@gueuze.bibine.com Log of transactions: Xdefer: root@gueuze.bibine.com reason: (ERR_148) transport smtp: connect: Connection refused Elle montre ici qu'un seul message est en attente. La trace de transaction (qui ne sera ach ee que si vous appelez mailq avec l'option -v) peut donner la raison pour laquelle il est toujours en attente d'^ etre d elivr e. Si aucune tentative de distribution n'a encore et e faite, aucune trace de transaction ne sera indiqu ee. M^ eme si vous n'employez pas de le d'attente, smail l'utilisera quand m^ eme en cer- taines occasions, lorsqu'il ne peut d elivrer un message en raison d'un probl eme mo- mentan e. Dans le cas de connexions SMTP, ce peut ^ etre une machine injoignable, mais le courrier sera aussi stock e si le syst eme de chiers est plein. Il faut donc imp e- rativement traiter la queue au moins toutes les heures, sinon les eventuels messages en attente y resteraient pour l' eternit e. 14.5 Options diverses du chier con g Voici quelques-unes des options les plus utiles que vous pouvez positionner dans le chier de con guration: error copy postmaster Si cette variable bool eenne est positionn ee, tout message d'erreur g en erera un courrier au postmaster. Il faut faire suivre cette variable du signe plus (+) dans le chier con g pour valider ce mode. max hop count Si le nombre de hops (nombre d'h^ otes d eja travers es par le mes- sage) est sup erieur ou egal a cette valeur, toute tentative de distri- bution distante r esultera en un message d'erreur, retourn e a l'exp e- diteur. Cette option est utilis ee pour pr evenir les bouclages in nis. Le nombre de hops est g en eralement calcul e en comptant la quantit e de champs Received dans l'en-t^ ete du message, mais peut aussi ^ etre indiqu e explicitement par l'option -h de la ligne de commandes. La valeur par d efaut de cette variable est 20. postmaster L'adresse du postmaster. Si l'adresse Postmaster ne peut pas ^ etre r esolue en une adresse locale valide, c'est celle-ci qui sera utilis ee en dernier lieu. Sa valeur par d efaut est root.
  • 245.
    228 Chapitre 14.Mise en route de smail 14.6 Routage et distribution Smail divise la distribution du courrier en trois t^ aches di erentes, g er ees respective- ment par le module routeur, le module directeur, et le module de transport. Le routeur r esout toutes les adresses distantes, d eterminant vers quel h^ ote le message doit ^ etre envoy e et quel type de transport doit ^ etre utilis e. En fonction de la nature de la liaison, di erents transports comme UUCP ou SMTP peuvent ^ etre employ es. Les adresses locales sont pass ees au module directeur, qui r esout les alias ou les relais. Par exemple, ce peut ^ etre un alias ou une liste de di usion, ou l'utilisateur peut vouloir renvoyer tout son courrier a une autre adresse. Si la destination qui en r esulte est distante, elle est g er ee par le module routeur pour ce routage suppl ementaire, sinon il est d ecid e d'un transport pour la distribution locale. En principe, le cas le plus courant sera l'ajout a une bo^ te aux lettres, mais il est aussi possible que les messages soient envoy es a une commande externe ou ajout es a tout autre chier. Le module de transport est responsable de la m ethode de transfert qui a et e choisie. Il essaie de d elivrer le message, et en cas d' echec, g en ere un courrier de rejet ou le stocke en attente d'une nouvelle tentative. Avec smail, vous avez toute libert e pour con gurer ces t^ aches. Pour chacune, un cer- tain nombre de pilotes sont fournis, et vous pouvez choisir celui dont vous avez besoin. Vous les d ecrivez a smail dans trois chiers, nomm es routers, directors et transports, situ es dans /usr/lib/smail. Si ces chiers n'existent pas, le programme prendra des valeurs par d efaut raisonnables qui devraient fonctionner pour beaucoup de sites uti- lisant SMTP ou UUCP pour le transport. Si vous d esirez changer le comportement de smail concernant le routage, ou modi er un transport, vous devez prendre les chiers d'exemples fournis dans la distribution source du programme4. Copiez ces exemples dans /usr/lib/smail, et modi ez-les selon vos besoins. Vous trouverez des exemples dans l'annexe B. 14.7 Routage des messages Lorsqu'on lui passe un message, smail commence par regarder si la destination est locale ou distante. Si elle correspond a l'un des noms locaux con gur es dans le chier con g, le message est pass e au module directeur. Sinon, smail donne l'adresse de des- tination a un certain nombre de pilotes de routage pour trouver a quel site s'adresser. Ils peuvent ^ etre d ecrits dans le chier routers; s'il n'existe pas, c'est un ensemble de routeurs par d efaut qui sera utilis e. L'h^ ote de destination est pass e a tous les routeurs tour a tour, et celui qui trouve la route la plus sp eci que est s electionn e. Consid erons un message adress e a al- fred@toto.titi.com. Un routeur peut conna^ tre une route par d efaut pour tous les 4: Les chiers de con guration par d efaut se trouvent dans le r epertoire samples/generic.
  • 246.
    14.7. Routage desmessages 229 h^ otes du domaine titi.com, alors qu'un autre a des informations sur toto.titi.com. Dans ce cas, comme c'est le dernier qui est le plus sp eci que, c'est lui qui sera choisi. Si deux routeurs arrivent a egalit e, c'est le premier rencontr e dans le chier routers qui sera s electionn e. Maintenant, ce routeur sp eci e un transport a utiliser, par exemple UUCP, et g e- n ere une nouvelle adresse de destination. La nouvelle adresse est pass ee au mo- dule de transport avec le nom de la machine a laquelle renvoyer le message. Dans notre exemple ci-dessus, smail pourra trouver que toto.titi.com peut ^ etre atteint par UUCP en utilisant le chemin ernie!bert. Il g en erera alors une nouvelle cible, bert!toto.titi.com!alfred, qui sera l'adresse d'enveloppe pour le transport UUCP qui sera pass ee a ernie. Avec la con guration par d efaut, sont disponibles les modules routeurs suivants: { Si l'adresse de la machine de destination peut ^ etre r esolue par les fonctions gethostbyname(3) ou gethostbyaddr(3), le message sera d elivr e par SMTP. La seule exception sera lorsque cette adresse correspondra a la machine locale; il sera alors pass e au module directeur. Les adresses IP sont egalement reconnues comme noms l egaux, tant qu'elles peuvent ^ etre r esolues par la fonction gethostbyaddr(3). Par exemple, duge- nou@[149.76.12.4] est une adresse valide, bien que peu habituelle; elle cor- respond selon nos exemples a l'adresse de l'utilisateur dugenou sur la machine quark.physique.groucho.edu. Si votre machine est sur l'Internet, ces routeurs ne sont pas ceux qu'il vous faut car ils ne reconnaissent pas les enregistrements de type MX. Nous verrons plus loin ce qu'il faut faire dans ce cas. { Si /usr/lib/smail/paths, la base de donn ees pathalias, existe, smail essaiera de trouver la machine destinataire (amput ee de tout pseudo-domaine .uucp) dans ce chier. Le courrier a destination d'une adresse trouv ee par ce routeur sera d elivr e par UUCP en utilisant le chemin indiqu e dans la base de donn ees. { L'adresse (amput ee de tout pseudo-domaine .uucp) sera compar ee a la sortie de la commande uuname pour tester si la cible est en fait un voisin UUCP. Si c'est le cas, le message sera d elivr e par UUCP. { Si l'adresse n'a pu ^ etre g er ee par aucun des routeurs pr ec edents, le message sera d elivr e au smart host. Le chemin vers cette machine, et le transport a utiliser, sont con gur es dans le chier con g. Ces valeurs par d efaut fonctionnent pour beaucoup de petits sites, mais echouent d es que le routage n ecessaire est un peu plus compliqu e. Si vous ^ etes confront e a l'un des probl emes que nous allons expliquer ci-dessous, vous devrez installer votre propre chier routers pour modi er ces comportements par d efaut. Vous en trouverez un exemple dans l'annexe B, qui pourra vous servir de point de d epart. Certaines
  • 247.
    230 Chapitre 14.Mise en route de smail distributions de Linux sont fournies avec un ensemble de chiers de con guration etudi es pour contourner ces dicult es. Le pire des cas est probablement lorsque votre machine est reli ee a l'ext erieur a la fois par des liaisons UUCP et des connexions IP temporaires, avec PPP ou SLIP. Vous aurez dans votre chier hosts, le nom de certains h^ otes avec lesquels vous communiquez de temps en temps en IP, et smail tentera de d elivrer tout courrier pour ces machines par SMTP. Ce n'est s^ urement pas ce que vous d esirez, car m^ eme si la liaison SLIP est r eguli erement active, le transfert par SMTP est bien plus lent que par UUCP. Avec la con guration par d efaut, il n'y a pas de solution. Pour eviter ce probl eme, il va falloir que smail teste le chier paths avant d'interroger le resolver, et que vous mettiez tous les h^ otes pour lesquels vous voulez forcer un transport UUCP dans ce chier. Si vous ne voulez jamais utiliser SMTP, vous pou- vez egalement mettre en commentaire tout ce qui concerne les routeurs bas es sur le resolver. La con guration par d efaut sou re d'un autre probl eme: elle ne peut faire de r eel routage Internet, car le routeur ne sait pas evaluer les MX. Pour rem edier a cela, vous devez mettre entre commentaires le routeur par d efaut et supprimer les com- mentaires de celui qui utilise BIND. Il existe cependant des distributions de Linux qui fournissent un binaire de smail dans lequel le support de BIND n'est pas compil e. Si vous validez le bon routeur, mais que vous obtenez dans le chier paniclog un message disant: ( ( router inet hosts: driver bind not found ) ), vous devrez recompiler smail (voyez la section ( ( Con guration r eseau ) ) plus haut). En n, l'utilisation du pilote uuname est en g en eral une mauvaise id ee. D'une part, il g en erera une erreur de con guration si vous n'avez pas install e UUCP, car il ne trouvera pas la commande uuname. D'autre part, vous pouvez avoir plus de sites indiqu es dans votre chier Systems de UUCP, que vous n'avez de liaisons pour le courrier. Il peut s'agir de machines avec lesquelles vous n' echangez que des chiers ou des News Usenet, par exemple. Pour contourner le premier probl eme, il est facile de substituer un shell-script a la commande uuname, qui fera un simple exit 0. La solution la plus propre est toutefois d' editer le chier routers pour supprimer ce pilote. 14.7.1 La base de donn ees paths Smail s'attend a trouver la base de donn ees pathalias dans le chier paths du r epertoire /usr/lib/smail. Ce chier n'est pas obligatoire, aussi si vous ne comptez pas e ectuer de tels routages, supprimez-le s'il existe. Il s'agit d'un chier ASCII, tri e par ordre alphab etique, qui contient des entr ees mettant en correspondance des noms de sites avec des chemins UUCP. Le tri est obli- gatoire en raison de l'algorithme de recherche employ e par smail. Les commentaires ne sont pas autoris es, et les noms de sites doivent ^ etre s epar es des chemins par une
  • 248.
    14.8. Gestion desadresses locales 231 tabulation. Les bases de donn ees pathalias sont pr esent ees avec un peu plus de d etails dans le chapitre 13. Si vous r ealisez ce chier a la main, vous devez faire bien attention d'y mettre tous les noms l egaux d'un site. Par exemple, si une machine est connue a la fois par un nom purement UUCP et un nom pleinement quali e, il faudra une entr ee pour les deux cas. Le chier peut ^ etre tri e par la commande standard sort(1). Si votre site est juste un petit site UUCP isol e en bout de cha^ ne, aucun chier paths ne sera n ecessaire; il sut de con gurer le smart host dans le chier con g, et laisser cette machine s'occuper de router tous vos messages pour vous. 14.8 Gestion des adresses locales Le plus souvent, une adresse locale n'est qu'un nom d'utilisateur, et le message est d e- livr e dans sa bo^ te aux lettres, /var/spool/mail/nom-utilisateur. Mais il existe d'autres cas ou cette adresse est un alias, le nom d'une liste de di usion, ou une autre adresse a laquelle l'utilisateur veut renvoyer son courrier. Dans tous ces cas, cette adresse est expans ee en une nouvelle liste d'adresses, qui peuvent ^ etre soit locales, soit distantes. En dehors de ces cas ( ( normaux ) ), smail peut g erer d'autres types de destinations locales, comme des noms de chiers et des tubes vers des commandes. Ce ne sont pas a proprement parler des adresses, aussi est-il impossible d'envoyer un courrier a, disons, /etc/passwd@bibine.com; elles ne sont valides que si elles ont et e prises dans un chier de renvoi ou d'alias. Un chier sera n'importe quoi commen cant par le caract ere slash (/) ou par un tilde (~). Ce dernier r ef erence le r epertoire personnel de l'utilisateur et n'est possible que si le nom de chier provient du chier .forward ou d'une entr ee de renvoi dans la bo^ te aux lettres (voir plus loin). Lorsqu'il d elivre un message dans un chier, smail le rajoute a la n des donn ees d ej a existantes, ou cr ee le chier s'il n'existait pas. Une commande tube5 peut ^ etre n'importe quelle commande UNIX pr ec ed ee du sym- bole tube (|). Dans ce cas, smail passe la commande et ses arguments au shell, sans le | du d ebut. Le message est envoy e sur l'entr ee standard de cette commande. Par exemple, pour envoyer une liste de di usion dans un forum local, vous pouvez utiliser un shell-script, appelons-le mon ltre, et positionner un alias local qui d elivre tous les messages de cette liste a ce script en utilisant |monfiltre. Si l'invocation contient des espaces, il faut la mettre entre quotes ( ). En raison des probl emes de s ecurit e mis en jeu, la commande ne sera pas ex ecut ee si l'adresse a et e obtenue d'une fa con douteuse (par exemple, si le chier d'alias d'o u provient l'adresse est en ecriture pour tout le monde). 5: Pipe.
  • 249.
    232 Chapitre 14.Mise en route de smail 14.8.1 Utilisateurs locaux Une adresse locale d enote le plus souvent une bo^ te aux lettres d'utilisateur. Il s'agit d'un chier situ e dans /var/spool/mail qui porte le nom de cet utilisateur. Il a le mode 660, les propri etaires etant l'utilisateur et le groupe mail. S'il n'existe pas, smail le cr eera. Notez que, bien que /var/spool/mail soit le r epertoire standard pour les bo^ tes aux lettres, certains programmes peuvent ^ etre compil es avec d'autres chemins d'acc es, comme par exemple /usr/spool/mail. Si le courrier echoue toujours, v eri ez ce chemin d'acc es et cr eez un lien symbolique vers /var/spool/mail si n ecessaire. Smail requiert deux adresses: MAILER-DAEMON et Postmaster. Lorsqu'il g e- n ere un courrier de rejet pour un message impossible a d elivrer, une copie est en- voy ee au compte postmaster pour examen (au cas o u ce serait d^ u a un probl eme de con guration). L'utilisateur MAILER-DAEMON est utilis e comme exp editeur du message de rejet. Si ces adressesn'aboutissent pas a des comptes valides sur votresyst eme, smail enverra automatiquement tout ce qui est destin e a MAILER-DAEMON a postmaster, et si ce dernier n'existe pas non plus, ce sera root qui r ecup erera le tout. En g en eral, on positionne postmastercomme un alias du compte de l'utilisateur qui est responsable de l'administration du courrier electronique. 14.8.2 Renvoi de courrier Tout utilisateur peut rediriger son courrier vers une autre adresse par l'une des deux m ethodes support ees par smail. La premi ere consiste a mettre Forward to destinataire, : : : dans la premi ere ligne de son chier de bo^ te aux lettres. Tout son courrier sera alors envoy e aux destinataires indiqu es. L'autre solution est de cr eer un chier .forward dans son r epertoire personnel, contenant la liste des destinataires, s epar es par des virgules. Avec cette m ethode, toutes les lignes du chier sont lues et interpr et ees. N'importe quel type d'adresse peut ^ etre utilis e. Un exemple pratique de chier .for- ward pendant la p eriode des vacances pourrait ^ etre: marcel, |vacation La premi ere adresse d elivre le courrier a l'utilisateur marcel, et la seconde appelle la commande vacation, destin ee a envoyer un petit mot a l'exp editeur pour lui indiquer la situation.
  • 250.
    14.8. Gestion desadresses locales 233 14.8.3 Les alias Le programme smail est capable de manipuler des chiers d'alias compatibles avec ceux connus par le programme sendmail de Berkeley. Les entr ees sont de la forme: alias: destinataires O u destinataires est une liste d'adresses, s epar ees par des virgules, qui seront sub- stitu ees a cet alias. La liste peut s' etendre sur plusieurs lignes si la ligne suivante commence par une tabulation. Une possibilit e suppl ementaire o erte par smail consiste a pouvoir g erer des listes de di usion directement depuis le chier d'alias: si vous sp eci ez:include:fichier comme destinataire, smail lira le chier indiqu e et son contenu sera consid er e comme une liste de destinataires. Le chier d'alias principal se nomme /usr/lib/aliases. Si vous choisissez de rendre ce chier modi able par tout le monde, smail ne d elivreraaucun message aux commandes shell qu'il y rencontrera, par s ecurit e. Voici un exemple de chier /usr/lib/aliases : # bibine.com fichier /usr/lib/aliases hostmaster: marcel postmaster: marcel usenet: alfred # La liste de diffusion des d eveloppeurs. developpement: rene, remy, roberto, boudinus /var/mail/log/developpement owner-developpement: roberto # Les annonces d'int er^ et g en eral sont envoy ees a tout # le staff annonces: :include: /usr/lib/smail/staff, /var/mail/log/annonces owner-annonces: root # Envoie la liste de diffusion ppp vers un forum local. ppp-list: |/usr/local/lib/monfiltre local.listes.ppp Si une erreur se produit sur une adresse g en er ee depuis le chier aliases, smail ten- tera d'envoyer une copie du message d'erreur a l'alias ( ( owner ) ) (le propri etaire). Par exemple, si lors de la r epartition de la liste de di usion de d eveloppement, il est impossible de d elivrer le courrier a boudinus, une copie du message d'erreur sera post ee a l'exp editeur, aussi bien qu' a postmaster et owner-developpement (ro- berto dans cet exemple). Si cette derni ere adresse n'existe pas, aucun message d'erreur suppl ementaire ne sera g en er e. Lorsqu'il d elivre du courrier dans des chiers ou lorsqu'il invoque des programmes indiqu es dans le chier aliases, smail devient l'utilisateur nobody le temps de l'op e- ration, par s ecurit e. Ce peut ^ etre tr es g^ enant, particuli erement lorsque la destination est un chier. Dans l'exemple ci-dessus, les chiers du r epertoire log doivent pouvoir ^ etre ecrits par nobody et doivent lui appartenir, sinon rien n'y sera d elivr e.
  • 251.
    234 Chapitre 14.Mise en route de smail 14.8.4 Listes de di usion Au lieu d'utiliser le chier aliases, les listes de di usion peuvent aussi ^ etres g er ees par des chiers situ es dans le r epertoire /usr/lib/smail/lists. Une liste de di usion nomm ee restaurants sera d ecrite par le chier lists/restaurants, qui devra contenir les adresses des membres de cette liste, s epar ees par des virgules. Il peut y avoir plusieurs lignes, et on peut y introduire des commentaires par le traditionnel signe di ese. Pour chaque liste de di usion, un utilisateur (ou un alias) dont le nom est de la forme owner-nom-de-la-liste doit exister; toute erreur se produisant lors de la r esolution des adresses sera rapport ee a cet utilisateur. C'est aussi l'adresse qui sera utilis ee comme etant celle de l'exp editeur sur tous les messages emis, par le champ Sender de l'en-t^ ete. 14.9 Transport par UUCP Un certain nombre de transports compil es dans smail font appel a la s erie de pro- grammes composant UUCP. Dans un environnement UUCP, le courrier est g en era- lement d elivr e en invoquant rmail sur la machine distante, en lui passant le message sur l'entr ee standard et l'adresse d'enveloppe sur la ligne de commandes. Sur votre machine, rmail doit ^ etre un lien vers le programme smail. Lorsqu'il passe un message a UUCP, smail convertit l'adresse de destination en un chemin UUCP, avec la notation par bangs. Par exemple, utilisateur@machine sera transform een machine!utilisateur.Chaque occurrence de l'op erateurd'adressage% est pr eserv ee,par cons equentune adressecomme utilisateur%machine@passerelle deviendra alors passerelle!utilisateur%machine. Toutefois, smail ne g en erera ja- mais ce type d'adresses lui-m^ eme. Alternativement, smail peut envoyer et recevoir des lots BSMTP par UUCP. Avec BSMTP, un ou plusieurs messages sont rassembl es en un seul lot qui contient les commandes que le MTA local aurait ex ecut ees si une v eritable connexion SMTP avait et e etablie. Cette m ethode est souvent utilis ee pour economiser de la place disque. Le chier transports donn e en exemple dans l'annexe B contient un transport bsmtp associ e qui g en ere des lots BSMTP partiels dans un r epertoire d'attente. Ils devront ensuite ^ etre combin es en lots d e nitifs par un shell-script qui rajoutera les commandes HELO et QUIT n ecessaires. Pour valider le transport bsmtp sur des liens UUCP sp eci ques, vous devrez utiliser les chiers method (consultez la page de manuel smail(5) pour plus de d etails). Si vous n'avez qu'une seule liaison UUCP et que vous employez le routeur smart host, vous pouvez mettre en service les lots SMTP en mettant la variable de con guration smart transport a bsmtp au lieu de uux. Pour recevoir des lots SMTP via UUCP, vous devez v eri er que vous poss edez la commande d'extraction correspondant aux lots que le site distant vous pr epare. Si ce
  • 252.
    14.10. Transport parSMTP 235 dernier utilise aussi smail, vous devrez cr eer un lien nomm e rsmtp vers le programme smail. S'il s'agit de sendmail, vous devrez installer un shell-script que vous appellerez /usr/bin/bsmtp, qui fera tout simplement ( ( exec rsmtp ) ) (un lien symbolique ne marchera pas). 14.10 Transport par SMTP Smail supporte un pilote SMTP permettant de d elivrer du courrier par une connexion TCP6. Il est capable de d elivrer un message a un nombre quelconque d'adresses sur une machine, dont le nom est sp eci e soit sous la forme pleinement quali ee pouvant ^ etre r esolu par la couche r eseau, soit sous forme d'adresse IP en notation d ecimale, contenue entre crochets. G en eralement, les adresses r esolues par l'un des pilotes des routeurs BIND, gethostbyname(3) ou gethostbyaddr(3) seront atteintes par le transport SMTP. Le pilote SMTP tentera imm ediatement de se connecter a la machine distante par le port smtp indiqu e dans /etc/services. Si la connexion ne peut se faire, smail retentera l'op eration un peu plus tard. D elivrer du courrier sur l'Internet n ecessite que les routes vers l'adresse de destina- tion soient sp eci ees selon le format des adresses de routage (route-addr) d ecrit dans le chapitre 13, plut^ ot que dans la notation par bangs7. Par cons equent, smail trans- formera une adresse comme utilisateur%machine@passerelle, o u passerelle est atteinte, par exemple, par le chemin machine1!machine2!machine3, en l'adresse de routage: @machine2,@machine3:utilisateur%machine@passerelle, qui sera donc en- voy ee a machine1 comme adresse d'enveloppe du message. Pour valider ces transfor- mations (avec le pilote BIND int egr e), vous devrez editer l'entr ee pour le pilote smtp dans le chier transports. Un exemple de chier transports est donn e dans l'annexe B. 14.11 Quali cation de noms Il est quelquefois n ecessaire de d etecter les noms d'h^ otes non quali es (c'est- a-dire sans nom de domaine) sp eci es dans une adresse d'exp editeur ou de destinataire, par exemple en cas de passerelle entre deux r eseaux dont l'un n ecessite des noms pleinement quali es. Sur un relais Internet-UUCP, les noms de machines non qua- li es doivent ^ etre mis dans le pseudo-domaine uucp par d efaut. Des modi cations d'adresses autres que celles-ci sont tr es discutables. 6: Les auteurs l'appellent ( ( simple) ). Pour les futures versions de smail, ils annoncent une r e ecriture totale qui g erera ce cas beaucoup plus ecacement. 7: Toutefois, l'usage de routes sur l'Internet est fortement d econseill e. Il faut utiliser des noms pleinement quali es.
  • 253.
    236 Chapitre 14.Mise en route de smail Le chier /usr/lib/smail/qualify indique a smail quels noms de domaines rajouter a quels noms d'h^ otes. Les entr eesde ce chier consistent en un nom de machine commen- cant sur la premi ere colonne, suivi par un nom de domaine. Le signe di ese introduit un commentaire. Ces entr ees sont recherch ees dans l'ordre o u elles apparaissent. Si ce chier n'existe pas, aucune quali cation de noms ne sera e ectu ee. Le caract ere * correspond a tout nom de machine, ce qui vous permet d'associer tout h^ ote non mentionn e auparavant dans un domaine par d efaut. Il ne doit ^ etre utilis e que pour la derni ere entr ee, bien entendu. A ( ( La bi ere virtuelle ) ), toutes les machines ont et e con gur ees pour utiliser des noms pleinement quali es dans les adresses des exp editeurs. Les adresses re cues non quali ees sont consid er ees ^ etre toutes dans le domaine uucp, aussi il sut d'une entr ee dans le chier qualify: # /usr/lib/smail/qualify, derni ere modification le 25 Dec. 94 par Noel # * uucp
  • 254.
    237 Chapitre 15 Sendmail+IDA 15.1 Introduction a Sendmail+IDA On dit souvent que celui qui n'a jamais edit e un chier sendmail.cf n'est pas un v eritable administrateur UNIX. La l egende dit aussi qu'il ne faut jamais le faire deux fois, sous peine de devenir fou. Sendmail est un programme o rant des possibilit es incroyables. Pour la plupart des gens, il est aussi incroyablement dicile a apprendre et a comprendre. Tout pro- gramme dont la r ef erence absolue (sendmail, par Brian Costales, Eric Allman et Neil Rickert) fait 792 pages, a de quoi epouvanter les plus t em eraires. Sendmail+IDA est di erent. Avec lui, plus besoin d' editer le redoutable chier send- mail.cf, il permet a l'administrateur de d e nir le routage et la con guration sp eci ques au site par des chiers relativement simples a comprendre, appel es tables. Passer a Sendmail+IDA peut vous faire economiser beaucoup d'heures de travail et de stress. Compar e aux principaux autres agents de transport de courrier, il n'y a probablement rien qui ne puisse ^ etre fait plus rapidement et simplement qu'avec Sendmail+IDA. Les t^ aches classiques consistant a con gurer un site UUCP ou Internet deviennent simples a accomplir. Les con gurations qui sont normalement longues et complexes sont faciles a cr eer et a maintenir. A l'heure o u nous ecrivons ces lignes, la version courante, sendmail5.67b+IDA1.5, est disponible par FTP anonyme sur le site vixen.cso.uiuc.edu. Elle se compile sous Linux sans aucune modi cation1. 1: La version courante, a l'heure o u ces lignes sont traduites, est sendmail 8.6.9, qui est fournie sous forme binaire dans les distributions de Linux et utilis ee sur bien d'autres syst emes. Elle est beaucoup plus simple et universelle, et sa con guration n'a plus rien a voir avec sendmail5.67b+IDA1.5 qui, bien que d ecrit dans ce livre, est obsol ete.
  • 255.
    238 Chapitre 15.Sendmail+IDA Tous les chiers de con guration requis pour la compilation de Sendmail+IDA, son installation et son utilisation sous Linux sont inclus dans l'archive newspak-2.2.tar.gz, disponible par FTP anonyme sur le site d'archivage sunsite.unc.edu, dans le r eper- toire /pub/Linux/system/Mail. 15.2 Aper cu des chiers de con guration Le programme sendmail se con gure par un chier de con guration syst eme (typique- ment /etc/sendmail.cf ou /usr/lib/sendmail.cf) dont la syntaxe ne ressemble a aucun des langages que vous avez pu rencontrer auparavant. Editer sendmail.cf pour obtenir une con guration sur mesure peut ^ etre une exp erience traumatisante pour certains. Avec Sendmail+IDA, tout cela devient du pass e. Toutes les options sont d e nies par des tables et une syntaxe tr es simple a assimiler. Elles sont con gur ees en ex ecutant m4 (un processeur de macro-instructions) ou dbm (un processeur de base de donn ees) sur un certain nombre de chiers, par l'interm ediaire de Make les fournis avec les sources. Le chier sendmail.cf ne d e nit que le comportement par d efaut du syst eme. Pra- tiquement, toutes les adaptations sp eci ques sont faites par un certain nombre de tables optionnelles plut^ ot qu'en modi ant directement sendmail.cf. Voici la liste de ces tables: mailertable D e nit le comportement pour les domaines ou les h^ otes distants. uucpxtable Force le transfert du courrier par UUCP pour les h^ otes qui sont au format DNS. pathtable D e nit les chemins UUCP vers les domaines ou h^ otes distants. uucprelays Court-circuite le chemin pathaliaspour les h^ otes distants bien connus. genericfrom Convertit les adresses internes en adresses g en eriquesvisibles du reste du monde. xaliases Convertit les adresses g en eriques en adresses internes valides. decnetxtable Convertit les adresses RFC-822 en adresse DECnet. 15.3 Le chier sendmail.cf Le chier sendmail.cf de Sendmail+IDA n'est pas edit e a la main, mais est g en er e a partir d'un chier de con guration m4 fourni par l'administrateur syst eme local. Nous appellerons ce chier sendmail.m4.
  • 256.
    15.3. Le chiersendmail.cf 239 Il contient quelques d e nitions, et ne fait essentiellement que pointer vers les tables, o u le vrai travail se fait. En g en eral, il sut de sp eci er les informations suivantes: { Les noms de chiers et chemins d'acc es utilis es sur le syst eme local. { Le nom (ou les noms) par lequel le site est connu pour le courrier electronique. { Quel programme doit d elivrer le courrier par d efaut (et peut-^ etre quel est le smart-host). Toute une vari et e de param etres peuvent ^ etre d e nis pour etablir le comportement du site local ou pour forcer la con guration compil ee par d efaut. Ces options sont identi ees dans le chier ida/cf/OPTIONS, dans le r epertoire source. Un chier sendmail.m4 destin e a une con guration minimale (UUCP ou SMTP avec tout le courrier non local envoy e a un smart-host directement connect e) peut ne pas d epasser 10 a 15 lignes, commentaires exclus. 15.3.1 Exemple de chier sendmail.m4 Un chier sendmail.m4 pour la machine gueuze de l'entreprise ( ( La bi ere virtuelle ) ) est repr esent e dans la gure 15.1. Pour le courrier avec tous les h^ otes du r eseau des brasseurs, gueuze utilise SMTP; et elle envoie tous les messages pour les autres destinations par UUCP a moria, qui est la passerelle vers l'Internet. En fait, la plupart des gens n'appellent pas leur chier de con guration sendmail.m4. Ils lui donnent un nom en relation avec celui de la machine; gueuze.m4 dans notre cas. Ce nom n'a aucune importance, tant que la sortie s'appelle bien sendmail.cf. 15.3.2 Param etres couramment utilis es dans sendmail.m4 Un petit nombre d'items du chier sendmail.m4 sont syst ematiquement n ecessaires, les autres peuvent ^ etre ignor es si les valeurs par d efaut vous conviennent. Les sections qui vont suivre d ecrivent chaque param etre de l'exemple de la gure 15.1 avec plus de d etails. Param etres d e nissant les chemins d'acc es dnl #define(LIBDIR,/usr/local/lib/mail)dnl # o u vont les fichiers support LIBDIR d e nit le r epertoire dans lequel Sendmail+IDA ira chercher les chiers de con guration, les di erentes tables dbm, et les d e nitions locales sp eciales. Dans une distribution binaire typique, ce param etre est compil e dans le programme et n'a pas besoin d'^ etre explicitement indiqu e dans le chier sendmail.m4.
  • 257.
    240 Chapitre 15.Sendmail+IDA dnl #---------------- EXEMPLE DE FICHIER SENDMAIL.M4 ------------------- dnl # (La cha^ ne 'dnl' est l' equivalent m4 d'un commentaire de ligne) dnl # Il est pr ef erable de ne pas changer le LIBDIR compil e dans le programme dnl #define(LIBDIR,/usr/local/lib/mail)dnl # o u vont les fichiers support define(LOCAL_MAILER_DEF, mailers.linux)dnl # prog. d elivrant le courrier local define(POSTMASTERBOUNCE)dnl # postmaster re coit les rejets define(PSEUDODOMAINS, BITNET UUCP)dnl # ne pas essayer DNS sur ceux-l a dnl #------------------------------------------------------------------- dnl # define(PSEUDONYMS, gueuze.bibine.com gueuze.UUCP bibine.com) dnl # noms par lesquels nous sommes dnl # connus define(DEFAULT_HOST, gueuze.bibine.com)dnl # notre 'nom' primaire pour dnl # le courrier define(UUCPNAME, gueuze)dnl # notre nom uucp dnl # dnl #------------------------------------------------------------------ dnl # define(UUCPNODES, |uuname|sort|uniq)dnl # nos voisins uucp define(BANGIMPLIESUUCP)dnl # assurons-nous que le courrier define(BANGONLYUUCP)dnl # uucp sera trait e correctement define(RELAY_HOST, moria)dnl # notre smart-host define(RELAY_MAILER, UUCP-A)dnl # nous joignons moria par uucp dnl # dnl #-------------------------------------------------------------------- dnl # dnl # les diff erentes tables dbm de recherche dnl # define(ALIASES, LIBDIR/aliases)dnl # alias syst eme define(DOMAINTABLE, LIBDIR/domaintable)dnl # domainisation des noms define(PATHTABLE, LIBDIR/pathtable)dnl # base de donn ees chemins uucp define(GENERICFROM, LIBDIR/generics)dnl # adresses 'from' g en eriques define(MAILERTABLE, LIBDIR/mailertable)dnl # mailers par h^ ote ou par domaine define(UUCPXTABLE, LIBDIR/uucpxtable)dnl # chemins vers les h^ otes uucp define(UUCPRELAYS, LIBDIR/uucprelays)dnl # court-circuite pathalias dnl # dnl #----------------------------------------------------------------------- dnl # dnl # inclusion du 'vrai' code qui fait fonctionner le tout dnl # (fourni avec le code source) dnl # include(Sendmail.mc)dnl # ENTR EE INDISPENSABLE !!! dnl # dnl #---------------- FIN DE L'EXEMPLE DE FICHIER SENDMAIL.M4 --------------- Fig. 15.1 - Exemple du chier de con guration gueuze.m4.
  • 258.
    15.3. Le chiersendmail.cf 241 La ligne de l'exemple commence par les trois lettres dnl, ce qui signi e qu'il s'agit d'un commentaire. Pour modi er l'endroit o u vous d esirez placer les chiers de con guration, supprimez la cha^ ne dnl, indiquez le chemin d'acc es voulu, puis reconstruisez et r einstallez le chier sendmail.cf. D e nition du programme d elivrant le courrier local define(LOCAL_MAILER_DEF, mailers.linux)dnl # prog. pour courrier local La plupart des syst emes d'exploitation proposent un programme pour d elivrer le courrier local. Sur beaucoup de versions d'UNIX, les noms de ces programmes sont d ej a inclus dans le binaire de sendmail. Sous Linux, il est n ecessaire d'indiquer quel sera le programme appropri e car il n'est pas forc ement pr esent dans la distribution que vous avez install ee. Il sut de sp eci er la valeur de LOCAL MAILER DEF dans le chier sendmail.m4. Par exemple, pour que ce soit le programme deliver, tr es souvent utilis e dans ce but2, vous positionnerez LOCAL MAILER DEF a mailers.linux. Le chier suivant devra alors ^ etre install e sous le nom de mailers.linux dans le r e- pertoire point e par LIBDIR. Il d e nit le programme deliver comme le mailer interne Mlocal avec les param etres corrects, a n que sendmail puisse correctement d elivrer le courrier destin e au syst eme local. A moins que vous ne soyez un expert sendmail, vous n'aurez pas int er^ et a modi er cet exemple. # -- /usr/local/lib/mail/mailers.linux -- # (local mailers for use on Linux ) Mlocal, P=/usr/bin/deliver, F=SlsmFDMP, S=10, R=25/10, A=deliver $u Mprog, P=/bin/sh, F=lsDFMeuP, S=10, R=10, A=sh -c $u Il existe aussi une valeur par d efaut pour deliver dans le chier Sendmail.mc qui est inclus dans sendmail.cf. Pour le sp eci er, vous ne devez pas utiliser le chier mailers.linux mais d e nir a la place, dans votre chier sendmail.m4, ce qui suit: dnl --- (in sendmail.m4) --- define(LOCAL_MAILER_DEF, DELIVER)dnl # prog. pour courrier local Malheureusement, Sendmail.mc consid ere que deliver est install e dans le r epertoire /bin, ce qui n'est pas le cas dans les distributions de Linux comme Slackware, qui le placent dans /usr/bin. Dans ce cas, vous devrez soit le tromper avec un lien symbo- lique, soit recompiler a partir des sources pour qu'il fonctionne depuis /bin. 2: Le programme deliver est l'uvre de Chip Salzenberg (chip%tct@ateng.com). Il fait partie de plusieurs distributions de Linux et peut ^ etre trouv e sur les archives FTP anonymes courantes.
  • 259.
    242 Chapitre 15.Sendmail+IDA G erer les courriers rejet es define(POSTMASTERBOUNCE)dnl # postmaster re coit les rejets Beaucoup de sites consid erent qu'il est tr es important d'assurer les envois et r eceptions de courrier avec un taux de r eussite proche de 100 %. Bien que l'examen des traces de syslogd(8) soit utile, l'administrateur a g en eralement besoin de voir les en-t^ etes des messages rejet es a n de pouvoir d eterminer s'ils n'ont pu ^ etre d elivr es en raison d'une erreur de l'utilisateur ou d'un probl eme de con guration sur l'un des syst emes mis en jeu. D e nir POSTMASTERBOUNCE permettra d'envoyer une copie de chaque message rejet e a l'utilisateur d e ni comme Postmaster du syst eme. H elas! positionner ce param etre a pour cons equence d'envoyer egalement le texte du message non d elivr eau postmaster, ce qui est une atteinte a la vie priv ee des personnes utilisant le courrier sur son syst eme. Les administrateurs de site doivent par principe tenter de se retenir de lire des mes- sages priv es qui ne leur sont pas adress es (ou le faire par des moyens techniques, par exemple a l'aide de shell-scripts qui suppriment le contenu des courriers rejet es dont ils re coivent une copie). Param etres relatifs au DNS define(PSEUDODOMAINS, BITNET UUCP)dnl # ne pas essayer DNS sur ceux-l a Il existe plusieurs r eseaux bien connus qui sont souvent r ef erenc esdans des adresses de courrier pour des raisons historiques, mais qui ne sont pas valides lors d'une recherche par le DNS. D e nir PSEUDODOMAINS evite d'inutiles requ^ etes aux serveurs de noms, qui echoueront toujours. D e nition des noms du syst eme local define(PSEUDONYMS, gueuze.bibine.com gueuze.UUCP bibine.com) dnl # noms par lesquels nous sommes dnl # connus define(DEFAULT_HOST, gueuze.bibine.com)dnl # notre 'nom' primaire pour dnl # le courrier Souvent, les syst emes doivent cacherleur vraieidentit e, servirde passerellede courrier, ou recevoir et traiter des messages adress es a d'anciens noms, sous lesquels ils etaient connus auparavant. PSEUDONYMS sp eci e la liste de tous les noms pour lesquels le syst eme local ac- ceptera du courrier.
  • 260.
    15.3. Le chiersendmail.cf 243 DEFAULT HOST sp eci e le nom qui appara^ tra dans les messages emis depuis le syst eme local. Il faut absolument que ce param etre soit positionn e a une valeur valide, sinon toutes les r eponses aux courriers ne pourront ^ etre d elivr ees. Param etres relatifs a UUCP define(UUCPNAME, gueuze)dnl # notre nom uucp define(UUCPNODES, |uuname|sort|uniq)dnl # nos voisins uucp define(BANGIMPLIESUUCP)dnl # assurons-nous que le courrier define(BANGONLYUUCP)dnl # uucp sera trait e correctement Tr es souvent, les syst emes sont connus sous un nom pour le DNS et sous un autre pour UUCP. UUCPNAME vous permet de d e nir un nom d'h^ ote di erent, qui appara^ tra dans les en-t^ etes du courrier emis par UUCP. UUCPNODES d e nit les commandes qui retournent une liste de machines avec les- quelles vous ^ etes directement en liaison UUCP. BANGIMPLIESUUCP et BANGONLYUUCP assurent que le courrier adress e avec la notation par bangs UUCP sera trait e selon la m ethode UUCP plut^ ot que par celle du DNS utilis ee de nos jours sur l'Internet. Machines relais (smart-host) define(RELAY_HOST, moria)dnl # notre smart-host define(RELAY_MAILER, UUCP-A)dnl # nous joignons moria par uucp Beaucoup d'administrateurs syst eme ne veulent pas passer tout leur temps a con - gurer leur machine pour s'assurer qu'elle peut vraiment atteindre tous les h^ otes de la plan ete. Ils pr ef erent envoyer tout le courrier dont la destination est inconnue vers une machine relais, qui saura prendre ce routage en charge, que l'on appelle le smart-host. RELAY HOST d e nit le nom UUCP d'une telle machine. RELAY MAILER d e nit l'agent de transport utilis e pour relayer les messages. Il est important de noter que positionner ces param etres aura pour cons equence d'en- voyer tout votre courrier sortant vers ce syst eme distant, ce qui a ectera la charge de cette machine. Assurez-vous auparavant d'avoir obtenu l'accord de son administrateur avant de lui envoyer tout ce travail. Tables de con guration define(ALIASES, LIBDIR/aliases)dnl # alias syst eme define(DOMAINTABLE, LIBDIR/domaintable)dnl # domainisation des noms define(PATHTABLE, LIBDIR/pathtable)dnl # base de donn ees chemins uucp define(GENERICFROM, LIBDIR/generics)dnl # adresses 'from' g en eriques define(MAILERTABLE, LIBDIR/mailertable)dnl # mailers par h^ ote ou par domaine
  • 261.
    244 Chapitre 15.Sendmail+IDA define(UUCPXTABLE, LIBDIR/uucpxtable)dnl # chemins vers les h^ otes uucp define(UUCPRELAYS, LIBDIR/uucprelays)dnl # court-cirtuite pathalias Avec ces macros, vous pouvez changer l'endroit o u Sendmail+IDA recherche les di- versestables dbm qui d e nissentle comportement ( ( r eel) ) du syst eme.Il est raisonnable de les laisser dans LIBDIR. Le chier de base Sendmail.mc include(Sendmail.mc)dnl # ENTR EE INDISPENSABLE !!! Les auteurs de Sendmail+IDA fournissent le chier Sendmail.mc, qui est le cur de ce qui deviendra le chier sendmail.cf. De nouvelles versions sont di us ees p eriodi- quement, pour corriger des bogues ou rajouter des fonctionnalit es sans avoir besoin d'une distribution compl ete ou de recompiler sendmail. Par cons equent, il est tr es important de ne jamais editer ce chier. Mais quelles sont donc les entr ees vraiment n ecessaires? Lorsque vous n'utilisez aucune des tables dbm optionnelles, Sendmail+IDA d elivre le courrier par le DEFAULT MAILER (et eventuellement par RELAY HOST et RE- LAY MAILER) d e ni dans le chier sendmail.m4 servant a g en erer sendmail.cf. Il est facile de modi er ce comportement par les entr ees des chiers domaintable et uucpxtable. Un site ordinaire sur l'Internet, interrogeant le DNS, ou qui est uniquement UUCP et envoie tout son courrier vers son smart-host, n'a probablement besoin d'aucune entr ee sp eci que dans les tables. Pratiquement, tous les syst emes doivent positionner les macros DEFAULT HOST et PSEUDONYMS, qui d e nissent le nom canonique du site et les alias sous lesquels il est connu, et DEFAULT MAILER. Si tout ce que vous faites est de passer le travail a une machine relais, vous n'aurez pas besoin de positionner ces valeurs par d efaut car cela fonctionne automatiquement. Les machines UUCP n ecessiteront sans doute d'assigner UUCPNAME a leur nom ociel UUCP, ainsi que de positionner RELAY MAILER et RELAY HOST, qui valide l'utilisation d'un smart-host, le transport utilis e pour le courrier sera d e ni dans RELAY MAILER et devra normalement ^ etre UUCP-A pour les sites UUCP. Si votre site est uniquement SMTP et utilise le DNS, vous devrez changer la valeur assign ee a DEFAULT MAILER pour y mettre TCP-A et probablement supprimer les deux lignes RELAY MAILER et RELAY HOST.
  • 262.
    15.4. Pr esentation destables de Sendmail+IDA 245 15.4 Pr esentation des tables de Sendmail+IDA Sendmail+IDA propose un certain nombre de tables qui vous permettent de modi er le comportement par d efaut de sendmail (sp eci e dans le chier sendmail.m4) et de d e nir des modes de fonctionnements particuliers pour certaines situations, certains syt emes distants, ou certains r eseaux. Ces tables sont trait ees par dbm via le Make le fourni dans la distribution. La plupart des sites n'auront besoin que de tr es peu de tables, voire pas du tout. Si le v^ otre n'en n ecessite aucune, le mieux est alors de leur donner une taille de 0 octet (avec la commande touch) et d'utiliser le Make le par d efaut se trouvant dans LIBDIR, plut^ ot que de modi er ce Make le lui-m^ eme. 15.4.1 La table mailertable Le chier mailertable d e nit des traitements sp eciaux pour des h^ otes ou r eseaux sp e- ci ques. Il est souvent employ e sur les sites Internet pour s electionner un relais de courrier ou passerelle interm ediaire pour atteindre un r eseau donn e, et pour indiquer un protocole particulier (UUCP ou SMTP) a utiliser. Les sites UUCP n'ont g en era- lement pas besoin de ce chier. L'ordre est important, car sendmail lit le chier de haut en bas et traite les messages en fonction de la premi ere r egle correspondante qu'il rencontre. Par cons equent, il faut placer les r egles les plus sp eci ques au d ebut, et les plus g en erales a la n. Supposons que vous voulez envoyer tout le courrier destin e au d epartement informa- tique de l'universit e Groucho Marx (cs.groucho.edu) par UUCP vers un relais nomm e ada. Pour cela, il vous faudra une entr ee dans mailertable comme celle-ci: # (extrait de mailertable) # # renvoie tout le courrier pour le domaine .cs.groucho.edu # par UUCP sur la machine ada. UUCP-A,ada .cs.groucho.edu Supposons maintenant que vous d esirez que tout le courrier pour le gros domaine groucho.edu aille vers un h^ ote relais di erent (grostas) pour la r esolution des adresses et la distribution. La table mailertable deviendra alors comme ceci: # (extrait de mailertable) # # renvoie tout le courrier pour le domaine .cs.groucho.edu # par UUCP sur la machine ada. UUCP-A,ada .cs.groucho.edu # # renvoie tout le courrier pour le domaine groucho.edu par UUCP # vers la machine grostas. UUCP-A,grostas .groucho.edu
  • 263.
    246 Chapitre 15.Sendmail+IDA Comme nous l'avons dit plus haut, l'ordre des entr ees est important. Si les deux r egles ci-dessus apparaissaient dans le sens inverse, tout le courrier vers .cs.groucho.edu serait dirig e par la r egle g en erale vers grostas au lieu d'^ etre trait e par la r egle plus sp eci que devant l'envoyer vers ada. Dans l'exemple de mailertable ci-dessus, UUCP-A indique a sendmail de d elivrer le courrier par UUCP avec des en-t^ etes domainis es. La virgule entre la m ethode et le nom du syst eme lui indique d'envoyer le message a ada pour la r esolution d'adresses et l'exp edition (ce n'est pas qu'un caract ere s epa- rateur, il peut avoir plusieurs valeurs, nous allons voir ca). Les entr ees mailertable ont le format suivant: m ethode d elimiteur h^ ote-relais h^ ote ou domaine Il y a plusieurs m ethodes possibles. Les di erences se trouvent g en eralement dans la mani ere dont les adresses sont trait ees. Les valeurs typiques sont TCP-A (TCP/IP avec des adresses de type Internet), TCP-U (TCP/IP avec des adresses de type UUCP), et UUCP-A (UUCP avec des adresses de type Internet). Le caract ere qui s epare la m ethode de la partie h^ ote sur la gauche d'une ligne mai- lertable d e nit comment l'adresse sera modi ee. ! Un point d'exclamation supprime le nom d'h^ ote destinataire avant l'envoi. Vous l'utiliserez essentiellement lorsque vous voulez forcer le courrier vers un site distant mal con gur e. , Une virgule ne modi e jamais l'adresse. Le message est envoy e par la m ethode indiqu ee vers la machine relais sp eci ee. : Le caract ere ( ( deux-points ) ) supprime le nom d'h^ ote destinataire seulement s'il existe des machines interm ediaires entre vous et la destination. Donc, dans toto!titi!marcel, toto sera supprim e, alors que xyzzy!alfred restera inchang e. Ce qui est important, c'est que mailertable ne r e ecrit que l'enveloppe (pour que le sys- t eme distant accepte le message). R e ecrire autre chose que l'enveloppe est en g en eral tr es mal vu (et peut compl etement d er egler la con guration du courrier). 15.4.2 La table uucpxtable G en eralement, le courrier vers des machines avec un nom pleinement quali e est d eli- vr e par SMTP, en interrogeant le DNS ou bien via le smart-host. La table uucpxtable force l'utilisation du routage UUCP en convertissant le nom domainis e en style UUCP, sans domaine.
  • 264.
    15.4. Pr esentation destables de Sendmail+IDA 247 Cette m ethode est utilis ee lorsque vous ^ etes une passerelle courrier pour un site, ou lorsque vous voulez envoyer directement des messages vers une liaison UUCP directe plut^ ot que de passer par la liaison par d efaut et plusieurs autres syst emes interm ediaires. Les sites UUCP qui sont connect es a vos voisins UUCP utilisant des en-t^ etes do- mainis es utiliseront ce chier pour forcer l'envoi du courrier par la liaison UUCP directe entre les deux syst emes, plut^ ot que d'utiliser la route moins directe par RE- LAY MAILER et RELAY HOST ou via DEFAULT MAILER. Les sites Internet qui n'utilisent pas UUCP n'auront pas besoin de uucpxtable. Supposons que vous o rez le renvoi du courrier a un syst eme appel e sesame.comdans le DNS et sesame dans les cartes UUCP. Vous aurez besoin de l'entr ee suivante dans uucpxtable pour forcer le courrier pour cette machine a passer par votre connexion UUCP directe: #============== /usr/local/lib/mail/uucpxtable ============ # Le courrier pour utilisateur@sesame.com est r e ecrit sous # la forme sesame!utilisateur et par cons equent sera d elivr e # par UUCP # sesame sesame.com # #---------------------------------------------------------- 15.4.3 La table pathtable Le chier pathtable sert a d e nir explicitement le routage vers des machines ou des r eseaux distants. Son format est celui de la base de donn ees pathalias, tri e par ordre alphab etique. Les deux champs de chaque ligne doivent ^ etre s epar es par un caract ere de tabulation. La plupart des syst emes n'ont besoin d'aucune entr ee dans pathtable. #=============== /usr/local/lib/mail/pathtable ================ # # Il s'agit d'un fichier au format pathalias permettant de # forcer le passage du courrier pour vos voisins UUCP par # le lien direct UUCP, au lieu de lui laisser prendre le long # chemin normal, par le smart-host. # # Le s eparateur doit absolument ^ etre un vrai caract ere de tabulation. # # Route le courrier a travers un ou plusieurs sites interm ediaires # vers un syst eme distant utilisant des adresses de style UUCP. # sesame!ernie!%s ernie # # Renvoi vers un syst eme qui est un voisin UUCP d'un site internet # accessible.
  • 265.
    248 Chapitre 15.Sendmail+IDA # swim!%s@gcc.groucho.edu swim # # Les entr ees suivantes envoient tout le courrier a destination # de deux r eseaux par des passerelles diff erentes. Notez le . # Dans cet exemple, uugate et byte sont des syst emes sp ecifiques # servant de passerelle de courrier pour les pseudo-domaines # .UUCP et .BITNET. # %s@uugate.groucho.edu .UUCP byte!%s@mail.shift.com .BITNET # #=================== end of pathtable ======================= 15.4.4 La table domaintable Elle est utilis ee pour forcer le comportement a adopter apr es qu'une requ^ ete DNS a eu lieu. Elle permet a l'administrateur de donner des surnoms a certains syst emes ou domaines souvent r ef erenc es, en rempla cant automatiquement le surnom par le nom r eel. Elle peut aussi servir a remplacer des noms de machines ou de domaines incorrects par une information ( ( correcte ) ). La plupart des sites n'ont pas besoin d'entr ee dans domaintable. L'exemple qui suit montre comment remplacer une adresse incorrecte | a laquelle des utilisateurs essaient d'envoyer du courrier | par la bonne: #============= /usr/local/lib/mail/domaintable ================= # # lamachine.correct.domaine lamachine.pasbon.domaine # # #=================== end of domaintable ======================== 15.4.5 Le chier aliases Les alias permettent un certain nombre de choses: { O rir des raccourcis ou des noms plus connus pour ecrire a une ou plusieurs personnes. { Appeler un programme en lui passant le message sur l'entr ee standard. { Envoyer un courrier dans un chier. Pour ^ etre conforme aux RFC, tous les syst emes n ecessitent au moins deux alias: Postmaster et MAILER-DAEMON.
  • 266.
    15.4. Pr esentation destables de Sendmail+IDA 249 #--------------------- /usr/local/lib/mail/aliases ------------------ # # demonstrate commonly seen types of aliases # usenet: alfred # alias pour une personne. admin: alfred,marcel # alias pour plusieurs personnes. linux-users: :include:/usr/lib/lists/linux # lecture des destinataires depuis # un fichier. changefeed: | /usr/local/lib/gup # alias qui appelle un programme plaintes: /var/log/plaintes # alias qui ecrit dans un fichier # # Les deux alias qui suivent doivent exister pour ^ etre conforme aux RFC. # Il doivent pointer vers un utilisateur qui lit son courrier r eguli erement. # postmaster: root # Entr ee obligatoire MAILER-DAEMON: postmaster # Entr ee obligatoire # #------------------------------------------------------------------- Fig. 15.2 - Exemple de chier aliases. Soyez toujours vigilant sur la s ecurit e lorsque vous d e nissez des alias qui appelleront des programmes ou ecriront dans des chiers car sendmail fonctionne avec un setuid a root. Les modi cations e ectu ees dans le chier aliases ne prennent e et qu'apr es avoir ex ecut e la commande: # /usr/lib/sendmail -bi Cette commande reconstruit la table dbm n ecessaire. Vous pouvez egalement employer la commande newaliases, que l'on fait souvent ex ecuter a intervalles r eguliers par cron. Tous les d etails concernant les alias peuvent se trouver dans la page de manuel aliases(5). Ci-dessus, gure 15.2, un exemple de chier aliases. 15.4.6 Tables rarement utilis ees Les tables suivantes sont disponibles mais tr es rarement utilis ees. Consultez la docu- mentation fournie avec les sources de Sendmail+IDA si vous d esirez plus de d etails. uucprelays Le chier uucprelays est utilis e pour ( ( court-circuiter ) ) le chemin UUCP vers des sites particuli erement connus, plut^ ot que de laisser le message partir par une route incertaine g en er ee par le traitement des cartes UUCP avec pathalias.
  • 267.
    250 Chapitre 15.Sendmail+IDA genericfrom et xaliases Le chier genericfrom cache les noms d'utilisateurs locaux, ainsi que leurs adresses, en les convertissant en adresses g en eriques qui ne correspondent pas aux valeurs internes. L'utilitaire associ e xalparse automatise la g en eration des chiers ge- nericfrom et aliases de sorte que les traductions entrantes et sortantes soient faites a partir d'un chier de r ef erence, xaliases. decnetxtable Le chier decnetxtable r e ecrit les adresses domainis ees en adresses de style DECnet. 15.5 Installation de sendmail Nous allons voir dans cette section, comment installer une distribution binaire typique de Sendmail+IDA, et ce qu'il est n ecessaire de con gurer pour qu'elle soit parfaite- ment fonctionnelle et adapt ee au site. La distribution binaire courante de Sendmail+IDA pour Linux peut ^ etre obtenue sur sunsite.unc.edu dans le r epertoire /pub/Linux/system/Mail. Si vous poss e- dez une version ant erieure de sendmail, il est conseill e de passer a la version send- mail5.67b+IDA1.5 car Linux est maintenant support een standard dans le code source, et de plus, plusieurs trous de s ecurit e assez importants ont et e elimin es, qui se trou- vaient dans les versions ant erieures au 1er d ecembre 1993. Si vous compilez sendmail a partir des sources, vous devez suivre les instructions contenues dans les chiers README de la distribution. Ces sources sont disponibles sur le site vixen.cso.uiuc.edu. Il vous faudra egalement les chiers de con guration sp e ciques a Linux contenus dans l'archive newspak-2.2.tar.gz, disponible par FTP anonyme sur sunsite.unc.edu dans le r epertoire /pub/Linux/system/Mail. Si vous avez install e smail ou un autre programme similaire auparavant, il vous faudra supprimer (ou renommer) au pr ealable tous les chiers s'y rapportant pour eviter d' eventuels con its. 15.5.1 Extraction de la distribution binaire Tout d'abord, il faut extraire les chiers de l'archive dans un r epertoire de travail: $ gunzip -c sendmail5.65b+IDA1.5+mailx5.3b.tgz | tar xvf - Si vous avez une commande tar ( ( moderne ) ), vous pourrez probablement obtenir le m^ eme r esultat par la simple commande tar -zxvf fichier.tgz. Une fois ce traitement termin e, vous aurez obtenu un r epertoire portant le nom de sendmail5.65b+IDA1.5+mailx5.3b. Vous y trouverez une installation compl ete de Sendmail+IDA plus un binaire du programme utilisateur mailx. Toute l'arborescence
  • 268.
    15.5. Installation desendmail 251 en dessous de ce r epertoire re ete l'emplacement exact o u les chiers doivent ^ etre install es. Vous pouvez donc en toute s ecurit e les mettre en place ainsi: # cd sendmail5.65b+IDA1.5+mailx5.3b # tar cf - . | (cd /; tar xvvpoof -) 15.5.2 G en eration du chier sendmail.cf Pour construire un chier sendmail.cf adapt e a votre site, il vous faut r ediger un chier sendmail.m4, puis le traiter par m4. Dans /usr/local/lib/mail/CF, vous trouverez un exemple appel e sample.m4. Copiez-le sous un autre nom (par convention on le nomme du nom de la machine, votre-h^ ote.m4) et editez-le pour qu'il re ete la situation d esir ee. Cet exemple est con gur e pour un site uniquement UUCP qui utilise des en-t^ etes domainis es et envoie le courrier a un smart-host. De tels sites n'auront donc que tr es peu de choses a modi er. Ici, nous ne vous donnerons qu'un bref aper cu des macros que vous allez devoir chan- ger. Pour une description plus compl ete, reportez-vous un peu plus haut dans ce chapitre, o u sendmail.m4 est d ecrit avec plus de d etails. LOCAL MAILER DEF D e nit le chier qui indique les programmes destin es a d elivrer le courrier local. Consultez la section ( ( D e nition du programme d eli- vrant le courrier local ) ) plus haut pour savoir de quoi il retourne. PSEUDONYMS D e nit tous les noms sous lesquels votre h^ ote local peut ^ etre connu. DEFAULT HOST Mettez votre nom pleinement quali e ici. Ce nom appara^ tra comme votre nom d'h^ ote dans tout le courrier emis. UUCPNAME Mettez votre nom d'h^ ote non quali e ici. RELAY HOST et RELAY MAILER Si vous vous connectez par UUCP a un smart-host, assignez le nom de cette machine a RELAY HOST. Si vous d esirez des en-t^ etes do- mainis es, utilisez la m ethode UUCP-A. DEFAULT MAILER Si vous ^ etes sur l'Internet et utilisez le DNS, vous devez mettre TCP- A. Cela indiquera a sendmail d'utiliser la m ethode TCP-A, qui d elivre le courrier par SMTP avec un style RFC normal pour l'adresse d'en- veloppe. Les sites Internet n'ont pas besoin de d e nir RELAY HOST ou RELAY MAILER.
  • 269.
    252 Chapitre 15.Sendmail+IDA Pour cr eer automatiquement le chier sendmail.cf, ex ecutez la commande: # make votre-h^ ote.cf Le chier votre-h^ ote.m4 sera trait e par m4 et un chier votre-h^ ote.cf sera r ealis e. Ensuite, vous devez tester si le chier de con guration que vous venez de cr eer fait bien ce que vous attendez de lui: ce sera l'objet des deux sections suivantes. Lorsque vous en serez satisfait, mettez-le en place par la commande: # cp votre-h^ ote.cf /etc/sendmail.cf A ce stade, votre syst eme sendmail est pr^ et a fonctionner. Mettez la ligne suivante dans le script qui lance les d emons sur votre machine (g en eralement /etc/rc.inet2); vous pouvez aussi l'ex ecuter a la main pour ne pas avoir a relancer Linux: # /usr/lib/sendmail -bd -q1h 15.5.3 Tests du chier sendmail.cf Pour passer sendmail en mode test, vous devez l'appeler avec l'option -bt. Le chier de con guration par d efaut est le sendmail.cf qui est install e sur la machine, mais vous pouvez essayer tout autre chier gr^ ace a l'option -Cnom-de-fichier. Dans les exemples suivants, nous testons gueuze.cf, le chier de con guration g en er e par l'exemple donn e dans la gure 15.1, page 240. # /usr/lib/sendmail -bt -Cgueuze.cf ADDRESS TEST MODE Enter ruleset address [Note: No initial ruleset 3 call] Les tests qui suivent v eri ent que sendmail est capable de d elivrer tout le courrier a vos utilisateurs. Dans tous les cas, le r esultat du test doit ^ etre le m^ eme et pointer vers le syst eme local, avec le transport LOCAL. Tout d'abord, regardons comment un courrier pour un utilisateur local sera d elivr e: # /usr/lib/sendmail -bt -Cgueuze.cf ADDRESS TEST MODE Enter ruleset address [Note: No initial ruleset 3 call] 3,0 moi rewrite: ruleset 3 input: moi rewrite: ruleset 7 input: moi rewrite: ruleset 9 input: moi
  • 270.
    15.5. Installation desendmail 253 rewrite: ruleset 9 returns: moi rewrite: ruleset 7 returns: , moi rewrite: ruleset 3 returns: , moi rewrite: ruleset 0 input: , moi rewrite: ruleset 8 input: , moi rewrite: ruleset 20 input: , moi rewrite: ruleset 20 returns: , @ gueuze . bibine . com , moi rewrite: ruleset 8 returns: , @ gueuze . bibine . com , moi rewrite: ruleset 26 input: , @ gueuze . bibine . com , moi rewrite: ruleset 26 returns: $# LOCAL $@ gueuze . bibine . com $: moi rewrite: ruleset 0 returns: $# LOCAL $@ gueuze . bibine . com $: moi La sortie montre comment sendmail traite une adresse de mani ere interne. Elle est pass ee a di erentes r egles qui l'analysent, et en appellent d'autres tour a tour, et toutes ses composantes sont isol ees. Dans notre exemple, nous avons donn e l'adresse moiaux r egles 3 et 0 (d'o u le nombre 3,0 entr e avant l'adresse). La derni ere ligne montre l'adresse analys ee telle que re- tourn ee par la r egle 0, contenant la m ethode par laquelle le message serait d elivr e ainsi que l'h^ ote et l'utilisateur qui lui seront pass es. Ensuite, v eri ons ce que donne un message a un utilisateur du syst eme, avec une syntaxe UUCP. # /usr/lib/sendmail -bt -Cgueuze.cf ADDRESS TEST MODE Enter ruleset address [Note: No initial ruleset 3 call] 3,0 gueuze!moi rewrite: ruleset 3 input: gueuze ! moi [...] rewrite: ruleset 0 returns: $# LOCAL $@ gueuze . bibine . com $: moi Maintenant, un courrier pour un utilisateur du syst eme, mais avec la syntaxe Internet et le nom pleinement quali e de la machine: # /usr/lib/sendmail -bt -Cgueuze.cf ADDRESS TEST MODE Enter ruleset address [Note: No initial ruleset 3 call] 3,0 moi@gueuze.bibine.com rewrite: ruleset 3 input: moi @ gueuze . bibine . com [...] rewrite: ruleset 0 returns: $# LOCAL $@ gueuze . bibine . com $: moi Vous devez recommencer les tests ci-dessus avec chacun des noms que vous avez
  • 271.
    254 Chapitre 15.Sendmail+IDA indiqu e dans les param etres PSEUDONYMS et DEFAULT NAME de votre chier sendmail.m4. En n, v eri ons que vous pouvez envoyer du courrier vers votre relais: # /usr/lib/sendmail -bt -Cgueuze.cf ADDRESS TEST MODE Enter ruleset address [Note: No initial ruleset 3 call] 3,0 fred@moria.com rewrite: ruleset 3 input: fred @ moria . com rewrite: ruleset 7 input: fred @ moria . com rewrite: ruleset 9 input: fred @ moria . com rewrite: ruleset 9 returns: fred @ moria . com rewrite: ruleset 7 returns: @ moria . com , fred rewrite: ruleset 3 returns: @ moria . com , fred rewrite: ruleset 0 input: @ moria . com , fred rewrite: ruleset 8 input: @ moria . com , fred rewrite: ruleset 8 returns: @ moria . com , fred rewrite: ruleset 29 input: @ moria . com , fred rewrite: ruleset 29 returns: @ moria . com , fred rewrite: ruleset 26 input: @ moria . com , fred rewrite: ruleset 25 input: @ moria . com , fred rewrite: ruleset 25 returns: @ moria . com , fred rewrite: ruleset 4 input: @ moria . com , fred rewrite: ruleset 4 returns: fred @ moria . com rewrite: ruleset 26 returns: @ moria . com , fred rewrite: ruleset 0 returns: $# UUCP-A $@ moria $: @ moria . com , fred 15.5.4 Tests d'int egration de sendmail.cf et des tables A ce stade, vous avez v eri e que le syst eme de courrier a bien le comportement par d efaut d esir e, et que vous pouvez recevoir et exp edier des messages valides. Pour terminer l'installation, il peut ^ etre n ecessaire de cr eer les tables dbm appropri ees pour obtenir les e ets d esir es. Apr es avoir cr e e celles qui sont n ecessaires a votre site, il vous faut les traiter par dbm en tapant make dans le r epertoire contenant ces tables. Si vous ^ etes un site uniquement UUCP, vous n'avez pas besoin de cr eer les tables mentionn ees dans le chier README.linux. Il vous sura de cr eer des chiers du m^ eme nom, mais vides, pour que le Make le puisse fonctionner. En tant que site UUCP, si vous ^ etes connect es a d'autres machines que votre smart- host, vous devrez sans doute ajouter des entr ees dans uucpxtable pour chaque machine, (sinon le courrier pour ces sites passera par ce smart-host au lieu d'^ etre direct) et ex ecuter dbm sur cette nouvelle table uucpxtable. Tout d'abord, assurez-vous que le courrier via votre RELAY HOST est envoy e par
  • 272.
    15.5. Installation desendmail 255 l'interm ediaire de RELAY MAILER: # /usr/lib/sendmail -bt -Cgueuze.cf ADDRESS TEST MODE Enter ruleset address [Note: No initial ruleset 3 call] 3,0 fred@sesame.com rewrite: ruleset 3 input: fred @ sesame . com rewrite: ruleset 7 input: fred @ sesame . com rewrite: ruleset 9 input: fred @ sesame . com rewrite: ruleset 9 returns: fred @ sesame . com rewrite: ruleset 7 returns: @ sesame . com , fred rewrite: ruleset 3 returns: @ sesame . com , fred rewrite: ruleset 0 input: @ sesame . com , fred rewrite: ruleset 8 input: @ sesame . com , fred rewrite: ruleset 8 returns: @ sesame . com , fred rewrite: ruleset 29 input: @ sesame . com , fred rewrite: ruleset 29 returns: @ sesame . com , fred rewrite: ruleset 26 input: @ sesame . com , fred rewrite: ruleset 25 input: @ sesame . com , fred rewrite: ruleset 25 returns: @ sesame . com , fred rewrite: ruleset 4 input: @ sesame . com , fred rewrite: ruleset 4 returns: fred @ sesame . com rewrite: ruleset 26 returns: @ sesame . com , fred rewrite: ruleset 0 returns: $# UUCP-A $@ moria $: @ sesame . com , fred Si vous avez des voisins UUCP autres que votre RELAY HOST, vous devrez v eri er que le courrier qui leur est destin e est bien rout e comme vous l'avez pr evu. Les mes- sages adress es avec la syntaxe UUCP vers un h^ ote avec lequel vous ^ etes directement connect e par UUCP doivent lui ^ etre envoy es directement (sauf si vous l'emp^ echez explicitement par une entr ee dans domaintable). Consid erons que swim est un de vos voisins UUCP directs. Passer a sendmail un message adress e a swim!fred devrait produire le r esultat suivant: # /usr/lib/sendmail -bt -Cgueuze.cf ADDRESS TEST MODE Enter ruleset address [Note: No initial ruleset 3 call] 3,0 swim!fred rewrite: ruleset 3 input: swim ! fred [...lignes supprim ees...] rewrite: ruleset 0 returns: $# UUCP $@ swim $: , fred Si vous avez des entr ees uucpxtable destin ees a forcer l'envoi UUCP vers certains voisins qui postent leur courrier avec le style Internet et des en-t^ etes domainis es, il faudra aussi v eri er ceci:
  • 273.
    256 Chapitre 15.Sendmail+IDA # /usr/lib/sendmail -bt -Cgueuze.cf ADDRESS TEST MODE Enter ruleset address [Note: No initial ruleset 3 call] 3,0 machin@truc.bidule.com rewrite: ruleset 3 input: machin @ truc . bidule . com [...lignes supprim ees...] rewrite: ruleset 0 returns: $# UUCP $@ truc . bidule $: , machin 15.6 Trucs et astuces du parfait petit administra- teur Maintenant que nous avons vu la th eorie de la con guration, l'installation et les tests d'un syst eme Sendmail+IDA, prenons un peu de temps pour regarder ce qui se passe r eellement dans la vie quotidienne d'un administrateur. Les syst emes distants tombent parfois en panne. Les modems marchent mal ou le t el ephone est coup e. Les d e nitions DNS sont erron ees car quelqu'un s'est tromp e. Les r eseaux s'arr^ etent sans pr evenir. Dans de tels cas, les administrateurs du courrier doivent savoir exactement comment r eagir ecacement et au plus vite, a n d'assurer une continuit e du service jusqu' a ce que tout fonctionne a nouveau normalement. Le reste de ce chapitre est destin e a vous proposer des solutions aux ennuis les plus courants rencontr es dans le monde du courrier electronique. 15.6.1 Renvoyer le courrier a une machine relais Pour renvoyer le courrier destin e a un domaine ou a un h^ ote particulier, vers un relais donn e qui pourra en assurer l'exp edition, il faut g en eralement utiliser le chier mailertable. Par exemple, pour renvoyer tout le courrier destin e a chezeux.org vers leur passerelle UUCP tortue, vous mettrez l'entr ee suivante dans mailertable: UUCP-A,tortue chezeux.org 15.6.2 Forcer du courrier dans des sites mal con gur es Les h^ otes Internet ont souvent des probl emes pour envoyer du courrier aux sites distants mal con gur es. Il y a plusieurs variantes de la chose, mais le sympt^ ome g en eral se traduit par des messages rejet es par le syst eme distant ou du courrier irr em ediablement perdu.
  • 274.
    15.6. Trucs etastuces du parfait petit administrateur 257 Ces probl emes font souvent du tort a l'administrateur local, car les utilisateurs se moquent g en eralement que vous n'administriez pas personnellement tous les syst emes du monde (ou ne puissiez pas joindre leurs responsables pour qu'ils corrigent leurs erreurs). Tout ce qu'ils voient, c'est que leurs messages n'aboutissent pas a leurs destinataires et que vous ^ etes la personne id eale sur laquelle passer leur col ere. La con guration d'un site distant n'est pas votre probl eme. Dans tous les cas, ne tentez pas de d er egler votre syst eme pour arriver a communiquer avec une machine mal con gur ee. Si vous ne pouvez pas joindre son responsable a n qu'il corrige ce qu'il faut en temps voulu, vous avez deux options: { Il est g en eralement possible de forcer le syst eme distant a accepter du courrier, mais puisqu'il n'est pas correctement con gur e, les r eponses ne reviendront sans doute pas; mais l a, c'est le probl eme de son administrateur. Vous pouvez corriger les mauvais en-t^ etes de l'enveloppe de vos messages sor- tants, uniquement en utilisant une entr ee domaintable pour leur h^ ote ou do- maine, qui fera que les informations non valides seront corrig ees pour tout le courrier provenant de votre site: malade.correct.domaine.com malade.incorrect.domaine.com { Souvent, les sites mal con gur es rejettent le courrier en le renvoyant vers la machine exp editrice en disant sans honte ( ( ce courrier ne nous est pas destin e ) ), simplement parce qu'ils n'ont pas leur PSEUDONYMNS ou equivalent con gur e proprement. Il est alors possible de supprimer tout nom d'h^ ote et de domaine de l'enveloppe des messages partant de votre site vers le leur. Le point d'exclamation! dans le chier mailertable ci-dessous d elivre les mes- sages a leur site en les faisant appara^ tre a leur sendmail comme s'ils arrivaientde leur syst eme local. Notez que cela ne change que l'adresse d'enveloppe, l'adresse de retour correcte sera toujours pr esente dans le message. TCP!malade.correct.domaine.com malade.incorrect.domaine.com N eanmoins, m^ eme si vous arrivez a leur poster du courrier, il n'y a aucune garantie qu'ils puissent vous r epondre (ce sont des nuls, ne l'oubliez pas); mais au moins, leurs utilisateurs casseront les pieds a leur administrateur, et vous serez tranquille de votre c^ ot e. 15.6.3 Forcer le courrier a partir par UUCP Dans un monde id eal (vu du c^ ot e Internet), tous les h^ otes sont dans le DNS et postent des messages sous des noms pleinement quali es. Si vous communiquez par UUCP avec un tel site, vous pouvez forcer le courrier a passer par la connexion UUCP plut^ ot que par la m ethode par d efaut en ( ( anti- domainisant ) ) le nom du site distant par le chier uucpxtable.
  • 275.
    258 Chapitre 15.Sendmail+IDA Pour forcer le courrier par sesame.com, vous mettrez ce qui suit dans votre uucpx- table: # supprime le domaine de sesame.com pour forcer UUCP sesame sesame.com Le r esultat sera que sendmail d eterminera (via UUCPNODES dans le chier send- mail.m4) que vous ^ etes directement connect e au syst eme distant, et mettra le courrier en attente dans la queue UUCP, pour qu'il soit d elivr e a la prochaine connexion de ce type avec ce site. 15.6.4 Emp^ echer le courrier de partir par UUCP La situation inverse peut aussi se produire. Souvent, des syst emes peuvent avoir un certain nombre de connexions UUCP directes qui ne sont utilis ees que de temps en temps, ou ne sont pas aussi ables et disponibles que le routage par d efaut ou le smart-host. Par exemple, il y a dans la r egion de Seattle3 des sites qui s' echangent les di erentes distributions de Linux par UUCP lorsqu'elles sont disponibles. Ces machines ne sont connect ees que lorsque c'est n ecessaire, il est donc g en eralement beaucoup plus ra- pide de faire passer le courrier par de multiples sites, mais plus ables et toujours disponibles. Il est tr es facile d' eviter de d elivrer le courrier directement a un site avec lequel vous avez une connexion UUCP directe. Si le syst eme distant poss ede un nom pleinement quali e, vous pouvez ajouter une entr ee comme celle-ci dans la table domaintable: # evite le courrier direct pour un voisin UUCP voisin.com voisin Cela remplacera toute occurrence du nom UUCP par le nom pleinement quali e, et par cons equent evitera qu'il soit trouv e par la ligne UUCPNODES du chier send- mail.m4. Le r esultat sera g en eralementque le courrier partira via le RELAY MAILER et RELAY HOST (ou DEFAULT MAILER). 15.6.5 Vider sur demande la queue de Sendmail Pour traiter imm ediatement les messages qui sont en attente dans la queue, il sut de taper la commande /usr/lib/runq. Elle appelle sendmail avec les options ad equates. 3: Ainsi que dans la r egion parisienne.
  • 276.
    15.7. Coh erence desdistributions binaires 259 15.6.6 Obtenir des statistiques sur le courrier trait e Beaucoup d'administrateurs (et leurs employeurs) ont besoin de conna^ tre le volume du courrier trait e par leur site. Il y a plusieurs m ethodes pour quanti er ce tra c: { sendmail est fourni avec un utilitaire appel e mailstats qui lit un chier appel e /usr/local/lib/mail/sendmail.st et rapporte le nombre de messages et la taille qui ont et e transf er es par chaque m ethode d eclar ee dans le chier sendmail.cf. Ce chier de statistiques doit ^ etre cr e e manuellement par l'administrateur pour que sendmail commence a y enregistrer des traces. Les r esultats sont remis a z ero en e a cant puis recr eant ce chier sendmail.st; il sut par exemple de faire: # cp /dev/null /usr/local/lib/mail/sendmail.st { La meilleure m ethode est probablement de mettre en route le d eboguage par syslogd(8). Vous aurez des traces d etaill ees de qui fait quoi, en quelle quantit e, pour o u, par o u, etc. Cela signi e que le d emon /etc/syslogd est en service sur la machine (ce qui est sans doute, et heureusement, le cas sur un syst eme bien administr e) et que vous aurez ajout e dans sa con guration /etc/syslog.conf(5) une ligne comme celle-ci: mail.debug /var/log/syslog.mail Si vous utilisez mail.debug avec un tra c de courrier assez important, la trace peut devenir assez grande. Les chiers de trace de syslogd n ecessitent g en era- lement une maintenance routini ere destin ee a les classer ou les purger, par le truchement de crond(8). Vous trouverez bon nombre d'utilitaires qui e ectuent des statistiques a partir des chiers g en er es par syslogd. L'un des plus connus s'appelle syslog-stat.pl, il s'agit d'un programme en perl qui est fourni avec les sources de Sendmail+IDA. 15.7 Coh erence des distributions binaires Il n'y a pas de r eel standard de con guration du courrier electronique, et il n'y a pas ( ( une arborescence de r epertoires de r ef erence ) ) pour y placer ces programmes. Il est n ecessaire de s'assurer que les di erents composants du syst eme (courrier, News Usenet, TCP/IP) sont d'accord sur l'emplacement du programme qui d elivre le cour- rier local (lmail, deliver, etc.), de celui pour le courrier distant (rmail), et de l'agent de transport du courrier (sendmail ou smail). De telles consid erations ne sont pas toujours document ees, bien que l'emploi de la commande strings puisse aider a d e- terminer quels chiers et quels r epertoires sont attendus par tel ou tel binaire. Voici
  • 277.
    260 Chapitre 15.Sendmail+IDA quelques probl emes que nous avons rencontr edans le pass eavec certaines distributions binaires et sources de Linux parmi les plus courantes. { Certaines versions de la distribution NET-2 de TCP/IP ont un programme nomm e umail d e ni comme service, au lieu de sendmail. { Divers portages de elm et mailx recherchent, pour d elivrer le courrier, l'agent /usr/bin/smail plut^ ot que sendmail. { Sendmail+IDA conna^ t en interne deliver, mais il pense le trouver dans /bin plut^ ot que dans /usr/bin, o u il est le plus souvent plac e sous Linux. Plut^ ot que de perdre du temps a recompiler tous les programmes a partir des sources, nous contournons en g en eral le probl eme par un lien symbolique appropri e. 15.8 Pour en savoir plus... Pour obtenir plus d'informations sur sendmail, consultez le document Linux ( ( MAIL- HOWTO ) ) post e r eguli erement dans comp.answers. Il est aussi disponible par FTP anonyme sur rtfm.mit.edu4. Toutefois, les meilleurs renseignementsse trouvent dans les sources de Sendmail+IDA. Regardez dans le r epertoire ida/cf, les chiers DBM- GUIDE, OPTIONS et Sendmail.mc. 4: Ce document est disponible en version fran caise sur les sites di usant Linux en France.
  • 278.
    261 Chapitre 16 Les NewsUsenet 16.1 L'histoire de Usenet L'id ee de di user des ( ( nouvelles ) ) par r eseau date de 1979, lorsque deux etudiants am ericains, Tom Truscott et Jim Ellis, eurent l'id ee d'utiliser UUCP dans le but d' echanger des informations entre les utilisateurs de plusieurs machines UNIX. Ils etablirent alors un petit r eseau de trois syst emes, en Caroline du Nord. Tout au d ebut, le tra c etait g er e par quelques shell-scripts (r e ecrits plus tard en langage C), mais aucun code ne fut jamais di us e. Cet ensemble fut rapidement remplac e par ( ( A news ) ), la premi ere version publique des logiciels de ( ( News ) ). Cette version n' etait pas pr evue pour g erer plus de quelques articles par groupe et par jour. Lorsque le volume se mit a augmenter, Mark Horton et Matt Glickman r ealis erent une nouvelle version des programmes, qu'ils baptis erent la version ( ( B ) ), soit ( ( Bnews ) ). La premi ere version publique de Bnews portait le num ero 2.1, c' etait en 1982. Depuis, elle a continuellement evolu e, subissant de profondes evolutions. Actuellement, Bnews en est a la version 2.11, qui devient obsol ete; le responsable de sa maintenance etant pass e a INN. Une autre r e ecriture fut entreprise et di us ee en 1987 par Geo Collyer et Henry Spencer; il s'agit de la version ( ( C ) ), ou C News, la plus courante etant la ver- sion ( ( C News Performance ) ). Sur les sites qui transportent un tr es grand nombre de groupes, la surcharge due a l'appel fr equent de relaynews, qui est le programme distribuant les articles vers les autres machines, est assez importante. La version ( ( Per- formance) ) ajoute une option a ce programme permettant de l'utiliser en mode d emon, dans lequel il fonctionne en t^ ache de fond. Cette version, tr es r epandue, est fournie avec beaucoup de distributions binaires de Linux. Jusqu' a la version C, cet ensemble etait etudi e pour une utilisation sur des r eseaux UUCP, bien que son emploi dans d'autres environnements rest^ at possible. Mais obte-
  • 279.
    262 Chapitre 16.Les News Usenet nir des transferts ecaces sur des r eseaux performants comme TCP/IP ou DECnet demandait une nouvelle orientation du projet. Aussi, en 1986, fut introduit NNTP, le Network News Transfer Protocol (protocole de transfert de News par r eseau). Il est bas e sur des connexions r eseau et sp eci e un certain nombre de commandes interac- tives permettant le transfert et la lecture des articles. Il existe beaucoup d'applications bas ees sur NNTP sur l'Internet. Le paquetage nntpd de Brian Barber et Phil Lapsley, que vous pouvez employer pour o rir un service de lecture des News a des h^ otes d'un r eseau local, est l'un des plus connus. Il est pr evu pour compl eter les ensembles de gestion de News comme Bnews ou C News, en leur apportant le support du protocole NNTP. INN, ou Internet News, en est un autre. Ce n'est pas qu'un simple frontal, mais un syst eme a part enti ere. Il comprend un d emon tr es sophistiqu e qui peut supporter de multiples liaisons NNTP concurrentes, et est devenu le serveur de News id eal employ e sur un nombre de plus en plus grand de sites Internet. 16.2 Mais qu'est-ce que Usenet? Ce qui stup e e beaucoup de gens, c'est que Usenet ne fait partie d'aucune organisa- tion, n'a aucune gestion centralis ee, aucun responsable, Usenet n'a pas de chef. En fait, l'un des principes de Usenet, c'est qu'en dehors des descriptions techniques, il est impossible de d e nir ce que c'est; tout ce que l'on peut indiquer, c'est ce que Usenet n'est pas. Si vous avez a port ee de main l'excellent livre Zen and the Art of the Internet de Brendan Kehoe, vous pourrez y trouver une liste tr es amusante des non-propri et es de Usenet. Au risque de para^ tre stupide, on peut d e nir Usenet comme la collaboration de sites distincts qui s' echangent des News Usenet1. Pour devenir un site Usenet, tout ce que vous avez a faire est de trouver un autre site et vous mettre d'accord avec ses propri etaires et administrateurs pour echangerdes articles avec vous. Comme ils ont le m^ eme accord avec un autre site qui agit de m^ eme pour eux, vous voyez imm ediatement appara^ tre un autre aspect de la philosophie de Usenet: ( ( Trouvez un fournisseur, et vous en ferez partie. ) ) L'unit e de base des News Usenet est l'article. Il s'agit d'un message r edig e par un utilisateur, qu'il ( ( poste ) ) sur le r eseau. A n que les autres sites puissent le g erer, on lui rajoute des informations administratives, le fameux en-t^ ete. Il ressemble beaucoup a celui du courrier au standard RFC 822, en ce sens qu'il est constitu e de di erentes lignes de texte, chacune commen cant par un mot-cl e termin e par le caract ere ( ( : ) ), suivi de la valeur attribu ee a ce champ2. 1: Prononcez ( ( les niouzes iouzenet ) ) pour faire pro. 2: Le format des articles Usenet est actuellement d e ni dans le document RFC 1036. Il sera a terme remplac e par un autre document en cours de r edaction, d e nissant des crit eres plus stricts dans le respect des normes; la r ecente arriv ee de nombreux sites utilisant des programmes con cus en d epit des sp eci cations causant une d egradation du service, il a et e d ecid e d'y mettre bon ordre.
  • 280.
    16.3. Comment lesNews sont-elles g er ees sur Usenet? 263 Les articles sont post es dans un ou plusieurs newsgroups. On peut consid erer un news- group comme un forum destin e a recevoir des articles concernant un sujet particulier. On utilise indi eremment les termes newsgroups, groupes, forums, voire conf erences pour les d esigner; a l' etranger seuls les deux premiers termes sont employ es dans le cadre de Usenet. Tous les groupes sont organis es en hi erarchies, leur nom indiquant leur emplacement dans cette arborescence; ce qui permet souvent de savoir facilement quel est le sujet trait e, au vu du nom. Par exemple, tout le monde comprendra que le groupe appel e comp.os.linux.announce sert aux annonces concernant un syst eme d'exploitation (os) d'ordinateurs (computers) nomm e Linux. Ces articles sont alors echang es entre tous les sites Usenet qui ont l'intention de trans- porter les messagesde ce groupe. Lorsquedeux sites se mettent d'accord pour echanger des News, ils sont libres de transporter les groupes qu'ils d esirent, et peuvent m^ eme cr eer de nouvelles hi erarchies locales a leurs syst emes. Par exemple, groucho.edu peut avoir un lien avec barnyard.edu, qui est un site Usenet important, et plusieurs liaisons avec des sites plus petits auxquels il fournit certains groupes (vous verrez souvent d esigner la fourniture de News par le terme anglais feed). Maintenant, bar- nyard.edu peut recevoir toute les hi erarchies Usenet, alors que GMU n'en d esire que quelques-unes comme sci, comp, rec, etc. Certains petits sites, disons par exemple une machine UUCP appel ee brewhq, ne voudront prendre que quelques forums, pour des raisons de lenteur de liaison et de ressources limit ees. De plus, brewhq peut vou- loir r ecup erer une hi erarchie locale fj, que GMU ne poss ede pas. Il sera par cons equent oblig e d' etablir une autre liaison avec gargleblaster.com,qui transporte ces groupes, et qui les fournira a brewhq. Le ux de News correspondant a cette situation est illustr e dans la gure 16.1. Les rep eres inscrits a c^ ot e des eches en provenance de brewhq n ecessitent toutefois une explication. Par d efaut, ce site veut que tous les articles g en er es localement soient envoy es a groucho.edu. Mais comme groucho.edu ne transporte pas les groupes fj, il n'y a aucun int er^ et a les leur envoyer, ils seront rejet es. Par cons equent, le ux allant de brewhq a GMU est rep er e all,!fj, signi ant que tous (all) les groupes sauf ceux de la hi erarchie fj sont transmis. 16.3 Comment les News sont-elles g er ees sur Use- net? Aujourd'hui, Usenet a pris des proportions enormes. Les sites qui transportent la totalit e des hi erarchies transf erent environ 180 Mo d'articles par jour3. Bien s^ ur, cela n ecessite un peu plus de proc edures que de simples copies de chiers. Aussi, voyons comment la plupart des syst emes UNIX g erent les News Usenet. Elles sont distribu ees sur le r eseau par di erents moyens de transport. Au tout d e- 3: Attendez... 180 Mo a 9600 bps, cela nous fait 180 millions divis es par 1200, ce qui nous don- nerait... plus de 40 heures de transfert!
  • 281.
    264 Chapitre 16.Les News Usenet brewhq gargleblaster.com Usenet groucho.edu barnyard.edu comp,sci, rec all all,!fj comp.os, comp.periphs fj fj Fig. 16.1 - Circuit des News Usenet a l'universit e Groucho Marx.
  • 282.
    16.3. Comment lesNews sont-elles g er ees sur Usenet? 265 but, il s'agissait de UUCP; mais de nos jours le plus gros du tra c se fait par des sites Internet. L'algorithme de routage utilis e est bas e sur la redondance: chaque site maintient un certain nombre de liens (les fameux feeds de News) avec d'autres. Tout article g en er e ou re cu par le syst eme local leur est exp edi e, sauf s'il est d ej a pass e par eux. Il est possible de savoir par o u est pass e un article gr^ ace au champ Path de l'en-t^ ete, qui contient la liste de tous les syst emes qu'il a travers es, s epar es par un point d'exclamation (bang-path). Pour distinguer les articles et reconna^ tre les doublons, chacun d'eux doit comporter dans son en-t^ ete un identi cateur unique, appel e le Message-ID, qui est r ealis e a partir du nom du site associ e a un num ero de s erie unique sur cette machine, pr esent e sous la forme num ero@site. Le syst eme de News enregistre chaque article trait e par ce num ero dans un chier appel e history, qui est test e a chaque fois qu'un nouveau message se pr esente. Le ux entre deux sites quelconques peut ^ etre limit e selon deux crit eres. D'une part, il existe un champ indiquant l' etendue de sa distribution (Distribution dans l'en-t^ ete), permettant eventuellement de ne le transmettre qu' a un nombre limit e de sites accep- tant cette distribution particuli ere. D'autre part, le nombre de groupes echang es peut ^ etre limit e par l'un ou l'autre des syst emes. L'ensemble des groupes et distributions autoris es a ^ etre transmis est g en eralement con gur e dans le chier sys. La grande quantit e d'articles a traiter n ecessite g en eralement quelques am eliorations de la m ethode pr ec edente. Sur les r eseaux UUCP, il est naturel de collecter les mes- sages sur une certaine p eriode puis de les combiner ensemble en un seul gros chier, qui est compress e puis envoy e sur le site distant. C'est la di usion par lots. Une autre technique fait appel au protocole ihave/sendme qui evite aux articles du- pliqu es d'^ etre transf er es avant d'^ etre nalement rejet es. Au lieu de mettre tous les articles dans des lots et de les exp edier tels quels, ce ne sont que les message-ID qui sont utilis es pour constituer un enorme message nomm e ( ( ihave) ) (je poss ede) exp edi e au site distant. Celui-ci en prend connaissance, le compare a son chier d'historique, et retourne la liste des articles pour lesquels il d esire un message appel e ( ( sendme ) ) (envoie-moi). Seuls ces articles seront alors transf er es. Bien s^ ur, ce protocole ihave/sendme n'a d'int er^ et que s'il met en jeu deux gros sites qui re coivent les News depuis plusieurs ux ind ependants les uns des autres, et qui sont connect es susamment souvent pour obtenir des echanges ecaces. Les sites connect es a l'Internet utilisent g en eralement des programmes bas es sur TCP/IP faisant appel au protocole NNTP4. Il permet de transf erer les articles et d'o rir des acc es individuels a Usenet a tout utilisateur se trouvant sur une machine distante et poss edant un programme de lecture ad equat. NNTP permet le transfert de trois fa cons di erentes. La premi ere est une version temps r eel de ihave/sendme, aussi connue sous le nom de m ethode du pushing (on ( ( pousse ) ) les articles). Dans la deuxi eme, le client demande une liste d'articles dans 4: D ecrit dans le RFC 977.
  • 283.
    266 Chapitre 16.Les News Usenet une hi erarchie ou un groupe donn e, qui sont arriv es sur le serveur apr es une certaine date, et choisit ceux qu'il ne peut pas trouver dans son chier d'historique. C'est le pulling (on ( ( tire ) ) les articles). La troisi eme m ethode est destin ee a la lecture interactive et permet de r ecup erer des articles depuis les groupes sp eci es, aussi bien que d'en poster, le plus souvent a l'aide de programmesconviviaux appel es ( ( lecteurs) ). Sur chaque site, les News sont stock ees dans une arborescence de r epertoires situ ee sous /var/spool/news, chaque article faisant l'objet d'un chier s epar e. Le nom du r epertoire est constitu e du nom du groupe, ses composants etant ceux du chemin d'acc es. C'est- a-dire que, par exemple, les messages de comp.os.linux.misc se trou- veront dans le r epertoire /var/spool/news/comp/os/linux/misc. Ils se voient assigner un num ero, dans l'ordre o u ils arrivent, qui sert de nom de chier. L' etendue de ces num eros est conserv ee dans un chier nomm e active, qui sert en m^ eme temps de liste des groupes connus sur le site en question. Puisque l'espace de stockage o ert par les disques durs est encore de nos jours une ressource nie5, il faut penser a eliminer r eguli erementles articles devenus trop vieux: c'est le processus d'expiration. En principe, il est possible de con gurer cela de ma- ni ere souple, les articles de certains groupes ou certaines hi erarchies etant elimin es un certain nombre de jours apr es leur arriv ee sur le syst eme. L'exp editeur peut lui-m^ eme d ecider de la date a partir de laquelle son message pourra ^ etre supprim e, en sp eci ant une date d'expiration dans le champ Expires de l'en-t^ ete. 5: Certains arment que Usenet est le fruit d'un complot ourdi par les constructeurs de modems et les fabricants de disques durs.
  • 284.
    267 Chapitre 17 C News CNews est l'un des ensembles de logiciels de News les plus connus. Il est destin e aux sites transportant les articles par UUCP. Ce chapitre traitera de son fonctionnement, d ecrira son installation et les t^ aches de maintenance n ecessaires a son fonctionnement correct. Les chiers de con guration de C News se trouvent dans /usr/lib/news, et l'essentiel de ses programmes ex ecutables se situent dans le r epertoire /usr/lib/news/bin. Les articles sont stock es dans /var/spool/news. Vous devez v eri er, car c'est tr es impor- tant, que tous les chiers contenus dans ces r epertoires appartiennent a l'utilisateur news et au groupe news. La plupart des probl emes rencontr es sont dus a des chiers inaccessibles a l'application. Vous devez prendre l'habitude de passer sous le compte utilisateur news (par la commande su) avant de toucher a quoi que ce soit dans la gestion des News. La seule exception a cette r egle concerne le programme setnew- sids, qui est utilis e pour positionner le num ero d'identi cation utilisateur de certains utilitaires: il doit appartenir a root et avoir le bit setuid positionn e. 17.1 L'injection des articles Les articles peuvent ^ etre fournis a C News de di erentes fa cons. Lorsqu'un utilisateur local poste un message, son programme lecteur l'envoie g en eralement a la commande inews, qui compl ete les informations n ecessaires dans l'en-t^ ete. Les articles en prove- nance des sites distants | que ce soit un lot ou un message individuel | sont pass esau programme rnews, qui les place dans le r epertoire /var/spool/news/in.coming, d'o u ils seront extraits plus tard par newsrun. Dans les deux cas, l'article sera eventuellement trait e par la commande relaynews. Pour chaque article, relaynews commence par tester s'il a d ej a et e vu sur le site local en recherchant son Message-ID dans le chier history: les articles dupliqu es seront
  • 285.
    268 Chapitre 17.C News rejet es. Puis il regarde la ligne d'en-t^ ete Newsgroups pour v eri er si le site demande bien le ou les groupes indiqu es. Si c'est le cas, et que le chier active contient bien ce nom, relaynews essaie de placer le message dans le r epertoire correspondant du spoule, qui sera cr e e s'il n'existait pas encore. En n, le Message-ID est enregistr e dans le chier history. Sinon, l'article sera rejet e. Si relaynews ne peut pas mettre en place un article parce qu'il a et e post e dans un groupe qui n'est pas dans le chier active, cet article sera rejet e et d eplac e dans le groupe junk1. Le programme relaynews v eri era aussi l'int egrit e de l'article, sa date, et rejettera ceux qu'il trouvera non conformes. Les lots qui sont d eclar es d efectueux pour une raison quelconque sont d eplac es dans /var/spool/news/in.coming/bad, et un message d'erreur est enregistr e dans les chiers de trace. Ensuite, l'article sera relay e vers tous les autres sites qui demandent des News de ce groupe, par le transport sp eci e pour chacun d'eux. Pour ^ etre s^ ur qu'il n'est pas envoy e vers un site qui l'aurait d ej a vu passer, le nom de chacun de ces sites est recherch e dans la ligne Path de l'en-t^ ete: seuls ceux dont le nom n'appara^ t pas dans cette ligne recevront le message. C News est utilis e couramment pour relayer Usenet entre des sites UUCP, bien qu'il soit possible de l'utiliser aussi dans un environnement NNTP. Pour fournir une ma- chine distante par UUCP (soit par des articles isol es, soit par des lots de messages), il est fait appel a la commande uux, a n qu'elle ex ecute rnews sur le site distant, le message lui etant pass e sur son entr ee standard. Lorsque la cr eation de lots est valid ee pour un site, C News n'envoie aucun article imm ediatement, mais rajoute le nom du chier correspondant dans un chier g en e- ralement appel e out.going/site/togo. P eriodiquement, un programme de g en eration de lots est ex ecut e par une entr ee crontab2, ce qui rassemble tous les articles dans un ou plusieurs gros chiers compress es en option, et les envoie a la commande rnews du site distant. La gure 17.1 illustre le ux des News via relaynews: les articles peuvent ^ etre relay es depuis le site local (d enot e par convention par le mot cl e ME), par courrier vers un site nomm e ponderosa, et sous forme de lots vers la machine moria. 17.2 Installation Pour installer C News, mettez en place les chiers contenus dans l'archive si ce n'est pas encore fait, et editez les chiers de con guration indiqu es ci-dessous. Ils se trouvent 1: Il peut y avoir une di erence entre les groupes qui existent sur votre site, et ceux qu'il d esire recevoir. Par exemple, la liste de souscription peut sp eci er comp.all, ce qui signi e tous les groupes de la hi erarchie comp, mais seule une partie de ces groupes peut ^ etre indiqu ee dans votre chier active. Les articles pour les groupes absents de ce chier seront plac es dans junk. 2: Il est tr es important que ce soit le crontab de l'utilisateur news, a n de ne pas modi er les permissions des di erents chiers.
  • 286.
    17.2. Installation 269 MEponderosa moria active out.going/ moria/togo history relaynews article spoule courrier Fig. 17.1 - Flux des News par relaynews. tous dans /usr/lib/news, et leurs di erents formats vont ^ etre d ecrits dans les sections suivantes: sys Vous devrez sans doute modi er la ligne ME qui d ecrit votre syst eme, bien que l'emploi de all/all soit une solution qui fonctionne toujours. Il faudra aussi ajouter une ligne pour chaque site a qui vous enverrez des articles. Si vous^ etes un site UUCP isol e en bout de cha^ ne, il vous sura d'une ligne qui renvoie tous les articles g en er es localement a votre fournis- seur. En supposant que ce soit moria, votre chier sys ressemblera simplement a ceci: ME:all/all:: moria/moria.orcnet.org:all/all,!local:f: organization Le nom de l'organisme auquel la machine appartient. Par exemple, ( ( SARL La bi ere virtuelle ) ). S'il s'agit de votre ordinateur domes- tique, mettez ce que vous voulez, sinon la plupart des gens ne consi- d ereront pas votre site comme correctement con gur e. newsgroups Une liste de groupes, un par ligne, suivi de leur description sommaire. Ces descriptions sont utilis ees par les programmes lecteurs lorsqu'ils achent la liste des forums accessibles.
  • 287.
    270 Chapitre 17.C News mailname L'adresse electroniquede votre site, comme par exemple bibine.com. whoami Le nom de votre site, pour le traitement des News. On y met le plus souvent le nom UUCP, par exemple gueuze. explist Vous devrez editer ce chier pour qu'il corresponde a vos besoins d'expiration des messages. Son contenu d epend etroitement de la place disque dont vous disposez. Pour cr eer une hi erarchie initiale, r ecup erez les chiers active et newsgroups d'un site qui vous fournit, et installez-les dans /usr/lib/news, en v eri ant bien qu'ils ap- partiennent a news et ont le mode 644. Supprimez tous les groupes to.* du chier active, puis rajoutez to.mon-site et to.fournisseur, ainsi que junk et control. Les groupes to.* sont utilis es pour l' echange de messages ihave/sendme, mais vous devez les cr eer m^ eme si vous ne comptez pas employer ce protocole. Ensuite, remplacez tous les num eros d'articles contenus dans la deuxi eme et la troisi eme colonne du chier active en ex ecutant la commande suivante: # cp active active.old # sed 's/ [0-9]* [0-9]* / 0000000000 00001 /' active.old active # rm active.old La deuxi eme ligne appelle la commande sed(1), l'utilitaire favori des administrateurs. Ici, il s'agit de remplacer deux cha^ nes de chi res par une cha^ ne de z eros et la valeur 000001, respectivement. En n, cr eez le r epertoire de spoule et les sous-r epertoires utilis es pour l'arriv ee et le d epart des articles: # cd /var/spool # mkdir news news/in.coming news/out.going # chown -R news.news news # chmod -R 755 news Si vous poss edez une version r ecente de C News, il vous faudra aussi cr eer le r epertoire news/out.master. Si vous utilisez des programmes lecteurs de provenances diverses, vous vous ren- drez compte que certains recherchent le spoule dans /usr/spool/news au lieu de /var/spool/news, et dans ce cas, ils seront incapables de trouver les articles. Si c'est le cas, il voussura de cr eerun lien symboliquede /usr/spool/news vers/var/spool/news. Vous ^ etes maintenant equip e pour recevoir des News. Notez que vous n'aurez pas besoin de cr eer d'autres r epertoires que ceux mentionn es ci-dessus, C News s'occupera de le faire automatiquement lorsque des articles arriveront. En particulier, cela se produit pour tous les groupes dans lesquels un article a et ecross- post e. Aussi, au bout d'un moment, vous trouverez le spoule rempli de r epertoires
  • 288.
    17.3. Le chiersys 271 correspondant a des groupes que vous n'avez jamais demand e, comme alt.lang.teco. Il est possible d' eviter cela en supprimant chacun de ces groupes du chier active, ou en lan cant p eriodiquement un shell-script qui supprime les r epertoires vides a partir de /var/spool/news (sauf bien entendu out.going et in.coming). C News envoie les messages d'erreur et de service a un utilisateur particulier. Par d efaut, il s'appelle usenet. Si vous utilisez ce nom (ce qui est conseill e), vous devrez d eclarer un alias qui enverra tout le courrier a ce nom vers les bo^ tes aux lettres des personnes responsables. (Les chapitres 14 et 15 vous expliqueront comment faire.) Vous pouvez aussi changer cette valeur par d efaut en donnant a la variable d'en- vironnement NEWSMASTER le nom appropri e. Vous devrez le faire dans le chier crontab de l'utilisateur news, ainsi qu' a chaque fois que vous aurez a lancer un outil d'administration a la main. Il est donc pr ef erable d'installer un alias pour ne pas se compliquer la vie. Il faudra aussi v eri erque dans le chier /etc/passwd, le vrai nom de chaque utilisateur gure bien dans le champ pw gecos (c'est le quatri eme champ). Ce nom appara^ tra dans la ligne From de l'article, et il ne faut pas qu'il y apparaisse n'importe quoi; c'est une question de netiquette3. Si vous utilisez d ej a le courrier electronique, tout cela est probablement d ej a proprement con gur e. 17.3 Le chier sys Le chier sys, situ e dans /usr/lib/news, contr^ ole quelles hi erarchies vous recevez et envoyez aux autres sites. Bien qu'il existe des outils de maintenance pour le g erer (addfeed et delfeed), tout le monde s'accorde a dire qu'il vaut bien mieux e ectuer ces op erations a la main. Il contient des entr ees pour chaque site auquel vous envoyez des News, et une des- cription des groupes que vous accepterez. Chaque entr ee est de cette forme: site[/exclusions]:liste-groupes[/distributions][:drapeaux[:commandes]] Une entr ee peut s' etendre sur plusieurs lignes, en rajoutant un anti-slash au bout (). Le signe di ese (#) d enote un commentaire. site Il s'agit du nom du site auquel cette entr ee s'applique, c'est g en era- lement le nom UUCP qui est choisi. Il doit y avoir une entr ee pour votre propre site dans ce chier sys, sinon vous ne recevrez jamais aucun article. 3: La nettiquette est en quelque sorte le manuel de savoir-vivre sur Usenet. Un document humo- ristique post e tous les mois en rappelle les principaux traits, vous pouvez en consulter la version fran caise dans la hi erarchie francophone fr.*, ou la t el echarger sur le serveur ftp.fdn.org.
  • 289.
    272 Chapitre 17.C News Le nom sp ecial ME d enote votre site. Cette entr ee d e nit tous les groupes que vous comptez stocker localement. Les articles de groupes qui ne sont pas d ecrits dans cette ligne seront plac es dans junk. Puisque C News compare site avec ceux contenus dans la ligne Path des en-t^ etes d'articles, vous devez vous assurer que tout cor- respond bien. Certains mettent leur nom pleinement quali e, ou un alias comme news.site.domaine. Pour eviter que des articles en provenance de tels sites ne leur soient inutilement r eexp edi es, vous devrez ajouter ces noms a la liste d'exclusion, s epar es par des vir- gules. Parexemple, pour l'entr ees'appliquant a la machine moria,le champ site contiendrait moria/moria.orcnet.org. liste-groupes Il s'agit d'une liste de souscription de groupes et hi erarchies (dont le caract ere s eparateur est la virgule) pour le site en question. Une hi e- rarchie peut ^ etre sp eci ee en donnant son pr e xe (comme comp.os pour tous les groupes dont le nom commence par ces lettres), suivie facultativement par le mot cl e all (par exemple, comp.os.all). Une hi erarchie ou un groupe est exclus en le faisant pr ec eder par un point d'exclamation, marquant la n egation. Si un groupe est re- cherch e dans cette liste, c'est le plus long qui gagne. Par exemple, si liste-groupes contient: !comp,comp.os.linux,comp.folklore.computers Cela signi era qu'aucun groupe appartenant a la hi erarchie comp ne sera envoy e a ce site, sauf comp.folklore.computers et tous ceux en dessous de comp.os.linux. Pour lui envoyer toutes les News que vous recevez vous-m^ eme, mettez simplement all dans liste-groupes. distributions Ce champ, s epar e du pr ec edent par un slash (/) contient une liste des distributions qui seront envoy ees au site concern e. L a encore, vous pouvez en exclure certaines en les faisant pr ec eder d'un point d'exclamation, ou les d esigner toutes par le mot all. Si vous omettez ce champ distributions, cela d enote implicitement all. Parexemple, vouspouvez mettre comme liste de distributions quelque chose comme all,!local, pour eviter d'envoyer les groupes a usage local aux sites distants. Il y a en principe au moins deux distributions: world, qui est souvent celle par d efaut lorsque aucune n'est pr ecis ee, et local. Il peut y en avoir d'autres s'appliquant a certaines r egions, etats, pays, d eparte-
  • 290.
    17.3. Le chiersys 273 ments, etc. En n, il en existe deux sp eci ques a C News: ce sont sendme et ihave, qu'il utilise pour le protocole sendme/ihave. L'utilisation des distributions fait l'objet de nombreusespol emiques4. Pour certains, quelques lecteurs de News cr eent de ( ( fausses ) ) distri- butions en utilisant simplement le nom de la hi erarchie (comp par exemple) en postant dans des groupes tel comp.os.linux.advocacy. Les distributions s'appliquant aux r egions sont douteuses, car les ar- ticles peuvent prendre un chemin d etourn e et devoir sortir hors de cette r egion pour y revenir5. Les distributions s'appliquant a une or- ganisation particuli ere ont, par contre, un certain sens: par exemple, pour eviter que des informations con dentielles sur votre entreprise s' echappent d'un groupe local. Mais pour ce genre de cas, mieux vaut cr eer une hi erarchie s epar ee. drapeaux Cette option d ecrit certains param etres du ux. Elle peut ^ etre ab- sente, ou bien comporter une combinaison des valeurs suivantes: F Ce drapeau valide la cr eation de lots6. f Pratiquement identique a F, mais permet a C News de calculer la taille des lots a partir, de mani ere plus pr ecise. I Ce drapeau indique a C News de produire une liste d'articles pour l'utilisation du protocole d' echange ihave/sendme. Il faut egalement e ectuer quelques modi cations aux chiers sys et batchparms dans ce cas. n Cr ee des chiers de lots pour les transferts NNTP avecdes clients comme nntpxmit (voir le chapitre 18). Ces lots contiennent les noms des chiers contenant les articles ainsi que leurs Message-ID. L Indique a C News de ne transmettre que les articles post es sur votre site. Ce drapeau peut ^ etre suivi par un nombre d ecimal n, qui permettra alors de ne pos- ter que les messages en provenance d'au plus n hops de votre site. Le nombre de hops est d etermin e par 4: En fait, de nos jours la plupart des administrateurs de sites Usenet s'accordent a dire que si l'id ee n' etait pas mauvaise au d epart, son application s'est plut^ ot tr es mal pass ee et qu'il faut eviter a tout prix d'utiliser un champ ( ( distribution ) ), aucun site ne le g erant de la m^ eme mani ere; c'est le meilleur moyen de perdre des articles. 5: Il est tr es courant de voir des articles post es par exemple a Hambourg, se retrouver a Francfort via reston.ans.net aux Pays-Bas, voire en passant par un site des USA. 6: Ce sont les ( ( batches de News ) ) chers aux administrateurs dont la langue natale est le ( ( fran- glais ) ).
  • 291.
    274 Chapitre 17.C News le contenu du champ Path de l'en-t^ ete. u Seuls les articles des groupes non mod er es seront emis. m Seuls les articles des groupes mod er es seront emis. Vous ne pouvez employer au plus qu'un F, f, I, ou n. commandes Ce champ contient la commande a ex ecuter pour chaque article lorsque le traitement par lots est en service. Le message sera pass e a cette commande via son entr ee standard; a n'utiliser que sur les petits ux, sinon la charge sur chacun des deux syst emes deviendra prohibitive. La commande par d efaut est: uux - -r -z syst eme!rnews Elle ex ecute rnews sur le syst eme distant, en lui passant l'article sur son entr ee standard. Le chemin de recherche des commandes indiqu ees dans ce champ est par d efaut /bin:/usr/bin:/usr/lib/news/bin/batch. Le dernier r e- pertoire contient un certain nombre de shell-scripts dont les noms commencent par via; nous les d ecrirons bri evement un peu plus loin dans ce chapitre. Si le traitement par lots a et e valid e par l'un des drapeaux F, f, I ou n, C News s'attendra a trouver un nom de chier dans ce champ, et non pas une commande. Si ce nom ne commence pas par un slash (/), il sera consid er e comme etant relatif au r epertoire /var/spool/news/out.going. Si le champ est vide, la valeur par d efaut sera syst eme/togo. Lors de la con guration de C News, vous devrez probablement r ediger votre propre chier sys. Pour vous aider dans cette t^ ache, nous allons vous donner un exemple concernant bibine.com, a partir duquel vous pourrez recopier tout ce dont vous avez besoin et l'adapter a votre site. # Nous prenons tout ce qu'ils nous envoient. ME:all/all:: # Nous envoyons tout ce que nous recevons a moria, sauf les # articles locaux et ceux relatifs aux brasseurs. Nous utilisons # des lots (batching). moria/moria.orcnet.org:all,!to,to.moria/all,!local,!brasseurs:f: # Nous exp edions comp.risks par courrier electronique a # l'utilisateur jack@ponderosa.uucp
  • 292.
    17.4. Le chieractive 275 ponderosa:comp.risks/all::rmail jack@ponderosa.uucp # La machine swim veut un petit flux de News: swim/swim.twobirds.com:comp.os.linux,rec.humor.oracle/all,!local:f: # Nous enregistrons les cartes UUCP publi ees pour traitement # ult erieur. usenet-maps:comp.mail.maps/all:F:/var/spool/uumaps/work/batch 17.4 Le chier active Le chier active est situ e dans /usr/lib/news et contient la liste de tous les groupes connus par votre site, ainsi que les articles actuellement accessibles. Vous n'aurez que tr es rarement besoin d'y toucher, mais nous allons tout de m^ eme expliquer son contenu pour que vous compreniez bien son r^ ole. Il contient des entr ees de la forme: groupe haut bas permission Le champ groupe contient le nom du groupe; bas et haut sont les num eros du premier et du dernier article actuellement disponibles dans ce groupe. S'il est vide, bas vaut alors haut+1. En n disons que c'est ce que bas est cens e faire, parce que, pour des raisons d'eca- cit e, C News ne met jamais cette valeur a jour. Ce ne serait pas un probl eme s'il n'y avait pas certains lecteurs de News comptant sur ce champ pour v eri er s'ils peuvent purger des articles de leur base de donn ees des ls de discussions. Pour mettre a jour ce champ bas, vous devrez par cons equent ex ecuter p eriodiquement la commande updatemin (ou, dans de plus anciennes versions de C News, le script upact). Le champ permission est un param etre indiquant quel type d'acc es auront les utili- sateurs, il peut prendre l'une des valeurs suivantes: y Les utilisateurs ont le droit de poster dans ce groupe. n Les utilisateurs n'ont pas le droit de poster dans ce groupe, mais ils peuvent le lire. x Ce groupe a et e invalid e sur le syst eme local. Cela arrive quelque- fois lorsque des administrateurs (ou leurs sup erieurs) se plaignent du contenu des messages y etant post es. Les articles re cus pour ce groupe ne sont pas stock es localement, mais ils seront toujours emis vers les sites qui les demandent. m Indique un groupe mod er e. Lorsqu'un utilisateur tente de poster de- dans, si son lecteur de News est bien con cu, il lui noti era ce fait et
  • 293.
    276 Chapitre 17.C News enverra l'article au mod erateur par courrier electronique. L'adresse du mod erateur est prise dans le chier moderators situ e dans le r e- pertoire /usr/lib/news. =vrai-groupe Marque groupe comme etant un alias local pour un autre groupe, nomm e en r ealit e vrai-groupe. Tous les articles post es dans groupe y seront redirig es. Dans C News, vous n'aurez en g en eral pas besoin d'acc eder directement a ce chier. Les groupes peuvent ^ etre ajout es ou supprim es localement par les commandes add- group et delgroup (consultez la section ( ( Outils et travaux de maintenance) ) page 287). Les messages de contr^ ole newgroup et rmgroup cr eent ou suppriment un groupe dans la totalit e de Usenet. N'envoyez jamais un tel message vous-m^ eme! Vous vous feriez ha r du monde entier. Toutes les instructions de cr eation de groupe a un tel niveau sont post ees tous les mois dans news.announce.newusers. Le chier active.times est tr es li e a active: chaque fois qu'un nouveau groupe est cr e e, C News enregistre un message dans ce chier. Il contient le nom du groupe cr e e, la date de cr eation, si celle-ci a et e faite sur un message de contr^ ole newgroup ou locale- ment, et le nom de la personne ayant cr e e ce groupe. Il sert aux programmes lecteurs qui peuvent eventuellement noti er aux utilisateurs les nouveaux groupes r ecemment cr e es. Il est egalement utilis e par la commande NEWGROUPS du protocole NNTP. 17.5 Le traitement par lots (batching) Les lots d'articles se conforment a un format particulier qui est le m^ eme pour Bnews, C News, and INN7. Chaque article est pr ec ed e d'une ligne comme celle-ci: #! rnews taille La valeur taille est le nombre d'octets contenus dans l'article. Lorsque l'on utilise la compression, c'est le chier r esultant qui est compress e; il est alors pr ec ed e d'une autre ligne, indiquant que les donn ees qui suivent devront ^ etre d ecompact ees. L'outil standard permettant la compression est compress, qui est rep er e par: #! cunbatch Il arrive que l'on doive faire passer des lots par courrier, o u certaines liaisons suppri- ment le huiti eme bit des donn ees. Dans ce cas, on peut prot eger un lot compress e en utilisant l'encodage appel e c7; ils seront alors rep er es par c7unbatch. 7: Ce format est d e ni dans le document RFC 1036.
  • 294.
    17.5. Le traitementpar lots (batching) 277 Lorque le programme rnews du site distant re coit un lot de News, il teste ces rep eres a n de traiter les donn ees de mani ereappropri ee.Certains sites utilisent le compacteur gzip, et indiquent alors zunbatch: C News ne reconna^ t pas ces en-t^ etes non standard, vous devrez modi er le code source pour pouvoir les traiter. Le programme /usr/lib/news/bin/batch/sendbatches est charg e de la r ealisation des lots. Il prend une liste d'articles dans le chier site/togo, et constitue les archives en les r epartissantdans un ou plusieurs lots. Il doit^ etreex ecut ep eriodiquement,au moins une fois par heure, voire plus, en fonction du volume du tra c. Son fonctionnement est contr^ ol e par le chier batchparms situ e dans /usr/lib/news, qui d ecrit la taille maximale autoris ee pour chaque lot, et le transport a utiliser pour les d elivrer; ceci pour chaque site. Vous pouvez sp eci er ces param etres soit par site, soit par des valeurs par d efaut qui seront prises en compte pour tous les syst emes non mentionn es explicitement. Pour pr eparer les lots destin es a un site sp eci que, utilisez la commande suivante: # su news -c /usr/lib/news/bin/batch/sendbatches site Appel ee sans argument, la commande sendbatches traite toutes les les d'attente. Si une entr ee par d efaut existe dans le chier batchparms, tous les r epertoires contenus dans /var/spool/news/out.going seront trait es; sinon ne seront pris en compte que les entr ees indiqu ees, dans l'ordre o u elles se trouvent dans batchparms. Notez que lors de la recherche dans out.going, sendbatches ne consid ere comme nom de site que les r epertoires ne contenant aucun point ou signes @ dans leur nom. Vous trouverez probablement dans votre distribution un chier batchparms tout pr^ et contenant une entr ee par d efaut raisonnable, aussi il y a des chances que vous n'ayez rien a modi er. Malgr e tout, nous allons d ecrire ce format, qu'il est bon de conna^ tre. Chaque ligne contient six champs, s epar es par des espaces ou tabulations: site taille max outil compacteur transport Le champ site contient le nom du site auquel s'applique cette entr ee. Le chier togo correspondant devra se trouver dans le r epertoire out.going/togo, dans le spoule. Le mot cl e /default/ indique l'entr ee par d efaut. Le champ taille indique la taille maximale autoris ee pour chaque lot, avant com- pression. Si un article d epasse a lui seul cette taille, C News fera une exception et cr eera un lot ne contenant que cet article. La valeur max correspond au nombre maximum de batches a pr eparer pour le transfert vers ce site. C'est tr es utile lorsqu'un syst eme doit ^ etre indisponible pour une longue p eriode, car il evite de voir le spoule UUCP rempli par des milliers de lots en attente d'^ etre transf er es. C News d etermine le nombre de lots en attente gr^ ace au script queulen, situ e dans le r epertoire /usr/lib/news/bin. Le paquetage newspak de Vince Skahan en contient
  • 295.
    278 Chapitre 17.C News une version adapt ee aux impl ementations d'UUCP compatibles BNU. Si vous utilisez un autre style de r epertoires de spoule, comme Taylor UUCP, vous devrez ecrire un script adapt e8. Le champ outil d esigne la commande utilis ee pour produire un lot a partir de la liste d'articles contenue dans le chier togo. Pour les ux standard, il s'agit normalement de batcher. Pour d'autres besoins, vous pouvez indiquer di erents autres programmes; par exemple, le protocole ihave/sendme n ecessite que cette liste soit transform ee en un message de contr^ ole post e dans le groupe to.site. Cette op eration est r ealis ee par batchih et batchsm. Le champ compacteur sp eci e la commande utilis ee pour la compression. G en erale- ment, il s'agit du shell-script compcun9. Mais vous pouvez aussi indiquer un script appelant gzip (que vous r edigerez vous-m^ eme); vous devrez cependant vous mettre d'accord avec le site distant pour que sa commande uncompress sache traiter les - chiers compact es par gzip. Si le syst eme distant ne poss ede pas du tout de commande uncompress, vous pouvez sp eci er nocomp; dans ce cas, les lots resteront non compact es. Le dernier champ, transport, d ecrit la m ethode de transport qu'il faudra utiliser. Il y a un certain nombre de commandes standard pour cela, dont le nom commence par via. Le programme sendbatches leur passe le nom du site destinataire sur la ligne de commandes. Si l'entr ee dans batchparms n'est pas /default/, il d erive ce nom du champ site en prenant toute la partie pr ec edant un eventuel point ou slash. S'il s'agit de l'entr ee /default/, ce seront les noms des r epertoires pr esents dans out.going qui seront utilis es. Il y a deux commandes utilisant uux pour faire ex ecuter rnews sur le syst eme distant: viauux et viauuxz. La derni ere positionne l'option -z n ecessaire aux anciennes versions de uux pour eviter qu'il retourne un message pour chaque article indiquant que le transfert s'est bien pass e. Vous trouverez une liste compl ete de ces transports dans la page de manuel newsbatch(8). Toutes les commandes des trois derniers champs doivent se trouver soit dans le r eper- toire out.going/site, soit dans /usr/lib/news/bin/batch. La plupart d'entre elles sont des shell-scripts, vous pourrez donc facilement vous ecrire des outils sur mesure le cas ech eant. Elles sont invoqu ees par un tube; la liste des articles est envoy ee sur l'entr ee standard, et le lot r ealis e arrive sur la sortie standard, qui elle-m^ eme est redirig ee vers le compacteur, etc. Voici un exemple de ce chier: 8: Si le nombre de lots spoul es ne vous pr eoccupe pas (parce que vous ^ etes le seul a utiliser votre machine et ne r edigez pas des m egaoctets d'articles), vous pouvez remplacer le contenu de ce script par la simple instruction exit 0. 9: Tel que livr e avec C News, compcun utilise compress avec l'option 12 bits, car c'est le plus petit d enominateur commun pour la plupart des sites. Vous pouvez en faire une copie, que vous appellerez par exemple compcun16, o u vous utiliserez la compression 16 bits.
  • 296.
    17.6. Expiration desNews 279 # Fichier batchparms pour les brasseurs # site | taille | max | outil |compacteur |transport #-------------+--------+-------+---------+-----------+----------- /default/ 100000 22 batcher compcun viauux swim 10000 10 batcher nocomp viauux 17.6 Expiration des News Dans Bnews, l'expiration etait r ealis ee par un programme appel e expire, qui prenait une liste de groupes en arguments, ainsi que la date a prendre en compte. Pour que des hi erarchies di erentes aient des d elais d'expiration di erents, il fallait ecrire un script appelant expire s epar ement pour chacune d'elles. C News propose maintenant une solution bien meilleure: dans un chier nomm e explist, vous indiquez des groupes et des intervalles d'expiration. Une commande appel ee doexpire est invoqu ee tous les jours par cron, et traite ces groupes en fonction de ce que vous avez indiqu e dans cette liste. Il est parfois n ecessaire de conserver les articles de certains groupes, m^ eme apr es qu'ils ont expir e. Par exemple, vous pouvez vouloir conserver les programmes post es dans comp.sources.unix. Cela s'appelle naturellement l'archivage; explist permet de s electionner des groupes a archiver. Une entr ee du chier explist est constitu ee ainsi: liste-groupes permission jours archive Le champ liste-groupes est une liste de forums, s epar es par des virgules, auxquels cette entr ee s'appliquera. Les hi erarchies peuvent ^ etre sp eci ees en indiquant le pr e- xe des groupes, suivi le cas ech eant du mot cl e all. Par exemple, pour d esigner tous les groupes en dessous de comp.os, vous pouvez indiquer soit comp.os, soit comp.os.all. Lors de l'expiration d'un groupe, son nom est recherch e dans les entr ees du chier ex- plist, dans l'ordre donn e. La premi ere entr ee qui correspond s'appliquera. Parexemple, pour supprimer la majorit e de comp au bout de quatre jours, sauf les articles du groupe comp.os.linux.announce que vous voudriez conserver une semaine, il vous sut d'une entr ee pour ce dernier sp eci ant une p eriode d'expiration de sept jours, suivie par celle pour comp, qui indiquera quatre jours. Le champ permission pr ecise si l'entr ee s'applique aux groupes mod er es, non mod e- r es, ou tous les groupes. Il peut prendre la valeur m (mod er es), u (non mod er es), ou x (tous). Le troisi eme champ, jours, contient le nombre de jours au bout desquels les articles expireront s'ils ne se sont pas vu assigner une date d'expiration particuli ere par le
  • 297.
    280 Chapitre 17.C News champ Expires de l'en-t^ ete. Notez que ce nombre de jours est compt e a partir de l'arriv ee sur votre site, et non pas de la date o u le message a et e emis. Ce champ jours peut toutefois ^ etre plus complexe. Il peut contenir une combinaison pouvant aller jusqu' a trois nombres s epar es les uns des autres par un tiret. Le premier d enotera le nombre de jours devant s' ecouler avant que l'article ne soit consid er e comme candidat a l'expiration. Il est rare d'y mettre autre chose que z ero.Le deuxi eme champ contiendra le nombre de jours avant expiration, c'est le m^ eme que celui que nous venons de d ecrire plus haut. Le troisi eme contiendra le nombre de jours au bout desquels l'article sera supprim e de force, quel que soit le contenu du champ Expires de son en-t^ ete. Si l'on n'indique seulement que le nombre du milieu, les deux autres prennent des valeurs par d efaut, qui peuvent ^ etre sp eci ees par l'entr ee sp eciale /bounds/, d ecrite un peu plus loin. Le quatri eme champ, archive, indique si le groupe doit ^ etre archiv e, et a quel endroit. Si l'archivage n'est pas demand e, il sut d'y mettre un tiret. Sinon, vous pouvez utiliser un chemin d'acc es complet a un r epertoire (et non pas d'un chier), ou le signe @ qui symbolisera le r epertoire d'archivage par d efaut. Celui-ci sera alors indiqu e a doexpire par l'option -a de sa ligne de commandes. Un r epertoire destin e a l'archivage doit appartenir a l'utilisateur news. Lorsque doexpire archive un article de, disons, comp.sources.unix, il le place dans le r epertoire comp/sources/unix a partir du r epertoire d'archivage, en cr eant l'arborescence si n ecessaire. Mais ce r epertoire d'archivage devra exister, il n'est jamais cr e e automatiquement. Le programme doexpire tient comte de deux entr ees de votre chier explist: au lieu d'une liste de groupes, elles contiennent les mots-cl es /bounds/ et /expired/. L'entr ee /bounds/ contient les valeurs par d efaut a assigner aux trois valeurs du champ jours d ecrit plus haut. Le champ /expired/ d etermine combien de temps C News devra tenir compte des lignes du chier history. Il est n ecessaire, car les lignes de ce chier ne seront pas supprim ees imm ediatement lorsque les articles correspondants auront expir e: cela permet de rejeter tout article d ej a expir e qui viendrait a se repr esenter, en provenance d'un ux tr es lent ou pour toute autre raison. Si vous n'avez qu'un fournisseur, vous pouvez choisir une valeur assez faible. Pour les r eseaux UUCP, quinze jours semble une valeur raisonnable; a vous de voir en fonction des d elais obtenus dans votre cas particulier. Voici ci-dessous un exemple de chier explist contenant des intervalles d'expiration assez courts: # Conservation des lignes du fichier history pendant quinze jours. /expired/ x 14 - # Personne ne conserve un article plus de trois mois. /bounds/ x 0-1-90 - # groupes que nous voulons conserver plus longtemps que les autres comp.os.linux.announce m 10 - comp.os.linux x 5 -
  • 298.
    17.7. Fichiers divers281 alt.folklore.computers u 10 - rec.humor.oracle m 10 - soc.feminism m 10 - # Archivage des groupes *.sources comp.sources,alt.sources x 5 @ # d efauts pour les groupes tech comp,sci x 7 - # Suffisant pour un long week-end misc,talk x 4 - # supprime le groupe junk tr es rapidement junk x 1 - # les messages de contr^ ole ne sont pas plus int eressants control x 1 - # entr ee qui s'appliquera a tout le reste all x 2 - Le processus d'expiration pose plusieurs probl emes. Le premier se pr esente si votre lecteur de News tient compte du troisi eme champ du chier active, qui contient le num ero du premier article de chaque groupe. C News ne met jamais cette valeur a jour. Si ce champ doit vraiment repr esenter la situation r eelle, vous devrez ex ecuter un programme appel e updatemiin apr es chaque appel a doexpire. (Dans de pr ec edentes versions, le nom du programme est upact.) C News ne scrute pas le r epertoire du groupe, mais teste simplement dans le - chier history si l'article doit expirer10. Si ce chier est endommag e ou ne repr esente plus exactement la situation pour une raison quelconque, certains articles resteront eternellement sur votre disque, car C News les aura litt eralement oubli es11. Vous pouvez rem edier a la situation gr^ ace au script addmissing situ e dans le r epertoire /usr/lib/news/bin/maint, qui rajoutera tous les articles absents du chier history, ou encore la commande mkhistory, qui reconstruira enti erement un nouveau chier tout neuf. N'oubliez pas de passer sous l'utilisateur news auparavant, sinon le chier serait inaccessible a C News. 17.7 Fichiers divers Il existe un certain nombre de chiers contr^ olant le comportement de C News, mais qui ne sont pas indispensables a son fonctionnement. Tous r esident dans /usr/lib/news, en voici une liste: 10: La date d'arriv ee est enregistr ee dans le champ du milieu de la ligne d'historique, exprim ee en nombre de secondes depuis le premier janvier 1970. 11: Ce cas se produit r eellement de temps en temps, sans qu'on puisse trouver d'explication...
  • 299.
    282 Chapitre 17.C News newsgroups C'est le compagnon du chier active; il contient une liste de chaque groupe connu sur votre syst eme, avec une br eve description (sur une ligne) du groupe en question. Il est automatiquement mis a jour lorsque C News re coit un message de contr^ ole checknews. localgroups Si vous avez cr e e des groupes locaux et que vous ne voulez pas que C News se plaigne chaque fois que vous recevez un message check- news, indiquez leurs noms et descriptions dans ce chier, de la m^ eme mani ere que dans le chier newsgroups. mailpaths Ce chier contient les adresses des mod erateurs de chaque groupe mod er e. Chaque ligne contient le nom du groupe, suivi de l'adresse electronique de la personne en question. Les deux champs sont s epa- r es par un caract ere de tabulation. Deux entr ees sp eciales sont fournies par d efaut: backbone et inter- net. Toutes deux indiquent, en notation par bangs, le chemin vers un site central et celui qui comprend les adresses RFC 822 (utilisa- teur@machine). Les entr ees par d efaut sont: internet backbone Vous n'aurez pas besoin de modi er l'entr ee internet si vous utilisez smail ou sendmail, car ils comprennent l'adressage RFC 822. L'entr ee backbone est utilis ee chaque fois qu'un utilisateur poste dans un groupe mod er e dont le mod erateur n'est pas indiqu e explicite- ment. Si le nom du groupe est alt.machin, et que l'entr ee back- bone contient chemin!%s, C News enverra par courrier l'article a chemin!alt-machin, en esp erant que cette machine sera capable de le traiter. Pour trouver quel chemin utiliser, demandez aux administra- teurs du site qui vous fournit les News. En tout dernier ressort, vous pouvez mettre uunet.uu.net!%s. distributions Il ne s'agit pas a proprement parler d'un chier de C News, il est utilis e par certains programmeslecteurs et le d emon nntpd. Il contient la liste des distributions reconnues par votre site, et une description des e ets induits (ou esp er es...) Par exemple, celui de ( ( La bi ere virtuelle ) ) contient ceci: world partout dans le monde local Local a ce site nl Hollande uniquement mugnet MUGNET uniquement, s'il vit encore fr France uniquement de Allemagne uniquement brasseurs Soci et e La bi ere virtuelle seulement
  • 300.
    17.8. Les messagesde contr^ ole 283 M e ez-vous de ces distributions, evitez-les. Lisez ou relisez ce qui est dit a leur propos, page 272. log Ce chier contient toutes les traces des activit es de C News. Il est purg e r eguli erement par newsdaily; les copies des anciennes traces sont conserv ees dans log.o, log.oo, etc. errlog Il contient les enregistrements de tous les messages d'erreurs g en er es par C News. Cela ne comprend pas les articles d eplac es dans junk. Il est automatiquement envoy epar courrier au newsmaster (usenetpar d efaut) par newsdaily s'il n'est pas vide au moment o u cet utilitaire est mis en route. Ce chier est remis a z ero par newsdaily, et sauvegard e dans errlog.o, errlog.oo, etc. batchlog Il contient la trace de tous les travaux de sendbatches; il n'a que peu d'int er^ et. Il est egalement trait e par newsdaily. watchtime Il s'agit d'un chier vide cr e e chaque fois que newswatch est ex ecut e. 17.8 Les messages de contr^ ole Le protocole de News Usenet comprend une cat egorie d'articles sp eciaux qui corres- pondent en fait a des actions e ectu ees par le syst eme. On les appelle les messages de contr^ ole. Ils sont reconnaissables par la pr esence d'un champ Control dans l'en-t^ ete, qui contient le nom de l'op eration a r ealiser. Toutes ces op erations sont ex ecut ees par des shell-scripts situ es dans le r epertoire /usr/lib/news/ctl. La plupart s'e ectueront automatiquement au moment o u l'article sera trait e par C News, sans que personne soit avis e. Par d efaut, seuls les messages checkgroups seront pass es au newsmaster, mais vous pouvez modi er ce comportement en editant les scripts. 17.8.1 Le message cancel C'est le plus connu, il permet a un utilisateur de supprimer un article qu'il a pr ec e- demment post e. Cette op eration supprime physiquement le chier contenant l'article. Le message cancel est exp edi e a tous les sites qui re coivent le groupe concern e, qu'ils aient d ej a re cu l'article ou non; il peut avoir et e retard e pour une raison quelconque. Certains syst emes permettent aux utilisateurs de supprimer des messages post es par d'autres personnes; ils sont a proscrire absolument, c'est un bogue impardonnable.
  • 301.
    284 Chapitre 17.C News 17.8.2 Les messages newgroup et rmgroup Ces messages g erent la cr eation et la suppression de groupes. Les groupes situ es en dessous des hi erarchies ( ( usuelles ) ) ne peuvent ^ etre cr e es qu'apr es une discussion et un vote qui ont lieu au niveau mondial. Tous les utilisateurs de Usenet sont concern es. Les r egles s'appliquant a la hi erarchiealt sont, en revanche, assez proche de l'anarchie. Pour plus d'informations, vous devez lire les articles d'information post es r eguli ere- ment dans news.announce.newusers et news.announce.newgroups. N'envoyez jamais de messages de contr^ ole newgroup ou rmgroup vous-m^ eme, a moins que vous soyez absolument certain d'en avoir obtenu l'autorisation. 17.8.3 Le message checkgroups Les messages checkgroups sont envoy es par les administrateurs pour que tous les sites d'un r eseau synchronisent leurs chiers active avec la r ealit e. Par exemple, certains fournisseurs de service IP peuvent envoyer de tels messages a tous leurs clients uti- lisant Usenet. Une fois par mois, un checkgroups ( ( ociel ) ) concernant toutes les principales hi erarchies mondiales est post e dans comp.announce.newgroups par son mod erateur. Toutefois, il y est plac e comme un article ordinaire et non pas sous la forme d'un message de contr^ ole. Pour que l'op eration de mise a jour ait lieu, sauvez cet article dans un chier (appelons-le /tmp/maj, par exemple), supprimez tout ce qui pr ec ede le d ebut du message lui-m^ eme, et envoyez-le au shell-script checkgroups par la commande suivante: # su news -c /usr/lib/news/bin/ctl/checkgroups /tmp/maj Votre chier newsgroups sera mis a jour, les groupes indiqu es dans localgroups seront pris en compte. L'ancien chier sera sauv e sous le nom de newsgroups.bac. Notez que poster un tel message localement fonctionnera rarement, car inews refuse des articles aussi longs. Si C News trouve des di erences entre la liste contenue dans le message checkgroups et le chier active, il g en erera une s erie de commandes qui mettront tout votre syst eme a jour et enverront un rapport par courrier a l'administrateur des News. La sortie ressemble typiquement a ceci: From news Sun Jan 30 16:18:11 1994 Date: Sun, 30 Jan 94 16:18 MET From: news (News Subsystem) To: usenet Subject: Problems with your active file The following newsgroups are not valid and should be removed. alt.ascii-art bionet.molbio.gene-org comp.windows.x.intrisics
  • 302.
    17.8. Les messagesde contr^ ole 285 de.answers You can do this by executing the commands: /usr/lib/news/bin/maint/delgroup alt.ascii-art /usr/lib/news/bin/maint/delgroup bionet.molbio.gene-org /usr/lib/news/bin/maint/delgroup comp.windows.x.intrisics /usr/lib/news/bin/maint/delgroup de.answers The following newsgroups were missing. comp.binaries.cbm comp.databases.rdb comp.os.geos comp.os.qnx comp.unix.user-friendly misc.legal.moderated news.newsites soc.culture.scientists talk.politics.crypto talk.politics.tibet Le premier paragraphe indique les groupes non valides que vous devez supprimer; le deuxi eme vous donne les commandes n ecessaires pour le faire; et le troisi eme est une liste des groupes qui n'ont pas et e trouv es sur votre site. Lorsque vous recevez un courrier comme celui-ci de la part de votre syst eme de News, ne le croyez pas aveugl ement. En fonction de qui a envoy e le message checkgroups, il peut manquer quelques groupes voire des hi erarchies enti eres; aussi vous devez faire attention a ne pas supprimer des choses qu'il aurait fallu conserver. Si vous notez dans les groupes manquants, certains que vous aimeriez supporter sur votre site, vous devrez les rajouter en utilisant le script addgroup. Sauvez la liste de ces groupes manquants dans un chier, et envoyez-le dans le petit shell-script suivant: #!/bin/sh cd /usr/lib/news while read group; do if grep -si ^$group[[:space:]].*moderated newsgroup; then mod=m else mod=y fi /usr/lib/news/bin/maint/addgroup $group $mod done 17.8.4 Les messages sendsys, version et senduuname Ces trois messages peuvent ^ etre utilis es pour obtenir la topologie du r eseau. Lorsqu'il les re coit, C News retourne a l'exp editeur les informations demand ees, par courrier electronique. Le message sendsys renvoie le chier sys dans son int egralit e, version une cha^ ne de caract eres indiquant la version du syst eme de News utilis e, et senduuname
  • 303.
    286 Chapitre 17.C News renvoie la sortie de la commande uuname(1). C News est tr es laconique lorsqu'on lui demande son num ero de version; il se contente de renvoyer un simple ( ( C ) ), sans oritures. L a encore, vous ne devez jamais poster un tel message, sauf si vous ^ etes parfaitement certain qu'il ne sortira pas de votre r eseau r egional.Les r eponses aux messages sendsys peuvent g en erer un tra c proprement gigantesque, et mettre beaucoup de sites UUCP en dicult e. N'essayez jamais sur l'Internet. 17.9 C News dans un environnement NFS Une fa con simple de distribuer les News sur un r eseau local est de conserver les articles sur un h^ ote central et d'exporter les r epertoires concern es par NFS, de sorte que les programmes lecteurs puissent acc eder directement aux messages. L'avantage de cette m ethode sur NNTP, c'est que les ressources n ecessaires pour r ecup erer et lire les articles sont tr es inf erieures. Par contre, NNTP gagne sur tous les tableaux dans un r eseau h et erog ene o u l' equipement est tr es vari e, ou si les utilisateurs n'ont pas de comptes equivalents sur la machine serveur. Avec un montage NFS, les articles post es sur un h^ ote local doivent ^ etre envoy es sur la machine centrale, car l'acc es aux chiers administratifs peut donner lieu a des con its entre syst emes, et provoquer des inconsistances dans les donn ees. De plus, vous pr ef ererez sans doute exporter votre r epertoire de spoule en lecture seule, ce qui n ecessitera obligatoirement un envoi des articles a poster sur le serveur qui aura les droits d' ecriture. C News g ere cette situation de mani ere transparente. Lorsque vous postez un ar- ticle, votre programme lecteur appelle en principe inews pour injecter le message dans le syst eme de News. Cette commande e ectue un certain nombre de tests sur l'article, compl ete l'en-t^ ete, et recherche un chier nomm e server dans le r epertoire /usr/lib/news. Si ce chier existe et contient le nom d'un h^ ote di erent de la machine locale, inews est invoqu e sur ce syst eme par la commande rsh. Puisque le script inews utilise certaines commandes et chiers de con guration de C News, il faudra avoir install e C News sur la machine locale, ou l'avoir mont e par NFS depuis le serveur. Pour que l'appel a rsh fonctionne correctement, chaque utilisateur doit poss eder un compte equivalent sur le syst eme serveur, c'est- a-dire un compte o u il peut acc eder par le r eseau sans avoir besoin de donner son mot de passe. V eri ez bien que le nom d'h^ ote donn e dans le chier server correspond lettre pour lettre a la sortie de la commande hostname(1) sur la machine serveur, sinon C News bouclera a l'in ni en essayant de d elivrer l'article.
  • 304.
    17.10. Outils ettravaux de maintenance 287 17.10 Outils et travaux de maintenance Malgr e la complexit e de C News, la vie d'un administrateur de News n'est pas si dicile qu'on pourrait le penser car ce syst eme o re une grande vari et e d'utilitaires de maintenance. Certains sont destin es a ^ etre appel es a intervalles r eguliers par cron, comme par exemple newsdaily. L'emploi de ces scripts r eduit consid erablement le temps n ecessaire a l'administration de votre syst eme C News. Sauf exception, toutes ces commandes se trouvent dans /usr/lib/news/bin/maint. Vous devez absolument passer utilisateur news avant de les utiliser. Les employer depuis tout autre compte peut rendre certains chiers inaccessibles a C News. newsdaily Comme son nom l'indique12, vous devez lancer cette commande une fois par jour. C'est un script tr es important qui permet de conser- ver des chiers de trace susamment courts, v eri er toute anomalie comme de mauvais lots dans les r epertoires de d epart et d'arriv ee, les tentatives d'envoi vers des groupes inconnus ou mod er es, etc. Les messages d'erreur sont envoy es dans la bo^ te aux lettres de l'admi- nistrateur newsmaster. newswatch Vous devrez lancer ce script r eguli erement pour v eri er l' etat du sys- t eme de News, toutes les heures par exemple. Il d etecte les probl emes qui peuvent avoir un e et imm ediat sur le fonctionnement du sys- t eme, et envoie un rapport a newsmaster. Parmi les choses test ees, citons les chiers de verrouillage oubli es, l'arriv ee de lots inattendus, et l'espace disque disponible. addgroup Rajoute un groupe a votre syst eme, localement. La commande s'uti- lise ainsi: addgroup groupe y|n|m|=vrai-groupe Le second argument a la m^ eme signi cation que le drapeau corres- pondant dans le chier active, c'est- a-dire que tout le monde peut poster (y), personne ne peut poster (n), que c'est un groupe mod er e (m), ou qu'il s'agit d'un alias pour un autre groupe (=vrai-groupe). Vous utiliserez aussi cette commande lorsque le premier article d'un tout nouveau groupe arrive avant le message de contr^ ole destin e a cr eer le groupe en question. delgroup Permet de supprimer un groupe, localement. Sa syntaxe est simple: delgroup groupe 12: Dans une autre langue...
  • 305.
    288 Chapitre 17.C News Vous devrez supprimer ensuite tous les articles qui resteront dans le r epertoire concern e, soit manuellement, soit en attendant tranquille- ment que la proc edure d'expiration le fasse toute seule. addmissing Rajoute les articles absents dans le chier history. Lancez ce script lorsque vous constatez que certains messages semblent rester ind e - niment, sans jamais expirer. newsboot Ce script doit ^ etre ex ecut e a chaque d emarrage de la machine. Il net- toie tout chier de verrouillage pouvant provenir de processus tu es lors de l'arr^ et du syst eme, et referme puis extrait tout lot d'articles laiss e par les connexions NNTP qui se sont termin ees au m^ eme mo- ment. newsrunning Celui-l a se trouve dans le r epertoire /usr/lib/news/bin/input et peut ^ etre utilis e pour invalider l'extraction des lots de News qui arrivent, par exemple pendant les heures de travail. Vous pouvez arr^ eter ce traitement par: /usr/lib/news/bin/input/newsrunning off Il sera remis en service en mettant on au lieu de o .
  • 306.
    289 Chapitre 18 Description duprotocole NNTP Pour l' echange de News Usenet, le protocole NNTP constitue une approche radicale- ment di erente de C News. NNTP signi e Network News Transfer Protocol, protocole de transfert de News par r eseau. Il ne s'agit pas d'un programme particulier, mais d'un standard Internet1. Il est bas e sur une connexion (g en eralement TCP) entre un client situ e a n'importe quel endroit du r eseau et un serveur fonctionnant sur un h^ ote qui centralise le stockage des articles. La connexion permet au client et au serveur de n egocier le transfert des articles de mani ere interactive, sans pratiquement aucun d elai, ce qui contribue a limiter le nombre de messages dupliqu es. Alli e a la grande vitesse obtenue sur l'Internet, NNTP surpasse largement tout ce que l'on pouvait obtenir auparavant par des r eseaux UUCP. Alors qu'il y a encore quelques ann ees, il n' etait pas rare qu'un article mette une quinzaine de jours pour arriver a l'autre ( ( bout ) ) de Usenet, actuellement il ne faut plus, dans le pire des cas, qu'un jour ou deux; et a peine quelques minutes si l'on ne sort pas d'Internet. Di erentes commandes permettent aux clients de r ecup erer, envoyer et poster des articles. La di erence entre envoyer et poster est simple: un article post e peut avoir un en-t^ ete incomplet que le serveur ach evera de remplir, alors qu'un article envoy e est un ( ( produit ni ) ) 2. La r ecup eration des articles peut ^ etre employ ee pour transf erer des News aussi bien que pour la lecture par des interfaces conviviales, les Lecteurs de News. NNTP est le protocole id eal pour o rir un acc es Usenet a de nombreuses machines sur un r eseau local, sans passer par toutes les complications induites par un montage NFS. Il permet aussi des m ethodes actives ou passives pour le transfert des articles, appel ees 1: D e ni dans le document RFC 977. 2: Lorsque l'on poste un article par NNTP, le serveur rajoute toujours au moins un champ dans l'en-t^ ete: Nntp-Posting-Host, qui contient le nom de la machine sur laquelle se trouve ce client.
  • 307.
    290 Chapitre 18.Description du protocole NNTP le ( ( pushing ) ) et le ( ( pulling ) ). Le pushing est pratiquement le m^ eme que le proto- cole ihave/sendme de C News: le client o re un article au serveur par la commande ( ( IHAVE Message-ID ) ), et ce dernier retourne un code de r eponse indiquant s'il poss ede d ej a cet article ou s'il d esire qu'il lui soit envoy e. Dans ce dernier cas, le client envoie l'article, termin e par un point sur une ligne s epar ee. L'inconv enient de cette m ethode est la charge qu'elle induit sur le syst eme serveur, car il doit rechercher chaque article dans sa base de donn ees d'historique. Dans la technique oppos ee, le pulling, le client demande une liste de tous les articles (disponibles) dans un groupe donn e, arriv es sur le serveur apr es une certaine date. Cette requ^ ete se fait par la commande NEWNEWS. A partir de la liste de Message-ID re cus, le client s electionne ceux qu'il ne poss ede pas encore, en les r eclamant par la commande ARTICLE, un par un. Cette m ethode pr esente l'inconv enient de demander au serveur un contr^ ole tr es serr e des groupeset distributions qu'il permet de transf erer,pour chaque client. Parexemple, il doit s'assurer qu'aucune information con dentielle en provenance de groupes locaux ne peut ^ etre envoy ee a des machines non autoris ees. NNTP propose egalement un certain nombre de commandes utilitaires destin ees aux programmes lecteurs, leur permettant de r ecup erers epar ementl'en-t^ ete et le corps des articles, ou m^ eme uniquement certaines lignes de ces en-t^ etes. Ainsi, ces programmes peuvent se trouver sur n'importe quelle machine du r eseau (de pr ef erence local), et acc eder facilement a tous les articles qui restent centralis es sur un seul h^ ote, ce qui est une excellente alternative au montage des r epertoires de News par NFS, comme il est d ecrit dans le chapitre 17. NNTP sou re d'un petit d efaut: quelqu'un d'exp eriment e, connaissant bien le proto- cole, peut ins erer des articles portant de fausses informations (au nom de quelqu'un d'autre, par exemple)3. Il existe une extension de NNTP permettant au serveur de demander une authenti cation de l'utilisateur avant d'ex ecuter certaines commandes. Il circule un certain nombre d'impl ementations de NNTP. Le d emon NNTP, plus connu sous l'appellation impl ementation de r ef erence, est la plus c el ebre. A l'origine, elle fut r ealis ee par Stan Barber et Phil Lapsley pour illustrer les d etails des sp eci - cations RFC 977. Nous allons d ecrire sa version la plus r ecente, nntpd-1.5.11. Vous pouvez soit vous procurer le code source original et la compiler vous-m^ eme, soit utili- ser le nntpd contenu dans le paquetage net-std pr epar e par Fred van Kempen. Aucune version binaire pr e-compil ee n'est fournie en raison des diverses con gurations sp eci- ques au site qui doivent ^ etre int egr ees au programme. L'ensemble nntpd consiste en un serveur et deux clients r ealisant du pulling et du pushing, ainsi qu'un remplacement de la commande inews. Ils sont pr evus pour un environnement Bnews, mais avec quelques petites modi cations, fonctionneront par- faitement avec C News. Toutefois, si vous comptez utiliser NNTP pour faire plus qu'o rir un acc es aux lecteurs de News sur votre serveur, l'impl ementation de r ef e- 3: Le m^ eme probl eme se pose avec SMTP, le protocole de transfert du courrier electronique.
  • 308.
    18.1. Installation duserveur NNTP 291 rence n'est plus vraiment une option. Par cons equent, nous ne parlerons que du d emon NNTP contenu dans le paquetage nntpd et nous laisserons les programmes clients de c^ ot e. Il existe egalement un ensemble appel e ( ( InterNet News ) ), ou INN, r ealis e par Rich Salz. Il o re a la fois un transport NNTP et UUCP, et est pr ef erable pour les sites importants. En mati ere de News par NNTP, il est sans comparaison avec nntpd, c'est vraiment lui qu'il faut choisir. Si vous voulez installer INN, consultez la documentation fournie avec son code source, ainsi que le document ( ( INN FAQ ) ) post e r eguli erement dans le groupe news.software.b. 18.1 Installation du serveur NNTP Le serveur NNTP s'appelle nntpd, et peut ^ etre compil e de deux fa cons, en fonction de la charge de la machine supportant les News. Il n'y a aucune version binaire disponible, car la con guration sp eci que au site doit ^ etre incluse dans l'ex ecutable. Tout se con gure par des macros d e nies dans le chier common/conf.h. Soit vous con gurez nntpd en tant que serveur autonome qui sera lanc e au d emarrage du syst eme depuis le script rc.inet2, soit vous le con gurez comme d emon qui sera appel e par inetd. Dans ce dernier cas, vous devrez, bien entendu, avoir une entr ee comme celle-ci dans /etc/inetd.conf: nntp stream tcp nowait news /usr/etc/in.nntpd nntpd Si vous d ecidez de l'employer en serveur autonome, v eri ez que toute ligne comme celle-ci dessus soit absente ou comment ee dans inetd.conf. Dans un cas comme dans l'autre, le chier /etc/services doit contenir la ligne: nntp 119/tcp readnews untp # Network News Transfer Protocol A n de g erer les articles qui arrivent, nntpd a besoin d'un r epertoire temporaire .tmp dans votre spoule de News. Vous devrez le cr eer a l'aide des commandes suivantes: # mkdir /var/spool/news/.tmp # chown news.news /var/spool/news/.tmp 18.2 Restreindre les acc es NNTP L'acc es aux ressources NNTP est gouvern e par le chier nntp access situ e dans le r e- pertoire /usr/lib/news. Les lignes d ecrivent les droits accord esaux machines distantes, avec le format suivant: site read|xfer|both|no post|no [!groupes interdits]
  • 309.
    292 Chapitre 18.Description du protocole NNTP Si un client se connecte au port NNTP, nntpd va tenter d'obtenir son nom pleinement quali e a partir de son adresse IP par une recherche inverse. Le nom et l'adresse de ce client sont compar es avec les champs site de chaque entr ee, dans l'ordre o u elles appara^ ssent dans le chier. Si une entr ee correspond exactement, elle s'applique; si elle ne correspond que partiellement, elle s'appliquera s'il n'y a pas, plus loin, une autre entr ee correspondant mieux. Le champ site peut ^ etre sp eci e sous l'une des formes suivantes: nom de machine C'est le nom pleinement quali e d'un h^ ote. S'il est identique au nom canonique de la machine connect ee, l'entr ee s'applique, et toutes les suivantes sont ignor ees. adresse IP Il s'agit d'une adresse IP en notation sur 4 octets. Si l'adresse du client correspond, l'entr ee s'applique et les suivantes sont ignor ees. nom de domaine C'est un nom de domaine, indiqu e sous la forme *.domaine. Si le domaine auquel appartient l'h^ ote connect e correspond, l'entr ee s'ap- plique. nom de r eseau Il s'agit du nom d'un r eseau tel que sp eci e dans /etc/networks. Si la partie r eseau de l'adresse IP de la machine connect ee correspond a l'adresse r eseau associ ee a ce nom, l'entr ee s'applique. Default La cha^ ne default correspond a tout client. Les entr ees comportant une sp eci cation de site plus g en erale doivent appara^ tre en premier, car toute correspondance eventuelle pourra ainsi ^ etre remplac ee par une suivante, plus exacte. Le deuxi eme et le troisi eme champ d ecrivent les droits d'acc es autoris es au client. Le deuxi eme d e nit les permissions de lecture (read), et de transfert par pushing (xfer). La valeur both valide les deux a la fois; alors que no interdit tout acc es. Le troisi eme champ autorise le client a poster des articles, c'est- a-dire a d elivrer des messages comportant des en-t^ etes incomplets qui seront compl et es par le serveur. Si le deuxi eme champ contient le mot cl e no, le troisi eme sera ignor e. Le quatri eme champ est facultatif et contient une liste de groupes, s epar es par des virgules, auxquels le client n'aura pas le droit d'acc eder. Voici ci-dessous un exemple de chier nntp access: # # par d efaut, tout le monde peut transf erer des News, mais # ni lire ni poster: default xfer no
  • 310.
    18.3. Authenti cationNNTP 293 # # la machine public.bibine.com offre un acc es public par modem, # nous leur autorisons de lire et de poster dans tous les groupes # except e les groupes local.* public.bibine.com read post !local # # tous les autres h^ otes chez les brasseurs peuvent lire et poster *.bibine.com read post 18.3 Authenti cation NNTP Lorsqu'il totalise les droits d'acc es d e nis par xfer ou read dans le chier nntp acces, le programme nntpd requiert une authenti cation de la part du client. Par exemple, lorsqu'il est sp eci e Xfer ou XFER, il ne laissera pas le client transf erer d'articles tant qu'il n'aura pas pass e la proc edure d'authenti cation avec succ es. Cette proc edure est impl ement ee par l'interm ediaire d'une nouvelle commande NNTP appel ee AUTHINFO. Par cette commande, le client transmet un nom d'utilisateur et un mot de passe au serveur NNTP. Le d emon nntpd les validera en les comparant avec les donn ees du chier /etc/passwd, et en v eri ant que cet utilisateur appartient bien au groupe nntp. L'impl ementation courante de l'authenti cation NNTP n'est qu'exp erimentale est n'a par cons equent pas et e faite de mani ere tr es portable. En particulier, elle ne fonctionne qu'avec des chiers /etc/passwd traditionnels; les mots de passe shadow ne sont pas reconnus. 18.4 Int egration de nntpd dans C News Lorsqu'il re coit un article, nntpd doit le d elivrer au syst eme de News. S'il est arriv e par une commande IHAVE, l'article sera pass e a rnews; s'il s'agit de la commande POST, il sera transmis a inews. Au lieu d'invoquer rnews, vous pouvez aussi con gurer le programme ( a la compilation) pour qu'il cr ee des lots avec les articles entrants dans /var/spool/news/in.coming, qui seront trait es ensuite par relaynews. Pour que le protocole ihave/sendme fonctionne correctement, nntpd doit avoir acc es au chier history. Vous devez donc vous assurer lors de la compilation que le chemin d'acc es correct est bien indiqu e, et que C News et nntpd l'attendent sous le m^ eme format. C News utilise les fonctions de hachage de dbm pour y acc eder; mais il existe plusieurs impl ementations incompatibles entre elles de cette biblioth eque. Si C News a et e compil e avec une version di erente de celle se trouvant dans votre biblioth eque C standard, il vous faudra recompiler nntpd dans le m^ eme environnement. Le sympt^ ome typique lorsque nntpd et C News ne sont pas d'accord sur le format de la base de donn ees se pr esente sous forme de messages d'erreurs dans les traces du syst eme, indiquant que nntpd n'a pas pu l'ouvrir correctement, ou que des messages
  • 311.
    294 Chapitre 18.Description du protocole NNTP dupliqu es arrivent par NNTP. Un bon test consiste a prendre un message de votre spoule, vous connecter par telnet sur le port nntp, et le proposer comme nous le montrons dans l'exemple ci-dessous. Bien s^ ur, vous devrez remplacer msg@id par le Message-ID de l'article que vous voulez renvoyer a nntpd. $ telnet localhost nntp Trying 127.0.0.1... Connected to localhost Escape character is '^]'. 201 gueuze NNTP[auth] server version 1.5.11t (16 November 1991) ready at Sun Feb 6 16:02:32 1194 (no posting) IHAVE msg@id 435 Got it. QUIT Cette transaction montre une r eaction correcte de nntpd; le message ( ( Got it ) ) vous indique qu'il poss ede d ej a l'article en question. Si a la place vous obtenez le message ( ( 335 Ok ) ), c'est que la recherche dans la base de donn ees a echou e pour une raison quelconque. Terminez la conversation en tapant Ctrl-D. Vous pourrez rechercher ce qui ne va pas en inspectant les chiers de trace; nntpd enregistre ces messages sous la ( ( facilit e ) ) daemon de syslog. Une biblioth eque dbm incompatible se manifeste elle-m^ eme en indiquant que la fonction dbminit a echou e.
  • 312.
    295 Chapitre 19 Les lecteursde News Un ( ( lecteur de News ) ) est un programme que les utilisateurs appellent a n de lire, sauvegarder, et cr eer des articles de News Usenet. Il en existe beaucoup, la plupart se compilent parfaitement sous Linux ou ont fait l'objet d'un portage. Ici, nous d ecrirons la con guration de base de trois d'entre eux qui comptent parmi les plus populaires: tin, trn et nn. Le lecteur le plus ecace est celui-ci: $ find /var/spool/news -name '[0-9]*' -exec cat {} ; | more C'est ainsi que les vrais mordus d'UNIX lisent leurs News. Cela dit, la plupart des autres lecteurs sont bien plus sophistiqu es. Ils o rent g en erale- ment une interface plein ecran comportant plusieurs niveaux d'achage pour scruter les groupes que l'utilisateur fr equente, un plan d'ensemble de tous les articles dans chaque groupe, etc. Au niveau groupe, pratiquement tous achent une liste d'articles, montrant leurs sujets et leurs auteurs. Dans les forums les plus importants, il est souvent dicile de suivre la trace des articles relatifs les uns aux autres, bien qu'il soit possible d'identi er des r eponses a de pr ec edents messages. Une r eponse reprend en g en eral le sujet original, en y rajoutant ( ( Re: ) ) au d ebut. De plus, le Message-ID de l'article original appara^ t dans la ligne References de l'en- t^ ete. Si l'on trie les messages selon ces deux crit eres, on aboutit a de petits ensembles (en fait, arborescences) d'articles, que l'on appelle alors ls de discussions1. L'une des t^ aches les plus diciles lors de l' elaboration d'un lecteur de News consiste a trouver une m ethode ecace pour ce classement, car le temps requis est proportionnel au carr e du nombre d'articles a trier. 1: Dans les pays francophones, on utilise indi eremment les expressions ( ( l de discussion ) ), ( ( l ) ) et ( ( discussion ) ) pour ce que les anglophones appellent un thread.
  • 313.
    296 Chapitre 19.Les lecteurs de News Nous n'entrerons pas plus dans le d etail des interfaces utilisateur. Tous les lecteurs disponibles sous Linux sont munis d'excellents manuels et de bonnes fonctions d'aide, vous devriez pouvoir apprendre rapidement a les utiliser. Nous allons nous concentrer sur les t^ aches administratives permettant de faire fonc- tionner ces programmes correctement; ce ne sera bien s^ ur qu'un tr es bref aper cu, vous devrez ensuite vous r ef erer a la documentation fournie avec le lecteur que vous aurez choisi. 19.1 Con guration de tin Tin est le lecteur le plus simple et universel concernant les ls de discussion. Il est l'uvre de Iain Lea et est tr es proche d'un ancien programme nomm e tass ( ecrit par Rich Skrenta). Il commence le classement des articles lorsque l'utilisateur s electionne un groupe, et il est tr es rapide (sauf si cette op eration a lieu dans certaines conditions sous NNTP). Sur une machine 486DX50, il lui faut environ 30 secondes pour trier 1000 articles, s'il les lit depuis le disque. Par NNTP sur un serveur charg e, ce temps peut aller jusqu' a plus de 5 minutes2. Vous pouvez aller encore plus vite en mettant r eguli erement a jour vos chiers d'index par l'option -u, ou en appelant le programme avec l'option -U. En principe, tin ecrit ses bases de donn ees de discussions dans le r epertoire utilisateur, dans .tin/index. Cela peut prendre trop de ressources pour votre con guration, aussi vous devrez en conserver une seule copie dans un endroit central. Il vous faudra alors passer tin setuid news, ou quelque autre compte non privil egi e3. Dans ce cas, le programme ecrira toutes ses donn ees dans le chier /var/spool/news/.index. Pour tout acc es chier ou appel au shell, il remettra son num ero d'identi cation utilisateur e ectif a celui du compte depuis lequel il a et e appel e4. Une meilleure solution consiste a installer le d emon d'indexation tind qui met a jour r eguli erement les chiers d'index. Il n'est pas fourni dans les distributions de Linux, vous devrez donc le compiler vous-m^ eme. Si vous ^ etes sur un r eseau comportant un serveur de News central, vous pouvez aussi installer tind sur le serveur, et tous les clients r ecup ereront leurs chiers d'index par NNTP. Cela n ecessite une extension a ce protocole; les patches impl ementant cette modi cation dans nntpd sont fournis dans les sources de tin5. 2: Mais ce cas n'arrive jamais, car les serveurs de News modernes comme INN sont pr evus pour ce type d'application, et si tout est proprement con gur e, il n'y a pas de di erence notable entre une lecture directe sur disque et par NNTP. 3: N'utilisez pas le compte nobody pour ca. Par principe, aucun chier, commande, ou autres ne doit ^ etre associ e a cet utilisateur. 4: C'est la raison pour laquelle vous obtenez des messages d'erreurs lorsque vous l'appelez en tant que root. Mais quoi qu'il en soit, vous ne devez jamais prendre la mauvaise habitude de travailler sous le compte root, et en aucun cas l'utiliser pour poster sur Usenet. 5: Mais la meilleure solution dans ce cas est de ne pas employer C News mais INN, et d'oublier
  • 314.
    19.2. Con gurationde trn 297 La version de tin incluse dans certaines distributions de Linux est compil ee sans aucun support NNTP, mais cette erreur est maintenant corrig ee dans la plupart d'entre elles. Lorsqu'on l'appelle avec l'option -r, ou encore sous le nom de rtin, le programme tente de se connecter au serveur NNTP sp eci e dans le chier /etc/nntpserver ou dans la variable d'environnement NNTPSERVER. Le chier contient simplement une seule ligne, indiquant le nom de la machine a contacter. 19.2 Con guration de trn C'est aussi le successeur d'un ancien lecteur, qui s'appelait rn (ce qui signi e read news, ( ( lecture de news) )). La lettre ( ( t) ) au d ebut de son nom, est l a pour ( ( threaded) ), petit terme qui se traduit chez nous par ( ( g erant les ls de discussions ) ). L'auteur de trn s'appelle Wayne Davidson. Contrairement a tin, trn ne comporte aucune routine pour g en erer ses bases de don- n ees. Il utilise des bases pr epar ees a l'avance par un programme appel e mthreads qui doit ^ etre ex ecut e a intervalles r eguliers par cron. Si ce programme ne tourne pas, vous pourrez bien s^ ur acc eder quand m^ eme aux articles, mais comme ils ne seront pas tri es par discussions, vous aurez dans le menu de s election des listes enormes de sujets tous semblables comme ( ( O u se trouve la documentation sur Linux? ) ) au lieu de ne voir appara^ tre qu'un seul l que vous pourriez sauter en une fraction de seconde. Pour g en erer les index, mthreads est appel e en indiquant sur sa ligne de commandes, la liste des groupes que vous voulez voir index es. Cette liste doit ^ etre sp eci ee selon le m^ eme format que le chier sys: $ mthreads comp,rec,!rec.games.go La commande ci-dessus validera les ls de discussion pour tous les groupes comp et rec, sauf rec.games.go (les gens jouant a ce jeu n'ont pas grand-chose a dire). Apr es cela, il sura de l'appeler sans aucune option pour qu'il traite tous les nouveaux articles arriv es. Vous pouvez choisir d'indexer tous les groupes connus dans votre chier active en appelant mthreads avec une liste contenant simplement le mot all. Si vous recevez les News pendant la nuit, vous pourrez ex ecuter mthreads tous les matins, ou plus souvent si vous en avez besoin. Les sites qui ont un tra c important peuvent utiliser ce programme en mode d emon. Lorsqu'il est lanc e au d emarrage du syst eme avec l'option -d, il s'installe en arri ere-plan, et teste toutes les 10 minutes si de nouveaux articles sont arriv es, et les traitera le cas ech eant. Pour l'utiliser dans ce mode, mettez cette ligne dans votre script rc.news: ces chiers d'index au pro t de la m ethode des .overview, beaucoup plus el egante et ecace. Vous en trouverez une description dans les sources du serveur INN (entre autres), et sans doute dans une prochaine edition de ce livre...
  • 315.
    298 Chapitre 19.Les lecteurs de News /usr/local/bin/rn/mthreads -deav L'option -a valide l'indexation automatique de tous les nouveaux groupes lorsqu'ils sont cr e es; -v met en service les messages de trace, qui s'enregistreront dans le chier mt.log, situ e dans le r epertoire o u vous avez install e trn. Les vieux articles qui ne sont plus disponibles doivent ^ etre r eguli erement supprim es des chiers d'index. Par d efaut, seuls les articles dont le num ero est inf erieur a celui du premier qui est accessible sera supprim e6. Les articles dont le num ero est sup erieur a ce nombre mais qui ont malgr e tout expir e (car le plus ancien s' etait sans doute vu at- tribuer une tr es longue vie par le champ Expires de l'en-t^ ete), peuvent ^ etre supprim es en passant l'option -e a mthreads; elle valide un mode d'expiration plus ( ( intelligent) ). Lorsqu'il fonctionne en d emon, cette option le fera passer automatiquement dans ce mode une fois par jour, peu apr es minuit. 19.3 Con guration de nn Le programme nn, ecrit par Kim F. Storm, se targue d'^ etre un lecteur de News dont le but essentiel est de ne pas lire les News. Son nom signi e ( ( No News ) ) (pas de nouvelles), et sa devise est: ( ( Pas de nouvelles, bonnes nouvelles. ) ) Pour arriver a ce but si ambitieux, nn est fourni avec tout un assortiment d'outils de maintenance qui permettent non seulement la g en eration des ls de discussions, mais egalement de r ealiser des tests de coh erence de ces bases de donn ees, des sta- tistiques, des restrictions d'acc es, etc. Il y a aussi un programme d'administration nomm e nnadmin, qui o re toutes ces op erations dans un mode interactif. Il est tr es simple d'emploi, aussi nous ne nous etendrons pas plus sur ces aspects du logiciel et passerons de suite a la g en eration des chiers d'index. Le gestionnaire des bases de donn ees de discussions de nn s'appelle nnmaster. Il fonc- tionne normalement en d emon, lanc e depuis le script rc.news ou rc.inet2 au d emarrage du syst eme, de cette fa con: /usr/local/lib/nn/nnmaster -l -r -C Cette commande valide les ls de discussions pour tous les groupes pr esents dans votre chier active. Vous pouvez aussi ne pas le faire fonctionner en d emon, mais l'appeler r eguli erement par cron, en lui passant une liste de groupes a traiter. Cette liste ressemble beaucoup a la liste de souscription du chier sys, mais elle utilise des espaces a la place des virgules. Au lieu du groupe symbolique all, c'est un argument vide comme qui doit ^ etre utilis e pour indiquer tous les groupes. Voici un exemple d'appel: 6: C news ne met pas a jour cette valeur; vous devez utiliser la commande updatemin pour le faire. Consultez dans le chapitre 17, la page 275.
  • 316.
    19.3. Con gurationde nn 299 # /usr/local/lib/nn/nnmaster !rec.games.go rec comp Notez que l'ordre est signi catif. La sp eci cation de groupe la plus a gauche qui correspond, gagnera toujours. Donc, si nous avions mis!rec.games.go apr es rec, tous les articles de ce groupe auraient et e quand m^ eme trait es. Le lecteur nn propose plusieurs m ethodes pour supprimer de ses index les articles expir es. La premi ere consiste a mettre a jour la base en scrutant les r epertoires conte- nant les articles, et a supprimer les entr ees correspondant a des messages qui ne sont plus disponibles. C'est le mode op eratoire par d efaut, obtenu en appelant nnmaster avec l'option -E. Elle est assez rapide, sauf par NNTP. La deuxi eme m ethode fonctionne exactement comme l'expiration pard efaut de mthreads, en ce sens qu'elle ne supprime que les entr ees qui se r ef erent a des articles dont le num ero est inf erieur a celui du premier article dans le chier active. On la valide par l'option -e. En n, une troisi eme strat egie est possible, qui reconstruit enti erement une nouvelle base, en scrutant tous les articles. Elle peut ^ etre mise en service par l'option -E3. La liste des groupes a expirer est donn ee de la m^ eme fa con par l'option -F. Toutefois, si nnmaster fonctionne en mode d emon, vous devez le tuer (par l'option -k) avant que l'expiration ne se fasse, puis le relancer; par cons equent, la commande correcte pour l'expiration de tous les groupes par la premi ere m ethode sera: # nnmaster -kF # nnmaster -lrC Il y a encore beaucoup d'autres options qui permettent d'ajuster pr ecis ement le com- portement de nn. Si vous d esirez supprimer les articles d efectueux ou r ealiser des compilations, r esum es, ou autres, consultez la page de manuel de nnmaster. Ce programme nnmaster n ecessite un chier nomm e GROUPS, situ e dans le r epertoire /usr/local/lib/nn. S'il n'existe pas, il sera automatiquement cr e e. Il contient pour chaque groupe, une ligne commen cant par le nom de ce forum, suivi eventuellement par une date, et des drapeaux. Vous pouvez editer ces drapeaux pour valider un comportement particulier sur le groupe en question, mais vous ne devez pas changer l'ordre dans lequel ces groupes apparaissent dans le chier7. La description de ces drapeaux se trouve dans la page de manuel de nnmaster. 7: Car leur ordre doit correspondre a celui des entr ees du chier binaire MASTER.
  • 317.
    300 Chapitre 19.Les lecteurs de News
  • 318.
    301 Annexe A C^ able portparall ele pour PLIP Pour r ealiser un c^ able reliant les ports imprimante parall ele de deux PC (c^ able Null- Printer), vous devez vous procurer deux connecteurs m^ ales 25 broches (appel es DB- 25) et du c^ able comportant au moins 11 conducteurs. La longueur maximale possible est d'environ 15 m etres. Si vous regardez attentivement un des connecteurs, vous devriez pouvoir lire des num eros (prenez une loupe le cas ech eant) a la base de chaque broche. Vu du c^ ot e soudures, la premi ere broche en haut a droite porte le num ero 1, et la derni ere en bas a gauche le num ero 25. Les connexions a r ealiser seront les suivantes: D0 2 () 15 ERREUR D1 3 () 13 S ELECTION D2 4 () 12 PLUS de PAPIER D3 5 () 10 ACQUITTEMENT D4 6 () 11 OCCUP EE MASSE 25 () 25 MASSE ERREUR 15 () 2 D0 S ELECTION 13 () 3 D1 PLUS de PAPIER 12 () 4 D2 ACQUITTEMENT 10 () 5 D3 OCCUP EE 11 () 6 D4 Toutes les autres broches ne sont pas utilis ees. S'il s'agit d'un c^ able blind e, le blindage doit ^ etre soud e sur le bo^ tier m etallique de l'un des connecteurs, et un seul.
  • 319.
    302 Annexe A.C^ able port parall ele pour PLIP
  • 320.
    303 Annexe B Exemples dechiers de con guration pour smail Cette section donne des exemples de chiers de con guration adapt es a un site UUCP isol e, connect e a un r eseaulocal. Ils sont bas essur les exemples fournis dans la distribu- tion source de smail-3.1.28. Bien que nous ayons tent e d'expliquer tr es succinctement comment ces chiers fonctionnent, nous devons vous pr evenir que la lecture du manuel de smail(8) est indispensable; vous y trouverez tout le d etail. Une fois que vous aurez compris le principe et l'organisation de ces chiers, ce manuel vous para^ tra bien plus clair. Le premier chier que nous vous pr esentons, routers, d ecrit un ensemble de routeurs pour smail. Lorsqu'il doit d elivrer un message a une adresse donn ee, le programme passe cette adresse successivement a tous les routeurs jusqu' a en trouver un qui cor- responde. Correspondre signi e dans ce cas que le routeur trouve l'h^ ote de destination dans sa base de donn ees, que ce soit le chier paths, /etc/hosts, ou tout autre m eca- nisme de r esolution qu'il sait utiliser. Les entr ees des chiers de con guration de smail commencent toujours par un nom unique identi ant routeur, transport et directeur. Ils sont suivis par une liste d'attri- buts qui d e nissent son comportement. Cette liste consiste en un ensemble d'attributs globaux, comme le pilote utilis e, et d'attributs priv es qui ne sont compris que par ce pilote particulier. Les attributs sont s epar es par des virgules, alors que les ensembles globaux et priv es sont s epar es les uns des autres par le caract ere ( ( : ) ). A n de clari er ces distinctions, consid erons que vous d esirez maintenir deux chiers pathalias s epar es: l'un contenant les informations de routage pour votre domaine, et l'autre des informations de routage g en erales, probablement g en er ees a partir des cartes UUCP. Avec smail, vous pouvez alors sp eci er deux routeurs dans le chier routers, tous deux utilisant le pilote pathalias qui recherchera les noms dans une base
  • 321.
    304 Annexe B.Exemples de chiers de con guration pour smail de donn ees pathalias, et on lui donnera le nom du chier dans un attribut priv e: # # base de donn ees pathalias pour routage dans le domaine domaine_paths: driver=pathalias, # cherche l'h^ ote dans un fichier paths transport=uux; # si trouv e, d elivrer par UUCP file=paths/domaine, # le fichier est /usr/lib/smail/paths/domaine proto=lsearch, # il n'est pas tri e (recherche lin eaire) optional, # ignorer si le fichier n'existe pas required=bibine.com, # ne rechercher que les h^ otes de *.bibine.com # # base de donn ees pathalias pour routage hors de notre domaine monde_paths: driver=pathalias, # cherche l'h^ ote dans un fichier paths transport=uux; # si trouv e, d elivrer par UUCP file=paths/monde, # le fichier est /usr/lib/smail/paths/monde proto=bsearch, # il est tri e par sort(1) optional, # ignorer si le fichier n'existe pas -required, # pas de domaines requis domain=uucp, # supprime extension .uucp avant recherche Le second attribut global donn e dans chacune des deux entr ees routers ci-dessus d e- nissent le transport qu'il faudra utiliser lorsque ce routeur trouvera l'adresse. Dans notre cas, le message sera d elivr e par le transport uux. Ces transports sont d e nis dans le chier transports, qui est d ecrit un peu plus loin. Vous pouvez ajuster avec pr ecision par quel transport un message doit ^ etre d elivr e si vous sp eci ez un chier de m ethodes a la place de l'attribut transports. Les chiers de m ethodes o rent une base de correspondance entre des noms de machines et des transports. Nous ne les traiterons pas dans ce guide. Le chier routers qui va suivre d e nit des routeurs pour un r eseau local qui interroge la biblioth eque resolver. Sur un site Internet, il faudra en utiliser un autre, sachant g erer les enregistrements MX du DNS. Par cons equent, vous devrez supprimer les commentaires devant le routeur inet bind qui utilise le pilote BIND int egr e a smail. Dans un environnement mixte UUCP et TCP/IP, vous pouvez rencontrer des pro- bl emes avec des machines qui sont d eclar ees dans votre chier /etc/hosts, avec les- quelles vous avez occasionnellement des connexions SLIP ou PPP. Or, vous voudrez sans doute que le courrier pour ces sites passe quand m^ eme par UUCP. Pour eviter que le pilote inet hosts ne reconnaisse ces h^ otes, vous devrez les d eclarer dans le chier paths/force. Il s'agit d'une autre base de donn ees de type pathalias qui est consult ee avant que smail n'interroge le resolver. # Un exemple de fichier /usr/lib/smail/routers #
  • 322.
    305 # force -force le transport par UUCP pour certaines machines, # m^ eme si elles figurent dans votre /etc/hosts. force: driver=pathalias, # cherche l'h^ ote dans un fichier paths transport=uux; # si trouv e, d elivrer par UUCP file=paths/force, # le fichier est /usr/lib/smail/paths/force optional, # ignorer si le fichier n'existe pas proto=lsearch, # il n'est pas tri e (recherche lin eaire) -required, # pas de domaines requis domain=uucp, # supprime extension .uucp avant recherche # inet_addrs - pour les domaines num eriques, c'est- a-dire contenant # des adresses IP, comme dans dugenou@[172.16.2.1] inet_addrs: driver=gethostbyaddr, # pilote pour domaines IP num eriques transport=smtp; # d elivrer par SMTP sur TCP/IP fail_if_error, # echoue si adresse mal form ee check_for_local, # d elivrer directement si h^ ote = nous-m^ emes # inet_hosts - recherche des noms par gethostbyname(3N). # Commentez cette partie si vous voulez utiliser la version # BIND a la place, pour la gestion des MX du DNS. inet_hosts: driver=gethostbyname, # utilise la fonction biblioth eque transport=smtp; # d elivre par d efaut par SMTP -required, # pas de domaines requis -domain, # pas de suffixes de domaines d efinis -only_local_domain, # non restreint aux domaines d efinis # inet_hosts - alternative utilisant BIND pour acc eder au DNS #inet_hosts: # driver=bind, # utilise le pilote BIND interne # transport=smtp; # d elivrer par SMTP sur TCP/IP # # defnames, # recherche de domaines standard # defer_no_connect, # essaie plus tard si serveur de noms en panne # -local_mx_okay, # echoue (ne traverse pas) un MX vers # # la machine locale # # base de donn ees pathalias pour routage dans le domaine domaine_paths: driver=pathalias, # cherche l'h^ ote dans un fichier paths transport=uux; # si trouv e, d elivrer par UUCP file=paths/domaine, # le fichier est /usr/lib/smail/paths/domaine proto=lsearch, # il n'est pas tri e (recherche lin eaire) optional, # ignorer si le fichier n'existe pas required=bibine.com, # ne rechercher que les h^ otes de *.bibine.com # # base de donn ees pathalias pour routage hors de notre domaine
  • 323.
    306 Annexe B.Exemples de chiers de con guration pour smail monde_paths: driver=pathalias, # cherche l'h^ ote dans un fichier paths transport=uux; # si trouv e, d elivrer par UUCP file=paths/monde, # le fichier est /usr/lib/smail/paths/monde proto=bsearch, # il est tri e par sort(1) optional, # ignorer si le fichier n'existe pas -required, # pas de domaines requis domain=uucp, # supprime extension .uucp avant recherche # smart_host - sp ecification d'un directeur particulier vers le smart host # Si l'attribut smart_path n'est pas d efini dans # le fichier /usr/lib/smail/config, ce routeur sera ignor e. # L'attribut transport est ecras e par la variable globale # smart_transport. smart_host: driver=smarthost, # pilote sp ecial transport=uux; # d elivre via UUCP par d efaut -path, # utilise la variable smart_path du # fichier config. Le traitement du courrier pour les adresses locales est con gur e dans le chier direc- tors. Il est constitu e de la m^ eme mani ere que le chier routers, avec une liste d'entr ees qui d e nissent chaque directeur. Les directeurs ne d elivrent pas de messages, ils ne font qu'e ectuer toutes les redirections qui sont possibles, par exemple par les alias, le renvoi du courrier, etc. Lorsqu'il d elivre un message a une adresse locale, comme dugenou, smail passe le nom de l'utilisateur successivement a tous les directeurs. Si l'un d'eux correspond, soit il sp eci era un transport a utiliser pour d elivrer le courrier (par exemple, vers la bo^ te aux lettres de l'utilisateur), soit il g en erera une nouvelle adresse (par exemple, en evaluant un alias). Pour des raisons de s ecurit e, les directeurs e ectuent g en eralement un grand nombre de tests pour v eri er que les chiers qu'ils ont a utiliser sont ables et int egres. Les adresses obtenues d'une mani ere douteuse (par exemple, depuis un chier aliases qui a des permissions d' ecriture pour tout le monde) sont not ees comme non s^ ures. Certains pilotes de transport elimineront de telles adresses, celui qui d elivre un message dans un chier en fait partie. En dehors de cela, smail associe aussi un utilisateur a chaque adresse. Toute op e- ration de lecture ou d' ecriture est e ectu ee sous ce nom d'utilisateur. Pour d elivrer un message dans la bo^ te aux lettres de dugenou, l'adresse sera bien s^ ur associ ee a l'utilisateur dugenou. D'autres adresses, comme celles obtenues a partir du chier aliases, se voient associer d'autres utilisateurs, comme par exemple nobody. Pour plus de d etails sur ce sujet, consultez la page de manuel de smail(8). # Un exemple de fichier /usr/lib/smail/directors
  • 324.
    307 # aliasinclude -expanse les adresses :include:fichier produites # par les fichiers alias aliasinclude: driver=aliasinclude, # utiliser ce pilote sp ecial nobody; # acc eder aux fichiers sous l'utilisateur # nobody si adresse peu s^ ure copysecure, # prend permissions dans directeur alias copyowners, # prend propri etaires dans directeur alias # forwardinclude - expanse les adresses :include:fichier produites # par les fichiers forward forwardinclude: driver=forwardinclude, # utiliser ce pilote sp ecial nobody; # acc eder aux fichiers sous l'utilisateur # nobody si adresse peu s^ ure checkpath, # test d'accessibilit e du chemin copysecure, # prend permissions dans directeur alias copyowners, # prend propri etaires dans directeur alias # aliases - cherche les alias a traiter stock es dans une base de donn ees aliases: driver=aliasfile, # directeur g en eral pour les alias -nobody, # toutes les adresses seront associ ees par # d efaut a nobody sender_okay, # ne supprime pas l'exp editeur dans l'expension owner=owner-$user; # probl emes dirig es vers l'adresse du propri etaire file=/usr/lib/aliases, # compatibilit e sendmail par d efaut modemask=002, # ne doit pas pouvoir ^ etre ecrit par tous optional, # ignorer si le fichier n'existe pas proto=lsearch, # c'est un fichier ASCII non tri e # dotforward - expansion des fichiers .forward des r epertoires personnels dotforward: driver=forwardfile, # directeur g en eral pour les forward owner=real-$user, # probl emes dirig es dans la bo^ te aux lettres # de l'utilisateur nobody, # utiliser le compte nobody si adresse peu s^ ure sender_okay; # ne supprime pas l'exp editeur dans l'expansion file=~/.forward, # fichiers .forward dans r epertoires personnels checkowner, # l'utilisateur doit ^ etre propri etaire du fichier owners=root, # ou alors il doit appartenir a root modemask=002, # il ne doit pas pouvoir ^ etre ecrit par tous caution=0-10:uucp:daemon, # ne rien ex ecuter sous root ou daemon # faire tr es attention aux r epertoires suivants: unsecure=~ftp:~uucp:~nuucp:/tmp:/usr/tmp, # forwardto - expanse une ligne Forward to au tout d ebut d'une bo^ te aux # lettres d'utilisateur. forwardto: driver=forwardfile, owner=Postmaster, # erreurs dirig ees au Postmaster
  • 325.
    308 Annexe B.Exemples de chiers de con guration pour smail nobody, # utiliser le compte nobody si adresse peu s^ ure sender_okay; # ne supprime pas l'exp editeur dans l'expansion file=/var/spool/mail/${lc:user}, # les bo^ tes aux lettres sont par l a forwardto, # valide le test de Forward to checkowner, # l'utilisateur doit ^ etre propri etaire du fichier owners=root, # ou alors il doit appartenir a root modemask=0002, # sous System V, le groupe mail peut ecrire caution=0-10:uucp:daemon, # ne rien ex ecuter sous root ou daemon # user - traite les utilisateurs locaux et leur bo^ te aux lettres user: driver=user; # pilote recherchant les utilisateurs locaux transport=local, # le transport local aboutit aux bo^ tes aux # lettres des utilisateurs # user - traite les noms d'utilisateurs pr efix es par la cha^ ne real- real_user: driver=user; # pilote recherchant les utilisateurs locaux transport=local, # le transport local aboutit aux bo^ tes aux # lettres des utilisateurs prefix=real-, # correspond par exemple, a real-root # lists - expanse les listes de diffusions de dans /usr/lib/smail/lists lists: driver=forwardfile, caution, # teste toutes les adresses avec soin nobody, # et leur associe l'utilisateur nobody sender_okay, # ne supprime pas l'exp editeur owner=owner-$user; # le propri etaire de la liste # passe le nom de la liste de diffusion en lettres minuscules file=lists/${lc:user}, Apr es avoir r eussi a router ou rediriger un message, smail le passe au transport sp eci e par le routeur ou le directeur correspondant. Ces transports sont d e nis dans le chier transports. L a encore, les d e nitions sont compos eesd'un ensemble d'attributs globaux et priv es. L'option la plus importante d e nie par chaque entr eeest le pilote qui g erece transport, par exemple le pilote pipe, qui appelle la commande sp eci ee dans l'attribut cmd. A c^ ot e de cela, un transport peut utiliser un certain nombre d'attributs globaux qui e ectuent diverses transformations sur l'en-t^ ete, et eventuellement le corps du message. L'attribut return path, par exemple, demandera au transport d'ins erer un champ return path dans l'en-t^ ete du courrier. L'attribut unix from hack permet de rajouter le caract ere devant chaque ligne du message commen cant par le mot From. # Un exemple de fichier /usr/lib/smail/transports. # local - d elivre le courrier local aux utilisateurs local: driver=appendfile, # rajoute le message au bout d'un fichier return_path, # rajoute un champ Return-Path:
  • 326.
    309 from, # metune ligne From_ d'enveloppe unix_from_hack, # ins ere devant toute ligne From dans le corps local; # utiliser le format local file=/var/spool/mail/${lc:user}, # les bo^ tes aux lettres sont par l a group=mail, # groupe propri etaire du fichier en System V mode=0660, # le groupe mail peut lire et ecrire suffix=n, # rajoute un saut de ligne # pipe - d elivre le courrier a des commandes shell pipe: driver=pipe, # envoie le message par tube a un autre programme return_path, # rajoute un champ Return-Path: from, # met une ligne From_ d'enveloppe unix_from_hack, # ins ere devant toute ligne From dans le corps local; # utiliser le format local cmd=/bin/sh -c $user, # envoie l'adresse au shell Bourne parent_env, # environnement de l'adresse parent pipe_as_user, # utilise l'utilisateur associ e a cette adresse ignore_status, # ignore une valeur de retour non nulle ignore_write_errors, # ignore erreurs d' ecriture (comme broken pipe) umask=0022, # umask du processus fils -log_output, # n'envoie aucune trace sur stdout/stderr # file - d elivre le courrier dans des fichiers file: driver=appendfile, return_path, # rajoute un champ Return-Path: from, # met une ligne From_ d'enveloppe unix_from_hack, # ins ere devant toute ligne From dans le corps local; # utiliser le format local file=$user, # le fichier est pris dans l'adresse append_as_user, # utilise l'utilisateur associ e a cette adresse expand_user, # expanse ~ et $ dans l'adresse suffix=n, # rajoute un saut de ligne mode=0600, # met les permissions a la valeur 600 # uux - d elivre le message a la commande rmail du site UUCP distant. uux: driver=pipe, uucp, # utilise le style d'adressage UUCP from, # met une ligne From_ d'enveloppe max_addrs=5, # pas plus de 5 adresses par appel max_chars=200; # pas plus de 200 caract eres d'adresse cmd=/usr/bin/uux - -r -a$sender -g$grade $host!rmail $(($user)$), pipe_as_sender, # les logs UUCP contiendront l'appelant log_output, # sauve les erreurs pour messages de rejet # defer_child_errors, # r eessaie si uux retourne une erreur # demand - d elivre le message a la commande rmail du site UUCP distant, # en appelant imm ediatement. demand: driver=pipe, uucp, # utilise le style d'adressage UUCP from, # met une ligne From_ d'enveloppe max_addrs=5, # pas plus de 5 adresses par appel max_chars=200; # pas plus de 200 caract eres d'adresse
  • 327.
    310 Annexe B.Exemples de chiers de con guration pour smail cmd=/usr/bin/uux - -a$sender -g$grade $host!rmail $(($user)$), pipe_as_sender, # les logs UUCP contiendront l'appelant log_output, # sauve les erreurs pour messages de rejet # defer_child_errors, # r eessaie si uux retourne une erreur # hbsmtp - semi SMTP par lots. Les fichiers de sortie devront ^ etre # trait es r eguli erement, puis exp edi es par UUCP. hbsmtp: driver=appendfile, inet, # utilise le style d'adressage RFC 822 hbsmtp, # SMTP par lots sans HELO ni QUIT -max_addrs, -max_chars; # pas de limite sur le nombre des adresses file=/var/spool/smail/hbsmtp/$host, user=root, # le fichier appartient a root mode=0600, # lecture et ecriture seulement pour root # smtp - d elivre le courrier par SMTP sur TCP/IP smtp: driver=tcpsmtp, inet, # utilise le style d'adressage RFC 822 -max_addrs, -max_chars; # pas de limite sur le nombre des adresses short_timeout=5m, # temps maxi pour op erations courtes long_timeout=2h, # temps maxi pour op erations SMTP plus longues service=smtp, # connexion sur ce port # Pour utilisation sur l'Internet: supprimez les commentaires sur # ces 4 derni eres lignes: # use_bind, # r esout les enregistrement MX et multiples A # defnames, # recherche de domaines standard # defer_no_connect, # essaie plus tard si serveur de noms en panne # -local_mx_okay, # echoue (ne traverse pas) un MX vers # # la machine locale
  • 328.
    311 Annexe C Licence PubliqueG en erale GNU Vous trouverez ci-dessous la Licence Publique G en erale GNU (GPL ou copyleft), qui prot ege Linux. Elle est reproduite ici pour pr eciser le statut des droits d'auteurs de Linux, qui a parfois donn e lieu a certaines confusions; Linux n'est pas un partagiciel et n'est pas dans le domaine public. Les droits du noyau appartiennent a Linus Torvalds depuis 1993, et le reste des programmes appartient a leurs auteurs respectifs. Ainsi, Linux est prot eg e, mais vous pouvez toutefois le redistribuer sous les termes de la Licence Publique G en erale (GPL) reproduite ici. LICENCE PUBLIQUE G EN ERALE GNU Version 2, Juin 1991 Copyright c 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave, Cambridge, MA 02139, USA. La copie et la distribution de copies verbatim de ce document est autoris ee, mais aucune modi cation n'est permise. C.1 Pr eambule Les licences d'utilisation de la plupart des programmes sont con cues pour limiter ou pour supprimer toute libert e de l'utilisateur. A l'inverse, la Licence Publique G en erale est destin ee a vous garantir la libert e de partager et de modi er les logiciels libres, et de s'assurer que ces logiciels sont e ectivement accessibles a tout utilisateur. Cette Licence Publique G en erale s'applique a la plupart des programmes de la Free Software Foundation, ainsi qu' a tout autre programme dont l'auteur l'aura d ecid e (d'autres logiciels de la Free Software Foundation sont couverts pour leur part par la Licence Publique G en erale pour Biblioth eques GNU). Vous pouvez aussi utiliser les termes de cette Licence pour vos propres programmes, si vous le d esirez.
  • 329.
    312 Annexe C.Licence Publique G en erale GNU Libert e des logiciels ne signi e pas forc ement gratuit e;. notre Licence est con cue pour vous assurer la libert e de distribuer des copies des programmes, gratuitement ou non, de recevoir le code source ou de pouvoir l'obtenir, de modi er les programmes ou d'en utiliser des el ements dans de nouveaux programmes libres, en sachant que vous y ^ etes autoris es. A n de prot eger vos droits, nous avons d^ u introduire des restrictions interdisant a qui- conque de vous refuser ces droits ou de vous demander d'y renoncer. Ces restrictions vous imposenten retour certaines obligations si vous distribuez ou si vous modi ez des copies de programmes prot eg es par la Licence. Ainsi, si vous distribuez des copies d'un tel programme, gratuitement ou non, vous devez transmettre aux destinataires tous les droits que vous poss edez; vous devez vous assurer que les destinataires re coivent le code source ou qu'ils peuvent se le procurer. Vous devez leur remettre cette Licence a n qu'eux aussi connaissent leurs droits. Nous prot egeonsvos droits de deux fa cons: d'abordpar le copyrightdu logiciel, ensuite par la remise de cette Licence qui vous autorise l egalement a copier, distribuer et/ou modi er le logiciel. En outre, pour la protection de chaque auteur et pour la n^ otre, nous voulons nous assurer que chacun comprenne bien qu'il n'existe aucune garantie pour ce programme libre. Si le logiciel est modi e par quelqu'un d'autre et redistribu e ensuite, nous vou- lons que tous ceux qui recevront ce logiciel sachent qu'ils ne sont pas en pr esence de l'original, a n que les probl emes introduits par d'autres personnes n'entachent pas la r eputation de l'auteur du logiciel original. En n, tout programme libre est sans cesse menac e par des d ep^ ots de licences. Nous voulons a tout prix eviter que des distributeurs puissent d eposer des licences de logi- ciels libres pour leur propre compte. Pour l' eviter, nous stipulons bien que tout d ep^ ot eventuel de licence doit pr evoir express ement un libre usage pour tous. Les dispositions pr ecises et les conditions pour la copie, la distribution et la modi - cation de nos logiciels sont les suivantes: C.2 Stipulations et conditions pour copie, distribu- tion et modi cation La pr esente licence s'applique a tout programme ou autre travail contenant une in- dication plac ee par le d etenteur des droits pr ecisant que ce programme ou ce travail peut ^ etre distribu e selon les termes de cette Licence. Le terme ( ( programme ) ) d esigne soit le programme lui m^ eme, soit n'importe quel travail qui en est d eriv e selon la loi: c'est- a-dire un ouvrage contenant le programme ou une partie de celui-ci, que ce soit a l'identique ou avec des modi cations, et/ou traduit dans une autre langue (la traduction est consid er ee comme une modi cation). Chaque personne a qui s'applique la Licence Publique G en erale sera d esign ee par le terme Vous.
  • 330.
    C.2. Stipulations etconditions pour copie, distribution et modi cation313 Les activit esautres que la copie, la distribution et la modi cation ne sont pas couvertes par la pr esente Licence et sortent de son cadre. Il n'y a aucune limitation a l'utilisation du programme, et les donn ees issues de celui-ci ne sont couvertes que si leur contenu constitue un travail bas e sur le logiciel (travail ind ependant ou r ealis e en lan cant le programme). Tout d epend de ce que le programme est cens e faire. Article 1. Vous pouvez copier et distribuer des copies conformes du code source du programme, tel que vous l'avez re cu, sur n'importe quel support, a condition de placer sur chaque copie un copyright appropri e et une limitation de garantie, a condition de ne pas modi er ou omettre toutes les stipulations se r ef erant a la pr esente Licence et a la li- mitation de garantie, et a condition de fournir avec toute copie du programme un exemplaire de la Licence. Vous pouvez demander une r etribution nanci ere pour l'acte phy- sique de r ealisation de la copie, et vous ^ etes libre de proposer une garantie assur ee par vos soins, moyennant nances. Article 2. Vous pouvez modi er votre copie ou vos copies du programme ou partie de celui-ci, ou d'un travail bas e sur ce programme, et copier et distribuer ces modi cations selon les termes de l'article 1, a condition de vous conformez egalement aux conditions suivantes: a) Vous devez rajouter aux chiers modi es l'indication tr es claire des modi cations e ectu ees, et indiquer la date de chaque chan- gement. b) Vous devez distribuer sous les termes de la Licence Publique G e- n erale l'ensemble de toute r ealisation contenant tout ou partie du programme, avec ou sans modi cations. c) Si le programme modi e lit des commandes de mani ere interac- tive lors de son ex ecution, vous devez faire en sorte qu'il ache, lorsqu'il est lanc e normalement, le copyright appropri e en in- diquant bien la limitation de garantie (ou la garantie que vous vous engagez a fournir vous-m^ eme), qu'il stipule que tout utili- sateur peut librement redistribuer le programme les conditions de la Licence Publique G en erale GNU, et qu'il montre a tout utilisateur comment lire une copie de celle-ci. (Exception: si le programme original est interactif mais n'ache pas normale- ment un tel message, tout travail d eriv e de ce programme ne sera pas non plus oblig e de l'acher). Toutes ces conditions s'appliquent a l'ensemble des modi cations. Si des el ements identi ables de ce travail ne sont pas d eriv es du pro- gramme, et peuvent ^ etre consid er esraisonnablement comme ind epen- dants, la pr esente Licence ne s'applique pas a ces el ements lorsque vous les distribuez seuls. Mais si vous distribuez ces m^ emes el ements
  • 331.
    314 Annexe C.Licence Publique G en erale GNU comme partie d'un ensemble coh erent dont le reste est bas e sur un programme soumis a la Licence, ils lui sont egalement soumis, et la Licence s' etend ainsi a l'ensemble du produit, quel qu'en soit l'auteur. Cet article n'a pas pour but de s'approprier ou de contester vos droits sur un travail enti erement ecrit par vous, mais plut^ ot de s'octroyer un droit de contr^ ole sur la libre distribution de tout travail d eriv e ou collectif bas e sur le programme. En outre, toute fusion d'un autre travail, non bas e sur le programme, avec le programme (ou avec un travail bas e sur le programme), qui serait e ectu ee sur un support de stockage ou de distribution, ne fait pas tomber cet autre travail sous le contr^ ole de la Licence. Article 3. Vous pouvez copier et distribuer le programme (ou tout travail d eriv e selon les d e nitions donn ees a l'article 2) sous forme de code objet ou ex ecutable, selon les termes des articles 1 et 2, a condition de respecter les clauses suivantes: a) Fournir le code source complet du programme, sous une forme lisible par un ordinateur, et selon les termes des articles 1 et 2, sur un support habituellement utilis e pour l' echange de don- n ees; ou, b) Faire une o re ecrite, valable pendant au moins trois ans, pr e- voyant de donner a tout tiers qui en fera la demande, une copie sous forme lisible par un ordinateur du code source correspon- dant, pour un tarif qui ne doit pas ^ etre sup erieur au co^ ut de la copie, selon les termes des articles 1 et 2, sur un support cou- ramment utilis epour l' echange de donn ees informatiques; ou, c) Donner des informations sur l'endroit o u le code source peut ^ etre obtenu (cette alternative n'est autoris ee que dans le cas d'une distribution non commerciale, et uniquement si vous avez re cu le programme sous forme de code objet ou ex ecutable avec l'o re pr evue a l'alin ea b) ci-dessus. Le code source d'un travail d esigne la forme de cet ouvrage sous la- quelle les modi cations sont les plus ais ees. Est ainsi d esign ee la tota- lit e du code source de tous les modules composant un programmeex e- cutable, de m^ eme que tout chier de d e nition associ e, ainsi que les scripts utilis es pour e ectuer la compilation et l'installation du pro- gramme ex ecutable. Toutefois, une exception particuli ere concerne tout ce qui a trait a l'environnement standard de d eveloppement du syst eme d'exploitation utilis e (source ou binaire) comme les com- pilateurs, biblioth eques, noyau, etc., sauf si ces el ements sont aussi di us es avec le programme ex ecutable. Si la distribution de l'ex ecutable ou du code objet consiste a o rir
  • 332.
    C.2. Stipulations etconditions pour copie, distribution et modi cation315 un acc es permettant de copier le programme depuis un endroit par- ticulier, l'o re d'un acc es equivalent pour se procurer le code source au m^ eme endroit est consid er e comme une distribution de ce code source, m^ eme si l'utilisateur choisit de ne pas pro ter de cette o re. Article 4. Vous ne pouvez pas copier, modi er, c eder, d eposer, ou distribuer le programme d'une autre mani ere que l'autorise la Licence Publique G en erale. Toute tentative de copier, modi er, c eder, d eposer, ou dis- tribuer le programme di eremment, annulera imm ediatement vos droits d'utilisation du programme sous cette Licence. Toutefois, les tiers ayant re cu de vous des copies du programme ou le droit d'uti- liser ces copies, continueront a b en e cier de leur droit d'utilisation tant qu'ils respecteront pleinement les conditions de la Licence. Article 5. Vous n'^ etes pas oblig e d'accepter cette Licence, puisque vous ne l'avez pas sign ee. Cependant, rien d'autre ne vous autorise a modi er ou distribuer le programme ou des travaux d eriv es: ces faits sont in- terdits par la loi, tant que vous n'acceptez pas les termes de cette Licence. En cons equence, le simple fait de modi er ou distribuer le programme (ou tout travail bas e sur lui), indique implicitement votre acceptation des termes et conditions de cette licence. Article 6. Chaque fois que vous redistribuez le programme (ou tout travail d e- riv e), le destinataire re coit une licence du d etenteur original autori- sant la copie, la distribution ou la modi cation du programme, aux termes et conditions de la Licence. Vous n'avez pas le droit d'imposer de restrictions suppl ementaires aux droits transmis au destinataire. Vous n'^ etes pas responsable du respect de la Licence par les tiers. Article 7. Si, a la suite d'une d ecision de justice, il vous est impos e d'aller a l'encontre des conditions de la Licence Publique G en erale, cela ne vous d egage pas pour autant des obligations li ees a celle-ci: si vous ne pouvez pas concilier vos obligations l egales ou autres avec les stipulations de la Licence, vous ne devez pas distribuer le programme. Si une partie quelconque de cet article est invalid ee ou inapplicable pour quelque raison que ce soit, le reste de l'article continue de s'ap- pliquer et l'int egralit e de l'article s'appliquera en toutes autres cir- constances. Le pr esent article n'a pas pour but de vous pousser a enfreindre des droits ou des dispositions l egales, ou de contester leur validit e; elle n'est l a que pour prot eger l'int egrit e du syst eme de distribution du logiciel libre. De nombreuses personnes ont g en ereusement contribu e a la large gamme de programmes distribu ee de cette fa con en toute con ance; il appartient a chaque auteur/donateur de d ecider de dif- fuser ses programmes selon le syst eme de son choix.
  • 333.
    316 Annexe C.Licence Publique G en erale GNU Article 8. Si la distribution et/ou l'utilisation du programme est limit ee, dans certains pays, par des brevets ou des droits sur des interfaces, le d e- tenteur original des droits qui place le programme sous la Licence Publique G en erale peut ajouter explicitement une clause de limita- tion g eographique excluant ces pays. Dans ce cas, cette clause devient une partie int egrante de la Licence. Article 9. La Free Software Foundation peut publier p eriodiquement des mises a jour ou de nouvelles versions de la Licence. Elles seront ecrites dans le m^ eme esprit que la pr esente version, mais pourront di erer dans certains d etails, destin es a clari er de nouveaux probl emes. Chaque version poss ede un num ero bien distinct. Si le programme pr ecise un num ero de version de cette Licence et ( ( toute version ult erieure ) ), vous avez le choix de suivre les termes et conditions de cette version ou de toute autre version plus r ecente publi ee par la Free Software Foundation. Si le programme ne sp eci e aucun num ero de version, vous pouvez alors choisir n'importe quelle version publi ee par la Free Software Foundation. Article 10. Si vous d esirez incorporer des el ements du programme dans d'autres programmes libres dont les conditions de distribution di erent, vous devez ecrire a l'auteur pour lui en demander la permission. Pour les programmes directement d epos es par la Free Software Foundation, ecrivez-nous: nous faisons parfois quelques exceptions. Notre d eci- sion sera guid ee a la fois par le but de pr eserver la libert e de notre programme ou de ses d eriv es, et par celui de promouvoir le partage et la r eutilisation du logiciel en g en eral. LIMITATION DE GARANTIE Article 11. Parce que la Licence d'utilisation de ce programme est libre et gratuite, aucune garantie n'est fournie pour ce programme, dans la mesure permise par la loi. Sauf men- tion ecrite, les d etenteurs du copyright et/ou les tiers fournissent le programme en l' etat, sans aucune sorte de garantie, ni explicite ni implicite, y compris les garanties de commercialisation ou d'adaptation dans un but parti- culier. Vous prenez tous les risques quand a la qualit e et aux effets du programme. Si le programme est d efec- tueux, vous assumez le co^ ut de tous les services, correc- tions ou r eparations n ecessaires. Article 12. En aucun cas, a moins que ce ne soit explicitement pr evu par la loi ou accept e par ecrit, ni le d etenteur des droits, ni toute autre personne autoris ee a modifier et/ou redis- tribuer le programme comme il est permis ci-dessus, ne
  • 334.
    C.3. Comment appliquerces directives 317 pourra ^ etre tenu pour responsable de tout dommage di- rect, indirect, secondaire ou accessoire (y compris les dommages entrain es par la perte de b en efice, l'interrup- tion d'activit es ou la perte d'informations et autres d e- coulant de l'utilisation| ou de l'impossibilit e d'utilisa- tion | du programme.) FIN DES TERMES ET CONDITIONS C.3 Annexe: Comment appliquer ces directives a vos nouveaux programmes Si vous d eveloppez un nouveau programme et d esirez qu'il soit utilis e le plus possible par le public, la meilleure m ethode est d'en faire un logiciel libre que tout le monde pourra redistribuer et modi er selon les termes de la Licence Publique G en erale. Pour cela, introduisez les indications suivantes dans votre programme. Il est pr ef erable et plus s^ ur de les faire gurer au d ebut de chaque chier source; dans tous les cas, chaque module source devra comporter au minimum la ligne de ( ( copyright ) ) et indiquer o u se trouvent toutes les autres indications. hune ligne pour donner le nom du programme et donner une id ee de ce qu'il est cens e faire.i Copyright c 19xx hnom de l'auteuri Ce programme est libre, vous pouvez le redistribuer et/ou le modi er selon les termes de la Licence Publique G en erale GNU telle qu'elle est publi ee par la Free Software Foundation; soit la version 2 de cette licence, soit ( a vous de voir) tout autre version ult erieure. Ce programme est distribu e dans l'espoir qu'il sera utile, mais SANS AU- CUNE GARANTIE, ni explicite ni implicite, y compris les garanties de commercialisation ou d'adaptation dans un but sp eci que. Prenez connais- sance de la Licence Publique G en erale GNU pour plus de d etails. Vous devez avoirre cu une copie de la Licence Publique G en eraleGNU avec ce programme; si ce n'est pas le cas, ecrivez a la Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Ajoutez egalement les informations n ecessaires pour vous contacter par courrier elec- tronique ainsi que votre adresse postale. Si le programme est interactif, faites-lui acher un court avertissement comme celui-ci lors de son lancement: ...(nom du programme) version 69, Copyright (C) 19yy nom de l'auteur ...(nom du programme) est fourni sans AUCUNE GARANTIE ; pour plus de d etails tapez `g'.
  • 335.
    318 Annexe C.Licence Publique G en erale GNU Ce programme est libre, et vous ^ etes encourag es a le redistribuer sous certaines conditions ; tapez `c' pour plus de d etails. Les commandes hypoth etiques `g' et `c' doivent acher les parties appropri ees de la Licence Publique G en erale GNU. Bien entendu, vous pouvez appeler les commandes comme bon vous semble: options dans un menu, options accessibles par le clic d'une souris, etc., tout d epend de votre programme. Si vous travaillez en tant que programmeur, vous devez aussi demander a votre em- ployeur ou votre ecole, ou autres, de signer une d echarge stipulant qu'il renonce aux droits qu'il pourrait avoir sur le programme. Par exemple: ...(employeur, ecole...) d eclare par la pr esente ne pas revendiquer de droits sur le programme ( ((nom du programme)) ) ecrit par ...(nom de l'auteur). hsignature du responsablei, ...(date), ...(nom et qualit e du responsable). La Licence Publique G en erale ne permet pas d'inclure votre programme dans des logiciels d etenteurs de droits. Si votre programme est une fonction de biblioth eque, vous pouvez consid ererqu'il est plus utile de le faire relever du droit des biblioth eques; si c'est ce que vous d esirez, utilisez la Licence G en erale de Biblioth eque GNU et non celle-ci.
  • 336.
    319 Annexe D SAGE: Laguilde des administrateurs syst eme Si vous n'obtenez pas tout ce que vous cherchez en fr equentant les groupes Usenet comp.os.linux.* et en lisant les diverses documentations disponibles, il est peut- ^ etre temps pour vous de rejoindre SAGE, la guilde des administrateurs syst eme, sponsoris ee par Usenix. Le but principal de SAGE est de consid erer l'administration syst eme comme un m etier. SAGE am ene les administrateurs r eseau et syst eme a par- ticiper au d eveloppement technique et professionnel, partager probl emes et solutions, communiquer avec les utilisateurs, d ecideurs, constructeurs, distributeurs, a propos d'administration syst eme. Les r ealisations actuelles de SAGE comprennent: { En collaboration avec USENIX, les c el ebres conf erences annuelles LISA sur l'ad- ministration syst eme. { La publication de ( ( Job Descriptions for System Administrators ) ), edit e par Tina Darmohray, le premier d'une s erie de guides pratiques traitant de l'admi- nistration syst eme. { La cr eation d'un site archive, ftp.sage.usenix.org, pour les articles des conf e- rences et toute documentation relative a l'administration syst eme. { La cr eation de groupes de travail dans des domaines importants pour les ad- ministrateurs comme les emplois, publications, lois, distribution electronique de l'information, education et standards. Pour en savoir plus sur l'association USENIX et son groupe technique SAGE, t el epho- nez au 510-528-8649aux USA, ou ecrivez a l'adresse electronique oce@usenix.org. Pour recevoir des informations par courrier electronique, faites un nger sur l'adresse
  • 337.
    320 Annexe D.SAGE: La guilde des administrateurs syst eme info@usenix.org. La cotisation annuelle pour ^ etre membre de SAGE ne co^ ute que 25 $ (vous devez aussi ^ etre membre de USENIX). Les membres b en e cient d'abon- nements gratuits a;login: et a Computing Systems, revue trimestrielle r eput ee; des r eductions sur les entr ees aux conf erenceset symposiums, ainsi que sur certains achats, publications ou autres services.
  • 338.
    Glossaire 321 Glossaire Dans ledomaine des r eseaux, il est toujours tr es dicile de se souvenir de la signi- cation de tous les termes et abr eviations rencontr es, surtout si l'on ne ma^ trise pas la langue anglaise. Voici une liste de ceux fr equemment utilis es dans ce guide, suivis d'une courte explication. ACU Automatic Call Unit, Unit e d'appel automatique. Un modem, en g e- n eral1. ARP Adress Resolution Protocole, protocole de r esolution d'adresses utilis e pour la correspondance entre les adresses IP et les adresses Ethernet. ARPA Advanced Research Project Agency, devenu plus tard DARPA. Fon- dateur de l'Internet. ARPANET L'anc^ etre de l'Internet d'aujourd'hui; r eseau exp erimental fond e par le Defense Advanced Research Project Agency (DARPA). Assigned Numbers Le titre d'un RFC publi e r eguli erement qui liste les nombres d e nis au niveau mondial pour di erentes choses ayant trait a TCP/IP. Par exemple, il contient la liste de tous les ports ou services bien connus comme rlogin, telnet, etc. A l'heure o u ce livre est r edig e, sa version la plus r ecente est RFC 1340. babillard Voir BBS. bang path Dans les r eseaux UUCP, notation sp eciale pour indiquer le chemin d'un site a un autre. Le nom provient de l'utilisation de points d'ex- clamation (( ( bangs ) )) pour s eparer les noms des machines. Exemple: foo!bar!ernie!bertd enote un chemin vers le site bert, passant dans l'ordre par foo, bar et ernie. 1: Alternative: un gamin avec un Minitel.
  • 339.
    322 Glossaire BBS BulletinBoard System. Serveur informatique fonctionnant en g en eral sur un ordinateur personnel, permettant le t el echargement de chiers et quelques fonctions de messagerie, locale ou partag ee avec d'autres. Accessibles par modem. S'appellent ( ( babillards ) ) au Qu ebec. bi ere virtuelle La boisson favorite des utilisateurs de Linux. La premi ere fois qu'elle fut mentionn ee, c' etait semble-t-il dans les notes concernant la di u- sion du noyau 0.98.X, Linus remerciant les ( ( Oxford Beer Trolls ) ) de lui avoir exp edi e de la bi ere virtuelle. BGP Border Gateway Protocol. Un protocole destin e a l' echange d'infor- mations de routage entre syst emes autonomes. BIND Une impl ementation d'un serveur DNS: Le Berkeley Internet Name Domain server. BNU Basic Networking Utilities. C'est la vari et e d'UUCP la plus courante actuellement. Elle est aussi connue sous le nom de ( ( HoneyDanBer UUCP ) ), ou HDB, appellation d eriv ee du nom des auteurs: P. Ho- neyman, D.A. Novitz et B.E. Redman. broadcast network R eseau de di usion. Un r eseau qui autorise une station a adresser un datagramme simultan ement a toutes les stations connect ees. BSD Berkeley Software Distribution. Une impl ementation d'UNIX. chemin Souvent employ e comme synonyme de route, surtout dans les r eseaux UUCP. Voir aussi bang path. CCITT Comit e Consultatif International de T el egraphique et T el ephonique. CSLIP Compressed Serial Line IP. Protocole permettant le transfert de pa- quets IP sur une ligne s erie, avec compression des en-t^ etes de la plu- part des datagrammes TCP/IP. daemon Abr eviation de ( ( Disk And Extension MONitor ) ). Voir d emon. d emon D emon est une francisation famili ere du vocable informatique an- glais daemon, qui signi e Disk And Extension MONitor, c'est- a-dire qui n'est pas invoqu e manuellement mais attend en t^ ache de fond que quelque chose se passe, que quelque condition se produise. Ce terme fut introduit au d epart sous CTSS (Compatible Time Sharing Sys- tem), un anc^ etre du syst eme MULTICS, lui-m^ eme parent d'UNIX. d emon de routage Dans les grands r eseaux, les changements de topologie peuvent ^ etre diciles a suivre manuellement, aussiexiste-t-il di erents programmes
  • 340.
    Glossaire 323 permettant dedistribuer les informations de routage courantes a toutes les machines. C'est ce que l'on appelle le routage dynamique; les informations sont di us ees par des d emons de routage fonction- nant sur des machines centrales du r eseau. Les protocoles utilis es s'appellent des protocoles de routage. DNS Domain Name System. Il s'agit d'une base de donn ees distribu ee, utilis ee sur l'Internet pour la correspondance entre les noms des ma- chines et leurs adresses IP. EGP External Gateway Protocol. Un protocole pour l' echange d'informa- tions de routage entre des syst emes autonomes. Ethernet Par convention, nom d'un type de r eseau et d' equipement r eseau. Techniquement, Ethernet est une partie d'un ensemble de standards d e nis par l'IEEE. Le r eseau Ethernet utilise un seul c^ able, tr es sou- vent coaxial, pour connecter un certain nombre d'h^ otes, et permet des transferts allant jusqu' a 10 Mbps. Le protocole Ethernet d e nit la mani ere dont ces h^ otes communiquent entre eux sur ce c^ able2. FQDN Fully Quali ed Domain Name, nom pleinement quali e. Un nom d'h^ ote avec un nom de domaine au bout, qui est alors un index valide dans la base de donn ees DNS. FTP File Transfer Protocol. Le plus c el ebre service de transfert de chiers est bas e sur ce protocole et porte le m^ eme nom. FYI ( ( For Your Information ) ). S eries de documents contenant des infor- mations informelles sur des sujets relatifs a l'Internet. GMU Groucho Marx University. L'universit e Groucho Marx est un etablis- sement imaginaire utilis e comme exemple dans ce livre. GNU GNU's not Unix. Cet acronyme r ecursif est le nom du projet de la Free Software Foundation dont le but est de fournir un ensemble coh erent d'outils UNIX pouvant ^ etre utilis es et copi es gratuitement. Tous les logiciels GNU sont couverts par une licence sp eciale, connue sous le nom de GPL (Gnu Public Licence), ou ( ( Copyleft ) ). Elle est reproduite dans la section C HoneyDanBer Nom d'une vari et e de UUCP, HDB en abr eg e. Voir aussi BNU. h^ ote En g en eral, un nud du r eseau: quelque chose qui est capable de recevoir et de transmettre des messages r eseau. Il s'agit le plus sou- vent d'un ordinateur, mais les terminaux-X, les imprimantes r eseau 2: Au passage, le protocole Ethernet utilis e couramment par TCP/IP n'est pas exactement le m^ eme que l'IEEE 802.3. Les trames Ethernet poss edent un champ de type alors que dans l'IEEE 802.3 elles ont un champ longueur.
  • 341.
    324 Glossaire en fontpartie aussi. ICMP Internet Control Message Protocol. Un protocole r eseau utilis e par IP pour renvoyer des informations d'erreur aux h^ otes emetteurs, entre autres choses. IEEE Institute of Electrical and Eletronics Engineers. Une autre organisa- tion de standardisation. Au point de vue UNIX, leur r ealisation la plus importante est sans conteste les sp eci cations POSIX qui d e- nissent les aspects des syst emes UNIX, des interfaces des appels syst emes aux outils d'administration. En dehors de ca, l'IEEE a d evelopp e des sp eci cations pour les r e- seaux Ethernet, Token Ring et Token Bus. Un des standards de re- pr esentation binaire des nombres r eels parmi les plus utilis es est aussi le fruit des travaux de l'IEEE. IETF Internet Engineering Task Force. internet Un r eseau d'ordinateurs compos e d'un ensemble de r eseaux indivi- duels plus petits. Internet Un internet particulier, s' etendant dans le monde entier. IP Internet Protocol. Un protocole r eseau. ISO International Standards Organization. ISDN Integrated ServicesDigital Network.Nouvelle technologiede t el ecom- munications utilisant des techniques num eriques au lieu de circuits analogiques. En France, ISDN se nomme RNIS (R eseau Num erique a Int egration de Services), et son nom commercial est NUM ERIS. LAN Local Area Network, r eseau local. Un petit r eseau d'ordinateurs. MTA Mail Transport Agent, agent de transport de courrier. Il s'agit des programmes charg esde d elivrer le courrier electronique, comme smail et sendmail. MUA Mail User Agent. Ce sont les interfaces utilisateur permettant la saisie conviviale du courrier electronique, comme elm. Les messages sont ensuite transmis au MTU pour ^ etre rout es et d elivr es. MX Mail Exchanger, echangeur de courrier. Un type d'enregistrement DNS utilis e pour indiquer qu'un h^ ote sert de passerelle pour le cour- rier d'un domaine. NFS Network File System. Un protocole r eseau standard et une suite de programmes permettant d'acc eder aux donn ees de disques durs
  • 342.
    Glossaire 325 distants demani ere transparente, comme si les syst emes de chiers etaient locaux. NIS Network Information System. Une application RPC qui permet de partager des chiers de con guration comme celui des mots de passe entre plusieurs h^ otes. Voir aussi l'entr ee ( ( YP ) ). NNTP Network News Transfer Protocol. C'est le protocole destin e a trans- f erer les News Usenet sur les connexions TCP. nom canonique Le premier nom d'une machine dans le DNS. C'est le seul nom auquel est associ e un enregistrement de type A, et c'est celui qui est renvoy e par les recherches inverses. NUM ERIS voir ISDN. octet Un ensemble de 8 bits. La langue fran caise ne conna^ t que ce mot, l'anglais fait la di erence entre octet et byte. Sur l'Internet, le terme technique d esignant une quantit e de 8 bits est appel e octet. Il est pr ef er e a byte, car il existe sur ce r eseau, des machines dont la taille du byte n'est pas de 8 bits. OSI Open Systems Interconnection. Un standard ISO concernant le r e- seau (partie logicielle). path Voir chemin. PLIP Parallel Line IP. Un protocole permettant l' echange de paquets IP par une liaison parall ele, comme le port imprimante du PC. port, TCP ou UDP Les ports sont une abstraction TCP et UDP des acc es aux services. Avant qu'un processus ne puisse o rir ou acc eder a un service r eseau, il doit acc eder a un port. Avec les adresses IP des machines, les ports identi ent de mani ere unique les deux bouts d'une connexion TCP. portmapper Le portmapper s'interpose entre les num eros de programmes utilis es pour l'identi cation RPC des di erents serveurs RPC individuels, et les num eros de port TCP et UDP que ces services ecoutent. PPP Le ( ( Protocole Point- a-Point) ). Il s'agit d'un protocole souple et uni- versel permettant d'utiliser di erents protocoles r eseaux comme IP ou IPX sur une connexion point- a-point. En plus d'^ etre largement utilis e sur des lignes s erie (modem), PPP peut aussi ^ etre employ e par-dessus ISDN.
  • 343.
    326 Glossaire RARP ReverseAddress Resolution Protocol. Il permet aux h^ otes d'un r eseau de trouver leurs adresses IP au d emarrage. recherche inverse (reverse lookup). L'action de rechercher un nom de machine en fonc- tion de son adresse IP. Dans le DNS, cette op eration est r ealis ee en e ectuant la recherche de l'adresse dans le domaine in-addr.arpa. r eseau a commutation de paquets Une vari et e de r eseaux qui o rent le transfert instantan e des donn ees en les mettant toutes dans de petits paquets, qui sont transport es individuellement vers leur destination. Ils n ecessitent des connexions permanentes ou semi-permanentes. r eseaux a stockage interm ediaire Ils transf erent les donn ees sous forme de chiers entiers, et n'utili- sent pas de connexion permanentes. Les h^ otes se connectent les uns aux autres a certains moments, et transf erent toutes les donn ees en une fois. Ils n ecessitent un stockage interm ediaire jusqu' a ce qu'une connexion soit etablie. resolver Biblioth eque responsable de la correspondance entre les noms d'h^ otes et leurs adresses IP. resource record C'est l'unit e d'information de la base de donn ees DNS, que l'on abr ege en RR. Chaque enregistrement se voit associer un type et une classe, par exemple ceux faisant correspondre un nom de ma- chine a une adresse IP sont de type A (pour adresse), et de la classe IN (pour protocole Internet). RFC Request For Comments. S eries de documents d ecrivant les standards Internet. RIP Routing Information Protocol. C'est un protocole de routage destin e a ajuster dynamiquement les routes sur un (petit) r eseau. RNIS voir ISDN. route La s erie d'h^ otes qu'une information doit traverser, depuis la machine originale jusqu' a celle de destination. Trouver une route appropri ee s'appelle le routage. RPC Remote Procedure Call. Protocole destin e a ex ecuter des proc edures a l'int erieur d'un processus d'un h^ ote distant. RR Abr eviation de resource record, les enregistrements DNS.
  • 344.
    Glossaire 327 RS-232 Lestandard le plus courant d'interfaces s erie. RTS/CTS Le nom commun d esignant le contr^ ole de ux mat eriel e ectu e par deux p eriph eriques communiquant sur une liaison s erie RS-232. Le nom d erive des deux lignes mises en jeu, RTS (( ( Request To Send ) )) et CTS (( ( Clear To Send ) )). RTM (le ver Internet) Un programme de type virus qui utilisa plusieurs trous de s ecurit e dans VMS et Unix BSD 4.3 pour se r epandre sur tout l'Internet. Plusieurs ( ( erreurs) ) dans le programme le faisaient se multiplier sans limites, et par cons equent mettre hors service de grandes portions de l'Internet. RTM sont les initiales de l'auteur (Robert T. Morris), qu'il avait laiss ees dans le programme. site Un ensemble d'h^ otes qui, vu de l'ext erieur, se comporte pratique- ment comme un seul nud du r eseau. Par exemple, du point de vue Internet, l'universit e Groucho Marx est un site, malgr e la complexit e de son r eseau interne. SLIP Serial Line IP. Protocole permettant l' echange de paquets IP par une ligne s erie. Voir aussi CSLIP. SMTP Simple Mail Transfer Protocol. Protocole destin e a transf erer du courrier electronique sur les connexions TCP, mais peut aussi ^ etre utilis e pour des lots de messages transport es par des liaisons UUCP. SOA Start of Authority. Un type de ressource DNS. System V Une vari et e d'UNIX. TCP Transmission Control Protocol. Un protocole r eseau. TCP/IP Appellation g en erale de toute la s erie de protocoles Internet. UDP User Datagram Protocol. Un protocole r eseau. UUCP Unix to Unix Copy. Une s erie de commandes de transport, permet- tant l' etablissement de r eseaux fonctionnant sur des lignes t el epho- niques. Version 2 UUCP Tr es ancienne impl ementation de UUCP. services bien connus On pr ef ere le plus souvent employer le terme anglais well-known ser- vices. Il est fr equemment utilis e pour parler des services r eseaux com- muns comme telnet et rlogin. Du point de vue technique, il d esigne
  • 345.
    328 Glossaire tous lesservices qui se sont vu attribuer un num ero de port ociel dans le document RFC ( ( Assigned Numbers ) ). YP Yellow Pages, pages jaunes. L'ancien nom de NIS qui n'est plus uti- lis e, car c'est une marque d epos ee de British Telecom. N eanmoins, la plupart des utilitaires NIS ont conserv e des noms commen cant par le pr e xe yp. On ne va pas contre l'histoire...
  • 346.
    Bibliographie comment ee 329 Bibliographiecomment ee Livres [Tanen89] Andrew S. Tanenbaum: Computer Networks. Prentice-Hall Inter- national, 1989. ISBN 0-13-166836-6 . Cet ouvrage vous apportera une tr es bonne connaissance du r e- seau. Utilisant le mod ele de r ef erence OSI, il explique la concep- tion de chaque couche, et les algorithmes pouvant ^ etre mis en jeu. Pour chaque couche, les impl ementations de plusieurs r eseaux (dont ARPAnet) sont compar ees. Le seul d efaut de ce livre est l'abondance des abr eviations, qui rendent parfois sa lecture dicile. Mais c'est probablement un inconv enient inh erent au sujet trait e. [CInternet] Susan Estrada: Connecting to the Internet: An O'Reilly Buyer's Guide. O'Reilly and Associates, 1993. ISBN 1-56592-061-9. Contient des conseils pratiques pour choisir un fournisseur de connectivit e IP, et le type de connexion Internet. Il vous aidera a d eterminer vos besoins r eels et le prix qui en r esultera, en fonction des di erents fournisseurs cit es. Il comprend une liste internatio- nale de fournisseurs. [AlbitzLiu92] Paul Albitz et Cricket Liu: DNS and BIND. O'Reilly and Asso- ciates, 1992. ISBN 1-56592-010-4. Ce livre sera tr es utile pour tous ceux qui ont a g erer un serveur de noms. Il explique tout le d etail du fonctionnement du DNS et donne des exemples qui rendent compr ehensibles les options de
  • 347.
    330 Livres BIND lesplus obscures. Sa lecture est agr eable et il pourra vous apprendre beaucoup. [Expect] Don Libes: Exploring Expect: A Tcl-based Toolkit for Automating Interactive Programs. O'Reilly and Associates, 1995. [welsh-linux] Matt Welsh: Le syst eme Linux. O'Reilly and Associates, 1995. ISBN 1-56592-100-3. Cet ouvrage vous aidera a installer et utiliser un syst eme Linux. Il d ecrit l'installation et les principales t^ aches d'administration, et pr esente un bon nombre d'applications du courrier electronique au multim edia. C'est un ouvrage de base, a poss eder si vous utilisez Linux. Disponible en version anglaise ou fran caise. [Comer88] Douglas R. Comer: Internetworking with TCP/IP: Principles, Protocols, and Architecture. Prentice-HallInternational, 1991.ISBN 0-13-468505-9. [Unleashing] Stefan Strobel et Thomas Uhl: Linux - Unleashing the Worksta- tion in Your PC. Springer-Verlag, 1994. ISBN 0-387-58077-8. Disponible en anglais et en allemand, ce livre est une introduction aux di erentes distributions de Linux, et un guide d'installation et de con guration. [ManagUUCP] Tim O'Reilly et Grace Todino: Managing UUCP and Usenet, 10 eme edition. O'Reilly and Associates, 1992. ISBN 0-93717593-5. C'est l'ouvrage de r ef erence sur UUCP. Il traite aussi bien de la Version 2 que de l'impl ementation BNU. Il vous aidera a installer votre site UUCP, en vous donnant de nombreux trucs et astuces et des solutions a beaucoup de probl emes. Il fait vraiment le tour
  • 348.
    Livres 331 du sujet,et vous d etaillera les subtiles di erences existant entre les di erentes versions de UUCP. La seconde partie du livre est consacr ee a Usenet et aux programmes relatifs aux News. Il traite de la con guration de B News (version 2.11) et C News, et des travaux d'administration. [NFS and NIS] Hal Stern: Managing NFS and NIS. O'Reilly and Associates,1992. ISBN 0-937175-75-7. C'est le compagnon du livre sur TCP/IP de Craig Hunt. Il couvre en d etail l'utilisation de NIS (Network Information System) et NFS (Network File System) y compris la con guration de l'auto- monteur et PC/NFS. [NIS+] Rick Ramsey: All about Administering NIS+. Prentice Hall, 1993. ISBN 0-13-068800-2. [sendmail] Bryan Costales, Eric Allman et Neil Rickert: Sendmail. O'Reilly and Associates, 1993. ISBN 1-56592-056-2. L'ouvrage de r ef erence sur Sendmail. [TCP/IP] Craig Hunt: TCP/IP Network Administration. O'Reilly and As- sociates, 1992. ISBN 0-937175-82-X. Si le guide ( ( Administration R eseau sous Linux ) ) ne vous sut pas, procurez-vous cet ouvrage. Il traite de tout ce qui concerne le r eseau, depuis l'obtention d'une adresse IP jusqu'au d epannage de votre installation, en passant par la s ecurit e. Il est centr e sur TCP/IP: con guration des interfaces, mise en place des routages, r esolution de noms. Il comprend une description des possibilit es o ertes par les d emons de routage routed et gated, qui permet- tent le routage dynamique. Il d ecrit egalement la con guration des applications et des d e- mons r eseaux, comme inetd, les commandes en r, NIS et NFS.
  • 349.
    332 Livres L'annexe contientune r ef erence compl ete sur gated et named, et une description de la con guration de sendmail. [Stevens90] Richard W. Stevens: UNIX Network Programming. Prentice-Hall International, 1990. ISBN 0-13-949876-X. Il s'agit probablement du libre le plus lu, concernant la program- mation r eseau TCP/IP; qui, en m^ eme temps, vous apprendra une quantit e de choses passionnantes sur les protocoles Internet3. [Spaf93] Gene Spa ord et Simson Gar nkel:Practical UNIX Security. O'Reilly and Associates, 1992. ISBN 0-937175-72-2. C'est un livre que toute personne ayant a g erer un syst eme sur un r eseau se doit de poss eder. Il traite de tout ce qui concerne la s ecurit e, tant au point de vue logiciel que mat eriel. Bien que vous deviez vous e orcer de s ecuriser toutes les parties de votre syst eme, les explications sur la s ecurit e des r eseaux constituent, dans notre contexte, la partie la plus importante. En dehors des programmes classiques comme telnet, rlogin, etc., NFS et NIS, il aborde egalement Kerberos, Secure RPC, et l'usage des portes coupe-feu ( rewalls) permettant de prot eger votre r eseau de toute attaque en provenance d'Internet. [WInternet] Ed Krol: The Whole Internet User's Guide and Catalog, 2nd Ed. O'Reilly and Associates, 1994. Un guide sur tous les services de l'Internet, comprenant toutes les instructions sur leur utilisation et une liste des sites les plus connus. [Kehoe92] Brendan P. Kehoe: Zen and the Art of the Internet. . ( ( Zen ) ) fut le premier guide consacr e a l'Internet, pr esentant aux novices les di erentes activit es et services, ainsi que le folklore 3: Notez que Stevens vient juste de r ealiser un autre ouvrage, appel e TCP/IP Illustrated, Volume 1, The Protocols, publi e par Addison Wesley.
  • 350.
    Les ( ( HOWTO) ) 333 de l'Internet. C'est un volume de 100 pages qui couvre des sujets aussi vari es que le courrier electronique, les News Usenet et le ver Internet. Il est disponible en t el echargement par FTP anonyme sur de nombreux sites, et peut ^ etre librement distribu e et imprim e. On peut en acheter une version papier aupr es de Prentice-Hall. Les ( ( HOWTO ) ) Voici un extrait du document ( ( HOWTO-INDEX ) ), r ealis e par Matt Welsh. Les ( ( HOWTO ) ), c'est quoi? Les HOWTO, que l'on pourrait traduire par les ( ( comment faire) ), sont des documents disponibles en t el echargementexpliquant en d etail certaines parties de la con guration ou de l'utilisation de Linux. Par exemple, il en existe un traitant de l'installation du syst eme (Installation-HOWTO), un autre d ecrivant comment mettre en place le courrier electronique (Mail-HOWTO), etc. Ces documents sont g en eralement bien plus complets que les FAQ4. Les HOWTO sont tr es d etaill es et ne sont pas constitu es de questions et r eponses, bien que cette forme apparaisse parfois a la n de certains d'entre eux. Ils font le tour d'un sujet particulier, et sont tr es souvent remis a jour pour re eter l' etat actuel du d eveloppement de Linux. Ils peuvent ^ etre t el echarg essur les sites FTP suivants, ainsi que sur tous leurs miroirs, et d'une mani ere g en erale sur tous les serveurs di usant Linux. Une grande partie est disponible en France, en version francaise. { tsx-11.mit.edu:/pub/linux/docs/HOWTO { tsx-11.mit.edu:/pub/linux/docs/HOWTO { ftp.ibp.fr:/pub/linux/docs/HOWTO (versions originales) { ftp.ibp.fr:/pub/linux/french/HOWTO (versions fran caises) { ftp.loria.fr L'index que nous vous pr esentons constitue la liste des HOWTO actuellement dispo- nibles. Ils sont r eguli erement post es dans le forums Usenet comp.os.linux.answers, qui a et e cr e e dans ce but, ainsi que dans news.answers. Par cons equent, vous pour- rez toujours en dernier ressort les trouver dans l'archive de news.answers du site rtfm.mit.edu. 4: FAQ, Frequently Asked Questions, se traduit, de l'avis g en eral et humoristique, dans la hi erar- chie francophone des News Usenet par ( ( foire aux questions ) ).
  • 351.
    334 Index desdocuments HOWTO Index des documents HOWTO Voici la liste des documents disponibles. { Linux Busmouse HOWTO, par mike@starbug.apana.org.au (Mike Battersby). In- formations sur les souris type PS/2 dans un syst eme Linux. { Linux CDROM HOWTO, par tranter@software.mitel.com (Je Tranter). Informa- tions sur les CD-ROM compatibles avec Linux. { Linux DOSEMU HOWTO, par deisher@enws125.EAS.ASU.EDU (Michael E. Dei- sher). HOWTO concernant l' emulateur MS-DOS sous Linux appel e DOSEMU. { Linux Distribution HOWTO, par mdw@sunsite.unc.edu (Matt Welsh). Liste des services commerciaux et vendeurs par correspondance. { Linux Ethernet HOWTO, par Paul Gortmaker gpg109@rsphysse.anu.edu.au. Informations sur les cartes Ethernet compatibles avec Linux. { Linux Ftape HOWTO, par ftape@mic.dth.dk (responsable du ftape-HOWTO). In- formations sur les syst emes de sauvegarde type oppy-tape compatibles avec Linux. { Linux HOWTO Index, par mdw@sunsite.unc.edu (Matt Welsh). Liste des docu- ments HOWTO disponibles concernant le syst eme Linux. { Linux Hardware Compatibility HOWTO, par erc@apple.com (Ed Carp). Liste des p eriph eriques compatibles fonctionnant sous Linux. { Linux Installation HOWTO, par mdw@sunsite.unc.edu (Matt Welsh). Comment r ecup erer et installer un syst eme sous Linux. { Linux JE-HOWTO, par Yasuhiro Yamazaki hiro@rainbow.physics.utoronto.ca. Informations concernant JE, outils pour faire parler Linux en japonais. { Linux Keystroke HOWTO, par Zenon Fortuna (zenon@netcom.com). Comment se concocter des raccourcis clavier sous Linux. { Linux MGR HOWTO, par broman@Np.nosc.mil (Vincent Broman). Informations concernant l'interface graphique MGR sous Linux. { Linux Electronic Mail HOWTO, par vince@victrola.wa.com (Vince Skahan). In- formations sur le courrier electronique sous Linux (serveur et client). { Linux NET-2 HOWTO, par terryd@extro.ucc.su.oz.au (Terry Dawson). Comment con gurer proprement le r eseau TCP/IP, SLIP, PLIP et PPP sous Linux. { Linux News HOWTO, par vince@victrola.wa.com (Vince Skahan). Informations sur les serveurs et lecteurs de News USENET sous Linux. { Linux PCI-HOWTO, Michael Will michaelw@desaster.student.uni-tuebingen.de. Informations sur la compatibilit e des machines a bus PCI avec Linux. { Linux Printing HOWTO, par gtaylor@cs.tufts.edu (Grant Taylor). Comment faire fonctionner l'impression sous Linux. { Linux SCSI HOWTO, par Drew Eckhardt drew@kinglear.cs.Colorado.EDU. In- formations sur les cartes contr^ oleurs SCSI compatibles avec Linux. { Linux Serial HOWTO, par gregh@cc.gatech.edu (Greg Hankins). Informations sur l'utilisation des ports s erie et des logiciels de communication.
  • 352.
    Les RFC 335 {Linux Sound HOWTO, par tranter@software.mitel.com (Je Tranter). Les cartes sonores et logiciels adapt es sous Linux. { Linux Term HOWTO, par Bill Reynolds bill@goshawk.lanl.gov. Comment uti- liser le protocole de communication ( ( term ) ) sous Linux. { Linux Tips HOWTO, par Vince Reed reedv@rpi.edu. Trucs et astuces en tous genres sous Linux. { Linux UUCP HOWTO, par vince@victrola.wa.com (Vince Skahan). Informations sur les logiciels UUCP sous Linux. { Linux XFree86 HOWTO, par geyer@polyhymnia.iwr.uni-heidelberg.de (Helmut Geyer). Comment installer XFree86 (X11R6) sous Linux. Les RFC Voici la liste des RFC que nous avons mentionn es tout au long de ce livre. Tous sont disponibles par FTP anonyme sur nic.ddn.mil, ftp.uu.net, et de nombreux autres sites de par le monde. Pour obtenir un RFC par courrier electronique, en- voyez un message a l'adresse service@nic.ddn.mil, en mettant comme sujet send RFC-num ero.TXT. rfc-1597 Address Allocation for Private Internets. Ce RFC liste les adresses IP que les r eseaux priv es peuvent librement utiliser sans qu'ils aient besoin d'^ etre enregistr es aupr es de l'autorit e Internet comp etente (IANA), et pr esente les avantages et inconv enients de cette solution. rfc-1340 Assigned Numbers, Postel et Reynolds. Ce RFC liste et d e nit les di erents num eros utilis es dans divers protocoles, comme les num eros de ports standard que les serveurs TCP et UDP ecoutent, et les protocoles utilis es dans les en-t^ etes des datagrammes IP. rfc-1144 Compressing TCP/IP headers for low-speed serial links, Van Jacob- son. Ce document d ecrit l'algorithme utilis e pour compresser les en- t^ etes TCP/IP en CSLIP et PPP. Un document a lire! rfc-1033 Domain Administrators Operations Guide, Lottor, M. Avec ses deux compagnons RFC 1034 et RFC 1035, il constitue la r ef erence sur le DNS. rfc-1034 Domain Names - Concepts and Facilities, Mockapetris, P.V. Un com- pl ement au RFC 1033. rfc-1035 Domain names - Implementation and Speci cation, Mockapetris, P.V. Un compl ement au RFC 1033. rfc-974 Mail Routing and the Domain System, Partridge, C. Ce RFC d ecrit le routage du courrier sur l'Internet. A lire pour tout savoir sur les
  • 353.
    336 Les RFC enregistrementsMX... rfc-1548 The Point-to-Point Protocol (PPP), W.A. Simpson. Standard PPP, le protocole de transport de datagrammes sur les liaisons point- a- point. rfc-977 Network News Transfer Protocol, Kantor, B., and Lapsley, P. La d e nition du protocole NNTP, couramment utilis e pour le transport des News Usenet sur l'Internet. rfc-1094 NFS: Network File System Protocol speci cation, Nowicki, B. Sp e- ci cations res protocoles NFS et mount (version 2). rfc-1055 Nonstandard for Transmission of IP Datagrams over Serial Lines: SLIP, Romkey, J.L. D ecrit SLIP, le protocole Internet pour liaisons s eries. rfc-1057 RPC: Remote Procedure Call Protocol Speci cation: Version 2, Sun Microsystems, Inc. Sp eci cations de l'encodage utilis e pour les RPC (appels de proc edures distantes), utilis ees entre autres pour NFS et NIS. rfc-1058 Routing Information Protocol, Hedrick, C.L. Description du proto- cole RIP, qui est destin e a l' echange dynamique d'informations de routages sur les r eseaux locaux ou de moyenne importance. rfc-1535 A Security Problem and Proposed Correction with Widely Deployed DNS Software, E. Gavron. Ce RFC d ecrit un probl eme de s ecurit e avec la liste de recherche par d efaut utilis ee par d'anciennes versions de la biblioth eque resolver. rfc-821 Simple Mail Transfer Protocol, Postel, J.B. Description du protocole SMTP, destin e au transport du courrier electronique sur TCP/IP. rfc-1036 Standard for the Interchange of USENET messages, Adams, R., and Horton, M.R. D ecrit le format des messages Usenet, et la fa con dont ils sont echang es sur l'Internet et sur les r eseaux UUCP. Une r evision de ce RFC, qui sera beaucoup plus pr ecise et moins tol erante vis- a- vis des mauvaises impl ementations constat ees sur certains logiciels applicatifs, est attendue d'un moment a l'autre. rfc-822 Standard for the Format of ARPA Internet text messages, Crocker, D. C'est la r ef erence absolue en ce qui concerne le format du courrier electronique. Tout le monde le conna^ t, peu l'ont vraiment lu... rfc-968 Twas the Night Before Start-up, Cerf, V. La veille du jour o u tout a commenc e. Qui a dit que les h eros du r eseau resteront inconnus?
  • 354.
    Index | A | A(enregistrement DNS), 94 acc es autorisation, 105, 112, 164 chiers distants, 162 NNTP, 291, 293 PPP, 124 restriction, 16, 126, 134, 165, 291, 293 UUCP, 188{194 adresse bang, 208, 210 broadcast, 21 choix (IP), 62 courrier, 208{209 de di usion, 21, 69, 76 de routage, 208 enregistrement DNS, 94 Ethernet, 7 Ethernet et IP, 10 hybride, 208 IP, 10 loopback, 21 nom de machine UUCP, 178 n egociation sous PPP, 115, 120, 126 r esolution, 21 route-addr, 208 trouver le nom d'h^ ote, 36 adresse de di usion, 76 adresses IP priv ees, 62 achage con guration des interfaces, 75 con guration UUCP, 179 connexions actives, 79 statistiques sur interface, 79 surnoms cartes NIS, 145 table de routage, 78 table de routage IP, 71 tables ARP, 80 alias courrier, 233 et C News, 272 nom de machine, 34, 94 alias, 233 Allman, Eric, 203 amd, 166 appel de proc edure distante, voir RPC ARP, 21{22 acher les tables, 80 mise en service, 77 proxy, 73, 81, 121 ARPANET, 5 Assembleur de paquets/d esassembleur, 8 assignation des adresses IP, 62 atteindre un h^ ote, 68, 70 authenti cation sous NNTP, 293 sous PPP, 113, 124{128 sous UUCP, 192 authoritative name server, 34, 36 auto-IRQ, 50 automonteur, 166 AX.25, 8, 47 | B | Barber, Stan, 290 batch, voir lots baud, 55 BBS, 53 Becker, Donald, 47 337
  • 355.
    338 INDEX Berkeley InternetName Domain, 83 BIND, 83, 88{100 Biro, Ross, 13 bit par seconde, 55 bi ere virtuelle, 61 BNC, 6 BNU, voir UUCP, HDB bo^ te aux lettres, 232 BOOTP, 22 bo^ te aux lettres montage par NFS, 221 BSMTP, 207 | C | C News, 261, 267{288 active ( chier), 267, 270{271,275{ 276 alias des noms de machine, 272 archivage, 279 compression des lots, 278 cr eation con guration initiale, 270 echange de news, 272, 274 envoi de News, 274, 276{279 exclusion de sites, 272 expiration, 279{281 chiers de trace, 283 groupes mod er es, 282 history ( chier), 267, 281 ihave/sendme, 273, 278 limiter les groupes, 272, 282 liste des groupes, 275, 281 lots, 268, 273, 274, 276{279 mise a jour chier active, 284 newsmaster, 271 param etres des lots, 277{279 relaynews, 267 r eseau, 286 rnews, 274 r eception des news, 267{268, 271 r epertoire de spoule, 267 support de NNTP, 273, 293 sys ( chier), 269, 271{275 togo ( chier), 274 usenet, 271 UUCP, 268, 278 cache (option BIND), 91 caract eres nationaux dans elm, 216 cartes, Usenet, 211, 214 CHAP, 113, 124, 126{127 chargen, 132 chat, 117{119 choix adresses IP, 62 cartes NIS, 151 domaine NIS, 146 nom de machine UUCP, 178 clients diskless, 22 CNAME (enregistrement DNS), 94, 95 coaxial, 6 collision, Ethernet, 7 Collyer, Geo , 261 communication, programmes, 53 compression d'en-t^ etes Van Jacobson, 102, 114 compression de paquets TCP/IP, 102, 114 con guration adresses IP, 62 C News, 268{288 C News sur un r eseau, 286 courrier par r eseau local, 221{224 courrier UUCP, 220 dip, 104 DNS sur SLIP/PPP, 101 domaine NIS, 146, 150 domaine par d efaut, 86 elm, 215{217 equipement r eseau, 39{52 Ethernet, 43, 47{51, 69 interface loopback, 67 interfaces r eseau, 66 IPX, 46 lecteur de News, 295 les commandes en r, 139{141 News Usenet, 268{288 NFS, 44 NIS, 143{157 NNTP, 289{294 nom de domaine, 62 nom de machine, 61
  • 356.
    INDEX 339 noyau, 43 passerellecourrier, 222 passerelle IP, 72 PLIP, 43, 51, 72 ports s erie, 57{58 PPP, 43, 74, 113{129 r esolution de noms, 65, 83{100 sendmail, 237{260 serveur de noms, 88{100 serveur de noms cache seulement, 101 serveur SLIP, 111 services r eseau, 131 SLIP, 43, 74, 101{112 smail, voir smail utilisation serveur de noms, 86 UUCP, 169{201 con guration manuelle (Ethernet), 49 con guration manuelle (PLIP), 51 connecteur BNC, 6, 47 connexions, achage, 79 contr^ ole de ux, mat eriel, 56, 57, 115 courrier, 203 adresse bang, 208, 210 adresse de routage, 208 alias, 233 cartes, 211, 214 centralisation, 209, 212, 213 d emon, 219 diriger dans un chier, 231 distribution, 207 en-t^ etes, 204 chier paths, 211, 213{215 forcer le transport UUCP, 257 format des adresses, 208{209 format des messages, 204 multim edia, 203 par lots, 207 par UUCP, 207 passer a une commande, 231 passerelle, 209 postmaster, 227 queue, 219, 226{227 rejet, 227, 242 renvoi, 232, 233 routage, 209{213 entre Internet et UUCP, 209 Internet, 209 par domaine, 212, 213 r eseaux UUCP, 210 smart host, 211 routage par domaine, 209 route par d efaut, 211 route-addr, 208 saisie, 207 site invisible, 221 sur r eseau, 221 courrier electronique, 203 Cox, Alan, 13 cr eation cartes NIS, 148 sous-domaines, 32 sous-r eseaux, 36, 63 zones DNS, 37 CSLIP, 10, 102, 103, 111, 114 | D | D-Link, 47 daemon, 131 Davies, David C., 47 daytime, 132 DDI, 14 d eboguage base de donn ees DNS, 100 con guration PPP, 119 con guration UUCP, 173 d el egation sous-domaines DNS, 32, 36 sous-r eseau IP, 24 d emon, voir daemon /dev/cua*, 55{56 /dev/modem, 56 /dev/ttyS*, 55{56 device driver interface, voir DDI dialogue PPP, 117 SLIP, 107 UUCP, 177, 181 dip, 104{112 diphosts, 111
  • 357.
    340 INDEX diplogin, 111 dirigerun courrier dans un chier, 231 discipline de ligne, 54, 102, 114 distant acc es chiers, 3 acc es chiers, 139, 159 ex ecution, 3 ex ecution, 207 ex ecution de commandes, 139 login, 5, 11 session, 139 session X11, 5 syst eme de chiers, 162 distribution courrier, 207 news, 265{267 DNS, 29{38 base de donn ees, 34 con gurer le serveur, 88{100 conversion /etc/hosts, 100 cr eation de zones, 37 d eboguage base de donn ees, 100 recherche, 32 requ^ ete, 32 requ^ etes inverses, 36{38 resource record, 34, 91 RR, voir DNS, resource record serveurs de noms racine, 96, 99 time to live, 33, 92 ttl, voir DNS, time to live utilitaires, 100 v eri cation, 96 zone, 32{34, 36, 92 dnswalk, 100 Domain Name System, voir DNS domaine NIS, 146, 150 routage du courrier, 212 domaine in-addr.arpa, 36 domaines premier niveau, 31 domainname, 62, 146 dotted quad, 20 Dugenou, Marcel, 111 | E | echange courrier, 207 news, 262, 263 Ekwall, Bjrn, 47 elm, 215{217 jeux de caract eres nationaux, 216 email, voir courrier emulateurs de terminaux, 53 ERAU, voir UART Eriksson, Peter, 144 espace de nommage (DNS), 30 eth0 (interface Ethernet), 69 Ethernet, 6{7 adresse, 7, 21 autod etection des cartes, 49{51 c^ ablage, 47 collision, 7 con guration, 69 con guration manuelle, 49 et adresse IP, 10 n, 6, 47 installation, 47 mode global, 77 pilotes Becker, 47 via port parall ele, 47 eviter les boucles de courrier, 227 exporter un volume NFS, 164 exports, 164 | F | FDDI, 7 chier hosts, 65 chier networks, 65 chier paths, 213{215 chier paths, 211 chiers de verrouillage, 56 et PPP, 116 et UUCP, 177 FidoNet, 53 nger, 133 rewall, 104 Flintstone, Fred, 1 forwarding IP, 8, 44
  • 358.
    INDEX 341 UUCP, 3 fourniture,News, 263 FQDN, 30 fstab, 60, 162 FTP, trouver les sources de Linux, 14, 61 | G | gated, 27, 73, 122 g en erer un chier paths, 213 gestion centralis eedu courrier,212,213 gestion de courrier centralis ee, 209 getty, 191 GNU, licence publique g en erale, 311{ 318 Gortmaker, Paul, 48 group.bygid, 153 group.byname, 153 | H | ham radio, 8 Hankins, Greg, 53 HDB, voir UUCP, HDB HDLC, 113 HoneyDanBer, voir UUCP, HDB host, 1 host.conf, 84, 144, 156 hostcvt, 100 hosts, 65, 144 conversion en chiers BIND, 100 hosts.byaddr, 144 hosts.byname, 144, 152 hosts.equiv, 139 h^ ote, 1 HOWTO Ethernet, 48 Serial, 53 UUCP, 170 | I | ICMP, 28 Port Unreachable, 28 redirection, 28 IDA, voir sendmail, IDA ifcon g, 66, 74 IMAP, 222 inetd, 131, 138, 224 inetd.conf, 132{134 inews, 267 initialisation du r eseau, 59 INN, 262, 291, 296 installation binaires r eseau, 60 interconnexion de r eseaux, 8, 24, 71 interface, 19, 39, 41, 46 con guration, 66 D-Link DE-600, 47 dummy, 74 Ethernet, 47, 69 loopback, 46, 67 masque r eseau, 23, 63, 69, 76 netmask, 23, 76 PLIP, 47, 72 PPP, 47, 74, 116 SLIP, 47, 74 statistiques, 79 interface dummy, 74 internationalisation de elm, 216 Internet, 5 et internet, 8 routage du courrier, 209 s'y connecter, 101, 113, 115 Internet Control Message Protocol, 28 InterNet News (INN), 262 invalider ARP, 77 IP, 8{10 tinygrams, 45 adresse, 10 assignation, 62 et nom de machine, 29, 36 n egociation sous PPP, 115, 120, 126 priv ee, 62 adresse de di usion, 69, 76 adresse et nom d'h^ ote, 10 adresses, 20{21 adresses multicast, 77 appel t el ephonique, 101, 113 con guration des interfaces, 66 Control Protocol, 114, 119
  • 359.
    342 INDEX forwarding, 8,44 interface, 41 masque r eseau, 23, 63, 69, 76 m etrique, 27 MTU, 76 multicast, 77 m etrique, 76 netmask, 23, 76 Network Control Protocol (PPP), 114 passerelle, 8, 44, 71, 72 port parall ele, voir PLIP protocoles de routage, 27 r eseaux, 20, 22, 36 routage, 22{28, 45, 71, 72 routage dynamique, 27 route par d efaut, 21, 72 routing, 8 sous-r eseau, 23{24, 36, 45, 71, 72 sur ligne s erie, voir SLIP, 101, 113 table de routage, 25, 71, 78 IPCP, voir IP, Control Protocol IPX, 46 IRQ, 41, 50 ISDN, 47 ISO-8859-1, 216 | J | jeux de caract eres dans elm, 216 junk (newsgroup), 268 | K | Karr, Ronald S., 203 Kempen, Fred van, 5, 13 | L | LAN, 4 Lapsley, Phil, 290 Latin-1 (jeu de caract eres), 216 LCP, voirLink ControlProtocol(PPP) lecteur de News cr eation des index, 296{298 lecteurs de News con guration, 295 ls de discussions, 295, 296 nn, 298 tass, 296 tin, 296 trn, 297 Les Pierrafeu, 1 liaison point- a-point, 72, 74,76, 81, 113 ligne s erie protection de caract eres, 122 lilo, 49 Link Control Protocol (PPP), 113 lmail, 207 lo (interface loopback), 67 localhost, 67 loopback adresse, 21 interface, 67 lots de courrier, 207 de News, 265, 276{279 | M | mail, voir courrier emp^ echer le transport UUCP, 258 maintenance, syst eme, 15 Marx, Groucho, 5 mat eriel communication s erie, 53{58 contr^ ole de ux, 56, 57, 115 r eseau, 39{52 messaged'erreurportmapper failure, 156 messaged'erreurNetwork Unreachable, 68 metamail, 217 m etrique, routage,voirroutage,m etrique mgetty, 191 modem, vitesse, 55 montage automatique, 166 d'un volume NFS, 162 lecture seule, 165 syst eme de chiers proc, 60 mots de passe et sessions distantes, 139 pour tout le r eseau, 153{155 mountd, 164
  • 360.
    INDEX 343 MRU, 123 mthreads,297 MTU, 75, 76, 82 multim edia, 203 MX (enregistrement DNS), 95, 209 | N | Nagle, algorithme, 45 named, 83, 88{100 named.boot, 88{91 NCP, voir Network Control Protocols Net-1, 13 Net-2d, 13 Net-2Debugged, 13 Net-2e, 14, 61 Net-3, 14, 61 Net-BSD, 14, 61 netstat, 77{80 Network Control Protocols, 114 news, 261{266 ajouter un groupe, 284 archivage des articles, 279 article, 262 distribution, 265, 267 distributions, 272 echange, 262{266 expiration, 299 expiration des articles, 266, 298 feed, 263 chier active, 266, 267 follow-up, 295 forums, 262 fourniture, 262{266 groupes, 262 history ( chier), 265, 267 ihave/sendme, 265 lecteur, voir lecteurs de News limiter les groupes, 265 lots, 265, 268, 276 message ID, 265 message-ID, 267 messages de contr^ ole, 283 cancel, 283 checkgroups, 284 newgroup, 284 rmgroup, 284 sendsys, 285 senduuname, 285 version, 285 mise a jour chier active, 284 newsmaster, 271 NNTP, 265 nntpd, 289 pulling, 265, 289 pushing, 265, 289 r eception, 271 spoule, 266 suppression vieux articles, 266 supprimer un groupe, 284 tricher, 290 Usenet, 262 version C, voir C News newsmaster, 271 NFS, 159{167 automonteur, 166 d epassement de temps, 163 exporter un volume, 164 exports, 164 limitations, 160 montage d'un volume, 162 montage en dur, 163 monter un volume, 160 r eduire la taille des blocs, 162 serveur, 160, 164 utilisateurs et groupes, 164, 166 volume en lecture seule, 165 nfsd, 160, 164 NIS, 143{157 bases de donn ees, 144 carte, 144{145, 147 cartes passwd, 153{156 client, 147{148, 150{157 code traditionnel, 156 cr eation des cartes, 148 domaine, 146{147, 150 et le resolver, 84 et mots de passe shadow, 155 localiser le serveur, 146 s ecurit e, 146, 149, 156 serveur, 145{150
  • 361.
    344 INDEX surnom, 145 NIS+,147 nn, 298 NNTP, 261, 273, 289 nntp access, 291 nntpd, 290 Noll, Curt Landon, 203 nom canonique, 34, 94 nom d'utilisateur, 271 nom de domaine, 30{32 d efaut, 86 NIS et DNS, 62 nom de machine adresse correspondante, 29 alias, 94 ambigu, 210 assignation, 61 canonique, 34, 94 d etecter si pas quali e, 235 et nom de domaine, 30 obtenir d'apr es l'adresse, 36 quali e, 30 recherche, 32, 96 r esolution, 29, 65, 83, 143, 156 UUCP, 178 notation sur 4 quatre octets, 10 nslookup, 96{100 nsswitch.conf, 151{153 num eros de protocoles, 136 NYS, 144{157 | O | obtenir le code source, 14, 61 | P | packet-radio, 21 PAD, 8 pages jaunes, voir NIS PAP, 113, 124, 127{128 partage de chiers, 159 passer un courrier a une commande, 231 passerelle, 8, 24{25 con guration, 72 courrier, 209 IP, 44, 71 passwd, 144 real user names, 271 passwd.byname, 153 passwd.byuid, 153 pathalias, 211, 214{215 PC/TCP, compatibilit e, 45 pilote D-Link, 47 Ethernet, 47 ISDN, 47 PLIP, 51 PPP, 52, 114 SLIP, 52 pilote, s erie, 53{58 ping, 68 PLIP, 51, 72 con guration manuelle, 51 routage, 81 plip1 (interface PLIP), 72 POP, 222 port, voir r eseau, port num eros, 12 port parall ele Ethernet, 47 IP, 51 port s erie contr^ ole de ux mat eriel, 56, 57 chier p eriph erique, 55 vitesse, 55 portmap, 138 portmapper, d emon, 138 PPP, 10, 74, 101, 113{129 adresses IP, 120 assignationdynamique des adresses, 120 async map, 122 authenti cation, 124{128 compression de donn ees, 114, 123 d eboguage, 119 d emon, 114 encodagecaract eresde contr^ ole,122 et adresses IP, 115 chiers d'options, 116 chiers de verrouillage, 116
  • 362.
    INDEX 345 MRU, 123 pilote,114 proxy ARP, 121 routage, 81, 121{122 route par d efaut, 116 script de connexion, 117{119 s ecurit e, 124 serveur, 128 utiliser CHAP, 124, 126{127 utiliser PAP, 124, 127{128 ppp0 (interface PPP), 74, 116 pppd, 114{129 .ppprc, 116 primaire (option BIND), 90 /proc/net, 60 programmes de communication, 53 promiscuous, voir Ethernet, mode glo- bal protocole, 2 AX.25, 8, 47 CSLIP, 10 Ethernet, 6 IP, voir IP IPX, 46, 47 NNTP, 289 PPP, 10 SLIP, 10 TCP, 10 UDP, 11 UUCP, 195 X.25, 8 protocole de contr^ ole de liaison (PPP), 122{123 protocoles, 132 protocols, 135{137 proxy ARP, 73, 81, 121 PTR (enregistrement DNS), 95 p eriph erique dialout, 55 p eriph erique d'entr ee, 55 p eriph erique de sortie, 55 | Q | queue de courrier, 226 | R | radio-amateurs, 8, 21 RARP, 21, 22, 45 rc.inet, 59, 66, 68, 164 rcp, 139 Reber, Tobias, 143 r eception des news, 271 recherche d'adresses, 36 renvoi courrier, 232, 233 requ^ etes inverses, 36{38 r eseau, 1 adresse IP, 62 achage des connexions, 79 amor cage, 59 commandes en r, 139 connection, 121 connexions, voir r eseau, port courrier, 221 inaccessible, 68 installation des binaires, 60 interconnexion,voirinterconnexion de r eseaux interface, 19 interface de programmation, 12 Internet, 5 mots de passe, 139, 153, 156 news, 286 num eros de port, 12 options du noyau, 43 port, 11{12 protocoles, 2 p eriph eriques, 39 r esolution de noms, 156 services, voir port synchronisationmots de passe, 143 TCP/IP, voir TCP/IP transmission par paquets, 4 UUCP, 2 r eseau local, 4 r esolution des adresses, 21 resolv.conf, 86 resolver avec un serveur de noms, 84 biblioth eque, 84 con guration, 84{88
  • 363.
    346 INDEX abilit e, 88 utilisationde NIS, 84 variables d'environnement, 85 resource record, voir DNS, resource re- cord restreindre l'acc es root, 165 restriction d'acc es, 134, 291, 293 .rhosts, 139 RIP, voir Routing Information Proto- col rlogin, 139 rmail, 188, 207 rnews, 188, 267, 278 routage boucles de courrier, 227 courrier electronique, 209 datagrammes IP, voir IP, routage d emon, 27 dynamique, 27, 28, 73, 81, 122 m etrique, 27 m etrique, 75, 76 passerelle, 72 passerelle IP, 71 protocoles, 27 proxy ARP, 81 redirection ICMP, 28 smart host, 211 table, 25, 78 via PPP, 121 routage dynamique, 27 route, 66, 71, 82 route par d efaut du courrier, 211 route, d efaut, 21, 72, 116 routed, 27 Routing Information Protocol, 27, 73, 76 RPC, 137{139 correspondanceports/programmes, 138 num eros de programmes, 137 rpc, 137 rpcinfo, 151 RR, voir DNS, resource record RS-232, 56 rsh, 139 rsmtp, 207 RTS/CTS, 56, 115 rustine, 208 r eseau noms, 65 | S | Salz, Rich, 291 scripts rc, 59 secondaire (option BIND), 90 s ecurit e, 112 commandes en r, 139 comptes UUCP, 192{194 Ethernet, 77 faux noms d'h^ otes, 84 NIS, 149, 156 NNTP, 290, 293 PPP, 118, 124{128 serveurs TCP, 133, 134 sessions distantes, 139 SLIP, 105 spoo ng, 84 syst eme, 15 UUCP, 188{194 s ecurit e syst eme, 15 sendbatches, 277 sendmail, 203, 237{260 alias, 248, 250 CF, 238{244, 251{252 courrier dans un chier, 248 DECnet, 250 deliver, 241 emplacement des chiers, 259 emp^ echer le transport UUCP, 258 forcer le courrier, 256 forcer le transport UUCP, 257 g en erationde sendmail.cf, 251{252 h^ ote relais, 243 IDA, 238 installation, 250 mailertable, 245 m ethodes, 245, 246, 248, 257, 258 nom non quali e, 246, 248, 257, 258 nom quali e, 246, 248
  • 364.
    INDEX 347 noms locaux,242, 243 postmaster, 242, 248 programme courrier local, 241 queue, 258 relais, 256 routage, 247 domaine, 256 smart-host, 243 UUCP, 246, 249, 257, 258 running, 252 sendmail.cf, 237 site distant mal con gur e, 256 site Internet, 244 site UUCP, 244 statistiques, 259 tables, 238, 243, 249, 254 tests, 252{256 UUCP, 243, 246, 257, 258 version, 250 vider la queue, 258 sendmail.cf, voir sendmail, sendmail.cf s erie Becker, 39, 47 serveur inetd, 131{135 tcpd, 134{135 nfsd, 160 NIS, 145 NNTP, 289 sendmail, 252 UUCP, 191{194 ypserv, 145 serveur de noms, 32{34 authoritative, 34 autoritatif, 33, 34, 36 ayant autorit e, 33, 34, 36 cache, 91 cache seulement, 34, 101 con guration, 88{100 esclave, 91 primaire, 33, 90 racine, 99 secondaire, 33, 90 synchronisation, 33 v eri cation, 96 serveur de noms autoritatif, 33, 34, 92 serveur de noms cache seulement, 101 serveur de noms racine, 96 services, 12 bien connus, 12, 135 con guration, 131 et num eros de port, 12 restriction d'acc es, 16, 134 services, 132, 135{137 services.byname, 152 setserial, 57 site, 1 sl0 (interface SLIP), 74, 103 slattach, 102 SLIP, 10, 52, 54, 74, 101{112 initialisation par utilisateurs, 105 routage, 81 SLIPDISC, 102 smail, 203, 219{236 adresses locales, 231{234 alias, 233 avec un r eseau local, 221{224 bo^ te aux lettres, 232 BSMTP, 220, 234 compilation, 226 con g le, 227 directors, 228 diriger un courrier dans un chier, 231 et SLIP/PPP, 230 chier con g, 220{221 chier con g le, 219 chier paths, 229 chier paths, 230 chiers de trace, 224 gestion du courrier d'un domaine, 222 listes de di usion, 234 modes de distribution, 226 noms locaux, 221 noms non quali es, 235 passerun courrier a une commande, 231 postmaster, 227 probl emes, 224 queue de courrier, 226
  • 365.
    348 INDEX renvoi, 232 routage,228{231 eviter les boucles, 227 Internet, 230 smart host, 221 UUCP, 229, 230 UUCP ou SLIP, 230 routers, 228 SMTP, 223{224, 235 test de la queue, 226 transports, 228 utilitaires, 219 UUCP, 220{221,229,230,234{235 vider la queue, 227 smart host, 211 SMTP, 207 par lots, 188, 207 service, 223 SNARL, 45, 82 SOA (DNS record), 34 SOA (enregistrement DNS), 92 socket, 12 sous-domaine (DNS), 32, 36 sous-r eseau (DNS), 63 sous-r eseau (IP), 24, 45 sous-r eseaux sont locaux, voir SARL45 Space.c, 49, 51 Spencer, Henry, 261 spoo ng, 84 spoule, 3, 171 Start of Authority, 34 Storm, Kim F., 298 synchronisation des serveurs de noms, 33 syslog, 119, 134, 166 syst eme de chiers proc , 60 | T | T'so, Theodore, 57 tass, 296 Taylor, Ian, 169 TCP, 10{11 programme wrapper, 134 UUCP, 187 TCP/IP, 4{13, 19{28 tcpd, 134{135 t el ephone, transfert de donn ees par, 10 temps de propagation (IP), 68 test con guration r eseau, 68, 70 TFTP, 133 tftp, 133 Th ummler, Swen, 143 tin, 296 tinygrams, les eviter, 45 tripwire, 17 trn, 297 tty, 54{58 discipline de ligne, 54, 102, 114 t el ephone,transfertde donn eespar,101, 113 | U | UART 8250, 56 16450, 56 16550, 56 UDP, 11{12 Universit e Groucho Marx, 5, 23 Urlichs, Matthias, 14 Usenet, 262 cartes, 211, 214 uucico, 173 UUCP, 2{4, 53, 169{201 alternates, 183 alternatives, 183 anonyme, 194 avec smail, 220 BNU, 169 calling out, 173 cartes, 211, 214 cartes UUCP, 178 comptes, 191 con guration serveur, 191{195 courrier, 188, 207, 210 cr eer des comptes, 191{192 esclave, 172 et getty, 191 ex ecution de commandes, 188 chier con g, 180
  • 366.
    INDEX 349 dial, 186 dialcode,181 passwd, 192 port, 184 sys, 180 chiers de con guration, 174{177 chiers de verrouillage, 177 forwarding, 3 grades, 171, 184 handshake, 172 HDB, 169, 200 horaires d'appel, 183 hostname, 180 intervalles entre tentatives, 184 job, 171 lignes directes, 188 login, 177 ma^ tre, 172 modem, 184, 186{187 news, 268 News Usenet, 188 nom de machine, 178, 180 num ero de t el ephone, 180 priorit es, 171, 184 probl emes, 198 protocole, 172, 195{197 optimisation, 196 s election, 197 p eriph erique, 181, 184{186 relais, 190 restriction ex ecution de commandes, 188 horaires, 183 relais, 190 transfert de chiers, 189 r epertoire de spoule, 171 script de dialogue, 181{183 s ecurit e des comptes, 192{194 serveur, 191 statistiques, 200 sur TCP/IP, 187 syst eme distant, 180{184 Taylor, 169 test de s equenced'appels, 172,193{ 194 traces et d eboguage, 199{201 transfert de chiers, 189 tra cage et d eboguage, 173 uucico, 172{173 v eri cation, 179, 198 Version 2, 169 UUCP anonyme, 194 uugetty, 191 uux, 278 | V | valider ARP, 77 v eri cation activit e TCP, 79 atteindre un h^ ote, 68, 70 con guration de smail, 225 con guration r eseau, 68, 70 connexions r eseau, 79 interface Ethernet, 80 interface r eseau, 67, 79 NIS, 149, 151 NNTP, 293 noms de machines, 96 param etres tty, 57 ports s erie, 57 PPP, 119 queue de courrier, 226 sendmail, 252{256 serveur de noms, 96 table de routage, 78 table de routage IP, 71 tables ARP, 80 UUCP, 179 vitesse, 55 viticulteurs virtuels, 61 | W | wrapper, TCP, 134 | X | X.25, 8 XDR, 137 | Y | YP, voir NIS
  • 367.
    350 INDEX yp-linux, 143 yp.conf,150{151 ypbind, 146 ypcat, 145, 151 yps, 143 ypserv, 145 Yutaka, Niibe, 51 | Z | Zen, 262 zone, DNS, voir DNS, zone