Copyright c 1995 Olaf Kirch
Kattreinstr. 38, 64295 Darmstadt, Germany
okir@monad.swb.de
Table des matieres
Preface
xvii
1 Introduction aux reseaux
1
1.1 Historique : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 1
1.2 Reseaux UUCP : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 2
1.2.1 Comment utiliser UUCP: : : : : : : : : : : : : : : : : : : : : : 3
1.3 Reseaux TCP/IP : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 4
1.3.1 Introduction aux reseaux TCP/IP : : : : : : : : : : : : : : : : 5
1.3.2 Ethernet: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 6
1.3.3 Autres types de materiel : : : : : : : : : : : : : : : : : : : : : : 7
1.3.4 Le protocole Internet: : : : : : : : : : : : : : : : : : : : : : : : 8
1.3.5 IP sur lignes serie : : : : : : : : : : : : : : : : : : : : : : : : : 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 reseau sous Linux : : : : : : : : : : : : : : : : : : : : : : : : : : : : 13
1.4.1 Orientations du developpement : : : : : : : : : : : : : : : : : : 14
1.4.2 Ou se procurer le code : : : : : : : : : : : : : : : : : : : : : : : 14
1.5 Maintenance du systeme : : : : : : : : : : : : : : : : : : : : : : : : : : 15
2 Le reseau TCP/IP
19
2.1 Interfaces reseau : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 19
2.2 Adresses IP : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 20
2.3 Resolution des adresses : : : : : : : : : : : : : : : : : : : : : : : : : : 21
2.4 Routage IP : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 22 2.4.1 Reseaux IP : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 22 2.4.2 Sous-reseaux : : : : : : : : : : : : : : : : : : : : : : : : : : : : 23 2.4.3 Passerelles: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 24 2.4.4 La table de routage : : : : : : : : : : : : : : : : : : : : : : : : 25 2.4.5 Valeurs metriques : : : : : : : : : : : : : : : : : : : : : : : : : 27 2.5 Le protocole ICMP : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 28
2.6 DNS : Le Domain Name System: : : : : : : : : : : : : : : : : : : : : : 29
2.6.1 Resolution 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 donnees DNS: : : : : : : : : : : : : : : : : : : : : : 34
2.6.6 Requ^etes inverses : : : : : : : : : : : : : : : : : : : : : : : : : : 36
3 Conguration de l'equipement reseau
39
3.1 Peripheriques, pilotes, etc. : : : : : : : : : : : : : : : : : : : : : : : : : 39
3.2 Conguration du noyau : : : : : : : : : : : : : : : : : : : : : : : : : : 42
3.2.1 Options du noyau dans Linux 1.0 et au-dela : : : : : : : : : : : 43
3.2.2 Options du noyau a partir de Linux 1.1.14 : : : : : : : : : : : : 44
3.3 Tour d'horizon des pilotes reseau de Linux : : : : : : : : : : : : : : : : 46
3.4 Installation Ethernet : : : : : : : : : : : : : : : : : : : : : : : : : : : : 47
3.4.1 C^ablage Ethernet: : : : : : : : : : : : : : : : : : : : : : : : : : 47
3.4.2 Cartes supportees : : : : : : : : : : : : : : : : : : : : : : : : : 48
3.4.3 Autodetection des cartes Ethernet : : : : : : : : : : : : : : : : 49
3.5 Le pilote PLIP : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 51
4 Conguration des ports serie
53
4.1 Programmes de communication pour modems : : : : : : : : : : : : : : 53
4.2 Introduction aux peripheriques serie : : : : : : : : : : : : : : : : : : : 54
4.3 Acceder aux ports serie : : : : : : : : : : : : : : : : : : : : : : : : : : 55
4.4 Les ports serie : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 56
5 Conguration du reseau TCP/IP
59
5.1 Montage du systeme 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 Creation de sous-reseaux: : : : : : : : : : : : : : : : : : : : : : : : : : 63
5.7 Redaction des chiers hosts et networks : : : : : : : : : : : : : : : : : 65
5.8 Conguration des interfaces reseau : : : : : : : : : : : : : : : : : : : : 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 Conguration 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 ifcong : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 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 Conguration du serveur de noms et du
resolver
83
6.1.1 Le chier host.conf : : : : : : : : : : : : : : : : : : : : : : : : : 84
6.1.2 Variables d'environnement du resolver : : : : : : : : : : : : : : 85
6.1.3 Conguration des recherches DNS |resolv.conf : : : : : : : : : 86
6.1.4 Fiabilite 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 donnees : : : : : : : : : : : : : : : : : 91
6.2.3 Redaction des chiers de reference : : : : : : : : : : : : : : : : 95
6.2.4 Verication de la conguration du serveur de noms : : : : : : : 96
6.2.5 Autres outils pratiques: : : : : : : : : : : : : : : : : : : : : : : 100
7 IP sur ligne serie | SLIP
101
7.1 Generalites : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 101
7.2 Mode d'emploi de SLIP : : : : : : : : : : : : : : : : : : : : : : : : : : 102
7.3 Le probleme des reseaux IP prives : : : : : : : : : : : : : : : : : : : : 104
7.4 Utilisation de dip : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 104
7.4.1 Exemple de script : : : : : : : : : : : : : : : : : : : : : : : : : 105
7.4.2 Manuel de reference 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 telephonique par le programme chat: : : : : : : : : : : : : : : : 117
8.6 Deboguer votre conguration PPP : : : : : : : : : : : : : : : : : : : : 119
8.7 Options de conguration 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.10 Authentication 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 Conguration d'un serveur PPP : : : : : : : : : : : : : : : : : : : : : 128
9 Aspects importants du reseau
131
9.1 Le super serveur inetd : : : : : : : : : : : : : : : : : : : : : : : : : : : 131
9.2 Contr^ole d'acces par tcpd : : : : : : : : : : : : : : : : : : : : : : : : : 134
9.3 Les chiers services et protocols : : : : : : : : : : : : : : : : : : : : : : 135
9.4 RPC: appel de procedure distante : : : : : : : : : : : : : : : : : : : : 137
9.5 Conguration 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^ote client de NIS : : : : : : : : : : : : : : : : : : : : : : : : : : : : 147
10.4 Installer un serveur NIS : : : : : : : : : : : : : : : : : : : : : : : : : : 148
10.5 Securite du serveur NIS : : : : : : : : : : : : : : : : : : : : : : : : : : 149
10.6 Conguration 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 systeme de chiers par reseau
159
11.1 Verications avant usage: : : : : : : : : : : : : : : : : : : : : : : : : : 161
11.2 Monter un volume NFS : : : : : : : : : : : : : : : : : : : : : : : : : : 162
11.3 Les demons NFS : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 164
11.4 Le chier exports : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 164
12 Ma^triser Taylor UUCP
169
12.1 Transferts UUCP et execution 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 conguration : : : : : : : : : : : : : : : : : : : : : : : : : : 173
12.2.1 Petite introduction a Taylor UUCP: : : : : : : : : : : : : : : : 174
12.2.2 Informations a posseder au prealable : : : : : : : : : : : : : : : 177
12.2.3 Le nom du site : : : : : : : : : : : : : : : : : : : : : : : : : : : 178
12.2.4 Fichiers de conguration Taylor: : : : : : : : : : : : : : : : : : 179
12.2.5 Options de conguration generale | le chier cong : : : : : : 180
12.2.6 Informations sur les sites UUCP voisins | le chier sys : : : : 180
12.2.7 Peripheriques disponibles | le chier port : : : : : : : : : : : : 184
12.2.8 Appeler un numero | le chier dial : : : : : : : : : : : : : : : 186
12.2.9 UUCP sur TCP : : : : : : : : : : : : : : : : : : : : : : : : : : 187
12.2.10Utiliser une connexion directe : : : : : : : : : : : : : : : : : : : 188
12.3 Les erreurs a eviter | securite sous UUCP : : : : : : : : : : : : : : : 188
12.3.1 Execution de commandes : : : : : : : : : : : : : : : : : : : : : 188
12.3.2 Transferts de chiers : : : : : : : : : : : : : : : : : : : : : : : : 189
12.3.3 Relais : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 190
12.4 Congurer votre systeme en serveur UUCP : : : : : : : : : : : : : : : 191
12.4.1 Conguration de getty : : : : : : : : : : : : : : : : : : : : : : : 191
12.4.2 Orir des comptes UUCP : : : : : : : : : : : : : : : : : : : : : 191
12.4.3 Protection contre les escrocs: : : : : : : : : : : : : : : : : : : : 192
12.4.4 Soyez parano | le test de sequence d'appels : : : : : : : : : : 193
12.4.5 UUCP anonyme : : : : : : : : : : : : : : : : : : : : : : : : : : 194
12.5 Protocoles UUCP de bas niveau: : : : : : : : : : : : : : : : : : : : : : 195
12.5.1 Presentation des protocoles : : : : : : : : : : : : : : : : : : : : 195
12.5.2 Optimisation du protocole de transmission : : : : : : : : : : : 196
12.5.3 Selection des protocoles : : : : : : : : : : : : : : : : : : : : : : 197
12.6 En cas de probleme...: : : : : : : : : : : : : : : : : : : : : : : : : : : : 198
13 Le courrier electronique
203
13.1 Qu'est-ce qu'un message? : : : : : : : : : : : : : : : : : : : : : : : : : 204
13.2 Comment le courrier est-il delivre? : : : : : : : : : : : : : : : : : : : : 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 Melanger UUCP et RFC 822 : : : : : : : : : : : : : : : : : : : 212
13.5 Format des cartes et du chier pathalias : : : : : : : : : : : : : : : : : 213
13.6 Conguration de elm : : : : : : : : : : : : : : : : : : : : : : : : : : : : 215
13.6.1 Conguration generale par elm.rc : : : : : : : : : : : : : : : : : 216
13.6.2 Jeux de caracteres nationaux : : : : : : : : : : : : : : : : : : : 216
14 Mise en route de
smail
219
14.1 Conguration UUCP : : : : : : : : : : : : : : : : : : : : : : : : : : : : 220
14.2 Conguration reseau : : : : : : : : : : : : : : : : : : : : : : : : : : : : 221
14.2.1 Redaction des chiers de conguration : : : : : : : : : : : : : : 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 cong : : : : : : : : : : : : : : : : : : : : : 227
14.6 Routage et distribution : : : : : : : : : : : : : : : : : : : : : : : : : : 228
14.7 Routage des messages : : : : : : : : : : : : : : : : : : : : : : : : : : : 228
14.7.1 La base de donnees 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 diusion : : : : : : : : : : : : : : : : : : : : : : : : : 234
14.9 Transport par UUCP: : : : : : : : : : : : : : : : : : : : : : : : : : : : 234
14.11Qualication de noms : : : : : : : : : : : : : : : : : : : : : : : : : : : 235
15 Sendmail+IDA
237
15.1 Introduction a Sendmail+IDA: : : : : : : : : : : : : : : : : : : : : : : 237
15.2 Apercu des chiers de conguration : : : : : : : : : : : : : : : : : : : 238
15.3 Le chier sendmail.cf : : : : : : : : : : : : : : : : : : : : : : : : : : : : 238
15.3.1 Exemple de chier sendmail.m4 : : : : : : : : : : : : : : : : : : 239
15.3.2 Parametres couramment utilises dans sendmail.m4 : : : : : : : 239
15.4 Presentation 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 utilisees: : : : : : : : : : : : : : : : : : : : : : 249
15.5 Installation de sendmail : : : : : : : : : : : : : : : : : : : : : : : : : : 250
15.5.1 Extraction de la distribution binaire : : : : : : : : : : : : : : : 250
15.5.2 Generation du chier sendmail.cf : : : : : : : : : : : : : : : : : 251
15.5.3 Tests du chier sendmail.cf : : : : : : : : : : : : : : : : : : : : 252
15.5.4 Tests d'integration 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 congures : : : : : : : : : 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 traite : : : : : : : : : : 259
15.7 Coherence des distributions binaires : : : : : : : : : : : : : : : : : : : 259
15.8 Pour en savoir plus... : : : : : : : : : : : : : : : : : : : : : : : : : : : : 260
16 Les News Usenet
261
16.2 Mais qu'est-ce que Usenet? : : : : : : : : : : : : : : : : : : : : : : : : 262
16.3 Comment les News sont-elles gerees sur Usenet? : : : : : : : : : : : : 263
17 C News
267
17.1 L'injection des articles : : : : : : : : : : : : : : : : : : : : : : : : : : : 267
17.2 Installation : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 268
17.3 Le chiersys : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 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 acces NNTP : : : : : : : : : : : : : : : : : : : : : : : : 291
18.3 Authentication NNTP : : : : : : : : : : : : : : : : : : : : : : : : : : 293
18.4 Integration de nntpd dans C News : : : : : : : : : : : : : : : : : : : : 293
19 Les lecteurs de News
295
19.1 Conguration de tin : : : : : : : : : : : : : : : : : : : : : : : : : : : : 296
19.2 Conguration de trn : : : : : : : : : : : : : : : : : : : : : : : : : : : : 297
19.3 Conguration de nn : : : : : : : : : : : : : : : : : : : : : : : : : : : : 298
A C^able port parallele pour PLIP
301
B Exemples de chiers de conguration pour
smail
303
C Licence Publique Generale GNU
311
C.1 Preambule: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 311
C.2 Stipulations et conditions pour copie, distribution et modication : : : 312
C.3 Comment appliquer ces directives: : : : : : : : : : : : : : : : : : : : : 317
D SAGE: La guilde des administrateurs systeme
319
Glossaire
321
Bibliographie commentee
329
Livres : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 329
Les((HOWTO)) : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 333
Les((HOWTO)), c'est quoi? : : : : : : : : : : : : : : : : : : : : : : : 333
Index des documents HOWTO : : : : : : : : : : : : : : : : : : : : : : 334
Table des gures
1.1 L'envoi d'un datagramme entre
erdos
etquark
se fait en trois etapes. 9 2.1 Subdivision d'un reseau de classe B : : : : : : : : : : : : : : : : : : : 242.2 Une partie de la topologie du reseau a l'universite Groucho Marx. : : 26
2.3 Une partie de l'espace de nommage. : : : : : : : : : : : : : : : : : : : 30
2.4 Un extrait du chier named.hosts pour le Departement de Physique. : 35
2.5 Un extrait du chier named.hosts de l'universite Groucho Marx. : : : 36
2.6 Un extrait du chier named.rev du sous-reseau 12. : : : : : : : : : : : 37
2.7 Un extrait du chier named.rev du reseau
149.76
. : : : : : : : : : : : 373.1 Les relations entre les interfaces, les pilotes et le materiel. : : : : : : : 40
5.1 Les deux sous-reseaux 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.4 Un extrait du chier /etc/rpc. : : : : : : : : : : : : : : : : : : : : : : 138
10.1 Exemple de chier nsswitch.conf. : : : : : : : : : : : : : : : : : : : : : 153
12.1 Interaction des chiers de conguration de Taylor UUCP. : : : : : : : 176
15.1 Exemple du chier de conguration gueuze.m4. : : : : : : : : : : : : : 240
15.2 Exemple de chier aliases. : : : : : : : : : : : : : : : : : : : : : : : : : 249
16.1 Circuit des News Usenet a l'universite Groucho Marx. : : : : : : : : : 264
Preface
Vous ^etes sur le point de vous embarquer dans une fantastique aventure: vous allez entrer dans le monde de Linux. Pour resumer, Linux vous rappellera l'esprit qui regnait dans les premiers jours de la micro-informatique, ou programmeurs geniaux et bidouilleurs passionnes passaient des nuits blanches avec un oscilloscope et un fer a souder pour construire leur propre micro-ordinateur. Les temps ont change, les outils aussi; les debogueurs ont remplace la soudure, mais l'etat d'esprit est toujours present. Linux est ne de cette passion, et gr^ace a lui vous disposez d'un systeme UNIX pour votre micro-ordinateur, n'ayant rien a envier aux autres implementations. Malgre ses origines, Linux a evolue et n'est plus reserve aux programmeurs aver-tis. Chaque jour, des milliers de personnes, de toute culture informatique, adoptent ce systeme d'exploitation pour toutes sortes d'applications techniques, scientiques, educatives, et... bien s^ur, pour le plaisir aussi.
Mais comment Linux a-t-il pu devenir aussi perfectionne et performant, aussi celebre et apprecie, sans ^etre developpe par une equipe de professionnels surpayes? Le FBI devrait-il ouvrir une enqu^ete sur ce mystere? Que se cache-t-il la-dessous?
La cooperation. Tout le secret est la. Linux est libre, dans tous les sens du terme. Cette idee de liberte, partagee par tous les programmeurs ayant r^eve de posseder un jour leur propre systeme UNIX, a permis de realiser des miracles, chacun apportant sa pierre a l'edice. Demandez a n'importe quel developpeur pourquoi il passe des nuits entieres a travailler sur les sources de Linux. Tous auront la m^eme reponse: la passion de programmer, et d'orir le meilleur a la communaute, librement, sans contraintes. Vous ne realisez peut-^etre pas qu'en utilisant Linux, vous contribuez a l'essor du logiciel libre, dans le monde entier. Le libre acces aux programmes, avec la possibilite de les modier et de les distribuer sans restrictions, est considere par beaucoup comme un droit fondamental de tout utilisateur d'ordinateur; au m^eme titre que les droits de l'homme, la liberte, la recherche de plus gros disques durs, et le digestif apres le cafe. Le logiciel denit comment sont utilisees les machines, le systeme d'exploitation en etant le tout premier exemple. En choisissant un systeme, vous determinez la maniere dont votre ordinateur fonctionnera, depuis l'interface utilisateur jusqu'aux pilotes de peripheriques.
Linux a l'enorme avantage d'^etre developpe par, et pour ses utilisateurs. Le marche du logiciel n'a aucune in uence sur ses orientations: ce sont les besoins des utilisateurs qui les denissent. Cette situation est bien plus saine que de tenter de conquerir un
((marche)), ou de realiser des prots. 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 systeme 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.
Chapitre 1
Introduction aux reseaux
1.1 Historique
La notion de reseau 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 derniere solution s'appelle un reseau.
Bien s^ur, nous avons parcouru un long chemin depuis les occupations primaires et les peripheriques primitifs de nos lointains anc^etres. De nos jours, nous possedons des ordinateurs qui peuvent communiquer entre eux par l'intermediaire d'une vaste toile d'araignee de c^ables, bres optiques, micro-ondes ou bien d'autres solutions de haute technologie, an de pouvoir prendre rendez-vous pour le match de football de samedi prochain1. Dans la description qui va suivre, nous verrons les moyens et methodes
mis en uvre, mais nous laisserons de c^ote les c^ables et la manifestation sportive. Nous aborderons deux types de reseaux dans ce guide: ceux bases sur UUCP et ceux bases sur TCP/IP. Ce sont des ensembles de protocoles et de programmes qui permettent de transferer des donnees entre deux ordinateurs. Dans ce chapitre, nous verrons les principes de base de chacun de ces reseaux.
Nous denissons un reseau 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 specialises qui relayent les donnees entre les participants. Ces h^otes sont tres
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 appeles sites.
Toute communication est impossible sans le truchement de quelque sorte de langage, ou de code. Dans le monde des reseaux d'ordinateurs, ces codes sont appeles protocoles. Toutefois, n'associez pas cette notion aux divers langages ecrits, mais plut^ot aux codes bien precis denissant le comportement a adopter lors de rencontres ocielles entre chefs d'Etats, par exemple. Les protocoles utilises dans les reseaux informatiques ne sont pas autre chose que des regles tres strictes lors de l'echange de messages entre plusieurs h^otes.
1.2 Reseaux UUCP
UUCP est l'abreviation de UNIX-to-UNIX Copy. C'etait a l'origine un ensemble de programmes destines a transferer des chiers par des lignes de communication serie, planier ces transferts, et lancer l'execution de programmes sur les sites distants. Il a subi de profondes modications vers la n des annees 70, mais reste toujours spartiate quant aux services oerts. Son application principale reside encore dans les reseaux a longue distance b^atis sur des liaisons telephoniques.
UUCP fut cree aux laboratoires Bell en 1977, pour permettre a leurs dierents sites de developpement UNIX de communiquer. Vers le milieu de l'annee 1978, ce reseau reliait deja pres 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 conne dans l'environnement UNIX : il en existe des implementations, libres ou commerciales, pour une grande variete de plates-formes, dont AmigaOS, DOS, le TOS Atari, etc.
Le plus gros inconvenient des reseaux UUCP est leur faible bande passante: d'une part, l'equipement telephonique 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 reguliers. Par consequent, chaque fois qu'un courrier doit traverser un reseau UUCP, il reste bloque sur le disque dur de chaque machine en attendant que la prochaine connexion soit etablie.
Malgre ces limitations, il existe encore de nombreux reseaux UUCP en fonctionnement dans le monde entier, exploites principalement par des amateurs, qui permettent a des particuliers d'obtenir un service pour un prix raisonnable. La raison principale de la popularite d'UUCP, est son prix derisoire en comparaison d'une connexion au((gros
c^able Internet)): il sut d'un modem, d'une implementation correcte du protocole,
et d'un autre site UUCP vous fournissant le courrier et les News Usenet pour ne plus ^etre isole du monde.
1.2.1 Comment utiliser UUCP
Le principe d'UUCP est tres simple: comme son nom l'indique, il copie des chiers d'une machine vers une autre, mais il permet egalement d'eectuer certaines actions sur le site distant.
Supposons que votre machine possede un acces a un h^ote hypothetique appele
renux
, et que vous vouliez qu'il execute la commande d'impression lpr pour vous. Vous pouvez taper la commande suivante pour imprimer ce livre surrenux
2 :$ uux -r renux!lpr !netguide.dvi
Cela fera que le programme uux, une commande de l'ensemble UUCP, planiera un job pour le site
renux
. Ce job consistera a prendre le chier netguide.dvi et le passer au programme lpr. L'option-rindique a uux de ne pas appeler immediatement le systemedistant, 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 avecgroucho
, qui archive de nombreuses applications UNIX. Pour telecharger 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 cree ici demandera a
renux
de recuperer le chier sur la machinegroucho
et de l'envoyer a votre site, ou votre UUCP le recevra sous le nom trip.tgz ; puis vous avertira par courrier de son arrivee. Cette operation s'eectuera en trois etapes. Tout d'abord, votre site envoie le job arenux
. La prochaine fois querenux
etablira le contact avecgroucho
, il telechargera le chier. Enn, la derniere etape sera le transfert entrerenux
et votre machine.De nos jours, la principale activite des reseaux UUCP consiste a transferer le courrier electronique et les News Usenet.
Le courrier electronique (E-mail en abrege) permet d'echanger des messages entre utilisateurs de sites distants, sans se preoccuper de savoir comment se connecter sur ces h^otes. Le travail de routage entre votre machine et le site distant est entierement realise par le systeme de courrier electronique. Dans un environnement UUCP, les messages sont generalement transportes en executant 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 donnees a un autre site, et ainsi de suite jusqu'a ce qu'il atteigne la machine de destination. Nous reviendrons la-dessus plus en detail dans le chapitre 13.
2:Si vous utilisezbash, le GNU Bourne Again Shell, ou tout autre shell moderne, vous devrez
encoder le point d'exclamation par une sequence d'echappement car c'est le caractere d'historique. 3:Nous sommes desoles, il s'agit bien de l'expression a utiliser en francais pour lespooling...
Les((News))peuvent ^etre decrites comme un genre de messageries BBS
4distribuees.
Ce terme designe le plus souvent les News Usenet, qui constituent le plus grand reseau d'echange de messages au monde, avec un nombre de sites connectes estime a 120000. Les origines de Usenet remontent a 1979, ou apres l'introduction d'UUCP avec le nouvel UNIX V7, trois etudiants imaginerent un systeme d'echange d'informations au sein de la communaute UNIX. Ils ecrivirent quelques scripts, qui formerent le tout premier systeme de News. En 1980, ce reseau etait forme de trois sites;
duke
,unc
etphs
, entre deux universites de Caroline du Nord. Et Usenet grandit a partir de la. Bien que concu a l'origine autour de UUCP, de nos jours Usenet n'est plus transporte par ce seul type de reseau.L'unite d'information est l'article, qui peut ^etre poste dans une hierarchie de forums, ou newsgroups, dont le debit peut atteindre, a l'heure ou nous ecrivons ces lignes, plus de 100 megaoctets par jour.
Dans le monde UUCP, les News sont en general transferees par paquets, en rassem-blant tous les articles des forums demandes dans un certain nombre de batches. Le site recepteur passe ces chiers au programme rnews, qui les decompacte et assure le traitement necessaire.
Enn, UUCP est egalement un protocole de choix pour de nombreux sites d'archivage qui orent un acces public par ligne telephonique ordinaire. On peut generalement s'y connecter en les appelant par UUCP, sous un nom d'utilisateur invite, comme
guest
,nuucp
ou encoreuucp
, pour telecharger les chiers publics. Les mots de passe courants pour ce type d'acces sont souvent simplementuucp
,nuucp
, parfois m^eme aucun mot de passe n'est necessaire.1.3 Reseaux TCP/IP
Bien qu'UUCP puisse ^etre un choix raisonnable pour des liaisons telephoniques a faible co^ut, il est de nombreuses situations ou sa technique de routage des informations s'avere trop rigide, inadaptee; c'est le cas par exemple dans les reseaux locaux, ou LAN5. Ceux-ci sont en general constitues d'un petit nombre de machines situees dans
le m^eme b^atiment, voire au m^eme etage, interconnectees an d'orir un environnement de travail etendu, puissant et homogene. Des exemples typiques sont le partage de chiers entre les dierents h^otes, ou l'execution d'applications partagees sur dierentes machines.
Ce type d'utilisation necessite une approche totalement dierente du fonctionnement en reseau. Au lieu de transferer des chiers entiers associes a la description des t^aches a executer, toutes les donnees sont tronconnees en petits morceaux (paquets), qui sont immediatement expedies a l'h^ote destinataire, qui les reassemble a l'arrivee. Cette 4:LesBBS, ouBulletin Board System, appeles egalementbabillardsau Quebec, sont des serveurs
proposant dierents forums de messageries, ouconferences, dans lesquels les utilisateurs debattent par ecrit de sujets divers.
methode s'appelle un reseau a commutation de paquets. Entre autres choses, cela permet d'utiliser des applications interactives a travers le reseau; le prix a payer est, bien entendu, une plus grande complexite du code mis en uvre.
La solution adoptee sur les systemes 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 reseaux TCP/IP
TCP/IP est ne d'un projet de recherche au sein du United States Defense Advanced Research Projects Agency (DARPA), en 1969. Le reseau experimental ARPANET devint operationnel en 1975, apres avoir prouve son succes.
En 1983, la nouvelle suite de protocoles TCP/IP fut adoptee comme standard, et tous les h^otes du reseau durent alors l'utiliser. Lorsque ARPANET nit par gran-dir et se transformer en Internet (ARPANET en lui-m^eme ayant cesse d'exister en 1990), l'usage de TCP/IP s'etait deja etendu bien au-dela de ce seul Internet. Les re-seaux locaux UNIX en sont l'exemple notoire, mais l'avenement des communications telephoniques numeriques telles qu'ISDN6, lui promet la aussi un bel avenir.
Pour prendre un exemple concret tout au long des explications qui vont suivre, nous imaginerons l'universite Groucho Marx (UGM), situee quelque part au pays de Fred-land. La plupart des laboratoires ont leur propre reseau local, d'autres en ont un en commun et certains en comptent plusieurs. Ils sont tous interconnectes et relies a l'Internet par une unique ligne a haut debit.
Supposons que votre systeme Linux s'appelle
erdos
et soit connecte au reseau local de machines UNIX du Departement de Mathematiques. Pour acceder a un h^ote du Departement de Physique, disonsquark
, 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 termine, en sor-tant de ce shell vous revenez a l'invite de votre propre machine. Vous venez d'utiliser l'une des applications interactives instantanees oertes par TCP/IP: le login distant. Lors de votre session surquark
, vous pouvez avoir besoin d'utiliser une application graphique sous X Window, par exemple un previsualiseur PostScript. 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 (reseau numerique acelui de la machine sur laquelle il s'execute. 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 deja travailler sous X11 sur votre machineerdos
. En realite, TCP/IP permet aquark
eterdos
de s'echanger les paquets X11 an de vous donner l'illusion d'^etre sur un systeme unique. Vous constatez ici que le reseau est totalement transparent. Une autre application tres importante rendue possible par TCP/IP s'appelle NFS, Network File System (systeme de chiers par reseau). Il s'agit d'une autre maniere de rendre le reseau transparent, qui vous permet litteralement de monter des hierar-chies de repertoires depuis d'autres h^otes, de telle maniere qu'elles vous apparaissent comme des systemes de chiers locaux. Par exemple, tous les repertoires personnels des utilisateurs peuvent ^etre situes sur un serveur central depuis lequel chaque h^ote du reseau monte cette arborescence. Le resultat est que chaque utilisateur peut em-ployer n'importe quelle machine en se retrouvant, quoi qu'il arrive, dans le m^eme repertoire. De m^eme, il est possible de n'installer des applications tres gourmandes en place disque (comme TEX) que sur un seul ordinateur et d'exporter ces repertoires pour que les autres h^otes puissent s'en servir. Nous reviendrons plus en detail sur NFS dans le chapitre 11.Bien s^ur, ce ne sont que quelques exemples simples de ce que vous pouvez realiser gr^ace aux reseaux TCP/IP; leurs possibilites ne sont limitees que par l'imagination. Nous allons maintenant regarder d'un peu plus pres le fonctionnement de TCP/IP. Vous comprendrez ainsi comment et pourquoi congurer votre machine. Nous com-mencerons par l'equipement materiel necessaire, et petit a petit nous guiderons vos premiers pas.
1.3.2 Ethernet
L'equipement materiel le plus utilise pour la realisation de reseaux locaux est ce que l'on appelle l'Ethernet. Il consiste en un simple c^able coaxial, sur lequel est connecte chaque h^ote par l'intermediaire de connecteurs, ou de bo^tiers electroniques nommes transceivers. Les reseaux Ethernet sont extr^emement peu co^uteux et simples a instal-ler, et leur vitesse de transfert etant de 10 megabits par seconde, ils rencontrent un succes toujours grandissant.
Il existe trois categories d'Ethernet: n, gros, et paire torsadee. Les deux premiers utilisent un c^able coaxial, qui diere dans sa taille et la maniere de s'y connecter. L'Ethernet n utilise des connecteurs((BNC))en(( T)), que vous pouvez inserer au
milieu du c^able reseau et brancher sur la prise prevue a cet eet a l'arriere 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'intermediaire d'une((pince vampire)). Ces bo^tiers peuvent
supporter un ou plusieurs h^otes. Ces deux variantes supportent respectivement des distances d'utilisation de 200 et 500 metres, d'ou leurs denominations: 10base-2 et 10base-5. La paire torsadee utilise deux ls de cuivre ordinaires et necessite un bo^tier additionnel appele 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 reseau: le service est juste interrompu pendant un moment tres court, le temps de couper le c^able (en debranchant une prise s'il est bien concu) an d'inse-rer le connecteur necessaire. Cette operation ne prend que quelques secondes, au pis quelques minutes.
La majorite des utilisateurs preferent 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 metre. Toutefois, pour de grosses installations, le gros Ethernet est beaucoup plus approprie; il n'est par exemple pas necessaire d'interrompre le trac quelques secondes pour connecter une nouvelle machine sur le reseau.
La longueur de c^able maximale est l'un des principaux inconvenients de la technologie Ethernet. Toutefois, on peut relier plusieurs segments par l'intermediaire de repeteurs, ponts ou routeurs. Les repeteurs copient simplement les signaux entre plusieurs tron-cons an qu'ils apparaissent comme un unique c^able Ethernet. En raison de la vitesse necessaire, il ne peut pas y avoir plus de quatre repeteurs entre deux h^otes quelconques du reseau. Les ponts et routeurs sont beaucoup plus sophistiques: ils analysent les donnees recues et ne les retransmettent que lorsque la machine destinataire n'est pas situee sur l'Ethernet local.
L'Ethernet se comporte comme un bus, ou chaque h^ote peut envoyer des paquets (ou trames) pouvant atteindre 1500 octets vers une autre machine du m^eme reseau. Chaque ordinateur possede une adresse unique au monde formee de 6 octets, inscrite dans la carte Ethernet lors de sa fabrication. Ces adresses sont generalement achees comme une sequence de nombres hexadecimaux sur deux digits, separes par un deux-points, comme
aa:bb:cc:dd:ee:
.Une trame envoyee 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 materiel
Dans les tres grosses installations reseau, l'Ethernet n'est generalement pas le seul support utilise. A l'universite Groucho Marx, chaque reseau local est relie a la dorsale du campus (backbone), qui est une bre optique utilisant FDDI (Fiber Distributed Data Interface). FDDI utilise une approche totalement dierente pour transmettre les donnees, qui consiste a diuser un certain nombre de jetons, chaque station n'etant alors autorisee 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
allant jusqu'a 200 km.
Pour de tres longues distances, on utilise frequemment un autre type de transport, base sur un standard appele X.25. Beaucoup de reseaux utilisent ou orent ce service; on peut citer Tymnet aux Etats-Unis, Datex-P en Allemagne, ou Transpac en France. X.25 necessite un equipement special appele PAD (Assembleur/Desassembleur de paquets). X.25 denit un ensemble de protocoles qui lui sont propres, mais qui sont neanmoins utilises couramment pour relier des reseaux utilisant TCP/IP ou tout autre protocole. Comme les trames IP ne peuvent pas ^etre converties de facon simple en paquets X.25, la methode employee est l'encapsulation. Chaque paquet IP est encapsule dans une trame X.25 et envoye sur le reseau.
Tres souvent, les radio-amateurs utilisent leur equipement pour relier leurs machines en reseau par ondes hertziennes; il s'agit du packet radio (ou ham radio). Le protocole utilise s'appelle AX.25, et est derive de X.25.
D'autres techniques mettent en uvre des liaisons series lentes mais tres economiques pour acceder au reseau par ligne telephonique. La encore, d'autres protocoles de trans-mission de paquets sont employes, comme SLIP ou PPP, que nous decrirons plus loin.
1.3.4 Le protocole Internet
Bien s^ur, vous ne voudriez pas d'un reseau limite a un simple brin d'Ethernet. L'ideal serait que vous puissiez vous connecter partout, quel que soit le materiel utilise ou le nombre de sous-reseaux composant l'installation. L'universite Groucho Marx par exemple, possede plusieurs reseaux locaux interconnectes. Le Departement de Mathe-matiques en a deux: le premier reliant les ordinateurs puissants pour les enseignants et chercheurs, le second, plus lent et moins bien equipe, destine aux etudiants. Tous deux sont relies a la dorsale FDDI du campus.
Cette connexion est geree par un h^ote dedie que l'on appelle alors passerelle ; son r^ole est de copier les paquets entrants et sortants entre les reseaux Ethernet et la bre optique de l'universite. Par exemple, si vous ^etes au Departement Mathematiques et que vous desirez acceder a la machine
quark
du Departement de Physique depuis votre systeme Linux, les programmes reseau ne peuvent pas envoyer directement les paquets a destination carquark
n'est pas sur le m^eme Ethernet. Les paquets seront donc envoyes a la passerelle qui fera le relais. Celle-ci (appelons-lasophus
) passera les trames a la passerelle du Departement de Physique (niels
) par l'intermediaire de la dorsale, etniels
les delivrera a la machine destinataire. Le parcours des donnees entreerdos
etquark
est montre dans la gure 1.1.Cette facon de diriger les donnees vers leur destination s'appelle le routage, et dans ce contexte, les paquets sont souvent appeles datagrammes. Pour simplier les choses, l'echange des datagrammes est gere par un unique protocole independant du materiel utilise: IP, ou Internet Protocol. Nous decrirons plus en detail IP et le routage dans le chapitre 2, page 19.
quark niels
2
sophus erdosReseau Ethernet du
Departement de Physique Departement Mathematiques
Reseau Ethernet du
Dorsale bre optique du campus
1
3
Le benece apporte par IP est de faire appara^tre des reseaux physiquement dierents en un seul reseau homogene. Cela se nomme l'interconnexion de reseaux, et le((
meta-reseau))resultant est appele un internet. Notez bien la subtilite entre un internet et
l'Internet. Ce dernier terme est le nom ociel d'un internet mondial particulier. Bien s^ur, IP necessite aussi une methode d'adressage independante du materiel. Pour ce faire, on assigne a chaque h^ote un nombre unique sur 32 bits, appele l'adresse IP. Une adresse IP est generalement notee sous la forme de quatre nombres decimaux, un pour chaque portion de 8 bits, separes par des points. Par exemple,
quark
pourrait avoir une adresse IP de0x954C0C04
, qui serait alors ecrite149.76.12.4
; ce format est connu sous le nom evident de notation sur 4 octets, vous verrez aussi tres souvent l'appellation anglaise dotted quad.Vous noterez que nous avons maintenant trois types d'adresses dierents: tout d'abord le nom d'h^ote, comme
quark
, puis les adresses IP, et enn les adresses materielles, les 6 octets de l'interface Ethernet. Toutes doivent ^etre liees, de sorte que lorsque vous tapez rlogin quark, la partie logicielle du reseau puisse obtenir l'adresse IP dequark
; et quand IP delivre des donnees a l'Ethernet du Departement de Physique, il puisse determiner a quelle adresse materielle correspond cette adresse IP.Nous verrons comment tout cela est realise dans le chapitre 2. Pour l'instant, il vous sura de savoir que ces etapes se nomment la resolution de noms, pour ce qui est de faire correspondre les noms d'h^otes en adresses IP, et resolution d'adresses, pour la correspondance de cette derniere en adresse materielle.
1.3.5 IP sur lignes serie
Sur des liaisons serie, on utilise frequemment un standard((de fait))connu sous le nom
de SLIP, Serial Line IP. CSLIP (Compressed SLIP) en est une amelioration; il eectue une compression des en-t^etes IP pour tirer un meilleur parti du debit relativement faible oert par une ligne serie7. PPP, ou Point-to-Point Protocol, est un protocole
dierent destine au m^eme usage; il est plus evolue que SLIP. Son principal avantage est de ne pas ^etre limite au transport de datagrammes IP, car il a ete concu 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 rloginsurerdos
et le shell lance surquark
. Par consequent, les informations envoyees et recues devront ^etre tronconnees en paquets par l'emetteur, et reassemblees en un ux de caracteres par le recepteur. Bien que paraissant tres simple, cette operation entra^ne un certain nombre de t^aches complexes.Il est tres important de savoir que IP, par conception, n'est pas un protocole able. Supposons que dix personnes, sur votre reseau Ethernet, soient en train de telecharger la derniere version de XFree86 depuis le serveur ftp de GMU. Le trac genere peut alors devenir trop important pour la passerelle, si elle est trop lente ou manque de memoire. 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 donnees. IP resout ce probleme d'une facon tres simple: il elimine le paquet, qui est irremediablement perdu. Par consequent, la responsabilite de verier l'integrite des donnees transmises, et de les retransmettre en cas d'erreur est celle des h^otes en communication.Ce r^ole est assure par un autre protocole: TCP, ou Transmission Control Protocol, qui cree un service able par-dessus IP, en prenant en charge le contr^ole de la transmission. La propriete la plus importante de TCP est d'utiliser IP an de donner l'illusion d'une simple connexion entre les deux processus distants, de maniere a ce qu'il n'y ait pas a se preoccuper du routage des donnees. 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 telephonique, par exemple.
TCP identie chaque bout d'une telle connexion par les adresses IP des h^otes concer-nes, et un numero de port sur chacun d'eux. Les ports peuvent ^etre vus comme des points d'attache pour les connexions reseau. En prenant encore une fois le telephone comme exemple, on pourrait comparer les adresses IP aux codes regionaux (un numero par ville), et les ports aux numeros individuels (un numero par abonne)8.
Dans notre exemple de rlogin, l'application cliente (rlogin) ouvre un port sur
erdos
et se connecte au port 513 du systemequark
, dont le serveur rlogind est a l'ecoute. Il s'etablit alors une connexion TCP. Par l'intermediaire de cette connexion, rlogind eectue la procedure d'autorisation d'acces, puis lance l'execution du shell. L'entree et la sortie standard de ce dernier sont redirigees vers la connexion TCP de sorte que tout ce que vous tapez sur votre machine dans rlogin soit envoye au ux TCP et aboutisse a l'entree standard du shell distant.1.3.7 Le protocole UDP
Bien s^ur, TCP n'est pas le seul protocole utilisateur sur un reseau 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 proData-gramme de contacter un service sur un port donne de la machine distante, mais il n'etablit aucune connexion. UDP est utilise pour envoyer simplement des paquets, d'ou son nom.
Supposons que vous ayez monte le repertoire TEX de
galois
, le serveur NFS central du departement, et que vous desiriez voir un document decrivant le mode d'emploi de LaTEX. Vous appelez votreediteur de texte, qui commence par lire la totalitedu chier.Toutefois, etablir une connexion TCP avec
galois
, envoyer le chier, puis deconnecter prendrait bien trop de temps. A la place, une requ^ete est envoyee agalois
, qui envoie alors le chier dans deux ou trois paquets UDP, ce qui est bien plus rapide. Mais UDP n'est pas concu pour gerer la perte ou la corruption des donnees; c'est a l'application, NFS dans le cas present, de prendre en charge ces problemes eventuels.1.3.8 Les ports
Les ports sont, en quelque sorte, des points d'attache logiciels pour les connexions reseau. Si une application desire orir 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 systeme distant.
Une fois qu'une connexion est etablie entre le client et le serveur, une des caracte-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 dierencier les connexions car elles proviennent toutes de dierents ports ou h^otes. Par exemple, si vous avez deux rlogin sur
quark
depuiserdos
, le premier client utilisera le port local 1023, et le second le 1022. Tous deux se connecteront neanmoins au m^eme port 513 surquark
.Cet exemple montre l'utilisation des ports en tant que points de rencontre, ou les serveurs donnent rendez-vous aux clients desirant un service particulier. An que ces clients sachent quel numero de port contacter, les administrateurs des dierents systemes connectes doivent se mettre d'accord sur leur assignation. En ce qui concerne les services les plus couramment utilises, comme rlogin, ces numeros doivent ^etre administres de maniere centrale: c'est le r^ole de l'IETF (Internet Engineering Task Force), qui publie regulierement un RFC intitule Assigned Numbers. Ce document decrit, entre autres choses, les numeros de port assignes aux services les plus connus utilises mondialement. Linux utilise, comme beaucoup d'autres systemes, un chier nomme /etc/services, qui contient la correspondance entre les noms de ces services et les numeros de ports qui leur sont associes.
Bien que les connexions TCP et UDP se basent sur les ports, il faut noter que ces numeros n'entrent pas en con it. Comprenez par la que le port TCP 513, par exemple, est dierent du port UDP 513: ils correspondent en pratique a rlogin (TCP) et rwho (UDP).
1.3.9 Les sockets
Dans les systemes d'exploitation UNIX, la partie logicielle responsable des t^aches et des protocoles que nous venons de decrire succinctement fait generalement partie du noyau; Linux ne fait pas exception a la regle. L'interface de programmation reseau
la plus courante dans le monde UNIX est la bibliotheque de sockets de Berkeley. Ce nom, qui dans un contexte technique signie((prise)), ou(( connecteur))en anglais,
provient de l'analogie courante faite entre les ports et des prises, sur lesquels on vient se(( brancher)) pour realiser la connexion. Cette bibliotheque ore la fonction bind
pour specier 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 generaliste, 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 implementations comportent m^eme d'autres classes, comme le protocole XNS (Xerox Networking System) ou X.25. Sous Linux, la bibliotheque de sockets est partie integrante de la bibliotheque C standard, libc. A l'heure actuelle, elle ne supporte que AF INET et AF UNIX, mais d'autres protocoles sont en developpement et appara^tront sans doute dans l'avenir.
1.4 Le reseau sous Linux
Etant le fruit de developpeurs du monde entier, Linux n'aurait jamais pu voir le jour sans le reseau mondial. Aussi, il n'est pas surprenant que tout au debut, plusieurs personnes aient entrepris de lui apporter les possibilites reseau necessaires. Des les toutes premieres versions, il etait deja possible d'utiliser UUCP, et le travail sur les couches TCP/IP debuta en automne 1992, lorsque Ross Biro et quelques autres creerent ce qui est maintenant connu sous le nom de Net-1.
Ross dut cesser ses activites de developpement pour Linux au mois de mai 1993, et Fred van Kempen commenca a travailler sur une nouvelle implementation, reecrivant de grandes parties du code. Cette etape prit le nom de Net-2, dont la premiere ver-sion publique, Net-2d, fut diusee en ete 1993 (dans le noyau 0.99.10), et a depuis ete maintenue et amelioree par plusieurs personnes, en particulier Alan Cox, sous l'ap-pellation Net-2Debugged. Apres de grandes periodes de deboguage et de nombreux perfectionnements, ce nom fut change en Net-3 apres la sortie de Linux 1.0. C'est la version du code reseau actuellement incluse dans les versions ocielles du noyau, a l'heure ou nous ecrivons ces lignes.
Net-3 ore des pilotes pour une large gamme de cartes Ethernet, aussi bien que SLIP, PPP (pour des connexions reseau via une liaison serie), et PLIP (pour utiliser le port imprimante parallele dans le m^eme but). Avec Net-3, Linux est dote d'une implementation de TCP/IP qui se comporte parfaitement bien dans la plupart des environnements reseaux, avec une abilite depassant certains Unix commerciaux pour PC. Le developpement continue, an d'assurer une stabilite encore meilleure en toutes circonstances sur les h^otes orant des services sur l'Internet.
En plus de tout cela, certains projets sont en cours, qui augmenteront encore davan-tage l'universalite de Linux. Un pilote AX.25 pour packet-radio est en Alpha test, et Alan Cox a egalement implemente 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
necessaire a son aboutissement. Andrew Tridgell a realisesamba, un serveur NetBIOS9
gratuit pour systemes Unix dont les premieres versions sont tres prometteuses.
1.4.1 Orientations du developpement
Fred a continue parallelement son developpement pour faire Net-2e, une approche profondement nouvelle des couches reseau. Toutefois, on n'a pas entendu parler de ce travail depuis longtemps.
Il existe une autre implementation de TCP/IP realisee par Matthias Urlichs, qui a ecrit un pilote ISDN pour Linux et FreeBSD, en integrant une partie du code reseau de BSD dans le noyau Linux.
Malgre tout, Net-3 semble maintenant destine a rester la version ocielle. Les((
mo-dules )), qui permettent d'ajouter des pilotes de peripheriques au noyau pendant le
fonctionnement du systeme, donneront sans nul doute un coup de fouet au develop-pement et la partie reseau s'enrichira sans doute de nombreuses possibilites au l du temps.
Bien que ces dierentes implementations des couches reseau s'eorcent d'orir le m^eme service, elles comportent d'importantes dierences au niveau noyau et pilotes. Par consequent, vous ne pourrez pas congurer un systeme 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 tres 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 legere confusion ne devrait pas vous inquieter. A moins que vous ne participiez activement au developpement, vous n'aurez pas a vous soucier de ces dierentes versions de TCP/IP. Les versions ocielles du noyau seront toujours accompagnees des outils reseau compatibles avec l'implementation courante.
1.4.2 Ou se procurer le code
Le derniere version du code reseau de Linux peut ^etre obtenue par FTP anonyme au-pres de dierents serveurs. Le site ociel pour Net-3 est
sunacm.swan.ac.uk
, repris parsunsite.unc.edu
dans le repertoire system/Network/sunacm. Les dernieres ver-sions connues de Net-2e se trouvent surftp.aris.com
. Les travaux derives de BSD, par Matthias Urlichs, sont surftp.ira.uka.de
dans le repertoire /pub/system/linux/netbsd. Le code source des derniers noyaux en date, ainsi que les versions en cours de de-veloppement se trouvent dans le repertoire /pub/OS/Linux/PEOPLE/Linus du sitenic.funet.
; qui est repris par de nombreux serveurs10.9:NetBIOS est le protocole sur lequel sont basees certaines applications commelanmanageret
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 reference pour la France, et tient a jour un miroir des principaux sites etrangers.
1.5 Maintenance du systeme
Tout au long de ce livre, nous traiterons principalement de procedures d'installation et de conguration. Neanmoins, l'administration d'un systeme est bien plus que cela: une fois un service installe, 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, necessitent un entretien de routine. Nous verrons en quoi consistent ces dierentes t^aches d'administration dans les chapitres qui vont suivre.
La maintenance minimale consiste a regarder regulierement les chiers de trace du systeme et des dierentes applications, a la recherche d'eventuelles erreurs ou evene-ments inhabituels. Le plus simple est d'ecrire quelques shell-scripts qui seront executes 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 modier legerement pour les adapter a vos besoins particuliers.
La sortie de tous les travaux executes par cron doit faire l'objet d'un courrier envoye dans la bo^te aux lettres d'un compte administratif. Par defaut, beaucoup d'applica-tions postent leurs erreurs ou statistiques a l'utilisateur
root
. Cela n'a d'inter^et que si vous vous connectez souvent sous ce compte, ce qui est deconseille. Une solution bien meilleure sera de rediriger le courrier deroot
vers votre compte personnel en declarant un alias, comme decrit dans le chapitre 14.Quel que soit le soin apporte a la conguration de votre site, les lois de Murphy garan-tissent que malgre tout, certains problemes se produiront. Par consequent, maintenir un systeme signie egalement ^etre disponible pour repondre aux reclamations. Gene-ralement, on considere que l'administrateur systeme doit au minimum pouvoir ^etre joint par courrier electronique au compte
root
, mais il existe aussi d'autres adresses traditionnellement utilisees pour des aspects ou services speciques. Par exemple, tout ce qui concerne le fonctionnement du courrier electronique est envoye apostmaster
, alors que pour ce qui est des News Usenet, il s'agira denewsmaster
ouusenet
. Un message a destination dehostmaster
devra ^etre redirige vers la personne en charge de la conguration reseau de base, et du serveur de noms si vous fournissez un DNS.1.5.1 Securite du systeme
Proteger votre machine et ses utilisateurs des intrus est un aspect tres important de l'administration systeme dans un environnement reseau. Negliger ce point peut orir de nombreuses cibles aux malfaisants, les attaques pouvant aller de tentatives de decryptage des mots de passe a l'analyse de datagrammes, avec des consequences diverses comme courriers falsies, destructions de donnees ou entrave a la vie privee de vos utilisateurs. Nous mentionnerons quelques-uns de ces problemes lorsque nous decrirons le contexte dans lequel chacun peut se produire, et les solutions les plus courantes employees pour se proteger.
Il est evidemment impossible de detailler ici tous les ennuis de securite auxquels vous serez peut-^etre confronte. La lecture d'un ouvrage specialiseest absolument necessaire, particulierement en environnement reseau. Le livre(( Practical UNIX Security)), de
Simson Garnkel (voir [Spaf93]) est hautement recommande.
La securite commence par une bonne administration systeme. Cela comprend la ve-rication des proprietaires et droits d'acces des chiers vitaux et des repertoires, l'observation de l'utilisation des comptes privilegies, etc. Le programme COPS, par exemple, permet de tester le systeme de chiers et la conguration 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 caracteres et comportent un ensemble de lettres minuscules, majuscules et chires.
Lors de la creation d'un service accessible par reseau, assurez-vous de ne lui donner que les privileges 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 privilegie que lorsque c'est vraiment necessaire. Si vous desirez n'utiliser un service que pour une application tres limitee, n'hesitez pas a le congurer de maniere aussi restrictive que possible. Si par exemple vous comptez au-toriser des stations diskless a s'amorcer depuis votre machine, vous devez orir TFTP (Trivial File Transfer Protocol) an qu'elles puissent telecharger leur conguration de base depuis le repertoire /boot. Toutefois, utilise sans restrictions, TFTP permet a n'importe quel utilisateur du monde de telecharger tout chier de votre machine qui soit lisible par tous. Si ce n'est pas ce que vous desirez, pourquoi ne pas restreindre le service TFTP au repertoire /boot ?11.Dans le m^eme ordre d'idees, vous pouvez restreindre l'acces a certains services a des utilisateurs de certains h^otes, par exemple ceux de votre reseau local. Dans le chapitre 9, nous presenterons tcpd, qui permet cette operation pour une grande variete d'applications reseaux.
Un autre point tres important: eviter les logiciels a risque. Bien s^ur, tous les pro-grammes que vous utilisez peuvent ^etre dangereux, puisqu'ils peuvent receler des bogues que des personnes malintentionnees pourraient exploiter pour penetrer dans votre systeme. Ce genre de situation arrive, et il n'existe malheureusement pas de protection a toute epreuve. Ces problemes aectent aussi bien les applications du domaine public que les produits commerciaux12. Toutefois, les programmes
neces-sitant des privileges particuliers sont fatalement plus dangereux que les autres, car le moindre trou de securite peut avoir de graves consequences13. Si vous installez
11:Nous reviendrons sur ce sujet dans le chapitre 9.
12:Il y a eu des systemes 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 privilegesrootpar 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 breche dans quelques versions du programmesendmail. Ce trou de securite a ete corrige depuis.
un programme setuid, redoublez de prudence et assurez-vous de ne rien rater de sa documentation, an d'eviter de creer une breche de securite par erreur ou omission. Malgre tout le soin que vous pourrez apporter a la securite, vous ne pourrez jamais vous considerer comme totalement a l'abri. Par consequent, vous devez pouvoir de-tecter les eventuels intrus le plus t^ot possible. La lecture des chiers de trace du systeme est un bon point de depart, mais les pirates le sachant aussi bien que vous, ils ne manqueront pas d'eacer tout ce qui pourrait les denoncer. Il existe neanmoins des outils comme tripwire14, qui calcule regulierement dierents checksums sur ces
chiers, et les stocke dans une base de donnees. Lors des acces ulterieurs, ces valeurs sont recalculees et comparees avec celles precedemment trouvees an de detecter toute modication anormale de ces traces.