367

Administration Reseau Sous Linux

  • Upload
    niko

  • View
    7.711

  • Download
    32

Embed Size (px)

DESCRIPTION

un guide sur l'administration reseau sous linux

Citation preview

Page 1: Administration Reseau Sous Linux

Administration r�eseau sous Linux

Copyright c 1992-1995 Olaf Kirch

Page 2: Administration Reseau Sous Linux

�A Britta

Page 3: Administration Reseau Sous Linux

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

[email protected]

Adaptation fran�caise Ren�e Cougnenc ([email protected])

Page 4: Administration Reseau Sous Linux

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

Page 5: Administration Reseau Sous Linux

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 Requetes 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 Cablage 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

Page 6: Administration Reseau Sous Linux

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 A�chage de la table de routage : : : : : : : : : : : : : : : : : : 78

5.10.2 A�chage des statistiques sur une interface : : : : : : : : : : : : 79

5.10.3 A�chage 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

Page 7: Administration Reseau Sous Linux

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 controle de liaison : : : : : : : : : : : : : : : : : : : : : : 122

8.9 La s�ecurit�e sous PPP : : : : : : : : : : : : : : : : : : : : : : : : : : : : 124

Page 8: Administration Reseau Sous Linux

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 Controle 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 cot�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

Page 9: Administration Reseau Sous Linux

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

Page 10: Administration Reseau Sous Linux

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

Page 11: Administration Reseau Sous Linux

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 Empecher 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

Page 12: Administration Reseau Sous Linux

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 controle : : : : : : : : : : : : : : : : : : : : : : : : : : 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 Cable port parall�ele pour PLIP 301

B Exemples de �chiers de con�guration pour smail 303

Page 13: Administration Reseau Sous Linux

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

Page 14: Administration Reseau Sous Linux

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

Page 15: Administration Reseau Sous Linux

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

Page 16: Administration Reseau Sous Linux

Pr�eface xvii

Pr�eface

Vous etes sur le point de vous embarquer dans une fantastique aventure : vous allezentrer dans le monde de Linux. Pour r�esumer, Linux vous rappellera l'esprit quir�egnait dans les premiers jours de la micro-informatique, o�u programmeurs g�eniauxet 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, lesoutils aussi ; les d�ebogueurs ont remplac�e la soudure, mais l'�etat d'esprit est toujourspr�esent. Linux est n�e de cette passion, et grace �a lui vous disposez d'un syst�eme UNIXpour 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, adoptentce syst�eme d'exploitation pour toutes sortes d'applications techniques, scienti�ques,�educatives, et... bien sur, pour le plaisir aussi.

Mais comment Linux a-t-il pu devenir aussi perfectionn�e et performant, aussi c�el�ebreet appr�eci�e, sans etre d�evelopp�e par une �equipe de professionnels surpay�es? Le FBIdevrait-il ouvrir une enquete 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 rev�e de poss�eder unjour leur propre syst�eme UNIX, a permis de r�ealiser des miracles, chacun apportant sapierre �a l'�edi�ce. Demandez �a n'importe quel d�eveloppeur pourquoi il passe des nuitsenti�eres �a travailler sur les sources de Linux. Tous auront la meme r�eponse : la passionde 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 dulogiciel libre, dans le monde entier. Le libre acc�es aux programmes, avec la possibilit�ede les modi�er et de les distribuer sans restrictions, est consid�er�e par beaucoup commeun droit fondamental de tout utilisateur d'ordinateur ; au meme titre que les droits del'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�eredont votre ordinateur fonctionnera, depuis l'interface utilisateur jusqu'aux pilotes dep�eriph�eriques.

Page 17: Administration Reseau Sous Linux

xviii Pr�eface

Linux a l'�enorme avantage d'etre d�evelopp�e par, et pour ses utilisateurs. Le march�e dulogiciel n'a aucune in uence sur ses orientations : ce sont les besoins des utilisateursqui 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 toutdire, Linux est votre syst�eme d'exploitation personnel, domestique, bien �a vous. Cesera 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.

Page 18: Administration Reseau Sous Linux

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 pouvoirentendre 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, quihabite �a mi-chemin, de faire passer le message. Cette derni�ere solution s'appelle unr�eseau.

Bien sur, nous avons parcouru un long chemin depuis les occupations primaires et lesp�eriph�eriques primitifs de nos lointains ancetres. De nos jours, nous poss�edons desordinateurs qui peuvent communiquer entre eux par l'interm�ediaire d'une vaste toiled'araign�ee de cables, �bres optiques, micro-ondes ou bien d'autres solutions de hautetechnologie, a�n de pouvoir prendre rendez-vous pour le match de football de samediprochain 1. Dans la description qui va suivre, nous verrons les moyens et m�ethodesmis en �uvre, mais nous laisserons de cot�e les cables et la manifestation sportive.

Nous aborderons deux types de r�eseaux dans ce guide : ceux bas�es sur UUCP etceux bas�es sur TCP/IP. Ce sont des ensembles de protocoles et de programmes quipermettent de transf�erer des donn�ees entre deux ordinateurs. Dans ce chapitre, nousverrons les principes de base de chacun de ces r�eseaux.

Nous d�e�nissons un r�eseau comme �etant un ensemble d'hotes capables de communi-quer entre eux, souvent en s'appuyant sur les services d'un certain nombre d'autreshotes sp�ecialis�es qui relayent les donn�ees entre les participants. Ces hotes sont tr�es

1: Dont l'esprit original (voir ci-dessus) appara�t encore de temps en temps en Europe.

Page 19: Administration Reseau Sous Linux

2 Chapitre 1. Introduction aux r�eseaux

souvent des ordinateurs, mais ce n'est pas obligatoire ; ce peut etre tout aussi biendes terminaux X ou des imprimantes intelligentes. Les petits ensembles d'hotes sontappel�es sites.

Toute communication est impossible sans le truchement de quelque sorte de langage,ou de code. Dans le monde des r�eseaux d'ordinateurs, ces codes sont appel�es protocoles.Toutefois, n'associez pas cette notion aux divers langages �ecrits, mais plutot aux codesbien pr�ecis d�e�nissant le comportement �a adopter lors de rencontres o�cielles entrechefs d'�Etats, par exemple. Les protocoles utilis�es dans les r�eseaux informatiques nesont pas autre chose que des r�egles tr�es strictes lors de l'�echange de messages entreplusieurs hotes.

1.2 R�eseaux UUCP

UUCP est l'abr�eviation de UNIX-to-UNIX Copy. C'�etait �a l'origine un ensemble deprogrammes 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 asubi de profondes modi�cations vers la �n des ann�ees 70, mais reste toujours spartiatequant aux services o�erts. Son application principale r�eside encore dans les r�eseaux �alongue distance batis sur des liaisons t�el�ephoniques.

UUCP fut cr�e�e aux laboratoires Bell en 1977, pour permettre �a leurs di��erents sites ded�eveloppement UNIX de communiquer. Vers le milieu de l'ann�ee 1978, ce r�eseau reliaitd�ej�a pr�es de 80 sites, autorisant le courrier �electronique et l'impression �a distance, bienque sa plus grande utilisation fut alors la distribution de nouveaux programmes et decorrections de bogues. Aujourd'hui, UUCP n'est plus con�n�e dans l'environnementUNIX : il en existe des impl�ementations, libres ou commerciales, pour une grandevari�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'unepart, l'�equipement t�el�ephonique limite la vitesse de la liaison �a des valeurs assezfaibles ; et d'autre part, il s'agit rarement de connexions permanentes, chaque hoteappelant ses correspondants �a intervalles r�eguliers. Par cons�equent, chaque fois qu'uncourrier doit traverser un r�eseau UUCP, il reste bloqu�e sur le disque dur de chaquemachine en attendant que la prochaine connexion soit �etablie.

Malgr�e ces limitations, il existe encore de nombreux r�eseaux UUCP en fonctionnementdans le monde entier, exploit�es principalement par des amateurs, qui permettent �a desparticuliers d'obtenir un service pour un prix raisonnable. La raison principale de lapopularit�e d'UUCP, est son prix d�erisoire en comparaison d'une connexion au (( groscable Internet )) : il su�t 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 plusetre isol�e du monde.

Page 20: Administration Reseau Sous Linux

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 �chiersd'une machine vers une autre, mais il permet �egalement d'e�ectuer certaines actionssur le site distant.

Supposons que votre machine poss�ede un acc�es �a un hote hypoth�etique appel�e renux,et que vous vouliez qu'il ex�ecute la commande d'impression lpr pour vous. Vous pouveztaper la commande suivante pour imprimer ce livre sur renux 2 :

$ uux -r renux!lpr !netguide.dvi

Cela fera que le programme uux, une commande de l'ensemble UUCP, plani�era un jobpour le site renux. Ce job consistera �a prendre le �chier netguide.dvi et le passer auprogramme lpr. L'option -r indique �a uux de ne pas appeler imm�ediatement le syst�emedistant, mais de stocker cette requete jusqu'�a ce qu'une connexion soit �etablie. Celas'appelle spouler 3.

UUCP permet aussi de transmettre commandes et �chiers �a travers plusieurs hotes,�a condition que ces derniers l'autorisent. Supposons que renux soit en liaison UUCPavec 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 grouchoet de l'envoyer �a votre site, o�u votre UUCP le recevra sous le nom trip.tgz ; puisvous 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 �etablirale contact avec groucho, il t�el�echargera le �chier. En�n, la derni�ere �etape sera letransfert 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 entreutilisateurs de sites distants, sans se pr�eoccuper de savoir comment se connecter surces hotes. Le travail de routage entre votre machine et le site distant est enti�erementr�ealis�e par le syst�eme de courrier �electronique. Dans un environnement UUCP, lesmessages sont g�en�eralement transport�es en ex�ecutant la commande rmail sur un hotevoisin, en passant l'adresse du destinataire et le contenu du courrier. Le programmermail transmettra �a son tour les donn�ees �a un autre site, et ainsi de suite jusqu'�ace qu'il atteigne la machine de destination. Nous reviendrons l�a-dessus plus en d�etaildans 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...

Page 21: Administration Reseau Sous Linux

4 Chapitre 1. Introduction aux r�eseaux

Les (( News )) peuvent etre d�ecrites comme un genre de messageries BBS 4 distribu�ees.Ce terme d�esigne le plus souvent les News Usenet, qui constituent le plus grand r�eseaud'�echange de messages au monde, avec un nombre de sites connect�es estim�e �a 120 000.Les origines de Usenet remontent �a 1979, o�u apr�es l'introduction d'UUCP avec lenouvel UNIX V7, trois �etudiants imagin�erent un syst�eme d'�echange d'informationsau sein de la communaut�e UNIX. Ils �ecrivirent quelques scripts, qui form�erent le toutpremier syst�eme de News. En 1980, ce r�eseau �etait form�e de trois sites ; duke, uncet 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�epar 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, plusde 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. Lesite r�ecepteur passe ces �chiers au programme rnews, qui les d�ecompacte et assure letraitement n�ecessaire.

En�n, UUCP est �egalement un protocole de choix pour de nombreux sites d'archivagequi o�rent un acc�es public par ligne t�el�ephonique ordinaire. On peut g�en�eralements'y connecter en les appelant par UUCP, sous un nom d'utilisateur invit�e, commeguest, nuucp ou encore uucp, pour t�el�echarger les �chiers publics. Les mots depasse courants pour ce type d'acc�es sont souvent simplement uucp, nuucp, parfoismeme 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 �afaible cout, il est de nombreuses situations o�u sa technique de routage des informationss'av�ere trop rigide, inadapt�ee ; c'est le cas par exemple dans les r�eseaux locaux, ouLAN 5. Ceux-ci sont en g�en�eral constitu�es d'un petit nombre de machines situ�ees dansle meme batiment, voire au meme �etage, interconnect�ees a�n d'o�rir un environnementde travail �etendu, puissant et homog�ene. Des exemples typiques sont le partage de�chiers entre les di��erents hotes, ou l'ex�ecution d'applications partag�ees sur di��erentesmachines.

Ce type d'utilisation n�ecessite une approche totalement di��erente du fonctionnementen r�eseau. Au lieu de transf�erer des �chiers entiers associ�es �a la description des taches �aex�ecuter, toutes les donn�ees sont tron�conn�ees en petits morceaux (paquets), qui sontimm�ediatement exp�edi�es �a l'hote 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.

Page 22: Administration Reseau Sous Linux

1.3. R�eseaux TCP/IP 5

m�ethode s'appelle un r�eseau �a commutation de paquets. Entre autres choses, celapermet 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 ARPANETdevint 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, ettous les hotes du r�eseau durent alors l'utiliser. Lorsque ARPANET �nit par gran-dir et se transformer en Internet (ARPANET en lui-meme ayant cess�e d'exister en1990), 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 communicationst�el�ephoniques num�eriques telles qu'ISDN 6, lui promet l�a aussi un bel avenir.

Pour prendre un exemple concret tout au long des explications qui vont suivre, nousimaginerons 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 encommun et certains en comptent plusieurs. Ils sont tous interconnect�es et reli�es �al'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 localde machines UNIX du D�epartement de Math�ematiques. Pour acc�eder �a un hote duD�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, exactementcomme 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'utiliserl'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 applicationgraphique sous X Window, par exemple un pr�evisualiseur PostScript. Vous devez alorsindiquer �a ce programme que ses fenetres doivent s'a�cher 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.

Page 23: Administration Reseau Sous Linux

6 Chapitre 1. Introduction aux r�eseaux

celui de la machine sur laquelle il s'ex�ecute. Cela se fait en positionnant la variabled'environnement DISPLAY :

$ export DISPLAY=erdos.maths:0.0

Si maintenant vous lancez votre application, elle contactera votre serveur X au lieu decelui de quark, et tout s'a�chera sur votre propre �ecran. Bien sur, il va de soi que vousdevez 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'etresur 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�erede rendre le r�eseau transparent, qui vous permet litt�eralement de monter des hi�erar-chies de r�epertoires depuis d'autres hotes, de telle mani�ere qu'elles vous apparaissentcomme des syst�emes de �chiers locaux. Par exemple, tous les r�epertoires personnelsdes utilisateurs peuvent etre situ�es sur un serveur central depuis lequel chaque hote

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 memer�epertoire. De meme, il est possible de n'installer des applications tr�es gourmandesen place disque (comme TEX) que sur un seul ordinateur et d'exporter ces r�epertoirespour que les autres hotes puissent s'en servir. Nous reviendrons plus en d�etail surNFS dans le chapitre 11.

Bien sur, ce ne sont que quelques exemples simples de ce que vous pouvez r�ealisergrace 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 vospremiers pas.

1.3.2 Ethernet

L'�equipement mat�eriel le plus utilis�e pour la r�ealisation de r�eseaux locaux est ce quel'on appelle l'Ethernet. Il consiste en un simple cable coaxial, sur lequel est connect�echaque hote par l'interm�ediaire de connecteurs, ou de bo�tiers �electroniques nomm�es

transceivers. Les r�eseaux Ethernet sont extremement peu couteux et simples �a instal-ler, et leur vitesse de transfert �etant de 10 m�egabits par seconde, ils rencontrent unsucc�es toujours grandissant.

Il existe trois cat�egories d'Ethernet : �n, gros, et paire torsad�ee. Les deux premiersutilisent un cable 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 aumilieu du cable 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 cable et en connec-tant un transceiver par l'interm�ediaire d'une (( pince vampire )). Ces bo�tiers peuvent

Page 24: Administration Reseau Sous Linux

1.3. R�eseaux TCP/IP 7

supporter un ou plusieurs hotes. Ces deux variantes supportent respectivement desdistances d'utilisation de 200 et 500 m�etres, d'o�u leurs d�enominations : 10base-2 et10base-5. La paire torsad�ee utilise deux �ls de cuivre ordinaires et n�ecessite un bo�tieradditionnel appel�e hub ; elle est connue sous le nom de 10base-T.

Bien que rajouter un hote sur un cable Ethernet �n soit un peu genant, cela n'ar-rete pas le r�eseau : le service est juste interrompu pendant un moment tr�es court, letemps de couper le cable (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 pisquelques 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 cable ne coute que quelquesdizaines de centimes le m�etre. Toutefois, pour de grosses installations, le gros Ethernetest beaucoup plus appropri�e ; il n'est par exemple pas n�ecessaire d'interrompre le tra�cquelques secondes pour connecter une nouvelle machine sur le r�eseau.

La longueur de cable 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 cable Ethernet. En raison de la vitessen�ecessaire, il ne peut pas y avoir plus de quatre r�ep�eteurs entre deux hotes quelconquesdu r�eseau. Les ponts et routeurs sont beaucoup plus sophistiqu�es : ils analysent lesdonn�ees re�cues et ne les retransmettent que lorsque la machine destinataire n'est passitu�ee sur l'Ethernet local.

L'Ethernet se comporte comme un bus, o�u chaque hote peut envoyer des paquets(ou trames) pouvant atteindre 1 500 octets vers une autre machine du meme r�eseau.Chaque ordinateur poss�ede une adresse unique au monde form�ee de 6 octets, inscritedans la carte Ethernet lors de sa fabrication. Ces adresses sont g�en�eralement a�ch�eescomme 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 machinedestinataire l'extrait et l'utilise. Si deux hotes tentent d'envoyer un paquet au mememoment, il se produit une collision, dans ce cas les deux machines abandonnent l'envoiet 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 seulsupport utilis�e. �A l'universit�e Groucho Marx, chaque r�eseau local est reli�e �a la dorsaledu campus (backbone), qui est une �bre optique utilisant FDDI (Fiber Distributed

Data Interface). FDDI utilise une approche totalement di��erente pour transmettre lesdonn�ees, qui consiste �a di�user un certain nombre de jetons, chaque station n'�etantalors autoris�ee �a �emettre une trame que si elle capture un jeton. Le principal avantagede FDDI est la vitesse, pouvant atteindre 100 Mbps, ainsi qu'une longueur de cable

Page 25: Administration Reseau Sous Linux

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 depaquets). X.25 d�e�nit un ensemble de protocoles qui lui sont propres, mais qui sontn�eanmoins utilis�es couramment pour relier des r�eseaux utilisant TCP/IP ou toutautre protocole. Comme les trames IP ne peuvent pas etre converties de fa�con simpleen paquets X.25, la m�ethode employ�ee est l'encapsulation. Chaque paquet IP estencapsul�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 machinesen r�eseau par ondes hertziennes ; il s'agit du packet radio (ou ham radio). Le protocoleutilis�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 sur, vous ne voudriez pas d'un r�eseau limit�e �a un simple brin d'Ethernet. L'id�ealserait que vous puissiez vous connecter partout, quel que soit le mat�eriel utilis�e oule nombre de sous-r�eseaux composant l'installation. L'universit�e Groucho Marx parexemple, 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 enseignantset chercheurs, le second, plus lent et moins bien �equip�e, destin�e aux �etudiants. Tousdeux sont reli�es �a la dorsale FDDI du campus.

Cette connexion est g�er�ee par un hote d�edi�e que l'on appelle alors passerelle ; son roleest de copier les paquets entrants et sortants entre les r�eseaux Ethernet et la �breoptique de l'universit�e. Par exemple, si vous etes au D�epartement Math�ematiques etque vous d�esirez acc�eder �a la machine quark du D�epartement de Physique depuisvotre syst�eme Linux, les programmes r�eseau ne peuvent pas envoyer directement lespaquets �a destination car quark n'est pas sur le meme Ethernet. Les paquets serontdonc envoy�es �a la passerelle qui fera le relais. Celle-ci (appelons-l�a sophus) passerales trames �a la passerelle du D�epartement de Physique (niels) par l'interm�ediaire dela dorsale, et niels les d�elivrera �a la machine destinataire. Le parcours des donn�eesentre 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 dansce 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�erielutilis�e : IP, ou Internet Protocol. Nous d�ecrirons plus en d�etail IP et le routage dansle chapitre 2, page 19.

Page 26: Administration Reseau Sous Linux

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

13

Fig. 1.1 - L'envoi d'un datagramme entre erdos et quark se fait en trois �etapes.

Page 27: Administration Reseau Sous Linux

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��erentsen 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 etl' Internet. Ce dernier terme est le nom o�ciel d'un internet mondial particulier.

Bien sur, IP n�ecessite aussi une m�ethode d'adressage ind�ependante du mat�eriel. Pource faire, on assigne �a chaque hote 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, unpour chaque portion de 8 bits, s�epar�es par des points. Par exemple, quark pourraitavoir une adresse IP de 0x954C0C04, qui serait alors �ecrite 149.76.12.4 ; ce formatest connu sous le nom �evident de notation sur 4 octets, vous verrez aussi tr�es souventl'appellation anglaise dotted quad.

Vous noterez que nous avons maintenant trois types d'adresses di��erents : tout d'abordle nom d'hote, comme quark, puis les adresses IP, et en�n les adresses mat�erielles, les6 octets de l'interface Ethernet. Toutes doivent etre li�ees, de sorte que lorsque voustapez 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 puissed�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 voussu�ra de savoir que ces �etapes se nomment la r�esolution de noms, pour ce qui est defaire correspondre les noms d'hotes en adresses IP, et r�esolution d'adresses, pour lacorrespondance 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 nomde SLIP, Serial Line IP. CSLIP (Compressed SLIP) en est une am�elioration ; il e�ectueune compression des en-tetes IP pour tirer un meilleur parti du d�ebit relativementfaible o�ert par une ligne s�erie 7. PPP, ou Point-to-Point Protocol, est un protocoledi��erent destin�e au meme usage ; il est plus �evolu�e que SLIP. Son principal avantageest de ne pas etre limit�e au transport de datagrammes IP, car il a �et�e con�cu pourtransporter 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 vousconnectez sur quark, vous aurez besoin d'une connexion �able entre votre processusrlogin sur erdos et le shell lanc�e sur quark. Par cons�equent, les informations envoy�eeset 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�erationentra�ne un certain nombre de taches complexes.

7: SLIP est d�ecrit dans le RFC 1055, et CSLIP dans le RFC 1144.

Page 28: Administration Reseau Sous Linux

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�echargerla derni�ere version de XFree86 depuis le serveur ftp de GMU. Le tra�c g�en�er�e peutalors devenir trop important pour la passerelle, si elle est trop lente ou manque dem�emoire. Si �a ce moment, vous envoyez un paquet �a destination de quark, sophuspourrait se trouver �a cours de ressources pendant quelques instants et ne pas pouvoirtraiter vos donn�ees. IP r�esout ce probl�eme d'une fa�con tr�es simple : il �elimine le paquet,qui est irr�em�ediablement perdu. Par cons�equent, la responsabilit�e de v�eri�er l'int�egrit�edes donn�ees transmises, et de les retransmettre en cas d'erreur est celle des hotes encommunication.

Ce role est assur�e par un autre protocole : TCP, ou Transmission Control Protocol, quicr�ee un service �able par-dessus IP, en prenant en charge le controle de la transmission.La propri�et�e la plus importante de TCP est d'utiliser IP a�n de donner l'illusion d'unesimple connexion entre les deux processus distants, de mani�ere �a ce qu'il n'y ait pas �ase pr�eoccuper du routage des donn�ees. Une connexion TCP fonctionne un peu commeun tube bidirectionnel dans lequel chaque programme peut lire et �ecrire. Vous pouvezl'imaginer comme une conversation t�el�ephonique, par exemple.

TCP identi�e chaque bout d'une telle connexion par les adresses IP des hotes concer-n�es, et un num�ero de port sur chacun d'eux. Les ports peuvent etre vus comme despoints d'attache pour les connexions r�eseau. En prenant encore une fois le t�el�ephonecomme exemple, on pourrait comparer les adresses IP aux codes r�egionaux (un num�eropar 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 erdoset 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, rloginde�ectue la proc�edure d'autorisation d'acc�es, puis lance l'ex�ecution du shell. L'entr�eeet la sortie standard de ce dernier sont redirig�ees vers la connexion TCP de sorteque tout ce que vous tapez sur votre machine dans rlogin soit envoy�e au ux TCP etaboutisse �a l'entr�ee standard du shell distant.

1.3.7 Le protocole UDP

Bien sur, TCP n'est pas le seul protocole utilisateur sur un r�eseau TCP/IP. Bien queparfait pour des utilisations comme rlogin, la surcharge induite le rend peu e�cacepour des applications comme NFS, qui utilise plutot le protocole UDP, ou User Data-

gram Protocol. Tout comme TCP, il permet �a un programme de contacter un servicesur un port donn�e de la machine distante, mais il n'�etablit aucune connexion. UDPest 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 centraldu d�epartement, et que vous d�esiriez voir un document d�ecrivant le mode d'emploi deLaTEX. 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.

Page 29: Administration Reseau Sous Linux

12 Chapitre 1. Introduction aux r�eseaux

Toutefois, �etablir une connexion TCP avec galois, envoyer le �chier, puis d�econnecterprendrait bien trop de temps. �A la place, une requete est envoy�ee �a galois, qui envoiealors le �chier dans deux ou trois paquets UDP, ce qui est bien plus rapide. Mais UDPn'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 connexionsr�eseau. Si une application d�esire o�rir un certain service, elle s'attache �a un portet attend les clients (on dit aussi qu'elle �ecoute le port). Un client voulant utiliserce service alloue alors un port sur sa machine locale, puis se connecte �a celui del'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 meme machine distante, toutes utilisant leport 513. TCP est capable de di��erencier les connexions car elles proviennent toutesde di��erents ports ou hotes. Par exemple, si vous avez deux rlogin sur quark depuiserdos, le premier client utilisera le port local 1023, et le second le 1022. Tous deuxse connecteront n�eanmoins au meme port 513 sur quark.

Cet exemple montre l'utilisation des ports en tant que points de rencontre, o�u lesserveurs donnent rendez-vous aux clients d�esirant un service particulier. A�n queces clients sachent quel num�ero de port contacter, les administrateurs des di��erentssyst�emes connect�es doivent se mettre d'accord sur leur assignation. En ce qui concerneles services les plus couramment utilis�es, comme rlogin, ces num�eros doivent etreadministr�es de mani�ere centrale : c'est le role de l'IETF (Internet Engineering Task

Force), qui publie r�eguli�erement un RFC intitul�e Assigned Numbers. Ce documentd�ecrit, entre autres choses, les num�eros de port assign�es aux services les plus connusutilis�es mondialement. Linux utilise, comme beaucoup d'autres syst�emes, un �chiernomm�e /etc/services, qui contient la correspondance entre les noms de ces services etles 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 cesnum�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 taches etdes protocoles que nous venons de d�ecrire succinctement fait g�en�eralement partie dunoyau ; Linux ne fait pas exception �a la r�egle. L'interface de programmation r�eseau

Page 30: Administration Reseau Sous Linux

1.4. Le r�eseau sous Linux 13

la plus courante dans le monde UNIX est la biblioth�eque de sockets de Berkeley. Cenom, 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 vientse (( brancher )) pour r�ealiser la connexion. Cette biblioth�eque o�re la fonction bind

pour sp�eci�er un hote distant, un protocole de transport, et un service auquel unprogramme peut se connecter ou bien �ecouter (grace aux fonctions connect, listen etaccept). Elle est assez g�en�eraliste, en ce sens qu'elle contient non seulement une classede sockets TCP/IP (AF INET), mais �egalement une classe qui permet les connexionslocales �a la machine (les sockets AF UNIX). Quelques impl�ementations comportentmeme 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 Cstandard, libc. �A l'heure actuelle, elle ne supporte que AF INET et AF UNIX, maisd'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 joursans le r�eseau mondial. Aussi, il n'est pas surprenant que tout au d�ebut, plusieurspersonnes aient entrepris de lui apporter les possibilit�es r�eseau n�ecessaires. D�es lestoutes premi�eres versions, il �etait d�ej�a possible d'utiliser UUCP, et le travail surles couches TCP/IP d�ebuta en automne 1992, lorsque Ross Biro et quelques autrescr�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, etFred van Kempen commen�ca �a travailler sur une nouvelle impl�ementation, r�e�ecrivantde 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�emaintenue 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 nombreuxperfectionnements, ce nom fut chang�e en Net-3 apr�es la sortie de Linux 1.0. C'est laversion du code r�eseau actuellement incluse dans les versions o�cielles du noyau, �al'heure o�u nous �ecrivons ces lignes.

Net-3 o�re des pilotes pour une large gamme de cartes Ethernet, aussi bien queSLIP, PPP (pour des connexions r�eseau via une liaison s�erie), et PLIP (pour utiliserle port imprimante parall�ele dans le meme but). Avec Net-3, Linux est dot�e d'uneimpl�ementation de TCP/IP qui se comporte parfaitement bien dans la plupart desenvironnements r�eseaux, avec une �abilit�e d�epassant certains Unix commerciaux pourPC. Le d�eveloppement continue, a�n d'assurer une stabilit�e encore meilleure en toutescirconstances sur les hotes 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, etAlan Cox a �egalement impl�ement�e une partie du protocole IPX de Novell. Mais cedernier projet n'avance pas, car Novell n'a pas l'intention de fournir la documentation

Page 31: Administration Reseau Sous Linux

14 Chapitre 1. Introduction aux r�eseaux

n�ecessaire �a son aboutissement. Andrew Tridgell a r�ealis�e samba, un serveur NetBIOS 9

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 approcheprofond�ement nouvelle des couches r�eseau. Toutefois, on n'a pas entendu parler de cetravail 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�eseaude BSD dans le noyau Linux.

Malgr�e tout, Net-3 semble maintenant destin�e �a rester la version o�cielle. Les (( mo-dules )), qui permettent d'ajouter des pilotes de p�eriph�eriques au noyau pendant lefonctionnement 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 dutemps.

Bien que ces di��erentes impl�ementations des couches r�eseau s'e�orcent d'o�rir lememe 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 avecNet-2e �a l'aide des utilitaires en provenance de Net-2d ou Net-3, et vice versa. Cela nes'applique qu'aux commandes tr�es proches du noyau ; les applications et programmesusuels comme rlogin ou telnet fonctionneront bien sur avec n'importe quelle version.

Quoi qu'il en soit, cette l�eg�ere confusion ne devrait pas vous inqui�eter. �A moins quevous ne participiez activement au d�eveloppement, vous n'aurez pas �a vous soucier deces di��erentes versions de TCP/IP. Les versions o�cielles du noyau seront toujoursaccompagn�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 o�ciel pour Net-3 est sunacm.swan.ac.uk, reprispar 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 travaux d�eriv�es de BSD, parMatthias Urlichs, sont sur ftp.ira.uka.de dans 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 sitenic.funet.� ; qui est repris par de nombreux serveurs 10.

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 couteuses 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.

Page 32: Administration Reseau Sous Linux

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'installationet 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 su�t d'un peu d'attention ; mais certains, comme le courrieret les News, n�ecessitent un entretien de routine. Nous verrons en quoi consistent cesdi��erentes taches d'administration dans les chapitres qui vont suivre.

La maintenance minimale consiste �a regarder r�eguli�erement les �chiers de trace dusyst�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�esautomatiquement par cron �a certaines heures. Les applications importantes, commeC News ou smail, sont souvent fournies avec de tels programmes qu'il ne vous resteplus 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�edans 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�eret quesi vous vous connectez souvent sous ce compte, ce qui est d�econseill�e. Une solutionbien meilleure sera de rediriger le courrier de root vers votre compte personnel end�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, maintenirun 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 etrejoint par courrier �electronique au compte root, mais il existe aussi d'autres adressestraditionnellement utilis�ees pour des aspects ou services sp�eci�ques. Par exemple, toutce 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 encharge de la con�guration r�eseau de base, et du serveur de noms si vous fournissez unDNS.

1.5.1 S�ecurit�e du syst�eme

Prot�eger votre machine et ses utilisateurs des intrus est un aspect tr�es importantde l'administration syst�eme dans un environnement r�eseau. N�egliger ce point peuto�rir de nombreuses cibles aux malfaisants, les attaques pouvant aller de tentativesde d�ecryptage des mots de passe �a l'analyse de datagrammes, avec des cons�equencesdiverses comme courriers falsi��es, destructions de donn�ees ou entrave �a la vie priv�eede vos utilisateurs. Nous mentionnerons quelques-uns de ces probl�emes lorsque nousd�ecrirons le contexte dans lequel chacun peut se produire, et les solutions les pluscourantes employ�ees pour se prot�eger.

Page 33: Administration Reseau Sous Linux

16 Chapitre 1. Introduction aux r�eseaux

Il est �evidemment impossible de d�etailler ici tous les ennuis de s�ecurit�e auxquels vousserez peut-etre confront�e. La lecture d'un ouvrage sp�ecialis�e est absolument n�ecessaire,particuli�erement en environnement r�eseau. Le livre (( Practical UNIX Security )), deSimson 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, parexemple, 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 raisonnabled'utiliser une gestion des mots de passe les rendant plus di�ciles �a deviner. L'ensembleshadow 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 donnerque 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 �aroot ou tout autre utilisateur privil�egi�e que lorsque c'est vraiment n�ecessaire. Si vousd�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 debase depuis le r�epertoire /boot. Toutefois, utilis�e sans restrictions, TFTP permet �an'importe quel utilisateur du monde de t�el�echarger tout �chier de votre machine quisoit lisible par tous. Si ce n'est pas ce que vous d�esirez, pourquoi ne pas restreindrele service TFTP au r�epertoire /boot ? 11.

Dans le meme ordre d'id�ees, vous pouvez restreindre l'acc�es �a certains services �ades utilisateurs de certains hotes, par exemple ceux de votre r�eseau local. Dans lechapitre 9, nous pr�esenterons tcpd, qui permet cette op�eration pour une grande vari�et�ed'applications r�eseaux.

Un autre point tr�es important : �eviter les logiciels �a risque. Bien sur, tous les pro-grammes que vous utilisez peuvent etre dangereux, puisqu'ils peuvent rec�eler desbogues que des personnes malintentionn�ees pourraient exploiter pour p�en�etrer dansvotre syst�eme. Ce genre de situation arrive, et il n'existe malheureusement pas deprotection �a toute �epreuve. Ces probl�emes a�ectent aussi bien les applications dudomaine public que les produits commerciaux 12. Toutefois, les programmes n�eces-sitant des privil�eges particuliers sont fatalement plus dangereux que les autres, carle moindre trou de s�ecurit�e peut avoir de graves cons�equences 13. Si vous installez

11: Nous reviendrons sur ce sujet dans le chapitre 9.

12: Il y a eu des syst�emes UNIX commerciaux (qui coutent 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'arret 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.

Page 34: Administration Reseau Sous Linux

1.5. Maintenance du syst�eme 17

un programme setuid, redoublez de prudence et assurez-vous de ne rien rater de sadocumentation, 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 jamaisvous consid�erer comme totalement �a l'abri. Par cons�equent, vous devez pouvoir d�e-tecter les �eventuels intrus le plus tot possible. La lecture des �chiers de trace dusyst�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�eanmoinsdes outils comme tripwire 14, 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 valeurssont recalcul�ees et compar�ees avec celles pr�ec�edemment trouv�ees a�n de d�etecter toutemodi�cation anormale de ces traces.

14: �Ecrit par Gene Kim et Gene Spa�ord.

Page 35: Administration Reseau Sous Linux

18 Chapitre 1. Introduction aux r�eseaux

Page 36: Administration Reseau Sous Linux

19

Chapitre 2

Le r�eseau TCP/IP

Nous allons maintenant aborder tous les d�etails que vous devrez conna�tre lors de laconnexion de votre syst�eme Linux �a un r�eseau TCP/IP, notamment la gestion desadresses IP, les noms de machines, et le routage. Ce chapitre vous apportera les basesn�ecessaires pour la compr�ehension de ce que n�ecessite une con�guration r�eseau, lessuivants 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 traverslaquelle 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 depaquets.

Pour chaque p�eriph�erique �a connecter au r�eseau, il faut une interface correspondantedans le noyau du syst�eme. Par exemple, les cartes Ethernet sous Linux s'appellenteth0 et eth1, les interfaces SLIP sont sl0, sl1, etc. Ces noms sont utilis�es lors dela con�guration, pour indiquer au noyau �a quel p�eriph�erique physique vous d�esirezacc�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 uneadresse 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 �aune 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 taillemaximale des datagrammes que cette interface particuli�ere peut g�erer, que l'on appelleMaximum Transfer Unit, ou MTU. Nous en verrons bien d'autres plus tard.

Page 37: Administration Reseau Sous Linux

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 leprotocole r�eseau IP sont des nombres de 32 bits. Chaque machine se voit assign�e unnombre unique dans l'environnement : si vous concevez un r�eseau local qui ne partagepas de tra�c TCP/IP avec d'autres r�eseaux, vous pouvez choisir ces nombres selonvos propres crit�eres. Toutefois, pour les sites connect�es �a l'Internet, ces adresses sontfournies par une autorit�e centrale, le Network Information Center, ou NIC 1.

Pour en faciliter la lecture, les adresses IP sont partag�ees en quatre nombres de 8 bitsappel�es octets 2. Par exemple, l'adresse 0x954C0C04, qui est en hexad�ecimal celledu site quark.physique.groucho.edu, s'�ecrira 149.76.12.4. Ce format est souventappel�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 valeurr�eseau, contenue dans les premiers octets, et une valeur hote, dans ceux qui restent.Lorsque vous demandez une adresse o�cielle au NIC, vous n'obtenez pas de valeursindividuelles pour chaque machine que vous comptez connecter : le NIC vous accordeune adresse de r�eseau, et c'est �a vous d'assigner toutes les adresses IP individuellesvalides qu'elle permet, selon vos pr�ef�erences.

En fonction de la taille du r�eseau, la partie hote peut etre plus ou moins grande.Pour faire face aux di��erents besoins, il existe plusieurs classes de r�eseau, d�e�nissantdi��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 valeurr�eseau est contenue dans le premier octet. Cela donne une partiehote 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 valeurr�eseau est contenue dans les deux premiers octets. Elle permet donc16 320 r�eseaux de 65 024 hotes 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 permetpr�es de 2 millions de r�eseaux de 254 hotes.

Classes D, E, et FLes 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 aucunr�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

[email protected].

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.

Page 38: Administration Reseau Sous Linux

2.3. R�esolution des adresses 21

Si nous reprenons l'exemple du chapitre pr�ec�edent, nous pouvons maintenant voirque 149.76.12.4, l'adresse de quark, d�esigne l'hote 12.4 du r�eseau de classe B149.76.0.0.

Vous aurez peut-etre remarqu�e dans la liste ci-dessus que toutes les valeurs possiblespour la partie hote 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 hote sont �a z�erod�esigne le r�eseau en lui-meme, et si les bits sont tous �a 1 il s'agit alors de l'adresse dedi�usion (broadcast). Celle-ci d�esigne simultan�ement toutes les machines connect�eesau r�eseau en question. Par cons�equent, 149.76.255.255 n'est pas une adresse d'hotevalide, 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�eres'appelle la route par d�efaut et la seconde, l'adresse loopback. La route par d�efaut esten rapport avec la fa�con dont sont dirig�es les datagrammes, ce que nous verrons dansla 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�eeinterface loopback, qui se comporte comme un circuit ferm�e. Chaque paquet TCP ouUDP qui lui est transmis, est imm�ediatement retourn�e comme s'il arrivait d'un autrer�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'emploide logiciels utilisant le r�eseau sur la meme machine, ou sur un ordinateur totalementisol�e. Cette situation n'est pas si rare qu'il y para�t : par exemple, beaucoup de sitesUUCP ne disposent d'aucune connectivit�e IP, mais ont besoin de faire fonctionner leserveur 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 devezsans doute vous demander comment elles sont utilis�ees pour acc�eder aux di��erentesmachines. Apr�es tout, le protocole Ethernet identi�e les hotes par un nombre de sixoctets 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 correspondanceles adresses IP et Ethernet : ce protocole se nomme Address Resolution Protocol, ouARP. En fait, ARP n'est pas limit�e �a l'Ethernet, mais est �egalement employ�e surd'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 desgens pour trouver M. Marcel Dugenou dans une foule de 150 inconnus : se promeneren 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 �aenvoyer un datagramme simultan�ement �a toutes les stations pr�esentes sur le r�eseau. Ce

Page 39: Administration Reseau Sous Linux

22 Chapitre 2. Le r�eseau TCP/IP

paquet exp�edi�e par ARP contient une requete pour l'adresse IP en question. Chaquehote 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 extrairel'adresse Ethernet de l'exp�editeur.

Vous pouvez vous demander comment un hote peut atteindre une adresse Internetpouvant 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�eseauEthernet. Toutes ces questions mettent en jeu ce que l'on appelle le routage, quiconsiste �a localiser physiquement un hote dans un r�eseau. Ce sera le sujet de lasection suivante.

Voyons ARP plus en d�etail. Une fois qu'un hote a d�ecouvert une adresse Ethernet, illa stocke dans son cache ARP a�n de ne pas avoir �a la redemander la prochaine foisqu'il devra envoyer un datagramme �a la machine en question. Toutefois, il ne seraitpas judicieux de conserver cette information ind�e�niment ; la machine distante peutchanger de con�guration (changement de carte Ethernet pour des raisons techniquespar 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 forcerune nouvelle requete.

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 unserveur du r�eseau, ce qui est une situation tr�es courante sur les r�eseaux locaux. Cetype de station ne poss�ede pratiquement aucune information sur elle-meme, �a l'ex-ception de son adresse Ethernet : par cons�equent, elle di�use un message demandantaux 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, ilpermet 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 hote �a qui nous voulons envoyer despaquets, en fonction de son adresse IP. Les di��erentes parties de l'adresse sont g�er�eesdi��eremment ; et c'est �a vous de con�gurer correctement les �chiers qui indiquentcomment 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 lad�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

Page 40: Administration Reseau Sous Linux

2.4. Routage IP 23

destinataire. L'avantage de cette m�ethode hi�erarchique est �evident : quelle que soit ladestination, la poste locale saura dans quelle direction diriger la lettre, mais n'aurapas �a se soucier de savoir comment elle voyagera une fois qu'elle aura atteint le paysde destination.

Les r�eseaux IP sont structur�es de fa�con similaire. L'Internet consiste en un certainnombre de r�eseaux particuliers, appel�es syst�emes autonomes. Chaque syst�eme e�ectuetout le routage n�ecessaire entre ses hotes internes de telle mani�ere que l'envoi d'undatagramme se r�eduise �a trouver un chemin vers le r�eseau sur lequel se trouve l'hotedestinataire. Cela signi�e qu'aussitot que le paquet est pass�e �a n'importe quel hotede ce r�eseau particulier, le reste du traitement est exclusivement r�ealis�e par ce r�eseaului-meme.

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 hote, comme nous l'avons expliqu�e plus haut. Par d�efaut, le r�eseau dedestination est d�eriv�e de la partie r�eseau de l'adresse IP. Par cons�equent, les hotespour lesquels ce nombre est le meme doivent se trouver sur le meme r�eseau, et r�eci-proquement 3.

Il est alors logique d'o�rir un sch�ema similaire �a l'int�erieur du r�eseau, puisqu'il peutlui-meme consister en un ensemble de centaines de r�eseaux plus petits, la plus petiteunit�e �etant des r�eseaux physiques comme l'Ethernet. Par cons�equent, IP permet desubdiviser un r�eseau IP en plusieurs sous-r�eseaux.

Un sous-r�eseau prend la responsabilit�e de d�elivrer les datagrammes pour une certaineplage d'adresses IP appartenant au r�eseau IP dont il fait partie. Tout comme dans lesclasses A, B, ou C, il est identi��e par la partie r�eseau des adresses IP. Toutefois, cettepartie r�eseau est alors �etendue en incluant quelques bits de la partie hote. Le nombrede bits qui seront interpr�et�es en tant que valeur de sous-r�eseau est donn�e par ce quel'on appelle le masque de sous-r�eseau ou masque r�eseau, en anglais netmask. Il s'agitaussi d'un nombre sur 32 bits, qui sp�eci�e le masque de bits pour la partie r�eseau del'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 parcons�equent 255.255.0.0.

A l'int�erieur, il est en fait constitu�e de plusieurs r�eseaux plus petits, comme ceux desdi��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�eoriques'est vu assigner 149.76.12.0. La dorsale du campus est aussi un r�eseau, auquel ona attribu�e l'adresse 149.76.1.0. Ces sous-r�eseaux partagent la meme valeur r�eseau,bien que le troisi�eme octet soit utilis�e pour les distinguer entre eux. Ils utiliseront unmasque 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.

Page 41: Administration Reseau Sous Linux

24 Chapitre 2. Le r�eseau TCP/IP

149 76 12 4

149 76 12 4

Partie r�eseau Partie hote

Partie r�eseau Partie hote

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 commesous-r�eseau.

Il faut bien avoir �a l'esprit que la subdivision de r�eseaux n'est qu'une division interne.Les sous-r�eseaux sont cr�e�es par le propri�etaire du 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 cettestructure 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. Lepoint de vue d'un hote 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 memer�eseau local. Tous les autres hotes ne lui sont accessibles qu'�a travers ce que l'onappelle une passerelle. Une passerelle est un hote qui est connect�e physiquement �a deuxr�eseaux (ou plus) simultan�ement, et qui est con�gur�e sp�ecialement pour permettred'�echanger des paquets entre eux.

Pour que IP puisse facilement savoir si un hote est sur un r�eseau local physique, cesdi��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 hotes du r�eseau local du D�epartement deMath�ematiques. Lors de l'envoi d'un datagramme vers quark, les logiciels r�eseau deerdos d�eduisent imm�ediatement de l'adresse IP 149.76.12.4 que l'hote destinataireest situ�e sur un r�eseau physique di��erent, et par cons�equent ne sera joignable que parune passerelle (sophus par d�efaut).

Page 42: Administration Reseau Sous Linux

2.4. Routage IP 25

Cette machine passerelle, sophus, est connect�ee �a deux sous-r�eseaux distincts : celuidu D�epartement de Math�ematiques et la dorsale du campus. Il acc�ede �a chacun d'euxpar une interface di��erente, qui sont respectivement eth0 et fddi0. Mais alors, quelleadresse 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 hotes du D�epar-tement de Math�ematiques, sophus devra utiliser une adresse IP de 149.76.4.1, etavec 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 adressesde 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�eesavec leurs deux adresses IP.

La plupart du temps, vous pouvez ignorer la di��erence entre l'adresse IP d'un hoteet son interface. Pour ceux qui ne sont que sur un seul r�eseau, comme erdos, vouspourrez dire que cette machine a telle ou telle adresse IP, bien qu'en r�ealit�e ce soit soninterface Ethernet qui ait cette adresse. Mais la distinction n'est vraiment importanteque pour les passerelles.

2.4.4 La table de routage

Nous allons maintenant concentrer notre attention sur la mani�ere dont IP choisit unepasserelle 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'adressede destination et s'aper�coit qu'elle n'est pas sur le r�eseau local. Par cons�equent, ilenvoie le paquet �a la passerelle par d�efaut sophus, qui est alors confront�ee au memeprobl�eme. Sophus voit que quark ne fait partie d'aucun des r�eseaux sur lesquels elleest 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 : sophusa donc besoin d'informations lui permettant d'associer un r�eseau destinataire �a unepasserelle ad�equate.

Les informations de routage qu'IP utilise pour cela consistent en une table indiquantles r�eseaux et les passerelles n�ecessaires pour les atteindre. De plus, une route par

Page 43: Administration Reseau Sous Linux

26 Chapitre 2. Le r�eseau TCP/IP

sophus niels

quarkerdos

12.44.17

gauss

4.1 12.1

1.4 1.12

4.0 12.0

4.23

gcc11.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.

Page 44: Administration Reseau Sous Linux

2.4. Routage IP 27

d�efaut doit g�en�eralement etre indiqu�ee ; il s'agit d'une entr�ee associant une passerelleau r�eseau 0.0.0.0. Tous les paquets destin�es �a un r�eseau inconnu seront exp�edi�es parce 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 pasbesoin 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 depetits r�eseaux, la meilleure m�ethode est de le faire manuellement et de les positionnerpar la commande route lors de l'amor�cage des syst�emes (voir le chapitre 5). Sur lesgrands r�eseaux, elles sont ajust�ees en cours de fonctionnement par des programmesqui 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 protocolesde 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 fautfaire 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�esdans le d�emon gated de l'universit�e de Cornell 4.

2.4.5 Valeurs m�etriques

Le routage dynamique bas�e sur RIP choisit le meilleur chemin vers un hote ou unr�eseau en fonction du nombre de (( sauts )) (hops), c'est-�a-dire le nombre de passerellestravers�ees pour amener un datagramme �a destination. Plus ce chemin est court, mieuxil est not�e par RIP. Lorsqu'il est trop long, 16 sauts ou plus, il est consid�er�e commeinutilisable et �elimin�e.

Pour utiliser RIP a�n de g�erer les informations de routage internes �a votre r�eseau local,il faut que le programme gated soit en service sur chaque hote. Au d�emarrage, gatedteste toutes les interfaces r�eseau actives. S'il en trouve plus d'une (loopback exclue), ilconsid�ere que cette machine sert de passerelle entre di��erents r�eseaux et devient alorsactif, �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.

Page 45: Administration Reseau Sous Linux

28 Chapitre 2. Le r�eseau TCP/IP

attendant la r�eception de mises �a jour RIP pour modi�er la table de routage localede mani�ere appropri�ee.

Lors de la di�usion des informations sur la table locale, gated d�etermine la longueurdu chemin �a partir de la valeur m�etrique associ�ee avec chaque entr�ee. Cette valeurest initialis�ee par l'administrateur syst�eme lors de l'�etablissement de la route et doitre �eter le prix de revient de ce chemin particulier. Par cons�equent, la valeur m�etriqued'une route vers un sous-r�eseau dont l'hote est directement connect�e doit toujoursvaloir z�ero, alors qu'une route passant par deux passerelles aura la valeur deux. Notezque vous n'avez toutefois pas �a vous soucier de cette valeur m�etrique si vous n'utilisezjamais 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 controle

de messages, Internet Control Message Protocol. ICMP est utilis�e par les couchesr�eseau du noyau pour communiquer des messages d'erreurs aux autres hotes. Parexemple, supposons que vous etes une nouvelle fois sur erdos et d�esirez lancer untelnet 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 coucher�eseau se rendra imm�ediatement compte de cet �etat de fait et renverra un messageICMP �a erdos disant (( Port Unreachable )), soit (( Port inaccessible )).

ICMP sait traiter un certain nombre de messages, dont beaucoup sont des conditionsd'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 hote esten train d'utiliser la machine comme passerelle, alors qu'il existe une route bien pluscourte. Par exemple, apr�es le d�emarrage de sophus, sa table de routage peut etreincompl�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 gcc1plutot 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 choixde 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, quece soit par RIP ou les redirections ICMP, n'est pas toujours une bonne id�ee : cesprotocoles ne vous o�rent que tr�es peu, voire aucune possibilit�e de v�eri�cation del'authenticit�e des informations de routage. Des utilisateurs malintentionn�es peuventarriver �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 redirectiona�ectant des routes r�eseaux comme s'il ne s'agissait que des routes d'hotes.

Page 46: Administration Reseau Sous Linux

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 techniquesam�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 plutot que d'inventerdes noms batards 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 di�cilement m�emorisables, les hotes sontg�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 trouver l'adresse IP d'un hote donn�e, il s'appuie surles fonctions gethostbyname(3) et gethostbyaddr(3). Traditionnellement, celles-ci sontgroup�ees avec quelques autres de la meme 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�eralr�ef�erence �a ces fonctions en parlant du (( resolver )).

Sur un petit r�eseau, il n'est pas tr�es di�cile de maintenir des tables de correspondancesentre 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'hotes, ouen cas de r�eassignation d'adresse, il su�t de mettre �a jour le �chier hosts sur toutes lesmachines. Il est �evident que cette op�eration devient quasi impossible sur des r�eseauxcompos�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 raisonshistoriques). 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 approchen'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 ladistribuer �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, etdevait 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 du �a la n�ecessit�ed'installer HOSTS.TXT r�eguli�erement, la charge des serveurs le di�usant devint vitetrop �elev�ee. Pis encore, tous les noms devaient etre enregistr�es aupr�es du NIC, quidevait s'assurer que tous soient bien uniques.

Page 47: Administration Reseau Sous Linux

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'hotes en une hi�erarchie de domaines. Un domaine est unensemble de sites qui ont une certaine relation entre eux ; ils peuvent former un r�eseauparticulier (toutes les machines d'un campus par exemple), ou bien tous appartenir�a une organisation particuli�ere (comme le Gouvernement fran�cais) ou encore, etretout simplement proche g�eographiquement parlant. Aux USA par exemple, toutes lesuniversit�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 ledomaine groucho.edu, et son D�epartement de Math�ematiques pourrait etre baptis�emaths.groucho.edu. Les hotes du d�epartement verraient alors leur nom ajout�e �atout 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 demani�ere unique cet hote aux yeux du monde entier.

.

com

gauss

upniels

maths

sophuserdos

down strangeottoquark

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�eroot domain. Pour indiquer qu'un nom d'hote est FQDN (c'est-�a-dire compl�etement

Page 48: Administration Reseau Sous Linux

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 premierniveau (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 quevous rencontrerez tr�es souvent :

edu Sites en rapport avec l'�education (coll�eges, universit�es...).

com Entreprises commerciales.

org Organisations priv�ees non commerciales. Beaucoup de r�eseaux UUCPpriv�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 O�ciellement, tous les noms de sites d�epourvus de domaines utilis�esen UUCP ont �et�e plac�es dans ce domaine.

Techniquement, les quatre premiers appartiennent aux �Etats-Unis, mais vous pourrezquand meme rencontrer des sites d'autres pays dans ces domaines ; en particulier dansnet. En revanche, mil et gov sont exclusivement am�ericains.

En dehors des USA, chaque �etat utilise g�en�eralement un domaine de premier niveaubien �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'Australieau. En dessous, chaqueNIC est libre d'organiser les 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 longsrepr�esentant directement les organismes g�erant des domaines particuliers. Il n'est pasrare de rencontrer des noms d'hotes comme ftp.informatik.uni-erlangen.de. Lalangue allemande fonctionne de meme, para�t-il...

Bien sur, 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 unebranche 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 : grace auDNS, un nom d'hote n'a besoin de rester unique qu'�a l'int�erieur de son domaine pour

Page 49: Administration Reseau Sous Linux

32 Chapitre 2. Le r�eseau TCP/IP

qu'il soit �egalement unique au monde. De plus, les domaines quali��es sont facilementm�emorisables. Ces deux raisons su�sent d�ej�a pour vouloir s�eparer un grand domaineen 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 peuventpar exemple cr�eer un sous-domaine par d�epartement, nous avons d�ej�a rencontr�e ce casavecmaths et physique. Lorsqu'ils trouveront le r�eseau du D�epartement de Physiquetrop grand et trop complexe �a administrer, et di�cile �a appr�ehender de l'ext�erieur,ils pourront simplement passer le controle du domaine physique.groucho.edu auxadministrateurs de ce sous-r�eseau. Ceux-ci seront alors libres de d�ecider des nomsde machines voulus et de leur assigner des adresses IP de leur r�eseau comme ilsl'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.educomprend 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 duD�epartement de Math�emathiques par exemple. Les hotes du D�epartement de Physiqueappartiennent �a une zone di��erente, physique.groucho.edu. Dans la �gure 2.3, led�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 centralecontrolant quels noms sont assign�es �a quelle machine, comment diable une petiteapplication saura-t-elle se d�ebrouiller ?

C'est l�a qu'intervient la partie la plus ing�enieuse du DNS. Si vous voulez trouverl'adresse IP de erdos, le DNS vous dira d'aller la demander �a ceux qui la g�erent, careux sauront vous l'indiquer.

En fait, le DNS est une base de donn�ees distribu�ee g�eante. Elle est impl�ement�ee parce que l'on appelle des serveurs de noms, qui d�elivrent les informations relatives �a undomaine 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 hotesde cette zone. Pour obtenir l'adresse IP de erdos, tout ce que vous avez �a faire estde contacter le serveur de noms pour la zone groucho.edu, qui vous retournera lesdonn�ees d�esir�ees.

Facile �a dire, devez-vous penser. Mais comment saurai-je contacter ce serveur denoms de l'universit�e Groucho Marx? Et bien au cas o�u votre ordinateur ne seraitpas �equip�e d'une boule de cristal, le DNS saura aussi vous o�rir ce service. Lorsquevotre application a besoin d'obtenir des informations sur erdos, elle contacte unserveur de noms local, qui e�ectue alors une requete it�erative. Il commence par envoyerau serveur de noms du domaine du plus haut niveau, une demande d'adresse de

Page 50: Administration Reseau Sous Linux

2.6. DNS : Le Domain Name System 33

erdos.maths.groucho.edu. Celui-ci reconna�t que ce nom n'appartient pas �a sa zoned'autorit�e, mais plutot �a l'une situ�ee en dessous du domaine edu. Par cons�equent, ilindique de contacter un serveur de noms de cette zone et joint �a sa r�eponse la liste detous ces serveurs, avec leurs adresses. Votre serveur de noms local contactera alors l'und'entre eux, par exemple a.isi.edu. Celui-ci �a son tour, indiquera que groucho.eduposs�ede sa propre zone et renverra les adresses des serveurs de noms concern�es. Leserveur de noms local pr�esentera alors sa requete pour l'adresse de erdos �a l'un d'entreeux, qui, �nalement, reconna�tra que ce nom appartient �a sa zone et pourra retournerl'adresse IP correspondante.

Tout cela peut para�tre g�en�erer beaucoup 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 auraitfallu 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 requetes suivantes, le serveur de nomsstocke les informations obtenues dans son cache local. Ainsi, la prochaine fois quequelqu'un, sur votre r�eseau local, d�esire trouver l'adresse d'une machine du domainegroucho.edu, votre serveur de noms n'aura pas besoin de recommencer toute laproc�edure, et ira directement se connecter au serveur de noms de groucho.edu 5.

Bien sur, le serveur de noms ne conservera pas cette information ind�e�niment, maiselle sera supprim�ee au bout d'un certain temps. La dur�ee de vie des informationscontenues dans le cache est appel�ee time to live, ou TTL. Elle est positionn�ee par lesadministrateurs responsables de chaque zone.

2.6.4 Serveurs de noms

Les serveurs de noms qui contiennent toutes les informations relatives aux hotes d'unezone particuli�ere sont dits ayant autorit�e pour cette zone et sont quelquefois quali��esde serveurs de noms autoritatifs 6. Toute requete 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�erente d'une zone, ses serveurs ma�tres doivent etreparfaitement synchronis�es. Ceci est r�ealis�e en faisant de l'un d'entre eux un serveurprimaire, qui charge les informations sur sa zone depuis des �chiers de donn�ees, alorsque les autres deviennent serveurs secondaires, qui transf�erent leurs informations �aintervalles r�eguliers depuis le serveur primaire.

L'emploi de plusieurs serveurs de noms permet de distribuer la charge de travail, etd'obtenir une certaine redondance des informations. Si l'un des serveurs a un probl�emequelconque, comme la perte de connexion r�eseau ou un arret 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 requete 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, meme s'il s'agit d'un barbarisme.

Page 51: Administration Reseau Sous Linux

34 Chapitre 2. Le r�eseau TCP/IP

requetes aboutiront aux autres serveurs. Bien entendu, ce sch�ema ne met pas �a l'abride dysfonctionnements produisant des r�eponses erron�ees �a toutes les requetes DNS,comme des bogues dans le programme lui-meme par exemple.

Bien sur, vous pouvez aussi utiliser un serveur de noms qui n'a autorit�e sur aucundomaine domaine 7. Ce type de serveur peut n�eanmoins etre utile, car il est toujourscapable de g�erer des requetes DNS pour les applications fonctionnant sur le r�eseaulocal, 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 dedonn�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�eseauauquel il s'applique. Cette derni�ere permet di��erents sch�emas d'adressage, comme lesadresses 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 sur, une machine peut avoir plusieurs noms. Toutefois, un seul de ces nomsdoit etre d�eclar�e comme nom o�ciel, ou nom canonique, alors que les autres sontsimplement des alias s'y r�ef�erant. La di��erence est que le nom canonique est celui quiest associ�e avec l'enregistrement A, les autres faisant l'objet d'un enregistrement detype 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 plutot vous donner un bref exemple. La �gure 2.4 montre unepartie de la base de donn�ees qui est charg�ee dans les serveurs de noms de la zonephysique.groucho.edu.

En dehors des enregistrements A et CNAME, il y en a un d'un type particulier enhaut du �chier, qui s'�etend sur plusieurs lignes. C'est le resource record SOA, signalantle d�ebut d'autorit�e, Start Of Authority, qui contient l'information g�en�erale sur la zonepour laquelle le serveur a autorit�e. Il comprend, entre autres, le temps par d�efautpendant lequel tous les enregistrements doivent etre conserv�es.

Notez que tous les noms dans ce �chier d'exemple, qui ne se terminent pas par unpoint, doivent etre interpr�et�es comme relatifs au domaine groucho.edu. Le nomsp�ecial (( @ )) utilis�e dans le SOA correspond au nom du domaine lui-meme.

Nous avons vu plus haut que les serveurs de noms du domaine groucho.edu doiventavoir connaissance de la zone physique de sorte qu'ils puissent pointer les requetes

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.

Page 52: Administration Reseau Sous Linux

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.

Page 53: Administration Reseau Sous Linux

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 associeune adresse �a ce nom. Puisque ces enregistrements sont ce qui relie le tout pour quel'espace de nommage soit maintenu unique et coh�erent, ils sont souvent appel�es gluerecords (enregistrements-colle). Ce sont les seuls endroits o�u une zone contient desinformations sur les hotes de la zone inf�erieure. Les glue records pointant vers lesserveurs 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 Requetes inverses

Au lieu de rechercher une adresse IP appartenant �a un hote, on peut parfois avoirbesoin de l'inverse, c'est-�a-dire de trouver le nom canonique correspondant �a uneadresse. C'est ce qu'on appelle la requete inverse (reverse mapping) qui est utilis�ee pardi��erents services r�eseau pour v�eri�er l'identit�e d'un client. Lorsque l'on ne poss�edequ'un simple �chier hosts, la recherche inverse consiste simplement �a trouver la ligneo�u �gure la machine et prendre l'adresse IP qui s'y trouve. Avec le DNS, il est horsde 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 lesadresses de toutes les machines en notation invers�ee. Par exemple, une adresse IP de149.76.12.4 correspond au nom 4.12.76.149.in-addr.arpa. Le RR type reliant cesnoms �a leurs noms canoniques est PTR.

La cr�eation d'une zone d'autorit�e signi�e g�en�eralement que ses administrateurs ontre�cu le controle total de l'assignation des adresses. Puisqu'ils ont en principe un ouplusieurs r�eseaux IP ou sous-r�eseaux �a leur disposition, il y a une subdivision entre leszones DNS et les r�eseaux IP. Le D�epartement de Physique, par exemple, comprendles sous-r�eseaux 149.76.8.0, 149.76.12.0, et 149.76.14.0.

Page 54: Administration Reseau Sous Linux

2.6. DNS : Le Domain Name System 37

En cons�equence, de nouvelles zones du domaine in-addr.arpa doivent etre cr�e�eesavec 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 adressesoit int�egr�ee dans leur �chier de la zone in-addr.arpa.

La base de donn�ees de la zone pour le sous-r�eseau 12 est montr�ee dans la �gure 2.6. Lesglue 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 peuventetre 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�eseaux de l'universit�e GrouchoMarx ont un masque de 255.255.255.0, par cons�equent une zone in-addr.arpa peutetre 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

Page 55: Administration Reseau Sous Linux

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�een deux zones d'autorit�e, avec des hotes r�epartis de 1 �a 127, et 128 �a 255.

Page 56: Administration Reseau Sous Linux

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 depilotes de p�eriph�eriques.

Tout d'abord, il y a bien sur l'�equipement lui-meme, par exemple la carte Ethernet :C'est une plaque de r�esine Epoxy, peupl�ee de nombreux composants �electroniques, etins�er�ee dans un des nombreux connecteurs d'extension de votre PC. Elle constitue ceque l'on nomme g�en�eralement un p�eriph�erique.

Pour que vous puissiez utiliser cette carte Ethernet, le noyau de Linux doit contenirdes 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 despilotes pour plusieurs marques de cartes Ethernet qui se ressemblent beaucoup. Ilssont connus en tant que (( s�erie Becker )), du nom de leur auteur, Donald Becker. Unexemple di��erent, le pilote D-Link g�ere un adaptateur de poche D-Link qui se branchesur le port parall�ele du PC.

Mais, lorsque nous disons qu'un pilote (( g�ere )) un p�eriph�erique, qu'entendons-nous parl�a ? Revenons �a la carte Ethernet que nous examinions tout �a l'heure. Le pilote doitetre capable de communiquer par un moyen quelconque avec la logique pr�esente surce 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�emoiredestin�ee aux entr�ees/sorties (E/S) qui donne acc�es aux registres de la carte. Toutes

Page 57: Administration Reseau Sous Linux

40 Chapitre 3. Con�guration de l'�equipement r�eseau

eth2eth0 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.

Page 58: Administration Reseau Sous Linux

3.1. P�eriph�eriques, pilotes, etc. 41

les commandes et les donn�ees que le noyau envoie doivent passer par ces registres. Lam�emoire d'E/S est g�en�eralement d�ecrite en donnant son adresse de d�epart, ou adressede 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 noyauteste ces caract�eristiques lors de l'amor�cage pour tenter de d�etecter les p�eriph�eriquesinstall�es. Il lit plusieurs adresses m�emoire et compare les donn�ees trouv�ees avec cequ'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 cartesEthernet bon march�e qui ne sont pas des clones parfaits des r�ealisations standardd'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 explicitementau noyau.

Vous pourrez aussi parfois etre oblig�e d'indiquer au noyau un autre param�etre : laligne d'IRQ (interruptions mat�erielles). Les p�eriph�eriques g�en�erent une interruptionpour 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�eriqueest 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�eriquepar l'interm�ediaire d'une interface. Les interfaces sont des parties logicielles qui o�rentun ensemble de fonctions communes pour tout type de mat�eriel, comme l'envoi ou lar�eception de datagrammes.

On les identi�e par des noms, d�e�nis directement �a l'int�erieur du noyau ; ce ne sont pasdes �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 desinterfaces 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, lasuivante eth1, et ainsi de suite. Les interfaces SLIP et PPP sont g�er�ees di��eremmentdes 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 a�che quels sont les p�eriph�eriques qu'il a pu d�etecteret le nom des interfaces qu'il leur a assign�e. Voici un tout petit extrait de ce que l'onpeut 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 memes, 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.

Page 59: Administration Reseau Sous Linux

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 comprenddes pilotes pour SLIP, CSLIP et PPP. La troisi�eme ligne en partant de la �n indiquequ'un adaptateur D-Link a �et�e d�etect�e et install�e en tant qu'interface dl0. Si vousavez une carte Ethernet, le noyau a�chera une ligne commen�cant par eth0, suivie parle 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 [email protected]

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 noyaucontient toutes sortes de pilotes pr�econ�gur�es dont vous n'aurez jamais besoin, maisqui gachent 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 dontvous aurez r�eellement besoin.

Avec Linux, vous devrez vous habituer �a recompiler le noyau. Cette op�eration estd�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 ler�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 incapablede travailler en r�eseau).

Page 60: Administration Reseau Sous Linux

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 chosescommes les pilotes SCSI, etc. Suivra une liste de questions concernant le support dur�eseau. Ces options sont en constante �evolution au fur et �a mesure du d�eveloppementdu noyau et de nouveaux pilotes, aussi ce que vous verrez s'a�cher chez vous pourradi��erer l�eg�erement de ce que vous lirez ici. Typiquement, la liste des options o�ertespar 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 soitle 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 ferontl'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 uneam�elioration, les en-tetes TCP/IP sont compress�es. Notez que cette option ne validepas automatiquent CSLIP, mais inclut les fonctions n�ecessaires dans le noyau pourpouvoir l'utiliser �eventuellement.

PPP est un autre protocole utilis�e pour r�ealiser une liaison r�eseau �a travers des liaisonss�erie. Il est bien plus souple que SLIP et n'est pas limit�e �a IP ; il peut tranf�erern'importe quel type de paquet r�eseau. Si cette option n'appara�t pas chez vous, c'estque 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 desPC fonctionnant sous MS-DOS, ou sur des machines portables d�epourvues de cartesEthernet.

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 deplus en plus de questions ajout�ees �a cette section. Si vous d�esirez r�ealiser un noyauutilisable sur plusieurs machines �equip�ees de cartes di��erentes, vous pouvez validerplusieurs pilotes.

NE2000/NE1000 support (CONFIG_NE2000) [y]

WD80*3 support (CONFIG_WD80x3) [n]

Page 61: Administration Reseau Sous Linux

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�gurationvous 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, directementconnect�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 sonapparition, la proc�edure de con�guration a l�eg�erement chang�e. La section concernantles 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 optionspossibles.

*

* 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 deuxr�eseaux Ethernet, ou encore entre un r�eseau et un lien SLIP/PPP. Bien qu'il n'y aitaucun inconv�enient majeur �a laisser cette possibilit�e en service, vous pouvez pr�ef�ererne pas la valider a�n de con�gurer votre machine en tant que �rewall. Les Firewallssont des hotes connect�es �a deux r�eseaux ou plus, mais qui ne routent aucun tra�centre eux. Ils sont couramment employ�es pour o�rir des acc�es Internet �a moindres

Page 62: Administration Reseau Sous Linux

3.2. Con�guration du noyau 45

risques pour le r�eseau local interne. Les utilisateurs sont autoris�es �a se connecter surle �rewall et acc�eder ainsi �a l'Internet, mais les machines locales sont prot�eg�ees detoute 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 dePC/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, maisles 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 leuradresse IP au d�emarrage. Vous ne devez valider RARP que si vous compter utiliserde 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 hotes pouvant etre atteints par unr�eseau local comme l'Ethernet, il cr�eera des paquets plus grands que pour ceux quivont parcourir une longue distance 2. Si vous ne validez pas SNARL ((( SubNets AReLocal )), les sous-r�eseaux sont locaux), le noyau consid�erera qu'un r�eseau n'est localque s'il y a une interface y �etant directement rattach�ee. Toutefois, si vous regardez ler�eseau de classe B de l'universit�e Groucho Marx, la totalit�e de cette classe B est locale,mais la plupart des hotes sont interfac�es avec seulement un ou deux sous-r�eseaux. Sivous validez SNARL, le noyau pourra consid�erer que tous les sous-r�eseaux sont locauxet utiliser de grands paquets avec toutes les machines du campus.

Si vous avez besoin de paquets de plus petite taille en direction de certains hotes (parceque les donn�ees passent par exemple par une liaison modem SLIP), vous pourrez lefaire grace �a l'option mtu de la commande route, qui est bri�evement d�ecrite �a la �nde 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�erementpetits, 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.

Page 63: Administration Reseau Sous Linux

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 desliaisons lentes, comme celles r�ealis�ees par modem, ils constituent une perte de d�ebitimportante. Cet algorithme tente d'�eviter ce ph�enom�ene en retenant la transmissionde donn�ees TCP quelques instants, en certaines circonstances. Vous n'aurez besoin desupprimer cette fonction que si vous avez de s�erieux et fr�equents probl�emes de pertede datagrammes.

The IPX protocol (CONFIG_IPX) [n]

Cette option valide le support de IPX, le protocole de transport utilis�e par les r�eseauxNovell. 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 lesdi��erentes couches de ce protocole, qui n'est pas du domaine public : les sp�eci�cationssont vendues �a un prix inadmissible, et selon une clause de non-divulgation. Si lasituation se d�ebloque, il sera peut-etre possible dans l'avenir d'�echanger des donn�eesavec 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 suivanteappara�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 oureli�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 liaisonEthernet, d'avoir une interface correspondant en permanence �a votre adresse IP. Voustrouverez des explications plus d�etaill�ees sur le sujet dans la section The DummyInterface 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�eseausous Linux. La plupart des pilotes supportent plus d'une interface, dans ce cas celles-cisont 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 quelquesapplications r�eseau. Elle fonctionne comme un circuit ferm�e dans le-quel tout datagramme �ecrit sera imm�ediatement retourn�e �a la couche

Page 64: Administration Reseau Sous Linux

3.4. Installation Ethernet 47

r�eseau du syst�eme. Il y a toujours une interface loopback pr�esente dansle noyau, et il n'y a que peu d'int�eret �a en disposer de plusieurs.

eth0, eth1: : : Cartes Ethernet. Il s'agit du nom g�en�erique de la plupart de cesp�eriph�eriques.

dl0, dl1: : : Ces interfaces permettent d'acc�eder �a un adaptateur de poche D-LinkDE-600, un autre p�eriph�erique Ethernet. Il est un peu sp�ecial, en cesens 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�uelles sont allou�ees pour une liaison SLIP. Le noyau supporte jusqu'�aquatre 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 �achaque port s�erie pass�e en mode PPP. Pour l'instant, il peut y enavoir jusqu'�a quatre, ou plus en modi�ant l�eg�erement le code source.

plip0, plip1: : : Interfaces PLIP, permettant de transporter des datagrammes IP parles ports imprimante parall�ele. Jusqu'�a trois interfaces de ce typesont support�ees ; elles sont allou�ees par le pilote PLIP au moment del'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 (quisont en stade alpha de d�eveloppement), ou autres, de nouveaux noms feront leurapparition.

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 ([email protected]),auteur d'une famille de pilotes pour les cartes construites autour du circuit 8390de National Semiconductor, connue maintenant sous le nom de (( s�erie Becker )). Ily 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 ([email protected]).

3.4.1 Cablage Ethernet

Si vous installez un r�eseau Ethernet pour la premi�ere fois de votre vie, quelques motssur son cablage ne seront pas de trop ici. L'Ethernet est tr�es sensible �a la qualit�e desliaisons ; le cable doit etre termin�e �a chacun des deux bouts par une r�esistance de 50 ,

Page 65: Administration Reseau Sous Linux

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 vousemployez un cable coaxial avec des connecteurs en (( T )), ces connecteurs doivent etrebranch�es directement sur la carte Ethernet : vous ne devez jamais ins�erer un cable �acet endroit.

Si vous vous connectez sur un (( gros )) Ethernet, vous devrez brancher votre machinepar 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 ilest aussi possible d'employer un cable 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 ledocument (( Ethernet HOWTO )), qui est post�e tous les mois dans le forum Usenetcomp.os.linux.anwers, par Paul Gortmaker 3.

La liste ci-dessous contient les cartes les plus connues support�ees par Linux. La listeoriginale est au moins trois fois plus longue. Meme si votre mat�eriel est cit�e ici,consultez d'abord le HOWTO ; il y a souvent de petits d�etails importants �a savoirpour con�gurer correctement certains �equipements. Un excellent exemple : certainescartes Ethernet utilisent par d�efaut le meme canal DMA (acc�es direct m�emoire) quele controleur SCSI Adaptec 1542. Si vous ne changez rien sur ces cartes, votre disquedur risque de contenir des donn�ees erratiques �a chaque paquet r�eseau re�cu...

3Com EtherLinkSont support�es parfaitement les mod�eles 3c503 et 3c503/16, ainsi queles 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�elesNE1500 et NE2100 sont �egalement support�es.

Western Digital/SMCWD8003 et WD8013 (les memes que SMC Elite et SMC Elite Plus)sont support�ees, ainsi que la nouvelle SMC Elite 16 Ultra.

Hewlett PackardHP 27252, HP 27247B, et HP J2405A.

D-Link Adaptateur (( pocket )) DE-600, DE-100, DE-200, et DE-220-T. Ilexiste aussi un patch pour faire fonctionner la DE-650-T, qui est unecarte PCMCIA 4.

DEC DE200 (32K/64K), DE202, DE100, et DEPCA r�evision E.

3: Paul peut etre joint �a l'adresse [email protected].

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.

Page 66: Administration Reseau Sous Linux

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, lameilleure solution sera de vous compiler votre propre noyau avec la con�gurationexacte 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 eten d�eterminer le type. Le tableau suivant montre l'ordre dans lequel ces tests sonte�ectu�es (le premier est en haut) et les adresses test�ees.

Carte Adresses test�ees

SMC 16 Ultra 0x300, 0x2803c501 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 peutne pas d�etecter correctement toutes les cartes ; c'est particuli�erement vrai dans le casde clones bon march�e courants et pour quelques cartes de type WD80x3. Le secondprobl�eme, est que le noyau ne prendra en compte qu'une seule carte Ethernet, lapremi�ere rencontr�ee, et ne cherchera pas plus loin. Ce comportement est volontaire,car on suppose que, dans ce cas, vous voulez controler quelle carte est assign�ee �a quelleinterface.

Si vous utilisez plusieurs cartes Ethernet dans la meme machine, ou si l'autod�etection�echoue, il vous faudra indiquer au noyau le mat�eriel utilis�e et les adresses de base �aprendre 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. Cettem�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 del'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

Page 67: Administration Reseau Sous Linux

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, vouspouvez 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 ouinitialis�ee �a z�ero, le noyau tentera de la d�etecter automatiquement ou utilisera unevaleur par d�efaut.

Le premier param�etre ajuste la ligne d'IRQ assign�ee au p�eriph�erique. Par d�efaut, lenoyau tentera une autod�etection ; le pilote pour 3c503 a la particularit�e de s�electionnerune 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 valeurz�ero indique qu'il faudra tenter une d�etection automatique aux adresses cit�ees plushaut.

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 utilisentparam1 pour ajuster le niveau des messages de d�eboguage a�ch�es. Les valeurs de1 �a 7 correspondent �a une verbosit�e croissante, alors que 8 les supprimera tous ; 0d�enote la valeur par d�efaut. Les pilotes 3c503 utilisent param2 pour s�electionner letransceiver interne (d�efaut) ou un bo�tier externe (avec une valeur de 1). Le premierutilise 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 etpasser les param�etres pour la seconde par lilo. Vous devez toutefois faire attentionque le pilote ne trouve pas accidentellement la seconde carte avant la premi�ere, vousdisposez pour cela de l'option reserve de lilo, qui indique explicitement au noyaud'�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 tantque 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'espaced'entr�ees/sorties de la carte pour tenter d'autod�etecter quelque p�eriph�erique. Vouspouvez �egalement utiliser les param�etres du noyau pour forcer l'autod�etection deeth0 :

reserve=0x340,32 ether=0,0x340,eth0

Pour supprimer toute d�etection automatique, vous pouvez sp�eci�er un argumentadresse de valeur -1 :

ether=0,-1,eth0

Page 68: Administration Reseau Sous Linux

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 cable sp�ecial, et permet des vitessesde 10 �a 20 kbps.

PLIP fut originellement d�evelopp�e par la soci�et�e Crynwr, Inc. Sa r�ealisation est plutoting�enieuse : Depuis toujours, le port parall�ele des PC n'est qu'un port imprimanteunidirectionnel ; les huit lignes de donn�ees ne pouvaient etre utilis�ees que pour envoyerdu PC vers le p�eriph�erique, mais pas dans l'autre sens. PLIP s'a�ranchit de cettelimitation en utilisant les cinq lignes de statut du port pour l'entr�ee des donn�ees, cequi 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�eresversions du code, il tente maintenant d'etre compatible avec les impl�ementations PLIPde Crynwr, aussi bien qu'avec le pilote PLIP du programme NCSA telnet. 5 Pourconnecter deux machines par PLIP, il vous faut un cable sp�ecial que l'on peut acheterchez certains revendeurs sous le nom de (( Null Printer )) ou (( Turbo Laplink )). Vouspouvez toutefois le r�ealiser vous-meme ; 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 estactuellement maintenu par Niibe Yutaka. Lorsqu'il est inclus dans le noyau, il cr�eeune interface r�eseau pour chacun des ports imprimante possibles, plip0 correspondantau premier (lp0), plip1 �etant le second (lp1), et ainsi de suite. La correspondance entreces interfaces et les ports est la suivante :

Interface Port E/S IRQ

plip0 0x3BC 7plip1 0x378 7plip2 0x278 5

Si vous avez con�gur�e votre port parall�ele di��eremment, vous devrez changer cesvaleurs dans le �chier drivers/net/Space.c des sources du noyau de Linux et recompilerune nouvelle version.

Les ports imprimante restent utilisables normalement : ils ne sont pris en charge parle 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.

Page 69: Administration Reseau Sous Linux

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 IPo�rent des acc�es �a l'Internet par connexion t�el�ephonique, �a l'aide d'un modem et deSLIP 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 ; vouspouvez utiliser n'importe quel port s�erie. Comme la con�guration de ces ports s�erien'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.

Page 70: Administration Reseau Sous Linux

53

Chapitre 4

Con�guration des ports s�erie

Certaines rumeurs rapportent qu'il y aurait des gens n'ayant qu'un ordinateur, ettrop pauvres pour s'o�rir une liaison Internet T1. Il para�trait que pour acc�eder toutde meme au courrier �electronique et aux News Usenet, ils utilisent des connexionsSLIP, des r�eseaux UUCP et des serveurs BBS, qui passent par le r�eseau t�el�ephoniquepublic.

Ce chapitre est destin�e �a aider tous ceux qui, comme eux, sont reli�es au reste du mondegrace �a un modem. Toutefois, nous ne pourrons entrer dans le d�etail ici, comme lacon�guration du modem en r�eponse pour r�ealiser un serveur par exemple. Consultezle document Linux Serial HOWTO de Greg Hankins 1, qui est post�e r�eguli�erementdans le forum Usenet comp.os.linux.announce, pour obtenir des renseignementsplus pr�ecis.

4.1 Programmes de communication pour modems

Vous trouverez bon nombre de programmes de communications fonctionnant sousLinux. Beaucoup d'entre eux sont des �emulateurs de terminaux, qui permettent dese connecter �a un autre ordinateur comme depuis un simple terminal. Le programmetraditionnel permettant cela sous UNIX est kermit. Mais ses possibilit�es sont plutotr�eduites, il existe bien d'autres logiciels plus souples et ergonomiques, comportantannuaires t�el�ephoniques, langages script, etc. L'un deux,minicom, ressemble beaucoupaux programmes de communications pour MS-DOS, tant dans son apparence que dansson 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 monterun serveur de ce type. On peut en trouver par exemple sur sunsite.unc.edu dans ler�epertoire /pub/Linux/system/Network.

1: On peut joindre Greg �a l'adresse [email protected].

Page 71: Administration Reseau Sous Linux

54 Chapitre 4. Con�guration des ports s�erie

En dehors des �emulateurs de terminaux, il existe aussi des programmes utilisant uneliaison s�erie non interactive pour transporter des donn�ees entre ordinateurs. En e�et, ilest beaucoup plus rapide de t�el�echarger de mani�ere automatique quelques douzaines dekilo-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 vousne lirez pas, mais transf�ererez quand meme ; particuli�erement dans les News Usenet.

Le meilleur exemple de ce type de logiciels de communication est UUCP. Il s'agitd'une s�erie de programmes qui copient des �chiers entre ordinateurs, ex�ecutent descommandes 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 chapitresuivant. Il existe d'autres logiciels non interactifs du meme genre, utilis�es sur le r�eseaude 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 utilisentSLIP 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 pourdes liaisons permanentes entre deux r�eseaux, bien que ce ne soit vraiment int�eressantque par ISDN 2.

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 sonttypiquement appel�es ttys. Il s'agit de l'abr�eviation de TeletypeTM, qui �etait l'un desprincipaux constructeur de terminaux dans les premiers jours d'UNIX. Le terme estrest�e pour d�esigner maintenant tout terminal fonctionnant en mode texte. Tout aulong de ce chapitre, nous utiliserons tty exclusivement pour d�esigner les p�eriph�eriqueso�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 commeX11), et les p�eriph�eriques s�erie. Ces derniers sont compt�es parmi les ttys, car ilspermettent des sessions interactives via une connexion s�erie ; que ce soit depuis unterminal cabl�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�ediairede l'appel syst�eme ioctl(2). Beaucoup ne concernent que les ports s�erie, car ce type dep�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.

Page 72: Administration Reseau Sous Linux

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 moyend'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 dunombre de bits par seconde (bps). Quelquefois, vous entendrez des gens exprimer cettevitesse 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 unecaract�eristique d'une connexion s�erie existant entre deux points, mesurant le nombremoyen de bits transmis en une seconde. Il est important de savoir que ces deux valeurssont g�en�eralement di��erentes, car beaucoup de p�eriph�eriques encodent plusieurs bitspar 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�eriepar l'interm�ediaire de �chiers sp�eciaux, situ�es dans le r�epertoire /dev. Mais dans lecas 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'unou l'autre.

Le premier p�eriph�erique est employ�e lorsque le port est utilis�e en entr�ee, pour recevoirdes appels ; il a un nombre majeur de 4, et les �chiers s'appellent ttyS0, ttyS1, etc. Lesecond sert pour utiliser le port en sortie, pour r�ealiser des appels ; le nombre majeurest 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 lenum�ero du port de communication plus 63. Si votre �equipement est di��erent, parexemple si vous employez une carte multis�erie o�rant bien plus de 4 ports, consultezle document Serial HOWTO.

Supposons que votre modem soit connect�e sur COM2. Par cons�equent le nombremineur vaudra 65, et pour l'utiliser en appel le nombre majeur sera 5. Il devrait yavoir un �chier de p�eriph�erique nomm�e cua1 ayant ces caract�eristiques. A�chez laliste des ttys s�erie du r�epertoire /dev. Les colonnes 5 et 6 montrent respectivementles 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.

Page 73: Administration Reseau Sous Linux

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'aientpas �a se souvenir de noms aussi peu intuitifs que /dev/cua1. Toutefois, vous ne devrezpas utiliser /dev/modem dans un programme et le vrai /dev/cua1 dans un autre, carcertains 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 exemplece sera LCK..cua1 pour indiquer que /dev/cua1 est occup�e. Si di��erents programmesacc�edaient au meme modem par di��erents noms de p�eriph�eriques, ils ne pourraientpas reconna�tre leurs �chiers de verrouillage les uns des autres, et les applications nefonctionneraient pas correctement.

4.4 Les ports s�erie

Linux supporte une grande vari�et�e de cartes s�erie au standard RS-232, qui est la normela plus r�epandue pour la communication s�erie dans le monde du PC (et ailleurs). Ellesutilisent di��erents circuits �electroniques pour transmettre des bits et des informationsde 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,controle de ux mat�eriel, etc).

Bien que le controle de ux mat�eriel soit facultatif, il est extremement utile. Il permet�a chacune des stations de signaler lorsqu'elle est prete �a recevoir plus de donn�ees, ousi l'autre cot�e doit attendre un peu que les caract�eres re�cus aient �et�e trait�es avantde 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�ede (( controle de ux RTS/CTS ))

3.

Dans les PC, l'interface RS-232 est g�en�eralement r�ealis�ee autour d'un circuit ERAU 4

d�eriv�e du 16450 de National Semiconductor, ou de la nouvelle version NSC 16550A 5.

La principale di��erence entre les 16450 et les 16550 est que ces derniers comportentun tampon FIFO de 16 octets, alors que le premier ne poss�ede de stockage que pour1 octet. Le 16550 est donc pr�ef�erable pour une utilisation �a de hautes vitesses, parrapport au 16450 qu'il vaut mieux �eviter au-del�a de 9 600 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.

Page 74: Administration Reseau Sous Linux

4.4. Les ports s�erie 57

entendu tous ces circuits, ainsi que le 8250, qui fut le premier ERAU �a �equiper lesordinateurs 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 vuplus 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 aud�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�eedes param�etres �a employer.

Si votre carte s�erie n'est pas d�etect�ee, ou si la commande setserial -bg montre unecon�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 circuitsRockwell. Si, par exemple, l'ERAU est d�etect�e comme �etant un NSC 16450, alors qu'ils'agit en r�ealit�e d'un compatible NSC 16550, vous devrez modi�er la con�guration duport 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 controle de ux mat�eriel, assurez-vous qu'il soit bien enservice. 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 meilleuresolution est de le mettre en service au lancement du syst�eme en mettant dans le �chierrc.serial une commande stty comme ceci :

$ stty crtscts </dev/cua1

Page 75: Administration Reseau Sous Linux

58 Chapitre 4. Con�guration des ports s�erie

Pour v�eri�er si le controle de ux RTS/CTS est actif, faites :

$ stty -a </dev/cua1

Cette commande vous a�chera le param�etrage du port s�erie concern�e avec tous lesd�etails ; chaque drapeau est a�ch�e, avec un signe n�egatif s'il est invalid�e. Vous devreztrouver dans la liste, crtscts. Si vous voyez -crtscts, c'est que le controle de uxn'est pas en service.

Page 76: Administration Reseau Sous Linux

59

Chapitre 5

Con�guration du r�eseau

TCP/IP

Nous allons d�ecrire dans ce chapitre toutes les �etapes n�ecessaires pour con�gurerTCP/IP sur votre machine. En partant de l'assignation des adresses IP, nous verronsla con�guration des interfaces et, petit �a petit, aboutirons �a la description de quelquesoutils tr�es pratiques pour traquer les �eventuels probl�emes pouvant survenir sur votreinstallation r�eseau.

Les di��erentes op�erations que nous allons d�ecrire ne seront �a e�ectuer qu'une seulefois, pour la majorit�e d'entre elles. Ensuite, vous n'aurez de modi�cations �a faire quelors de l'ajout d'une nouvelle machine sur le r�eseau, ou si vous recon�gurez enti�erementle syst�eme. Quelques commandes seront toutefois �a ex�ecuter �a chaque d�emarrage deLinux, 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 unscript appel�e rc.net ou rc.inet. Quelquefois, vous en trouverez deux, nomm�es rc.inet1 etrc.inet2, le premier initialisant la partie r�eseau relative au noyau, le second s'occupantde lancer les services et applications de base. Ici, nous adopterons cette derni�eresolution, 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�equencede 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 proprescommandes, 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 donnerun bon exemple de ce qu'il faut faire.

Page 77: Administration Reseau Sous Linux

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 �chiersproc 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 estmont�e, vous pouvez lister son contenu comme n'importe quel autre syst�eme de �chiers,et a�cher par les m�ethodes habituelles toutes les informations disponibles. Vous ytrouverez 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 nombrede �chiers montrant certaines choses comme les tables ARP du noyau, l'�etat desconnexions TCP, les tables de routage, etc. La plupart des outils d'administrationr�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�edans /proc lors du d�emarrage du syst�eme. La meilleure m�ethode pour qu'il le soit estd'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'estpas dans le votre, vous obtiendrez un message du genre : (( mount: fs type procfs

not supported by kernel )) (syst�eme de �chiers type procfs non support�e par lenoyau). Il vous faudra dans ce cas recompiler ce noyau en r�epondant (( yes )) lorsquela 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 vousinqui�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 toutela m�emoire dont vous disposez ; plus vous aurez de RAM, plus il sera gros, mais iln'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 ensemblecoh�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 dunoyau, pouvant demander une mise �a jour de ces programmes. Souvent, l'�evolutionde Linux apporte de profondes modi�cations rendant les anciens utilitaires relatifs aur�eseau, incompatibles avec la partie correspondante dans le noyau. Il su�t souvent

Page 78: Administration Reseau Sous Linux

5.3. Un nouvel exemple 61

de recompiler l'ensemble, mais quelquefois il vous faudra quand meme changer tousles programmes. L'ensemble est g�en�eralement distribu�e parall�element aux nouvellessources du noyau, dans des �chiers appel�es net-XXX.tar.gz, o�u varXXX correspond aunum�ero de version. Pour Linux 1.0, il s'agit de 0.32b. Le dernier noyau, �a l'heure o�unous �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-meme,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 quelquesautres sources. D'autres grosses applications, comme Mosaic, Archie, Gopher ou IRCdoivent etre obtenues s�epar�ement, comme pour tout autre syst�eme UNIX. La plupartse compilent sans modi�cation sous Linux si vous suivez correctement les instructions.

Le site FTP o�ciel de Net-3 est sunacm.swan.ac.uk, repris par sunsite.unc.edudans 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 dedi��erents sites ; vous ne devriez pas avoir besoin d'utiliser de couteuses 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 simpleque l'universit�e Groucho Marx, et qui devrait etre plus proche de ce que vous allezcouramment rencontrer. Consid�erons donc (( La bi�ere virtuelle )), une petite soci�et�e quibrasse, comme son nom l'indique, de la bi�ere virtuelle. A�n de g�erer plus e�cacementleurs a�aires, nos brasseurs virtuels d�esirent relier leurs ordinateurs en r�eseau, et il setrouve qu'ils fonctionnent tous sous le merveilleux Linux 1.0.

Au meme �etage, de l'autre cot�e du couloir de l'immeuble, se trouve la soci�et�e (( Lescaves virtuelles )), des viticulteurs travaillant �etroitement avec nos brasseurs. Ils pos-s�edent leur propre r�eseau Ethernet. Naturellement, les deux compagnies veulent relierleurs 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 entreces 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 �al'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 �ala machine. G�en�eralement, cela est r�ealis�e lors du d�emarrage du syst�eme en ex�ecutant

Page 79: Administration Reseau Sous Linux

62 Chapitre 5. Con�guration du r�eseau TCP/IP

la commande hostname ; pour initialiser le nom d'hote �a la valeur nom, elle doit etreinvoqu�ee ainsi :

# hostname nom

La pratique courante est d'indiquer ici le nom d'hote non quali��e, c'est-�a-dire sanssp�eci�er le nom de domaine. Par exemple, les machines de (( La bi�ere virtuelle )) peuvents'appeler trappiste.bibine.com, kro.bibine.com, etc. Ce sont leurs noms o�ciels,pleinement quali��es. Leur noms d'hotes locaux seraient alors uniquement la premi�erecomposante, comme trappiste. Toutefois, comme le nom local est fr�equemment utilis�epour 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 quelest 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 normalementutilis�ee pour initialiser le domaine NIS de la machine, qui peut etre totalement di��e-rent du domaine DNS auquel cet hote 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 cettesection, 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 vousd�esirez connecter votre syst�eme �a un r�eseau existant, vous devrez demander �a sesadministrateurs de vous donner une adresse IP. Si vous installez vous-meme tout unr�eseau, ce sera �a vous d'attribuer toutes les adresses.

Les hotes d'un r�eseau local doivent en principe partager des adresses appartenant aumeme 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 desvaleurs r�eseau di��erentes, soit utiliser des sous-r�eseaux pour partager votre gammed'adresses IP possibles en plusieurs sous-r�eseaux. Nous d�etaillerons cette derni�eresolution 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 vousfalloir obtenir d�es maintenant une adresse o�cielle. La meilleure fa�con de proc�ederest 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

Page 80: Administration Reseau Sous Linux

5.6. Cr�eation de sous-r�eseaux 63

Form ))) �a [email protected], 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 simplementque jamais aucun de vos datagrammes internes ne s'�echappe vers le vrai Internet.Pour en etre vraiment sur, il vaut mieux utiliser l'une des adresses r�eseau r�eserv�eespour les usages priv�es. Le IANA (Internet Assigned Numbers Authority), la (( hauteautorit�e )) r�egissant l'attribution des adresses sur l'Internet, a mis au point plusieursadresses r�eseau de classes A, B et C que vous pouvez utiliser librement sans avoir �avous enregistrer o�ciellement. Elles ne sont valides qu'�a l'int�erieur de votre r�eseaupriv�e et ne sont jamais rout�ees entre les vrais sites Internet. Ces valeurs, d�e�nies dansle RFC 1597, sont :

Classe R�eseaux

A 10.0.0.0

B 172.16.0.0 jusqu'�a172.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 vousetes isol�e de l'Internet ; vous pouvez aussi r�ealiser un acc�es bien plus restrictif enemployant une machine en tant que passerelle. Pour votre r�eseau local, la passerellesera accessible par son adresse IP interne, alors que le reste du monde la conna�trapar une adresse o�cielle dument enregistr�ee (que votre fournisseur de services vousaura attribu�ee par exemple). Nous reviendrons sur ce type de con�guration lorsquenous parlerons de SLIP, dans le chapitre 7 (page 101).

Pour toute la suite de cet ouvrage, nous consid�ererons que l'administrateur r�eseaude (( La bi�ere virtuelle )) utilise un r�eseau de classe B, disons 172.16.0.0. Bien sur,une classe C aurait largement su� pour satisfaire les besoins de nos brasseurs etviticulteurs 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 �acomprendre.

5.6 Cr�eation de sous-r�eseaux

Pour g�erer plusieurs r�eseaux Ethernet (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 sivous 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

Page 81: Administration Reseau Sous Linux

64 Chapitre 5. Con�guration du r�eseau TCP/IP

0 072191

072191 0721911 2

PasserelleSous-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 expliqueronspourquoi dans le chapitre 7.

Pour g�erer les deux r�eseaux locaux Ethernet, l'administrateur des brasseurs virtuelsa d�ecid�e d'utiliser 8 bits de la partie hote comme bits additionnels de sous-r�eseau.Cela lui laisse 8 autres bits pour la partie hote, permettant 254 machines sur chacundes sous-r�eseaux. Il assigne alors le sous-r�eseau num�ero 1 aux brasseurs, et donne lenum�ero 2 aux viticulteurs. Leurs adresses r�eseaux respectives sont alors 172.16.1.0et 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 unnombre d'hote de 1 sur chacun d'eux, ce qui donne respectivement les adresses IP172.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 leschoses ; 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 meme un r�eseau de classe C peutetre tron�conn�e en plusieurs sous-r�eseaux. Par exemple, vous pourriez utiliser 2 bitsde la partie hote pour le masque r�eseau, ce qui vous donnerait quatre sous-r�eseauxpossibles comportant chacun 64 machines 1.

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.

Page 82: Administration Reseau Sous Linux

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 desnoms de quelques machines cruciales soit possible par le �chier /etc/hosts. Si vous necomptez pas utiliser DNS ou NIS pour la r�esolution d'adresses, vous devrez indiquertous les hotes dans ce �chier.

Meme si en fonctionnement normal, DNS ou NIS sont en service, vous devez inclure unpetit sous-ensemble de machines dans /etc/hosts. En premier lieu, vous aurez besoind'une m�ethode de r�esolution de noms meme lorsqu'aucune interface r�eseau n'est enservice, par exemple lors du d�emarrage du syst�eme. Ce n'est pas qu'une question decommodit�e, cela vous permet aussi d'utiliser des noms symboliques dans vos scriptsrc.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 ungrand nombre de �chiers rc s�epar�ement. G�en�eralement, ce sont les noms et adresses desmachines locales que l'on met dans /etc/hosts, plus ceux des passerelles ou �eventuelsserveurs NIS s'il en existe 2.

Vous devrez �egalement, lors des premiers essais de mise au point, vous assurer que leresolver 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 peuventetre fournis avec des exemples de con�guration donnant de tr�es curieux r�esultats. Pouretre 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 enles 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 nomd'hote, 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 seraignor�e.

Les noms d'hotes peuvent etre quali��es ou relatifs au domaine local. Dans le casde trappiste, on met g�en�eralement le nom quali��e, trappiste.bibine.com, puistrappiste seul, de mani�ere �a ce que la machine soit connue aussi bien par son nompleinement quali��e que par son petit nom local.

Voici un exemple de ce que pourrait etre un �chier hosts de l'entreprise (( La bi�erevirtuelle )) : deux noms sp�eciaux ont �et�e ajout�es, kro-if1 et kro-if2, qui donnent lesadresses 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.

Page 83: Administration Reseau Sous Linux

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 unnom symbolique pour d�esigner les adresses r�eseau. Par cons�equent, le �chier /etc/hostsest accompagn�e d'un �chier semblable, /etc/networks, qui est son �equivalent pour lesr�eseaux. Chez nos brasseurs, nous pourrions installer un �chier networks comme celui-ci 3 :

# /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 chapitrepr�ec�edent, vous devrez faire en sorte que ces p�eriph�eriques soient connus de la coucher�eseau du noyau. Deux commandes sont n�ecessaires pour cela, qui con�gurent lesinterfaces et initialisent la table de routage : ifcon�g (o�u (( if )) signi�e interface), etroute. Elles sont g�en�eralement invoqu�ees depuis le script rc.inet1 lors du d�emarragedu syst�eme.

La commande ifcon�g a pour but de rendre une interface accessible �a la couche r�eseaudu 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 )), paropposition �a (( hors service )), ou (( down )). Une interface d�eclar�ee active signi�e que lenoyau l'utilisera pour le transport de datagrammes. La fa�con la plus simple de r�ealisercela 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.

Page 84: Administration Reseau Sous Linux

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�etres seront mis �a des valeurs par d�efaut. Par exemple, le masquer�eseau sera d�eriv�e de la classe du r�eseau de l'adresse IP, comme 255.255.0.0 pour uneadresse 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 dansla 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 verscible, 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 localhost utilis�e �a la place de cetteadresse 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 simplementifcon�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 de255.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 cetteinterface 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 dansla section (( Tout sur ifcon�g )), un peu plus loin dans ce chapitre.

Page 85: Administration Reseau Sous Linux

68 Chapitre 5. Con�guration du r�eseau TCP/IP

Maintenant, vous pouvez presque commencer �a jouer avec votre (( mini-r�eseau )). Il nemanque qu'une chose : une entr�ee dans la table de routage qui indique �a IP qu'il peututiliser 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. Leprogramme ping est un peu l'�equivalent d'un sonar pour le r�eseau 4. On emploie pingpour v�eri�er qu'il est bien possible d'atteindre une adresse donn�ee, et pour mesurerle temps de propagation entre le moment o�u l'on envoie un datagramme et o�u il nousrevient. 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'ilsoit interrompu par l'utilisateur. Le ^C visible dans l'exemple correspond au momento�u le programme a �et�e arret�e par Ctrl-C 5.

Notre exemple montre que les paquets �a destination de 127.0.0.1 sont correctementd�elivr�es et qu'une r�eponse nous est retourn�ee quasi instantan�ement. Cela prouve quenous 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�get 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�erpar 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 etesprobablement tromp�e en tapant la commande route. V�eri�ez que vous utilisez bien lameme adresse que celle indiqu�ee �a ifcon�g.

Les �etapes que nous venons de voir sont su�santes 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 meme

r�esultat, typiquement celles des syst�eme BSD.

Page 86: Administration Reseau Sous Linux

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.inetsont 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 connexionavec 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 dufontionnement normal 6. Par cons�equent, vous devez toujours la con�gurer, que votremachine 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'interfaceloopback, elle demande juste quelques param�etres suppl�ementaires si vous employezdes sous-r�eseaux.

�A (( La bi�ere virtuelle )), nous avons subdivis�e le r�eseau IP, qui �etait �a l'origine declasse B, en r�eseaux de classe C. Pour que l'interface reconnaisse ce fait, nous devonsappeler 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. Sinous avions omis le masque r�eseau, ifcon�g l'aurait d�eduit de la classe de l'adresser�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 (lechamp Bcast ci-dessus) selon la m�ethode usuelle, en mettant �a 1 tous les bits de lapartie hote de l'adresse r�eseau. De plus, le MTU ((( Maximum Transfer Unit )), lataille maximale des trames Ethernet que le noyau g�en�erera pour cette interface) a�et�e positionn�e �a 1 500 octets. Toutes ces valeurs peuvent etre forc�ees par des optionssp�eciales que nous d�ecrirons plus tard.

Tout comme avec l'interface loopback, nous devons installer une entr�ee dans la tablede routage pour informer le noyau de ce r�eseau accessible par eth0. Chez nos brasseursvirtuels, 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.

Page 87: Administration Reseau Sous Linux

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 clairementcomment 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 etcompare l'adresse de destination (172.16.1.0 dans ce cas) avec la partie r�eseau del'adresse de l'interface (c'est-�a-dire, un (( ET )) bit �a bit entre l'adresse de l'interfaceet 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 routepeut traiter aussi bien des routes vers des r�eseaux que des routes vers de simples hotes(comme vous l'avez vu plus haut dans le cas de localhost). Lorsqu'on lui passe uneadresse en notation sur 4 octets, le programme tente de deviner s'il s'agit d'un r�eseauou d'un hote, en regardant les bits de la partie hote. Si cette partie hote de l'adressevaut z�ero, route consid�ere qu'il s'agit d'un r�eseau ; et d'une adresse d'hote dans le cascontraire. Par cons�equent, route penserait que 172.16.1.0 est un hote et non pas unr�eseau, car le programme ne sait pas que nous utilisons un sous-r�eseau. Nous devonsdonc lui indiquer explicitement qu'il s'agit d'un r�eseau, en lui passant l'option -net.

Bien sur, la commande ci-dessus est un peu p�enible �a taper, et peut entra�ner desfautes de frappe. Une approche plus pratique consiste �a employer les noms de r�eseauxque nous avons d�e�nis dans le �chier /etc/networks auparavant. Du coup, notre com-mande devient plus lisible ; et l'on peut meme supprimer l'option -net puisque routesait 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 hoteconnect�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 sansnul doute que quelque chose ne va pas. Si vous rencontrez un taux inhabituel depaquets perdus, il s'agit probablement d'un probl�eme mat�eriel, comme des r�esistancesde terminaison absentes, un cablage incorrect, voire... l'oubli de connecter la machineau r�eseau. Si vous ne recevez aucun paquet, testez la con�guration de l'interface par lacommande netstat. Les statistiques sur les paquets �emis et re�cus a�ch�es par ifcon�gdevraient vous indiquer si, au moins, des datagrammes ont �et�e envoy�es. Si vous avez

Page 88: Administration Reseau Sous Linux

5.8. Con�guration des interfaces r�eseau 71

un acc�es physique �a la machine distante, allez voir �egalement les statistiques qu'elleindique. Vous pourrez ainsi d�eterminer exactement o�u les paquets se sont perdus. Deplus, v�eri�ez les informations de routage par la commande route pour voir si les deuxhotes sont correctement con�gur�es �a ce niveau. Invoqu�ee sans arguments, route a�chela totalit�e de la table de routage du noyau (l'option -n lui fait a�cher les adresses IPau 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 (( Lacommande netstat )). La colonne Flag contient une liste des drapeaux positionn�es pourchaque interface : U signi�e qu'elle est active, et H indique que l'adresse de destination

est un hote. Si le drapeau H est mis alors que vous vouliez que cette route soit une router�eseau, il vous faut retaper la commande route avec l'option -net. Pour v�eri�er qu'uneroute est utilis�ee, testez si la valeur indiqu�ee dans le champ Use de l'avant-derni�erecolonne 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 uniquer�eseau Ethernet. Or, il est courant de rencontrer des interconnexions de r�eseaux parl'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. Pourutiliser une passerelle, il va falloir donner quelques informations suppl�ementaires �a lacouche r�eseau du noyau.

Par exemple, les r�eseaux Ethernet des entreprises (( La bi�ere virtuelle )) et (( Les cavesvirtuelles )) 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'�arajouter une autre entr�ee �a la table de routage de gueuze, qui indiquera au noyauqu'il peut atteindre toutes les machines du r�eseau des viticulteurs par l'interm�ediairede 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.

Page 89: Administration Reseau Sous Linux

72 Chapitre 5. Con�guration du r�eseau TCP/IP

Cet exemple ne d�ecrit qu'une passerelle permettant l'�echange de datagrammes entredeux r�eseaux Ethernet isol�es. Maintenant, supposons que kro soit aussi connect�ee �al'Internet (disons, par une liaison suppl�ementaire SLIP). Nous voudrions alors que lesdatagrammes �a destination de n'importe quel r�eseau autre que celui des brasseurs soitpass�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 routepar d�efaut. Vous n'avez pas besoin d'ajouter ce nom au �chier /etc/networks, il estint�egr�e directement dans la commande route.

Si vous constatez de nombreuses pertes de paquets en essayant ping vers une machinesitu�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, maiselle est surtout li�ee aux exc�es momentan�es de charge sur les passerelles, qui peuvententra�ner un temps de transfert inconsid�er�ement long, voire l'omission de quelquespaquets.

5.8.4 Con�guration d'une passerelle

Con�gurer une machine pour qu'elle puisse �echanger des paquets entre deux r�eseauxEthernet est extremement simple. Consid�erons que nous sommes revenus sur kro, quiest �equip�ee de deux cartes Ethernet, chacune connect�ee �a l'un des deux r�eseaux. Toutce que vous avez �a faire se r�esume �a con�gurer chaque interface s�epar�ement, en leurdonnant 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 hostscomme 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 peudi��erentes de ce que vous avez vu avec l'Ethernet. PLIP r�ealise ce que l'on appelle

Page 90: Administration Reseau Sous Linux

5.8. Con�guration des interfaces r�eseau 73

une liaison point-�a-point, car ce type de liaison met en jeu deux hotes ((( points ))),par opposition aux grands r�eseaux.

Prenons un exemple. Admettons que l'un des employ�es de (( La bi�ere virtuelle )) poss�edeun ordinateur portable, connect�e �a kro par PLIP. Le portable s'appelle le�e et neposs�ede qu'un seul port parall�ele. �A l'amor�cage, ce port parall�ele sera enregistr�e entant que plip1. Pour activer le lien, vous devrez con�gurer l'interface plip1 �a l'aide descommandes suivantes 7 :

# 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'uneliaison point-�a-point, l'autre cot�e ayant l'adresse de kro. La seconde installe la routepar d�efaut, utilisant kro comme passerelle. Sur cette derni�ere, une commande ifcon�gsimilaire 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 IPs�epar�ee, mais peut aussi se voir attribuer l'adresse 172.16.1.1 8.

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 hote de ce r�eseau vers le�e. Une solution particuli�erement lourde consiste�a rajouter une route sp�eci�que sur chaque hote de ce r�eseau, d�eclarant kro commepasserelle vers le�e :

# route add leffe gw kro

Lorsque l'on est confront�e �a l'�etablissement de routes temporaires comme ici, faireappel 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 surchaque hote du r�eseau de mani�ere �a distribuer les informations de routage dynami-quement. Cependant, la meilleure solution est encore proxy ARP (Address ResolutionProtocol, protocole de r�esolution d'adresses). Avec proxy ARP, kro r�epond �a n'im-porte quelle requete ARP pour le�e en envoyant sa propre adresse Ethernet. Ler�esultat est que tous les paquets �a destination de le�e arriveront en r�ealit�e �a kro, quiles renverra alors �a l'ordinateur portable. Nous reviendrons sur proxy ARP dans lasection (( Checking the ARP Tables )).

Les futures versions des utilitaires r�eseau pour Linux contiendront un outil nomm�eplipcon�g, qui permettra de choisir la ligne d'IRQ �a utiliser pour le port imprimante.Plus tard, il pourrait meme 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.

Page 91: Administration Reseau Sous Linux

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-pointcomme 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 sitedistant par l'interm�ediaire d'un modem, et passer la ligne s�erie en mode SLIP. PPPs'utilise de la meme mani�ere. Les outils n�ecessaires pour r�ealiser des liaisons SLIP ouPPP 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 plutot utile. Elleest surtout destin�ee aux machines isol�ees, ou celles dont la seule connexion IP est uneliaison de type SLIP. En fait, ce dernier cas revient au premier, lorsque le syst�emen'est pas connect�e.

Le probl�eme de ces machines isol�ees est qu'elles n'ont qu'un seul p�eriph�erique r�eseauactif, l'interface loopback, qui se voit normalement attribuer l'adresse 127.0.0.1. Maisparfois, il est n�ecessaire d'envoyer des donn�ees �a l'adresse IP (( o�cielle )) de cet hotelocal. Consid�erons par exemple l'ordinateur portable le�e, que nous d�econnectons detout r�eseau le temps de cet exemple. Une application fonctionnant sur cette machineveut envoyer quelque donn�ee vers un autre programme sur ce meme ordinateur. Larecherche de le�e dans /etc/hosts renvoie l'adresse 172.16.1.65, par cons�equent notreapplication essaie d'utiliser cette valeur. Comme pour l'instant, la seule interfaceactive est le loopback, le noyau n'est absolument pas au courant que 172.16.1.65r�ef�erence aussi cette machine ! En cons�equence, il �elimine ce datagramme et renvoieune erreur �a l'application.

C'est l�a que l'interface dummy entre en jeu. Elle permet de r�esoudre ce probl�eme enservant 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 destinationde 172.16.1.65 sera d�elivr�e localement. Les commandes n�ecessaires pour �etablir cettecon�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�ejusqu'�a pr�esent. Sa syntaxe exacte est :

ifconfig interface [[-net|-host] adresse [parametres]]

Page 92: Administration Reseau Sous Linux

5.9. Tout sur ifcon�g 75

L'argument interface est bien sur le nom de l'interface, et adresse correspond �al'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 hote, respectivement.

Si ifcon�g est invoqu�ee uniquement avec le nom de l'interface, cette commande a�chealors la con�guration courante de l'interface en question. Sans aucun param�etre, elleconsid�erera toutes celles qui sont con�gur�ees ; une option -a permet de lui faire a�cher�egalement les interfaces inactives. Sur eth0, la sortie de ifcon�g peut donner quelquechose 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 Metricmontrent respectivement le MTU et la valeur m�etrique pourcette interface. La valeur m�etrique est utilis�ee par certains syst�emes d'exploitationpour d�eterminer le prix ou l'e�cacit�e d'une route. Pour l'instant, Linux n'utilise pascette 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 raisonde d�ebit trop important. Ces (( overruns )) se produisent g�en�eralement lorsque lespaquets arrivent trop rapidement, et que le noyau n'a pas eu le temps de servir laderni�ere interruption alors qu'une autre arrive. Les drapeaux a�ch�es par ifcon�g

correspondent plus ou moins aux noms des options de sa ligne de commande ; nousallons les expliquer ci-dessous.

Voici la liste des param�etres reconnus par la commande ifcon�g, avec les noms desdrapeaux correspondants. Les options qui ne sont que des bascules de conditionsparticuli�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 coucher�eseau du noyau. Elle est implicite lorsqu'une adresse est donn�ee surla ligne de commandes. Elle peut aussi etre utilis�ee pour remettre enservice une interface qui a �et�e arret�ee momentan�ement par l'optiondown.

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 pas les entr�ees de la table de routage pouvant utiliser

Page 93: Administration Reseau Sous Linux

76 Chapitre 5. Con�guration du r�eseau TCP/IP

cette interface. Si vous d�ecidez de mettre une interface hors servicede fa�con permanente, vous devrez �egalement supprimer tout routagepassant 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. Ilpeut etre donn�e soit par un nombre hexad�ecimal sur 32 bits pr�ec�ed�ede 0x (comme en langage C), soit en notation traditionnelle sur 4octets.

pointopoint adresse

Cette option est utilis�ee pour les liaisons point-�a-point qui ne mettenten jeu que deux machines. Elle est n�ecessaire pour con�gurer, parexemple, 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 hote �a 1. Quelquesimpl�ementations de IP (notamment les syst�emes d�eriv�es de BSD 4.2)utilisent un sch�ema di��erent, o�u la partie hote 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 a�chera le dra-peau BROADCAST.

metric nombre

Option employ�ee pour assigner une valeur m�etrique �a l'entr�ee de latable de routage cr�e�ee pour cette interface. Cette valeur est utilis�eepar RIP (Routing Information Protocol) pour construire les tablesde routage pour le r�eseau 9. La valeur m�etrique mise par d�efaut parifcon�g est z�ero. Si vous n'employez pas de d�emon RIP, vous n'aurezpas besoin de cette option ; si vous le faites, vous n'aurez que tr�esrarement 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 hote 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.

Page 94: Administration Reseau Sous Linux

5.10. La commande netstat 77

l'Ethernet, la valeur par d�efaut est 1 500 ; pour les interfaces SLIPc'est 296.

arp Il s'agit d'une option sp�eci�que aux r�eseaux comme l'Ethernet ou lepacket-radio. Elle met en service le protocole de r�esolution d'adresses,ARP, a�n de d�etecter les adresses physiques des machines attach�eesau r�eseau. Pour les r�eseaux cit�es, elle est toujours en service pard�efaut.

Si ARP est hors service, ifcon�g a�chera le drapeau NOARP.

-arp Supprime l'utilisation de ARP sur cette interface.

promisc Passe l'interface en mode global (promiscuous mode). Sur un r�eseauEthernet (par exemple), cela a pour e�et de faire recevoir tous lespaquets �a l'interface, qu'ils soient destin�es �a un autre hote ou non. Onpeut 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�emesr�eseau quasi ind�etectables autrement.

D'un autre cot�e, elle permet aux personnes malintentionn�ees de son-der ce qui passe sur le r�eseau, �a la recherche de mots de passe oupour r�ealiser d'autres actions ill�egales. Pour se prot�eger, une solutionconsiste �a ne laisser personne connecter impun�ement sa machine survotre r�eseau Ethernet. Une autre option est d'utiliser des protocolesd'authenti�cation s�ecuris�es, comme Kerberos, ou le login SRA 10.

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 setrouver sur le meme sous-r�eseau. Elles sont support�ees sous Linux �apartir 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 deplusieurs 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.

Page 95: Administration Reseau Sous Linux

78 Chapitre 5. Con�guration du r�eseau TCP/IP

5.10.1 A�chage de la table de routage

Invoqu�ee avec l'option -r, netstat a�che la table de routage du noyau sous la memeforme que la commande route que nous avons d�ej�a vue. Sur la machine gueuze, celanous 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'a�cher les adresses IP selon la notation sur 4 octetsplutot que d'indiquer les noms symboliques des hotes et des r�eseaux. C'est particuli�e-rement utile lorsque l'on veut �eviter des recherches de noms �a travers le r�eseau (viaun 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 a�ch�e �a la place. La troisi�eme colonneindique la (( g�en�eralit�e )) de la route. Lorsqu'on lui demande de trouver une route pourune 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 ciblede 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 hote par cette route. C'est pasexemple 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 unmessage 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 ICMPde 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 sapr�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.

Page 96: Administration Reseau Sous Linux

5.10. La commande netstat 79

5.10.2 A�chage des statistiques sur une interface

L'option -i de netstat permet l'a�chage des statistiques des interfaces r�eseau actuel-lement con�gur�ees. Si l'on y rajoute l'option -a, ce seront toutes les interfaces quiseront 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 pourcette 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), combienfurent �elimin�es (RX-DRP/TX-DRP) et combien furent perdus en raison de d�ebit trophaut pour le noyau (RX-OVR/TX-OVR).

La derni�ere colonne indique quels drapeaux sont positionn�es. Ce sont les initiales desnoms qui sont a�ch�es lorsque vous demandez l'�etat de la con�guration de l'interfacepar 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 A�chage des connexions

La commande netstat supporte un ensemble d'options permettant de visualiser lessockets 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 socketsen attente de connexion (�a l'�ecoute d'un port par exemple) sont �egalement a�ch�ees.Vous aurez ainsi une liste de tous les serveurs qui sont actuellement en service survotre syst�eme.

Le r�esultat de netstat -ta sur kro est :

Page 97: Administration Reseau Sous Linux

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 machinegamay 11.

L'emploi de l'option -a seule a�chera 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 contenudes tables ARP du noyau, par exemple si vous suspectez qu'une adresse Internetdupliqu�ee est la cause de probl�emes r�eseaux intermittents. L'outil arp est destin�e �ade 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'hotes en clair, soitdes adresses IP en notation sur 4 octets.

La premi�ere invocation a�che les entr�ees ARP pour les adresses IP ou hotes sp�eci��es,ou tous les hotes 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 a�ch�e sur l'hote 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.

Page 98: Administration Reseau Sous Linux

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'a�chage au type de mat�eriel sp�eci��e. Cepeut 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-machinedans les tables ARP. L'argument materiel sp�eci�e l'adresse mat�erielle, qui est pard�efaut une adresse Ethernet sous la forme de six nombres hexad�ecimaux s�epar�espar le signe (( : )). Vous pouvez aussi initialiser l'adresse mat�erielle d'autres typesd'�equipement, grace �a l'option -t.

Vous pouvez avoir �a ajouter manuellement une adresse IP �a la table ARP si pour uneraison quelconque, les requetes 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 meme adresse IP. Forcer manuellement lesadresses IP dans la table ARP est aussi une m�ethode (plutot violente) pour se prot�egerdes hotes 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'hote concern�e. Ce peut etre un moyen de forcer l'interface �a faire une nouvelletentative 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 ARPerron�ee (bien sur, 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 techniquesp�eciale o�u un hote, appelons-le relais, agit comme une passerelle vers un autre hoteque nous nommerons truc en pr�etendant que les deux adresses se r�ef�erent au memehote, relais. Il e�ectue cela en di�usant une entr�ee ARP pour truc qui pointe sursa propre interface Ethernet. Du coup, lorsqu'une machine enverra une requete ARPpour truc, relais retournera une r�eponse contenant sa propre adresse Ethernet. Lamachine demandeuse enverra alors tous les datagrammes vers relais, qui les passeragentiment �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�etementd�efectueuse de TCP, qui ne comprend pas trop bien les m�ethodes de routage. Avecproxy ARP, cette machine MS-DOS aura l'impression que truc est sur le sous-r�eseaulocal, et n'aura donc pas besoin de savoir comment router des datagrammes �a traversune passerelle.

Proxy ARP est aussi tr�es utile lorsqu'une machine doit faire passerelle uniquement detemps en temps, par exemple �a travers une liaison t�el�ephonique. Dans un pr�ec�edentexemple, nous avons rencontr�e l'ordinateur portable le�e, qui �etait connect�e �a kropar une liaison PLIP, mais seulement de temps �a autre. Bien sur, cela ne marchera

Page 99: Administration Reseau Sous Linux

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 trouvesur le meme sous-r�eseau IP que votre passerelle. Par exemple, gueuze pourrait fairedu proxy ARP pour n'importe quel hote 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 lenoyau apporteront une m�ethode de con�guration tr�es souple permettant de con�gurerles p�eriph�eriques r�eseau en cours de route. Par exemple, la commande ifcon�g prendrades arguments qui permettront de choisir l'IRQ et le canal DMA.

La commande route se verra ajouter bientot des options suppl�ementaires, comme mtupour 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�epour les routes passant par des passerelles, lorsque la liaison entre la passerelle et lamachine de destination n�ecessite un MTU tr�es faible.

Par exemple, supposons que la machine alambic soit connect�ee �a kro par une liaisonSLIP. Lors de l'envoi de donn�ees depuis gueuze vers alambic, la couche r�eseau dealambic utilisera des paquets allant jusqu'�a 1 500 octets puisqu'ils sont �emis surl'Ethernet. La liaison SLIP, elle, fonctionne avec un MTU de 296 octets, aussi ilfaudrait que le code r�eseau de kro fragmente ces paquets IP en morceaux plus petitstenant dans 296 octets. Si, au lieu de cela, vous aviez con�gur�e la route sur gueuzepour utiliser depuis le d�ebut 296 octets, cette fragmentation relativement couteuseaurait 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�egleSNARL ((( les sous-r�eseaux sont locaux ))). Il s'agit de l'option de con�guration dunoyau d�ecrite dans le chapitre 3.

En�n, consultez les pages de manuel et les documentations de la version de Linux etdes commandes que vous poss�edez. �A l'heure o�u nous �ecrivons ces lignes, certaines deces nouvelles caract�eristiques sont d�ej�a op�erationnelles.

Page 100: Administration Reseau Sous Linux

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��erentesm�ethodes pour convertir les noms des machines en adresses IP. La plus simple, qui netire aucun parti de la fa�con dont l'espace de noms est organis�e, utilise une table stock�eedans le �chier /etc/hosts. Elle n'est utilisable que sur de petits r�eseaux locaux g�er�espar un seul administrateur, et n'ayant aucun acc�es au monde ext�erieur. Le format dece �chier a �et�e d�ecrit dans le chapitre 5.

L'autre alternative consiste �a utiliser BIND, Berkeley Internet Name Domain, pour lar�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, leservice des noms est r�ealis�e par le programme appel�e named. Au d�emarrage, il chargeun ensemble de �chiers de r�ef�erence dans son cache interne et attend les requetes enprovenance des machines distantes ou des processus utilisateur locaux. Il y a plusieursfa�cons de con�gurer BIND, et toutes ne n�ecessitent pas la pr�esence d'un serveur denoms sur chaque hote.

Ce chapitre ne pourra pas faire beaucoup plus que vous donner une esquisse de lamani�ere de faire fonctionner un serveur de noms. Si vous comptez employer BINDdans un environnement plus important qu'un petit r�eseau local, avec probablementun lien sur l'Internet, vous devrez acheter un bon livre traitant du sujet, comme (( DNSand BIND )) de Cricket Liu (voir [AlbitzLiu92]). Pour une documentation �a jour, vousdevrez 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 : ils'agit vraiment d'un document tr�es utile. Il existe �egalement un forum Usenet d�edi�eaux questions relatives au DNS, dont le nom est comp.protocols.tcp-ip.domains.

Page 101: Administration Reseau Sous Linux

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 labiblioth�eque C standard. Les principales sont gethostbyname(2) et gethostbyaddr(2),qui recherchent toutes les adresses IP appartenant �a un nom d'hote, et vice versa. Ellespeuvent 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 hostsde NIS (Network Information Service). D'autres applications, comme smail, peuventinclure des pilotes pour chacune de ces m�ethodes et leur con�guration demande unsoin tout particulier.

Les parties s'occupant du DNS dans le resolver proviennent �a l'origine des sourcesde BIND, qui contiennent �egalement le serveur de noms named que nous d�etailleronsplus 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 nousallons d�ecrire. Pour tout le reste, les di��erentes versions des biblioth�eques devraientavoir un comportement identique.

6.1.1 Le �chier host.conf

Le �chier central qui controle le comportement du resolver est host.conf. Il se trouvedans /etc et indique aux fonctions de la biblioth�eque quels services utiliser, et dansquel ordre.

Dans host.conf, chaque option doit se trouver sur une ligne s�epar�ee. Les champspeuvent etre d�elimit�es par des espaces ou des tabulations. Le signe di�ese (#) introduitun 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. Lesvaleurs valides sont bind pour l'interrogation du serveur de noms,hosts pour une recherche dans le �chier /etc/hosts, et nis pour utiliserNIS. Tous peuvent etre sp�eci��es, �eventuellement.

multi Prend les arguments on ou o�, indiquant si un hote cit�e dans le �chier/etc/hosts est autoris�e �a poss�eder plusieurs adresses IP, ou non. Cetteoption n'a aucun e�et sur les requetes DNS ou NIS.

nospoof Comme nous l'avons expliqu�e dans le chapitre pr�ec�edent, DNS vouspermet de trouver le nom d'hote appartenant �a une adresse IP donn�eeen utilisant le domaine in-addr.arpa. Les tentatives d'envoi d'unfaux nom sont appel�ees le (( spoo�ng )). Pour se pr�eserver, le resolverpeut etre con�gur�e pour tester si l'adresse IP originale est vraimentassoci�ee avec le nom obtenu. Si ce n'est pas le cas, le nom est rejet�e

Page 102: Administration Reseau Sous Linux

6.1. La biblioth�eque resolver 85

et une erreur est retourn�ee. Ce comportement est mis en service enmettant 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 nomsd'hotes avant la recherche. Tr�es utile pour les entr�ees hosts, o�u vouspouvez ne trouver que des noms de machines sans domaine local.La recherche d'un hote comprenant le domaine local verra ce derniersupprim�e, permettant ainsi �a la recherche dans /etc/hosts d'aboutir.

L'option trim est cumulative, votre hote pouvant alors etre consid�er�ecomme local �a plusieurs domaines.

Un exemple d'un tel �chier pour la machine kro est 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 devariables 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 sonthosts, 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�etementinvalid�e par o�. Les valeurs warn et warn o� mettent le test de spoo-

Page 103: Administration Reseau Sous Linux

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 �chierhost.conf.

RESOLV MULTI Les valeurs on ou o� sont utilis�ees pour prendre le dessus sur cellesindiqu�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�eedans host.conf par l'option trim.

RESOLV ADD TRIM DOMAINS

Sp�eci�e une liste de domaines �a supprimer, qui s'ajoutera �a celledonn�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 recherchede noms, vous devez aussi lui indiquer quels serveurs de noms il doit utiliser. Il y aun �chier s�epar�e destin�e �a cet usage, resolv.conf. S'il n'existe pas, ou s'il est vide, leresolver consid�erera que le serveur de noms se trouve sur votre propre machine.

Pour utiliser un serveur de noms sur votre hote 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�aexistant, cette solution sera toujours �a pr�ef�erer.

L'option la plus importante dans resolv.conf est nameserver, qui indique l'adresse IPdu serveur de noms �a contacter. Si vous en sp�eci�ez plusieurs, en utilisant cetteoption plusieurs fois, ils seront essay�es dans l'ordre donn�e. Par cons�equent, vous deveztoujours indiquer le plus �able en premier. L'impl�ementation courante autorise jusqu'�atrois 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 raccourcispour les hotes appartenant �a votre domaine local. G�en�eralement, pour vous connectersur 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 toutseul.

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, enrecherchant gauss, il ne trouvera pas (( gauss. )) puisqu'il n'y a aucun domaine dehaut niveau de ce nom. Si on lui indique mathematiques.groucho.edu commedomaine par d�efaut, il fera sa requete sur gauss.mathematiques.groucho.edu, quicette fois aboutira.

Page 104: Administration Reseau Sous Linux

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�epartementMath�ematiques, nous revoil�a avec ces noms pleinement quali��es. Et bien sur, vousvoudriez aussi pouvoir utiliser des raccourcis comme quark.physique pour atteindreles 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 uneliste de recherche, qui correspond �a une g�en�eralisation de la d�eclaration domain. L�ao�u cette derni�ere n'autorise qu'un seul domaine par d�efaut, search permet de sp�eci�ertoute une liste de domaines, chacun �etant essay�es jusqu'�a ce que la recherche aboutisse.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 ledomaine par d�efaut �a partir du nom d'hote 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 serautilis�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 resolverde version ant�erieure �a BIND-4.9 construisaient une liste de recherche par d�efaut �apartir du nom de domaine, si aucune liste n'�etait pr�ecis�ee. Cette liste par d�efaut �etaitconstitu�ee du domaine par d�efaut lui-meme, plus tous ses domaines parents, jusqu'�ala racine. Cela a pos�e quelques probl�emes car les requetes DNS aboutissaient �a desserveurs de noms qui n'auraient jamais du etre concern�es.

Supposons que vous vous trouviez �a (( La bi�ere virtuelle )), et que vous vouliez vousconnecter �a la machine foot.groucho.edu. Mais, ayant un peu abus�e des productionsde 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 doncqu'il ne conna�t aucun hote de ce nom. Avec l'ancienne impl�ementation de la listede recherche, le resolver commencerait alors �a rajouter bibine.com, puis com aubout. Ce dernier cas pose un gros probl�eme car groucho.edu.com pourrait etre undomaine valide. Leur serveur de noms pourrait meme trouver une machine foo dansleur domaine, ce qui n'est pas du tout ce que vous vouliez 1 !

Dans certaines applications, ces recherches bogu�ees peuvent poser des probl�emes des�ecurit�e. Par cons�equent, vous devez g�en�eralement limiter les domaines de votre listede 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 �amaths.groucho.edu et groucho.edu.

Si vous trouvez que les domaines par d�efaut sont un peu di�ciles �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.

Page 105: Administration Reseau Sous Linux

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 letrouvant 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 extremement bien fournis, puisque toutes les requetesleur seront pass�ees. Toutefois, cette m�ethode a ses failles : lorsqu'un incendie d�etruisitun jour le cable de la dorsale de notre universit�e, plus aucun travail ne fut possiblesur notre r�eseau local car aucun resolver ne pouvait plus atteindre aucun serveur denoms. 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 contreles pannes, toujours possibles.

Vous pouvez par exemple installer un serveur de noms local, qui g�ere les machinesde votre domaine local et renvoie les requetes pour tous les autres noms aux ser-veurs principaux. Bien entendu, cela n'est possible que si vous poss�edez votre propredomaine local.

Alternativement, vous pouvez maintenir une sauvegarde des hotes de votre r�eseaudans le �chier /etc/hosts. �A ce moment-l�a, vous mettriez dans le �chier /etc/host.confla ligne (( order bind hosts )) a�n que le resolver utilise ce �chier hosts en cas de pannedu 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'�ad'autres serveurs de noms. La version actuellement utilis�ee sous Linux semble etreBIND-4.8.3. La nouvelle version, BIND-4.9.3, est encore en beta-test �a l'heure ounous �ecrivons ce livre 2. Elle comporte de nombreuses nouveaut�es, comme des zoness�ecuris�ees pour restreindre les transferts �a certains hotes ou r�eseaux. Consultez ladocumentation 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�condont DNS, le Domain Name System, fonctionne. Si tout ce qui va suivre vous para�tconfus, relisez le chapitre 2, qui contient les notions de base n�ecessaires.

2: BIND-4.9 est d�evelopp�e par Paul Vixie, [email protected].

Page 106: Administration Reseau Sous Linux

6.2. Utilisation de named 89

Le programme named est en principe lanc�e au d�emarrage du syst�eme et fonctionnecontinuellement jusqu'�a l'arret de la machine. Il prend ses informations dans un �chierde con�guration nomm�e /etc/named.boot, ainsi que dans divers autres �chiers quicontiennent des correspondances entre domaines et adresses, et d'autres donn�ees dece 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

Aussitot, named va lire le �chier named.boot et tous les �chiers de zone indiqu�esdedans. 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'�ecoutedu port 53 en attente de requetes DNS 3.

6.2.1 Le �chier named.boot

Le �chier named.boot est g�en�eralement tr�es petit et ne contient pratiquement que despointeurs vers des �chiers de r�ef�erence, dans lesquels se trouvent les informations dela zone et des pointeurs sur d'autres serveurs de noms. Les commentaires commencentpar un point-virgule et s'�etendent jusqu'�a la �n de la ligne. Avant de d�etailler le formatde ce �chier, regardons un exemple pratique : le �chier named.boot de la machine kro,�gure 6.2 4.

;

; 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.

Page 107: Administration Reseau Sous Linux

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 desinformations dans named. Ces informations sont prises dans les �chiers de r�ef�erenceindiqu�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 troisdomaines, comme l'indiquent les trois lignes primary de la �n du �chier. La premi�erede ces lignes, par exemple, indique �a named qu'il doit agir comme serveur primairepour bibine.com, en prenant les informations de zone dans le �chier named.hosts. Lemot 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 depuisle �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 nomde ces �chiers peut ensuite etre indiqu�e relativement �a ce r�epertoire.Il est possible d'avoir plusieurs r�epertoires en indiquant chaque foisle mot-cl�e directory. Selon le standard adopt�e sous Linux, ce doit etreen 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 pourle domaine, mais il ne les r�ecup�ere pas dans des �chiers ; il essaie deles t�el�echarger depuis le serveur primaire. L'adresse IP d'au moins unserveur primaire doit etre fournie �a named dans la liste d'adresses. Leserveur de noms local contactera tour �a tour chacune d'elles jusqu'�ace qu'il ait r�eussi �a transf�erer la base de donn�ees de la zone, qui seraalors stock�ee dans le �chier de sauvegarde sp�eci��e dans le troisi�emeargument. Si aucun des serveurs primaires ne r�epond, les informations

Page 108: Administration Reseau Sous Linux

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 leRR de type SOA.

cache Prend un domaine et un nom de fichier en arguments. Ce �chiercontient les informations sur les domaines racine, qui est une listed'enregistrements pointant vers les serveurs de noms racine. Seuls lesenregistrements NS et A seront reconnus. Le domaine doit etre soitle nom du domaine racine, soit un simple point (.).

Cette information est absolument cruciale pour named : si la lignecache n'appara�t pas dans le �chier d'amor�cage, named ne cr�eerapas du tout de cache. Les performances seront alors s�erieusementd�egrad�ees et la charge du r�eseau extremement augment�ee si le serveursuivant n'est pas sur le r�eseau local. De plus, named sera incapable dejoindre les serveurs racine, et par cons�equent il ne r�esoudra aucuneadresse, except�ees celles pour lesquelles il a autorit�e.

forwarders Prend une liste d'adresses en argument. Les adresses IP �gurantdans cette liste d�esignent des serveurs de noms que named peut in-terroger s'il �echoue dans la r�esolution d'une requete en utilisant soncache local. Elles sont essay�ees dans l'ordre indiqu�e, jusqu'�a ce quel'un de ces serveurs r�eponde �a la requete.

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-meme, maisles 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 basede donn�ees : $INCLUDE et $ORIGIN. Elles sont rarement utilis�ees, aussi nous ne lesd�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 undomaine associ�e, qui est appel�e l'origine. Il s'agit du nom de domaine sp�eci��e par lescommandes 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�edans un �chier de con�guration sera consid�er�e comme absolu s'il se termine par unpoint, sinon il sera compris comme relatif �a l'origine. Cette origine peut etre elle-memeindiqu�ee par le signe (( @ )) (A commercial).

Les donn�ees contenues dans un �chier de r�ef�erence sont divis�ees en enregistrementsappel�es resource records, ou RR en abr�eg�e. Ils constituent la plus petite unit�e d'infor-

Page 109: Administration Reseau Sous Linux

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, faitcorrespondre un nom d'hote �a une adresse IP, et un enregistrement de type CNAMEassocie un alias �a un nom o�ciel 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'�etendresur plusieurs lignes s'il y a une parenth�ese ouvrante avant le premier caract�ere de sautde ligne, et si le dernier champ est suivi d'une parenth�ese fermante. Tout ce qui setrouve entre un signe point-virgule et le saut de ligne suivant est consid�er�e comme uncommentaire et donc ignor�e.

domaine Il s'agit du nom de domaine auquel s'appliquent les entr�ees. Si aucundomaine n'est donn�e, le RR est consid�er�e comme s'appliquant audomaine du pr�ec�edent RR.

ttl A�n de forcer les resolvers �a supprimer l'information au bout d'uncertain 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 ensecondes pendant lequel l'information restera valide apr�es qu'elle a�et�e r�ecup�er�ee sur le serveur. Il s'agit d'un nombre d�ecimal comportant8 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, HSpour 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 quisera prise.

type D�ecrit le type du RR. Les types d'enregistrement les plus courantssont A, SOA, PTR, et NS. Nous verrons bientot �a quoi ils correspon-dent.

donn�ees Contient les donn�ees associ�ees avec le RR. Le format de ce champd�epend du type de l'enregistrement. Il sera d�ecrit s�epar�ement, avecchaque 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 peuemploy�es.

Page 110: Administration Reseau Sous Linux

6.2. Utilisation de named 93

SOA SOA signi�e (( Start of Authority )) et signale que l'enregistrement quisuit contient les informations ayant autorit�e pour ce domaine. Chaque�chier de r�ef�erence inclus par une instruction primary doit contenirun 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 demani�ere absolue.

contact L'adresse �electronique de la personne responsablede 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�esous la forme d'un nombre d�ecimal entier. Chaquefois que des donn�ees sont modi��ees, ce nombre doitetre incr�ement�e.

Ce num�ero de s�erie est utilis�e par les serveurs denoms secondaires pour savoir quand les informationsde zone ont chang�e. Pour rester �a jour, les serveurssecondaires demandent l'enregistrement SOA du pri-maire �a intervalles r�eguliers et comparent le num�erode s�erie �a celui du SOA se trouvant dans leur cache.S'il a chang�e, les serveurs secondaires t�el�echargentalors toute la base de donn�ees de la zone depuis leserveur 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�aencore, il s'agit d'un nombre d�ecimal entier exprim�esur 8 chi�res au plus.

G�en�eralement, la topologie du r�eseau ne change pastr�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

Page 111: Administration Reseau Sous Linux

94 Chapitre 6. Con�guration du serveur de noms et du resolver

primaire si une requete ou un rafra�chissement dezone �echoue. Il ne doit pas etre trop faible, sinonune panne momentan�ee du serveur ou un probl�emer�eseau peut amener le serveur secondaire �a gacherinutilement 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 unserveur 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 moinsune semaine (60 4800 secondes), mais l'augmenterjusqu'�a un mois reste encore raisonnable.

minimum Il s'agit de la valeur ttl par d�efaut pour les RR quin'en contiennent pas explicitement une. Cette valeursp�eci�e le temps maximal pendant lequel les autresserveurs de noms doivent conserver le RR dans leurcache. Il ne s'applique qu'aux requetes normales, etn'a aucun rapport avec le temps au bout duquel unserveur secondaire doit essayer de mettre �a jour lesinformations 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, vouspourrez toujours leur assigner des valeurs ttl indivi-duelles. Si, d'un autre cot�e, votre r�eseau est souventmodi��e, vous pourrez peut-etre ramener cette valeur�a environ une journ�ee (86 400 secondes).

A Cet enregistrement associe une adresse IP �a un nom de machine. Lechamp de donn�ees contient l'adresse en notation sur 4 octets.

Pour chaque hote, il ne doit exister qu'un enregistrement de type A.Le nom utilis�e est consid�er�e comme le nom o�ciel, ou nom canonique,de la machine. Tous les autres noms sont des alias et doivent etreassoci�es au nom canonique par un enregistrement de type CNAME.

NS Les enregistrements NS servent �a sp�eci�er un serveur primaire dezone et tous ses serveurs secondaires. Ils pointent vers un serveur denoms ma�tre de la zone concern�ee, le champ de donn�ees contenant lenom 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 basede donn�ees de la zone subordonn�ee elle-meme. Les listes de serveurssp�eci��es dans les zones parent et d�el�egu�ees doivent correspondre.

Page 112: Administration Reseau Sous Linux

6.2. Utilisation de named 95

A�n de r�esoudre le nom vers lequel pointe un enregistrement NS, unenregistrement A suppl�ementaire peut etre n�ecessaire, le fameux gluerecord 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 esthors du domaine d�el�egu�e.

CNAME Cet enregistrement associe un alias au nom canonique d'un hote. Lenom canonique est celui indiqu�e par un enregistrement A ; les aliasy sont simplement li�es par un CNAME, mais ne poss�edent pas leurpropre enregistrement.

PTR Ce type d'enregistrement est utilis�e pour associer les noms dans ledomaine in-addr.arpa avec les noms d'hotes. Il sert �a la recherchedes noms en fonction de l'adresse IP (recherche inverse). Le nomindiqu�e doit etre le nom canonique.

MX Cet RR annonce un �echangeur de courrier (mail exchanger) pour undomaine. Le sujet est d�ecrit dans la section (( Mail Routing on theInternet )), chapitre 13. La syntaxe d'un enregistrement MX est :

[domaine] [ttl] [classe] MX pr�ef�erence hote

L'argument hote nomme l'�echangeur de courrier pour domaine.Chaque �echangeur est associ�e �a une pr�ef�erence, nombre entier. Unprogramme agent de transport de courrier d�esirant d�elivrer un mes-sage �a domaine essaiera tous les hotes qui ont un enregistrement MXpour ce domaine, jusqu'�a ce qu'il aboutisse. Celui dont la valeur depr�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 lamachine. 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 etred�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 nomsreconnus, 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 nomsde l'entreprise (( La bi�ere virtuelle )), situ�e sur la machine kro. En raison de la naturedu r�eseau (un simple r�eseau local), l'exemple est assez simple. Si vos besoins sont plus

Page 113: Administration Reseau Sous Linux

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 livreDNS 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�eralenviron une douzaine de serveurs de noms. Vous pouvez obtenir la liste courante desserveurs de noms pour le domaine racine en employant l'utilitaire nslookup d�ecrit dansla section suivante 5.

;

; /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�er le 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. Dansle 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 enchoisit un au hasard).

Le mode interactif est bien plus int�eressant. En plus de pouvoir obtenir des ren-seignements sur des hotes individuels, vous pouvez demander n'importe quel typed'enregistrement DNS et t�el�echarger la totalit�e des informations de zone pour undomaine.

Invoqu�e sans arguments, nslookup a�che le serveur de noms qu'il utilise et passe enmode 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.

Page 114: Administration Reseau Sous Linux

6.2. Utilisation de named 97

;

; /var/named/named.hosts Hotes 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.

Page 115: Administration Reseau Sous Linux

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 declasse 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 enregistrementsque le type A par la commande set type. Par exemple, pour obtenir l'enregistrementSOA de unc.edu, vous feriez :

Page 116: Administration Reseau Sous Linux

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 meme 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 listedes serveurs de noms racine courants. Vous pouvez l'obtenir en demandant tous lesenregistrements 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

Page 117: Administration Reseau Sous Linux

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 lacommande help.

6.2.5 Autres outils pratiques

Il existe quelques utilitaires pouvant vous aider dans votre tache d'administration d'unserveur de noms ; nous allons en d�ecrire bri�evement deux. Consultez la documentationfournie avec ces programmes pour en avoir le mode d'emploi.

Le programme hostcvt est un outil qui vous aidera pour la con�guration initiale enconvertissant 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 prendsoin des �eventuels alias. Bien sur, il ne fera pas tout le travail pour vous ; vous devreztout de meme �editer le r�esultat, ne serait-ce que pour ajuster les di��erentes valeursde temporisation dans le SOA, ou rajouter des MX, par exemple. Mais il peut malgr�etout vous faire �economiser quelques cachets d'aspirine. Ce programme fait partie dela distribution source de BIND, mais on peut aussi le trouver seul sur quelques sitesdi�usant Linux.

Apr�es avoir con�gur�e votre serveur de noms, vous pouvez avoir envie de tester ler�esultat. L'outil id�eal (et le seul, �a notre connaissance), s'appelle dnswalk. Il s'agit d'unprogramme en langage perl qui traverse votre base de donn�ees DNS, �a la recherche deserreurs courantes et en v�eri�ant que les informations sont coh�erentes. Il a �et�e di�us�esur le forum Usenet comp.sources.misc r�ecemment, et devrait etre disponible surtous les sites qui archivent ce groupe (ftp.uu.net si vous ne trouvez vraiment pas desite plus proche de chez vous).

Page 118: Administration Reseau Sous Linux

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. Endehors 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 pluscompliqu�ee que celle d'une bo�te aux lettres, et le nombre croissant de fournisseurs deconnectivit�e IP par t�el�ephone rend ce type d'acc�es abordable pour tout le monde 1.

Linux supporte aussi bien SLIP que PPP. Ce dernier protocole, dont le pilote estl'�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 nousl'avons d�ecrit auparavant dans cet ouvrage. Vous devez au moins poss�eder l'interfaceloopback et o�rir une m�ethode quelconque de r�esolution de noms. Si vous comptez vousconnecter �a l'Internet, vous devrez bien entendu employer le DNS. L'option la plussimple et n�eanmoins e�cace est de mettre l'adresse d'un serveur de noms accessibledans votre �chier resolv.conf, puis d'ajouter l'option bind dans /etc/host.conf si ellen'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 serala 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 pouvezaussi installer un serveur de noms cache seulement. Il ne g�ere pas vraiment un do-maine, mais fonctionne comme un relais pour toutes les requetes DNS g�en�er�ees parvotre machine. Son avantage sera le cache, grace auquel les requetes n'auront �a passer

1: C'est encore loin d'etre vrai en France.

Page 119: Administration Reseau Sous Linux

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 seulementressemble �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 serveursde 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 programmeou 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 memes op�erations de votre cot�e.

Dans certains syst�emes d'exploitation, le pilote SLIP est un programme fonctionnantau niveau utilisateur ; sous Linux il est partie int�egrante du noyau, ce qui le rendbeaucoup plus rapide. Cela n�ecessite toutefois que la ligne s�erie soit convertie en modeSLIP 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 lesprocessus utilisateurs, grace aux fonctions standards read(2) et write(2) et le piloteSLIP est incapable d'�ecrire ou de lire sur ce tty. En mode SLIPDISC, les roles sontinvers�es : tout processus utilisateur est interdit de lecture ou d'�ecriture, et les donn�eesdu 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-tetesVan Jacobson sur les paquets IP sortants 2, qui am�eliore dans de grandes proportionsla vitesse en utilisation interactive. De plus, il existe des versions 6 bits de chacun deces 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 quevous 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'unedes interfaces r�eseau SLIP. S'il s'agit de votre premi�ere liaison, la ligne sera atta-

2: La compression d'en-tetes Van Jacobson est d�ecrite dans le RFC 1144.

Page 120: Administration Reseau Sous Linux

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 actuelssupportent 4, 8 ou 16 liaisons SLIP simultan�ees.

L'encapsulation choisie par d�efaut par slattach est CSLIP. Vous pouvez choisir unautre mode grace �a l'option -p ; pour le mode SLIP normal (sans compression) ceserait :

# 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 typed'encapsulation SLIP est employ�e par le site distant.

Vous devez utiliser la meme encapsulation �a chaque bout. Par exemple, si votre cor-respondant emploie CSLIP, vous devez le faire aussi, sinon la liaison sera incorrecte.Les symptomes sont en g�en�eral qu'un ping ne revient pas, et l'autre cot�e de la liaisonpeut a�cher 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 taperles 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 avecgogoslip, les deux autres ajoutent une route vers cette machine et positionne cellepar 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, laseconde �etant l'utilisation de kro-slip comme adresse de l'interface SLIP locale.

Nous avons dit auparavant que l'on pouvait utiliser la meme adresse qui est assign�ee �al'interface Ethernet de kro pour SLIP. Dans le cas pr�esent, kro-slip pourrait tr�es bienn'etre qu'un alias de 172.16.1.1. Toutefois, il peut arriver que l'on soit oblig�e d'utiliserune adresse compl�etement di��erente pour la liaison SLIP ; c'est le cas par exemplelorsque le r�eseau utilise une adresse IP de r�eseau non enregistr�ee o�ciellement, commecela se passe �a (( La bi�ere virtuelle )). Nous reviendrons sur ce sujet en d�etail dans lasection suivante.

Jusqu'�a la �n de ce chapitre, nous utiliserons toujours kro-slip pour d�esigner l'adressede l'interface SLIP locale.

Page 121: Administration Reseau Sous Linux

104 Chapitre 7. IP sur ligne s�erie | SLIP

�A la �n de la session, vous devez d'abord supprimer toutes les routes vers gogoslippar l'option del de la commande route, puis mettre l'interface hors service, et envoyerle signal HUP �a slattach (hangup, d�econnexion de ligne). Ensuite, vous couperez laliaison 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 hotes de l'entreprise

ne peuvent pas parler �a des machines connect�ees sur l'Internet, car les trames seraientdiscr�etement �elimin�ees par le premier routeur venu.

Pour contourner ce probl�eme, nous allons con�gurer kro comme une sorte de rampede lancement permettant d'acc�eder aux services Internet. Pour le monde ext�erieur,elle se pr�esentera comme un hote tout �a fait normal, avec une adresse IP dumentenregistr�ee (probablement assign�ee par le fournisseur de services). Pour avoir acc�es �al'Internet, par exemple �a un serveur FTP, les utilisateurs doivent se connecter sur kroet invoquer le client FTP sur cette machine, de sorte que la connexion paraisse venird'un hote valide. Pour les autres applications, il peut y avoir des solutions �evitant cetteconnexion interm�ediaire. Les utilisateurs de WWW par exemple, peuvent employerce que l'on appelle un serveur proxy sur kro, qui fera le relais des requetes vers lesserveurs 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�ealiserune con�guration �rewall tr�es e�cace. Les �rewalls sont des hotes d�edi�es destin�es �ao�rir des acc�es limit�es �a l'Internet aux utilisateurs d'un r�eseau local, sans exposer cer�eseau aux attaques ext�erieures.

Consid�erons que nos brasseurs se sont vu attribuer pour la session SLIP, l'adresse IP192.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 plutot 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

Page 122: Administration Reseau Sous Linux

7.4. Utilisation de dip 105

tout se fasse tout seul. C'est le role du programme dip. 3. La version actuelle, �a l'heureo�u nous �ecrivons ces lignes, est 3.3.7. Il a �et�e �enorm�ement modi��e par un grand nombrede personnes, aussi il n'est plus possible de parler d'un unique programme dip. Cesdi��erentes variantes de d�eveloppement aboutiront heureusement un jour �a une seuleversion d�e�nitive.

Le programme dip o�re un petit langage script permettant de dialoguer avec le modemet le serveur, passer en mode SLIP et con�gurer les interfaces. Il est tr�es primitif etlimit�e, mais su�sant dans la plupart des cas. Ce langage changera peut-etre dans unefuture version, plus �elabor�ee.

Pour pouvoir con�gurer l'interface SLIP, dip a besoin des privil�eges root. Il seraittentant de l'installer setuid �a root, pour que tout utilisateur ordinaire puisse appelerun service SLIP sans qu'il soit n�ecessaire de lui donner l'acc�es superutilisateur. C'estpourtant une m�ethode extremement dangereuse, car con�gurer de mauvaises inter-faces ou routes par d�efaut avec dip peut paralyser compl�etement votre r�eseau. Pis, celaautoriserait 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-memedes liaisons SLIP, la meilleure solution est d'�ecrire un petit programme frontal pourchaque serveur �a connecter, qui lui seul r�ealisera l'appel �a dip en tant que root avecles scripts adapt�es �a chaque cas, en toute s�ecurit�e. 4

7.4.1 Exemple de script

Supposons que l'hote avec lequel nous voulons r�ealiser notre connexion SLIP soitgogoslip, et que nous ayons d�ej�a �ecrit un script appel�e gogoslip.dip. Nous appelleronsdip 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�etacherdu terminal et se mettre en arri�ere-plan. Vous pouvez alors commencer �a utiliserles services r�eseaux habituels par la liaison SLIP. Pour terminer la session, invoquezsimplement dip avec l'option -k. Cela enverra simplement un signal HUP au processusindiqu�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.

Page 123: Administration Reseau Sous Linux

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 ATQ0V1E1X1\r

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 \r\n\r\n

wait ogin: 10

if $errlvl != 0 goto error

send Skro\n

wait ssword: 5

if $errlvl != 0 goto error

send salut\n

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.

Page 124: Administration Reseau Sous Linux

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�ethodepar laquelle dip initialise une variable. Ici, la machine locale est kro-slip et la machinedistante gogoslip.

Les cinq instructions suivantes initialisent le terminal et le modem : reset envoie unecommande de remise �a z�ero du modem ; pour les modems compatibles Hayes, il s'agitde ATZ. La ligne suivante �elimine le cas �ech�eant tous les caract�eres d�ej�a re�cus par lemodem a�n que le dialogue avec le serveur puisse s'�etablir proprement. Cette s�equencede dialogue est tr�es simple : elle appelle le num�ero 41988, le num�ero de t�el�ephonede gogoslip, et se connecte sous le compte utilisateur Skro avec le mot de passesalut. La commande wait indique �a dip d'attendre la cha�ne de caract�eres donn�eecomme 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 produitependant l'ex�ecution de la commande.

Les derni�eres commandes ex�ecut�ees sont default, qui assigne la route par d�efaut �a laliaison SLIP, et mode, qui valide le mode SLIP sur la ligne s�erie et con�gure l'interfaceet 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 toutvous donner un r�esum�e des principales commandes. Vous pourrez avoir un aper�cu dela fonction de chacune d'elles en appelant dip en mode test et en tapant la commandehelp. Pour trouver la syntaxe d'une commande, vous pouvez l'entrer sans arguments ;

bien sur, 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> _

Page 125: Administration Reseau Sous Linux

108 Chapitre 7. IP sur ligne s�erie | SLIP

Tout au long de la section suivante, les exemples qui a�chent l'invite DIP> mon-trent comment entrer une commande en mode test et ce qu'elle a�che �a l'�ecran. Lesexemples d�epourvus de cette invite doivent etre consid�er�es comme des extraits descripts.

Les commandes modem

Dip o�re un certain nombre de commandes permettant la con�guration de la lignes�erie et du modem. Certaines parlent d'elles-memes, comme port, qui s�electionne leport s�erie �a utiliser, ou speed, databits, stopbits et parity, qui permettent d'initialiserles param�etres courants de la ligne (respectivement vitesse, nombre de bits, bits destop, et parit�e).

La commande modem s�electionne un type de modem. Pour l'instant, et pour encorelongtemps 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 commandesdial (num�erotation) et reset. La commande reset envoie une cha�ne de remise �a z�erodu 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 lesparasites) 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�eponsesde commandes pr�ec�edentes.

La commande init s�electionne une cha�ne d'initialisation �a envoyer au modem avantla 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 lapr�esence de la tonalit�e sur la ligne.

En�n, la commande dial envoie la cha�ne d'initialisation au modem et e�ectue lanum�erotation pour appeler le site distant. La commande de num�erotation par d�efautest ATD pour le type Hayes.

echo et term

La commande echo est une aide au d�eboguage. Dans ce mode, dip a�che sur la consoletout 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 determinal. Pour le quitter, entrez Ctrl-] (combinaison de touches peu pratique sur unclavier fran�cais).

Page 126: Administration Reseau Sous Linux

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'assignationd'une constante, comme nous l'avons fait dans gogoslip.dip. Vous pouvez �egalementdemander �a l'utilisateur de saisir la donn�ee, en sp�eci�ant le mot cl�e ask au lieu d'unevaleur :

DIP> get $local ask

Enter the value for $local: _

Une troisi�eme m�ethode consiste �a obtenir la valeur depuis la machine distante. Aussibizarre que cela puisse para�tre, c'est tr�es utile dans certains cas. Beaucoup de serveursSLIP ne vous autoriseront pas �a utiliser votre propre adresse IP sur cette liaison,mais vous en assigneront une dynamiquement lorsque vous appellerez, en a�chant unmessage 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 saurala r�ecup�erer tout seul :

# fin du dialogue login

wait address: 10

get $locip remote

La commande print

Elle est destin�ee �a a�cher du texte sur le terminal o�u dip a �et�e lanc�e. N'importe quellevariable 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 nomcommence 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'hote, dip stockera le nom canonique dans $local, et mettral'adresse correspondante dans $locip. La meme chose se passe pour $locip.

Les variables $remote et $rmtip ont la meme fonction, pour le nom de la machinedistante 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 directementpar la commande get. Un hote, ou toute autre variable, ne peut etre initialis�e que parles commandes correspondantes, mais peut etre utilis�e dans les instructions print ; cesont $modem, $port et $speed.

Page 127: Administration Reseau Sous Linux

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 de0 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�etedu 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, $locipet $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�ediatementpar le caract�ere deux-points (:).

send, wait, et sleep

Ces commandes aident �a impl�ementer des scripts de dialogue simples : send envoie sesarguments sur la ligne s�erie. Il ne supporte pas les variables, mais comprend toutesles s�equences d'�echappement du langage C comme \n et \b. Le caract�ere tilde (~) sertd'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�eriejusqu'�a ce qu'il reconnaisse ce mot, qui ne doit contenir aucun blanc. Vous pouvezajouter un temps maximal (en secondes) comme deuxi�eme argument ; si le mot n'estpas trouv�e pendant ce laps de temps, l'analyse s'arretera et la variable $errlvl serapositionn�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�tque 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

Page 128: Administration Reseau Sous Linux

7.5. Utilisation en mode serveur 111

l'interface pour une liaison point-�a-point, et appelle route pour positionner la routevers la machine distante.

Si, de plus, le script ex�ecute la commande default avant mode, dip fera aussi pointerla 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 di�cile. 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 unecon�guration beaucoup plus �etendue, vous permettant d'ex�ecuter des shell-scripts �ala connexion et d�econnexion de chaque machine. En fait, c'est le programme le plusadapt�e pour r�ealiser un serveur SLIP.

Quel que soit votre choix, vous devrez pr�eparer un compte utilisateur par client SLIPappel�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�edugenou 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 sur �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 connexionpour 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 lamachine appelante. Ensuite vient le champ d'informations, sans aucune signi�cationpour le programme (pas encore, du moins). Le dernier champ d�ecrit les param�etresde 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 �chierdiphosts, et si le champ du mot de passe n'est pas vide, il le lui demande. La cha�neentr�ee par l'utilisateur est compar�ee avec celle (en clair, non crypt�ee) contenue dansdiphosts. Si elles ne correspondent pas, l'utilisateur est refus�e.

Page 129: Administration Reseau Sous Linux

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'interfaceet la route. Cette connexion reste �etablie jusqu'�a ce que l'utilisateur se d�econnecte etque le modem coupe la ligne ; diplogin remettra alors la discipline de ligne normale ets'arretera.

Attention, diplogin n�ecessite les privil�eges du superutilisateur. Si vous n'utilisez pasdip avec les permissions setuid root, diplogin devra etre une copie s�epar�ee (et non unsimple lien) a�n de pouvoir en toute s�ecurit�e le positionner setuid, sans a�ecter dip.

Page 130: Administration Reseau Sous Linux

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 parune 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��erentesm�ethodes d'authenti�cation. Chacune de ces possibilit�es fait l'objet d'un protocoles�epar�e. Ici, nous ne d�ecrirons que bri�evement ces di��erentes (( briques )) qui composentPPP, pour en savoir plus, nous vous conseillons de lire ses sp�eci�cations dans leRFC 1548, et tous ceux qui y sont relatifs 1.

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 PPPest capable de contenir des paquets d'autres protocoles que IP, comme Novell IPX ouAppletalk. PPP r�ealise cela en rajoutant un champ protocole �a la trame HDLC debase qui identi�e le type de paquet transf�er�e.

LCP, le protocole de controle de liaison (Link Control Protocol), est utilis�e par-dessusHDLC 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 cot�e du lien estcapable de recevoir.

Au stade de la con�guration, l'authenti�cation client est une �etape importante dansl'�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).

Page 131: Administration Reseau Sous Linux

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. Sil'appelant �echoue, la connexion se termine imm�ediatement. Sous PPP, l'identi�cationest 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 protocolespermettant deux types distincts d'authenti�cation, que nous d�ecrirons plus loin. Ilss'appellent PAP (Password Authentication Protocol) et CHAP (Challenge HandshakeAuthentication Protocol).

Chaque protocole r�eseau rout�e par la liaison s�erie, comme IP, Appletalk, etc., estcon�gur�e dynamiquement par un protocole de controle r�eseau, (( Network Control

Protocol )), ou NCP. Par exemple, pour envoyer des datagrammes IP, les deux cot�esde PPP doivent d'abord n�egocier quelle adresse IP chacun d'eux utilisera. Le protocolede controle utilis�e �a cet e�et est IPCP, le protocole de controle de protocoles Internet,(( Internet Protocol Control Protocol )).

En plus du transfert de datagrammes IP standard, PPP supporte aussi la compressionVan Jacobson de ces trames IP. Il s'agit d'une technique de r�eduction des en-tetesTCP jusqu'�a une taille de 3 octets, �egalement utilis�ee dans CSLIP et que l'on appelleen principe la compression d'en-tetes 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 dansle noyau, et un d�emon pppd fonctionnant au niveau utilisateur, g�erant les di��erentsprotocoles de controle. 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 e�cace.

Le pilote PPP inclus dans le noyau est �ecrit par Michael Callahan, qui fut rejointpar 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 DrewPerkins et maintenue actuellement par Paul Mackerras ; la partie Linux est maintenuepar Alfred Longyear. Le programme chat est l'�uvre de Karl Fox 3.

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 sontpass�ees au pilote PPP, qui teste la validit�e des trames HDLC (chacune comporte unchecksum sur 16 bits), puis les traite. Actuellement, seuls les datagrammes IP sont

3: Karl Fox peut etre joint �a l'adresse [email protected]. 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.

Page 132: Administration Reseau Sous Linux

8.3. Utilisation de pppd 115

support�es, avec la compression VJ en option. Si Linux supporte un jour IPX, le pilotePPP 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 lesphases 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 certainnombre d'options. Comme PPP est plutot complexe, il est impossible de les expliquertoutes 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 pages de manuel et la documentation fournie avec la distribution source de pppd,o�u vous trouverez l'essentiel de ce qui n'est pas trait�e dans cet ouvrage. Si vous aveztoujours des probl�emes, tournez-vous vers le forum Usenet comp.protocols.ppp, o�uvous pourrez dialoguer avec la plupart des gens impliqu�es dans le d�eveloppement depppd.

8.3 Utilisation de pppd

Pour vous connecter �a l'Internet par une liaison PPP, il vous faut une con�gurationr�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 utiliserDNS 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 lamachine kro. Vous avez d�ej�a appel�e le serveur PPP, que nous appellerons pabo, etetes entr�e sur le syst�eme sous le compte utilisateur ppp. La machine pabo a d�ej�alanc�e son pilote PPP. Apr�es etre sorti du programme de communications que vousavez 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 IPavec l'hote pabo. La vitesse de transfert utilis�ee sur le port s�erie sera 38 400 bps.L'option crtscts valide le controle de ux RTS/CTS, ce qui est indispensable avec desvitesses sup�erieures �a 9 600 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, nousn'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, leprotocole de controle IP. Puisque nous n'avons sp�eci��e aucune adresse particuli�ere enappelant pppd dans l'exemple ci-dessus, il va essayer de prendre les adresses obtenuespar le resolver sur les noms de chaque hote. Chacun annoncera alors son adresse �al'autre.

Page 133: Administration Reseau Sous Linux

116 Chapitre 8. Le protocole Point-�a-Point | PPP

G�en�eralement, ce comportement par d�efaut est parfait. Meme si votre machine estsur un r�eseau Ethernet, vous pouvez employer la meme adresse IP pour les deuxinterfaces. N�eanmoins, pppd permet d'utiliser une adresse di��erente, ou meme dedemander �a l'autre cot�e de vous en assigner une. Ces options sont d�ecrites dans lasection (( Options de con�guration IP )).

Apr�es la phase de con�guration IPCP, pppd va pr�eparer la couche r�eseau de votresyst�eme �a l'utilisation d'une liaison PPP. Tout d'abord, il con�gure l'interface PPPcomme un lien point-�a-point, en prenant ppp0 pour la premi�ere interface active, ppp1pour la seconde, et ainsi de suite. Ensuite, il va initialiser une entr�ee dans la tablede routage qui pointe vers l'hote connect�e �a l'autre bout de la liaison. Dans l'exempleci-dessus, pppd mettra aussi la route par d�efaut sur pabo, car nous lui avons pass�el'option defaultroute 4. 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 autressch�emas de routage rendus possibles par pppd, nous les verrons en d�etail un peu plusloin.

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 indiquern'importe quelle option valide, sur plusieurs lignes si n�ecessaire ; les commentairessont 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 �eviteaux utilisateurs de forcer certains param�etres pouvant compromettre la s�ecurit�e. Parexemple, pour faire que pppd demande �a chaque fois que l'autre cot�e s'identi�e (avecPAP ou CHAP), il su�t d'ajouter l'option auth dans ce �chier. Elle ne pourra plusetre forc�ee par l'utilisateur, et il devient alors impossible d'�etablir une connexion PPPavec 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 ler�epertoire personnel de l'utilisateur. Il permet �a chacun de sp�eci�er ses propres optionspar 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'hote 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.

Page 134: Administration Reseau Sous Linux

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 verrouillagedes 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 quecertains autres programmes tentent d'acc�eder au port s�erie au meme moment.

L'int�eret de mettre ces options dans le �chier de con�guration global, c'est qu'ellesne pourront plus etre forc�ees par quiconque par la suite, o�rant ainsi un niveau des�ecurit�e raisonnable. Notez que quelques-unes n'ob�eissent pas �a cette r�egle, la cha�neconnect 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 vousa peut-etre rebut�e. �A la di��erence de dip, pppd ne poss�ede pas son propre langagescript pour l'appel d'un serveur, mais n�ecessite qu'un programme externe quelconqueprenne en charge cette op�eration. La commande n�ecessaire peut etre automatiquementex�ecut�ee par pppd, si on la lui passe en argument de l'option connect ; il redirigeraalors l'entr�ee et la sortie standard de la commande vers le port s�erie. Certains utilisentexpect, �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 der�ediger des scripts de dialogue dans le style UUCP. Il s'agit de s�equences de cha�nesde caract�eres que l'on attend du serveur distant, et des r�eponses que nous devonsenvoyer 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 luir�epondrons par le nom de l'utilisateur dugenou. Nous n'attendons que la cha�neogin:. Ainsi, que la premi�ere lettre soit majuscule ou minuscule, ou remplac�ee parun malheureux parasite, sera sans importance. Ensuite, nous attendons que l'on nousdemande le mot de passe (ssword:), et nous envoyons la r�eponse.

Un script de dialogue n'est pas autre chose. Bien sur, pour �etablir la communication,il faut �egalement y inclure les commandes n�ecessaires au modem. Supposons quevous disposez d'un modem Hayes (le contraire serait �etonnant), et que le num�ero det�el�ephone du serveur est 318714. Pour appeler pabo, la commande chat compl�ete estalors :

$ chat -v '' ATZ OK ATDT318714 CONNECT '' ogin: ppp word: GaGariN

Page 135: Administration Reseau Sous Linux

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 nedira jamais rien tant que nous ne lui avons pas adress�e la parole, nous indiquonsune cha�ne vide pour que chat n'attende pas ind�e�niment. Nous envoyons ensuiteATZ, la commande de remise �a z�ero des modems compatibles Hayes, et attendons sar�eponse (OK). La cha�ne suivante envoie la commande de num�erotation et le num�erode t�el�ephone, et attend le message CONNECT en r�eponse. L�a encore, cette attente estsuivie d'une cha�ne vide car nous ne voulons rien envoyer pour l'instant, il nous fautattendre l'invite du serveur. La suite de ce script fonctionne exactement comme nousl'avons d�ecrit plus haut.

L'option -v indique �a chat d'enregistrer toutes les activit�es dans les �chiers trace dusyst�eme, par le d�emon syslog ; c'est le niveau local2 qui est utilis�e 5.

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. Vouspouvez �eviter ce probl�eme en mettant ce script dans un �chier, disons par exempleappel-pabo. Il su�ra 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 deuxautres options �a la commande : -detach, qui demande �a pppd de ne pas se d�etacherde la console et passer en arri�ere-plan, et le mot cl�e modem, qui lui permet de g�ererla ligne s�erie dans le cas particulier d'un modem, par exemple en d�econnectant laligne 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 machinedistante.

Tous ces exemples sont plutot simples ; chat permet de faire des scripts bien pluscomplexes. Il o�re par exemple l'int�eressante possibilit�e de pouvoir abandonner lasession en retournant une erreur, en fonction des r�eponses obtenues. Les messages surlesquels on utilisera typiquement cette fonction sont BUSY ou NO CARRIER, que votremodem 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 scriptpar le mot cl�e ABORT :

$ chat -v ABORT BUSY ABORT 'NO CARRIER' '' ATZ OK ...

De meme, vous pouvez changer le temps d'attente maximal de toute partie du dialogueen 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 partiesdu 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.

Page 136: Administration Reseau Sous Linux

8.6. D�eboguer votre con�guration PPP 119

vous pouvez vouloir lui envoyer un BREAK, ou un retour-chariot. C'est r�ealisableen ajoutant un script secondaire �a une attente de cha�ne : il consiste en une s�erie des�equences attente/envoi, comme le script principal, mais qui sont s�epar�ees par destirets. Le script secondaire est ex�ecut�e lorsque la cha�ne attendue �a laquelle il estrattach�e n'est pas re�cue dans le temps imparti. Nous pourrions modi�er l'exemplepr�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 scriptsecondaire 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 retournantune 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 redirigeraces messages vers un �chier ou meme la console, sinon syslog les ignorera purement etsimplement. 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 consulterce �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. Cetteoption lui fera enregistrer le contenu de tous les paquets de controle 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 pppdavec l'option kdebug. Celle-ci doit etre suivie d'un argument num�erique qui est un OUavec les valeurs suivantes : 1 pour les messages g�en�eraux, 2 pour l'enregistrement ducontenu de toutes les trames HDLC entrantes, 4 pour celles sortantes. Pour capturerles messages de d�eboguage du noyau, vous devez soit employer une version de syslogdqui lit aussi le �chier /proc/kmsg, soit le d�emon klogd. Tous deux dirigent les messagesde 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 cot�e envoie un paquet IPCP de requete de con�guration, indi-quant les valeurs qu'il d�esire au lieu de celles par d�efaut. Le correspondant examinechaque option �a son tour et acquitte ou rejette la demande.

Page 137: Administration Reseau Sous Linux

120 Chapitre 8. Le protocole Point-�a-Point | PPP

Avec pppd, vous disposez d'un controle presque total des options IPCP qu'il tentera den�egocier. Vous pouvez les ajuster par di��erentes commandes que nous allons pr�esenterci-dessous.

8.7.1 Choix des adresses IP

Dans l'exemple ci-dessus, pppd appelait pabo et �etablissait une liaison IP. Aucunepr�ecaution n'�etait prise quant au choix d'adresses IP particuli�eres de chaque cot�e dela liaison. Nous avions simplement pris l'adresse de kro comme adresse IP locale, etlaiss�e pabo indiquer la sienne. Quelquefois n�eanmoins, il est n�ecessaire d'avoir uncontrole sur les adresses mises en jeu ; pour cela pppd propose plusieurs options.

Pour demander une adresse particuli�ere, il su�t en principe de l'indiquer �a pppd parl'option suivante :

adresse locale:adresse distante

Vous pouvez utiliser pour adresse locale et adresse distante, aussi bien des nomsde machines que des adresses IP en notation sur 4 octets 6. Avec cette option, pppdtentera d'utiliser la premi�ere adresse comme sa propre adresse IP, et la seconde pourla machine distante. Si cette derni�ere rejette l'une ou l'autre pendant la n�egociationIPCP, aucune liaison IP ne sera �etablie 7.

Si vous ne d�esirez assigner que l'adresse locale et accepter toute adresse distante quel'autre cot�e annoncera, il vous su�t de ne rien mettre �a l'emplacement de la variableadresse distante. Par exemple, pour que kro utilise l'adresse 130.83.4.27 au lieude la sienne, vous passeriez l'option 130.83.4.27: sur la ligne de commandes. Dememe, pour n'assigner que l'adresse distante, vous laisseriez le 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 lad�econnexion. Lors de l'appel de tels services, vous devez vous assurer que pppd nedemande aucune adresse IP particuli�ere au serveur, mais qu'au contraire il est pret �aaccepter celles qui lui seront impos�ees. Cela signi�e que vous ne devez pas sp�eci�erd'argument adresse locale, pour le moins. De plus, vous devrez utiliser l'optionnoipdefault, qui indique au programme d'attendre que l'autre cot�e lui indique sonadresse 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.

Page 138: Administration Reseau Sous Linux

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'hote distant. Si celui-ci est sur un r�eseau, vous voudrez sans douteavoir la possibilit�e de vous connecter �a des machines (( derri�ere )) lui ; c'est-�a-dire qu'ilfaudra une route vers un r�eseau.

Nous avons d�ej�a vu plus haut que pppd peut etre param�etr�e pour positionner uneroute par d�efaut grace �a l'option defaultroute, qui est tr�es utile si le serveur PPPque 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 hote, estaussi 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 seconnecte �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 uneentr�ee proxy ARP pour houblon. Cela rendra automatiquement houblon accessibledepuis 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 lorsquel'on relie deux r�eseaux locaux. En principe, cela demande l'ajout d'une route r�eseausp�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 uneboucle, et les paquets �a destination inconnue feraient des aller et retour entre chaquebout de la liaison jusqu'�a ce que leur ttl expire.

Comme exemple, supposons que (( La bi�ere virtuelle )) installe une succursale dans uneautre ville. Celle-ci poss�ede un r�eseau Ethernet qui lui est propre, poss�edant l'adresser�eseau IP 172.16.3.0, c'est-�a-dire le sous-r�eseau 3 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 role de passerelle ;son correspondant s'appelle, disons, province et son adresse IP vaut 172.16.3.1.

Lorsque province se connecte �a kro, il positionne la route par d�efaut vers kro, commede coutume. Sur la machine kro, toutefois, nous devrons installer une route r�eseaupour le sous-r�eseau 3, qui passera par province. Pour cela, nous allons employer unepossibilit�e de pppd dont nous n'avons pas encore parl�e : la commande ip-up. Il s'agitd'un shell-script ou d'un programme situ�e dans le r�epertoire /etc/ppp, qui est ex�ecut�eapr�es que l'interface PPP a �et�e con�gur�ee. Lorsque ce �chier existe, il est appel�eautomatiquement 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 etadresse distante correspondent aux adresses IP de chaque cot�e de la liaison et sont

Page 139: Administration Reseau Sous Linux

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 meme fa�con, /etc/ppp/ip-down est appel�e pour annuler toutes les actions deip-up lorsque la liaison est interrompue.

Toutefois, ce sch�ema de routage n'est pas encore complet. Nous avons positionn�e desentr�ees dans la table de routage de chaque hote PPP, mais, pour l'instant, aucuneautre 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 hotes de la succursale ont leur route pard�efaut pointant vers province, et si tous les hotes du r�eseau des brasseurs passentpar d�efaut par kro. Mais si ce n'est pas le cas, la seule solution sera d'employer und�emon de routage comme gated. Apr�es avoir cr�e�e la route r�eseau sur kro, le d�emonde routage di�usera cette nouvelle route �a toutes les machines connect�ees aux r�eseauxconcern�es.

8.8 Protocole de controle de liaison

Nous avons d�ej�a rencontr�e LCP, Link Control Protocol, le protocole de controle deliaison qui permet la n�egociation des di��erents param�etres utilis�es pour notre lienPPP.

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 ControlCharacter Map. Il y a d'autres options de con�guration, mais elles sont bien tropsp�ecialis�ees pour etre pr�esent�ees ici. Consultez le document RFC 1548 pour en avoirune 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 controle qui doivent etre encod�es (remplac�es par unes�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 controle de ux logiciel si quelquemodem mal con�gur�e est tromp�e par la r�eception de XOFF. Parmi les autres bonscandidats, citons Ctrl-] (le caract�ere d'�echappement de telnet). PPP vous permetd'encoder n'importe quel caract�ere du code ASCII entre 0 et 31 en le d�eclarant dansl'async map.

L'async map est un champ de 32 bits, dont le moins signi�catif correspond au caract�ereASCII NUL, et le plus signi�catif au caract�ere ASCII 31. Si un bit est mis �a 1, il signale

Page 140: Administration Reseau Sous Linux

8.8. Protocole de controle de liaison 123

que le caract�ere correspondant doit etre encod�e avant d'etre envoy�e sur la ligne. Pard�efaut, l'async map vaut 0xffffffff, c'est-�a-dire que tous les caract�eres de controleseront encod�es.

Pour indiquer �a votre correspondant qu'il n'a besoin d'encoder que quelques caract�eresde controle, vous pouvez sp�eci�er une nouvelle async map �a pppd grace �a l'optionasyncmap. Par exemple, si seulement ^S et ^Q (ASCII 17 et 19, couramment utilis�espour XON et XOFF) doivent etre trait�es, utilisez l'option suivante :

asyncmap 0x000A0000

Le Maximum Receive Unit, ou MRU, signale au correspondant la taille maximaledes 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 estun param�etre de l'interface, au niveau noyau, et indique la taille maximale d'unetrame 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 valeursp�eci��ee ; l'interface peut n�eanmoins etre tout �a fait capable de recevoir des paquetsallant jusqu'�a 1 500 octets.

Choisir un MRU n'est par cons�equent pas tellement une question de capacit�e detransfert, c'est surtout un moyen d'obtenir le meilleur r�esultat. Si vous comptez utiliserdes applications interactives sur la liaison, baisser le MRU jusqu'�a une valeur de 296est une bonne id�ee, ainsi un �eventuel paquet plus large (provenant d'une session FTPpar exemple) ne (( g�elera )) pas momentan�ement le curseur sur votre �ecran. Pour dire �apppd de demander un MRU de 296, il su�t de lui passer l'option mru 296. �Etonnant,non ? Toutefois, de petites valeurs n'ont d'int�eret que si vous n'avez pas supprim�e lacompression d'en-tetes 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

requetes 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 PPPd�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�eeexprim�ee en secondes. Si aucune trame n'est re�cue de la machine distante pendantcet intervalle, pppd va g�en�erer une demande d'�echo et attendre une r�eponse. Si rienn'arrive, la liaison se terminera apr�es un certain nombre de tentatives, dont le nombrepeut etre positionn�e par l'option lcp-echo-failure. Par d�efaut, cette possibilit�en'est pas en service.

Page 141: Administration Reseau Sous Linux

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�ede votre syst�eme. Cela peut revenir �a laisser n'importe qui brancher sa machine survotre r�eseau Ethernet (et c'est tr�es dangereux). Nous allons voir dans cette sectionquelques-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�ecessiteles privil�eges superutilisateur, ce qui pose un probl�eme. Vous le r�esoudrez en principeen 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 touteattaque en provenance d'un utilisateur, il est fortement conseill�e d'initialiser quelquesvaleurs 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, commeles options d'authenti�cation, ne peuvent pas etre forc�ees par l'utilisateur, et o�rentalors une protection raisonnable contre les manipulations de personnes maladroitesou malintentionn�ees.

Bien entendu, vous devez aussi vous prot�eger du syst�eme avec lequel vous vous connec-tez en PPP. Pour s'a�ranchir des hotes se faisant passer pour d'autres, vous deveztoujours 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 enimposer 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'undes deux protocoles d'authenti�cation. Ce sont PAP (Password Authentication Proto-

col) et CHAP (Challenge Handshake Authentication Protocol). Lorsqu'une connexionest �etablie, chaque cot�e peut demander que l'autre s'identi�e, quel que soit l'appelantou l'appel�e. Nous parlerons abusivement de (( client )) et (( serveur )) dans les pages quisuivent, uniquement dans le but de distinguer plus facilement le syst�eme identi�antdu 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 requete 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 enenvoyant un nom d'utilisateur et un mot de passe (crypt�e sur option) au serveur, quicompare alors ces donn�ees �a celles qu'il poss�ede dans sa base de donn�ees secr�ete. Cettetechnique est vuln�erable, certains pouvant obtenir le mot de passe en espionnant laligne s�erie, ou en faisant des essais r�ep�etitifs.

Page 142: Administration Reseau Sous Linux

8.10. Authenti�cation sous PPP 125

CHAP n'a pas ces inconv�enients. Avec lui, le serveur d�esirant l'authenti�cation envoieun (( d�e� )) au client, sous forme d'une cha�ne de caract�eres g�en�er�ee al�eatoirement, enmeme temps que son nom de machine. Le client doit alors utiliser le nom pour trouverle secret correspondant, le combiner avec la cha�ne, et encrypter la cha�ne par unefonction de hachage. Le r�esultat est retourn�e au serveur avec le nom de machine duclient. Celui-ci e�ectue alors les memes calculs, et autorise l'acc�es au client s'il obtientle meme 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 pendantla communication pour s'assurer que la machine n'a pas �et�e remplac�ee discr�etementpar 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 �chiersdistincts, nomm�es respectivement /etc/ppp/chap-secrets et pap-secrets. En ajoutantun 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, maissera d'accord pour s'identi�er lui-meme sur demande. Comme CHAP est plus puissantque PAP, pppd tentera d'utiliser le premier chaque fois que possible. Si l'autre bout nele supporte pas, ou que pppd ne trouve pas de secret CHAP pour le syst�eme distantdans son �chier chap-secrets, il passera �a PAP. S'il ne poss�ede pas de secret PAPpour 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 motcl�e auth, pppd demandera �a son correspondant de s'authenti�er. Il acceptera aussibien CHAP que PAP, tant qu'il poss�ede des informations concernant la machineen question dans ses bases CHAP ou PAP. Il y a d'autres options permettant desupprimer l'un ou l'autre protocole, mais nous ne les d�ecrirons pas ici ; consultez lapage 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�eraupr�es de vous, vous devez mettre l'option auth dans le �chier global /etc/ppp/optionset d�e�nir des mots de passe pour chaque syst�eme dans le �chier chap-secrets. Si l'und'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 PPPchez 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 dePAP, et d�epend �egalement de quel cot�e provient la demande d'authenti�cation.

Page 143: Administration Reseau Sous Linux

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 cherchedans le �chier chap-secrets une entr�ee dont le champ client est identique au nom demachine local, et dont le champ serveur est identique au nom de l'hote distant re�cudans le d�e� CHAP. Lorsque au contraire, il demande au correspondant de s'identi�er,les roles sont simplement invers�es : pppd recherchera alors une entr�ee dont le champclient est identique au nom de la machine distante (envoy�e dans la r�eponse clientCHAP), et dont le champ serveur est �egal au nom local.

Voici ci-dessous un exemple de �chier chap-secrets, pour la machine kro 8.

# 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 dontle champ client est kro.bibine.com et le champ serveur pabo.bibine.com 9, dans le�chier chap-secrets. Il trouve la premi�ere ligne du �chier, comme nous le voyons dansl'exemple ; il g�en�ere alors la r�eponse CHAP �a partir de la cha�ne de d�e� et du secretcorrespondant (Un Linux Sinon Rien), et l'envoie �a pabo.

Dans le meme temps, pppd compose un d�e� CHAP pour pabo contenant une cha�neunique et son nom pleinement quali��e kro.bibine.com. La machine pabo construitalors la r�eponse comme nous venons de l'expliquer, et l'envoie �a kro. Alors, pppd enextrait le nom du client (pabo.moche.com) et cherche dans le �chier chap-secretsune 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 lachose, 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 clientsindiqu�es dans le premier champ. Les adresses peuvent etre donn�ees en notation sur 4octets, ou sous forme de noms qui seront r�esolus par le resolver. Par exemple, si pabodemande, pendant la n�egociation IPCP, une adresse IP qui n'est pas dans cette liste,la requete sera rejet�ee. Dans l'exemple ci-dessus, pabo est par cons�equent limit�e �al'emploi de sa propre adresse IP. Si le champ adresse est vide, n'importe laquelle seraautoris�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 quellemachine �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.

Page 144: Administration Reseau Sous Linux

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 nomde machine peuvent appara�tre n'importe o�u dans le �chier, puisque pppd utiliseratoujours 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'hotes. Comme nousl'avons d�ej�a expliqu�e, le nom de la machine distante est toujours fourni par celle-cidans le d�e� CHAP ou le paquet de r�eponse. Le nom local sera trouv�e en appelant lafonction 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�erationsd'identi�cation. D'autres options permettent de changer l'id�ee que se fait pppd dunom local de la machine : usehostname et name. Lorsque vous donnez l'adresse IPlocale sur la ligne de commande par adresse locale:adresse distante, et queadresse locale est un nom au lieu d'une adresse IP, pppd l'utilisera comme nomlocal. 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 deuxpremiers champs contiennent toujours un nom d'utilisateur et de serveur ; le troisi�emecontient le secret. Lorsque l'autre cot�e envoie une requete d'authenti�cation, pppdutilise l'entr�ee qui a un champ serveur identique au nom de machine local, et un champutilisateur identique �a celui qui a �et�e envoy�e avec la requete. Lorsqu'il s'identi�e lui-meme avec le syst�eme distant, pppd prend le secret �a envoyer dans la ligne dont lechamp utilisateur est identique au nom utilisateur local, et dont le champ serveur estidentique 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 avecpabo. La seconde d�ecrit comment un utilisateur nomm�e pabo doit s'identi�er aupr�esde 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.

Page 145: Administration Reseau Sous Linux

128 Chapitre 8. Le protocole Point-�a-Point | PPP

Lorsqu'il prend une entr�ee dans le �chier pap-secrets pour authenti�cation avec lecorrespondant, pppd a besoin de conna�tre le nom de la machine distante. Comme iln'a aucun moyen de le deviner, vous devez lui sp�eci�er sur la ligne de commandes parl'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 adressesIP sont autoris�ees pour cette machine particuli�ere, exactement comme dans le �chierde secrets CHAP. Le correspondant ne pourra alors demander que des adresses faisantpartie de cette liste. Dans notre exemple, nous exigeons que pabo utilise sa propreadresse IP.

Notez que PAP est une m�ethode d'identi�cation plutot l�eg�ere, et il est fortementconseill�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 lesrenseignements 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 optionssur 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�emonpppd avec les options ad�equates. Par exemple, vous pourriez avoir dans /etc/passwdune 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 empeche pppd de se d�etacher du terminal de controle.Si nous ne mettions pas cette option, il se placerait en arri�ere-plan, et le script se

Page 146: Administration Reseau Sous Linux

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�emeappelant avant d'en envoyer lui-meme. 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 fautprendre en compte les lignes de controle du modem sur le port s�erie. Il faut toujoursmettre cette option quand on utilise pppd avec un modem. En�n, crtscts valide lecontrole 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 desupprimer individuellement chaque protocole d'authenti�cation.

Page 147: Administration Reseau Sous Linux

130 Chapitre 8. Le protocole Point-�a-Point | PPP

Page 148: Administration Reseau Sous Linux

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 desservices que vous d�esirez o�rir sur le r�eseau. Ce chapitre traite de la con�gurationde quelques applications r�eseau simples, le serveur inetd et les programmes de lafamille rlogin y compris. L'interface RPC (Remote Procedure Call), qui permet desservices 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 dansce livre. Si vous devez installer un service qui n'est pas d�ecrit dans cet ouvrage, commetalk, gopher ou Mosaic, consultez ses pages de manuel pour obtenir les informationsn�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�emons 1.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, pendantque le processus p�ere continue �a �ecouter le port en attente d'autres requetes. Ceprincipe est la base de tous les services o�erts ; un d�emon doit etre en attente deconnexions sur un port donn�e, ce qui signi�e g�en�eralement un gachis de ressourcessyst�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 ancetre du syst�eme MULTICS, lui-meme parent

d'UNIX. Le traducteur remercie Jon Collins et Steve Pate pour l'�etymologie de l'acronyme daemon.

Page 149: Administration Reseau Sous Linux

132 Chapitre 9. Aspects importants du r�eseau

Par cons�equent, pratiquement toutes les installations UNIX emploient un (( superserveur )) qui cr�ee des sockets pour un certain nombre de services et les �ecoute toutesen meme temps par l'appel syst�eme select(2). Lorsqu'un hote distant demande l'unde ces services, ce super serveur s'en aper�coit et ex�ecute le d�emon sp�eci��e pour ceport.

Le super serveur commun�ement utilis�e s'appelle inetd, Internet Daemon. Il est lanc�elors du d�emarrage du syst�eme et prend la liste des services qu'il doit g�erer dansun �chier nomm�e /etc/inetd.conf. En plus de ceux-ci, inetd lui-meme o�re un certainnombre 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 retournela 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, enle recherchant dans le �chier /etc/services, qui sera d�ecrit dans lasection (( Les �chiers services et protocols )).

type Sp�eci�e un type de socket, soit stream (pour les protocoles orient�esconnexion) ou dgram (pour les protocoles sans connexion). Les ser-vices bas�es sur TCP doivent par cons�equent toujours utiliser le motcl�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 etreun protocole valide, d�eclar�e dans le �chier protocols, d�ecrit un peuplus loin.

wait Cette option ne s'applique qu'aux sockets dgram. Ce peut etre soitwait, soit nowait. Dans le cas de wait, inetd n'ex�ecute qu'un seulserveur �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 lesdatagrammes qui arrivent, puis se terminent. La plupart des serveursRPC sont de ce type et doivent par cons�equent etre utilis�es avec lemot cl�e wait.

Les sockets stream doivent toujours employer nowait.

utilisateur Il s'agit de l'identi�cation utilisateur sous lequel le processus doit etreex�ecut�e. Ce sera souvent root, le superutilisateur, mais quelques ser-vices peuvent n�ecessiter di��erents comptes. Ici, c'est toujours unebonne 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

Page 150: Administration Reseau Sous Linux

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 etreex�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 inclutl'argument 0, c'est-�a-dire le nom de la commande. G�en�eralement, cesera le nom du programme, sauf s'il a un comportement di��erentselon 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 ettftp sont comment�es de mani�ere �a les rendre indisponibles. On agit souvent ainsi pourdes raisons de s�ecurit�e, �nger peut par exemple etre utilis�e pour obtenir les noms desutilisateurs 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,

Page 151: Administration Reseau Sous Linux

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 codedepuis un serveur. Si vous devez vraiment utiliser tftpd pour cela, assurez-vous delimiter 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 voirun exemple de cette m�ethode dans la seconde ligne tftp de la �gure 9.1.

9.2 Controle d'acc�es par tcpd

Puisque permettre un acc�es r�eseau �a un ordinateur implique beaucoup de risquesde violation de s�ecurit�e, les applications sont con�cues pour pr�evenir plusieurs typesd'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 requetes pour un serviceparticulier sont autoris�ees, d'hotes incertains dont les memes requetes devraient etrerejet�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 (( hotesde con�ance )), ce qui est impossible avec la con�guration normale, o�u inetd ne saitqu'o�rir un service ou le refuser, pour tout le monde.

Il existe un outil tr�es pratique pour cela : tcpd 2, un wrapper 3 de d�emon. Lorsquevous voulez tracer ou prot�eger un service TCP, il est appel�e �a la place du programmeoriginal. Il enregistre la requete 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 programmeserveur. 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 controle d'acc�es, rien ne para�tra chang�e sur la machine,tout fonctionnera comme d'habitude, sauf que toutes les requetes seront trac�ees viala facilit�e auth de syslog.

Ce controle d'acc�es est impl�ement�e au moyen de deux �chiers appel�es /etc/hosts.allowet /etc/hosts.deny. Ils contiennent des entr�ees autorisant ou refusant l'acc�es, respecti-vement, �a certains services et hotes. Lorsque tcpd g�ere une requete 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 requete est rejet�eeet la connexion imm�ediatement ferm�ee. Si rien n'est trouv�e, la requete est accept�ee.

2: �Ecrit par Wietse Venema, [email protected].

3: Le terme semble consacr�e, inutile donc de fournir un �equivalent fran�cais.

Page 152: Administration Reseau Sous Linux

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�esALL,LOCAL ou UNKNOWN (inconnu). ALL indique n'importe quelle machine alors queLOCAL d�esigne uniquement celles dont le nom ne contient pas de point 4. UNKNOWN

d�esigne tous les hotes dont la recherche de nom ou d'adresse a �echou�e. Un nomcommen�cant par un point correspond �a tous les hotes dont le domaine est identique �acette cha�ne. Par exemple, .penible.com d�esignera aussi bien geneur.penible.comque lourd.penible.com. Il est possible aussi de traiter les adresses IP r�eseau etsous-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, mettezce 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 lorsquel'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�ectuantla requete et de celui du service, respectivement. L�a encore, consultez la page demanuel 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 sontd�e�nis dans le RFC (( Assigned Numbers )), d�ej�a signal�e. Pour que serveurs et clientspuissent 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.

Page 153: Administration Reseau Sous Linux

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'estsoit udp, soit tcp. Il est possible qu'un service soit disponible par plus d'un protocole,ou bien qu'un meme port soit utilis�e pour plusieurs services, tant que ces protocolessont di��erents. Le champ alias permet de sp�eci�er plusieurs noms pour un memeservice.

G�en�eralement, il n'est pas n�ecessaire de modi�er le �chier services fourni avec lapartie r�eseau de votre syst�eme Linux. N�eanmoins, vous trouverez un petit extrait dece �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 etUDP, 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 nouveaucourrier est arriv�e, par UDP (voir xbi�(1x)).

Page 154: Administration Reseau Sous Linux

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 traduireles noms de protocoles | par exemple, ceux indiqu�es dans le �chier services | ennum�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 nomdu protocole, et de son num�ero associ�e. Vous n'aurez probablement jamais �a modi�erce �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 unm�ecanisme tr�es g�en�eral pour la r�ealisation d'applications client-serveur. RPC a �et�ed�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 luienvoyant une requete 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 faisantla conversion inverse pour les adapter �a son format interne lorsqu'il les re�coit. Ceformat est appel�e XDR, soit External Data Representation (repr�esentation externe dedonn�ees).

Parfois, certaines am�eliorations d'une application RPC introduisent des modi�cationsincompatibles dans l'interface d'appel de proc�edure. Bien sur, changer simplement leserveur empecherait tous les programmes attendant encore le comportement originalde fonctionner. Par cons�equent, les programmes RPC se voient assigner un num�ero deversion, g�en�eralement �a partir de 1, qui est incr�ement�e �a chaque nouvelle version del'interface. Souvent, un serveur peut proposer plusieurs versions simultan�ement ; lesclients indiquent quelle impl�ementation du service ils d�esirent utiliser par ce num�erode version dans leurs requetes.

Page 155: Administration Reseau Sous Linux

138 Chapitre 9. Aspects importants du r�eseau

La communication r�eseau entre serveurs et clients RPC est un peu particuli�ere. Unserveur RPC o�re un ou plusieurs ensembles de proc�edures ; chacun �etant appel�e unprogramme et identi��e de mani�ere unique par un num�ero de programme. Une listecontenant la correspondance entre les noms de services et les num�eros de programmesest en principe disponible dans le �chier /etc/rpc, dont un extrait est reproduit dansla �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 fairecorrespondre un service r�eseau g�en�erique aux num�eros de programmes. Ils d�ecid�erentque chaque serveur proposerait �a la fois un port TCP et UDP pour chaque programmeet chaque version. G�en�eralement, les applications RPC utiliseront UDP pour envoyerdes donn�ees, et ne prendront TCP que si les donn�ees �a transf�erer ne tiennent pas dansun seul datagramme UDP.

Bien sur, les clients doivent avoir un moyen de trouver �a quel port correspond unnum�ero de programme donn�e. Un �chier de con�guration serait inadapt�e ; comme lesapplications RPC n'utilisent pas de ports r�eserv�es, il n'y aurait aucune garantie qu'unport utilis�e �a l'origine pour notre application de base de donn�ees n'ait pas �et�e pris parquelque autre processus. Par cons�equent, les applications RPC prennent n'importequel port possible et l'enregistrent par le biais du d�emon portmapper. Il agit commeun concierge pour tous les serveurs RPC en fonctionnement sur sa machine. Un clientd�esirant contacter un service avec un num�ero de programme donn�e demandera d'abordau portmapper de la machine serveur, qui lui indiquera les ports TCP et UDP parlesquels le service peut etre atteint.

Cette m�ethode a l'inconv�enient d'introduire un point faible, un peu comme le faitle d�emon inetd pour les services Berkeley standard. Mais ici, c'est encore pire carlorsque le portmapper s'arrete pour une raison quelconque, toutes les informationssont perdues ; ce qui signi�e que vous devez relancer manuellement chaque serveur,ou r�eamorcer compl�etement la machine.

Page 156: Administration Reseau Sous Linux

9.5. Con�guration des commandes en (( r )) 139

Sous Linux, le portmapper s'appelle rpc.portmap et se trouve dans /usr/sbin. Il nedemande aucune con�guration particuli�ere, il su�t de s'assurer qu'il est bien lanc�eau 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'hote distantet permettent �a l'utilisateur d'ex�ecuter des commandes. Bien entendu, le client doitposs�eder un compte sur la machine en question. Par cons�equent, toutes ces commandespassent par une proc�edure d'authenti�cation ; en g�en�eral le client indique le nomd'utilisateur au serveur, qui �a son tour demande un mot de passe valid�e par la m�ethodehabituelle.

Quelquefois il est malgr�e tout n�ecessaire d'assouplir cette proc�edure d'autorisationpour certains utilisateurs. Par exemple, si vous devez fr�equemment vous connectersur d'autres machines de votre r�eseau, vous aimeriez ne pas avoir �a taper votre motde passe �a chaque fois.

Invalider l'authenti�cation n'est envisageable uniquement que sur un tout petit nombred'hotes 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 raisonsadministratives. Chaque fois que vous autorisez des gens �a entrer sur votre machinesans avoir besoin de pr�eciser leur identit�e ou leur mot de passe, assurez-vous bien quevous 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 commandesen r. L'une permet au superutilisateur d'autoriser certains utilisateurs (ou tous) decertains hotes (ou tous, mais c'est vraiment une tr�es mauvaise id�ee) �a se connectersans qu'il leur soit demand�e de mot de passe. Cet acc�es est control�e par un �chiernomm�e /etc/hosts.equiv. Il contient une liste des hotes et utilisateurs qui sont consi-d�er�es comme �equivalents �a ceux de la machine locale. L'autre option est destin�ee auxutilisateurs. Elle permet �a un utilisateur d'autoriser d'autres personnes, sur certainesmachines, �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 nedoit pas etre un lien symbolique : sinon, il sera purement et simplement ignor�e 5.

Lorsqu'un client demande un service r, le nom de sa machine et son nom d'utilisateursont 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. Supposonsque 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.

Page 157: Administration Reseau Sous Linux

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.equiv 6 pour voir si Janet a droit �a un acc�eslibre, et si la r�eponse est n�egative, il essaiera de le trouver dans le �chier .rhosts dur�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 hote appara�t seul, tous ses utilisateurs seront admis sous leurs compteslocaux sans aucun test d'identi�cation. Dans l'exemple ci-dessus, Janet aurait le droitde se connecter sous son compte janet en arrivant de gauss, et ce serait vrai pourtout autre utilisateur �a l'exception de root. Toutefois, si Janet voulait entrer sous lenom joe, il lui serait demand�e le mot de passe correspondant.

Si un nom d'hote est suivi par un utilisateur, comme dans la derni�ere ligne del'exemple, ce dernier poss�ede alors un acc�es libre, sans mot de passe, �a tous les comptesexcept�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 unpeu 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 comptesur euler ou chomp. La seconde entr�ee est une variante, en ce sens qu'elle donne unacc�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 sonadresse IP, et donc que cette possibilit�e ne fonctionnera pas avec des hotes inconnus

6: Notez que le �chier hosts.equiv n'est pas utilis�e si quelqu'un tente de se connecter sous root.

Page 158: Administration Reseau Sous Linux

9.5. Con�guration des commandes en (( r )) 141

du resolver. Ce nom d'hote est consid�er�e correspondre au nom contenu dans le �chierhosts dans l'un des cas suivants :

{ Le nom canonique du client (et non pas un alias) est identique �a celui contenudans 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 celuitrouv�e dans le �chier, il sera compar�e �a ce dernier, augment�e du nom de domainelocal.

Page 159: Administration Reseau Sous Linux

142 Chapitre 9. Aspects importants du r�eseau

Page 160: Administration Reseau Sous Linux

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 unenvironnement rendant le r�eseau transparent �a vos utilisateurs. Il vous faudra alors unmoyen de conserver les informations vitales comme les comptes utilisateurs, en parfaitsynchronisme sur toutes les machines. Nous avons d�ej�a vu que pour la r�esolution desnoms, nous avons un outil puissant et adapt�e : DNS. Pour d'autres taches, il n'y apas de service sp�ecialis�e. De plus, si vous ne g�erez qu'un petit r�eseau non connect�e �al'Internet, l'utilisation du DNS est sans grand int�eret.

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 pourdistribuer des informations, comme celles contenues dans les �chiers passwd et groups,�a tous les hotes de votre r�eseau. Celui-ci appara�t alors comme un unique syst�eme,avec les memes comptes sur toutes les machines. De meme, vous pouvez utiliser NISpour distribuer les renseignements sur les noms contenus dans /etc/hosts �a travers ler�eseau.

NIS est bas�e sur RPC, et comprend un serveur, une biblioth�eque client, et di��erentsoutils d'administration. �A l'origine, le syst�eme s'appelait les pages jaunes (YellowPages), ou YP ; et ce nom est encore souvent employ�e. Or, (( Yellow Pages )) est unemarque 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 enexiste meme des impl�ementations gratuites. L'une d'elles provient de la distributionNet-2 de BSD et est d�eriv�ee d'une version de r�ef�erence en domaine public, o�erte parSun. Le code de la biblioth�eque client de cette version fait partie de la biblioth�equestandard GNU libc depuis longtemps, mais les programmes d'administration n'ont �et�e

Page 161: Administration Reseau Sous Linux

144 Chapitre 10. NIS : Network Information System

que tr�es r�ecemment port�es sous Linux, par Swen Th�ummler 1. Il manque un serveurNIS dans l'impl�ementation de r�ef�erence. Tobias Reber a r�ealis�e un autre paquetageNIS comprenant tous les outils et un serveur ; il s'appelle yps 2.

Actuellement, une r�e�ecriture compl�ete du code NIS, appel�ee NYS est en cours, cetravail est e�ectu�e par Peter Eriksson ; 3 elle supportera aussi bien le NIS standard quela nouvelle version tr�es am�elior�ee de Sun, NIS+. NYS o�re non seulement un ensembled'outils et un serveur, mais ajoute de toutes nouvelles biblioth�eques de fonctions quil'am�eneront sans doute �a faire partie de la libc standard un jour. Cela comprend unenouvelle 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 plutot que les deux autres paquetages, que nousappellerons le code NIS (( traditionnel )). Si vous avez l'intention d'utiliser l'une oul'autre impl�ementation, les instructions contenues dans ce guide pourront peut-etrene pas su�re. Pour toute information suppl�ementaire, consultez un ouvrage sp�ecialis�esur 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 version4.6, vous pouvez par cons�equent facilement construire votre propre biblioth�eque sup-portant NYS au lieu du code NIS traditionnel 4. Les responsables du projet GNUsemblent aussi avoir l'intention d'int�egrer NYS dans leur impl�ementation o�cielle dela 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 hote central sur lequel se trouve le serveurNIS, depuis lequel les clients peuvent extraire les informations par le truchement dedivers appels RPC. Tr�es souvent, les cartes sont au format DBM 5.

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, unepour chaque type de cl�e de recherche. Par exemple, vous pouvez e�ectuer une re-

1: On peut joindre Swen �a l'adresse [email protected]. 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 [email protected].

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.

Page 162: Administration Reseau Sous Linux

10.1. Initiation �a NIS 145

cherche dans le �chier hosts pour un nom de machine, ou pour une adresse IP. Parcons�equent, on va donc d�eriver de ce �chier deux cartes NIS, nomm�ees hosts.bynameet hosts.byaddr. Le tableau 10.1 �enum�ere les cartes courantes et les �chiers �a partirdesquels 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 paquetagesNIS. Ils seront souvent relatifs aux informations d'applications que nous ne d�ecrivonspas dans ce livre, comme la carte bootparams qui est utilis�ee par le serveur bootparamdde 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 �atester 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 demoyenne importance, un seul su�t ; de plus grands r�eseaux peuvent avoir plusieursde ces serveurs sur di��erentes machines et di��erents segments du r�eseau a�n de limiter

Page 163: Administration Reseau Sous Linux

146 Chapitre 10. NIS : Network Information System

la charge des hotes serveurs et des routeurs. Ils sont synchronis�es en rendant un serveurma�tre, alors que les autres sont serveurs esclaves. Les cartes sont cr�e�ees uniquementsur 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 )) demani�ere vague. NIS consid�ere comme r�eseau l'ensemble des hotes qui partagent unepartie des donn�ees de leur con�guration syst�eme par son interm�ediaire ; et comprendun concept un peu particulier : le domaine NIS. Malheureusement, les domaines NISn'ont absolument rien en commun avec les domaines que nous avons rencontr�es dansle DNS. Pour �eviter toute ambigu��t�e, nous devrons donc dans les pages qui suiventtoujours 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 machinesdu domaine. Par cons�equent, le nom donn�e �a un domaine NIS ne concerne que lesadministrateurs. 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 votrer�eseau local. Par exemple les administrateurs de (( La bi�ere virtuelle )) peuvent choisirde cr�eer deux domaines NIS, un pour eux-memes et un autre pour (( Les caves vir-tuelles )), qu'ils appelleront respectivement canette et bouteille, par exemple. Uneautre m�ethode courante est d'employer tout simplement le nom du domaine DNScomme domaine NIS. Pour positionner et a�cher le domaine NIS de votre hote, vousdisposez de la commande domainname. Invoqu�ee sans arguments, elle a�che 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 programmelogin d'une machine de nos viticulteurs ne doit, bien entendu, employer que le serveurde leur domaine NIS (ou l'un d'eux s'il y en a plusieurs) pour demander le mot depasse d'un utilisateur, et il en va de meme pour les brasseurs ; �a chaque domaine NISson serveur.

Il nous reste un myst�ere �a r�esoudre : comment un client peut-il trouver sur quel serveurse connecter ? L'approche la plus simpliste serait d'avoir un �chier de con�gurationindiquant le nom de la machine �a contacter. Ce n'est toutefois pas satisfaisant caril serait impossible de contacter plusieurs serveurs (du meme domaine NIS, cela vasans dire), selon leur disponibilit�e. Par cons�equent, les impl�ementations traditionnellesde NIS emploient un d�emon sp�ecial appel�e ypbind pour d�etecter un serveur dansleur domaine NIS. Avant de pouvoir e�ectuer des requetes NIS, une application doittrouver, grace �a ypbind, le serveur �a contacter.

Ce d�emon ypbind sonde les serveurs en �emettant sur le r�eseau IP local un messagede di�usion (broadcast) ; le premier qui r�epond est consid�er�e comme le plus rapide etsera utilis�e pour toutes les requetes NIS qui suivront. Apr�es un certain temps, ou sile serveur devient indisponible, ypbind recherche �a nouveau les serveurs actifs.

Page 164: Administration Reseau Sous Linux

10.2. NIS contre NIS+ 147

Cette m�ethode est discutable sur un point ; vous n'en avez que rarement besoin, etelle introduit un probl�eme de s�ecurit�e : ypbind croit aveugl�ement la premi�ere machinequi r�epond, qui peut aussi bien etre un humble serveur NIS tout �a fait correct, qu'unmalicieux intrus. Il n'est pas besoin de dire que c'est particuli�erement genant lorsquevous g�erez vos mots de passe par NIS. Pour se prot�eger, la biblioth�eque NIS de Linuxn'utilise pas ypbind par d�efaut, mais r�ecup�ere le nom du serveur depuis un �chier decon�guration.

10.2 NIS contre NIS+

NIS et NIS+ n'ont gu�ere en commun que leur nom et leur fonction. NIS+ est organis�ed'une mani�ere tr�es di��erente. Au lieu d'avoir un espace de noms lin�eaire avec desdomaines NIS disjoints, il utilise un espace de noms hi�erarchique similaire �a celuidu DNS. �A la place des cartes, ce sont des tables qui sont utilis�ees, constitu�ees delignes 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. Cedernier ne semble pas encore largement utilis�e, et nous devons avouer que nous neconnaissons pas grand-chose �a son sujet, voire rien du tout. Par cons�equent, nousn'en parlerons pas davantage ici. Si vous voulez en savoir plus, consultez le manueld'administration NIS+ de Sun ([NIS+]).

10.3 Le cot�e client de NIS

Si vous avez l'habitude d'�ecrire ou de porter des applications r�eseau, vous aurez not�eque la plupart des cartes NIS cit�ees plus haut correspondent �a des fonctions de labiblioth�eque C. Par exemple, pour obtenir des informations concernant le mot depasse (passwd), vous appelez en g�en�eral les fonctions getpwnam(3) et getpwuid(3), quiretournent 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 larecherche sur les �chiers standard, en g�en�eral /etc/passwd.

Pour supporter NIS, le comportement de ces fonctions sera modi��e ; un appel RPCest e�ectu�e a�n de pouvoir interroger le serveur NIS et r�ecup�erer les informationsdemand�ees. Cette modi�cation est transparente pour l'application. La fonction peutsoit (( ajouter )) la carte NIS au �chier original, soit le (( remplacer )) enti�erement. Biensur, il ne s'agit pas de r�eelles modi�cations du �chier, mais de ce qui appara�t vu ducot�e de l'application.

Page 165: Administration Reseau Sous Linux

148 Chapitre 10. NIS : Network Information System

En ce qui concerne les impl�ementations traditionnelles de NIS, certaines conventionsont �emerg�e qui permettent de d�eterminer quelles cartes sont ajout�ees ou lesquellesremplacent l'information originale. Quelques-unes, comme les cartes passwd, deman-dent des modi�cations du �chier passwd qui, incorrectement e�ectu�ees, cr�eent desfailles dans la s�ecurit�e du syst�eme. Pour �eviter ces pi�eges, NYS emploie un syst�emede con�guration g�en�erale qui d�etermine si un ensemble de fonctions particulier doitutiliser les �chiers originaux, NIS ou NIS+, et dans quel ordre. Nous d�ecrirons celaun 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 cambouisen installant r�eellement la chose. Dans cette section, nous allons donc aborder lacon�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 votre ; vous pouvez sans risque ignorer cettesection.

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 votrer�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 dansle 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 NISstandard qui est actuellement dans la biblioth�eque libc. �A l'heure o�u nous r�edigeons cechapitre, le code g�erant les serveurs esclaves NIS semble plus complet dans yps. D'unautre cot�e, ypserv corrige un probl�eme de s�ecurit�e courant sous NIS (qui sera d�ecritplus 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�eerle r�epertoire destin�e �a recevoir les cartes qui seront distribu�ees. Pour con�gurer ledomaine NIS canette, les cartes devront se trouver dans /var/yp/canette. Le serveurd�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 �egalementce r�epertoire.

A�n d'acc�el�erer les recherches, les cartes sont souvent stock�ees au format DBM. Ellessont 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 formecompr�ehensible par dbmload n�ecessite g�en�eralement un peu de magie awk ou sed, parcons�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

Page 166: Administration Reseau Sous Linux

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 cellesque vous d�esirez distribuer. Vers le d�ebut de ce �chier, vous trouverez la cible all quiindique 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 su�t 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 ceMake�le, restez dans le r�epertoire et tapez make. Les cartes serontalors automatiquement g�en�er�ees et install�ees. Il ne faudra pas oublier de mettre �a jources cartes chaque fois que vous modi�erez les �chiers de r�ef�erence, faute de quoi lesmodi�cations resteraient invisibles sur le r�eseau.

La section suivante d�etaille la con�guration de la partie client de NIS. Si rien nemarche, essayez de voir si les requetes 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 requetes NIS re�cues et le r�esultat qui estenvoy�e aux clients ; cela devrait vous permettre de localiser le probl�eme. Le serveurde 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 demots de passe par pratiquement n'importe qui sur l'Internet, ce qui repr�esente unequantit�e non n�egligeable d'intrusions possibles. Il su�sait de conna�tre votre domaineNIS et l'adresse de votre serveur, et de lui envoyer une requete demandant la cartepasswd.byname, pour recevoir aussitot tous les mots de passe de votre site. Avec unprogramme rapide comme crack et un bon dictionnaire, il �etait en g�en�eral tr�es faciled'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 serveurNIS �a certains hotes, en fonction de leur adresse IP ou du r�eseau. La derni�ere version deypserv impl�emente cette option de fa�con assez pratique, par les �chiers etc/hosts.allowet /etc/hosts.deny que nous avons d�ej�a rencontr�es dans le chapitre 9 6. 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.

Page 167: Administration Reseau Sous Linux

150 Chapitre 10. NIS : Network Information System

Tous les hotes du r�eseau IP 172.16.2.0 auraient acc�es au serveur NIS. Pour interdiretous les autres, l'entr�ee correspondante dans hosts.deny serait :

ypserv: ALL

Les num�eros IP ne sont pas la seule fa�con de sp�eci�er hotes ou r�eseaux dans hosts.allowet hosts.deny. Consultez la page de manuel hosts access(5) sur votre syst�eme pouravoir plus de d�etails. Toutefois, vous devez savoir qu'il est impossible d'utiliser desnoms d'hotes ou de domaines dans l'entr�ee ypserv : si vous y mettez un nom, leserveur essaie de le r�esoudre, mais le resolver appelle �a son tour ypserv, et vous entrezdans une boucle in�nie.

Vous pouvez aussi utiliser le portmapper s�ecuris�e �a la place de l'option securenets deypserv. Cette version (portmap-3.0) 7 emploie aussi la m�ethode par hosts.allow, maiso�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 seraitinutile 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. Vouspouvez mettre son nom dans le �chier de con�guration /etc/yp.conf ; voici un exemplepour 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 hote appartient au domaineNIS bouteille. Si vous omettez cette d�eclaration, NYS utilisera le nom de domaineque vous avez assign�e au syst�eme par la commande domainname. La seconde ligneindique le nom du serveur NIS �a utiliser. Bien entendu, l'adresse IP correspondant �agamay doit se trouver dans le �chier hosts ; l'alternative �etant de mettre directementcette 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 machinefr�equemment d'un domaine NIS �a un autre, vous pouvez indiquer ces domaines dansle �chier yp.conf : il su�t 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.

Page 168: Administration Reseau Sous Linux

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 �atour dans ces deux domaines NIS. Il su�ra d'initialiser le domaine d�esir�e au momentdu 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 lisiblepar tout le monde, vous devez faire votre premier test pour voir si vous pouvez bienvous connecter �a votre serveur. Choisissez une carte que celui-ci distribue, commehosts.byname, et essayez de la r�ecup�erer avec l'utilitaire ypcat. Ce programme, commetous les autres outils d'administration NIS, doit se trouver dans le 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 messaged'erreur disant (( Can't bind to server which serves domain )), c'est que soit ledomaine NIS que vous avez initialis�e n'a pas de serveur correspondant d�e�ni dansle �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 yexiste bien un serveur NIS. Vous pouvez v�eri�er si un serveur NIS est pr�esent par lacommande rpcinfo, qui devrait vous a�cher :

# 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 �chiersdoivent etre remplac�es ou compl�et�es par les cartes NIS. G�en�eralement, ce sont ceuxpermettant la recherche de noms et de mots de passe qui sont choisis. Le premier casest tr�es utile si vous n'employez pas BIND ; le second permet �a tous les utilisateursde se connecter sous leur compte depuis n'importe quel syst�eme du domaine NIS, etva g�en�eralement de pair avec le partage d'un r�epertoire /home central mont�e sur tousles hotes par NFS. La carte concernant les mots de passe est expliqu�ee en d�etail dansla section suivante.

Page 169: Administration Reseau Sous Linux

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 decon�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 quiest 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 lequelces recherches sont faites, par l'interm�ediaire du �chier /etc/nsswitch.conf, (NameService Switch). Ce �chier contient une ligne pour chacune des fonctions de recherchesupport�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, ilpara�t raisonnable d'e�ectuer les recherches d'abord dans le �chier local, et ne testerNIS 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 sonttoujours plus �a jour que le �chier /etc/hosts qui ne contient qu'une sauvegarde en casde probl�eme. Dans ce cas, il ne faudra e�ectuer les recherches dans ce �chier qu'endernier 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 �chierhosts. 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 servicesuivant 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�ependentbien 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 estcon�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 ethosts.byaddr qui seront demand�ees.

dns Utilise le serveur de noms DNS. Ce type de service n'est utile qu'avec

Page 170: Administration Reseau Sous Linux

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 dansle r�epertoire /var/dbm. Le nom du �chier est celui de la carte NIScorrespondante.

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�eesseront probablement ajout�ees dans les versions ult�erieures.

La �gure 10.1 montre un exemple plus complet, qui introduit un autre aspect densswitch.conf. Le mot cl�e [NOTFOUND=return] dans l'entr�ee hosts indique �a NYSd'arreter la recherche si les donn�ees recherch�ees n'ont pu etre trouv�ees dans les basesde donn�ees NIS ou DNS. C'est-�a-dire que NYS continuera la recherche dans les �chierslocaux uniquement si les appels aux serveurs NIS et DNS �echouent pour une raisonquelconque. Les �chiers locaux ne seront alors utilis�es qu'au moment du d�emarragedu 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 hotes d'un domaine NIS. Pour cela, on ne conserve en g�en�eralqu'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 su�t pas de valider les recherchesNIS pour ce service dans nsswitch.conf pour que tout fonctionne.

Pour employer les informations utilisateur distribu�ees par NIS, vous devez d'abordvous assurer que les valeurs de chaque num�ero d'utilisateur pr�esentes dans votre �chierpasswd local correspondent �a celles connues de NIS. Ce sera �egalement n�ecessaire pour

Page 171: Administration Reseau Sous Linux

154 Chapitre 10. NIS : Network Information System

bien d'autres choses, comme les montages NFS de partitions d'autres machines devotre r�eseau sur la votre.

Si l'une des valeurs de /etc/passwd ou /etc/group di��ere de celle enregistr�ee dans lescartes, vous devrez ajuster les propri�etaires de tous les �chiers qui appartiennent �acet utilisateur. Tout d'abord, il faudra changer tous les num�eros d'utilisateurs et degroupes dans ces deux �chiers pour les mettre �a jour, puis trouver tous les �chiersappartenant aux utilisateurs concern�es, et en�n changer leur propri�etaire. Supposonsque news avait un num�ero d'utilisateur de 9, et marcel de 103, et qu'ils ont �et�echang�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 dela meme 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 leslignes de con�guration dans nsswitch.conf qui valideront les recherches NIS pour lesinformations 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 rechercherontles informations utilisateur. Lorsque quelqu'un tente de se connecter, login demanded'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, pourne laisser que les entr�ees r�eellement indispensables comme root, mail ou autres,car certaines applications ont besoin de trouver la correspondance entre ces nomsd'utilisateurs et leur num�ero, et vice versa. Par exemple, les travaux administratifs decron peuvent ex�ecuter la commande su pour devenir provisoirement news, ou bienle syst�eme UUCP peut avoir �a poster un courrier de statistiques. Si news et uucp

n'ont pas d'entr�ees dans le �chier local passwd, ces travaux �echoueront lamentablementpendant les pannes NIS.

Il y a deux gros pi�eges avec ce syst�eme. D'une part, la con�guration d�ecrite jusqu'icine 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 passeshadow un peu plus loin. D'autre part, il y a d'autres commandes qui ont besoin desinformations contenues dans le �chier passwd ; regardons par exemple la commandels, que tout le monde utilise presque constamment. Lorsqu'on lui demande une sortie

Page 172: Administration Reseau Sous Linux

10.9. NIS et les mots de passe shadow 155

(( longue )), ls a�che 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. Celaralentira �enorm�ement les choses, surtout si votre r�eseau local est charg�e ; ne parlonsmeme pas de la situation o�u le serveur NIS n'est pas sur le meme r�eseau physique etque les datagrammes doivent traverser un routeur.

Mais ce n'est pas tout ! Imaginez ce qui arrive si un utilisateur d�esire changer son motde 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'estplus disponible localement, et il n'y a aucune option pour que les utilisateurs puissentse connecter au serveur NIS pour changer leurs mots de passe. Par cons�equent, NISo�re une commande de remplacement appel�ee yppasswd, qui est �equivalente �a passwdlorsque NIS est disponible. Elle contacte le serveur NIS par RPC, et lui donne lenouveau mot de passe. En g�en�eral, on installe yppasswd �a la place de la commandepasswd originale, en faisant quelque chose comme ceci :

# cd /bin

# mv passwd passwd.old

# ln yppasswd passwd

Vous devrez en meme temps installer rpc.yppasswdd sur le serveur et le lancer depuisrc.inet2. Ainsi, toutes les complications induites par NIS seront totalement cach�eesaux utilisateurs.

10.9 NIS et les mots de passe shadow

Utiliser NIS avec les mots de passe shadow tient malheureusement du bricolage. Lesyst�eme shadow a �et�e invent�e pour empecher les utilisateurs ordinaires d'avoir acc�esaux mots de passe des autres, fussent-ils crypt�es. D'un autre cot�e, NIS n�ecessite queces donn�ees soient disponibles sur tout le r�eseau, ce qui va compl�etement �a l'encontredu but initial.

Actuellement, il n'y a aucune solution r�eellement satisfaisante �a ce probl�eme. Laseule fa�con de distribuer des mots de passe et autres informations utilisateur par NISpasse par les cartes standard passwd.*. Si vous avez le syst�eme shadow, la m�ethodela 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 decelui-ci.

Bien sur, quelques astuces peu pratiques sont n�ecessaires pour utiliser NIS et le sys-t�eme shadow en meme temps ; par exemple installer un �chier /etc/shadow sur chaquehote du r�eseau, tout en distribuant le reste des informations (groupes, shells, etc.) parNIS. Inutile de dire que cette solution est plutot batarde et d�e�e l'orientation de NIS,qui est de faciliter la tache de l'administrateur syst�eme. �A notre avis, une m�ethodefor�cant les utilisateurs �a choisir de (( bons )) mots de passe est bien meilleure que cellequi consiste �a les cacher dans un �chier suppl�ementaire en cr�eant des incompatibilit�es.

Page 173: Administration Reseau Sous Linux

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 standardlibc, la con�guration d'un client NIS est un peu di��erente. En premier lieu, le codetraditionnel ne supporte que les cartes hosts, passwd et group. De plus, la fa�con dontil combine les informations des �chiers locaux avec celles de NIS est tr�es di��erente dece qui se passe avec NYS.

Par exemple, pour utiliser les cartes NIS des mots de passe, il faut inclure la lignesuivante quelque part dans le �chier /etc/passwd :

+:*:0:0:::

Elle marque l'endroit o�u les fonctions de recherche (( ins�erent )) les cartes NIS. Uneligne similaire dans le �chier /etc/group a le meme e�et pour les cartes group.*.

Pour utiliser les cartes hosts.* distribu�ees par votre serveur YP, changez la ligneorder du �chier host.conf. Par exemple, pour utiliser NIS, DNS et /etc/hosts (danscet 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 lesserveurs actifs, qui doit etre invoqu�e au d�emarrage du syst�eme apr�es que le domaineNIS 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 nousl'avons dit au d�ebut, c'est une solution peu sure. C'est pourquoi la derni�ere versiondes outils YP (de la distribution yp-linux) poss�ede maintenant un d�emon ypbind quisupporte le �chier de con�guration /etc/yp.conf. Si ce �chier existe, le programme yrecherchera une ou plusieurs lignes de la forme :

# yp.conf - name YP server for ypbind.

ypserver gamay

Le d�emon ypbind recherche alors les serveurs actifs parmi ceux indiqu�es 8. S'il ne trouvepas de �chier yp.conf, ou si aucun des serveurs ne r�epond, il reprendra l'anciennem�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 avecles 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.

Page 174: Administration Reseau Sous Linux

10.10. Utilisation du code NIS traditionnel 157

Ils sont dus �a une modi�cation malencontreuse de la fa�con dont ypbind communiqueavec les fonctions de la biblioth�eque. Pour y rem�edier, il faut se procurer les derni�eresversions des sources des utilitaires NIS et les recompiler 9.

9: Le code source de yp-linux peut etre obtenu sur le site ftp.uni-paderborn.de dans le r�epertoire

/pub/Linux/LOCAL.

Page 175: Administration Reseau Sous Linux

158 Chapitre 10. NIS : Network Information System

Page 176: Administration Reseau Sous Linux

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�epanduutilisant RPC. Il permet d'acc�eder aux �chiers pr�esents sur des machines distantesexactement comme s'ils �etaient locaux. Il est constitu�e d'un m�elange de fonctionnalit�esint�egr�ees au noyau cot�e client et d'un serveur NFS de l'autre cot�e. Cet acc�es estcompl�etement transparent pour le client, et fonctionne sur une grande vari�et�e deserveurs et d'architectures.

NFS o�re un certain nombre d'avantages :

{ Les donn�ees auxquelles tous les utilisateurs acc�edent peuvent r�esider sur unhote central, chaque client montant ce r�epertoire au d�emarrage du syst�eme.Par exemple, vous pouvez conserver tous les comptes des utilisateurs sur unemachine et faire que toutes les autres montent le r�epertoire /home depuis cetendroit. Si, de plus, NIS est install�e, les utilisateurs peuvent se connecter surn'importe quel hote et travailler toujours sur les memes �chiers.

{ Les donn�ees occupant beaucoup de place disque peuvent etre stock�ees sur uneseule machine. Par exemple, tous les �chiers et programmes relatifs �a LaTEX etMETAFONT peuvent etre install�es et maintenus en un seul endroit.

{ Les donn�ees administratives peuvent se trouver sur une unique machine. Il n'y apas besoin d'utiliser rcp pour installer le meme stupide �chier sur 30 ordinateursdi��erents.

Sous Linux, NFS est en grande partie le travail de Rick Sladkey 1, qui a �ecrit le codeNFS 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 [email protected].

Page 177: Administration Reseau Sous Linux

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'unemachine distante sur un r�epertoire local, exactement de la meme mani�ere qu'il le faitpour un p�eriph�erique physique. Mais la syntaxe �a employer pour d�esigner le r�epertoiredistant est di��erente. Par exemple, pour monter le /home de kro sur le r�epertoireusers de trappiste, l'administrateur tape la commande suivante sur trappiste 2 :

# mount -t nfs kro:/home /users

La commande mount essaiera de se connecter au d�emon mountd de kro via RPC. Leserveur testera si trappiste a l'autorisation de monter le r�epertoire en question, et sic'est le cas, retournera un descripteur de �chier. Il sera utilis�e pour toutes les requetessuivantes concernant les �chiers de /users.

Lorsque quelqu'un acc�ede �a un �chier par NFS, le noyau envoie un appel RPC �anfsd (le d�emon NFS) sur la machine serveur. Cet appel prend comme param�etresle 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 lesdroits d'acc�es au �chier en question. A�n d'�eviter que des utilisateurs non autoris�espuissent lire ou modi�er des donn�ees, les num�eros d'utilisateurs et de groupes doiventetre les memes sur les deux machines.

Dans la plupart des impl�ementations d'UNIX, le client comme le serveur NFS sontimpl�ement�es comme des d�emons de niveau noyau qui sont lanc�es depuis l'espaceutilisateur au moment du d�emarrage du syst�eme. Ce sont nfsd, le d�emon NFS sur leserveur, 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 fonctionnentsimultan�ement.

Sous Linux, l'impl�ementation de NFS est un peu di��erente, en ce sens que le code clientest int�egr�e �a la couche VFS du noyau (Virtual File System, syst�eme de �chiers virtuel)et ne n�ecessite aucun autre controle additionnel par biod. De l'autre cot�e, le codeserveur fonctionne enti�erement dans l'espace utilisateur, aussi est-il impossible d'avoirplusieurs copies de ce serveur fonctionnant simultan�ement, en raison des probl�emesde synchronisation que cela poserait. Il n'y a pas non plus de cache, mais cela faitpartie des projets de Rick Sladkey.

Dans la version 1.0 de Linux, le plus gros probl�eme avec NFS est que le noyau n'estpas capable d'allouer de la m�emoire par blocs de plus de 4 Ko. En cons�equence, lecode r�eseau ne peut pas g�erer de datagrammes sup�erieurs �a environ 3 500 octets apr�essoustraction des en-tetes et autres donn�ees internes. Cela signi�e que les transfertsNFS avec des machines utilisant de grands datagrammes UDP par d�efaut (8 Ko surSunOS 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, grace au

caract�ere (( : )).

Page 178: Administration Reseau Sous Linux

11.1. V�eri�cations avant usage 161

sensiblement a�ect�ees en certaines circonstances 3. Cette limite est franchie les versionsLinux-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, vousdevez v�eri�er que le noyau que vous utilisez a bien �et�e compil�e avec le support deNFS. 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 a�cher par la commandecat :

$ 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 validantle 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 savoirsi NFS est valid�e est d'essayer de monter un volume NFS. Pour cela, vous pouvez cr�eerun 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 validantNFS. Tout autre message d'erreur est sans importance, puisque rien n'est encorecon�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.

Page 179: Administration Reseau Sous Linux

162 Chapitre 11. NFS, le syst�eme de �chiers par r�eseau

11.2 Monter un volume NFS

Les volumes NFS 4 sont mont�es presque de la meme fa�con que les syst�emes de �chierstraditionnels. Vous appelez la commande mount avec la syntaxe suivante :

# mount -t nfs volume nfs r�epertoire local options

Avec volume nfs indiqu�e comme hote distant:r�epertoire distant. Puisque cettenotation 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 surla 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�eesentre 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. Parexemple, supposons que vous montiez vos r�epertoires utilisateurs depuis une machineappel�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 anciennoyau 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 denfs(5) fournie avec la version de mount de Rick Sladkey (qui fait partie du paquetageutil-linux). En voici un extrait :

rsize=n et wsize=nSp�eci�ent la taille du datagramme utilis�ee par les clients NFS pourles requetes de lecture et d'�ecriture, respectivement. Actuellement,leur valeur par d�efaut est de 1 024 octets pour les raisons �evoqu�eesplus haut.

4: On ne dit pas syst�eme de �chiers, car ce ne sont pas �a proprement parler des syst�emes de

�chiers.

Page 180: Administration Reseau Sous Linux

11.2. Monter un volume NFS 163

timeo=n Indique le temps (en dixi�emes de seconde) pendant lequel le clientNFS attendra qu'une requete aboutisse. La valeur par d�efaut est 7(0,7 seconde).

hard Marque explicitement le volume comme mont�e en dur. C'est l'optionpar d�efaut.

soft Il s'agit de l'option inverse de hard.

intr Autorise les signaux �a interrompre un appel NFS. C'est utile lorsquele serveur ne r�epond pas.

Sauf pour rsize et wsize, toutes ces options concernent le comportement du client si leserveur devient momentan�ement inaccessible. Elles s'organisent de la fa�con suivante :Lorsque le client envoie une requete au serveur NFS, il attend pendant un certaintemps (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 estcompt�e, et il recommence l'op�eration en doublant cet intervalle de temps. Lorsquecette valeur atteint 60 secondes, un d�epassement de temps majeur se produit.

Par d�efaut, un d�epassement de temps majeur provoquera l'a�chage d'un message surla 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 seronttent�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 erreur d'entr�ee/sortie lorsqu'un d�epassement de tempsmajeur se produit. En raison du cache, cette condition d'erreur n'est pas propag�eeau processus avant son prochain appel �a la fonction write(2), aussi dans ce cas demontage, un programme ne peut jamais etre certain qu'une op�eration d'�ecriture ar�eussi.

Monter en dur ou non est une question de gout, 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 enlan�cant sept copies de xv simultan�ement, ou parce que la prise s'est d�ebranch�ee. Avecun montage en dur, vous serez sur que votre machine attendra jusqu'�a ce que le contactsoit r�etabli avec le serveur NFS. D'un autre cot�e, les donn�ees non critiques, comme lespartitions 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�eseauou d'arret de la machine distante. Si votre r�eseau est souvent surcharg�e ou lent pourdes raisons diverses, vous pouvez augmenter le d�elai d'attente par l'option timeo, oumonter les volumes en dur, mais autorisez l'interruption des appels NFS (intr) pourne 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 tracedes r�epertoires qui ont �et�e mont�es, et par quels hotes. Cette information peut etrea�ch�ee par la commande showmount, qui fait partie du paquetage serveur NFS. La

Page 181: Administration Reseau Sous Linux

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 hotes, vous devrez lancer les d�emonsnfsd et mountd sur votre machine. En tant que programmes RPC, ils ne sont pasg�er�es par inetd, mais sont ex�ecut�es au d�emarrage du syst�eme et enregistr�es par leportmapper. Par cons�equent, vous devez vous assurer qu'ils sont bien appel�es apr�esrpc.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 sesclients ne contiennent en principe que les valeurs num�eriques d'utilisateur et degroupe. Si le client et le serveur associent les memes valeurs aux memes personnes etgroupes, on dit qu'ils partagent le meme espace. C'est par exemple le cas lorsque vousutilisez NIS pour distribuer les informations passwd �a toutes les machines de votrer�eseau.

Toutefois en certaines occasions ces valeurs ne correspondent pas. Plutot que de mo-di�er la con�guration de l'un ou l'autre syst�eme, vous pouvez employer le d�emonugidd, qui s'occupera de parer au probl�eme. Grace �a l'option map daemon expliqu�eeplus loin, vous pouvez demander �a nfsd de faire correspondre les valeurs utilisateuret groupe du serveur �a celles du client, �a condition que ugidd soit en fonctionnementsur ce dernier.

Il s'agit d'un serveur RPC qui est lanc�e depuis rc.inet2, exactement comme nfsd etmountd.

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��edans 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'hote local,ce qui est une attitude plutot sens�ee. Pour autoriser un ou plusieurs hotes �a monter

Page 182: Administration Reseau Sous Linux

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 hotes autoris�es �a le monter. Les noms demachines sont en g�en�eral pleinement quali��es, mais peuvent �egalement contenir lescaract�eres g�en�eriques * et?, qui ont la meme 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 hote pourra monter ce volume.

Lorsqu'il v�eri�e les permissions pour un client donn�e, mountd recherchera son nompar 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. SansDNS, le nom retourn�e est le premier trouv�e dans le �chier hosts, qui correspond �al'adresse du client.

Le nom de machine est suivi par une liste facultative de drapeaux, s�epar�es par desvirgules, 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

requete provienne d'un port r�eserv�e (un port dont le num�ero estinf�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 encoreimpl�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 machinessp�eci��ees tout acc�es sp�ecial, en transformant les requetes de l'utili-sateur 0 sur le client en utilisateur 65534 (-2) sur le serveur, quicorrespond en principe �a l'utilisateur nobody.

no root squash Ne change rien pour les requetes de superutilisateurs. C'est l'optionpar d�efaut.

ro Monte la hi�erarchie de �chiers en lecture seule. C'est l'option pard�efaut.

Page 183: Administration Reseau Sous Linux

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 commencepar 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 leserveur. Cette option n'a de sens que lorsque la totalit�e d'un syst�emede �chiers d'un hote est mont�e ; autrement certains liens peuventpointer nulle part, ou pis, vers des �chiers vers lesquels ils n'auraientjamais du pointer. Cette option est en service par d�efaut.

link absolute Laisse tous les liens symboliques inchang�es (le comportement normaldes serveurs NFS fournis par Sun).

map identity Cette option indique au serveur de consid�erer que le client utiliseles memes 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 memes valeursd'identi�cation utilisateurs et groupes. Le d�emon nfsd construiraalors 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 vousemployez BIND et etes tr�es concern�es par la s�ecurit�e, vous devez employer l'optionnospoof 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 quecela prendrait trop de temps au d�emarrage du syst�eme. On peut alors employer unautomonteur. 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'unautomonteur, 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 decon�guration X11 sur deux ou trois hotes, et les faire utiliser par les autres machinesvia 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 quel'un des montages r�eussisse.

Page 184: Administration Reseau Sous Linux

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�epasse le cadre de ce guide. Pour un bon manuel, consultezles sources ; elles contiennent un �chier Texinfo avec des informations tr�es d�etaill�ees.

Page 185: Administration Reseau Sous Linux

168 Chapitre 11. NFS, le syst�eme de �chiers par r�eseau

Page 186: Administration Reseau Sous Linux

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 AT&T Bell pour permettre des transmissions sur les lignes t�el�ephoniquesordinaires. Puisque la plupart des personnes d�esirant avoir le courrier �electronique etles 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 aaucun UUCP que l'on pourrait appeler (( Le UUCP )), la r�ef�erence. Son �evolution estpermanente depuis que la premi�ere version vit le jour en 1976. Actuellement, il y adeux types qui di��erent dans leur support mat�eriel et leur con�guration. Plusieursimpl�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, DavidA. 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 desnouvelles sp�eci�cations de UUCP.

Le second fut d�evelopp�e en 1983 et on le nomme couramment BNU (Basic NetworkingUtilities), ou HoneyDanBer UUCP que l'on abr�ege en HDB. Ce nom est d�eriv�e decelui des auteurs, P. Honeyman, D. A. Novitz et B. E. Redman. HDB a �et�e con�cupour parer �a quelques d�e�ciences de UUCP Version 2. Par exemple, de nouveauxprotocoles de transfert ont �et�e rajout�es, et le r�epertoire de spoule est divis�e pour quechaque 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 TaylorUUCP 1.05 1, c'est celle dont nous allons traiter dans ce chapitre. Taylor UUCPversion 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

Page 187: Administration Reseau Sous Linux

170 Chapitre 12. Ma�triser Taylor UUCP

Si vous ne disposez que de la version pr�ec�edente (1.04), les di��erences �etant minimesvous devriez pouvoir utiliser les renseignements contenus dans ce chapitre pour lecon�gurer.

Dans la plupart des distributions de Linux, Taylor UUCP est fourni pr�ecompil�e pourla compatibilit�e BNU, ou Taylor, ou les deux. La m�ethode Taylor est bien plus exibleet probablement plus facile �a comprendre que les �chiers de con�guration BNU parfoisassez 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 ceque peut faire UUCP, mais plutot de vous apporter de bonnes bases pour l'installationd'un site UUCP qui fonctionne. La premi�ere section est une petite introduction sur lamani�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 �ala section (( Fichiers de con�guration )), qui d�etaille les di��erents �chiers utilis�es pourla con�guration de UUCP.

Nous consid�ererons toutefois que vous connaissez les programmes utilisateurs mis enjeu dans UUCP. Ce sont principalement uucp et uux ; vous en trouverez la descriptiondans le manuel en ligne.

�A cot�e de ces deux commandes accessibles �a tout le monde, UUCP en contient beau-coup d'autres qui ne sont destin�ees qu'aux taches administratives. Elles servent �asuivre 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�essimples �a utiliser. Il y a n�eanmoins une troisi�eme cat�egorie de programmes, compre-nant le c�ur de UUCP : uucico (o�u cico signi�e copy-in copy-out, le programme decommunications), 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 devrontse reporter �a la documentation fournie avec Taylor UUCP. Elle est compos�ee d'unensemble de �chiers Texinfo qui d�ecrivent la con�guration selon le sch�ema Taylor, etest extremement compl�ete.

Si vous voulez utiliser la con�guration BNU (ou meme 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 deVince Skahan, post�e r�eguli�erement dans comp.os.linux.answers, et disponible enversion 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'estl'endroit id�eal pour les poser, plutot que dans les groupes d�edi�es �a Linux.

Page 188: Administration Reseau Sous Linux

12.1. Transferts UUCP et ex�ecution �a distance 171

12.1 Transferts UUCP et ex�ecution �a distance

La notion de job 2 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'unecommande �a ex�ecuter sur le syst�eme distant, et un ensemble de �chiers �a transf�ererentre 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 votremachine, 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�ecuterun 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 cetteex�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 desoptions de compilation. En mode compatible HDB, UUCP les met en g�en�eral dans unsous-r�epertoire de /var/spool/uucp du nom du site distant. En mode Taylor, il cr�eerades sous-r�epertoires sous le r�epertoire de spoule sp�eci�que au site pour les di��erentstypes 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 connexionest termin�ee. C'est le role de uuxqt, qui prend �egalement soin de renvoyer tout jobdestin�e �a un autre site.

Pour distinguer les jobs les plus importants des autres, UUCP associe un grade �achacun. Il s'agit d'une simple lettre, allant de 0 �a 9, de A �a Z et de a �a z, par ordrede 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 jobsera transf�er�e avant les autres. Ces grades peuvent etre assign�es par l'option -g lorsde l'appel de uucp ou uux.

Vous pouvez aussi interdire le transfert en dessous d'un certain grade �a certainesheures ; c'est le grade maximum de spoule autoris�e pendant une communication, dontla valeur par d�efaut est z. Notez que la terminologie est assez ambigu�e ici : un �chierne 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.

Page 189: Administration Reseau Sous Linux

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 programmedoit 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 cetteadresse �a la socket correspondante.

Une fois la connexion �etablie, il faut mettre en �uvre une proc�edure d'autorisationd'acc�es. Elle est g�en�eralement constitu�ee du classique couple login/mot de passe, etr�ealis�ee par les programmes habituels getty/login, ou bien lorsqu'il s'agit de socketsTCP, par uucico lui-meme. Si l'autorisation d'entr�ee est accord�ee, la machine appel�eelance 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 lesdeux programmes se pr�esentent l'un �a l'autre) : le ma�tre annonce son nom ainsi quecertaines 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 desconnexions r�eussies, ces comptes sont alors compar�es. S'ils ne correspondent pas, laconnexion 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�ererles donn�ees, tester les erreurs, g�erer les retransmissions en cas de probl�eme, etc. Ilest n�ecessaire de disposer de plusieurs protocoles en raison des di��erents types deconnexions possibles. Par exemple, les lignes de t�el�ephones n�ecessitent un protocoletr�es (( sur )), 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 moinsregardant, et plus e�cace.

Apr�es ce premier dialogue, la transmission peut commencer. Chaque cot�e met enroute le pilote du protocole choisi, qui peut �eventuellement e�ectuer une s�equenced'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 su�sant. Lorsqu'il a termin�e, il informe l'esclave qu'il a �ni sontravail et que la communication peut etre coup�ee. �A ce moment, les roles s'inversent : lema�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 etferment 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

Page 190: Administration Reseau Sous Linux

12.2. Fichiers de con�guration 173

r�eguli�erement dans comp.mail.uucp sous le nom de uucp internals, d�ecrivant chaqueprotocole 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 programmeuucico. 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 lesoptions -s et -S. Utilis�ee seule, cette option provoque l'appel tour �atour 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 lasortie standard sont consid�er�ees comme �etant connect�ees �a un ports�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 typespeuvent 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. Lemot cl�e all les valide tous. Pour rester compatible avec les autresimpl�ementations de UUCP, on peut aussi sp�eci�er un nombre, ce quivalide 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 pasd'intervention quotidienne de l'administrateur syst�eme. Les informations n�ecessairespour ces transferts automatiques tiennent dans deux ou trois �chiers de con�gurationr�esidant dans le r�epertoire /usr/lib/uucp, utilis�es surtout lors d'appels sortants.

Page 191: Administration Reseau Sous Linux

174 Chapitre 12. Ma�triser Taylor UUCP

12.2.1 Petite introduction �a Taylor UUCP

Dire que la con�guration de UUCP est di�cile est un euph�emisme. C'est r�eellementun 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 encomparaison de ceux de HDB et Version 2).

Pour vous donner une id�ee de la mani�ere dont tous ces �chiers interagissent, nous vouspr�esenterons les plus importants et donnerons des exemples pratiques. Nous n'allonspas entrer dans le d�etail tout de suite ; ce sera le role de chaque section de ce chapitre.Si vous d�esirez con�gurer UUCP sur votre machine, la meilleure solution sera de partirdes exemples et de les adapter graduellement. Vous pouvez choisir soit ceux qui vontsuivre, 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. Quelquesdistributions contiennent des binaires supportant �a la fois les con�gurations HDB etTaylor, 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'utilisateuruucp. Certains contenant des mots de passe et des num�eros de t�el�ephone, ils doiventavoir une permission d'acc�es de 600 3.

Le �chier de con�guration central s'appelle /usr/lib/uucp/con�g, et d�etermine lesparam�etres g�en�eraux. Le plus important d'entre eux (et pour l'instant, le seul) est lenom de votre site UUCP. �A (( La bi�ere virtuelle )), leur passerelle UUCP est la machinegueuze :

# /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 sitesauxquels vous etes reli�es par UUCP. Cela comprend le nom des machines et des infor-mations sur le lien lui-meme, comme le num�ero de t�el�ephone, par exemple. Une entr�eetypique 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 meme si les �chiers ont un mode de 600.

Page 192: Administration Reseau Sous Linux

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 etreappel�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. Laligne port indique simplement le nom d'une entr�ee dans le �chier port. Vous pouvez ymettre 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, ild�ecrit le �chier de p�eriph�erique �a utiliser, la gamme des vitesses support�ees, et le typede num�eroteur connect�e. L'entr�ee ci-dessous d�ecrit /dev/cua1 (COM 2), sur lequel estconnect�e un modem NakWell capable de supporter la vitesse de 38 400 bps. Le nomdu 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 pourappeler un site, avec un num�ero de t�el�ephone donn�e. L�a encore, il s'agit d'un scriptde 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 ATDT\T CONNECT

La ligne commen�cant par chat indique la s�equence de commandes �a envoyer au modem,avec les r�eponses �a attendre, pour l'initialiser et le faire t�el�ephoner. Le programmeuucico 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 voitalors dans l'entr�ee correspondante qu'il doit utiliser le port serial1 pour �etablir laconnexion. Le �chier port lui indique qu'il s'agit d'un port sur lequel est connect�e unmodem NakWell.

Alors, uucico cherche dans le �chier dial une entr�ee d�ecrivant ce modem NakWell, etlorsqu'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.

Page 193: Administration Reseau Sous Linux

176 Chapitre 12. Ma�triser Taylor UUCP

system

portspeed...

pablo

38400serial1

dialerchatchat-fail...

nakwell"" ATZ ..BUSY

porttypespeeddevicedialer...

serial1modem38400/dev/cua1nakwell

Le �chier sysLe �chier port

Le �chier dial

Fig. 12.1 - Interaction des �chiers de con�guration de Taylor UUCP.

Page 194: Administration Reseau Sous Linux

12.2. Fichiers de con�guration 177

Apr�es que le modem a retourn�e CONNECT, la connexion est �etablie et le dialogue modemest termin�e ; uucico retourne alors au �chier sys et ex�ecute le dialogue d'entr�ee dansle syst�eme. Dans notre exemple, il attendra l'invite login: puis enverra son nomd'utilisateur (neruda), attendra password: et r�epondra par le mot de passe, lorca.

Ensuite, la machine appel�ee lancera son propre uucico. Les deux programmes entrerontdans 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 certainesinformations 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 sousLinux aux p�eriph�eriques /dev/cua0 �a /dev/cua3. Beaucoup de distributions cr�eentun lien nomm�e /dev/modem vers le p�eriph�erique appropri�e, et con�gurent certainsprogrammes de communication (kermit, minicom, seyon, etc.) pour qu'ils utilisent ceport. 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 programmese�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 lacha�ne LCK.. et du nom du p�eriph�erique, par exemple LCK..cua1. Si les programmesutilisaient des noms di��erents pour acc�eder aux memes p�eriph�eriques, ils ne reconna�-traient pas les �chiers de verrouillage des autres applications et le r�esultat serait tr�eshasardeux. Lorsque l'on programme les appels UUCP par une entr�ee crontab, il fautabsolument 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�erezatteindre. Cette vitesse peut etre largement sup�erieure �a celle �a laquelle la connexionse fait : par exemple, beaucoup de modems envoient et recoivent des donn�ees �a 2 400bps, mais avec les protocoles de compression comme V.42bis, la vitesse de transfertpeut atteindre 9 600 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 �autiliser pour entrer dans ces machines 4.

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.

Page 195: Administration Reseau Sous Linux

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 a�chelogin: ou bien user: ? Ces renseignements sont indispensables pour r�ediger le scriptde dialogue. Si vous ne savez pas, ou si le script que vous utilisez habituellementailleurs ne marche pas, appelez le site avec un programme de terminal ordinaire commekermit 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 quelconquestandard 5.

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 enregistrantdans 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 pleinementquali��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 sitesUUCP se connaissaient entre eux par leur pr�enom. Bien sur, vous pouvez choisir unnom 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 lesadresses de courrier �electronique, sauf s'il est enregistr�e dans les cartes UUCP commenom o�ciel 6. Au mieux, un courrier exp�edi�e �a un site UUCP non enregistr�e partiraaux oubliettes. Si vous utilisez un nom d�ej�a existant, le courrier sera rout�e �a ce siteet causera des maux de tete 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�eral initialis�e dans le script /etc/rc.local. Si le nom choisi doit etre di��erent,

vous devrez utiliser l'option hostname du �chier de con�guration pour indiquer ce cas�a uucico ; nous allons voir �ca bientot.

5: La seule limitation est qu'il ne doit pas d�epasser sept caract�eres, a�n de ne pas gener 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 meme �a six caract�eres !

6: Le projet de cartes UUCP enregistre tous les noms d'hotes 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 meme 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.

Page 196: Administration Reseau Sous Linux

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�nirvotre nom de site UUCP.

sys Ce �chier d�ecrit tous les sites connus de vous. Pour chacun, il sp�eci�eson nom, �a quelles heures il est possible de l'appeler, quel num�erode t�el�ephone composer (si n�ecessaire), quel p�eriph�erique utiliser, etcomment se connecter.

port Contient les entr�ees d�ecrivant chaque port disponible, avec la vitessesupport�ee et le num�eroteur �a utiliser.

dial D�ecrit les num�eroteurs employ�es pour �etablir une communicationt�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 seconnecter �a un syst�eme. Rarement utilis�e.

passwd Contient les noms et mots de passe que les syst�emes doivent prendrepour se connecter chez vous. Ce �chier n'est utilis�e que lorsque uucicos'occupe lui-meme de cette op�eration.

Ces �chiers de con�guration sont principalement compos�es de lignes contenant despaires de mots cl�es/valeurs. Un signe di�ese introduit un commentaire qui s'�etendjusqu'�a la �n de la ligne. Pour utiliser ce caract�ere autrement 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 grace �a ces �chiers. Nous ned�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 utiliserUUCP sur r�eseau TCP/IP ou par une ligne s�erie directe. Les documents Texinfo quiaccompagnent 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�edans /usr/lib/uucp). Il lit les �chiers que vous avez r�edig�e avec soin et a�che unrapport d�etaill�e des valeurs qui seront utilis�ees pour chaque syst�eme.

Page 197: Administration Reseau Sous Linux

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 nomUUCP. 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). Voiciun 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 UUCPanonyme. 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 introduitepar 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 lenum�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 pard�efaut utilis�ees pour tous les sites. Vous y mettrez en g�en�eral les param�etres pard�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, etnon pas un alias de votre imagination, car uucico le v�eri�era par rapport �a ce quecette machine lui indiquera lorsque vous serez connect�e 7.

Chaque nom de syst�eme ne doit appara�tre qu'une fois. Si vous d�esirez plusieurs con�-gurations pour une meme 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.

Page 198: Administration Reseau Sous Linux

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 paused'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 appeler 8.

Toute cha�ne alphab�etique peut etre utilis�ee pour cacher des informations d�ependantesdu site, comme des pr�e�xes d'appel. Ces cha�nes seront remplac�ees par le num�eroindiqu�e dans le �chier dialcode. Supposons que vous avez un �chier dialcode commecelui-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 Pluton4722dans le �chier sys, ce qui rend les choses un peu plus lisibles.

Port et vitesse

Les options port et speed servent respectivement �a s�electionner le p�eriph�erique �a utiliserpour l'appel et la vitesse maximale �a laquelle il doit etre initialis�e. Une entr�ee systempeut utiliser soit l'une, soit l'autre, ou les deux options ensemble. Lors de la recherched'un p�eriph�erique dans le �chier port, seuls ceux qui ont un nom correspondant et/ouune vitesse sont s�electionn�es.

G�en�eralement, l'option speed est su�sante. Si vous n'avez qu'un port s�erie d�e�nidans port, uucico prendra toujours celui-l�a de toute fa�con ; il su�t donc d'indiquer �aquelle vitesse l'utiliser. Si vous avez plusieurs modems, il n'est pas non plus n�ecessaired'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 entrersur le syst�eme distant. Il consiste en une liste de cha�nes de caract�eres attendueset envoy�ees par le processus uucico local. Les cha�nes �a attendre et �a envoyer sontins�er�ees alternativement, et uucico rajoute automatiquement un retour-chariot (\r) �ala �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 permetde 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...

Page 199: Administration Reseau Sous Linux

182 Chapitre 12. Ma�triser Taylor UUCP

Il est aussi possible d'obtenir une sorte d'ex�ecution conditionnelle avec uucico, dans lecas o�u le getty de la machine distante a besoin d'etre recycl�e ou r�einitialis�e avant qu'iln'a�che une invite. Pour cela, vous pouvez attacher un script secondaire �a une cha�ned'attente, constitu�e de tirets. Ce script secondaire n'est ex�ecut�e que si l'attente �echoue.Une utilisation possible consiste �a envoyer un BREAK si le site distant n'a�che aucuneinvite de login. L'exemple qui suit propose un script de dialogue g�en�eral, qui devraitaussi fonctionner s'il faut envoyer un retour-chariot pour r�eveiller un peu la machineappel�ee. Le premier argument vide "" indique qu'il ne faut rien attendre et envoyerdirectement la prochaine cha�ne de caract�eres.

"" \n\r\d\r\n\c ogin:-BREAK-ogin: gueuze ssword: grqt22

Certaines s�equences sp�eciales peuvent appara�tre dans le script de dialogue. La listequi 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 espacesdans 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 plusdes pr�ec�edentes :

EOT Caract�ere de �n de transmission (^D).

BREAK (( Caract�ere )) Break.

\c Suppression du rajout automatique du retour-chariot en �n de cha�ne.

\d Pause d'une seconde.

\E Valide le test d'�echo. Dans ce mode, uucico attend que l'�echo de toutce qu'il �ecrit lui revienne avant de continuer le dialogue. C'est surtoututile pour les dialogues avec les modems (que nous rencontrerons plusloin). Par d�efaut, ce mode est hors service.

\e Supprime le test d'�echo.

Page 200: Administration Reseau Sous Linux

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 meme syst�eme, par exemples'il peut etre joint par plusieurs lignes. Avec Taylor UUCP, vous pouvez r�ealiser celaen 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 etne modi�e que ceux qui y sont express�ement indiqu�es. Elles sont plac�ees �a l'int�erieurd'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 su�t de modi�erson 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, ilessaiera 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�emedistant. Ces restrictions peuvent correspondre �a l'ouverture d'un service, ou aux tarifst�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 doncabsolument indiquer les horaires autoris�es d'une mani�ere ou d'une autre dans le �chiersys. Si vous ne d�esirez aucune restriction, vous pouvez mettre la valeur Any dans laligne 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 lesvaleurs Mo, Tu, We, Th, Fr, Sa, Su (lundi, mardi... dimanche) ou bien Any (tous lesjours), Never (jamais), ou Wk (tous les jours de la semaine). L'heure consiste en deuxvaleurs sur 24 heures, s�epar�ees par un tiret. La combinaison r�esultante est �ecrite sansaucune espace de s�eparation. Plusieurs jours ou horaires peuvent etre indiqu�es en less�eparant par des virgules.

Page 201: Administration Reseau Sous Linux

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, etles vendredis entre 18 heures 05 et 20 heures. Lorsqu'un champ horaire s'�etend apr�esminuit, par exemple Mo1830-0600, cela signi�e lundi, entre minuit et 6 heures dumatin et entre 18 heures 30 et minuit.

Les mots cl�es sp�eciaux Any et Never signi�ent respectivement que les appels pourrontavoir lieu �a toute heure, ou jamais.

La commande time prend un second argument facultatif qui indique un d�elai entreplusieurs tentatives, en minutes. Lorsqu'un appel �echoue, uucico n'autorisera aucunautre appel de cette machine pendant un certain temps. Par exemple, si vous sp�eci�ezun intervalle de 5 minutes, il refusera d'appeler le syst�eme distant pendant 5 minutesapr�es le dernier appel infructueux. Par d�efaut, ce temps est incr�ement�e chaque foisqu'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�eavec le grade B ou C) �a etre transf�er�es chaque fois qu'une connexion est �etablie, alorsque les News (qui ont usuellement le grade N) ne seront �echang�ees que pendant lanuit 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 ceque 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 lesjobs dont le grade est d'un certain niveau ; mais il n'y a aucune garantie qu'elle ob�eisse�a cette requete 9.

Il faut savoir aussi que le champ timegrade n'est pas test�e lorsque c'est le syst�emedistant qui vous appelle, et les jobs en attente seront tous transf�er�es. Mais il peut,bien sur, 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 desports modem, aussi bien que d'autres types comme des lignes s�erie directes ou dessockets TCP.

9: Si le syst�eme distant utilise Taylor UUCP, il ob�eira.

Page 202: Administration Reseau Sous Linux

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 quile d�esigne. Ce nom peut etre utilis�e dans le �chier sys, pour la d�eclaration port. Iln'a pas besoin d'etre unique ; s'il y en a plusieurs, uucico les essaiera tous un par unjusqu'�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 lesconnexions 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 desections 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 ladirective device. C'est g�en�eralement le nom d'un �chier de p�eriph�erique du r�epertoire/dev, comme /dev/cua1 10 .

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 ;meme 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�erode t�el�ephone d�esir�e. Taylor UUCP stocke les descriptions de tous les num�eroteurs dansle �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 rienlorsqu'un appareil r�ecent tente de se connecter �a 14400 bps ou plus ; ils raccrochentla ligne au lieu d'�etablir la connexion �a 9 600 bps, ou moins. Lorsque vous appelezde 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 unnom di��erent, comme par exemple serial1-lent, et la directive port dans l'entr�ee dusyst�eme vieuxsite dans le �chier sys.

Une meilleure m�ethode consiste �a faire la distinction des ports en fonction des vitessessupport�ees. Par exemple, les deux entr�ees de la situation que nous venons d'�evoquerpourraient 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.

Page 203: Administration Reseau Sous Linux

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 vieuxsite indiquerait maintenant serial1 comme nom deport, mais demanderait de ne l'utiliser qu'�a 9 600 bps. Le programme uucico utiliseraalors la seconde entr�ee automatiquement. Tous les sites restants qui ont une vitessede 38 400 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 pourcomposer un num�ero de t�el�ephone, car en des temps recul�es la pratique courante �etaitd'avoir un appareil (tr�es couteux) destin�e �a la composition d'appels t�el�ephoniques,

servant une banque de plusieurs modems. Aujourd'hui, la plupart des modems saventnum�eroter eux-memes, aussi cette distinction devient assez obscure.

N�eanmoins, di��erents num�eroteurs ou modems n�ecessitent chacun une con�gurationparticuli�ere. Vous pouvez d�ecrire chaque type dans le �chier dial, dont les entr�eescommencent 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. Ilest similaire au script de connexion, et consiste en une s�equence de cha�nes que uucicoenvoie �a l'appareil et les r�eponses qu'il doit en attendre. On s'en sert le plus souventpour 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 OK\r ATH1E0Q0 OK\r ATDT\T CONNECT

chat-fail BUSY

chat-fail ERROR

chat-fail NO\sCARRIER

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 unefois r�epondu OK, uucico lui envoie la commande de num�erotation ATDT. La s�equenced'�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 parla cha�ne CONNECT.

Souvent, la communication ne peut pas s'�etablir, si par exemple la ligne de l'autresyst�eme est occup�ee. Dans ce cas, le modem renvoie un message d'erreur indiquant la

Page 204: Administration Reseau Sous Linux

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 detrace de UUCP indiquera alors le message (( timed out in chat script )) au lieu dela raison r�eelle de l'�echec.

Toutefois, Taylor UUCP vous permet d'informer uucico de ces messages d'erreur par lacommande chat-fail que nous avons vue plus haut. Lorsqu'il d�etecte une telle situation,il arrete aussitot 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 dela ligne DTR avant de commencer le dialogue. Normalement, le pilote des ports s�eriemonte le signal DTR (Data Terminal Ready) lorsqu'un processus ouvre le port, pourindiquer au modem qui y est connect�e que quelqu'un veut lui parler. Avec le motcl�e dtr-toggle, la DTR sera baiss�ee, puis remont�ee apr�es un petit d�elai. Beaucoup demodems modernes peuvent etre con�gur�es pour reconna�tre cette manipulation ete�ectuer di��erentes actions, comme raccrocher la ligne, passer en mode commandesou se remettre �a z�ero 11.

12.2.9 UUCP sur TCP

Aussi absurde que cela puisse para�tre, utiliser UUCP pour transf�erer des donn�ees parun r�eseau TCP/IP n'est pas une mauvaise id�ee du tout, particuli�erement lors de grostransferts 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 auxgrands sites poss�edant plusieurs sources concurrentes et connect�es par des lignes tr�esrapides, cette technique est tr�es peu e�cace pour les petits sites qui re�coivent leursdonn�ees par des connexions tr�es lentes comme ISDN (NUM�ERIS en France). Ces sitespr�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�eresuivante :

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'hote 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.

Page 205: Administration Reseau Sous Linux

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�emedistant. Il s'agit du num�ero de port par d�efaut pour le service UUCP. Au lieu de cenum�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�emegueuze �a la machineminus. Comme dans le cas d'un modem, vous devez r�ediger uneentr�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 pasn�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 sur, en tant qu'ad-ministrateur syst�eme vous voudrez avoir le controle des droits accord�es aux autresmachines : les autoriser �a ex�ecuter des commandes chez vous est une tr�es mauvaiseid�ee.

Par d�efaut, les seules commandes que Taylor UUCP autorise aux autres machines sontrmail et rnews, qui servent �a l'�echange du courrier �electronique et des News Usenetpar UUCP. Le chemin de recherche par d�efaut utilis�e par uuxqt est d�etermin�e lors de lacompilation 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 pouvezutiliser le mot cl�e commands dans le �chier sys. De meme, le chemin de recherche peut

Page 206: Administration Reseau Sous Linux

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 lamachine pablo �a ex�ecuter la commande rsmtp en plus de rmail et rnews 12 :

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 pouvezcarr�ement les interdire, en mettant request �a la valeur no ; aucun syst�eme ne pourraalors demander un transfert de �chiers, quelle que soit la direction. De meme, vouspouvez interdire aux utilisateurs de transf�erer des �chiers avec un syst�eme donn�e enmettant transfer �a no. Par d�efaut, les utilisateurs de la machine locale comme dusyst�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, vousrestreindrez l'acc�es �a une seule hi�erarchie pour les syst�emes distants, mais autoriserezvos utilisateurs �a envoyer des �chiers depuis leur r�epertoire personnel. La plupart dutemps, les utilisateurs distants ne seront autoris�es �a recevoir des donn�ees que dans ler�epertoire public destin�e �a UUCP, /var/spool/uucppublic. Il s'agit traditionnellementde l'endroit ou les �chiers publics sont mis �a disposition, un peu comme les serveursFTP 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 etde r�eception. Ce sont : local-send, qui sp�e�cie la liste des r�epertoires depuis lesquels unutilisateur peut envoyer des �chiers ; local-receive, qui indique la liste de r�epertoiresdans lesquels un utilisateur peut demander �a recevoir les �chiers ; puis remote-sendet remote-receive, qui ont le meme role pour un syst�eme distant. Voyons l'exemplesuivant :

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'importequel �chier �a partir du r�epertoire /home et du r�epertoire UUCP public de pablo. Lacommande local-receive leur permet de recevoir des donn�ees soit dans le r�epertoirereceive de uucppublic, soit dans n'importe quel r�epertoire �a partir de /home. La direc-tive remote-send autorise pablo �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.

Page 207: Administration Reseau Sous Linux

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�cusque 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 aaucun moyen d'�eviter cela, �a moins d'interdire purement et simplement tout transfertde �chier par UUCP.

12.3.3 Relais

UUCP o�re un m�ecanisme permettant de demander �a d'autres machines de transf�ererdes �chiers pour vous. Cela permet par exemple de demander �a la machine truc der�ecup�erer un �chier sur bidule pour vous et de vous l'envoyer. Voici la commandecorrespondante :

$ 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�ee car truc a un acc�esUUCP 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 lesquelsvous avez une pleine con�ance, pour �eviter que certains ne passent par vous pourt�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 droitde vous demander de ramener des �chiers pour eux. Par exemple, l'administrateurdu syst�eme truc devra ajouter la ligne suivante dans son �chier sys pour autoriserpablo �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 retournesoit pass�e �a pablo, sinon UUCP le rejetterait. Cette entr�ee utilise une variante de lacommande 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�ecialANY (les majuscules sont obligatoires).

Page 208: Administration Reseau Sous Linux

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 parles 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 devrezmettre en service un processus getty sur ce port. Toutefois, certaines impl�ementationsdu programme getty ne sont pas tr�es adapt�ees �a cet usage, car vous voudrez sans doutepouvoir �egalement e�ectuer des appels sortants par le meme port s�erie lorsque la ligneest libre ; il faudra par cons�equent que ce p�eriph�erique puisse etre partag�e aussi bienpar 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�erercette situation, n�eanmoins beaucoup utilisent encore, meme 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��erentesimpl�ementations de getty.

Nous consid�ererons donc �a partir de maintenant que votre syst�eme et le modem sontcorrectement 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 distantsd'entrer dans votre syst�eme et d'�etablir une connexion UUCP. G�en�eralement, on ouvreun compte par syst�eme appelant, avec un nom permettant de mettre en �evidence qu'ilne s'agit pas d'un utilisateur ordinaire. Par exemple, la machine pablo se connecterasous 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 lescomptes UUCP dans un groupe sp�ecial comme, par exemple, uuguest. Le r�epertoirepersonnel doit etre le r�epertoire public /var/spool/uucppublic ; et le shell doit etre leprogramme uucico.

Si vous utilisez les mots de passe shadow, vous pourrez sans doute ouvrir ces comptespar la commande useradd :

# useradd -d /var/spool/uucppublic -G uuguest -s /usr/lib/uucp/uucico uupablo

Page 209: Administration Reseau Sous Linux

192 Chapitre 12. Ma�triser Taylor UUCP

Sinon, il vous faudra probablement le faire manuellement, en �editant /etc/passwd poury rajouter une ligne comme dans l'exemple suivant, o�u 5000 et 150 sont les num�erosidenti�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 pourqu'il g�ere les connexions sur le port uucp. Pour cela, il faudra rajouter la ligne suivantedans le �chier /etc/inetd.conf 13 :

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. Iln'utilisera pas le �chier /etc/passwd standard du syst�eme, mais une base de donn�eesde mots de passe qui lui est propre (/usr/lib/uucp/passwd) constitu�ee de paires denoms 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 pourque personne ne puisse en prendre connaissance.

Si cette m�ethode vous pla�t tellement que vous voudriez pouvoir l'utiliser aussi pour lesacc�es ordinaires par port s�erie, vous devez savoir que c'est impossible actuellement, dumoins 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) bricolerun programme getty capable de passer ce nom d'utilisateur, et qui appelle uucico �a laplace de la commande standard /bin/login.

Pour prot�eger vos utilisateurs UUCP des intrus donnant un faux nom de syst�eme etpiratant tout leur courrier, vous devrez ajouter la commande called-login dans chaqueentr�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 ; ils'annonce apr�es avoir pass�e la premi�ere authenti�cation par mot de passe, mais lamachine appel�ee n'a aucun moyen de v�eri�er ce nom. Par cons�equent, un petit malinpourrait 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.

Page 210: Administration Reseau Sous Linux

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, pourlesquels le mot de passe est public, ou absent.

�A moins que vous ne soyez absolument sur de l'honnetet�e de tous les sites qui vousappellent, vous devez vous prot�eger de ce type d'imposture. Le rem�ede consiste �ademander �a chaque syst�eme d'utiliser un nom particulier pour la connexion, que voussp�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, uucicov�eri�era s'il est bien entr�e sous le compte uupablo. Si ce n'est pas le cas, la connexionsera 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 quine vous appellent jamais, vous pourrez initialiser called-login �a n'importe quoi, parexemple 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.Meme ceux qui trouvent noms et mots de passe �a employer ne pourront que di�cile-ment franchir cette barri�ere.

Avec ce syst�eme, chaque machine conserve une trace du nombre de connexions �etabliesdepuis le d�ebut. Il est incr�ement�e �a chaque connexion r�eussie. Au d�ebut de chaquecommunication, ces nombres sont �echang�es entre les deux syst�emes pour etre com-par�es : s'ils ne correspondent pas, de quelque cot�e que ce soit, la communication seraimm�ediatement coup�ee. Si, de plus, le nombre initial est tir�e au hasard, les piratesauront beaucoup de mal �a deviner la bonne s�equence.

Mais ce test de s�equence d'appels peut faire encore mieux : meme si quelqu'un, parun miraculeux hasard, pirate votre compte UUCP en trouvant la bonne s�equenceet 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 prochaineconnexion que vous tenterez vous sera alors refus�ee, puisque vous ne serez plus enpossession de la s�equence correcte !

Par cons�equent, si vous avez valid�e ce test, vous devez r�eguli�erement jeter un �ilaux �chiers de trace pour d�etecter les attaques possibles. Si votre syst�eme rejette uneconnexion en raison d'une mauvaise s�equence, uucico enregistre un message disantquelque chose comme (( Out of sequence call rejected )). Si c'est votre machinequi est refus�ee lorsque c'est vous qui appelez, le message sera (( Handshake failed

(RBADSEQ) )).

Page 211: Administration Reseau Sous Linux

194 Chapitre 12. Ma�triser Taylor UUCP

Pour mettre ce test en service, vous devez rajouter la commande suivante dans l'entr�eedu 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 placedans un �chier nomm�e .Sequence dans le r�epertoire de spoule du site distant. Il doitappartenir �a l'utilisateur uucp et avoir le mode 600 (lecture et �ecriture uniquement aupropri�etaire). Il vaut mieux initialiser ce nombre en se mettant d'accord avec l'autresite sur une valeur arbitraire ; sinon quelqu'un pourrait arriver �a le deviner en essayantdi��erentes valeurs plausibles.

# cd /var/spool/uucp/pablo

# echo 94316 > .Sequence

# chmod 600 .Sequence

# chown uucp.uucp .Sequence

Bien sur, le site distant doit �egalement valider ce test et commencer avec le memenombre que vous.

12.4.5 UUCP anonyme

Pour proposer un acc�es UUCP anonyme, vous devez con�gurer un compte sp�ecialcomme nous l'avons d�ecrit ci-dessus. La tradition veut que ce compte s'appelle uucpou 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 indiquerce fait dans une entr�ee du �chier sys puisque la commande system requiert le nomdu syst�eme, que vous ne connaissez pas. Taylor UUCP r�esout ce probl�eme par lacommande unknown, qui peut etre utilis�ee dans le �chier con�g pour d�esigner toutecommande 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 requetes demise en route du d�eboguage local (sinon un malin pourrait remplir votre disque dur

Page 212: Administration Reseau Sous Linux

12.5. Protocoles UUCP de bas niveau 195

de �chiers de trace). Les deux derni�eres lignes autorisent les syst�emes inconnus �aex�ecuter la commande rmail ; mais le chemin de recherche est limit�e �a un r�epertoirepriv�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 dusuperutilisateur. Cela autorise les utilisateurs anonymes �a laisser un message �a l'ad-ministrateur (qui ne pourra pas leur r�epondre par ce meme chemin, bien sur), tout eninterdisant aux personnes malintentionn�ees de passer par l�a pour distiller du courrierdans le monde entier.

Pour valider l'UUCP anonyme, vous devez au moins avoir une directive unknown dansvotre �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 transparentpour 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 meme X.25, il est n�ecessaire d'avoir des protocoles adapt�es �a chaque cas. Deplus, di��erentes impl�ementations de UUCP ont introduit divers protocoles qui fontgrosso modo la meme chose.

On peut classer ces protocoles en deux cat�egories : ceux qui sont orient�es ux et ceuxqui sont orient�es paquets. Les premiers transf�erent un �chier dans son int�egralit�e,en calculant �eventuellement un checksum dessus. C'est extremement e�cace maisn�ecessite une connexion tr�es �able, car �a la moindre erreur il faut retransmettre toutle �chier. Ce type de protocole est essentiellement utilis�e sur des connexions TCPmais est totalement inadapt�e pour des liaisons par lignes t�el�ephoniques. Bien que lesmodems modernes disposent de correction d'erreurs, ce n'est pas parfait, et il n'y ena pas entre l'appareil et l'ordinateur.

Les protocoles de la seconde cat�egorie divisent le �chier en plusieurs morceaux. Chaquepaquet est envoy�e et re�cu s�epar�ement, un checksum est calcul�e, et un acquittement debonne r�eception est retourn�e �a l'exp�editeur, qui peut alors envoyer la partie suivante.Pour am�eliorer l'e�cacit�e de cette m�ethode, on a invent�e des protocoles �a fenetresvariables, qui permettent l'envoi d'un petit nombre de paquets (une fenetre) sansattendre d'acquittement. Cela r�eduit notablement les temps d'attente de uucico pen-

Page 213: Administration Reseau Sous Linux

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 uneutilisation 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 determinaux 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 lignescorrectes, capables de passer des caract�eres sur 8 bits, on compte les liaisons TCP etla 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 tousles programmes uucico. Il e�ectue une correction d'erreurs et il estpar 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 protocoleorient�e paquets avec une technique de fenetrage.

i C'est un protocole bidirectionnel, qui peut envoyer et recevoir des�chiers en meme temps. Il n�ecessite une liaison bidirectionnelle sur8 bits, il n'est compris pour l'instant que par Taylor UUCP. Il estextremement e�cace.

t Destin�e �a l'usage sur les connexions TCP ou les liaisons sans au-cune erreur. Il utilise des paquets de 1 024 octets et n�ecessite unetransmission 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, maisqui peut fonctionner sur une transmission 7 bits. Tous les caract�eresayant le huiti�eme bit positionn�e sont encod�es, ce qui le rend particu-li�erement ine�cace.

G Il s'agit de la version System V Release 4 du protocole g. Il est aussicompris par quelques autres impl�ementations de UUCP.

a Ce protocole ressemble �a ZMODEM. Il n�ecessite une transmissionsur 8 bits, mais encode certains caract�eres de controle comme XONet XOFF.

12.5.2 Optimisation du protocole de transmission

Tous ces protocoles permettent d'ajuster certains de leurs param�etres comme les d�elaisd'attente, la taille des paquets, etc. G�en�eralement, les valeurs par d�efaut fonctionnent

Page 214: Administration Reseau Sous Linux

12.5. Protocoles UUCP de bas niveau 197

correctement en des circonstances normales, mais il est des cas o�u ils peuvent etreinadapt�es. Le protocole g, par exemple, emploie des fenetres de 1 �a 7, et des taillesde paquet allant de 64 �a 4 096 par puissances de 2 14. Si votre ligne t�el�ephoniqueest si mauvaise que vous perdez plus de 5% des paquets, vous devrez probablementr�eduire leur taille ainsi que celle de la fenetre. Toutefois, si votre liaison est excellente,augmenter la taille de ces paquets �a 512 voire 1 024 octets am�eliorera l'e�cacit�e duprotocole 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 paquetsdu 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 laliste 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 cot�esdoivent se mettre d'accord sur un protocole commun. Le ma�tre propose �a l'esclaveune liste des protocoles dont il dispose en lui envoyant la s�equence Pprotlist, etl'esclave fait son choix.

En fonction du type de port utilis�e (modem, TCP, direct), uucico composera une listepar 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 deport. Par exemple, vous pouvez �editer l'entr�ee modem de votre �chier port commececi :

port serial1

...

protocols igG

Cela aura pour e�et de forcer l'utilisation des protocoles i, g ouG pour toute connexione�ectu�ee par ce port. Si le syst�eme distant ne conna�t aucun de ces protocoles, lacommunication �echouera.

14: Beaucoup de binaires fournis avec les distributions Linux ont une fenetre par d�efaut de 7 et des

paquets de 128 octets.

Page 215: Administration Reseau Sous Linux

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 desugg�erer o�u regarder pour trouver la solution au probl�eme. Malgr�e tout, nous avonsrassembl�e tout cela de tete et il y a sans doute beaucoup d'autres choses susceptiblesde ne pas marcher correctement.

Dans tous les cas, validez le d�eboguage par l'option -xall, et regardez attentivementla sortie obtenue dans le �chier Debug cr�e�e dans le r�epertoire de spoule. Vous devriezrapidement trouver la cause du probl�eme. De plus, mettez toujours le haut-parleurde votre modem en service, cela permet de se rendre compte si la communications'�etablit. Avec un modem compatible Hayes, il vous su�ra 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 �chiersrelatifs �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�es 15 dans le r�epertoire despoule qui doivent appartenir �a uucp.

uucico persiste �a a�cher (( Wrong time to call )) : ce n'est pas l'heure d'appeler lesite en question. Cela signi�e probablement que vous n'avez pas sp�eci��e de commandetime dans le �chier sys, d�etaillant quand le site peut etre joint, ou qu'e�ectivement iln'est pas l'heure d'appeler. Si time n'est pas l�a, uucico consid�ere que ce syst�eme nepourra jamais etre appel�e.

uucico se plaint que le site est d�ej�a verrouill�e (site already locked) : cela signi�equ'il d�etecte un �chier de verrouillage pour le syst�eme en 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'appelerle site et qui est coinc�e dans un script de dialogue, ou ailleurs. Si cet uucico n'arrivepas �a �etablir la liaison, tuez-le avec un signal HUP et supprimez tous les �chiers deverrouillage 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 etreun probl�eme de vitesse inadapt�ee. Sinon, v�eri�ez qu'il correspond bien �a ce qu'attendvotre script de dialogue. Souvenez-vous que ce script commence sur une attente. Sivous attendez l'invite de login et que vous envoyez votre nom, mais que jamais l'autrecot�e ne vous demande le mot de passe, ins�erez quelques d�elais d'attente avant votreenvoi, ou meme 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 DTRa �et�e mont�ee lorsque uucico appelle, il se peut que vous n'avez pas indiqu�e le bonp�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 a�ch�es par la commande

ls si on ne lui pr�ecise pas.

Page 216: Administration Reseau Sous Linux

12.7. Les �chiers de trace 199

dialogue modem. S'il ne fait pas l'�echo de vos commandes pendant ce dialogue, v�eri�ezsi la vitesse de votre ligne ne serait pas trop rapide ou trop lente pour ce modem. Sivous voyez l'�echo, v�eri�ez la validation des r�eponses du modem ou passez-les en modenum�erique. V�eri�ez que le script de dialogue, lui-meme, est correct. Souvenez-vousqu'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 pausedans 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�erode t�el�ephone...

Mon �chier de trace indique que je perds beaucoup de paquets : ce peut etreun probl�eme de vitesse. Si la liaison entre votre ordinateur et votre modem est pluslente 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'interruptionsg�en�er�ees par les hautes vitesses. Dans ce cas, il faut employer un circuit NSC 16550Asur votre port s�erie. Vous devez �egalement v�eri�er que le controle de ux mat�eriel est

en service, tant du cot�e du syst�eme que sur le modem.

Taylor UUCP n'a rien de pr�evu pour valider ce controle de ux, vous devez doncle 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 etrenombreuses. 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 vousn'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 vousconcernant. 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 cot�e a valid�e le test de s�equence d'appels pourvotre site, mais que les valeurs ne correspondent pas. S'il envoie RLOGIN, c'est quevous 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 nedonne que trois �chiers globaux, chacun r�esidant dans le r�epertoire spoule. Le �chierprincipal 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�esreformatage pour que les lignes ne d�ebordent pas de la page...) :

Page 217: Administration Reseau Sous Linux

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 statistiquesdes 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 informationsde d�eboguage lorsqu'il est mis en service. Vous devez vous assurer que ce �chier a lemode 600, car en fonction du niveau de d�eboguage choisi, il peut contenir les mots depasse utilis�es pour toutes les connexions.

Certains binaires fournis avec des distributions de Linux sont compil�es avec le stylede 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�esuucico, uuxqt et uux. Ils contiennent la trace g�en�er�ee par chacun des programmescorrespondants, tri�es dans di��erents �chiers pour chaque site. Ainsi, la sortie de uucicolors de l'appel du site pablo se trouvera dans .Log/uucico/pablo, et les invocationsde uuxqt qui r�esulteront de cet appel seront enregistr�ees dans .Log/uuxqt/pablo. Leslignes ont, en revanche, le meme format que celles des traces du style Taylor.

Page 218: Administration Reseau Sous Linux

12.7. Les �chiers de trace 201

Lorsque vous validez le d�eboguage avec un style de trace HDB, l'enregistrement sefera dans .Admin/audit.local, alors que la sortie de uucico, lorsque c'est un site quiappelle, sera dans .Admin/audit.

Page 219: Administration Reseau Sous Linux

202 Chapitre 12. Ma�triser Taylor UUCP

Page 220: Administration Reseau Sous Linux

203

Chapitre 13

Le courrier �electronique

Depuis que les premiers r�eseaux furent imagin�es, le courrier �electronique en fait unusage chaque jour plus important. Cela a commenc�e par un simple service qui copiaitun �chier d'une machine �a une autre en le mettant dans le �chier bo�te aux lettres ducorrespondant. C'est d'ailleurs toujours le cas ; bien que par-dessus se soient gre��eesbeaucoup de choses rendues n�ecessaires par la complexit�e du r�eseau et l'augmentationconstante 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 quid�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 quelquetemps autour du courrier (( multim�edia )), qui permet de transf�erer �egalement desimages et du son avec le courrier. Il existe un autre standard, X.400, qui est d�e�nipar le CCITT.

Vous trouverez beaucoup de programmes destin�es au transport du courrier pour lessyst�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'auteurest 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 portele num�ero 8.6.9.

L'agent de transport de courrier le plus employ�e sous Linux est smail-3.1.28, r�ealis�epar 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'unpetit site sans routages tr�es compliqu�es, ils sont quasi �equivalents. Pour les grandssites, sendmail gagne �a tous les coups, en raison de ses possibilit�es et de sa souplessede con�guration.

Page 221: Administration Reseau Sous Linux

204 Chapitre 13. Le courrier �electronique

Tous deux supportent un ensemble de �chiers de con�guration qui doivent etre adapt�es�a chaque cas. En dehors des informations n�ecessaires pour que le sous-syst�eme decourrier fonctionne (comme le nom de la machine), il y a beaucoup d'autres param�etrescon�gurables. Le �chier de con�guration principal de sendmail est tr�es di�cile �acomprendre au premier abord ; ceux de smail sont plus structur�es et beaucoup plusclairs, mais n'o�rent pas autant de possibilit�es pour ajuster le comportement duprogramme. Quoi qu'il en soit, pour les petits sites UUCP ou Internet, le travaildemand�e par la con�guration est sensiblement le meme pour tous les deux.

Ce chapitre va pr�esenter le courrier �electronique et les taches qui vous attendent entant qu'administrateur. Les chapitres 14 et 15 vous permettront ensuite d'e�ectuervotre premi�ere con�guration de l'un de ces agents de transfert de courrier. Vousdevriez trouver toutes les informations n�ecessaires pour le fonctionnement d'un petitsite, mais il y a beaucoup plus d'options possibles, et vous pourrez plus tard occuperde longues soir�ees en essayant passionn�ement de mettre au point une con�gurationbien plus personnelle.

Vers la �n du chapitre, nous pr�esenterons rapidement la con�guration de elm, uneinterface utilisateur destin�ee au courrier �electronique, tr�es courante sur de nombreuxsyst�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 beaucoupde documentations tr�es d�etaill�ees o�u vous devriez trouver la r�eponse �a la plupart devos 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 dece 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 dumessage, 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 courrierpostal.

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'adressede l'exp�editeur et du destinataire. Elle est par cons�equent appel�ee l'enveloppe. Ellepeut etre modi��ee par les di��erents logiciels d'acheminement qui feront transiter lemessage.

La seconde cat�egorie contient toutes les donn�ees n�ecessaires �a la manipulation dumessage, et qui n'est pas sp�eci�que d'un m�ecanisme de transport ; on y trouve lesujet, une liste de destinataires, et la date d'exp�edition. Sur de nombreux r�eseaux, ilest devenu standard de placer ces donn�ees au d�ebut du message, qui forment alors ce

Page 222: Administration Reseau Sous Linux

13.1. Qu'est-ce qu'un message? 205

qui est appel�e l'en-tete. Il est s�epar�e du corps du message par une ligne vide 1.

La plupart des logiciels de transport de courrier du monde UNIX utilisent le formatd'en-tetes d�e�ni dans le RFC 822. Son but �etait �a l'origine de d�e�nir un standardsur le r�eseau ARPANET, mais puisqu'il est pr�evu pour etre ind�ependant de toutenvironnement, il a �et�e tr�es vite adapt�e �a d'autres r�eseaux, y compris ceux bas�es surUUCP.

RFC 822 n'est toutefois que le plus petit d�enominateur commun ; d'autres formatsont r�ecemment �et�e con�cus pour faire face aux besoins grandissants d'encryptage dedonn�ees, de caract�eres internationaux, et d'extensions multim�edia (MIME).

Dans tous ces standards, l'en-tete est constitu�e de plusieurs lignes, s�epar�ees par descaract�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 selonleur nom. Un champ peut s'�etendre sur plusieurs lignes, si la suivante commence parle caract�ere de tabulation. Les champs peuvent appara�tre dans n'importe quel ordre.

Voici un exemple d'en-tete 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: [email protected] (Andy Oram)

To: [email protected]

Subject: Re: Your RPC section

G�en�eralement, tous les champs n�ecessaires sont g�en�er�es par l'interface de courrierque vous utilisez, comme par exemple elm, pine, mush ou mailx. Toutefois, certainssont facultatifs et peuvent etre rajout�es par l'utilisateur. L'interface elm, par exemple,permet d'�editer une partie de l'en-tete du message. D'autres sont plac�es par l'agent detransport 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 (( vrainom )) (facultatif). Il existe beaucoup de formats standards pour cechamp.

To: Il s'agit de l'adresse du destinataire.

Subject: Le sujet, qui d�ecrit le contenu du courrier en quelques mots. Dumoins, 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.

Page 223: Administration Reseau Sous Linux

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�edezplusieurs adresses, mais que vous ne voulez recevoir le courrier qu'�acelle 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�etairede la machine d'o�u provient le courrier. Ce champ est facultatif ; s'ils'agit de votre ordinateur personnel, omettez-le ou mettez ce quevous voulez.

Message-ID: Il s'agit d'une cha�ne g�en�er�ee par l'agent de transport de courrier dusyst�eme o�u le message a �et�e g�en�er�e ; cet identi�cateur est propre aumessage, unique dans le monde entier.

Received: Chaque site traitant votre courrier (y compris ceux d'origine et dedestination) ins�ere ce champ dans l'en-tete, indiquant son nom, unidenti�cateur, la date et l'heure de r�eception, de quel site le messageest arriv�e, et quel logiciel de transport a �et�e utilis�e. Ainsi, vous pouvezsuivre 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-tetescommen�cant par X-. Ce champ sert �a ajouter des informations suppl�e-mentaires concernant toute possibilit�e nouvelle qui n'est pas encored�e�nie dans un document RFC, ou ne le sera jamais. Les listes dedi�usion (( Linux Activists )) utilisent par exemple cette possibilit�epour 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�nde la distinguer du champ ordinaire From:, on la r�ef�erence souvent par From . Ellecontient le chemin que le message a emprunt�e selon la syntaxe UUCP (expliqu�ee plusloin), 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 hote il est arriv�e. Puisque ce champ estr�e�ecrit par chaque syst�eme voyant passer le message, il est parfois consid�er�e commefaisant partie de l'enveloppe.

Le champ From est n�ecessaire pour des raisons de compatibilit�e avec d'anciens agentsde transport ; il n'est pratiquement plus utilis�e, sauf par certaines interfaces qui s'enservent 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 corpsdu message pouvant aussi commencer par (( From )), il est de coutume de modi�erchaque occurrence de ces lignes en la faisant pr�ec�eder du caract�ere >.

Page 224: Administration Reseau Sous Linux

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 oumailx, ou encore d'un programme plus sophistiqu�e comme elm, mush ou pine. Onles appelle des MUA, Mail User Agents. Si vous exp�ediez un message, l'interfacele passera dans la plupart des cas �a un autre logiciel pour qu'il soit distribu�e, quel'on appelle le MTA (Mail Transport Agent, agent de transport du courrier). Surcertains syst�emes, vous rencontrerez plusieurs MTA, sp�ecialis�es dans le courrier localet distant ; sur d'autres il s'agit du meme programme. La commande permettantde d�elivrer un courrier distant s'appelle g�en�eralement rmail, et s'il en existe uneparticuli�ere pour les messages locaux, ce sera sans doute un nom comme lmail.

D�elivrer un courrier local ne consiste pas, bien sur, qu'�a rajouter le message dans labo�te aux lettres du destinataire. G�en�eralement, le MTA local sait reconna�tre des alias(adresses pointant vers d'autres adresses) et la r�eexp�edition (rediriger tout le courrierde quelqu'un vers d'autres adresses). De plus, les messages qui ne peuvent pas etredistribu�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 naturede 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 lesdocuments RFC 788 et RFC 821. Il se connecte en g�en�eral directement �a la machinedu 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 transitepar 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 grace �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 role de n�udimportant pour le courrier, et remplir le spoule UUCP de centaines de petits �chiersoccupant beaucoup trop de place sur le disque dur 2. Par cons�equent, certains MTApermettent de rassembler plusieurs messages pour un syst�eme distant dans un seullot. 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 appelleBSMTP, ou SMTP par lots ((( batched SMTP ))). Le lot est alors envoy�e au programmersmtp ou bsmtp du syst�eme distant, qui traitera les commandes contenues comme s'ils'agissait d'une connexion SMTP normale.

2: L'espace disque est g�en�eralement allou�e par blocs de 1 024 octets. Aussi, meme un message de

400 octets utilisera 1 Ko d'espace disque

Page 225: Administration Reseau Sous Linux

208 Chapitre 13. Le courrier �electronique

13.3 Adresses �electroniques

Pour le courrier �electronique, une adresse est constitu�ee au minimum du nom d'unemachine g�erant le courrier du destinataire, et de l'identi�cation de ce dernier, reconnuepar 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�erald'(( attributs )) pour retrouver la machine du destinataire dans le r�epertoire d'unserveur X.500.

La mani�ere dont le nom de machine est interpr�et�e, c'est-�a-dire sur quel site votremessage �nira par arriver, et la fa�con de combiner ce nom avec celui du destinataired�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 [email protected], o�u hote.domaine est le nom pleinement quali��e de lamachine. Le signe du milieu, le (( A commercial )), se prononce (( at )) dans ce cas 3.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!hote!utilisateur, chemin d�ecrivait une s�equence de machines par lesquels lemessage devait passer avant d'atteindre sa destination. Cette construction s'appellela notation bang, tout simplement parce qu'un point d'exclamation est famili�erementappel�e un (( bang )), chez les informaticiens anglophones. Aujourd'hui, la plupart desr�eseaux bas�es sur UUCP ont adopt�e le standard RFC 822 ou comprennent au moinsce 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'adressemachineA!utilisateur@machineB. Il n'estpas du tout �evident de savoir si le signe@ a priorit�e sur le bang, ou vice versa : devons-nous envoyer le message �amachineB, qui le transmettra �amachineA!utilisateur oubien 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�eesadresses hybrides. Notre exemple est un cas d'�ecole, il est g�en�eralement r�esolu endonnant la priorit�e au signe @, ce qui signi�era ici que le message sera transmisd'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'hote 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�eesouvent route-addr.

En�n, il y a l'op�erateur% (le signe pour cent) : user%machineB@machineA serad'abord envoy�e �amachineA, 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 hote.domaine.

Page 226: Administration Reseau Sous Linux

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 led�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�ereret parfois g�en�erent ce genre de chose.

D'autres r�eseaux utilisent des m�ethodes d'adressages encore di��erentes. Les r�eseauxDECnet, par exemple, utilisent les deux caract�eres (( :: )) comme s�eparateur, ce quidonne le format hote::utilisateur 4. En�n, le standard X.400 emploie une notationcompl�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 Pariset sa banlieue), le n�ud et le point (la machine personnelle de l'utilisateur). Lesadresses Fidonet peuvent facilement etre transform�ees au format RFC 822, celle denotre exemple peut s'�ecrire [email protected].�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 rarementbesoin d'autre chose que des adresses absolues comme utilisateur.hote.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 meten jeu des tests d'erreurs et une optimisation en fonction de la vitesse et du cout.

Il y a une grande di��erence entre la fa�con dont un site UUCP g�ere le routage, et celleemploy�ee par un site Internet. Sur l'Internet, toute la tache d'acheminer les donn�ees,

une fois que la machine de destination est connue par son adresse IP, est faite par lacouche IP du r�eseau ; dans une zone UUCP, la route doit etre indiqu�ee par l'utilisateurou g�en�er�ee par le MTA.

13.4.1 Routage du courrier sur l'Internet

Sur l'Internet, le routage d�epend enti�erement de l'hote destinataire, o�u tout traitement�eventuel du courrier sera e�ectu�e. Par d�efaut, le message est d�elivr�e �a cette machineen 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

"hote::utilisateur"@relais, o�u relais est le nom d'une passerelle Internet-DECnet connue.

Page 227: Administration Reseau Sous Linux

210 Chapitre 13. Le courrier �electronique

faire conna�tre ce service, le site publie dans le DNS un enregistrement de type MXpour leur domaine local. MX signi�e mail exchanger (�echangeur de courrier), et sert�a annoncer que l'hote 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�ererle courrier de machines qui ne sont pas connect�ees directement �a l'Internet, commecertains 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'ilexiste plusieurs �echangeurs de courrier pour un hote, l'agent de transport essaiera depasser le message �a l'�echangeur qui a la plus faible valeur de pr�ef�erence, et il n'essaierales autres que si le premier est inaccessible. Si l'hote local est lui-meme un �echangeurpour l'adresse de destination, il ne doit pas renvoyer de messages �a des hotes MXayant 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 dansla 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.com comme un �echangeur de courrier pour d�elivrer un mes-sage �a destination de, par exemple, [email protected], avec une pr�ef�erencede valeur 5. Un hote 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�erenceinf�erieure �a 5, le message sera envoy�e �a laposte, qui saura alors le diriger sur lamachine jaune.

Bien sur, cet exemple n'est qu'une �ebauche du fonctionnement des enregistrementsMX. Consultez le document RFC 974 pour obtenir plus d'informations sur le routagedu 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 quesur l'Internet, car le logiciel de transport n'e�ectue aucun routage lui-meme. Autre-fois, tous les messages devaient etre adress�es par la m�ethode des bangs, qui consiste �asp�eci�er une liste d'hotes par lesquels faire passer le message, s�epar�es par des pointsd'exclamation (les (( bangs ))), termin�ee par le nom de l'utilisateur. Pour envoyerune lettre �a l'utilisateur alfred sur une machine nomm�ee hopla, il fallait �ecrireeek!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 topologiedu r�eseau, des liaisons les plus rapides, etc. Pis, le moindre changement dans l'orga-nisation (machines supprim�ees, liaisons modi��ees) peut empecher la distribution ducourrier 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.

Page 228: Administration Reseau Sous Linux

13.4. Le routage du courrier 211

Ce routage �a la source �etait n�ecessaire en raison de la pr�esence de noms d'hotesambigus. 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 o�cielsde machines UUCP, avec des informations concernant leurs voisins et leur positiong�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 Usenet 5. Apr�es suppression des commentaires, l'entr�ee d'un syst�eme dansune 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 peuplus loin.

Grace aux informations sur la connectivit�e contenues dans ces cartes, vous pouvezg�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 quevous pouvez joindre keltia via imladris ; une entr�ee pathalias pour renux cr�e�ee �apartir 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 [email protected],votre MTA utilisera la route ci-dessus et enverra le message �a imladris, avec uneadresse d'enveloppe de keltia!renux!rene.

Cr�eer un �chier paths �a partir de la totalit�e des cartes UUCP n'est toutefois pas unetr�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 cartesUUCP du monde entier pour construire leurs �chiers paths. La plupart des autres secontentent de poss�eder les informations de routage concernant leurs voisins les plusproches, et d'envoyer tout le courrier pour les sites absents de leur base de donn�eesvers une machine mieux inform�ee, qui s'appelle alors le smart-host. Les machines neposs�edant qu'un seul lien UUCP ne font jamais aucun routage, et envoient tout leurcourrier �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.

Page 229: Administration Reseau Sous Linux

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 UUCPest l'adoption du DNS. Bien sur, il est impossible d'interroger un serveur de noms parUUCP. N�eanmoins, beaucoup de sites UUCP se sont organis�es en petits domaines quicoordonnent leurs routages entre eux. Dans les cartes, ces domaines annoncent uneou deux machines comme leurs passerelles pour le courrier, ainsi il n'y a plus besoind'entr�ees sp�eci�ques pour chaque hote de ce domaine. Les passerelles g�erent tout lecourrier entrant et sortant pour le domaine en question ; le routage e�ectu�e entre lesmachines 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�e du routage n'est maintenue quesur les passerelles ; les petits sites d'un domaine n'auront que quelques paths r�edig�es �ala main indiquant comment diriger le courrier vers le smart-hosts et �eventuellement �al'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 su�t d'avoirdes 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.orgvers schtroumpf :

.sub.org swim!schtroumpf!%s

Un message adress�e �a [email protected] sera envoy�e �a swim avec une adressed'enveloppe de schtroumpf!jones!claire.

L'organisation hi�erarchis�ee de l'espace de noms permet aux serveurs de courrier dem�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-domainesde fr, mais router tout courrier �a destination des machines du domaine us vers unsyst�eme situ�e aux U.S.A. Ainsi, le routage par domaine r�eduit consid�erablement lataille des bases de donn�ees n�ecessaires, aussi bien que les taches administratives.

Toutefois, le plus gros b�en�e�ce apport�e par l'emploi de noms de domaines dans unenvironnement UUCP, c'est que la conformit�e au standard RFC 822 permet uneinterconnexion facile entre les r�eseaux UUCP et l'Internet. Beaucoup de domainesUUCP poss�edent de nos jours un lien avec une passerelle Internet qui joue le rolede smart host. L'envoi de messages par l'Internet est beaucoup plus rapide, et lesinformations 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 unenregistrement MX dans le DNS. Par exemple, supposons que moria appartient audomaine orcnet.org. La machine gcc2.groucho.edu joue le role de leur passerelleInternet. Par cons�equent, moria utiliserait gcc2 comme son smart host de sorteque tout le courrier �a destination d'autres domaines soit d�elivr�e par l'Internet. D'unautre cot�e, gcc2 annoncerait un MX pour *.orcnet.org et enverrait tout message

Page 230: Administration Reseau Sous Linux

13.5. Format des cartes et du �chier pathalias 213

arrivant pour les machines de orcnet �a moria. L'ast�erisque dans *.orcnet.org estun caract�ere g�en�erique qui correspondra �a tous les hotes de ce domaine qui ne sontassoci�es �a aucun autre enregistrement ; c'est g�en�eralement ce qui doit etre fait pourles domaines uniquement UUCP.

Il reste un probl�eme : les programmes de transport par UUCP ne savent pas g�erer lesnoms pleinement quali��es. La plupart des programmes furent pr�evus pour traiter desnoms ne d�epassant pas huit caract�eres, parfois moins, et l'utilisation de caract�eresnon alphanum�eriques comme de simples points est hors de question avec la plupartd'entre eux.

Par cons�equent, il est n�ecessaire de pouvoir e�ectuer la correspondance entre les nomsRFC 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 partird'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�euucpxtable.

La transformation inverse (qu'il est courant d'appeler (( domainisation ))), est parfoisn�ecessaire lors de l'envoi d'un courrier depuis un r�eseau UUCP vers l'Internet. Tantque l'exp�editeur utilise un nom pleinement quali��e pour l'adresse de destination, ceprobl�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 quelquessites UUCP qui ne font partie d'aucun domaine. Ils sont alors domainis�es en leurrajoutant 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 lesr�eseaux UUCP. Une entr�ee typique ressemble �a la suivante (sites et chemins doiventetre 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 etbert. 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 hotes d'un domaine particulier versson relais de courrier, vous pouvez aussi sp�eci�er un chemin dans la base de donn�eespathalias, indiquant le domaine comme une cible, pr�ec�ed�e d'un point. Par exemple,

Page 231: Administration Reseau Sous Linux

214 Chapitre 13. Le courrier �electronique

si toutes les machines de sub.org peuvent etre atteintes par swim!smurf, l'entr�eepathalias 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 pastrop de routages �a e�ectuer. Sinon, il vaut mieux utiliser la commande pathalias quicr�eera le �chier �a partir des cartes UUCP. Ces cartes peuvent etre maintenues bienplus facilement, car il vous su�t de rajouter ou de supprimer l'entr�ee d'un syst�emedans la carte et de relancer la commande pour recr�eer le nouveau �chier. Bien queles 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 commeappelant, soit comme appel�e. Le nom du syst�eme commence en premi�ere colonne, etest suivi par une liste de liens, s�epar�es par des virgules. Cette liste peut s'�etendre surplusieurs lignes �a condition que la suivante commence par une tabulation. Chaquelien est constitu�e du nom du site suivi du cout imaginaire de la connexion, indiqu�eentre parenth�eses. Il s'agit d'une expression arithm�etique, faite de valeurs et de prixsymboliques. Les lignes commen�cant par un di�ese sont ignor�ees.

Par exemple, consid�eronsmoria, qui appelle swim.twobirds.com deux fois par jouret bert.sesame.com une fois par semaine. De plus, la liaison avec bert ne se faitqu'avec un vieux modem 2400 bps, tr�es lent. La carte publi�ee par moria serait alorsla 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/2correspond �a deux appels par jour, alors que DAILY*2 signi�erait un appel tous lesdeux jours.

Avec ces informations, la commande pathalias est capable de d�eterminer les routesoptimales �a destination de tout site cit�e dans le �chier paths, et de produire une basede 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 deces 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 poura�cher toutes les informations selon un format agr�eable �a lire.

Page 232: Administration Reseau Sous Linux

13.6. Con�guration de elm 215

Lorsque vous enregistrez votre site aupr�es d'un organisme qui distribue des cartes �ases 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 del'auteur) :

#N monad, monad.swb.de, monad.swb.sub.org

#S AT 486DX50; Linux 0.99

#O private

#C Olaf Kirch

#E [email protected]

#P Kattreinstr. 38, D-64295 Darmstadt, FRG

#L 49 52 03 N / 08 38 40 E

#U brewhq

#W [email protected] (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�cationdes champs est �evidente ; vous recevrez tout le d�etail lorsque vous vous enregistrerez.Le champ L est le plus di�cile �a remplir : il donne votre position g�eographique enlatitude/longitude, et n'est plus utilis�e que pour dessiner la carte au format PostScriptqui montre tous les sites de chaque pays 6.

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 puissanteet une aide e�cace. Nous ne parlerons pas de son utilisation ici, mais seulement decertaines 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 meme. Mais il y a malgr�e tout certaines options �ainitialiser, 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 setrouvant dans le r�epertoire /usr/lib/elm. Ensuite, il tente de lire le �chier .elm/elmrcde votre r�epertoire personnel. Ce �chier n'est g�en�eralement pas r�edig�e �a la main, maiscr�e�e automatiquement lorsque vous s�electionnez (( save options )) depuis le menu duprogramme.

L'ensemble des options de votre �chier elmrc est aussi disponible dans le �chier globalelm.rc ; le votre ne servira qu'�a modi�er certaines valeurs par d�efaut positionn�ees dansla 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 !

Page 233: Administration Reseau Sous Linux

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 devotre syst�eme. Par exemple, �a (( La bi�ere virtuelle )), le �chier de la machine krocontiendrait :

#

# 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�gurationglobal. Il est impossible de modi�er ces valeurs depuis le �chier personnel, pour desraisons 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 supportde divers types de messages, comme le texte pur, des donn�ees binaires, des �chiersPostScript, etc. L'ensemble de documents RFC traitant de ces possibilit�es a �et�e baptis�eMIME, ouMultipurpose Internet Mail Extensions (extensions multi-usages au courrierInternet). Entre autres choses, elles permettent au destinataire de savoir si un jeu decaract�eres di��erent de l'ASCII a �et�e employ�e pour r�ediger le message, par exemplepour 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 decaract�eres doit (ou devrait) comporter la ligne suivante dans son en-tete :

Content-Type: text/plain; charset=iso-8859-1

Le syst�eme r�ecepteur doit reconna�tre ce champ et prendre les mesures appropri�eeslors de l'a�chage du message. Le d�efaut pour les messages text/plain est une valeurcharset de us-ascii.

A�n de pouvoir a�cher des messages avec d'autres caract�eres que l'ASCII, elm doitsavoir 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 essaiede l'a�cher en appelant une commande nomm�ee metamail. Les messages n�ecessitant

Page 234: Administration Reseau Sous Linux

13.6. Con�guration de elm 217

metamail sont indiqu�es par un M dans la toute premi�ere colonne de la liste du courrierpropos�ee par elm.

Comme le jeu de caract�eres natif de Linux est l'ISO-8859-1, il n'est pas n�ecessaired'appeler metamail pour a�cher des messages utilisant ces caract�eres. Si l'on indique�a elm que l'a�chage conna�t l'ISO-8859-1, il l'a�chera instantan�ement, sans appelerde programme externe. Il su�t pour cela de positionner l'option suivante dans le�chier global elm.rc :

displaycharset = iso-8859-1

Notez que vous devez indiquer cette option meme si vous n'allez jamais recevoir ou�emettre de messages comportant ces caract�eres : les personnes qui postent de telscourriers 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 su�sante. Le probl�eme est que lorsqu'il a�che lemessage avec son visionneur interne, elm appelle une fonction de biblioth�eque pourchaque caract�ere, pour d�eterminer s'il est a�chable ou pas. Par d�efaut, cette fonctionne reconna�t que les caract�eres purement ASCII, et a�che un point d'interrogationpour 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 labiblioth�eque que ces caract�eres sont a�chables. 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, vousdevez 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-tetes de tous les courriers di�us�es quele jeu de caract�eres est ISO-8859-1, et les enverra sur 8 bits (par d�efaut, le huiti�emebit est mis �a z�ero pour tout transformer en 7 bits).

Bien sur, toutes ces options peuvent aussi etre positionn�ees dans le �chier de con�-guration personnel elmrc de chaque utilisateur.

Page 235: Administration Reseau Sous Linux

218 Chapitre 13. Le courrier �electronique

Page 236: Administration Reseau Sous Linux

219

Chapitre 14

Mise en route de smail

Ce chapitre sera une rapide initiation �a la con�guration de smail et vous donnera unaper�cu des fonctionnalit�es o�ertes. Bien que ce programme soit largement compatibleavec sendmail dans son comportement, ses �chiers de con�guration sont compl�etementdi��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 vousn'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 detransport 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 messagesdans 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 moded�emon : au d�emarrage du syst�eme, il est invoqu�e depuis rc.inet2 et se place en tachede 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 leprogramme n'a pas �a etre lanc�e s�epar�ement �a chaque connexion. L'alternative seraitde laisser inetd g�erer le port SMTP, il appellerait alors smail chaque fois qu'uneconnexion sur se port se pr�esenterait.

Smail poss�ede plusieurs options controlant son comportement ; les d�ecrire en d�etail icine vous serait pas tr�es utile. Heureusement, il supporte un certain nombre de modesde fonctionnements standards, qui sont valid�es lorsque vous l'invoquez sous des nomsparticuliers, comme par exemple rmail ou smtpd. G�en�eralement, ces alias sont desliens symboliques vers l'unique binaire smail. Nous rencontrerons la plupart d'entreeux lorsque nous aborderons les di��erentes possibilit�es o�ertes par ce programme.

Page 237: Administration Reseau Sous Linux

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/sendmail 1 . Lorsque vous r�edigez puisexp�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 memechose se passe avec le courrier arrivant par UUCP. Quelques versions de elm invoquenttoutefois /usr/sbin/sendmail, au lieu de rmail, aussi est-il plus prudent de disposer desdeux 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 auxpages de manuel smail(1) et smail(5). Si vous ne les poss�edez pas, vous les trouverezdans les sources du programme.

14.1 Con�guration UUCP

Pour utiliser smail dans un environnement uniquement UUCP, l'installation de baseest tr�es simple. Tout d'abord, v�eri�ez que vous avez bien les deux liens symboliquesvers rmail et sendmail mentionn�es plus haut. Si vous comptez recevoir des lots SMTPen 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 nomde 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.com et est enregistr�ee dansles cartes UUCP en tant que swim. Votre smart host s'appelle ulysses. Votre �chiercon�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 meme 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.

Page 238: Administration Reseau Sous Linux

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 estenregistr�e dans les cartes UUCP, vous devez �egalement ajouter le pseudo-domaineuucp. 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 cenom, en y rajoutant tour �a tour tous ces domaines. Si l'adresse correspond �a l'un descas (ou au nom non quali��e), le courrier est consid�er�e comme local et sera d�elivr�e �al'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 quevous voulez voir appara�tre dans tout le courrier �emis. Vous devez etre certain quele nom utilis�e est reconnu par smail comme celui de l'hote local (par exemple, l'une

des combinaisons donn�ees avec l'attribut visible domain). Sinon, les r�eponses �a vosmessages ne vous arriveraient jamais...

La derni�ere ligne indique le chemin �a utiliser pour atteindre le smart host (d�ecrit dansle chapitre pr�ec�edent). Avec cet exemple, smail enverra tout le courrier non local ausmart host. Le nom de cette machine doit etre connu par UUCP, puisque c'est leprotocole 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, smailprend 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-tete. Si votrenom 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 place 2. Il su�t pour cela de l'ajoutergrace �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'unexemple de �chier paths ; mais vous n'en aurez pas besoin, �a moins que vous n'ayezdes liaisons avec plusieurs sites pour la distribution du courrier. Si vous devez utiliserce �chier, il faudra de toute fa�con le r�ediger vous-meme, ou le cr�eer �a partir des cartesUUCP. Ce �chier paths sera d�ecrit plus loin.

14.2 Con�guration r�eseau

Si votre site contient deux hotes (ou plus) connect�es en r�eseau, vous devrez d�esignerl'un deux pour la gestion de vos connexions UUCP vers le monde ext�erieur. Entre lesmachines du r�eseau, vous ferez passer le courrier par SMTP sur TCP/IP. Revenonsdans notre entreprise (( La biere virtuelle )), o�u gueuze est con�gur�ee en passerelleUUCP.

2: Voil�a pourquoi : supposons que votre syst�eme s'appelle nomade, mais qu'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, meme post�e depuis un de vos voisins UUCP,

arrivera sur l'autre machine et non chez vous.

Page 239: Administration Reseau Sous Linux

222 Chapitre 14. Mise en route de smail

Dans un environnement r�eseau, il vaut mieux placer toutes les bo�tes aux lettresdes utilisateurs sur un unique syst�eme de �chiers qui est mont�e par NFS sur toutesles autres machines. Cela permet d'utiliser n'importe quel hote 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'hote particulier. Par exemple, ce sera [email protected] au lieu [email protected]. Nous verrons comment faire pour que le nom dedomaine 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 hotecentral consiste �a utiliser POP ou IMAP. POP signi�e (( Post O�ce Protocol )) etpermet 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 messagessortants vers ce serveur par la m�ethode du smart host. Le serveur gueuze envoietout ce courrier vers le vrai smart host qui g�ere la totalit�e du courrier, cette machines'appelle moria.

Le �chier con�g de tous les hotes, 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. Laplus grosse di��erence, c'est le transport utilis�e pour envoyer les messages vers le smarthost, qui est ici SMTP. L'attribut visible domain indique �a smail d'�ecrire le nom dedomaine sp�eci��e dans tout le courrier �emis, au lieu du nom local de la machine depuislaquelle le message est post�e.

Sur la passerelle UUCP geuze, le �chier con�g est un petit peu di��erent :

#

Page 240: Administration Reseau Sous Linux

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 lieude lui donner une liste de domaines et de le laisser trouver le nom de machine par unappel syst�eme, nous lui indiquons explicitement ce qu'il en est. La liste contient �a lafois le nom pleinement quali��e et celui non quali��e, et le nom du domaine lui-meme.Ainsi, smail reconna�[email protected] comme une adresse locale et d�elivrerale message �a l'utilisateur marcel.

La variable auth domains indique les domaines pour lesquels gueuze est consid�er�ecomme 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 hote local, il refusera lemessage 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 possiblede �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 momentvenu. G�en�eralement, la solution du d�emon autonome est pr�ef�erable sur le serveur decourrier, car cela charge beaucoup moins la machine que de multiples invocations desmail chaque fois qu'une connexion se produit. Comme le serveur d�elivre �egalement lecourrier aux utilisateurs, vous prendrez la solution par inetd sur la plupart des autresmachines.

Quel que soit le mode choisi, vous devez v�eri�er que le �chier /etc/services de chaquehote 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. Leport 25 est le standard d�e�ni par le RFC (( Assigned Numbers )).

Page 241: Administration Reseau Sous Linux

224 Chapitre 14. Mise en route de smail

En mode d�emon, smail se place en tache de fond et attend les connexions sur le portSMTP. Pour chacune, il cr�ee un nouveau processus par l'appel syst�eme fork() pourle temps de la conversation. Le d�emon smail est g�en�eralement lanc�e au d�emarrage dusyst�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 contenirune 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 relireen 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 end�emon, vous devez vous assurer de bien mettre en commentaire toute ligne relative auservice smtp dans le �chier inetd.conf. Inversement, si vous l'utilisez par inetd, v�eri�ezque 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 lestransactions, alors que le second n'est destin�e qu'aux messages d'erreur relatifs �a lacon�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: [email protected]

| orig-to: [email protected]

| router: smart_host

| transport: smtp

Nous y voyons qu'un message de l'utilisateur root ayant pour adresse de [email protected] a �et�e correctement d�elivr�e �a la machine gueuze par leprotocole SMTP.

Page 242: Administration Reseau Sous Linux

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 avecun 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] [email protected] ... deferred

(ERR_148) transport smtp: connect: Connection refused

L'erreur ci-dessus est typique lorsque smail reconna�t correctement que le messagedoit etre d�elivr�e �a gueuze, mais qu'il n'arrive pas �a se connecter sur le service SMTPde 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 danscertaines distributions de Linux, sans support pour le r�eseau TCP/IP. Si vous etes enpossession de l'une d'elles, vous devrez recompiler correctement le programme. Pourv�eri�er, vous pouvez tester si smail supporte TCP en connectant par telnet le portSMTP 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'a�che 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 lancerdans 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 messagesd'erreurs g�en�er�es par smail, vous pouvez mettre en route les messages de d�eboguage.Il su�t d'employer l'option -d suivie d'une valeur facultative, sp�eci�ant le niveaude verbosit�e d�esir�e (ne mettez pas d'espace entre l'option et la valeur). Toutes lesop�erations qu'e�ectuera smail s'a�cheront alors �a l'�ecran, ce qui pourra vous aider �asituer �a quel moment le probl�eme se produit.

Si vraiment rien ne va plus, vous pouvez invoquer le mode Rogue de smail en luipassant l'option -bR sur la ligne de commandes. La page de manuel dit �a peu pr�esceci : (( Entrez dans le monde hostile des messages g�eants, o�u d�e�lent les standardsRFC. Tente de descendre au niveau de protocole 26, et de revenir �a la normale. ))

Cette option ne r�eglera surement pas vos probl�emes, mais elle vous apportera peut-etre quelque consolation. :-)

Page 243: Administration Reseau Sous Linux

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, vousdevrez 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 setrouvent sans aucun doute dessus 3.

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,meme si vous etes un programmeur con�rm�e). Pour valider le support du r�eseauTCP/IP, vous devez positionner la macro DRIVER CONFIGURATION du �chierconf/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 laseconde. La di��erence est que l'option arpa-network inclut un pilote pour le serviceBIND, capable de reconna�tre les enregistrements MX, ce que bsd-network ne sait pasfaire.

14.4 Modes de distribution du courrier

Comme nous l'avons vu, smail est capable de d�elivrer les messages imm�ediatement, oude les mettre en attente dans une queue pour les g�erer plus tard. Si vous choisissez laqueue, smail stockera tout le courrier dans le r�epertoiremessages de /var/spool/smail.

Il ne traitera rien tant qu'on ne lui demandera pas de le faire. (L'op�eration s'appelleen anglais (( running the queue )), ce que certains traduisent de mani�ere humoristiquepar (( vider la queue )).)

Vous pouvez choisir parmi trois modes en positionnant l'attribut delivery mode dansle �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 messagesqui 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 quesoit l'option choisie, si la variable bool�eenne queue only est positionn�ee dans le �chiercon�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 soittrait�ee toutes les 10 minutes environ. Vous pouvez aussi faire invoquer la commanderunq par cron �a intervalles r�eguliers. Cette commande est un lien sur smail.

Vous pouvez a�cher 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.

Page 244: Administration Reseau Sous Linux

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 [email protected]

Log of transactions:

Xdefer: <[email protected]> reason: (ERR_148) transport smtp:

connect: Connection refused

Elle montre ici qu'un seul message est en attente. La trace de transaction (qui nesera a�ch�ee que si vous appelez mailq avec l'option -v) peut donner la raison pourlaquelle il est toujours en attente d'etre d�elivr�e. Si aucune tentative de distributionn'a encore �et�e faite, aucune trace de transaction ne sera indiqu�ee.

Meme si vous n'employez pas de �le d'attente, smail l'utilisera quand meme 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 messagesen 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'erreurg�en�erera un courrier au postmaster. Il faut faire suivre cette variabledu signe plus (+) dans le �chier con�g pour valider ce mode.

max hop count Si le nombre de hops (nombre d'hotes 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�ede champs Received dans l'en-tete du message, mais peut aussi etreindiqu�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 etrer�esolue en une adresse locale valide, c'est celle-ci qui sera utilis�ee endernier lieu. Sa valeur par d�efaut est root.

Page 245: Administration Reseau Sous Linux

228 Chapitre 14. Mise en route de smail

14.6 Routage et distribution

Smail divise la distribution du courrier en trois taches 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 hote le messagedoit etre envoy�e et quel type de transport doit etre utilis�e. En fonction de la naturede 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 peutvouloir renvoyer tout son courrier �a une autre adresse. Si la destination qui en r�esulteest 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 leplus courant sera l'ajout �a une bo�te aux lettres, mais il est aussi possible que lesmessages 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 lestocke en attente d'une nouvelle tentative.

Avec smail, vous avez toute libert�e pour con�gurer ces taches. 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 desvaleurs 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 desmail concernant le routage, ou modi�er un transport, vous devez prendre les �chiersd'exemples fournis dans la distribution source du programme 4. Copiez ces exemplesdans /usr/lib/smail, et modi�ez-les selon vos besoins. Vous trouverez des exemplesdans l'annexe B.

14.7 Routage des messages

Lorsqu'on lui passe un message, smail commence par regarder si la destination estlocale ou distante. Si elle correspond �a l'un des noms locaux con�gur�es dans le �chiercon�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 derouteurs par d�efaut qui sera utilis�e.

L'hote de destination est pass�e �a tous les routeurs tour �a tour, et celui qui trouvela route la plus sp�eci�que est s�electionn�e. Consid�erons un message adress�e �a al-

[email protected]. 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.

Page 246: Administration Reseau Sous Linux

14.7. Routage des messages 229

hotes 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 routersqui 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. Dansnotre exemple ci-dessus, smail pourra trouver que toto.titi.com peut etre atteintpar 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 UUCPqui 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 fonctionsgethostbyname(3) ou gethostbyaddr(3), le message sera d�elivr�e par SMTP. Laseule exception sera lorsque cette adresse correspondra �a la machine locale ; ilsera alors pass�e au module directeur.

Les adresses IP sont �egalement reconnues comme noms l�egaux, tant qu'ellespeuvent 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 machinequark.physique.groucho.edu.

Si votre machine est sur l'Internet, ces routeurs ne sont pas ceux qu'il vous fautcar ils ne reconnaissent pas les enregistrements de type MX. Nous verrons plusloin ce qu'il faut faire dans ce cas.

{ Si /usr/lib/smail/paths, la base de donn�ees pathalias, existe, smail essaiera detrouver la machine destinataire (amput�ee de tout pseudo-domaine .uucp) dansce �chier. Le courrier �a destination d'une adresse trouv�ee par ce routeur serad�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 sortiede la commande uuname pour tester si la cible est en fait un voisin UUCP. Sic'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 serad�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 �echouentd�es que le routage n�ecessaire est un peu plus compliqu�e. Si vous etes confront�e �al'un des probl�emes que nous allons expliquer ci-dessous, vous devrez installer votrepropre �chier routers pour modi�er ces comportements par d�efaut. Vous en trouverezun exemple dans l'annexe B, qui pourra vous servir de point de d�epart. Certaines

Page 247: Administration Reseau Sous Linux

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 di�cult�es.

Le pire des cas est probablement lorsque votre machine est reli�ee �a l'ext�erieur �a la foispar des liaisons UUCP et des connexions IP temporaires, avec PPP ou SLIP. Vousaurez dans votre �chier hosts, le nom de certains hotes avec lesquels vous communiquezde temps en temps en IP, et smail tentera de d�elivrer tout courrier pour ces machinespar SMTP. Ce n'est surement pas ce que vous d�esirez, car meme si la liaison SLIP estr�eguli�erement active, le transfert par SMTP est bien plus lent que par UUCP. Avecla 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'interrogerle resolver, et que vous mettiez tous les hotes pour lesquels vous voulez forcer untransport 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 leresolver.

La con�guration par d�efaut sou�re d'un autre probl�eme : elle ne peut faire de r�eelroutage 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 quifournissent un binaire de smail dans lequel le support de BIND n'est pas compil�e. Sivous validez le bon routeur, mais que vous obtenez dans le �chier paniclog un messagedisant : (( router inet hosts: driver bind not found )), vous devrez recompilersmail (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 netrouvera pas la commande uuname. D'autre part, vous pouvez avoir plus de sitesindiqu�es dans votre �chier Systems de UUCP, que vous n'avez de liaisons pour lecourrier. Il peut s'agir de machines avec lesquelles vous n'�echangez que des �chiers oudes News Usenet, par exemple.

Pour contourner le premier probl�eme, il est facile de substituer un shell-script �a lacommande uuname, qui fera un simple exit 0. La solution la plus propre est toutefoisd'�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�ectuerde tels routages, supprimez-le s'il existe.

Il s'agit d'un �chier ASCII, tri�e par ordre alphab�etique, qui contient des entr�eesmettant 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 commentairesne sont pas autoris�es, et les noms de sites doivent etre s�epar�es des chemins par une

Page 248: Administration Reseau Sous Linux

14.8. Gestion des adresses locales 231

tabulation. Les bases de donn�ees pathalias sont pr�esent�ees avec un peu plus de d�etailsdans le chapitre 13.

Si vous r�ealisez ce �chier �a la main, vous devez faire bien attention d'y mettre tous lesnoms l�egaux d'un site. Par exemple, si une machine est connue �a la fois par un nompurement UUCP et un nom pleinement quali��e, il faudra une entr�ee pour les deuxcas. 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 pathsne sera n�ecessaire ; il su�t de con�gurer le smart host dans le �chier con�g, et laissercette 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'autrescas 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 estexpans�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 destinationslocales, comme des noms de �chiers et des tubes vers des commandes. Ce ne sontpas �a proprement parler des adresses, aussi est-il impossible d'envoyer un courrier �a,disons, /etc/[email protected] ; elles ne sont valides que si elles ont �et�e prisesdans 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 quesi le nom de �chier provient du �chier .forward ou d'une entr�ee de renvoi dans labo�te aux lettres (voir plus loin). Lorsqu'il d�elivre un message dans un �chier, smaille rajoute �a la �n des donn�ees d�ej�a existantes, ou cr�ee le �chier s'il n'existait pas.

Une commande tube 5 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, sansle | 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 pouvezutiliser un shell-script, appelons-le mon�ltre, et positionner un alias local qui d�elivretous 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 desprobl�emes de s�ecurit�e mis en jeu, la commande ne sera pas ex�ecut�ee si l'adresse a �et�eobtenue d'une fa�con douteuse (par exemple, si le �chier d'alias d'o�u provient l'adresseest en �ecriture pour tout le monde).

5: Pipe.

Page 249: Administration Reseau Sous Linux

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'agitd'un �chier situ�e dans /var/spool/mail qui porte le nom de cet utilisateur. Il a le mode660, les propri�etaires �etant l'utilisateur et le groupe mail. S'il n'existe pas, smail lecr�eera.

Notez que, bien que /var/spool/mail soit le r�epertoire standard pour les bo�tes auxlettres, 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 chemind'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 du �a un probl�eme decon�guration). L'utilisateur MAILER-DAEMON est utilis�e comme exp�editeur dumessage de rejet.

Si ces adresses n'aboutissent pas �a des comptes valides sur votre syst�eme, smail enverraautomatiquement tout ce qui est destin�e �aMAILER-DAEMON �a postmaster, etsi ce dernier n'existe pas non plus, ce sera root qui r�ecup�erera le tout. En g�en�eral, onpositionne postmaster comme un alias du compte de l'utilisateur qui est responsablede 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 deuxm�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 alorsenvoy�e aux destinataires indiqu�es. L'autre solution est de cr�eer un �chier .forwarddans son r�epertoire personnel, contenant la liste des destinataires, s�epar�es par desvirgules. 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 lacommande vacation, destin�ee �a envoyer un petit mot �a l'exp�editeur pour lui indiquerla situation.

Page 250: Administration Reseau Sous Linux

14.8. Gestion des adresses locales 233

14.8.3 Les alias

Le programme smail est capable de manipuler des �chiers d'alias compatibles avecceux 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 suivantecommence par une tabulation.

Une possibilit�e suppl�ementaire o�erte par smail consiste �a pouvoir g�erer des listesde di�usion directement depuis le �chier d'alias : si vous sp�eci�ez:include:fichiercomme destinataire, smail lira le �chier indiqu�e et son contenu sera consid�er�e commeune 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�elivrera aucun message aux commandesshell 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�eret 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 serapost�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'erreursuppl�ementaire ne sera g�en�er�e.

Lorsqu'il d�elivre du courrier dans des �chiers ou lorsqu'il invoque des programmesindiqu�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 genant, particuli�erement lorsque la destinationest un �chier. Dans l'exemple ci-dessus, les �chiers du r�epertoire log doivent pouvoiretre �ecrits par nobody et doivent lui appartenir, sinon rien n'y sera d�elivr�e.

Page 251: Administration Reseau Sous Linux

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�eespar des �chiers situ�es dans le r�epertoire /usr/lib/smail/lists. Une liste de di�usionnomm�ee restaurants sera d�ecrite par le �chier lists/restaurants, qui devra contenir lesadresses des membres de cette liste, s�epar�ees par des virgules. Il peut y avoir plusieurslignes, 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 laforme owner-nom-de-la-liste doit exister ; toute erreur se produisant lors de lar�esolution des adresses sera rapport�ee �a cet utilisateur. C'est aussi l'adresse qui serautilis�ee comme �etant celle de l'exp�editeur sur tous les messages �emis, par le champSender de l'en-tete.

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 messagesur 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 unchemin UUCP, avec la notation par bangs. Par exemple, utilisateur@machine seratransform�e enmachine!utilisateur. Chaque occurrence de l'op�erateur d'adressage%est pr�eserv�ee, par cons�equent une adresse comme utilisateur%machine@passerelle

deviendra alors passerelle!utilisateur%machine. Toutefois, smail ne g�en�erera ja-mais ce type d'adresses lui-meme.

Alternativement, smail peut envoyer et recevoir des lots BSMTP par UUCP. AvecBSMTP, un ou plusieurs messages sont rassembl�es en un seul lot qui contient lescommandes 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 bsmtpassoci�e qui g�en�ere des lots BSMTP partiels dans un r�epertoire d'attente. Ils devrontensuite etre combin�es en lots d�e�nitifs par un shell-script qui rajoutera les commandesHELO et QUIT n�ecessaires.

Pour valider le transport bsmtp sur des liens UUCP sp�eci�ques, vous devrez utiliserles �chiers method (consultez la page de manuel smail(5) pour plus de d�etails). Sivous 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�gurationsmart transport �a bsmtp au lieu de uux.

Pour recevoir des lots SMTP via UUCP, vous devez v�eri�er que vous poss�edez lacommande d'extraction correspondant aux lots que le site distant vous pr�epare. Si ce

Page 252: Administration Reseau Sous Linux

14.10. Transport par SMTP 235

dernier utilise aussi smail, vous devrez cr�eer un lien nomm�e rsmtp vers le programmesmail. 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 nemarchera pas).

14.10 Transport par SMTP

Smail supporte un pilote SMTP permettant de d�elivrer du courrier par une connexionTCP 6. Il est capable de d�elivrer un message �a un nombre quelconque d'adressessur une machine, dont le nom est sp�eci��e soit sous la forme pleinement quali��eepouvant etre r�esolu par la couche r�eseau, soit sous forme d'adresse IP en notationd�ecimale, contenue entre crochets. G�en�eralement, les adresses r�esolues par l'un despilotes des routeurs BIND, gethostbyname(3) ou gethostbyaddr(3) seront atteintespar le transport SMTP.

Le pilote SMTP tentera imm�ediatement de se connecter �a la machine distante par leport smtp indiqu�e dans /etc/services. Si la connexion ne peut se faire, smail retenteral'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 dansle chapitre 13, plutot que dans la notation par bangs 7. Par cons�equent, smail trans-formera une adresse comme utilisateur%machine@passerelle, o�u passerelle estatteinte, par exemple, par le chemin machine1!machine2!machine3, en l'adressede routage :<@machine2,@machine3:utilisateur%machine@passerelle>, qui sera donc en-voy�ee �amachine1 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 smtpdans 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'hotes non quali��es (c'est-�a-diresans 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 nomspleinement 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�cationsd'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 e�cacement.

7: Toutefois, l'usage de routes sur l'Internet est fortement d�econseill�e. Il faut utiliser des noms

pleinement quali��es.

Page 253: Administration Reseau Sous Linux

236 Chapitre 14. Mise en route de smail

Le �chier /usr/lib/smail/qualify indique �a smail quels noms de domaines rajouter �aquels noms d'hotes. Les entr�ees de 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 introduitun 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 touthote non mentionn�e auparavant dans un domaine par d�efaut. Il ne doit etre utilis�eque pour la derni�ere entr�ee, bien entendu.

�A (( La bi�ere virtuelle )), toutes les machines ont �et�e con�gur�ees pour utiliser desnoms pleinement quali��es dans les adresses des exp�editeurs. Les adresses re�cues nonquali��ees sont consid�er�ees etre toutes dans le domaine uucp, aussi il su�t d'uneentr�ee dans le �chier qualify :

# /usr/lib/smail/qualify, derni�ere modification le 25 Dec. 94 par Noel

#

* uucp

Page 254: Administration Reseau Sous Linux

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 unv�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 desgens, il est aussi incroyablement di�cile �a apprendre et �a comprendre. Tout pro-gramme dont la r�ef�erence absolue (sendmail, par Brian Costales, Eric Allman et NeilRickert) 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�quesau site par des �chiers relativement simples �a comprendre, appel�es tables. Passer �aSendmail+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 probablementrien qui ne puisse etre fait plus rapidement et simplement qu'avec Sendmail+IDA.Les taches classiques consistant �a con�gurer un site UUCP ou Internet deviennentsimples �a accomplir. Les con�gurations qui sont normalement longues et complexessont faciles �a cr�eer et�a maintenir.

A l'heure o�u nous �ecrivons ces lignes, la version courante, sendmail5.67b+IDA1.5, estdisponible par FTP anonyme sur le site vixen.cso.uiuc.edu. Elle se compile sousLinux sans aucune modi�cation 1.

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.

Page 255: Administration Reseau Sous Linux

238 Chapitre 15. Sendmail+IDA

Tous les �chiers de con�guration requis pour la compilation de Sendmail+IDA, soninstallation 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 aucundes langages que vous avez pu rencontrer auparavant. �Editer sendmail.cf pour obtenirune 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 pardes tables et une syntaxe tr�es simple �a assimiler. Elles sont con�gur�ees en ex�ecutantm4 (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 lessources.

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 detables optionnelles plutot qu'en modi�ant directement sendmail.cf. Voici la liste deces tables :

mailertable D�e�nit le comportement pour les domaines ou les hotes distants.

uucpxtable Force le transfert du courrier par UUCP pour les hotes qui sont auformat DNS.

pathtable D�e�nit les chemins UUCP vers les domaines ou hotes distants.

uucprelays Court-circuite le chemin pathalias pour les hotes distants bien connus.

genericfrom Convertit les adresses internes en adresses g�en�eriques visibles du restedu 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.

Page 256: Administration Reseau Sous Linux

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 su�t 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 lesmart-host).

Toute une vari�et�e de param�etres peuvent etre d�e�nis pour �etablir le comportementdu site local ou pour forcer la con�guration compil�ee par d�efaut. Ces options sontidenti��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 avectout le courrier non local envoy�e �a un smart-host directement connect�e) peut ne pasd�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 hotes du r�eseau desbrasseurs, gueuze utilise SMTP ; et elle envoie tous les messages pour les autresdestinations 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 notrecas. 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 sectionsqui vont suivre d�ecrivent chaque param�etre de l'exemple de la �gure 15.1 avec plusde 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 decon�guration, les di��erentes tables dbm, et les d�e�nitions locales sp�eciales. Dans unedistribution binaire typique, ce param�etre est compil�e dans le programme et n'a pasbesoin d'etre explicitement indiqu�e dans le �chier sendmail.m4.

Page 257: Administration Reseau Sous Linux

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 hote ou par domaine

define(UUCPXTABLE, LIBDIR/uucpxtable)dnl # chemins vers les hotes 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.

Page 258: Administration Reseau Sous Linux

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'agitd'un commentaire.

Pour modi�er l'endroit o�u vous d�esirez placer les �chiers de con�guration, supprimezla 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 lecourrier local. Sur beaucoup de versions d'UNIX, les noms de ces programmes sontd�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'estpas forc�ement pr�esent dans la distribution que vous avez install�ee. Il su�t de sp�eci�erla 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 but 2,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 interneMlocal avec les param�etres corrects, a�n que sendmail puisse correctement d�elivrerle courrier destin�e au syst�eme local. �A moins que vous ne soyez un expert sendmail,vous n'aurez pas int�eret �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 quiest inclus dans sendmail.cf. Pour le sp�eci�er, vous ne devez pas utiliser le �chiermailers.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 leplacent 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%[email protected]). Il fait partie

de plusieurs distributions de Linux et peut etre trouv�e sur les archives FTP anonymes courantes.

Page 259: Administration Reseau Sous Linux

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�eceptionsde courrier avec un taux de r�eussite proche de 100 %. Bien que l'examen des tracesde syslogd(8) soit utile, l'administrateur a g�en�eralement besoin de voir les en-tetesdes messages rejet�es a�n de pouvoir d�eterminer s'ils n'ont pu etre d�elivr�es en raisond'une erreur de l'utilisateur ou d'un probl�eme de con�guration sur l'un des syst�emesmis en jeu.

D�e�nir POSTMASTERBOUNCE permettra d'envoyer une copie de chaque messagerejet�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 dumessage non d�elivr�e au postmaster, ce qui est une atteinte �a la vie priv�ee des personnesutilisant 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, parexemple �a l'aide de shell-scripts qui suppriment le contenu des courriers rejet�es dontils 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�es dans des adresses decourrier pour des raisons historiques, mais qui ne sont pas valides lors d'une recherchepar le DNS. D�e�nir PSEUDODOMAINS �evite d'inutiles requetes aux serveurs denoms, 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 cacher leur vraie identit�e, servir de passerelle de courrier,ou recevoir et traiter des messages adress�es �a d'anciens noms, sous lesquels ils �etaientconnus auparavant.

PSEUDONYMS sp�eci�e la liste de tous les noms pour lesquels le syst�eme local ac-ceptera du courrier.

Page 260: Administration Reseau Sous Linux

15.3. Le �chier sendmail.cf 243

DEFAULT HOST sp�eci�e le nom qui appara�tra dans les messages �emis depuis lesyst�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 pourUUCP. UUCPNAME vous permet de d�e�nir un nom d'hote di��erent, qui appara�tradans les en-tetes 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 avecla notation par bangs UUCP sera trait�e selon la m�ethode UUCP plutot que par celledu 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 hotes de laplan�ete. Ils pr�ef�erent envoyer tout le courrier dont la destination est inconnue vers unemachine 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 decette machine. Assurez-vous auparavant d'avoir obtenu l'accord de son administrateuravant 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 hote ou par domaine

Page 261: Administration Reseau Sous Linux

244 Chapitre 15. Sendmail+IDA

define(UUCPXTABLE, LIBDIR/uucpxtable)dnl # chemins vers les hotes uucp

define(UUCPRELAYS, LIBDIR/uucprelays)dnl # court-cirtuite pathalias

Avec ces macros, vous pouvez changer l'endroit o�u Sendmail+IDA recherche les di-verses tables dbm qui d�e�nissent le comportement (( r�eel )) du syst�eme. Il est raisonnablede 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 c�ur dece 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 besoind'une distribution compl�ete ou de recompiler sendmail. Par cons�equent, il est tr�esimportant 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�elivrele 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. Ilest facile de modi�er ce comportement par les entr�ees des �chiers domaintable etuucpxtable.

Un site ordinaire sur l'Internet, interrogeant le DNS, ou qui est uniquement UUCPet envoie tout son courrier vers son smart-host, n'a probablement besoin d'aucuneentr�ee sp�eci�que dans les tables.

Pratiquement, tous les syst�emes doivent positionner les macros DEFAULT HOST etPSEUDONYMS, qui d�e�nissent le nom canonique du site et les alias sous lesquels ilest 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�efautcar cela fonctionne automatiquement.

Les machines UUCP n�ecessiteront sans doute d'assigner UUCPNAME �a leur nomo�ciel UUCP, ainsi que de positionnerRELAY MAILER etRELAY HOST, qui validel'utilisation d'un smart-host, le transport utilis�e pour le courrier sera d�e�ni dansRELAY 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 valeurassign�ee �a DEFAULT MAILER pour y mettre TCP-A et probablement supprimer lesdeux lignes RELAY MAILER et RELAY HOST.

Page 262: Administration Reseau Sous Linux

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�erle comportement par d�efaut de sendmail (sp�eci��e dans le �chier sendmail.m4) et ded�e�nir des modes de fonctionnements particuliers pour certaines situations, certainssyt�emes distants, ou certains r�eseaux. Ces tables sont trait�ees par dbm via le Make�lefourni dans la distribution.

La plupart des sites n'auront besoin que de tr�es peu de tables, voire pas du tout.Si le votre n'en n�ecessite aucune, le mieux est alors de leur donner une taille de 0octet (avec la commande touch) et d'utiliser le Make�le par d�efaut se trouvant dansLIBDIR, plutot que de modi�er ce Make�le lui-meme.

15.4.1 La table mailertable

Le �chier mailertable d�e�nit des traitements sp�eciaux pour des hotes ou r�eseaux sp�e-ci�ques. Il est souvent employ�e sur les sites Internet pour s�electionner un relais decourrier ou passerelle interm�ediaire pour atteindre un r�eseau donn�e, et pour indiquerun 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 messagesen fonction de la premi�ere r�egle correspondante qu'il rencontre. Par cons�equent, ilfaut 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�eada. 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 domainegroucho.edu aille vers un hote relais di��erent (grostas) pour la r�esolution desadresses 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

Page 263: Administration Reseau Sous Linux

246 Chapitre 15. Sendmail+IDA

Comme nous l'avons dit plus haut, l'ordre des entr�ees est important. Si les deux r�eglesci-dessus apparaissaient dans le sens inverse, tout le courrier vers .cs.groucho.eduserait dirig�e par la r�egle g�en�erale vers grostas au lieu d'etre trait�e par la r�egle plussp�eci�que devant l'envoyer vers ada.

Dans l'exemple de mailertable ci-dessus, UUCP-A indique �a sendmail de d�elivrer lecourrier par UUCP avec des en-tetes domainis�es.

La virgule entre la m�ethode et le nom du syst�eme lui indique d'envoyer le message �aada 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 hote-relais hote 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/IPavec des adresses de type Internet), TCP-U (TCP/IP avec des adresses de typeUUCP), et UUCP-A (UUCP avec des adresses de type Internet).

Le caract�ere qui s�epare la m�ethode de la partie hote 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'hote destinataire avantl'envoi. Vous l'utiliserez essentiellement lorsque vous voulez forcer lecourrier vers un site distant mal con�gur�e.

, Une virgule ne modi�e jamais l'adresse. Le message est envoy�e parla m�ethode indiqu�ee vers la machine relais sp�eci��ee.

: Le caract�ere (( deux-points )) supprime le nom d'hote destinataireseulement s'il existe des machines interm�ediaires entre vous et ladestination. 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�eraltr�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 uucpxtableforce l'utilisation du routage UUCP en convertissant le nom domainis�e en style UUCP,sans domaine.

Page 264: Administration Reseau Sous Linux

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 UUCPdirecte plutot que de passer par la liaison par d�efaut et plusieurs autres syst�emesinterm�ediaires.

Les sites UUCP qui sont connect�es �a vos voisins UUCP utilisant des en-tetes do-mainis�es utiliseront ce �chier pour forcer l'envoi du courrier par la liaison UUCPdirecte entre les deux syst�emes, plutot 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.com dansle DNS et sesame dans les cartes UUCP. Vous aurez besoin de l'entr�ee suivante dansuucpxtable pour forcer le courrier pour cette machine �a passer par votre connexionUUCP directe :

#============== /usr/local/lib/mail/uucpxtable ============

# Le courrier pour [email protected] 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 desr�eseaux distants. Son format est celui de la base de donn�ees pathalias, tri�e par ordrealphab�etique. Les deux champs de chaque ligne doivent etre s�epar�es par un caract�erede 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.

Page 265: Administration Reseau Sous Linux

248 Chapitre 15. Sendmail+IDA

#

swim!%[email protected] 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.

#

%[email protected] .UUCP

byte!%[email protected] .BITNET

#

#=================== end of pathtable =======================

15.4.4 La table domaintable

Elle est utilis�ee pour forcer le comportement �a adopter apr�es qu'une requete DNS aeu 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 lenom r�eel. Elle peut aussi servir �a remplacer des noms de machines ou de domainesincorrects 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 laquelledes 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 plusieurspersonnes.

{ 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.

Page 266: Administration Reseau Sous Linux

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 appellerontdes 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 avoirex�ecut�e la commande :

# /usr/lib/sendmail -bi

Cette commande reconstruit la table dbm n�ecessaire. Vous pouvez �egalement employerla 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 manuelaliases(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 cheminUUCP vers des sites particuli�erement connus, plutot que de laisserle message partir par une route incertaine g�en�er�ee par le traitementdes cartes UUCP avec pathalias.

Page 267: Administration Reseau Sous Linux

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�eriquesqui 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 sortantessoient faites �a partir d'un �chier de r�ef�erence, xaliases.

decnetxtable Le �chier decnetxtable r�e�ecrit les adresses domainis�ees en adresses destyle DECnet.

15.5 Installation de sendmail

Nous allons voir dans cette section, comment installer une distribution binaire typiquede 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 obtenuesur 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�e en 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 instructionscontenues dans les �chiers README de la distribution. Ces sources sont disponiblessur le site vixen.cso.uiuc.edu. Il vous faudra �egalement les �chiers de con�gurationsp�e�ciques �a Linux contenus dans l'archive newspak-2.2.tar.gz, disponible par FTPanonyme 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 faudrasupprimer (ou renommer) au pr�ealable tous les �chiers s'y rapportant pour �eviterd'�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 lememe r�esultat par la simple commande tar -zxvf fichier.tgz.

Une fois ce traitement termin�e, vous aurez obtenu un r�epertoire portant le nomde sendmail5.65b+IDA1.5+mailx5.3b. Vous y trouverez une installation compl�ete deSendmail+IDA plus un binaire du programme utilisateur mailx. Toute l'arborescence

Page 268: Administration Reseau Sous Linux

15.5. Installation de sendmail 251

en dessous de ce r�epertoire re �ete l'emplacement exact o�u les �chiers doivent etreinstall�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 �chiersendmail.m4, puis le traiter par m4. Dans /usr/local/lib/mail/CF, vous trouverez unexemple appel�e sample.m4. Copiez-le sous un autre nom (par convention on le nommedu nom de la machine, votre-hote.m4) et �editez-le pour qu'il re �ete la situationd�esir�ee.

Cet exemple est con�gur�e pour un site uniquement UUCP qui utilise des en-tetesdomainis�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 cechapitre, 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 lecourrier 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 hote local peut etre connu.

DEFAULT HOST

Mettez votre nom pleinement quali��e ici. Ce nom appara�tra commevotre nom d'hote dans tout le courrier �emis.

UUCPNAME Mettez votre nom d'hote non quali��e ici.

RELAY HOST et RELAY MAILER

Si vous vous connectez par UUCP �a un smart-host, assignez le nomde cette machine �a RELAY HOST. Si vous d�esirez des en-tetes 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�elivrele 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.

Page 269: Administration Reseau Sous Linux

252 Chapitre 15. Sendmail+IDA

Pour cr�eer automatiquement le �chier sendmail.cf, ex�ecutez la commande :

# make votre-hote.cf

Le �chier votre-hote.m4 sera trait�e par m4 et un �chier votre-hote.cf sera r�ealis�e.Ensuite, vous devez tester si le �chier de con�guration que vous venez de cr�eer faitbien ce que vous attendez de lui : ce sera l'objet des deux sections suivantes. Lorsquevous en serez satisfait, mettez-le en place par la commande :

# cp votre-hote.cf /etc/sendmail.cf

�A ce stade, votre syst�eme sendmail est pret �a fonctionner. Mettez la ligne suivantedans 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 �chierde con�guration par d�efaut est le sendmail.cf qui est install�e sur la machine, maisvous pouvez essayer tout autre �chier grace �a l'option -Cnom-de-fichier.

Dans les exemples suivants, nous testons gueuze.cf, le �chier de con�guration g�en�er�epar 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 �avos utilisateurs. Dans tous les cas, le r�esultat du test doit etre le meme et pointer versle 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

Page 270: Administration Reseau Sous Linux

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 estpass�ee �a di��erentes r�egles qui l'analysent, et en appellent d'autres tour �a tour, ettoutes ses composantes sont isol�ees.

Dans notre exemple, nous avons donn�e l'adressemoi aux r�egles 3 et 0 (d'o�u le nombre3,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�eainsi que l'hote et l'utilisateur qui lui seront pass�es.

Ensuite, v�eri�ons ce que donne un message �a un utilisateur du syst�eme, avec unesyntaxe 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 Internetet 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 [email protected]

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

Page 271: Administration Reseau Sous Linux

254 Chapitre 15. Sendmail+IDA

indiqu�e dans les param�etres PSEUDONYMS et DEFAULT NAME de votre �chiersendmail.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 [email protected]

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 pard�efaut d�esir�e, et que vous pouvez recevoir et exp�edier des messages valides. Pourterminer l'installation, il peut etre n�ecessaire de cr�eer les tables dbm appropri�ees pourobtenir 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 dbmen 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 tablesmentionn�ees dans le �chier README.linux. Il vous su�ra de cr�eer des �chiers dumeme 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) etex�ecuter dbm sur cette nouvelle table uucpxtable.

Tout d'abord, assurez-vous que le courrier via votre RELAY HOST est envoy�e par

Page 272: Administration Reseau Sous Linux

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 [email protected]

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�erque 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 hote avec lequel vous etes directementconnect�e par UUCP doivent lui etre envoy�es directement (sauf si vous l'empechezexplicitement par une entr�ee dans domaintable). Consid�erons que swim est un de vosvoisins UUCP directs. Passer �a sendmail un message adress�e �a swim!fred devraitproduire 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 certainsvoisins qui postent leur courrier avec le style Internet et des en-tetes domainis�es, ilfaudra aussi v�eri�er ceci :

Page 273: Administration Reseau Sous Linux

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 [email protected]

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 testsd'un syst�eme Sendmail+IDA, prenons un peu de temps pour regarder ce qui se passer�eellement dans la vie quotidienne d'un administrateur.

Les syst�emes distants tombent parfois en panne. Les modems marchent mal ou let�el�ephone est coup�e. Les d�e�nitions DNS sont erron�ees car quelqu'un s'est tromp�e.Les r�eseaux s'arretent sans pr�evenir. Dans de tels cas, les administrateurs du courrierdoivent savoir exactement comment r�eagir e�cacement et au plus vite, a�n d'assurerune 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 pluscourants 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 hote particulier, vers unrelais donn�e qui pourra en assurer l'exp�edition, il faut g�en�eralement utiliser le �chiermailertable. Par exemple, pour renvoyer tout le courrier destin�e �a chezeux.org versleur 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 hotes Internet ont souvent des probl�emes pour envoyer du courrier aux sitesdistants mal con�gur�es. Il y a plusieurs variantes de la chose, mais le symptomeg�en�eral se traduit par des messages rejet�es par le syst�eme distant ou du courrierirr�em�ediablement perdu.

Page 274: Administration Reseau Sous Linux

15.6. Trucs et astuces du parfait petit administrateur 257

Ces probl�emes font souvent du tort �a l'administrateur local, car les utilisateurs semoquent g�en�eralement que vous n'administriez pas personnellement tous les syst�emesdu monde (ou ne puissiez pas joindre leurs responsables pour qu'ils corrigent leurserreurs). Tout ce qu'ils voient, c'est que leurs messages n'aboutissent pas �a leursdestinataires 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, netentez pas de d�er�egler votre syst�eme pour arriver �a communiquer avec une machinemal con�gur�ee. Si vous ne pouvez pas joindre son responsable a�n qu'il corrige cequ'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 sansdoute pas ; mais l�a, c'est le probl�eme de son administrateur.

Vous pouvez corriger les mauvais en-tetes de l'enveloppe de vos messages sor-tants, uniquement en utilisant une entr�ee domaintable pour leur hote ou do-maine, qui fera que les informations non valides seront corrig�ees pour tout lecourrier 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 lamachine 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�eproprement. Il est alors possible de supprimer tout nom d'hote et de domainede 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 arrivaient deleur syst�eme local. Notez que cela ne change que l'adresse d'enveloppe, l'adressede retour correcte sera toujours pr�esente dans le message.

TCP!malade.correct.domaine.com malade.incorrect.domaine.com

N�eanmoins, meme si vous arrivez �a leur poster du courrier, il n'y a aucune garantiequ'ils puissent vous r�epondre (ce sont des nuls, ne l'oubliez pas) ; mais au moins, leursutilisateurs casseront les pieds �a leur administrateur, et vous serez tranquille de votrecot�e.

15.6.3 Forcer le courrier �a partir par UUCP

Dans un monde id�eal (vu du cot�e Internet), tous les hotes sont dans le DNS et postentdes messages sous des noms pleinement quali��es.

Si vous communiquez par UUCP avec un tel site, vous pouvez forcer le courrier �apasser par la connexion UUCP plutot que par la m�ethode par d�efaut en (( anti-domainisant )) le nom du site distant par le �chier uucpxtable.

Page 275: Administration Reseau Sous Linux

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 courrieren attente dans la queue UUCP, pour qu'il soit d�elivr�e �a la prochaine connexion dece type avec ce site.

15.6.4 Empecher le courrier de partir par UUCP

La situation inverse peut aussi se produire. Souvent, des syst�emes peuvent avoir uncertain nombre de connexions UUCP directes qui ne sont utilis�ees que de temps entemps, ou ne sont pas aussi �ables et disponibles que le routage par d�efaut ou lesmart-host.

Par exemple, il y a dans la r�egion de Seattle 3 des sites qui s'�echangent les di��erentesdistributions de Linux par UUCP lorsqu'elles sont disponibles. Ces machines ne sontconnect�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 toujoursdisponibles.

Il est tr�es facile d'�eviter de d�elivrer le courrier directement �a un site avec lequel vousavez une connexion UUCP directe. Si le syst�eme distant poss�ede un nom pleinementquali��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, etpar cons�equent �evitera qu'il soit trouv�e par la ligne UUCPNODES du �chier send-mail.m4. Le r�esultat sera g�en�eralement que 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 su�t detaper la commande /usr/lib/runq. Elle appelle sendmail avec les options ad�equates.

3: Ainsi que dans la r�egion parisienne.

Page 276: Administration Reseau Sous Linux

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 volumedu 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 taillequi 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 pourque sendmail commence �a y enregistrer des traces. Les r�esultats sont remis �az�ero en e�a�cant puis recr�eant ce �chier sendmail.st ; il su�t par exemple defaire :

# cp /dev/null /usr/local/lib/mail/sendmail.st

{ La meilleure m�ethode est probablement de mettre en route le d�eboguage parsyslogd(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 surla machine (ce qui est sans doute, et heureusement, le cas sur un syst�eme bienadministr�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 tracepeut 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 letruchement de crond(8).

Vous trouverez bon nombre d'utilitaires qui e�ectuent des statistiques �a partirdes �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, NewsUsenet, 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'agentde transport du courrier (sendmail ou smail). De telles consid�erations ne sont pastoujours 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

Page 277: Administration Reseau Sous Linux

260 Chapitre 15. Sendmail+IDA

quelques probl�emes que nous avons rencontr�e dans le pass�e avec certaines distributionsbinaires et sources de Linux parmi les plus courantes.

{ Certaines versions de la distribution NET-2 de TCP/IP ont un programmenomm�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 plutot que sendmail.

{ Sendmail+IDA conna�t en interne deliver, mais il pense le trouver dans /bin

plutot que dans /usr/bin, o�u il est le plus souvent plac�e sous Linux.

Plutot 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 FTPanonyme sur rtfm.mit.edu 4. Toutefois, les meilleurs renseignements se trouvent dansles 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.

Page 278: Administration Reseau Sous Linux

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 �etudiantsam�ericains, Tom Truscott et Jim Ellis, eurent l'id�ee d'utiliser UUCP dans le butd'�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 enlangage C), mais aucun code ne fut jamais di�us�e. Cet ensemble fut rapidementremplac�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 etpar jour. Lorsque le volume se mit �a augmenter, Mark Horton et Matt Glickmanr�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'�etaiten 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 HenrySpencer ; 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 nombrede groupes, la surcharge due �a l'appel fr�equent de relaynews, qui est le programmedistribuant 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 tache de fond. Cette version, tr�es r�epandue, est fournieavec beaucoup de distributions binaires de Linux.

Jusqu'�a la version C, cet ensemble �etait �etudi�e pour une utilisation sur des r�eseauxUUCP, bien que son emploi dans d'autres environnements restat possible. Mais obte-

Page 279: Administration Reseau Sous Linux

262 Chapitre 16. Les News Usenet

nir des transferts e�caces sur des r�eseaux performants comme TCP/IP ou DECnetdemandait une nouvelle orientation du projet. Aussi, en 1986, fut introduit NNTP, leNetwork News Transfer Protocol (protocole de transfert de News par r�eseau). Il estbas�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 nntpdde Brian Barber et Phil Lapsley, que vous pouvez employer pour o�rir un service delecture des News �a des hotes d'un r�eseau local, est l'un des plus connus. Il est pr�evupour compl�eter les ensembles de gestion de News comme Bnews ou C News, en leurapportant le support du protocole NNTP.

INN, ou Internet News, en est un autre. Ce n'est pas qu'un simple frontal, mais unsyst�eme �a part enti�ere. Il comprend un d�emon tr�es sophistiqu�e qui peut supporter demultiples liaisons NNTP concurrentes, et est devenu le serveur de News id�eal employ�esur 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. Enfait, l'un des principes de Usenet, c'est qu'en dehors des descriptions techniques, ilest impossible de d�e�nir ce que c'est ; tout ce que l'on peut indiquer, c'est ce queUsenet 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 desnon-propri�et�es de Usenet.

Au risque de para�tre stupide, on peut d�e�nir Usenet comme la collaboration de sitesdistincts qui s'�echangent des News Usenet 1. Pour devenir un site Usenet, tout ceque vous avez �a faire est de trouver un autre site et vous mettre d'accord avec sespropri�etaires et administrateurs pour �echanger des articles avec vous. Comme ils ont lememe accord avec un autre site qui agit de meme pour eux, vous voyez imm�ediatementappara�tre un autre aspect de la philosophie de Usenet : (( Trouvez un fournisseur, etvous en ferez partie. ))

L'unit�e de base des News Usenet est l'article. Il s'agit d'un message r�edig�e par unutilisateur, qu'il (( poste )) sur le r�eseau. A�n que les autres sites puissent le g�erer, onlui rajoute des informations administratives, le fameux en-tete. Il ressemble beaucoup�a celui du courrier au standard RFC 822, en ce sens qu'il est constitu�e de di��erenteslignes de texte, chacune commen�cant par un mot-cl�e termin�e par le caract�ere (( : )),suivi de la valeur attribu�ee �a ce champ 2.

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.

Page 280: Administration Reseau Sous Linux

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�erencespour les d�esigner ; �a l'�etranger seuls les deux premiers termes sont employ�es dans lecadre de Usenet. Tous les groupes sont organis�es en hi�erarchies, leur nom indiquantleur emplacement dans cette arborescence ; ce qui permet souvent de savoir facilementquel est le sujet trait�e, au vu du nom. Par exemple, tout le monde comprendra que legroupe appel�e comp.os.linux.announce sert aux annonces concernant un syst�emed'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 messages de ce groupe. Lorsque deux sites se mettent d'accord pour �echangerdes News, ils sont libres de transporter les groupes qu'ils d�esirent, et peuvent memecr�eer de nouvelles hi�erarchies locales �a leurs syst�emes. Par exemple, groucho.edupeut avoir un lien avec barnyard.edu, qui est un site Usenet important, et plusieursliaisons avec des sites plus petits auxquels il fournit certains groupes (vous verrezsouvent 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 quequelques-unes comme sci, comp, rec, etc. Certains petits sites, disons par exempleune machine UUCP appel�ee brewhq, ne voudront prendre que quelques forums, pourdes 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�equentoblig�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 estillustr�e dans la �gure 16.1.

Les rep�eres inscrits �a cot�e des �eches en provenance de brewhq n�ecessitent toutefoisune explication. Par d�efaut, ce site veut que tous les articles g�en�er�es localement soientenvoy�es �a groucho.edu. Mais comme groucho.edu ne transporte pas les groupesfj, il n'y a aucun int�eret �a les leur envoyer, ils seront rejet�es. Par cons�equent, le uxallant de brewhq �a GMU est rep�er�e all,!fj, signi�ant que tous (all) les groupes saufceux 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 latotalit�e des hi�erarchies transf�erent environ 180 Mo d'articles par jour 3. Bien sur, celan�ecessite un peu plus de proc�edures que de simples copies de �chiers. Aussi, voyonscomment 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 9 600 bps, cela nous fait 180 millions divis�es par 1 200, ce qui nous don-

nerait... plus de 40 heures de transfert !

Page 281: Administration Reseau Sous Linux

264 Chapitre 16. Les News Usenet

brewhq

gargleblaster.com

Usenet

groucho.edu

barnyard.edu

comp,sci,

recall

all,!fj

comp.os,

comp.periphs

fjfj

Fig. 16.1 - Circuit des News Usenet �a l'universit�e Groucho Marx.

Page 282: Administration Reseau Sous Linux

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 dessites Internet. L'algorithme de routage utilis�e est bas�e sur la redondance : chaque sitemaintient un certain nombre de liens (les fameux feeds de News) avec d'autres. Toutarticle 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�epar eux. Il est possible de savoir par o�u est pass�e un article grace au champ Path del'en-tete, qui contient la liste de tous les syst�emes qu'il a travers�es, s�epar�es par unpoint d'exclamation (bang-path).

Pour distinguer les articles et reconna�tre les doublons, chacun d'eux doit comporterdans son en-tete un identi�cateur unique, appel�e leMessage-ID, qui est r�ealis�e �a partirdu nom du site associ�e �a un num�ero de s�erie unique sur cette machine, pr�esent�e sousla forme <num�ero@site>. Le syst�eme de News enregistre chaque article trait�e parce num�ero dans un �chier appel�e history, qui est test�e �a chaque fois qu'un nouveaumessage se pr�esente.

Le ux entre deux sites quelconques peut etre limit�e selon deux crit�eres. D'une part, ilexiste un champ indiquant l'�etendue de sa distribution (Distribution dans l'en-tete),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 peutetre limit�e par l'un ou l'autre des syst�emes. L'ensemble des groupes et distributionsautoris�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�eliorationsde 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 lesarticles dans des lots et de les exp�edier tels quels, ce ne sont que les message-ID quisont utilis�es pour constituer un �enorme message nomm�e (( ihave )) (je poss�ede) exp�edi�eau 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 sur, ce protocole ihave/sendme n'a d'int�eret que s'il met en jeu deux gros sitesqui re�coivent les News depuis plusieurs ux ind�ependants les uns des autres, et quisont connect�es su�samment souvent pour obtenir des �echanges e�caces.

Les sites connect�es �a l'Internet utilisent g�en�eralement des programmes bas�es surTCP/IP faisant appel au protocole NNTP 4. Il permet de transf�erer les articles etd'o�rir des acc�es individuels �a Usenet �a tout utilisateur se trouvant sur une machinedistante et poss�edant un programme de lecture ad�equat.

NNTP permet le transfert de trois fa�cons di��erentes. La premi�ere est une versiontemps 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.

Page 283: Administration Reseau Sous Linux

266 Chapitre 16. Les News Usenet

une hi�erarchie ou un groupe donn�e, qui sont arriv�es sur le serveur apr�es une certainedate, et choisit ceux qu'il ne peut pas trouver dans son �chier d'historique. C'estle pulling (on (( tire )) les articles). La troisi�eme m�ethode est destin�ee �a la lectureinteractive et permet de r�ecup�erer des articles depuis les groupes sp�eci��es, aussi bienque d'en poster, le plus souvent �a l'aide de programmes conviviaux appel�es (( lecteurs )).

Sur chaque site, les News sont stock�ees dans une arborescence de r�epertoires situ�eesous /var/spool/news, chaque article faisant l'objet d'un �chier s�epar�e. Le nom dur�epertoire est constitu�e du nom du groupe, ses composants �etant ceux du chemind'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 assignerun num�ero, dans l'ordre o�u ils arrivent, qui sert de nom de �chier. L'�etendue de cesnum�eros est conserv�ee dans un �chier nomm�e active, qui sert en meme temps de listedes groupes connus sur le site en question.

Puisque l'espace de stockage o�ert par les disques durs est encore de nos jours uneressource �nie 5, il faut penser �a �eliminer r�eguli�erement les 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 uncertain nombre de jours apr�es leur arriv�ee sur le syst�eme. L'exp�editeur peut lui-memed�ecider de la date �a partir de laquelle son message pourra etre supprim�e, en sp�eci�antune date d'expiration dans le champ Expires de l'en-tete.

5: Certains a�rment que Usenet est le fruit d'un complot ourdi par les constructeurs de modems

et les fabricants de disques durs.

Page 284: Administration Reseau Sous Linux

267

Chapitre 17

C News

C News est l'un des ensembles de logiciels de News les plus connus. Il est destin�e auxsites transportant les articles par UUCP. Ce chapitre traitera de son fonctionnement,d�ecrira son installation et les taches de maintenance n�ecessaires �a son fonctionnementcorrect.

Les �chiers de con�guration de C News se trouvent dans /usr/lib/news, et l'essentielde ses programmes ex�ecutables se situent dans le r�epertoire /usr/lib/news/bin. Lesarticles 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'utilisateurnews et au groupe news. La plupart des probl�emes rencontr�es sont dus �a des �chiersinaccessibles �a l'application. Vous devez prendre l'habitude de passer sous le compteutilisateur news (par la commande su) avant de toucher �a quoi que ce soit dans lagestion 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 certainsutilitaires : 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 utilisateurlocal poste un message, son programme lecteur l'envoie g�en�eralement �a la commandeinews, qui compl�ete les informations n�ecessaires dans l'en-tete. Les articles en prove-nance des sites distants | que ce soit un lot ou un message individuel | sont pass�es auprogramme rnews, qui les place dans le r�epertoire /var/spool/news/in.coming, d'o�u ilsseront extraits plus tard par newsrun. Dans les deux cas, l'article sera �eventuellementtrait�e par la commande relaynews.

Pour chaque article, relaynews commence par tester s'il a d�ej�a �et�e vu sur le site localen recherchant son Message-ID dans le �chier history : les articles dupliqu�es seront

Page 285: Administration Reseau Sous Linux

268 Chapitre 17. C News

rejet�es. Puis il regarde la ligne d'en-tete Newsgroups pour v�eri�er si le site demandebien le ou les groupes indiqu�es. Si c'est le cas, et que le �chier active contient bience nom, relaynews essaie de placer le message dans le r�epertoire correspondant duspoule, qui sera cr�e�e s'il n'existait pas encore. En�n, le Message-ID est enregistr�edans 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 ungroupe qui n'est pas dans le �chier active, cet article sera rejet�e et d�eplac�e dans legroupe junk 1. 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�efectueuxpour une raison quelconque sont d�eplac�es dans /var/spool/news/in.coming/bad, et unmessage 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 dece groupe, par le transport sp�eci��e pour chacun d'eux. Pour etre sur qu'il n'est pasenvoy�e vers un site qui l'aurait d�ej�a vu passer, le nom de chacun de ces sites estrecherch�e dans la ligne Path de l'en-tete : 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'ilsoit 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, lemessage 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 articleimm�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�erationde lots est ex�ecut�e par une entr�ee crontab 2, ce qui rassemble tous les articles dans unou plusieurs gros �chiers compress�es en option, et les envoie �a la commande rnews dusite distant.

La �gure 17.1 illustre le ux des News via relaynews : les articles peuvent etre relay�esdepuis le site local (d�enot�e par convention par le mot cl�e ME), par courrier vers unsite 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'estpas 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.

Page 286: Administration Reseau Sous Linux

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 sectionssuivantes :

sys Vous devrez sans doute modi�er la ligneME 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 enverrezdes articles.

Si vous etes un site UUCP isol�e en bout de cha�ne, il vous su�ra d'uneligne qui renvoie tous les articles g�en�er�es localement �a votre fournis-seur. En supposant que ce soit moria, votre �chier sys ressemblerasimplement �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'ilsa�chent la liste des forums accessibles.

Page 287: Administration Reseau Sous Linux

270 Chapitre 17. C News

mailname L'adresse �electronique de votre site, comme par exemple bibine.com.

whoami Le nom de votre site, pour le traitement des News. On y met le plussouvent le nom UUCP, par exemple gueuze.

explist Vous devrez �editer ce �chier pour qu'il corresponde �a vos besoinsd'expiration des messages. Son contenu d�epend �etroitement de laplace disque dont vous disposez.

Pour cr�eer une hi�erarchie initiale, r�ecup�erez les �chiers active et newsgroups d'unsite 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 �chieractive, puis rajoutez to.mon-site et to.fournisseur, ainsi que junk et control. Lesgroupes to.* sont utilis�es pour l'�echange de messages ihave/sendme, mais vous devezles cr�eer meme si vous ne comptez pas employer ce protocole. Ensuite, remplacez tousles num�eros d'articles contenus dans la deuxi�eme et la troisi�eme colonne du �chieractive 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 valeur000001, respectivement.

En�n, cr�eez le r�epertoire de spoule et les sous-r�epertoires utilis�es pour l'arriv�ee et led�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�epertoirenews/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 lecas, il vous su�ra de cr�eer un lien symbolique de /usr/spool/news vers /var/spool/news.

Vous etes maintenant �equip�e pour recevoir des News. Notez que vous n'aurez pasbesoin de cr�eer d'autres r�epertoires que ceux mentionn�es ci-dessus, C News s'occuperade le faire automatiquement lorsque des articles arriveront.

En particulier, cela se produit pour tous les groupes dans lesquels un article a �et�e cross-post�e. Aussi, au bout d'un moment, vous trouverez le spoule rempli de r�epertoires

Page 288: Administration Reseau Sous Linux

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, ouen lan�cant p�eriodiquement un shell-script qui supprime les r�epertoires vides �a partirde /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. Pard�efaut, il s'appelle usenet. Si vous utilisez ce nom (ce qui est conseill�e), vous devrezd�eclarer un alias qui enverra tout le courrier �a ce nom vers les bo�tes aux lettres despersonnes 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 �chiercrontab de l'utilisateur news, ainsi qu'�a chaque fois que vous aurez �a lancer un outild'administration �a la main. Il est donc pr�ef�erable d'installer un alias pour ne pas secompliquer la vie.

Il faudra aussi v�eri�er que 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�tradans la ligne From de l'article, et il ne faut pas qu'il y apparaisse n'importe quoi ; c'estune question de netiquette 3. Si vous utilisez d�ej�a le courrier �electronique, tout celaest probablement d�ej�a proprement con�gur�e.

17.3 Le �chier sys

Le �chier sys, situ�e dans /usr/lib/news, controle quelles hi�erarchies vous recevez etenvoyez 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 cesop�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 pourvotre propre site dans ce �chier sys, sinon vous ne recevrez jamaisaucun 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.

Page 289: Administration Reseau Sous Linux

272 Chapitre 17. C News

Le nom sp�ecial ME d�enote votre site. Cette entr�ee d�e�nit tous lesgroupes que vous comptez stocker localement. Les articles de groupesqui ne sont pas d�ecrits dans cette ligne seront plac�es dans junk.

Puisque C News compare site avec ceux contenus dans la lignePath des en-tetes d'articles, vous devez vous assurer que tout cor-respond bien. Certains mettent leur nom pleinement quali��e, ou unalias comme news.site.domaine. Pour �eviter que des articles enprovenance de tels sites ne leur soient inutilement r�eexp�edi�es, vousdevrez ajouter ces noms �a la liste d'exclusion, s�epar�es par des vir-gules.

Par exemple, pour l'entr�ee s'appliquant �a la machinemoria, le champsite contiendrait moria/moria.orcnet.org.

liste-groupes

Il s'agit d'une liste de souscription de groupes et hi�erarchies (dont lecaract�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), suiviefacultativement 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 parun 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, siliste-groupes contient :

!comp,comp.os.linux,comp.folklore.computers

Cela signi�era qu'aucun groupe appartenant �a la hi�erarchie comp nesera envoy�e �a ce site, sauf comp.folklore.computers et tous ceuxen dessous de comp.os.linux.

Pour lui envoyer toutes les News que vous recevez vous-meme, mettezsimplement all dans liste-groupes.

distributions

Ce champ, s�epar�e du pr�ec�edent par un slash (/) contient une listedes 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 pointd'exclamation, ou les d�esigner toutes par le mot all. Si vous omettezce champ distributions, cela d�enote implicitement all.

Par exemple, vous pouvez mettre comme liste de distributions quelquechose comme all,!local, pour �eviter d'envoyer les groupes �a usage localaux sites distants.

Il y a en principe au moins deux distributions : world, qui est souventcelle par d�efaut lorsque aucune n'est pr�ecis�ee, et local. Il peut y enavoir d'autres s'appliquant �a certaines r�egions, �etats, pays, d�eparte-

Page 290: Administration Reseau Sous Linux

17.3. Le �chier sys 273

ments, etc. En�n, il en existe deux sp�eci�ques �a C News : ce sontsendme et ihave, qu'il utilise pour le protocole sendme/ihave.

L'utilisation des distributions fait l'objet de nombreuses pol�emiques 4.Pour certains, quelques lecteurs de News cr�eent de (( fausses )) distri-butions en utilisant simplement le nom de la hi�erarchie (comp parexemple) 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 decette r�egion pour y revenir 5. 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 entreprises'�echappent d'un groupe local. Mais pour ce genre de cas, mieux vautcr�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 lots 6.

f Pratiquement identique �a F, mais permet �a C Newsde calculer la taille des lots �a partir, de mani�ere pluspr�ecise.

I Ce drapeau indique �a C News de produire une listed'articles pour l'utilisation du protocole d'�echangeihave/sendme. Il faut �egalement e�ectuer quelquesmodi�cations aux �chiers sys et batchparms dans cecas.

n Cr�ee des �chiers de lots pour les transferts NNTPavec des clients comme nntpxmit (voir le chapitre 18).Ces lots contiennent les noms des �chiers contenantles articles ainsi que leurs Message-ID.

L Indique �a C News de ne transmettre que les articlespost�es sur votre site. Ce drapeau peut etre suivi parun nombre d�ecimal n, qui permettra alors de ne pos-ter que les messages en provenance d'au plus n hopsde 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 plutot 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 meme 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 )).

Page 291: Administration Reseau Sous Linux

274 Chapitre 17. C News

le contenu du champ Path de l'en-tete.

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 articlelorsque 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 lespetits ux, sinon la charge sur chacun des deux syst�emes deviendraprohibitive.

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 surson entr�ee standard.

Le chemin de recherche des commandes indiqu�ees dans ce champest 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 nomscommencent par via ; nous les d�ecrirons bri�evement un peu plus loindans 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 cechamp, et non pas une commande. Si ce nom ne commence paspar 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�efautsera 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 tache, nous allons vous donner un exempleconcernant bibine.com, �a partir duquel vous pourrez recopier tout ce dont vous avezbesoin 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 [email protected]

Page 292: Administration Reseau Sous Linux

17.4. Le �chier active 275

ponderosa:comp.risks/all::rmail [email protected]

# 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 groupesconnus par votre site, ainsi que les articles actuellement accessibles. Vous n'aurezque tr�es rarement besoin d'y toucher, mais nous allons tout de meme expliquer soncontenu pour que vous compreniez bien son role. 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 premieret du dernier article actuellement disponibles dans ce groupe. S'il est vide, bas vautalors haut+1.

En�n disons que c'est ce que bas est cens�e faire, parce que, pour des raisons d'e�ca-cit�e, C News ne met jamais cette valeur �a jour. Ce ne serait pas un probl�eme s'il n'yavait pas certains lecteurs de News comptant sur ce champ pour v�eri�er s'ils peuventpurger des articles de leur base de donn�ees des �ls de discussions. Pour mettre �a jource champ bas, vous devrez par cons�equent ex�ecuter p�eriodiquement la commandeupdatemin (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 ilspeuvent 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 ducontenu des messages y �etant post�es.

Les articles re�cus pour ce groupe ne sont pas stock�es localement, maisils 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

Page 293: Administration Reseau Sous Linux

276 Chapitre 17. C News

enverra l'article au mod�erateur par courrier �electronique. L'adressedu 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 groupey 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 controle newgroup et rmgroup cr�eent ou suppriment un groupe dansla totalit�e de Usenet. N'envoyez jamais un tel message vous-meme ! Vous vous feriezha��r du monde entier. Toutes les instructions de cr�eation de groupe �a un tel niveausont 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, ladate de cr�eation, si celle-ci a �et�e faite sur un message de controle newgroup ou locale-ment, et le nom de la personne ayant cr�e�e ce groupe. Il sert aux programmes lecteursqui peuvent �eventuellement noti�er aux utilisateurs les nouveaux groupes r�ecemmentcr�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 meme pour Bnews,C News, and INN 7. 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 utilisela compression, c'est le �chier r�esultant qui est compress�e ; il est alors pr�ec�ed�e d'uneautre ligne, indiquant que les donn�ees qui suivent devront etre d�ecompact�ees. L'outilstandard 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 enutilisant 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.

Page 294: Administration Reseau Sous Linux

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�eresa�n de traiter les donn�ees de mani�ere appropri�ee. Certains sites utilisent le compacteurgzip, et indiquent alors zunbatch : C News ne reconna�t pas ces en-tetes 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 deslots. Il prend une liste d'articles dans le �chier site/togo, et constitue les archives enles r�epartissant dans un ou plusieurs lots. Il doit etre ex�ecut�e p�eriodiquement, au moinsune fois par heure, voire plus, en fonction du volume du tra�c. Son fonctionnementest control�e par le �chier batchparms situ�e dans /usr/lib/news, qui d�ecrit la taillemaximale autoris�ee pour chaque lot, et le transport �a utiliser pour les d�elivrer ; cecipour chaque site. Vous pouvez sp�eci�er ces param�etres soit par site, soit par desvaleurs par d�efaut qui seront prises en compte pour tous les syst�emes non mentionn�esexplicitement.

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. Siune entr�ee par d�efaut existe dans le �chier batchparms, tous les r�epertoires contenusdans /var/spool/news/out.going seront trait�es ; sinon ne seront pris en compte que lesentr�ees indiqu�ees, dans l'ordre o�u elles se trouvent dans batchparms. Notez que lorsde la recherche dans out.going, sendbatches ne consid�ere comme nom de site que lesr�epertoires ne contenant aucun point ou signes @ dans leur nom.

Vous trouverez probablement dans votre distribution un �chier batchparms tout pretcontenant une entr�ee par d�efaut raisonnable, aussi il y a des chances que vous n'ayezrien �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 togocorrespondant devra se trouver dans le r�epertoire out.going/togo, dans le spoule. Lemot 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 etcr�eera un lot ne contenant que cet article.

La valeur max correspond au nombre maximum de batches �a pr�eparer pour le transfertvers ce site. C'est tr�es utile lorsqu'un syst�eme doit etre indisponible pour une longuep�eriode, car il �evite de voir le spoule UUCP rempli par des milliers de lots en attented'etre transf�er�es.

C News d�etermine le nombre de lots en attente grace au script queulen, situ�e dansle r�epertoire /usr/lib/news/bin. Le paquetage newspak de Vince Skahan en contient

Page 295: Administration Reseau Sous Linux

278 Chapitre 17. C News

une version adapt�ee aux impl�ementations d'UUCP compatibles BNU. Si vous utilisezun autre style de r�epertoires de spoule, comme Taylor UUCP, vous devrez �ecrire unscript adapt�e 8.

Le champ outil d�esigne la commande utilis�ee pour produire un lot �a partir de la listed'articles contenue dans le �chier togo. Pour les ux standard, il s'agit normalementde 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 enun message de controle post�e dans le groupe to.site. Cette op�eration est r�ealis�ee parbatchih 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 compcun 9. Mais vous pouvez aussi indiquer un scriptappelant gzip (que vous r�edigerez vous-meme) ; vous devrez cependant vous mettred'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 pouvezsp�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 commencepar via. Le programme sendbatches leur passe le nom du site destinataire sur la lignede commandes. Si l'entr�ee dans batchparms n'est pas /default/, il d�erive ce nom duchamp site en prenant toute la partie pr�ec�edant un �eventuel point ou slash. S'il s'agitde l'entr�ee /default/, ce seront les noms des r�epertoires pr�esents dans out.going quiseront 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 versionsde uux pour �eviter qu'il retourne un message pour chaque article indiquant que letransfert s'est bien pass�e. Vous trouverez une liste compl�ete de ces transports dans lapage 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 sontdes 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�eestandard, et le lot r�ealis�e arrive sur la sortie standard, qui elle-meme est redirig�ee versle 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.

Page 296: Administration Reseau Sous Linux

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 prenaitune liste de groupes en arguments, ainsi que la date �a prendre en compte. Pour quedes hi�erarchies di��erentes aient des d�elais d'expiration di��erents, il fallait �ecrire unscript appelant expire s�epar�ement pour chacune d'elles. C News propose maintenantune solution bien meilleure : dans un �chier nomm�e explist, vous indiquez des groupeset des intervalles d'expiration. Une commande appel�ee doexpire est invoqu�ee tous lesjours par cron, et traite ces groupes en fonction de ce que vous avez indiqu�e danscette liste.

Il est parfois n�ecessaire de conserver les articles de certains groupes, meme apr�esqu'ils ont expir�e. Par exemple, vous pouvez vouloir conserver les programmes post�esdans comp.sources.unix. Cela s'appelle naturellement l'archivage ; explist permetde 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, auxquelscette 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�esignertous les groupes en dessous de comp.os, vous pouvez indiquer soit comp.os, soitcomp.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. Par exemple,pour supprimer la majorit�e de comp au bout de quatre jours, sauf les articles dugroupe comp.os.linux.announce que vous voudriez conserver une semaine, il voussu�t 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), oux (tous).

Le troisi�eme champ, jours, contient le nombre de jours au bout desquels les articlesexpireront s'ils ne se sont pas vu assigner une date d'expiration particuli�ere par le

Page 297: Administration Reseau Sous Linux

280 Chapitre 17. C News

champ Expires de l'en-tete. Notez que ce nombre de jours est compt�e �a partir del'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 combinaisonpouvant aller jusqu'�a trois nombres s�epar�es les uns des autres par un tiret. Le premierd�enotera le nombre de jours devant s'�ecouler avant que l'article ne soit consid�er�ecomme candidat �a l'expiration. Il est rare d'y mettre autre chose que z�ero. Le deuxi�emechamp contiendra le nombre de jours avant expiration, c'est le meme que celui quenous venons de d�ecrire plus haut. Le troisi�eme contiendra le nombre de jours aubout desquels l'article sera supprim�e de force, quel que soit le contenu du champExpires de son en-tete. Si l'on n'indique seulement que le nombre du milieu, les deuxautres 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 su�t d'y mettre un tiret. Sinon, vous pouvezutiliser 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 �adoexpire par l'option -a de sa ligne de commandes. Un r�epertoire destin�e �a l'archivagedoit 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 partirdu r�epertoire d'archivage, en cr�eant l'arborescence si n�ecessaire. Mais ce r�epertoired'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 lieud'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 deslignes du �chier history. Il est n�ecessaire, car les lignes de ce �chier ne seront passupprim�ees imm�ediatement lorsque les articles correspondants auront expir�e : celapermet de rejeter tout article d�ej�a expir�e qui viendrait �a se repr�esenter, en provenanced'un ux tr�es lent ou pour toute autre raison. Si vous n'avez qu'un fournisseur, vouspouvez choisir une valeur assez faible. Pour les r�eseaux UUCP, quinze jours sembleune valeur raisonnable ; �a vous de voir en fonction des d�elais obtenus dans votre casparticulier.

Voici ci-dessous un exemple de �chier explist contenant des intervalles d'expirationassez 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 -

Page 298: Administration Reseau Sous Linux

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 controle 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 votrelecteur de News tient compte du troisi�eme champ du �chier active, qui contient lenum�ero du premier article de chaque groupe. C News ne met jamais cette valeur �ajour. Si ce champ doit vraiment repr�esenter la situation r�eelle, vous devrez ex�ecuter unprogramme appel�e updatemiin apr�es chaque appel �a doexpire. (Dans de pr�ec�edentesversions, 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 expirer 10. Si ce �chier est endommag�e ou ne repr�esenteplus exactement la situation pour une raison quelconque, certains articles resteront�eternellement sur votre disque, car C News les aura litt�eralement oubli�es 11. Vouspouvez rem�edier �a la situation grace au script addmissing situ�e dans le r�epertoire/usr/lib/news/bin/maint, qui rajoutera tous les articles absents du �chier history, ouencore la commande mkhistory, qui reconstruira enti�erement un nouveau �chier toutneuf. N'oubliez pas de passer sous l'utilisateur news auparavant, sinon le �chier seraitinaccessible �a C News.

17.7 Fichiers divers

Il existe un certain nombre de �chiers controlant le comportement de C News, mais quine 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...

Page 299: Administration Reseau Sous Linux

282 Chapitre 17. C News

newsgroups C'est le compagnon du �chier active ; il contient une liste de chaquegroupe connu sur votre syst�eme, avec une br�eve description (sur uneligne) du groupe en question. Il est automatiquement mis �a jourlorsque C News re�coit un message de controle checknews.

localgroups Si vous avez cr�e�e des groupes locaux et que vous ne voulez pas queC News se plaigne chaque fois que vous recevez un message check-

news, indiquez leurs noms et descriptions dans ce �chier, de la mememani�ere que dans le �chier newsgroups.

mailpaths Ce �chier contient les adresses des mod�erateurs de chaque groupemod�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 versun 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 utilisezsmail ou sendmail, car ils comprennent l'adressage RFC 822.

L'entr�ee backbone est utilis�ee chaque fois qu'un utilisateur poste dansun 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 �achemin!alt-machin, en esp�erant que cette machine sera capable de letraiter. Pour trouver quel chemin utiliser, demandez aux administra-teurs du site qui vous fournit les News. En tout dernier ressort, vouspouvez mettre uunet.uu.net!%s.

distributions Il ne s'agit pas �a proprement parler d'un �chier de C News, il estutilis�e par certains programmes lecteurs et le d�emon nntpd. Il contientla liste des distributions reconnues par votre site, et une descriptiondes e�ets induits (ou esp�er�es...) Par exemple, celui de (( La bi�erevirtuelle )) 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

Page 300: Administration Reseau Sous Linux

17.8. Les messages de controle 283

M�e�ez-vous de ces distributions, �evitez-les. Lisez ou relisez ce qui estdit �a leur propos, page 272.

log Ce �chier contient toutes les traces des activit�es de C News. Il estpurg�e r�eguli�erement par newsdaily ; les copies des anciennes tracessont conserv�ees dans log.o, log.oo, etc.

errlog Il contient les enregistrements de tous les messages d'erreurs g�en�er�espar C News. Cela ne comprend pas les articles d�eplac�es dans junk. Ilest automatiquement envoy�e par courrier au newsmaster (usenet pard�efaut) par newsdaily s'il n'est pas vide au moment o�u cet utilitaireest 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�eret. 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 controle

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 decontrole. Ils sont reconnaissables par la pr�esence d'un champ Control dans l'en-tete,qui contient le nom de l'op�eration �a r�ealiser. Toutes ces op�erations sont ex�ecut�ees pardes 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 parC 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 �editantles 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'ilsaient 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 pard'autres personnes ; ils sont �a proscrire absolument, c'est un bogue impardonnable.

Page 301: Administration Reseau Sous Linux

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 endessous des hi�erarchies (( usuelles )) ne peuvent etre cr�e�es qu'apr�es une discussion etun vote qui ont lieu au niveau mondial. Tous les utilisateurs de Usenet sont concern�es.Les r�egles s'appliquant �a la hi�erarchie alt 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'envoyezjamais de messages de controle newgroup ou rmgroup vous-meme, �a moins que voussoyez 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 sitesd'un r�eseau synchronisent leurs �chiers active avec la r�ealit�e. Par exemple, certainsfournisseurs de service IP peuvent envoyer de tels messages �a tous leurs clients uti-lisant Usenet. Une fois par mois, un checkgroups (( o�ciel )) concernant toutes lesprincipales hi�erarchies mondiales est post�e dans comp.announce.newgroups parson mod�erateur. Toutefois, il y est plac�e comme un article ordinaire et non pas sousla forme d'un message de controle. Pour que l'op�eration de mise �a jour ait lieu, sauvezcet article dans un �chier (appelons-le /tmp/maj, par exemple), supprimez tout cequi pr�ec�ede le d�ebut du message lui-meme, et envoyez-le au shell-script checkgroupspar 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 serontpris en compte. L'ancien �chier sera sauv�e sous le nom de newsgroups.bac. Notez queposter un tel message localement fonctionnera rarement, car inews refuse des articlesaussi longs.

Si C News trouve des di��erences entre la liste contenue dans le message checkgroups etle �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 sortieressemble 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

Page 302: Administration Reseau Sous Linux

17.8. Les messages de controle 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 ; ledeuxi�eme vous donne les commandes n�ecessaires pour le faire ; et le troisi�eme est uneliste 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, ilpeut manquer quelques groupes voire des hi�erarchies enti�eres ; aussi vous devez faireattention �a ne pas supprimer des choses qu'il aurait fallu conserver. Si vous notezdans les groupes manquants, certains que vous aimeriez supporter sur votre site, vousdevrez 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'illes 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 unecha�ne de caract�eres indiquant la version du syst�eme de News utilis�e, et senduuname

Page 303: Administration Reseau Sous Linux

286 Chapitre 17. C News

renvoie la sortie de la commande uuname(1). C News est tr�es laconique lorsqu'on luidemande 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 parfaitementcertain qu'il ne sortira pas de votre r�eseau r�egional. Les r�eponses aux messages sendsyspeuvent g�en�erer un tra�c proprement gigantesque, et mettre beaucoup de sites UUCPen di�cult�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 articlessur un hote 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 cettem�ethode sur NNTP, c'est que les ressources n�ecessaires pour r�ecup�erer et lire lesarticles sont tr�es inf�erieures. Par contre, NNTP gagne sur tous les tableaux dans unr�eseau h�et�erog�ene o�u l'�equipement est tr�es vari�e, ou si les utilisateurs n'ont pas decomptes �equivalents sur la machine serveur.

Avec un montage NFS, les articles post�es sur un hote local doivent etre envoy�es surla machine centrale, car l'acc�es aux �chiers administratifs peut donner lieu �a descon 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 quin�ecessitera obligatoirement un envoi des articles �a poster sur le serveur qui aura lesdroits 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 messagedans le syst�eme de News. Cette commande e�ectue un certain nombre de tests surl'article, compl�ete l'en-tete, et recherche un �chier nomm�e server dans le r�epertoire

/usr/lib/news. Si ce �chier existe et contient le nom d'un hote di��erent de la machinelocale, inews est invoqu�e sur ce syst�eme par la commande rsh. Puisque le script inewsutilise certaines commandes et �chiers de con�guration de C News, il faudra avoirinstall�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 uncompte �equivalent sur le syst�eme serveur, c'est-�a-dire un compte o�u il peut acc�ederpar le r�eseau sans avoir besoin de donner son mot de passe.

V�eri�ez bien que le nom d'hote donn�e dans le �chier server correspond lettre pourlettre �a la sortie de la commande hostname(1) sur la machine serveur, sinon C Newsbouclera �a l'in�ni en essayant de d�elivrer l'article.

Page 304: Administration Reseau Sous Linux

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 sidi�cile qu'on pourrait le penser car ce syst�eme o�re une grande vari�et�e d'utilitairesde 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 letemps 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 employerdepuis tout autre compte peut rendre certains �chiers inaccessibles �a C News.

newsdaily Comme son nom l'indique 12, vous devez lancer cette commande unefois par jour. C'est un script tr�es important qui permet de conser-ver des �chiers de trace su�samment courts, v�eri�er toute anomaliecomme 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. Lesmessages 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�emesqui 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 meme signi�cation que le drapeau corres-pondant dans le �chier active, c'est-�a-dire que tout le monde peutposter (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'untout nouveau groupe arrive avant le message de controle destin�e �acr�eer le groupe en question.

delgroup Permet de supprimer un groupe, localement. Sa syntaxe est simple :

delgroup groupe

12: Dans une autre langue...

Page 305: Administration Reseau Sous Linux

288 Chapitre 17. C News

Vous devrez supprimer ensuite tous les articles qui resteront dans ler�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 scriptlorsque 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�eslors de l'arret du syst�eme, et referme puis extrait tout lot d'articleslaiss�e par les connexions NNTP qui se sont termin�ees au meme mo-ment.

newsrunning Celui-l�a se trouve dans le r�epertoire /usr/lib/news/bin/input et peutetre utilis�e pour invalider l'extraction des lots de News qui arrivent,par exemple pendant les heures de travail. Vous pouvez arreter cetraitement par :

/usr/lib/news/bin/input/newsrunning off

Il sera remis en service en mettant on au lieu de o�.

Page 306: Administration Reseau Sous Linux

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, protocolede transfert de News par r�eseau. Il ne s'agit pas d'un programme particulier, maisd'un standard Internet 1. Il est bas�e sur une connexion (g�en�eralement TCP) entre unclient situ�e �a n'importe quel endroit du r�eseau et un serveur fonctionnant sur un hotequi centralise le stockage des articles. La connexion permet au client et au serveurde n�egocier le transfert des articles de mani�ere interactive, sans pratiquement aucund�elai, ce qui contribue �a limiter le nombre de messages dupliqu�es. Alli�e �a la grandevitesse obtenue sur l'Internet, NNTP surpasse largement tout ce que l'on pouvaitobtenir 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 oudeux ; 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 desarticles. La di��erence entre envoyer et poster est simple : un article post�e peut avoirun en-tete incomplet que le serveur ach�evera de remplir, alors qu'un article envoy�e estun (( produit �ni ))

2. La r�ecup�eration des articles peut etre employ�ee pour transf�ererdes News aussi bien que pour la lecture par des interfaces conviviales, les Lecteursde News. NNTP est le protocole id�eal pour o�rir un acc�es Usenet �a de nombreusesmachines sur un r�eseau local, sans passer par toutes les complications induites par unmontage 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-tete : Nntp-Posting-Host, qui contient le nom de la machine sur laquelle se trouve ce client.

Page 307: Administration Reseau Sous Linux

290 Chapitre 18. Description du protocole NNTP

le (( pushing )) et le (( pulling )). Le pushing est pratiquement le meme 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'ilposs�ede d�ej�a cet article ou s'il d�esire qu'il lui soit envoy�e. Dans ce dernier cas, le clientenvoie 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 requete se fait par la commande NEWNEWS. �A partir de la liste deMessage-ID

re�cus, le client s�electionne ceux qu'il ne poss�ede pas encore, en les r�eclamant par lacommande ARTICLE, un par un.

Cette m�ethode pr�esente l'inconv�enient de demander au serveur un controle tr�es serr�edes groupes et distributions qu'il permet de transf�erer, pour chaque client. Par exemple,

il doit s'assurer qu'aucune information con�dentielle en provenance de groupes locauxne peut etre envoy�ee �a des machines non autoris�ees.

NNTP propose �egalement un certain nombre de commandes utilitaires destin�ees auxprogrammes lecteurs, leur permettant de r�ecup�erer s�epar�ement l'en-tete et le corps desarticles, ou meme uniquement certaines lignes de ces en-tetes. Ainsi, ces programmespeuvent se trouver sur n'importe quelle machine du r�eseau (de pr�ef�erence local), etacc�eder facilement �a tous les articles qui restent centralis�es sur un seul hote, ce quiest une excellente alternative au montage des r�epertoires de News par NFS, commeil 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'und'autre, par exemple) 3. Il existe une extension de NNTP permettant au serveur dedemander 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, plusconnu 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. Vouspouvez soit vous procurer le code source original et la compiler vous-meme, soit utili-ser le nntpd contenu dans le paquetage net-std pr�epar�e par Fred van Kempen. Aucuneversion 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 dupushing, ainsi qu'un remplacement de la commande inews. Ils sont pr�evus pour unenvironnement Bnews, mais avec quelques petites modi�cations, fonctionneront par-faitement avec C News. Toutefois, si vous comptez utiliser NNTP pour faire plusqu'o�rir un acc�es aux lecteurs de News sur votre serveur, l'impl�ementation de r�ef�e-

3: Le meme probl�eme se pose avec SMTP, le protocole de transfert du courrier �electronique.

Page 308: Administration Reseau Sous Linux

18.1. Installation du serveur NNTP 291

rence n'est plus vraiment une option. Par cons�equent, nous ne parlerons que du d�emonNNTP contenu dans le paquetage nntpd et nous laisserons les programmes clients decot�e.

Il existe �egalement un ensemble appel�e (( InterNet News )), ou INN, r�ealis�e par RichSalz. Il o�re �a la fois un transport NNTP et UUCP, et est pr�ef�erable pour les sitesimportants. En mati�ere de News par NNTP, il est sans comparaison avec nntpd, c'estvraiment lui qu'il faut choisir. Si vous voulez installer INN, consultez la documentationfournie avec son code source, ainsi que le document (( INN FAQ )) post�e r�eguli�erementdans 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 fonctionde la charge de la machine supportant les News. Il n'y a aucune version binairedisponible, 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�emarragedu syst�eme depuis le script rc.inet2, soit vous le con�gurez comme d�emon qui seraappel�e par inetd. Dans ce dernier cas, vous devrez, bien entendu, avoir une entr�eecomme 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 commecelle-ci dessus soit absente ou comment�ee dans inetd.conf. Dans un cas comme dansl'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 .tmpdans 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�es aux machines distantes,avec le format suivant :

site read|xfer|both|no post|no [!groupes interdits]

Page 309: Administration Reseau Sous Linux

292 Chapitre 18. Description du protocole NNTP

Si un client se connecte au port NNTP, nntpd va tenter d'obtenir son nom pleinementquali��e �a partir de son adresse IP par une recherche inverse. Le nom et l'adresse dece client sont compar�es avec les champs site de chaque entr�ee, dans l'ordre o�u ellesappara�ssent dans le �chier. Si une entr�ee correspond exactement, elle s'applique ; sielle ne correspond que partiellement, elle s'appliquera s'il n'y a pas, plus loin, uneautre entr�ee correspondant mieux. Le champ site peut etre sp�eci��e sous l'une desformes suivantes :

nom de machine

C'est le nom pleinement quali��e d'un hote. S'il est identique au nomcanonique de la machine connect�ee, l'entr�ee s'applique, et toutes lessuivantes sont ignor�ees.

adresse IP Il s'agit d'une adresse IP en notation sur 4 octets. Si l'adresse duclient 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 ledomaine auquel appartient l'hote 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. Sila 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 enpremier, car toute correspondance �eventuelle pourra ainsi etre remplac�ee par unesuivante, 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. Letroisi�eme champ autorise le client �a poster des articles, c'est-�a-dire �a d�elivrer desmessages comportant des en-tetes incomplets qui seront compl�et�es par le serveur. Sile 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 desvirgules, 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

Page 310: Administration Reseau Sous Linux

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 hotes 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 tantqu'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 NNTPappel�ee AUTHINFO. Par cette commande, le client transmet un nom d'utilisateuret un mot de passe au serveur NNTP. Le d�emon nntpd les validera en les comparantavec les donn�ees du �chier /etc/passwd, et en v�eri�ant que cet utilisateur appartientbien au groupe nntp.

L'impl�ementation courante de l'authenti�cation NNTP n'est qu'exp�erimentale est n'apar cons�equent pas �et�e faite de mani�ere tr�es portable. En particulier, elle ne fonctionnequ'avec des �chiers /etc/passwd traditionnels ; les mots de passe shadow ne sont pasreconnus.

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 parune 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 leprogramme (�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 chemind'acc�es correct est bien indiqu�e, et que C News et nntpd l'attendent sous le memeformat. C News utilise les fonctions de hachage de dbm pour y acc�eder ; mais il existeplusieurs impl�ementations incompatibles entre elles de cette biblioth�eque. Si C Newsa �et�e compil�e avec une version di��erente de celle se trouvant dans votre biblioth�equeC standard, il vous faudra recompiler nntpd dans le meme environnement.

Le symptome typique lorsque nntpd et C News ne sont pas d'accord sur le format dela base de donn�ees se pr�esente sous forme de messages d'erreurs dans les traces dusyst�eme, indiquant que nntpd n'a pas pu l'ouvrir correctement, ou que des messages

Page 311: Administration Reseau Sous Linux

294 Chapitre 18. Description du protocole NNTP

dupliqu�es arrivent par NNTP. Un bon test consiste �a prendre un message de votrespoule, vous connecter par telnet sur le port nntp, et le proposer comme nous lemontrons dans l'exemple ci-dessous. Bien sur, vous devrez remplacer <msg@id> parle 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 )) vousindique 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 raisonquelconque. Terminez la conversation en tapant Ctrl-D. Vous pourrez rechercher cequi ne va pas en inspectant les �chiers de trace ; nntpd enregistre ces messages sousla (( facilit�e )) daemon de syslog. Une biblioth�eque dbm incompatible se manifesteelle-meme en indiquant que la fonction dbminit a �echou�e.

Page 312: Administration Reseau Sous Linux

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 secompilent parfaitement sous Linux ou ont fait l'objet d'un portage. Ici, nous d�ecrironsla con�guration de base de trois d'entre eux qui comptent parmi les plus populaires :tin, trn et nn.

Le lecteur le plus e�cace 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'a�chage pour scruterles groupes que l'utilisateur fr�equente, un plan d'ensemble de tous les articles danschaque groupe, etc.

Au niveau groupe, pratiquement tous a�chent une liste d'articles, montrant leurssujets et leurs auteurs. Dans les forums les plus importants, il est souvent di�cile desuivre la trace des articles relatifs les uns aux autres, bien qu'il soit possible d'identi�erdes 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. Deplus, le Message-ID de l'article original appara�t dans la ligne References de l'en-tete. 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 discussions 1. L'une destaches les plus di�ciles lors de l'�elaboration d'un lecteur de News consiste �a trouverune m�ethode e�cace pour ce classement, car le temps requis est proportionnel aucarr�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.

Page 313: Administration Reseau Sous Linux

296 Chapitre 19. Les lecteurs de News

Nous n'entrerons pas plus dans le d�etail des interfaces utilisateur. Tous les lecteursdisponibles 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 taches administratives permettant de faire fonc-tionner ces programmes correctement ; ce ne sera bien sur qu'un tr�es bref aper�cu, vousdevrez ensuite vous r�ef�erer �a la documentation fournie avec le lecteur que vous aurezchoisi.

19.1 Con�guration de tin

Tin est le lecteur le plus simple et universel concernant les �ls de discussion. Il estl'�uvre de Iain Lea et est tr�es proche d'un ancien programme nomm�e tass (�ecrit parRich Skrenta). Il commence le classement des articles lorsque l'utilisateur s�electionneun groupe, et il est tr�es rapide (sauf si cette op�eration a lieu dans certaines conditionssous NNTP).

Sur une machine 486DX50, il lui faut environ 30 secondes pour trier 1 000 articles, s'illes lit depuis le disque. Par NNTP sur un serveur charg�e, ce temps peut aller jusqu'�aplus de 5 minutes 2. Vous pouvez aller encore plus vite en mettant r�eguli�erement �ajour 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, aussivous devrez en conserver une seule copie dans un endroit central. Il vous faudra alorspasser tin setuid news, ou quelque autre compte non privil�egi�e 3. Dans ce cas, leprogramme �ecrira toutes ses donn�ees dans le �chier /var/spool/news/.index. Pourtout 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�e 4.

Une meilleure solution consiste �a installer le d�emon d'indexation tind qui met �a jourr�eguli�erement les �chiers d'index. Il n'est pas fourni dans les distributions de Linux,vous devrez donc le compiler vous-meme. Si vous etes sur un r�eseau comportant unserveur de News central, vous pouvez aussi installer tind sur le serveur, et tous lesclients r�ecup�ereront leurs �chiers d'index par NNTP. Cela n�ecessite une extension �a ceprotocole ; les patches impl�ementant cette modi�cation dans nntpd sont fournis dansles sources de tin 5.

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

Page 314: Administration Reseau Sous Linux

19.2. Con�guration de trn 297

La version de tin incluse dans certaines distributions de Linux est compil�ee sans aucunsupport 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 tentede se connecter au serveur NNTP sp�eci��e dans le �chier /etc/nntpserver ou dans lavariable 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 detrn 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 quidoit etre ex�ecut�e �a intervalles r�eguliers par cron.

Si ce programme ne tourne pas, vous pourrez bien sur acc�eder quand meme auxarticles, mais comme ils ne seront pas tri�es par discussions, vous aurez dans le menude s�election des listes �enormes de sujets tous semblables comme (( O�u se trouve ladocumentation sur Linux ? )) au lieu de ne voir appara�tre qu'un seul �l que vouspourriez 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 selonle meme 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 etrec, sauf rec.games.go (les gens jouant �a ce jeu n'ont pas grand-chose �a dire). Apr�escela, il su�ra de l'appeler sans aucune option pour qu'il traite tous les nouveauxarticles 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 lesmatins, ou plus souvent si vous en avez besoin. Les sites qui ont un tra�c importantpeuvent utiliser ce programme en mode d�emon. Lorsqu'il est lanc�e au d�emarrage dusyst�eme avec l'option -d, il s'installe en arri�ere-plan, et teste toutes les 10 minutes side nouveaux articles sont arriv�es, et les traitera le cas �ech�eant. Pour l'utiliser dans cemode, 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 e�cace. Vous

en trouverez une description dans les sources du serveur INN (entre autres), et sans doute dans une

prochaine �edition de ce livre...

Page 315: Administration Reseau Sous Linux

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'ilssont cr�e�es ; -v met en service les messages de trace, qui s'enregistreront dans le �chiermt.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�esdes �chiers d'index. Par d�efaut, seuls les articles dont le num�ero est inf�erieur �a celui dupremier qui est accessible sera supprim�e 6. Les articles dont le num�ero est sup�erieur �ace 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-tete), peuvent etre supprim�esen passant l'option -e �amthreads ; elle valide un mode d'expiration plus (( intelligent )).Lorsqu'il fonctionne en d�emon, cette option le fera passer automatiquement dans cemode 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 dontle but essentiel est de ne pas lire les News. Son nom signi�e (( No News )) (pas denouvelles), et sa devise est : (( Pas de nouvelles, bonnes nouvelles. ))

Pour arriver �a ce but si ambitieux, nn est fourni avec tout un assortiment d'outilsde 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'administrationnomm�e nnadmin, qui o�re toutes ces op�erations dans un mode interactif. Il est tr�essimple d'emploi, aussi nous ne nous �etendrons pas plus sur ces aspects du logiciel etpasserons 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�emarragedu 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 dansvotre �chier active.

Vous pouvez aussi ne pas le faire fonctionner en d�emon, mais l'appeler r�eguli�erementpar 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 desvirgules. Au lieu du groupe symbolique all, c'est un argument vide comme "" quidoit 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.

Page 316: Administration Reseau Sous Linux

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 quicorrespond, gagnera toujours. Donc, si nous avions mis !rec.games.go apr�es rec, tousles articles de ce groupe auraient �et�e quand meme trait�es.

Le lecteur nn propose plusieurs m�ethodes pour supprimer de ses index les articlesexpir�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 sontplus disponibles. C'est le mode op�eratoire par d�efaut, obtenu en appelant nnmasteravec l'option -E. Elle est assez rapide, sauf par NNTP.

La deuxi�eme m�ethode fonctionne exactement comme l'expiration par d�efaut demthreads,en ce sens qu'elle ne supprime que les entr�ees qui se r�ef�erent �a des articles dont lenum�ero est inf�erieur �a celui du premier article dans le �chier active. On la valide parl'option -e.

En�n, une troisi�eme strat�egie est possible, qui reconstruit enti�erement une nouvellebase, 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 meme fa�con par l'option -F. Toutefois,si nnmaster fonctionne en mode d�emon, vous devez le tuer (par l'option -k) avantque l'expiration ne se fasse, puis le relancer ; par cons�equent, la commande correctepour 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 descompilations, r�esum�es, ou autres, consultez la page de manuel de nnmaster.

Ce programme nnmaster n�ecessite un �chier nomm�eGROUPS, situ�e dans le r�epertoire/usr/local/lib/nn. S'il n'existe pas, il sera automatiquement cr�e�e. Il contient pourchaque groupe, une ligne commen�cant par le nom de ce forum, suivi �eventuellementpar une date, et des drapeaux. Vous pouvez �editer ces drapeaux pour valider uncomportement particulier sur le groupe en question, mais vous ne devez pas changerl'ordre dans lequel ces groupes apparaissent dans le �chier 7. La description de cesdrapeaux se trouve dans la page de manuel de nnmaster.

7: Car leur ordre doit correspondre �a celui des entr�ees du �chier binaire MASTER.

Page 317: Administration Reseau Sous Linux

300 Chapitre 19. Les lecteurs de News

Page 318: Administration Reseau Sous Linux

301

Annexe A

Cable port parall�ele pour

PLIP

Pour r�ealiser un cable reliant les ports imprimante parall�ele de deux PC (cable Null-Printer), vous devez vous procurer deux connecteurs males 25 broches (appel�es DB-25) et du cable comportant au moins 11 conducteurs. La longueur maximale possibleest d'environ 15 m�etres.

Si vous regardez attentivement un des connecteurs, vous devriez pouvoir lire desnum�eros (prenez une loupe le cas �ech�eant) �a la base de chaque broche. Vu du cot�esoudures, 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 cable blind�e, le blindagedoit etre soud�e sur le bo�tier m�etallique de l'un des connecteurs, et un seul.

Page 319: Administration Reseau Sous Linux

302 Annexe A. Cable port parall�ele pour PLIP

Page 320: Administration Reseau Sous Linux

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 UUCPisol�e, connect�e �a un r�eseau local. Ils sont bas�es sur les exemples fournis dans la distribu-tion source de smail-3.1.28. Bien que nous ayons tent�e d'expliquer tr�es succinctementcomment ces �chiers fonctionnent, nous devons vous pr�evenir que la lecture du manuelde smail(8) est indispensable ; vous y trouverez tout le d�etail. Une fois que vous aurezcompris le principe et l'organisation de ces �chiers, ce manuel vous para�tra bien plusclair.

Le premier �chier que nous vous pr�esentons, routers, d�ecrit un ensemble de routeurspour smail. Lorsqu'il doit d�elivrer un message �a une adresse donn�ee, le programmepasse 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'hote de destinationdans 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 nomunique 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'attributsglobaux, comme le pilote utilis�e, et d'attributs priv�es qui ne sont compris que par cepilote 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 �chierspathalias 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 descartes UUCP. Avec smail, vous pouvez alors sp�eci�er deux routeurs dans le �chierrouters, tous deux utilisant le pilote pathalias qui recherchera les noms dans une base

Page 321: Administration Reseau Sous Linux

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'hote 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 hotes de *.bibine.com

#

# base de donn�ees pathalias pour routage hors de notre domaine

monde_paths:

driver=pathalias, # cherche l'hote 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. Dansnotre cas, le message sera d�elivr�e par le transport uux. Ces transports sont d�e�nisdans 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 sivous sp�eci�ez un �chier de m�ethodes �a la place de l'attribut transports. Les �chiersde m�ethodes o�rent une base de correspondance entre des noms de machines et destransports. 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 interrogela biblioth�eque resolver. Sur un site Internet, il faudra en utiliser un autre, sachantg�erer les enregistrements MX du DNS. Par cons�equent, vous devrez supprimer lescommentaires 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 voudrezsans doute que le courrier pour ces sites passe quand meme par UUCP. Pour �eviterque le pilote inet hosts ne reconnaisse ces hotes, vous devrez les d�eclarer dans le �chierpaths/force. Il s'agit d'une autre base de donn�ees de type pathalias qui est consult�eeavant que smail n'interroge le resolver.

# Un exemple de fichier /usr/lib/smail/routers

#

Page 322: Administration Reseau Sous Linux

305

# force - force le transport par UUCP pour certaines machines,

# meme si elles figurent dans votre /etc/hosts.

force:

driver=pathalias, # cherche l'hote 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 hote = nous-memes

# 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'hote 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 hotes de *.bibine.com

#

# base de donn�ees pathalias pour routage hors de notre domaine

Page 323: Administration Reseau Sous Linux

306 Annexe B. Exemples de �chiers de con�guration pour smail

monde_paths:

driver=pathalias, # cherche l'hote 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 meme mani�ere que le �chier routers, avec une liste d'entr�eesqui d�e�nissent chaque directeur. Les directeurs ne d�elivrent pas de messages, ils nefont 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 lenom 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 labo�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 nombrede tests pour v�eri�er que les �chiers qu'ils ont �a utiliser sont �ables et int�egres. Lesadresses obtenues d'une mani�ere douteuse (par exemple, depuis un �chier aliases qui ades permissions d'�ecriture pour tout le monde) sont not�ees comme non sures. Certainspilotes de transport �elimineront de telles adresses, celui qui d�elivre un message dansun �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�elivrerun message dans la bo�te aux lettres de dugenou, l'adresse sera bien sur associ�ee �al'utilisateur dugenou. D'autres adresses, comme celles obtenues �a partir du �chieraliases, 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

Page 324: Administration Reseau Sous Linux

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 sure

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 sure

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 sure

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

Page 325: Administration Reseau Sous Linux

308 Annexe B. Exemples de �chiers de con�guration pour smail

nobody, # utiliser le compte nobody si adresse peu sure

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��epar le routeur ou le directeur correspondant. Ces transports sont d�e�nis dans le �chiertransports. L�a encore, les d�e�nitions sont compos�ees d'un ensemble d'attributs globauxet priv�es.

L'option la plus importante d�e�nie par chaque entr�ee est le pilote qui g�ere ce transport,par exemple le pilote pipe, qui appelle la commande sp�eci��ee dans l'attribut cmd.�A cot�e de cela, un transport peut utiliser un certain nombre d'attributs globauxqui e�ectuent diverses transformations sur l'en-tete, et �eventuellement le corps dumessage. L'attribut return path, par exemple, demandera au transport d'ins�erer unchamp return path dans l'en-tete du courrier. L'attribut unix from hack permet derajouter 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:

Page 326: Administration Reseau Sous Linux

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

Page 327: Administration Reseau Sous Linux

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

Page 328: Administration Reseau Sous Linux

311

Annexe C

Licence Publique G�en�erale

GNU

Vous trouverez ci-dessous la Licence Publique G�en�erale GNU (GPL ou copyleft), quiprot�ege Linux. Elle est reproduite ici pour pr�eciser le statut des droits d'auteurs deLinux, qui a parfois donn�e lieu �a certaines confusions ; Linux n'est pas un partagiciel etn'est pas dans le domaine public. Les droits du noyau appartiennent �a Linus Torvaldsdepuis 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 laLicence 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 estautoris�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 oupour supprimer toute libert�e de l'utilisateur. A l'inverse, la Licence Publique G�en�eraleest 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. CetteLicence Publique G�en�erale s'applique �a la plupart des programmes de la Free SoftwareFoundation, ainsi qu'�a tout autre programme dont l'auteur l'aura d�ecid�e (d'autreslogiciels de la Free Software Foundation sont couverts pour leur part par la LicencePublique G�en�erale pour Biblioth�eques GNU). Vous pouvez aussi utiliser les termesde cette Licence pour vos propres programmes, si vous le d�esirez.

Page 329: Administration Reseau Sous Linux

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 pourvous 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'enutiliser des �el�ements dans de nouveaux programmes libres, en sachant que vous y etesautoris�es.

A�n de prot�eger vos droits, nous avons du introduire des restrictions interdisant �a qui-conque de vous refuser ces droits ou de vous demander d'y renoncer. Ces restrictionsvous imposenten retour certaines obligations si vous distribuez ou si vous modi�ezdes copies de programmes prot�eg�es par la Licence.

Ainsi, si vous distribuez des copies d'un tel programme, gratuitement ou non, vousdevez transmettre aux destinataires tous les droits que vous poss�edez ; vous devez vousassurer 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�egeons vos droits de deux fa�cons : d'abord par le copyright du logiciel, ensuite

par la remise de cette Licence qui vous autorise l�egalement �a copier, distribuer et/oumodi�er le logiciel.

En outre, pour la protection de chaque auteur et pour la notre, nous voulons nous

assurer que chacun comprenne bien qu'il n'existe aucune garantie pour ce programmelibre. 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 del'original, a�n que les probl�emes introduits par d'autres personnes n'entachent pas lar�eputation de l'auteur du logiciel original.

En�n, tout programme libre est sans cesse menac�e par des d�epots de licences. Nousvoulons �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�epot�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 travailpeut etre distribu�e selon les termes de cette Licence. Le terme (( programme )) d�esignesoit le programme lui meme, soit n'importe quel travail qui en est d�eriv�e selon laloi : c'est-�a-dire un ouvrage contenant le programme ou une partie de celui-ci, que cesoit �a l'identique ou avec des modi�cations, et/ou traduit dans une autre langue (latraduction est consid�er�ee comme une modi�cation). Chaque personne �a qui s'appliquela Licence Publique G�en�erale sera d�esign�ee par le terme "Vous".

Page 330: Administration Reseau Sous Linux

C.2. Stipulations et conditions pour copie, distribution et modi�cation313

Les activit�es autres que la copie, la distribution et la modi�cation ne sont pas couvertespar la pr�esente Licence et sortent de son cadre. Il n'y a aucune limitation �a l'utilisationdu programme, et les donn�ees issues de celui-ci ne sont couvertes que si leur contenuconstitue un travail bas�e sur le logiciel (travail ind�ependant ou r�ealis�e en lan�cant leprogramme). Tout d�epend de ce que le programme est cens�e faire.

Article 1. Vous pouvez copier et distribuer des copies conformes du code sourcedu 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 unelimitation de garantie, �a condition de ne pas modi�er ou omettretoutes 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 duprogramme 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 oupartie de celui-ci, ou d'un travail bas�e sur ce programme, et copier etdistribuer ces modi�cations selon les termes de l'article 1, �a conditionde vous conformez �egalement aux conditions suivantes :

a) Vous devez rajouter aux �chiers modi��es l'indication tr�es clairedes 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 partiedu 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 a�che,lorsqu'il est lanc�e normalement, le copyright appropri�e en in-diquant bien la limitation de garantie (ou la garantie que vousvous engagez �a fournir vous-meme), qu'il stipule que tout utili-sateur peut librement redistribuer le programme les conditionsde la Licence Publique G�en�erale GNU, et qu'il montre �a toututilisateur comment lire une copie de celle-ci. (Exception : si leprogramme original est interactif mais n'a�che pas normale-ment un tel message, tout travail d�eriv�e de ce programme nesera pas non plus oblig�e de l'a�cher).

Toutes ces conditions s'appliquent �a l'ensemble des modi�cations. Sides �el�ements identi�ables de ce travail ne sont pas d�eriv�es du pro-gramme, et peuvent etre consid�er�es raisonnablement comme ind�epen-dants, la pr�esente Licence ne s'applique pas �a ces �el�ements lorsquevous les distribuez seuls. Mais si vous distribuez ces memes �el�ements

Page 331: Administration Reseau Sous Linux

314 Annexe C. Licence Publique G�en�erale GNU

comme partie d'un ensemble coh�erent dont le reste est bas�e sur unprogramme soumis �a la Licence, ils lui sont �egalement soumis, et laLicence 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 droitssur un travail enti�erement �ecrit par vous, mais plutot de s'octroyerun droit de controle sur la libre distribution de tout travail d�eriv�e oucollectif 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), quiserait e�ectu�ee sur un support de stockage ou de distribution, ne faitpas tomber cet autre travail sous le controle de la Licence.

Article 3. Vous pouvez copier et distribuer le programme (ou tout travail d�eriv�eselon les d�e�nitions donn�ees �a l'article 2) sous forme de code objetou ex�ecutable, selon les termes des articles 1 et 2, �a condition derespecter les clauses suivantes :

a) Fournir le code source complet du programme, sous une formelisible par un ordinateur, et selon les termes des articles 1 et2, 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 copiesous forme lisible par un ordinateur du code source correspon-dant, pour un tarif qui ne doit pas etre sup�erieur au cout de lacopie, 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 peutetre obtenu (cette alternative n'est autoris�ee que dans le casd'une distribution non commerciale, et uniquement si vous avezre�cu le programme sous forme de code objet ou ex�ecutable avecl'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 programme ex�e-cutable, de meme que tout �chier de d�e�nition associ�e, ainsi que lesscripts utilis�es pour e�ectuer la compilation et l'installation du pro-gramme ex�ecutable. Toutefois, une exception particuli�ere concernetout ce qui a trait �a l'environnement standard de d�eveloppement dusyst�eme d'exploitation utilis�e (source ou binaire) comme les com-pilateurs, biblioth�eques, noyau, etc., sauf si ces �el�ements sont aussidi�us�es avec le programme ex�ecutable.

Si la distribution de l'ex�ecutable ou du code objet consiste �a o�rir

Page 332: Administration Reseau Sous Linux

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 sourceau meme endroit est consid�er�e comme une distribution de ce codesource, meme 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 leprogramme d'une autre mani�ere que l'autorise la Licence PubliqueG�en�erale. Toute tentative de copier, modi�er, c�eder, d�eposer, ou dis-tribuer le programme di��eremment, annulera imm�ediatement vosdroits d'utilisation du programme sous cette Licence. Toutefois, lestiers 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'utilisationtant 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'avezpas sign�ee. Cependant, rien d'autre ne vous autorise �a modi�er oudistribuer 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 cetteLicence. En cons�equence, le simple fait de modi�er ou distribuer leprogramme (ou tout travail bas�e sur lui), indique implicitement votreacceptation 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, auxtermes et conditions de la Licence. Vous n'avez pas le droit d'imposerde 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, celane vous d�egage pas pour autant des obligations li�ees �a celle-ci : sivous ne pouvez pas concilier vos obligations l�egales ou autres avec lesstipulations de la Licence, vous ne devez pas distribuer le programme.

Si une partie quelconque de cet article est invalid�ee ou inapplicablepour 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 desdroits ou des dispositions l�egales, ou de contester leur validit�e ; ellen'est l�a que pour prot�eger l'int�egrit�e du syst�eme de distribution dulogiciel libre. De nombreuses personnes ont g�en�ereusement contribu�e�a la large gamme de programmes distribu�ee de cette fa�con en toutecon�ance ; il appartient �a chaque auteur/donateur de d�ecider de dif-fuser ses programmes selon le syst�eme de son choix.

Page 333: Administration Reseau Sous Linux

316 Annexe C. Licence Publique G�en�erale GNU

Article 8. Si la distribution et/ou l'utilisation du programme est limit�ee, danscertains pays, par des brevets ou des droits sur des interfaces, le d�e-tenteur original des droits qui place le programme sous la LicencePublique G�en�erale peut ajouter explicitement une clause de limita-tion g�eographique excluant ces pays. Dans ce cas, cette clause devientune 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 dansle meme esprit que la pr�esente version, mais pourront di��erer danscertains d�etails, destin�es �a clari�er de nouveaux probl�emes.

Chaque version poss�ede un num�ero bien distinct. Si le programmepr�ecise un num�ero de version de cette Licence et (( toute versionult�erieure )), vous avez le choix de suivre les termes et conditionsde cette version ou de toute autre version plus r�ecente publi�ee par laFree Software Foundation. Si le programme ne sp�eci�e aucun num�erode version, vous pouvez alors choisir n'importe quelle version publi�eepar la Free Software Foundation.

Article 10. Si vous d�esirez incorporer des �el�ements du programme dans d'autresprogrammes libres dont les conditions de distribution di��erent, vousdevez �ecrire �a l'auteur pour lui en demander la permission. Pour lesprogrammes 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 notreprogramme ou de ses d�eriv�es, et par celui de promouvoir le partageet 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 cout 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

Page 334: Administration Reseau Sous Linux

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 possiblepar le public, la meilleure m�ethode est d'en faire un logiciel libre que tout le mondepourra 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�erableet plus sur 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 )) etindiquer o�u se trouvent toutes les autres indications.

hune ligne pour donner le nom du programme et donner une id�ee de cequ'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 selonles termes de la Licence Publique G�en�erale GNU telle qu'elle est publi�eepar la Free Software Foundation ; soit la version 2 de cette licence, soit (�avous 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 decommercialisation 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 avoir re�cu une copie de la Licence Publique G�en�erale GNU avecce 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 a�cher un court avertissement comme celui-cilors 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'.

Page 335: Administration Reseau Sous Linux

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 a�cher les parties appropri�ees de laLicence Publique G�en�erale GNU. Bien entendu, vous pouvez appeler les commandescomme bon vous semble : options dans un menu, options accessibles par le clic d'unesouris, 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 auxdroits qu'il pourrait avoir sur le programme. Par exemple :

...(employeur, �ecole...) d�eclare par la pr�esente ne pas revendiquer de droitssur 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 deslogiciels d�etenteurs de droits. Si votre programme est une fonction de biblioth�eque,vous pouvez consid�erer qu'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 noncelle-ci.

Page 336: Administration Reseau Sous Linux

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 Usenetcomp.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'administrationsyst�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 proposd'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 parTina 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 del'information, �education et standards.

Pour en savoir plus sur l'association USENIX et son groupe technique SAGE, t�el�epho-nez au 510-528-8649 aux USA, ou �ecrivez �a l'adresse �electronique o�[email protected] recevoir des informations par courrier �electronique, faites un �nger sur l'adresse

Page 337: Administration Reseau Sous Linux

320 Annexe D. SAGE: La guilde des administrateurs syst�eme

[email protected]. La cotisation annuelle pour etre membre de SAGE ne coute que25 $ (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 ; desr�eductions sur les entr�ees aux conf�erences et symposiums, ainsi que sur certains achats,publications ou autres services.

Page 338: Administration Reseau Sous Linux

Glossaire 321

Glossaire

Dans le domaine des r�eseaux, il est toujours tr�es di�cile de se souvenir de la signi-�cation de tous les termes et abr�eviations rencontr�es, surtout si l'on ne ma�trise pasla langue anglaise. Voici une liste de ceux fr�equemment utilis�es dans ce guide, suivisd'une courte explication.

ACU Automatic Call Unit, Unit�e d'appel automatique. Un modem, en g�e-n�eral 1.

ARP Adress Resolution Protocole, protocole de r�esolution d'adresses utilis�epour 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'ancetre de l'Internet d'aujourd'hui ; r�eseau exp�erimental fond�e parle Defense Advanced Research Project Agency (DARPA).

Assigned NumbersLe titre d'un RFC publi�e r�eguli�erement qui liste les nombres d�e�nisau niveau mondial pour di��erentes choses ayant trait �a TCP/IP. Parexemple, il contient la liste de tous les ports ou services bien connuscomme 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 chemind'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!bert d�enote un chemin vers le site bert, passant dansl'ordre par foo, bar et ernie.

1: Alternative : un gamin avec un Minitel.

Page 339: Administration Reseau Sous Linux

322 Glossaire

BBS Bulletin Board System. Serveur informatique fonctionnant en g�en�eralsur un ordinateur personnel, permettant le t�el�echargement de �chierset 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'ellefut 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 )) delui 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 (( HoneyDanBerUUCP )), ou HDB, appellation d�eriv�ee du nom des auteurs : P. Ho-neyman, D.A. Novitz et B.E. Redman.

broadcast networkR�eseau de di�usion. Un r�eseau qui autorise une station �a adresser undatagramme 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�eseauxUUCP. 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-tetes 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-direqui n'est pas invoqu�e manuellement mais attend en tache de fond quequelque chose se passe, que quelque condition se produise. Ce termefut introduit au d�epart sous CTSS (Compatible Time Sharing Sys-tem), un ancetre du syst�eme MULTICS, lui-meme parent d'UNIX.

d�emon de routageDans les grands r�eseaux, les changements de topologie peuvent etredi�ciles �a suivre manuellement, aussi existe-t-il di��erents programmes

Page 340: Administration Reseau Sous Linux

Glossaire 323

permettant de distribuer les informations de routage courantes �atoutes 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�ess'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 standardsd�e�nis par l'IEEE. Le r�eseau Ethernet utilise un seul cable, tr�es sou-vent coaxial, pour connecter un certain nombre d'hotes, et permetdes transferts allant jusqu'�a 10 Mbps. Le protocole Ethernet d�e�nitla mani�ere dont ces hotes communiquent entre eux sur ce cable 2.

FQDN Fully Quali�ed Domain Name, nom pleinement quali��e. Un nomd'hote avec un nom de domaine au bout, qui est alors un index validedans la base de donn�ees DNS.

FTP File Transfer Protocol. Le plus c�el�ebre service de transfert de �chiersest bas�e sur ce protocole et porte le meme 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 laFree Software Foundation dont le but est de fournir un ensemblecoh�erent d'outils UNIX pouvant etre utilis�es et copi�es gratuitement.Tous les logiciels GNU sont couverts par une licence sp�eciale, connuesous le nom de GPL (Gnu Public Licence), ou (( Copyleft )). Elle estreproduite dans la section C

HoneyDanBer Nom d'une vari�et�e de UUCP, HDB en abr�eg�e. Voir aussi BNU.

hote En g�en�eral, un n�ud du r�eseau : quelque chose qui est capable derecevoir 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 meme

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.

Page 341: Administration Reseau Sous Linux

324 Glossaire

en font partie aussi.

ICMP Internet Control Message Protocol. Un protocole r�eseau utilis�e par IPpour renvoyer des informations d'erreur aux hotes �emetteurs, entreautres choses.

IEEE Institute of Electrical and Eletronics Engineers. Une autre organisa-tion de standardisation. Au point de vue UNIX, leur r�ealisation laplus importante est sans conteste les sp�eci�cations POSIX qui d�e-�nissent les aspects des syst�emes UNIX, des interfaces des appelssyst�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 aussile 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 Services Digital Network. Nouvelle technologie de t�el�ecom-munications utilisant des techniques num�eriques au lieu de circuitsanalogiques. 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 desprogrammes charg�es de d�elivrer le courrier �electronique, comme smailet sendmail.

MUA Mail User Agent. Ce sont les interfaces utilisateur permettant la saisieconviviale du courrier �electronique, comme elm. Les messages sontensuite transmis au MTU pour etre rout�es et d�elivr�es.

MX Mail Exchanger, �echangeur de courrier. Un type d'enregistrementDNS utilis�e pour indiquer qu'un hote sert de passerelle pour le cour-rier d'un domaine.

NFS Network File System. Un protocole r�eseau standard et une suitede programmes permettant d'acc�eder aux donn�ees de disques durs

Page 342: Administration Reseau Sous Linux

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 departager des �chiers de con�guration comme celui des mots de passeentre plusieurs hotes. 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 canoniqueLe premier nom d'une machine dans le DNS. C'est le seul nom auquelest associ�e un enregistrement de type A, et c'est celui qui est renvoy�epar 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 bitsest appel�e octet. Il est pr�ef�er�e �a byte, car il existe sur ce r�eseau, desmachines 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 IPpar une liaison parall�ele, comme le port imprimante du PC.

port, TCP ou UDPLes 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 portsidenti�ent de mani�ere unique les deux bouts d'une connexion TCP.

portmapper Le portmapper s'interpose entre les num�eros de programmes utilis�espour l'identi�cation RPC des di��erents serveurs RPC individuels, etles 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 IPou IPX sur une connexion point-�a-point. En plus d'etre largementutilis�e sur des lignes s�erie (modem), PPP peut aussi etre employ�epar-dessus ISDN.

Page 343: Administration Reseau Sous Linux

326 Glossaire

RARP Reverse Address Resolution Protocol. Il permet aux hotes d'un r�eseaude 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 ene�ectuant la recherche de l'adresse dans le domaine in-addr.arpa.

r�eseau �a commutation de paquetsUne vari�et�e de r�eseaux qui o�rent le transfert instantan�e des donn�eesen les mettant toutes dans de petits paquets, qui sont transport�esindividuellement vers leur destination. Ils n�ecessitent des connexionspermanentes ou semi-permanentes.

r�eseaux �a stockage interm�ediaireIls transf�erent les donn�ees sous forme de �chiers entiers, et n'utili-sent pas de connexion permanentes. Les hotes se connectent les unsaux autres �a certains moments, et transf�erent toutes les donn�ees enune fois. Ils n�ecessitent un stockage interm�ediaire jusqu'�a ce qu'uneconnexion soit �etablie.

resolver Biblioth�eque responsable de la correspondance entre les noms d'hoteset leurs adresses IP.

resource recordC'est l'unit�e d'information de la base de donn�ees DNS, que l'onabr�ege en RR. Chaque enregistrement se voit associer un type etune classe, par exemple ceux faisant correspondre un nom de ma-chine �a une adresse IP sont de type A (pour adresse), et de la classeIN (pour protocole Internet).

RFC Request For Comments. S�eries de documents d�ecrivant les standardsInternet.

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'hotes qu'une information doit traverser, depuis la machineoriginale jusqu'�a celle de destination. Trouver une route appropri�ees'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 hote distant.

RR Abr�eviation de resource record, les enregistrements DNS.

Page 344: Administration Reseau Sous Linux

Glossaire 327

RS-232 Le standard le plus courant d'interfaces s�erie.

RTS/CTS Le nom commun d�esignant le controle de ux mat�eriel e�ectu�e pardeux p�eriph�eriques communiquant sur une liaison s�erie RS-232. Lenom 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�edans VMS et Unix BSD 4.3 pour se r�epandre sur tout l'Internet.Plusieurs (( erreurs )) dans le programme le faisaient se multiplier sanslimites, et par cons�equent mettre hors service de grandes portions del'Internet. RTM sont les initiales de l'auteur (Robert T. Morris), qu'ilavait laiss�ees dans le programme.

site Un ensemble d'hotes qui, vu de l'ext�erieur, se comporte pratique-ment comme un seul n�ud du r�eseau. Par exemple, du point de vueInternet, l'universit�e Groucho Marx est un site, malgr�e la complexit�ede son r�eseau interne.

SLIP Serial Line IP. Protocole permettant l'�echange de paquets IP par uneligne s�erie. Voir aussi CSLIP.

SMTP Simple Mail Transfer Protocol. Protocole destin�e �a transf�erer ducourrier �electronique sur les connexions TCP, mais peut aussi etreutilis�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 UUCPTr�es ancienne impl�ementation de UUCP.

services bien connusOn 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

Page 345: Administration Reseau Sous Linux

328 Glossaire

tous les services qui se sont vu attribuer un num�ero de port o�cieldans 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, laplupart des utilitaires NIS ont conserv�e des noms commen�cant parle pr�e�xe yp. On ne va pas contre l'histoire...

Page 346: Administration Reseau Sous Linux

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 enjeu. 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, quirendent parfois sa lecture di�cile. Mais c'est probablement uninconv�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 deconnectivit�e IP, et le type de connexion Internet. Il vous aidera �ad�eterminer vos besoins r�eels et le prix qui en r�esultera, en fonctiondes 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 serveurde noms. Il explique tout le d�etail du fonctionnement du DNS etdonne des exemples qui rendent compr�ehensibles les options de

Page 347: Administration Reseau Sous Linux

330 Livres

BIND les plus obscures. Sa lecture est agr�eable et il pourra vousapprendre 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. Ild�ecrit l'installation et les principales taches d'administration, et

pr�esente un bon nombre d'applications du courrier �electronique aumultim�edia. C'est un ouvrage de base, �a poss�eder si vous utilisezLinux. Disponible en version anglaise ou fran�caise.

[Comer88] Douglas R. Comer: Internetworking with TCP/IP: Principles,

Protocols, and Architecture. Prentice-Hall International, 1991. ISBN0-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 introductionaux di��erentes distributions de Linux, et un guide d'installationet 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 laVersion 2 que de l'impl�ementation BNU. Il vous aidera �a installervotre site UUCP, en vous donnant de nombreux trucs et astuceset des solutions �a beaucoup de probl�emes. Il fait vraiment le tour

Page 348: Administration Reseau Sous Linux

Livres 331

du sujet, et vous d�etaillera les subtiles di��erences existant entreles di��erentes versions de UUCP. La seconde partie du livre estconsacr�ee �a Usenet et aux programmes relatifs aux News. Il traitede la con�guration de B News (version 2.11) et C News, et destravaux 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 couvreen d�etail l'utilisation de NIS (Network Information System) etNFS (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'Reillyand 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 su�tpas, procurez-vous cet ouvrage. Il traite de tout ce qui concernele r�eseau, depuis l'obtention d'une adresse IP jusqu'au d�epannagede votre installation, en passant par la s�ecurit�e. Il est centr�e surTCP/IP : con�guration des interfaces, mise en place des routages,r�esolution de noms. Il comprend une description des possibilit�eso�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.

Page 349: Administration Reseau Sous Linux

332 Livres

L'annexe contient une r�ef�erence compl�ete sur gated et named, etune description de la con�guration de sendmail.

[Stevens90] Richard W. Stevens: UNIX Network Programming. Prentice-HallInternational, 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 meme temps, vous apprendra unequantit�e de choses passionnantes sur les protocoles Internet 3.

[Spaf93] Gene Spa�ord et Simson Gar�nkel: Practical UNIX Security. O'Reillyand Associates, 1992. ISBN 0-937175-72-2.

C'est un livre que toute personne ayant �a g�erer un syst�eme surun r�eseau se doit de poss�eder. Il traite de tout ce qui concernela s�ecurit�e, tant au point de vue logiciel que mat�eriel. Bien quevous deviez vous e�orcer de s�ecuriser toutes les parties de votresyst�eme, les explications sur la s�ecurit�e des r�eseaux constituent,dans notre contexte, la partie la plus importante. En dehors desprogrammes classiques comme telnet, rlogin, etc., NFS et NIS,il aborde �egalement Kerberos, Secure RPC, et l'usage des portescoupe-feu (�rewalls) permettant de prot�eger votre r�eseau de touteattaque 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 toutesles instructions sur leur utilisation et une liste des sites les plusconnus.

[Kehoe92] Brendan P. Kehoe: Zen and the Art of the Internet. .

(( Zen )) fut le premier guide consacr�e �a l'Internet, pr�esentant auxnovices 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.

Page 350: Administration Reseau Sous Linux

Les (( HOWTO )) 333

de l'Internet. C'est un volume de 100 pages qui couvre des sujetsaussi vari�es que le courrier �electronique, les News Usenet et le verInternet. Il est disponible en t�el�echargement par FTP anonymesur 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 documentsdisponibles en t�el�echargement expliquant en d�etail certaines parties de la con�gurationou de l'utilisation de Linux. Par exemple, il en existe un traitant de l'installationdu syst�eme (Installation-HOWTO), un autre d�ecrivant comment mettre en place lecourrier �electronique (Mail-HOWTO), etc. Ces documents sont g�en�eralement bienplus complets que les FAQ 4.

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 tourd'un sujet particulier, et sont tr�es souvent remis �a jour pour re �eter l'�etat actuel dud�eveloppement de Linux.

Ils peuvent etre t�el�echarg�es sur 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 estdisponible 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 sitertfm.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 )).

Page 351: Administration Reseau Sous Linux

334 Index des documents HOWTO

Index des documents HOWTO

Voici la liste des documents disponibles.

{ Linux Busmouse HOWTO, par [email protected] (Mike Battersby). In-

formations sur les souris type PS/2 dans un syst�eme Linux.

{ Linux CDROM HOWTO, par [email protected] (Je� Tranter). Informa-

tions sur les CD-ROM compatibles avec Linux.

{ Linux DOSEMU HOWTO, par [email protected] (Michael E. Dei-

sher). HOWTO concernant l'�emulateur MS-DOS sous Linux appel�e DOSEMU.

{ Linux Distribution HOWTO, par [email protected] (Matt Welsh). Liste des

services commerciaux et vendeurs par correspondance.

{ Linux Ethernet HOWTO, par Paul Gortmaker <[email protected]>.

Informations sur les cartes Ethernet compatibles avec Linux.

{ Linux Ftape HOWTO, par [email protected] (responsable du ftape-HOWTO). In-

formations sur les syst�emes de sauvegarde type oppy-tape compatibles avec Linux.

{ Linux HOWTO Index, par [email protected] (Matt Welsh). Liste des docu-

ments HOWTO disponibles concernant le syst�eme Linux.

{ Linux Hardware Compatibility HOWTO, par [email protected] (Ed Carp). Liste

des p�eriph�eriques compatibles fonctionnant sous Linux.

{ Linux Installation HOWTO, par [email protected] (Matt Welsh). Comment

r�ecup�erer et installer un syst�eme sous Linux.

{ Linux JE-HOWTO, par Yasuhiro Yamazaki <[email protected]>.

Informations concernant JE, outils pour faire parler Linux en japonais.

{ Linux Keystroke HOWTO, par Zenon Fortuna ([email protected]). Comment

se concocter des raccourcis clavier sous Linux.

{ Linux MGR HOWTO, par [email protected] (Vincent Broman). Informations

concernant l'interface graphique MGR sous Linux.

{ Linux Electronic Mail HOWTO, par [email protected] (Vince Skahan). In-

formations sur le courrier �electronique sous Linux (serveur et client).

{ Linux NET-2 HOWTO, par [email protected] (Terry Dawson). Comment

con�gurer proprement le r�eseau TCP/IP, SLIP, PLIP et PPP sous Linux.

{ Linux News HOWTO, par [email protected] (Vince Skahan). Informations

sur les serveurs et lecteurs de News USENET sous Linux.

{ Linux PCI-HOWTO, Michael Will<[email protected]>.

Informations sur la compatibilit�e des machines �a bus PCI avec Linux.

{ Linux Printing HOWTO, par [email protected] (Grant Taylor). Comment faire

fonctionner l'impression sous Linux.

{ Linux SCSI HOWTO, par Drew Eckhardt <[email protected]>. In-

formations sur les cartes controleurs SCSI compatibles avec Linux.

{ Linux Serial HOWTO, par [email protected] (Greg Hankins). Informations sur

l'utilisation des ports s�erie et des logiciels de communication.

Page 352: Administration Reseau Sous Linux

Les RFC 335

{ Linux Sound HOWTO, par [email protected] (Je� Tranter). Les cartes

sonores et logiciels adapt�es sous Linux.

{ Linux Term HOWTO, par Bill Reynolds <[email protected]>. Comment uti-

liser le protocole de communication (( term )) sous Linux.

{ Linux Tips HOWTO, par Vince Reed <[email protected]>. Trucs et astuces en tous

genres sous Linux.

{ Linux UUCP HOWTO, par [email protected] (Vince Skahan). Informations

sur les logiciels UUCP sous Linux.

{ Linux XFree86 HOWTO, par [email protected] (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 nombreuxautres sites de par le monde. Pour obtenir un RFC par courrier �electronique, en-voyez un message �a l'adresse [email protected], en mettant comme sujet sendRFC-num�ero.TXT.

rfc-1597 Address Allocation for Private Internets. Ce RFC liste les adresses IPque les r�eseaux priv�es peuvent librement utiliser sans qu'ils aientbesoin 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�erosde ports standard que les serveurs TCP et UDP �ecoutent, et lesprotocoles utilis�es dans les en-tetes 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-tetes TCP/IP en CSLIP et PPP. Un document �a lire !

rfc-1033 Domain Administrators Operations Guide, Lottor, M. Avec ses deuxcompagnons RFC 1034 et RFC 1035, il constitue la r�ef�erence sur leDNS.

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�ecritle routage du courrier sur l'Internet. �A lire pour tout savoir sur les

Page 353: Administration Reseau Sous Linux

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. Lad�e�nition du protocole NNTP, couramment utilis�e pour le transportdes 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 liaisonss�eries.

rfc-1057 RPC: Remote Procedure Call Protocol Speci�cation: Version 2, SunMicrosystems, Inc. Sp�eci�cations de l'encodage utilis�e pour les RPC(appels de proc�edures distantes), utilis�ees entre autres pour NFS etNIS.

rfc-1058 Routing Information Protocol, Hedrick, C.L. Description du proto-cole RIP, qui est destin�e �a l'�echange dynamique d'informations deroutages sur les r�eseaux locaux ou de moyenne importance.

rfc-1535 A Security Problem and Proposed Correction with Widely DeployedDNS Software, E. Gavron. Ce RFC d�ecrit un probl�eme de s�ecurit�eavec la liste de recherche par d�efaut utilis�ee par d'anciennes versionsde la biblioth�eque resolver.

rfc-821 Simple Mail Transfer Protocol, Postel, J.B. Description du protocoleSMTP, destin�e au transport du courrier �electronique sur TCP/IP.

rfc-1036 Standard for the Interchange of USENET messages, Adams, R., andHorton, M.R. D�ecrit le format des messages Usenet, et la fa�con dontils sont �echang�es sur l'Internet et sur les r�eseaux UUCP. Une r�evisionde ce RFC, qui sera beaucoup plus pr�ecise et moins tol�erante vis-�a-vis des mauvaises impl�ementations constat�ees sur certains logicielsapplicatifs, 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 acommenc�e. Qui a dit que les h�eros du r�eseau resteront inconnus ?

Page 354: Administration Reseau Sous Linux

Index

| A |

A (enregistrement DNS), 94acc�es

autorisation, 105, 112, 164�chiers distants, 162NNTP, 291, 293PPP, 124

restriction, 16, 126, 134, 165, 291,293

UUCP, 188{194adresse

bang, 208, 210broadcast, 21choix (IP), 62courrier, 208{209de di�usion, 21, 69, 76de routage, 208enregistrement DNS, 94Ethernet, 7Ethernet et IP, 10hybride, 208IP, 10loopback, 21nom de machine UUCP, 178

n�egociation sous PPP, 115, 120,126

r�esolution, 21route-addr, 208trouver le nom d'hote, 36

adresse de di�usion, 76adresses IP priv�ees, 62a�chage

con�guration des interfaces, 75con�guration UUCP, 179connexions actives, 79statistiques sur interface, 79

surnoms cartes NIS, 145table de routage, 78table de routage IP, 71tables ARP, 80

aliascourrier, 233et C News, 272nom de machine, 34, 94

alias, 233Allman, Eric, 203amd, 166appel de proc�edure distante, voir RPCARP, 21{22

a�cher les tables, 80mise en service, 77proxy, 73, 81, 121

ARPANET, 5Assembleur de paquets/d�esassembleur,

8assignation des adresses IP, 62atteindre un hote, 68, 70authenti�cation

sous NNTP, 293sous PPP, 113, 124{128sous UUCP, 192

authoritative name server, 34, 36

auto-IRQ, 50automonteur, 166AX.25, 8, 47

| B |

Barber, Stan, 290batch, voir lotsbaud, 55BBS, 53Becker, Donald, 47

337

Page 355: Administration Reseau Sous Linux

338 INDEX

Berkeley Internet Name Domain, 83BIND, 83, 88{100Biro, Ross, 13bit par seconde, 55bi�ere virtuelle, 61BNC, 6BNU, voir UUCP, HDBbo�te aux lettres, 232BOOTP, 22bo�te aux lettres

montage par NFS, 221BSMTP, 207

| C |

C News, 261, 267{288active (�chier), 267, 270{271, 275{

276alias des noms de machine, 272archivage, 279compression des lots, 278cr�eation con�guration initiale, 270�echange de news, 272, 274envoi de News, 274, 276{279exclusion de sites, 272expiration, 279{281�chiers de trace, 283groupes mod�er�es, 282history (�chier), 267, 281ihave/sendme, 273, 278limiter les groupes, 272, 282liste des groupes, 275, 281lots, 268, 273, 274, 276{279mise �a jour �chier active, 284

newsmaster, 271param�etres des lots, 277{279relaynews, 267

r�eseau, 286rnews, 274r�eception des news, 267{268, 271r�epertoire de spoule, 267support de NNTP, 273, 293sys (�chier), 269, 271{275togo (�chier), 274usenet, 271UUCP, 268, 278

cache (option BIND), 91caract�eres nationaux dans elm, 216cartes, Usenet, 211, 214CHAP, 113, 124, 126{127chargen, 132chat, 117{119choix

adresses IP, 62cartes NIS, 151domaine NIS, 146nom de machine UUCP, 178

clients diskless, 22CNAME (enregistrement DNS), 94, 95coaxial, 6

collision, Ethernet, 7Collyer, Geo�, 261communication, programmes, 53compression d'en-tetes Van Jacobson,

102, 114compression de paquets TCP/IP, 102,

114

con�gurationadresses IP, 62C News, 268{288C News sur un r�eseau, 286courrier par r�eseau local, 221{224courrier UUCP, 220dip, 104

DNS sur SLIP/PPP, 101domaine NIS, 146, 150domaine par d�efaut, 86elm, 215{217�equipement r�eseau, 39{52

Ethernet, 43, 47{51, 69interface loopback, 67

interfaces r�eseau, 66IPX, 46lecteur de News, 295les commandes en r, 139{141News Usenet, 268{288NFS, 44NIS, 143{157

NNTP, 289{294nom de domaine, 62nom de machine, 61

Page 356: Administration Reseau Sous Linux

INDEX 339

noyau, 43passerelle courrier, 222passerelle IP, 72PLIP, 43, 51, 72ports s�erie, 57{58PPP, 43, 74, 113{129r�esolution de noms, 65, 83{100

sendmail, 237{260serveur de noms, 88{100serveur de noms cache seulement,

101

serveur SLIP, 111services r�eseau, 131SLIP, 43, 74, 101{112smail, voir smailutilisation serveur de noms, 86

UUCP, 169{201con�guration manuelle (Ethernet), 49con�guration manuelle (PLIP), 51

connecteur BNC, 6, 47connexions, a�chage, 79controle de ux, mat�eriel, 56, 57, 115courrier, 203

adresse bang, 208, 210adresse de routage, 208alias, 233cartes, 211, 214

centralisation, 209, 212, 213d�emon, 219diriger dans un �chier, 231distribution, 207en-tetes, 204�chier paths, 211, 213{215forcer le transport UUCP, 257

format des adresses, 208{209format des messages, 204multim�edia, 203par lots, 207par UUCP, 207passer �a une commande, 231passerelle, 209postmaster, 227

queue, 219, 226{227rejet, 227, 242renvoi, 232, 233

routage, 209{213entre Internet et UUCP, 209Internet, 209par domaine, 212, 213r�eseaux UUCP, 210smart host, 211

routage par domaine, 209route par d�efaut, 211route-addr, 208saisie, 207site invisible, 221sur r�eseau, 221

courrier �electronique, 203Cox, Alan, 13cr�eation

cartes NIS, 148sous-domaines, 32sous-r�eseaux, 36, 63zones DNS, 37

CSLIP, 10, 102, 103, 111, 114

| D |

D-Link, 47daemon, 131Davies, David C., 47daytime, 132DDI, 14d�eboguage

base de donn�ees DNS, 100con�guration PPP, 119con�guration UUCP, 173

d�el�egationsous-domaines DNS, 32, 36sous-r�eseau IP, 24

d�emon, voir daemon/dev/cua*, 55{56/dev/modem, 56/dev/ttyS*, 55{56device driver interface, voir DDIdialogue

PPP, 117SLIP, 107UUCP, 177, 181

dip, 104{112diphosts, 111

Page 357: Administration Reseau Sous Linux

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

requete, 32

requetes 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 |

�echangecourrier, 207news, 262, 263

Ekwall, Bj�rn, 47elm, 215{217

jeux de caract�eres nationaux, 216email, voir courrier�emulateurs de terminaux, 53ERAU, voir UARTEriksson, Peter, 144espace de nommage (DNS), 30eth0 (interface Ethernet), 69Ethernet, 6{7

adresse, 7, 21autod�etection des cartes, 49{51cablage, 47collision, 7con�guration, 69con�guration manuelle, 49et adresse IP, 10�n, 6, 47installation, 47mode global, 77pilotes Becker, 47via port parall�ele, 47

�eviter les boucles de courrier, 227exporter un volume NFS, 164exports, 164

| F |

FDDI, 7�chier hosts, 65

�chier networks, 65�chier paths, 213{215�chier paths, 211�chiers de verrouillage, 56

et PPP, 116et UUCP, 177

FidoNet, 53�nger, 133�rewall, 104Flintstone, Fred, 1forwarding

IP, 8, 44

Page 358: Administration Reseau Sous Linux

INDEX 341

UUCP, 3fourniture, News, 263FQDN, 30fstab, 60, 162FTP, trouver les sources de Linux, 14,

61

| G |

gated, 27, 73, 122g�en�erer un �chier paths, 213gestion centralis�ee du courrier, 212, 213gestion de courrier centralis�ee, 209getty, 191GNU, licence publique g�en�erale, 311{

318Gortmaker, Paul, 48group.bygid, 153group.byname, 153

| H |

ham radio, 8Hankins, Greg, 53HDB, voir UUCP, HDBHDLC, 113HoneyDanBer, voir UUCP, HDBhost, 1host.conf, 84, 144, 156hostcvt, 100hosts, 65, 144

conversion en �chiers BIND, 100hosts.byaddr, 144hosts.byname, 144, 152hosts.equiv, 139hote, 1HOWTO

Ethernet, 48Serial, 53UUCP, 170

| I |

ICMP, 28Port Unreachable, 28redirection, 28

IDA, voir sendmail, IDAifcon�g, 66, 74

IMAP, 222inetd, 131, 138, 224inetd.conf, 132{134inews, 267initialisation du r�eseau, 59INN, 262, 291, 296installation

binaires r�eseau, 60interconnexion de r�eseaux, 8, 24, 71interface, 19, 39, 41, 46

con�guration, 66D-Link DE-600, 47dummy, 74Ethernet, 47, 69loopback, 46, 67

masque r�eseau, 23, 63, 69, 76netmask, 23, 76PLIP, 47, 72PPP, 47, 74, 116SLIP, 47, 74statistiques, 79

interface dummy, 74internationalisation de elm, 216

Internet, 5et internet, 8routage du courrier, 209

s'y connecter, 101, 113, 115Internet Control Message Protocol, 28InterNet News (INN), 262invalider ARP, 77

IP, 8{10tinygrams, 45adresse, 10

assignation, 62et nom de machine, 29, 36n�egociation sous PPP, 115, 120,126

priv�ee, 62adresse de di�usion, 69, 76adresse et nom d'hote, 10adresses, 20{21adresses multicast, 77

appel t�el�ephonique, 101, 113con�guration des interfaces, 66Control Protocol, 114, 119

Page 359: Administration Reseau Sous Linux

342 INDEX

forwarding, 8, 44interface, 41masque r�eseau, 23, 63, 69, 76m�etrique, 27MTU, 76multicast, 77m�etrique, 76netmask, 23, 76Network Control Protocol (PPP),

114passerelle, 8, 44, 71, 72port parall�ele, voir PLIPprotocoles de routage, 27r�eseaux, 20, 22, 36routage, 22{28, 45, 71, 72routage dynamique, 27

route par d�efaut, 21, 72routing, 8sous-r�eseau, 23{24, 36, 45, 71, 72sur ligne s�erie, voir SLIP, 101, 113table de routage, 25, 71, 78

IPCP, voir IP, Control ProtocolIPX, 46IRQ, 41, 50ISDN, 47ISO-8859-1, 216

| J |

jeux de caract�eres dans elm, 216junk (newsgroup), 268

| K |

Karr, Ronald S., 203Kempen, Fred van, 5, 13

| L |

LAN, 4Lapsley, Phil, 290Latin-1 (jeu de caract�eres), 216LCP, voir Link Control Protocol (PPP)lecteur de News

cr�eation des index, 296{298lecteurs de News

con�guration, 295�ls de discussions, 295, 296

nn, 298tass, 296tin, 296trn, 297

Les Pierrafeu, 1liaison point-�a-point, 72, 74, 76, 81, 113ligne s�erie

protection de caract�eres, 122lilo, 49Link Control Protocol (PPP), 113lmail, 207lo (interface loopback), 67localhost, 67loopback

adresse, 21interface, 67

lotsde courrier, 207de News, 265, 276{279

| M |

mail, voir courrierempecher le transport UUCP, 258

maintenance, syst�eme, 15Marx, Groucho, 5mat�eriel

communication s�erie, 53{58controle de ux, 56, 57, 115r�eseau, 39{52

message d'erreur portmapper failure, 156message d'erreurNetwork Unreachable,

68metamail, 217m�etrique, routage, voir routage, m�etriquemgetty, 191modem, vitesse, 55montage

automatique, 166d'un volume NFS, 162lecture seule, 165syst�eme de �chiers proc, 60

mots de passeet sessions distantes, 139pour tout le r�eseau, 153{155

mountd, 164

Page 360: Administration Reseau Sous Linux

INDEX 343

MRU, 123mthreads, 297MTU, 75, 76, 82multim�edia, 203MX (enregistrement DNS), 95, 209

| N |

Nagle, algorithme, 45named, 83, 88{100named.boot, 88{91NCP, voir Network Control ProtocolsNet-1, 13Net-2d, 13Net-2Debugged, 13Net-2e, 14, 61Net-3, 14, 61Net-BSD, 14, 61netstat, 77{80Network Control Protocols, 114news, 261{266

ajouter un groupe, 284archivage des articles, 279article, 262distribution, 265, 267distributions, 272�echange, 262{266expiration, 299expiration des articles, 266, 298feed, 263�chier active, 266, 267follow-up, 295forums, 262fourniture, 262{266groupes, 262history (�chier), 265, 267

ihave/sendme, 265lecteur, voir lecteurs de Newslimiter les groupes, 265lots, 265, 268, 276message ID, 265message-ID, 267messages de controle, 283cancel, 283checkgroups, 284newgroup, 284

rmgroup, 284sendsys, 285senduuname, 285version, 285

mise �a jour �chier active, 284newsmaster, 271NNTP, 265nntpd, 289

pulling, 265, 289pushing, 265, 289r�eception, 271spoule, 266suppression vieux articles, 266supprimer un groupe, 284tricher, 290Usenet, 262

version C, voir C Newsnewsmaster, 271NFS, 159{167

automonteur, 166d�epassement de temps, 163exporter un volume, 164exports, 164limitations, 160montage d'un volume, 162

montage en dur, 163

monter un volume, 160r�eduire la taille des blocs, 162serveur, 160, 164utilisateurs et groupes, 164, 166volume en lecture seule, 165

nfsd, 160, 164NIS, 143{157

bases de donn�ees, 144carte, 144{145, 147cartes passwd, 153{156client, 147{148, 150{157code traditionnel, 156cr�eation des cartes, 148domaine, 146{147, 150et le resolver, 84et mots de passe shadow, 155

localiser le serveur, 146s�ecurit�e, 146, 149, 156serveur, 145{150

Page 361: Administration Reseau Sous Linux

344 INDEX

surnom, 145NIS+, 147nn, 298NNTP, 261, 273, 289nntp access, 291nntpd, 290Noll, Curt Landon, 203nom canonique, 34, 94nom d'utilisateur, 271nom de domaine, 30{32

d�efaut, 86NIS et DNS, 62

nom de machineadresse correspondante, 29alias, 94ambigu, 210assignation, 61canonique, 34, 94d�etecter si pas quali��e, 235et nom de domaine, 30obtenir d'apr�es l'adresse, 36quali��e, 30recherche, 32, 96r�esolution, 29, 65, 83, 143, 156UUCP, 178

notation sur 4 quatre octets, 10nslookup, 96{100nsswitch.conf, 151{153num�eros de protocoles, 136NYS, 144{157

| O |

obtenir le code source, 14, 61

| P |

packet-radio, 21PAD, 8pages jaunes, voir NISPAP, 113, 124, 127{128partage de �chiers, 159passer un courrier �a une commande,

231passerelle, 8, 24{25

con�guration, 72courrier, 209

IP, 44, 71passwd, 144

real user names, 271passwd.byname, 153passwd.byuid, 153pathalias, 211, 214{215PC/TCP, compatibilit�e, 45

piloteD-Link, 47Ethernet, 47ISDN, 47PLIP, 51PPP, 52, 114SLIP, 52

pilote, s�erie, 53{58

ping, 68PLIP, 51, 72

con�guration manuelle, 51routage, 81

plip1 (interface PLIP), 72POP, 222port, voir r�eseau, port

num�eros, 12

port parall�eleEthernet, 47IP, 51

port s�eriecontrole de ux mat�eriel, 56, 57�chier p�eriph�erique, 55vitesse, 55

portmap, 138portmapper, d�emon, 138PPP, 10, 74, 101, 113{129

adresses IP, 120assignation dynamique des adresses,

120async map, 122authenti�cation, 124{128compression de donn�ees, 114, 123d�eboguage, 119d�emon, 114encodage caract�eres de controle, 122

et adresses IP, 115�chiers d'options, 116�chiers de verrouillage, 116

Page 362: Administration Reseau Sous Linux

INDEX 345

MRU, 123pilote, 114proxy ARP, 121routage, 81, 121{122route par d�efaut, 116script de connexion, 117{119s�ecurit�e, 124serveur, 128utiliser CHAP, 124, 126{127utiliser PAP, 124, 127{128

ppp0 (interface PPP), 74, 116pppd, 114{129.ppprc, 116primaire (option BIND), 90/proc/net, 60programmes de communication, 53promiscuous, voir Ethernet, mode glo-

balprotocole, 2

AX.25, 8, 47CSLIP, 10Ethernet, 6IP, voir IPIPX, 46, 47NNTP, 289PPP, 10SLIP, 10TCP, 10UDP, 11UUCP, 195X.25, 8

protocole de controle de liaison (PPP),122{123

protocoles, 132protocols, 135{137proxy ARP, 73, 81, 121PTR (enregistrement DNS), 95p�eriph�erique dialout, 55p�eriph�erique d'entr�ee, 55p�eriph�erique de sortie, 55

| Q |

queue de courrier, 226

| R |

radio-amateurs, 8, 21RARP, 21, 22, 45rc.inet, 59, 66, 68, 164rcp, 139Reber, Tobias, 143r�eception des news, 271recherche d'adresses, 36

renvoicourrier, 232, 233

requetes inverses, 36{38r�eseau, 1

adresse IP, 62a�chage des connexions, 79amor�cage, 59commandes en r, 139

connection, 121connexions, voir r�eseau, portcourrier, 221inaccessible, 68installation des binaires, 60interconnexion, voir interconnexion

de r�eseauxinterface, 19interface de programmation, 12Internet, 5mots de passe, 139, 153, 156news, 286

num�eros de port, 12options du noyau, 43port, 11{12protocoles, 2p�eriph�eriques, 39r�esolution de noms, 156

services, voir port

synchronisation mots de passe, 143TCP/IP, voir TCP/IPtransmission par paquets, 4UUCP, 2

r�eseau local, 4r�esolution des adresses, 21resolv.conf, 86resolver

avec un serveur de noms, 84biblioth�eque, 84con�guration, 84{88

Page 363: Administration Reseau Sous Linux

346 INDEX

�abilit�e, 88utilisation de NIS, 84variables d'environnement, 85

resource record, voir DNS, resource re-cord

restreindre l'acc�es root, 165restriction d'acc�es, 134, 291, 293.rhosts, 139RIP, voir Routing Information Proto-

colrlogin, 139rmail, 188, 207

rnews, 188, 267, 278routage

boucles de courrier, 227courrier �electronique, 209

datagrammes IP, voir IP, routaged�emon, 27

dynamique, 27, 28, 73, 81, 122m�etrique, 27m�etrique, 75, 76passerelle, 72passerelle IP, 71protocoles, 27

proxy ARP, 81redirection ICMP, 28

smart host, 211table, 25, 78via PPP, 121

routage dynamique, 27

route, 66, 71, 82route par d�efaut du courrier, 211route, d�efaut, 21, 72, 116routed, 27Routing Information Protocol, 27, 73,

76RPC, 137{139

correspondance ports/programmes,138

num�eros de programmes, 137rpc, 137rpcinfo, 151RR, voir DNS, resource record

RS-232, 56rsh, 139

rsmtp, 207RTS/CTS, 56, 115rustine, 208r�eseau

noms, 65

| S |

Salz, Rich, 291scripts rc, 59secondaire (option BIND), 90s�ecurit�e, 112

commandes en r, 139comptes UUCP, 192{194Ethernet, 77faux noms d'hotes, 84NIS, 149, 156NNTP, 290, 293PPP, 118, 124{128serveurs TCP, 133, 134sessions distantes, 139SLIP, 105spoo�ng, 84syst�eme, 15UUCP, 188{194

s�ecurit�e syst�eme, 15sendbatches, 277sendmail, 203, 237{260

alias, 248, 250CF, 238{244, 251{252courrier dans un �chier, 248DECnet, 250deliver, 241emplacement des �chiers, 259

empecher le transport UUCP, 258forcer le courrier, 256forcer le transport UUCP, 257

g�en�eration de sendmail.cf, 251{252hote relais, 243IDA, 238installation, 250mailertable, 245m�ethodes, 245, 246, 248, 257, 258nom non quali��e, 246, 248, 257,

258nom quali��e, 246, 248

Page 364: Administration Reseau Sous Linux

INDEX 347

noms locaux, 242, 243postmaster, 242, 248programme courrier local, 241queue, 258relais, 256routage, 247domaine, 256smart-host, 243

UUCP, 246, 249, 257, 258running, 252sendmail.cf, 237site distant mal con�gur�e, 256site Internet, 244site UUCP, 244statistiques, 259tables, 238, 243, 249, 254

tests, 252{256UUCP, 243, 246, 257, 258version, 250vider la queue, 258

sendmail.cf, voir sendmail, sendmail.cfs�erie Becker, 39, 47serveur

inetd, 131{135tcpd, 134{135

nfsd, 160

NIS, 145NNTP, 289sendmail, 252UUCP, 191{194ypserv, 145

serveur de noms, 32{34authoritative, 34

autoritatif, 33, 34, 36ayant autorit�e, 33, 34, 36cache, 91cache seulement, 34, 101con�guration, 88{100esclave, 91primaire, 33, 90racine, 99secondaire, 33, 90

synchronisation, 33v�eri�cation, 96

serveur de noms autoritatif, 33, 34, 92

serveur de noms cache seulement, 101serveur de noms racine, 96services, 12

bien connus, 12, 135con�guration, 131et num�eros de port, 12

restriction d'acc�es, 16, 134services, 132, 135{137services.byname, 152setserial, 57site, 1sl0 (interface SLIP), 74, 103slattach, 102

SLIP, 10, 52, 54, 74, 101{112initialisation par utilisateurs, 105routage, 81

SLIPDISC, 102smail, 203, 219{236

adresses locales, 231{234

alias, 233avec un r�eseau local, 221{224bo�te aux lettres, 232BSMTP, 220, 234compilation, 226con�g �le, 227directors, 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, 224gestion du courrier d'un domaine,

222listes de di�usion, 234modes de distribution, 226noms locaux, 221

noms non quali��es, 235passer un courrier �a une commande,

231

postmaster, 227probl�emes, 224queue de courrier, 226

Page 365: Administration Reseau Sous Linux

348 INDEX

renvoi, 232routage, 228{231�eviter les boucles, 227Internet, 230smart host, 221UUCP, 229, 230UUCP ou SLIP, 230

routers, 228SMTP, 223{224, 235test de la queue, 226transports, 228utilitaires, 219UUCP, 220{221, 229, 230, 234{235vider la queue, 227

smart host, 211SMTP, 207

par lots, 188, 207service, 223

SNARL, 45, 82SOA (DNS record), 34SOA (enregistrement DNS), 92socket, 12sous-domaine (DNS), 32, 36sous-r�eseau (DNS), 63sous-r�eseau (IP), 24, 45sous-r�eseaux sont locaux, voir SARL45Space.c, 49, 51Spencer, Henry, 261spoo�ng, 84spoule, 3, 171Start of Authority, 34Storm, Kim F., 298synchronisation des serveurs de noms,

33syslog, 119, 134, 166syst�eme de �chiers proc , 60

| T |

T'so, Theodore, 57tass, 296Taylor, Ian, 169TCP, 10{11

programme wrapper, 134UUCP, 187

TCP/IP, 4{13, 19{28

tcpd, 134{135t�el�ephone, transfert de donn�ees par, 10temps de propagation (IP), 68

test con�guration r�eseau, 68, 70TFTP, 133tftp, 133Th�ummler, Swen, 143

tin, 296tinygrams, les �eviter, 45tripwire, 17

trn, 297tty, 54{58

discipline de ligne, 54, 102, 114t�el�ephone, transfert de donn�ees par, 101,

113

| U |

UART8250, 56

16450, 5616550, 56

UDP, 11{12Universit�e Groucho Marx, 5, 23

Urlichs, Matthias, 14Usenet, 262

cartes, 211, 214

uucico, 173UUCP, 2{4, 53, 169{201

alternates, 183alternatives, 183

anonyme, 194avec smail, 220BNU, 169

calling out, 173cartes, 211, 214cartes UUCP, 178

comptes, 191con�guration serveur, 191{195courrier, 188, 207, 210cr�eer des comptes, 191{192

esclave, 172et getty, 191ex�ecution de commandes, 188

�chiercon�g, 180

Page 366: Administration Reseau Sous Linux

INDEX 349

dial, 186dialcode, 181passwd, 192port, 184sys, 180

�chiers de con�guration, 174{177�chiers de verrouillage, 177

forwarding, 3grades, 171, 184handshake, 172HDB, 169, 200horaires d'appel, 183hostname, 180intervalles entre tentatives, 184job, 171

lignes directes, 188login, 177ma�tre, 172modem, 184, 186{187news, 268News Usenet, 188nom de machine, 178, 180num�ero de t�el�ephone, 180

priorit�es, 171, 184probl�emes, 198protocole, 172, 195{197

optimisation, 196s�election, 197

p�eriph�erique, 181, 184{186relais, 190

restrictionex�ecution de commandes, 188horaires, 183relais, 190transfert de �chiers, 189

r�epertoire de spoule, 171script de dialogue, 181{183s�ecurit�e des comptes, 192{194

serveur, 191statistiques, 200sur TCP/IP, 187syst�eme distant, 180{184Taylor, 169test de s�equence d'appels, 172, 193{

194

traces et d�eboguage, 199{201transfert de �chiers, 189tra�cage et d�eboguage, 173uucico, 172{173v�eri�cation, 179, 198Version 2, 169

UUCP anonyme, 194uugetty, 191uux, 278

| V |

valider ARP, 77v�eri�cation

activit�e TCP, 79atteindre un hote, 68, 70con�guration de smail, 225

con�guration r�eseau, 68, 70connexions r�eseau, 79interface Ethernet, 80interface r�eseau, 67, 79NIS, 149, 151NNTP, 293noms de machines, 96param�etres tty, 57ports s�erie, 57PPP, 119queue de courrier, 226sendmail, 252{256serveur de noms, 96table de routage, 78table de routage IP, 71tables ARP, 80UUCP, 179

vitesse, 55viticulteurs virtuels, 61

| W |

wrapper, TCP, 134

| X |

X.25, 8XDR, 137

| Y |

YP, voir NIS

Page 367: Administration Reseau Sous Linux

350 INDEX

yp-linux, 143yp.conf, 150{151ypbind, 146ypcat, 145, 151yps, 143ypserv, 145Yutaka, Niibe, 51

| Z |

Zen, 262zone, DNS, voir DNS, zone