285
Mise en place d’un service d’accès Internet et services associés pour les élèves Julien BLACHE <mailto:[email protected]> Version 2.15 - 21 Juin 2001

BONdossier Info

  • Upload
    trou12

  • View
    53

  • Download
    4

Embed Size (px)

Citation preview

Page 1: BONdossier Info

Mise en place d’un service d’accès Internet etservices associés pour les élèves

Julien BLACHE <mailto:[email protected] >

Version 2.15 - 21 Juin 2001

Page 2: BONdossier Info

Table des matières

Avant-propos 12

1 Architecture 131.1 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131.2 Répartition des machines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131.3 Configuration matérielle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

1.3.1 Configuration du serveur . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141.3.2 Configuration du serveur d’accès . . . . . . . . . . . . . . . . . . . . . . . . 151.3.3 Configuration des postes clients . . . . . . . . . . . . . . . . . . . . . . . . 151.3.4 Note à propos du matériel . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

1.4 Réseau interne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161.4.1 Fournitures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

1.5 Connexion à Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161.5.1 Débit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161.5.2 Adresses IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161.5.3 Nommage des machines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171.5.4 Fournitures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

1.6 Autre matériel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171.6.1 Imprimantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2 Choix du système d’exploitation et logithèque 182.1 Système d’exploitation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.1.1 MS-Windows 9x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182.1.2 MS-Windows NT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182.1.3 Que reste-t-il ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.1.3.1 Un peu d’histoire . . . . . . . . . . . . . . . . . . . . . . . . . . . 192.1.3.2 La distribution choisie : Debian GNU/Linux . . . . . . . . . . . 20

2.2 La logithèque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212.2.1 GNOME, l’environnement graphique . . . . . . . . . . . . . . . . . . . . . 21

2.2.1.1 Gestionnaires de fenêtres . . . . . . . . . . . . . . . . . . . . . . . 212.2.2 Netscape, le navigateur Internet . . . . . . . . . . . . . . . . . . . . . . . . 212.2.3 Mozilla, le prochain Netscape . . . . . . . . . . . . . . . . . . . . . . . . . . 222.2.4 Logiciels de transfert de fichiers . . . . . . . . . . . . . . . . . . . . . . . . 22

2.2.4.1 ProFTPd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222.2.4.2 GFTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222.2.4.3 IglooFTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

2

Page 3: BONdossier Info

Table des matières

2.2.4.4 NcFTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222.2.5 Squid, le proxy HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222.2.6 Bind, le serveur DNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232.2.7 Samba, interopérabilité avec l’environnement MS-Windows . . . . . . . . 232.2.8 Logiciels de communication . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2.2.8.1 Pour le mail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232.2.8.1.1 Sendmail, le serveur SMTP . . . . . . . . . . . . . . . . . 232.2.8.1.2 Qpopper, le serveur POP3 . . . . . . . . . . . . . . . . . 232.2.8.1.3 Netscape . . . . . . . . . . . . . . . . . . . . . . . . . . . 232.2.8.1.4 Mozilla . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232.2.8.1.5 Balsa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232.2.8.1.6 Gnus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232.2.8.1.7 Mutt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

2.2.8.2 Pour les news . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242.2.8.2.1 INN, le serveur de news . . . . . . . . . . . . . . . . . . 242.2.8.2.2 Netscape . . . . . . . . . . . . . . . . . . . . . . . . . . . 242.2.8.2.3 Mozilla . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242.2.8.2.4 Pan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242.2.8.2.5 Gnus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242.2.8.2.6 Slrn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

2.2.9 Suite bureautique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242.2.9.1 StarOffice/OpenOffice, la suite bureatique selon Sun . . . . . . . 242.2.9.2 Gnumeric, le tableur selon GNOME . . . . . . . . . . . . . . . . . 252.2.9.3 AbiWord . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

2.2.10 Éditeurs de texte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252.2.10.1 Emacs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252.2.10.2 Vi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

2.2.11 LATEX, le processeur de texte . . . . . . . . . . . . . . . . . . . . . . . . . . . 252.2.12 Logiciels pédagogiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

2.2.12.1 wget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262.2.12.2 TiLP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262.2.12.3 Bluefish . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262.2.12.4 Screem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262.2.12.5 xsky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262.2.12.6 RasMol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272.2.12.7 Xephem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272.2.12.8 Lum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272.2.12.9 Mek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272.2.12.10 Xem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272.2.12.11 MuPAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272.2.12.12 SciLab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272.2.12.13 GNUPlot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272.2.12.14 Dia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272.2.12.15 BWBasic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272.2.12.16 DrGeo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3

Page 4: BONdossier Info

Table des matières

2.2.12.17 The GIMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282.2.12.18 Moonlight Creator . . . . . . . . . . . . . . . . . . . . . . . . . . . 282.2.12.19 Blender . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3 Description des services proposés 293.1 Une adresse e-mail pour tous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293.2 Un Web pour tous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293.3 Les news pour tous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293.4 Autres services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

4 Descriptions et explications techniques de certains services 314.1 DNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314.2 Usenet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

5 Mise en place matérielle 335.1 Liaison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335.2 Réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335.3 Machines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

5.3.1 Serveur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355.3.2 Serveur d’accès . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355.3.3 Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

5.4 Disponibilité des machines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

6 Installation du système Debian GNU/Linux 366.1 Serveur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366.2 Serveur d’accès . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386.3 Machines clientes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

6.3.1 Réplication des machines clientes . . . . . . . . . . . . . . . . . . . . . . . 396.4 Shadow passwords et MD5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406.5 Note à propos des logiciels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

7 root, le super-utilisateur 417.1 Les opérations réservées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417.2 Sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

7.2.1 Ne pas travailler en root . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417.2.2 Répertoire personnel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427.2.3 Contourner les problèmes de droits . . . . . . . . . . . . . . . . . . . . . . 42

7.2.3.1 L’utilitaire su . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427.2.3.2 L’utilitaire sudo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427.2.3.3 Le bit setUID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

7.2.4 Permissions spéciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437.2.5 Lecteurs de disquettes et de CD-ROM . . . . . . . . . . . . . . . . . . . . . 43

7.3 Confidentialité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447.3.1 Mot de passe du root . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447.3.2 Données utilisateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

4

Page 5: BONdossier Info

Table des matières

8 Configuration du serveur 458.1 Compilation du noyau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458.2 Interfaces réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498.3 Bind, serveur DNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

8.3.1 Note importante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518.3.2 /etc/bind/named.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518.3.3 /var/cache/bind/masters/xxx.xxx.xxx . . . . . . . . . . . . . . . . . . . . 538.3.4 /var/cache/bind/masters/etablissement.org . . . . . . . . . . . . . . . . 548.3.5 Maintenance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 558.3.6 Redémarrage de Bind . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568.3.7 /etc/resolv.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568.3.8 /etc/nsswitch.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578.3.9 /etc/host.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578.3.10 /etc/hosts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

8.4 Sendmail, serveur SMTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588.4.1 /etc/mail/sendmail.cf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588.4.2 /etc/mail/access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 618.4.3 /etc/mail/aliases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 618.4.4 /etc/mail/domaintable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 628.4.5 /etc/mail/genericstable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 638.4.6 /etc/mail/local-host-names . . . . . . . . . . . . . . . . . . . . . . . . . . 638.4.7 /etc/mail/mailertable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 638.4.8 /etc/mail/relay-domains . . . . . . . . . . . . . . . . . . . . . . . . . . . . 638.4.9 /etc/mail/sendmail.ct . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 638.4.10 /etc/mail/service.switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . 648.4.11 /etc/mail/virtusertable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 648.4.12 Redémarrage de sendmail . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

8.5 Qpopper, le serveur POP3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 648.6 NIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

8.6.1 /etc/hosts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 658.6.2 /etc/defaultdomain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 658.6.3 /etc/init.d/nis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 658.6.4 /etc/ypserv.securenets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 668.6.5 /etc/ypserv.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 668.6.6 /etc/nsswitch.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 678.6.7 /var/yp/Makefile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 678.6.8 Fin de la configuration du serveur . . . . . . . . . . . . . . . . . . . . . . . 688.6.9 Démarrage du serveur NIS . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

8.7 Création d’un utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 688.7.1 Mis à jour des maps NIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

8.8 Quotas disque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 688.8.1 /etc/fstab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 698.8.2 quota.user et quota.group . . . . . . . . . . . . . . . . . . . . . . . . . . . . 698.8.3 Activation des quotas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 698.8.4 Attribution des quotas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

5

Page 6: BONdossier Info

Table des matières

8.8.5 Maintenance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 718.9 NFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

8.9.1 /etc/exports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 718.9.2 Un peu de sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

8.9.2.1 /etc/hosts.deny . . . . . . . . . . . . . . . . . . . . . . . . . . . . 728.9.2.2 /etc/hosts.allow . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

8.9.3 Redémarrage du service NFS . . . . . . . . . . . . . . . . . . . . . . . . . . 738.10 Samba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

8.10.1 /etc/samba/smb.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 738.10.2 Redémarrage de Samba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 768.10.3 Utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

8.11 INN, le serveur de news . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 768.11.1 Particularité : l’utilisateur news . . . . . . . . . . . . . . . . . . . . . . . . . 768.11.2 /var/spool/news . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 778.11.3 /etc/news/inn.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 778.11.4 /etc/news/hosts.nntp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 808.11.5 /etc/news/nnrp.access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 818.11.6 /etc/news/newsfeeds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 828.11.7 /etc/news/moderators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 838.11.8 /etc/news/control.ctl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 848.11.9 /etc/news/expire.ctl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 848.11.10 /etc/news/incoming.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . 858.11.11 /etc/news/innfeed.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 888.11.12 /etc/news/innreport.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . 918.11.13 /etc/news/motd.news . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 928.11.14 /var/lib/news/active . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 938.11.15 /var/lib/news/history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 938.11.16 /var/lib/news/newsgroups . . . . . . . . . . . . . . . . . . . . . . . . . . 938.11.17 Vérification de la configuration . . . . . . . . . . . . . . . . . . . . . . . . . 938.11.18 Redémarrage de INN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 948.11.19 CleanFeed, la lutte anti-spam . . . . . . . . . . . . . . . . . . . . . . . . . . 94

8.11.19.1 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 948.11.19.2 Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 948.11.19.3 Activation du filtre . . . . . . . . . . . . . . . . . . . . . . . . . . 100

8.11.20 Constitution des fichiers active et newsgroups . . . . . . . . . . . . . . . . . 1008.11.21 Trouver un feed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

8.12 Apache, le serveur HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1028.12.1 /etc/apache/httpd.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1028.12.2 /etc/apache/srm.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1098.12.3 /etc/apache/access.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1148.12.4 Négociation de contenu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1178.12.5 Serveurs virtuels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

8.12.5.1 www.etablissement.org . . . . . . . . . . . . . . . . . . . . . . . . 1188.12.5.2 eleves.etablissement.org . . . . . . . . . . . . . . . . . . . . . . . 1188.12.5.3 profs.etablissement.org . . . . . . . . . . . . . . . . . . . . . . . . 119

6

Page 7: BONdossier Info

Table des matières

8.12.6 Redémarrage d’Apache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1198.13 ProFTPd, le serveur FTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

8.13.1 /etc/proftpd.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1198.13.2 Redémarrage de ProFTPd . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

8.14 Remarque concernant Apache et ProFTPd . . . . . . . . . . . . . . . . . . . . . . . 1218.15 NTP, synchronisation de l’heure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1218.16 SNMPD, surveillance réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1228.17 MRTG, statistiques réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1308.18 Sauvegarde des données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134

8.18.1 Restauration des données . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

9 Configuration du serveur d’accès 1369.1 Compilation du noyau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1369.2 Interfaces réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1409.3 Bind, serveur DNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

9.3.1 /etc/bind/named.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1419.3.2 Maintenance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1449.3.3 Redémarrage de Bind . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1449.3.4 /etc/resolv.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1449.3.5 /etc/nsswitch.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1449.3.6 /etc/host.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1459.3.7 /etc/hosts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145

9.4 Sendmail, serveur SMTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1459.4.1 /etc/mail/sendmail.cf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1469.4.2 /etc/mail/access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1489.4.3 /etc/mail/aliases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1499.4.4 /etc/mail/domaintable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1509.4.5 /etc/mail/genericstable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1509.4.6 /etc/mail/local-host-names . . . . . . . . . . . . . . . . . . . . . . . . . . 1509.4.7 /etc/mail/mailertable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1509.4.8 /etc/mail/relay-domains . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1519.4.9 /etc/mail/sendmail.ct . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1519.4.10 /etc/mail/service.switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1519.4.11 /etc/mail/virtusertable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1519.4.12 Redémarrage de Sendmail . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151

9.5 NFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1529.5.1 /etc/hosts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1529.5.2 /etc/fstab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1529.5.3 Redémarrage de nfs-common . . . . . . . . . . . . . . . . . . . . . . . . . . 1539.5.4 Montage manuel des volumes NFS . . . . . . . . . . . . . . . . . . . . . . . 153

9.6 NIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1539.6.1 /etc/hosts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1539.6.2 /etc/defaultdomain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1549.6.3 /etc/init.d/nis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1549.6.4 /etc/yp.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154

7

Page 8: BONdossier Info

Table des matières

9.6.5 /etc/passwd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1549.6.6 /etc/group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1559.6.7 Redémarrage de NIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

9.7 Permettre l’accès à Internet - firewalling et masquerading . . . . . . . . . . . . . . 1579.7.1 /sbin/firemasq.up.sh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1579.7.2 /sbin/firemasq.down.sh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1629.7.3 Modules noyau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1629.7.4 /etc/init.d/firemasq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1629.7.5 Démarrage du firewalling . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164

9.8 Serveur proxy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1649.8.1 Squid - /etc/squid.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1649.8.2 Installation de SquidGuard . . . . . . . . . . . . . . . . . . . . . . . . . . . 2079.8.3 /etc/squidGuard.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2079.8.4 Pages de redirection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210

9.8.4.1 Sites pour adultes . . . . . . . . . . . . . . . . . . . . . . . . . . . 2109.8.4.2 Sites proposant des logiciels piratés . . . . . . . . . . . . . . . . . 2129.8.4.3 Sites proposant divers moyens de piratage . . . . . . . . . . . . . 2149.8.4.4 Sites de publicité . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216

9.8.5 Listes noires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2189.8.5.1 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2189.8.5.2 Maintenance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218

9.8.6 Redémarrage de Squid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2209.9 Serveur d’impression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220

9.9.1 Configuration des imprimantes . . . . . . . . . . . . . . . . . . . . . . . . . 2209.9.2 apsfilter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2209.9.3 /etc/printcap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2209.9.4 Configuration de l’accès . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2219.9.5 Redémarrage de lpd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222

9.10 NTP, synchronisation de l’heure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2229.11 SNMPD, surveillance réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222

10 Configuration des machines clientes 22310.1 Compilation du noyau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22310.2 Interface réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22710.3 Configuration de la résolution de noms . . . . . . . . . . . . . . . . . . . . . . . . 227

10.3.1 /etc/resolv.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22710.3.2 /etc/nsswitch.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22810.3.3 /etc/host.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22810.3.4 /etc/hosts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228

10.4 Sendmail, serveur SMTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22910.4.1 /etc/mail/sendmail.cf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22910.4.2 /etc/mail/access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23210.4.3 /etc/mail/aliases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23210.4.4 /etc/mail/domaintable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23310.4.5 /etc/mail/genericstable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233

8

Page 9: BONdossier Info

Table des matières

10.4.6 /etc/mail/local-host-names . . . . . . . . . . . . . . . . . . . . . . . . . . 23410.4.7 /etc/mail/mailertable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23410.4.8 /etc/mail/relay-domains . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23410.4.9 /etc/mail/sendmail.ct . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23410.4.10 /etc/mail/service.switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23410.4.11 /etc/mail/virtusertable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23510.4.12 Redémarrage de Sendmail . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235

10.5 NFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23510.5.1 /etc/fstab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23510.5.2 Redémarrage de nfs-common . . . . . . . . . . . . . . . . . . . . . . . . . . 23610.5.3 Montage manuel des volumes NFS . . . . . . . . . . . . . . . . . . . . . . . 236

10.6 NIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23610.6.1 /etc/defaultdomain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23610.6.2 /etc/init.d/nis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23610.6.3 /etc/yp.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23710.6.4 /etc/passwd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23710.6.5 /etc/group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23810.6.6 Redémarrage de NIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239

10.7 Configuration des imprimantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23910.8 NTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24010.9 SNMPD, surveillance réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241

11 Détails concernant les postes clients 24211.1 Configuration des navigateurs Internet . . . . . . . . . . . . . . . . . . . . . . . . 24211.2 Protocole FTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24211.3 Modules spécifiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24211.4 Utilisation des imprimantes distantes . . . . . . . . . . . . . . . . . . . . . . . . . 242

12 Politique d’administration 24312.1 Utilisation des machines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24312.2 Utilisation de l’accès Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24312.3 Utilisation du compte e-mail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24312.4 Utilisation des newsgroups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24412.5 Utilisation de l’espace Web personnel . . . . . . . . . . . . . . . . . . . . . . . . . 24412.6 Quotas disque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24412.7 Matériel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245

13 L’administration en pratique 24613.1 Ajout d’un utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24613.2 Suppression d’un utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24613.3 Les groupes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246

13.3.1 Création d’un groupe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24713.3.2 Ajout d’utilisateurs dans un groupe . . . . . . . . . . . . . . . . . . . . . . 24713.3.3 Suppression d’un utilisateur dans un groupe . . . . . . . . . . . . . . . . . 24713.3.4 Suppression d’un groupe . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247

13.4 Gestion des programmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247

9

Page 10: BONdossier Info

Table des matières

13.4.1 Installation d’un paquetage Debian . . . . . . . . . . . . . . . . . . . . . . 24813.4.2 Désinstallation d’un paquetage Debian . . . . . . . . . . . . . . . . . . . . 24813.4.3 Désinstallation d’un paquetage Debian et de ses fichiers de configuration 248

14 Captures d’écran 249

15 Documentation et sources d’information 25715.1 Installation de Debian GNU/Linux 2.2 «Potato» . . . . . . . . . . . . . . . . . . . 25715.2 Debian GNU/Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25715.3 Paquetages Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25715.4 Serveur DNS Bind . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25815.5 Serveur SMTP Sendmail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25815.6 Serveur POP3 QPopper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25815.7 NIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25815.8 Quotas disque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25915.9 Partage de fichiers par NFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25915.10Partage de fichiers par Samba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25915.11Serveur de news INN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259

15.11.1 Filtre PERL pour INN, CleanFeed . . . . . . . . . . . . . . . . . . . . . . . 25915.12Serveur HTTP Apache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25915.13Serveur FTP ProFTPd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26015.14Synchronisation de l’heure par NTP . . . . . . . . . . . . . . . . . . . . . . . . . . 26015.15Sauvegarde de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26015.16Firewalling, firemasq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26015.17Serveur proxy Squid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26015.18Redirecteur SquidGuard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26015.19Serveur d’impression, lpd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26015.20SNMP/snmpd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26015.21MRTG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26115.22Notions de réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26115.23Administration UNIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26115.24Divers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26115.25Autres documentations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261

15.25.1 Les pages de man . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26115.25.2 La documentation Info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26215.25.3 Les newsgroups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26215.25.4 Les personnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26215.25.5 L’expérience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262

15.26Logithèque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262

16 CD-ROM DemoLinux 26616.1 Utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26616.2 Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266

10

Page 11: BONdossier Info

Table des matières

17 Concernant le document 26717.1 Période de rédaction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26717.2 Historique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26717.3 Traduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26817.4 Mises à jour . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26817.5 Validité des solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26817.6 Mise en application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268

18 Mentions légales 26918.1 Informations de copyright . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26918.2 Concernant le domaine «etablissement.org» . . . . . . . . . . . . . . . . . . . . . . 26918.3 Marques citées dans ce document . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27118.4 Scripts fournis dans le document . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27118.5 GNU Free Documentation License . . . . . . . . . . . . . . . . . . . . . . . . . . . 27218.6 GNU General Public License . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279

11

Page 12: BONdossier Info

Avant-propos

Le projet décrit dans ce dossier était à l’origine destiné à être présenté au Lycée Saint-Andréde Colmar, en fin d’année 1999. Malheureusement, un certain nombre de raisons m’en ontdissuadé.

Le projet, qui était présenté dans un document de 30 pages à l’origine, a été étoffé pendantl’année scolaire écoulée, afin de constituer mon dossier pour l’option Informatique au Bacca-lauréat.

Les épreuves étant terminées ou presque, et encouragé par les retours que j’ai eu, je cherchedes personnes intéressées pour maintenir ce projet.

L’enthousiasme soulevé par ce dossier chez les professeurs qui l’ont lu, chez diverses per-sonnes qui ont en eu connaissance m’a surpris. Je pense, à plus forte raison aujourd’hui, quenombre de professeurs ou d’établissement pourraient être intéressés par un document décri-vant, étape par étape, la mise en place d’une salle info à destination exclusive des élèves (neconcerne pas les cours).

Le but n’est pas la réutilisation de vieilles machines avec affichage déporté, un nombreconséquent de documents traitent déja du sujet.

Il s’agit ici de proposer un accès Internet, assortis de différents services.Pour cela, il faut choisir un environnement (Debian), une «archictecture», et un certain

nombre de services que l’on peut mettre en place dans le cadre de ce projet.On peut donc fournir les fichiers de configurations complets, et une sorte de manuel «step-

by-step».Les configurations rassemblées dans ce document devraient, en théorie, fonctionner. Tou-

tesfois, certaines restent vraiment théoriques, car je n’ai pas pu les tester toutes.Enfin, ce document présente le déroulement de l’installation tel que je l’imagine, avec les

moyens (notamment l’accès Internet – câble), dont je pouvais disposer ici. Quelques modifica-tions sont à faire à ce niveau là, plus différentes corrections (fautes de frappe, et autres, au boutde 1 an, je ne les vois plus, je connais le document par coeur). Tout n’est pas optimal, ce n’estpas la prétention.

La maintenance de ce document va consister à le garder à jour par rapport à la distribu-tion Debian d’une part, à corriger les configurations, et éventuellement à changer de format(passage en SGML).

Mais je n’exclue pas une réécriture complète, ce qui serait plus ou moins le cas pour unpassage vers un autre format.

Julien BLACHE <mailto:[email protected] >

12

Page 13: BONdossier Info

1 Architecture

1.1 Description

Le but essentiel de ce projet est de fournir, pour un prix moindre et une qualité supérieure,une mini salle informatique à destination des élèves. Ceci dans le but de permettre à ces élèvesde faire des recherches, taper des documents, ou autres choses, sans mettre en danger la sta-bilité des salles informatiques existantes. De ce fait, en cas de problèmes, ils se pénalisent eux-mêmes et n’entravent pas le travail d’autres élèves, comme cela a pu être le cas au Lycée Saint-André, par exemple.

Dans cette optique, ces machines permettront l’accès à Internet dans son ensemble, ainsique l’utilisation de divers outils logiciels et matériels.

L’accès à Internet sera complet. Cela veut dire, bien entendu, un accès rapide et illimité auWeb, mais aussi une adresse e-mail par personne et la possibilité de participer aux forums dediscussions Usenet. J’entends également ne filtrer aucun protocole, de sorte que les passionnésd’informatique désireux d’ouvrir une session à distance sur leur machine puissent le faire. Ceciest actuellement impossible avec le réseau en place dans les divers établissement français. Parailleurs, les élèves auront la possibilité d’héberger une page personnelle sur le serveur Web duprojet.

Les outils logiciels accessibles aux élèves seront des outils de bureautique, semblables àMicrosoft Office, des outils permettant la manipulation d’images ou encore des outils pédago-giques permettant par exemple la visualisation de molécules dans l’espace. Cette liste est loind’être exhaustive tant la logithèque disponible est vaste.

Les outils matériels à disposition consisteront en deux imprimantes, une imprimante laserpour l’impression rapide de textes, et une imprimante jet d’encre couleur pour tout ce quirequiert une impression colorée.

1.2 Répartition des machines

Il est prévu plusieurs serveurs couvrant des besoins spécifiques, tels que le mail, le Web,etc. . . Une machine sera donc dédiée à l’hébergement des différents serveurs.

Pour permettre l’accès à Internet des machines, il leur faut une adresse IP chacune. Cesadresses coûtent cher. Nous utiliserons donc la translation d’adresses, qui permet à plusieursmachines d’accéder au monde extérieur tout en n’utilisant qu’une seule adresse. Nous filtreronségalement l’accès à certains types de sites Web. Ce sera là l’emploi d’une deuxième machine.

Enfin, il faut des postes clients. J’en prévois cinq, cela me paraît suffisant, mais il est toutefoispossible d’en mettre plus.

13

Page 14: BONdossier Info

1 Architecture

Au total, nous utiliserons donc sept machines, dont les configurations matérielles diffèrentselon leur emploi.

1.3 Configuration matérielle

Les machines, telles que proposées ici, devraient tenir deux ou trois ans. Au-delà, il serasouhaitable de les remplacer, tant au niveau de la vitesse d’exécution qu’au niveau de la fiabi-lité.

1.3.1 Configuration du serveur

Cette machine supportera plusieurs logiciels serveurs, gourmands en ressources, ainsi queles répertoires personnels des élèves. La configuration est adaptée en conséquence.

– Processeur de type Pentium III ou Athlon cadencé à au moins 600 MHz– 256 Mo de SDRAM sont un minimum– Lecteur CD-ROM IDE ou SCSI– Lecteur de disquettes 3”1/2, 1.44 Mo– Carte graphique compatible VESA 2.0– Écran : au minimum 15”– Carte réseau 100 BaseT Fast-Ethernet connecteur RJ45– Carte d’interface avec la liaison Internet : celle-ci peut être une carte réseau, cela dépend

de la liaison– On peut prévoir une carte réseau permettant de relier le serveur au réseau de l’établisse-

ment dans un but d’interopérabilité– Carte SCSI Ultra2 : la carte Tekram DC-390U2W est un bon choix– 4 disques durs Ultra2 SCSI d’une capacité minimum de 9 Go chacun– Un dispositif de sauvegarde SCSI avec un jeu de cartouches, capable de sauvegarder plus

de 25 Go de données– Carte son complètement optionnelle (si la machine est pourvue d’une carte son, il serait

peut-être souhaitable de la retirer)– Clavier français (ou adapté à la langue)– Souris 3 boutons1 sur port PS/2 ou série

Les disques durs seront répartis comme suit : un disque pour le système, un pour le spool2

de news, un pour le spool de mail et enfin un dernier disque pour les répertoires personnelsdes élèves. L’interface SCSI permet de soulager le processeur, laissant ainsi plus de puissancedisponible pour les autres applications. Le dispositif de sauvegarde permet la sauvegarde dusystème pour parer à tout problème éventuel.

L’une des cartes réseau servira à connecter le serveur au réseau local afin d’être directementjoignable par les autres machines.

1Le troisième bouton est utilisé pour le copier/coller. Une souris possédant une roulette, par exemple les sourisMicrosoft, convient parfaitement. La roulette est tout à fait utilisable, et vraiment pratique.

2Spool : espace de stockage temporaire. Dans le cas d’un spool de news, le serveur stockera les messages dans cespool pendant un certains temps pour permettre la consultation, puis les effacera.

14

Page 15: BONdossier Info

1 Architecture

1.3.2 Configuration du serveur d’accès

Cette machine permettra aux postes clients d’accéder à Internet grâce à la translation d’adresses.Toutes les données allant ou venant des postes clients passent par cette machine. Elle serviraégalement de poste d’administration.

– Processeur de type Pentium III ou Athlon cadencé à au moins 600 MHz– 256 Mo de SDRAM sont un minimum– Lecteur CD-ROM IDE– Lecteur de disquettes 3”1/2, 1.44 Mo– Carte graphique PCI ou AGP dotée de quelques Mo de mémoire– Écran : au minimum 15”– Carte réseau 100 BaseT Fast-Ethernet connecteur RJ45– Carte d’interface avec la liaison Internet : celle-ci peut-être une carte réseau, cela dépend

de la liaison– Deux ports parallèles sont nécessaires pour connecter les imprimantes– Disque dur de quelques Go– Carte son optionnelle– Clavier français (ou adapté à la langue)– Souris 3 boutons sur port PS/2 ou série

La quantité élevée de mémoire est rendue nécessaire par l’emploi de la machine qui voit tran-siter toutes les informations et utilise donc une mémoire conséquente.

1.3.3 Configuration des postes clients

Les cinq postes clients ont tous la même configuration.– Processeur de type Pentium III ou Athlon cadencé à au moins 600 MHz– 128 Mo de SDRAM– Lecteur CD-ROM IDE– Lecteur de disquettes 3”1/2, 1.44 Mo– Carte graphique PCI ou AGP dotée de quelques Mo de mémoire– Écran : au minimum 15”– Carte réseau 100 BaseT Fast-Ethernet connecteur RJ45– Disque dur de quelques Go– Carte son– Clavier français– Souris 3 boutons sur port PS/2 ou série

Cette configuration est relativement standard et peut être acquise pour un prix raisonnable.

1.3.4 Note à propos du matériel

Pour des raisons de disponibilité des pilotes de périphériques, on sera vigilant sur lesmarques et modèles de périphériques employés. En particulier, les cartes vidéos de marqueATI ou Matrox sont majoritairement supportées, de même pour les cartes réseau 3COM, lescartes compatibles NE2000 (PCI ou ISA) et les cartes Intel, enfin il en va de même pour lescartes son de marque Creative (SoundBlaster). Les marques citées ne sont que des exemples, et

15

Page 16: BONdossier Info

1 Architecture

il faut souligner que de nouveaux pilotes sont disponibles quasiment chaque semaine. De plusen plus de matériel est supporté chaque mois.

Il en va de même pour les imprimantes, dont certaines ne seront jamais utilisables sousLinux, c’est le cas des imprimantes supportant la norme WinPrinter.

1.4 Réseau interne

Le réseau interne sur lequel sont reliées les sept machines sera un réseau Fast-Ethernetcapable de débits allant jusqu’à 100 Mbits/s. Un réseau performant permettra l’échange rapided’informations entre les machines.

1.4.1 Fournitures

Il faudra donc prévoir un hub3 capable d’accueillir les sept machines. Peu importe la marquedu hub, il doit supporter la norme Fast-Ethernet.

Sept cordons seront nécessaires pour relier les machines au hub. On utilisera des cordonsdroits munis de connecteurs RJ45, fabriqués en utilisant un câble de type STP-5 ou STP-64, ouUTP-5.

1.5 Connexion à Internet

La connexion, pour des raisons de débit, doit être indépendante de celle de l’établissement,généralement très lente.

En effet, les différents serveurs installés demandent une bande passante conséquente etdeux adresses IP fixes. Ces conditions ne peuvent être remplies par la connexion offerte à l’éta-blissement.

1.5.1 Débit

Le serveur demande un débit d’au moins 128 Kbps afin de travailler dans de bonnes condi-tions. Je reviendrais sur la raison de ce besoin de débit plus loin dans ce dossier.

Les postes clients doivent pouvoir compter sur au moins 64 Kbps de débit pour être utilisésdans de bonnes conditions de rapidité. Cela porte à 384 Kbps la bande passante à fournir auxcinq machines.

Au total, la liaison doit fournir un débit de 512 Kbps. Il est difficile de faire fonctionner lesdifférents services avec un débit plus faible.

1.5.2 Adresses IP

Nous avons besoin de deux adresses IP routables5 et fixes6 afin de connecter le serveur etle serveur d’accès.

3«hub» ou concentrateur : dispositif permettant de relier ensemble plusieurs machines disposant de cartes réseau.4Câble 4 paires torsadées blindé. Les indices 5 et 6 renvoient à la qualité du blindage.5Cela signifie que ces deux adresses IP doivent être publiques.6Ces adresses nous sont allouées de manière permanente.

16

Page 17: BONdossier Info

1 Architecture

1.5.3 Nommage des machines

Les machines, pour être plus facilement accessibles, doivent posséder un nom. Il est de laforme «machine.domaine.tld», et nécessite le dépôt d’un nom de domaine.

Ce nom de domaine peut être acquis à moindre frais auprès de GANDI7 pour la sommed’environ 90 FF/an. Le domaine se trouvera dans le TLD8 «org». Dans la suite de ce document,j’utiliserais un domaine fictif «etablissement.org».

Ce dépôt de domaine contrevient aux directives ministérielles (Bulletin Officiel de l’Éduca-tion Nationale n35 du 24 Septembre 1998) qui préconisent l’utilisation d’un sous-domaine dela forme «etablissement.academie.fr». Il me semble simplement inutile de subir un nom aussilong, alors que l’achat d’un domaine est maintenant possible pour une somme minime. Parailleurs, nous avons besoin d’avoir le contrôle total de nos serveurs DNS9.

Nous devrons donc mettre en place deux serveurs DNS, un primaire et un secondaire. C’estpour cette raison que deux machines seront pourvues d’une adresse routable chacune, c’estaussi une des raisons qui imposent l’usage d’adresses IP fixes.

1.5.4 Fournitures

On fera le nécessaire afin de connecter les deux machines sur la liaison Internet. Ne connais-sant pas le type de liaison exploitable dans les différents établissements, je laisse ceci à la dis-crétion de l’administrateur.

1.6 Autre matériel

1.6.1 Imprimantes

Il est primordiale de donner la possibilité aux élèves d’imprimer leurs documents. Celapose toutefois quelques problèmes. On ne peut en effet pas être sûr que ces imprimantes serontutilisées à bon escient. C’est un risque à prendre.

Deux imprimantes seront à disposition. Une imprimante laser permettra l’impression ra-pide de textes, une imprimante jet d’encre couleur permettra l’impression d’illustrations, parexemple.

Les imprimantes seront reliées sur le serveur d’accès qui fera donc office de serveur d’im-pression. Cela peut nécessiter la pose d’un deuxième port parallèle sur cette machine.

7http://www.gandi.net8Top Level Domain : c’est le domaine de premier niveau. Cela peut être com, org, net, fr, uk, etc. . .9Domain Name Server (ou System) : ces serveurs permettent d’établir la correspondance entre un nom canonique

«machine.etablissement.org» et une adresse IP.

17

Page 18: BONdossier Info

2 Choix du système d’exploitation etlogithèque

2.1 Système d’exploitation

Nous avons besoin d’un système d’exploitation robuste et véloce, gérant les utilisateurset leurs spécificités, pour un prix le meilleur possible. Il doit également disposer de capacitésserveur.

Voyons donc ce qui est à notre disposition dans ce domaine.

2.1.1 MS-Windows 9x

Nous le connaissons tous, de près ou de loin. Il est relativement rapide mais essouffle vitela machine par une mauvaise gestion des ressources.

Au niveau de la gestion des utilisateurs et de leurs droits, elle est simplement inexistante.Tout le monde peut tout faire sur la machine.

Du point de vue de la robustesse, nous avons tous un jour vu «planter» une machine sousMS-Windows 9x.

Les fonctionnalités serveur sont quasi-inexistantes sous ce système d’exploitation.Son prix est tout de même élevé, il va de environ 800 FF lorsqu’il est livré avec la machine

à près de 1500 FF au détail.Ce n’est donc pas le candidat idéal.

2.1.2 MS-Windows NT

Se déclinant en version «Server» et «WorkStation», il dispose d’une gestion des utilisateursrelativement exploitable. Elle est toutefois rendue très pénible par l’interface peu ergonomique.

Il est robuste mais lourd, nécessitant une grosse configuration pour fonctionner correcte-ment.

Bien qu’étant la version évoluée orientée réseau de MS-Windows, les plantages ne sont pasabsents. Tout le monde n’a peut être pas eu l’occasion de travailler sur une machine équipée enMS-Windows NT, mais j’ai été témoin et victime de plusieurs «plantages» assez importants.

Les fonctionnalités serveur existent, mais ces solutions sont onéreuses.Le prix de MS-Windows NT est très élevé, celui de la version «Server» dépend en outre du

nombre d’utilisateurs.Là non plus, ce n’est pas à proprement parler le candidat idéal.

18

Page 19: BONdossier Info

2 Choix du système d’exploitation et logithèque

2.1.3 Que reste-t-il ?

Il reste le système UNIX. Un Unix commercial coûte plusieurs milliers de Francs français,ce qui est hors budget pour nous.

La solution réside donc dans les Unix libres, tels Linux, FreeBSD, NetBSD, . . .Nous utiliserons Linux, non pas par effet de mode, mais parce qu’il convient à la situa-

tion. Nous pourrions également utiliser FreeBSD, mais il est inutile de compliquer la tâche del’administrateur, alors qu’ici Linux donnera pleine et entière satisfaction.

Ce choix est motivé par les fonctionnalités disponibles et le prix de l’environnement. Eneffet, quasiment tous les logiciels sont disponibles gratuitement, mais ils sont surtout libres. Cequi signifie que l’on peut les modifier à notre guise pour combler nos besoins.

Linux n’est pas gratuit, il est libre. C’est-à-dire que l’on a le droit de le vendre.On trouve dans le commerce plusieurs «versions», appelées «distributions». Elles four-

nissent chacune un système Unix basé sur Linux, complet et fonctionnel, avec une procédured’installation. Il faut donc choisir une distribution avant de continuer.

2.1.3.1 Un peu d’histoire

Linux est né en 1991 en Finlande, sous les doigts de Linus TORVALDS, un étudiant de l’Uni-versité d’Helsinki. Fatigué de la lourdeur et des limitations de MS-DOS, abasourdit par le prixdes Unix commerciaux et passionné par Minix, système UNIX minimal développé par AndrewTANENBAUM, professeur d’une célèbre Université américaine, il décide de se consacrer à l’écri-ture d’un système d’exploitation se conformant aux normes POSIX1.

En 1991, il publie la version 0.02 du kernel2 Linux. Dès lors, des dizaines de programmeursvont se mettre au travail un peu partout dans le monde. La plupart sont des universitaires oude très grands programmeurs renommés ; à l’époque, l’accès à Internet n’était pas aussi courantqu’aujourd’hui.

Mais Linux n’est qu’un kernel, le noyau du système d’exploitation. Il faut des outils, lesoutils standards que l’on trouve sur tous les Unix commerciaux.

Richard M. STALLMAN, programmeur hors-pair faisant partie de l’AI Lab du MIT3, quel’idée de devoir travailler avec des outils logiciels qu’il ne peut modifier à sa guise agace for-tement, lance en 1984 le projet GNU4 ; le but est de créer un clone d’UNIX. Le kernel du projetGNU, nommé «The HURD», bâti sur une structure plus proche de celle de Minix que de cellede Linux5, n’est à ce jour toujours pas utilisable pour l’utilisateur lambda.

En revanche, les outils traditionnels d’UNIX sont, eux, utilisables depuis longtemps. Devantle retard du HURD et le développement phénoménal de Linux, la FSF6 décide de prendre Linuxsous son aile.

Dès lors, on parle de GNU/Linux. GNU est l’ensemble des outils qui constitue le systèmed’exploitation autour du noyau Linux.

1Normes définissant un système UNIX.2kernel : noyau. Ici, il s’agit du noyau d’un système d’exploitation, c’est-à-dire le code qui «parle» directement au

matériel et fournit une interface avec celui-ci aux autres programmes.3Le laboratoire d’intelligence artificielle du Massachusetts Institute of Technology.4GNU’s Not UNIX : «GNU n’est pas UNIX».5Minix est basé sur un micro-noyau, tandis que Linux se base sur un noyau monolithique.6Free Software Foundation : fondation pour le Logiciel Libre.

19

Page 20: BONdossier Info

2 Choix du système d’exploitation et logithèque

Linux, aujourd’hui en version 2.4, a valu à Linus TORVALDS l’obtention du titre de «Docteurhonoraire de l’Université d’Helsinki» à seulement 29 ans, en 1999. La performance est d’autantplus appréciable qu’il n’a jamais eu en main les normes POSIX, vendues très cher en ce temps-là.

Ce succès phénoménal, libre et gratuit vient du fait que Linus a diffusé les sources de sonkernel sous licence GPL7, licence qui autorise et incite fortement à lire et modifier le codesource.

A l’époque, l’installation de Linux était réservée à l’élite, car aucun programme d’instal-lation n’existait. On voit alors apparaître des distributions, telles Yggdrasil, SLS, Slackware,Caldera, RedHat, SuSE, . . . Elles proposent non seulement un programme d’installation, maisaussi toute une collection de logiciels prêts à l’installation. Ces logiciels sont précompilés etcompressés, ce sont les «packages8». Grâce au système de paquetages, l’utilisateur est assuréd’avoir un système cohérent et fiable.

2.1.3.2 La distribution choisie : Debian GNU/Linux

La distribution Debian, plus que toutes les autres, est considérée comme la distributionGNU/Linux.

Débuté en 1993 par Ian MURDOCK et sa compagne Debra (d’où le nom «Debian»), ce pro-jet utilise le système de paquetages le plus complet et le plus puissant, assurant une parfaitecohérence du système en toutes circonstances.

Le mode de développement de Debian est particulièrement singulier. N’importe qui peutdevenir développeur officiel, ou presque. Le projet Debian compte aujourd’hui près de 600 dé-veloppeurs qui ont précompilé plus de 5000 logiciels, assurant à la distribution une logithèqueabondamment fournie. Chaque développeur est responsable des logiciels qu’il compile pourDebian et certifie qu’ils ne poseront pas de problèmes et s’intégreront de manière cohérentedans le système.

La philosophie de Debian tranche nettement de celle des autres distributions. Le but n’esten effet pas de sortir une nouvelle version tous les mois, encore moins de faire de l’argent. Lebut est de proposer aux administrateurs, utilisateurs de Linux, passionnés d’informatique etautres, un système complet, cohérent et stable, composé uniquement de logiciels libres et nedépendant d’aucun logiciel propriétaire. C’est pour cela qu’un logiciel libre aura toujours lapriorité sur son équivalent non-libre.

La distribution elle-même est divisée en quatre sections :– main : cette section constitue en fait la distribution Debian. Elle est composée entièrement

de logiciels libres ; son contenu doit permettre à lui seul d’installer un système polyvalentet pleinement fonctionnel ;

– non-free : cette section contient tous les logiciels non-libres distribués avec Debian ;– contrib : cette section contient tous les logiciels libres dépendant de logiciels non-libres ou

d’éléments extérieurs à la distribution, et non distribués suite à des problèmes de licence ;

7GNU General Public License : Licence Publique Générale. La licence par excellence du projet GNU.8Aussi appelés «paquetages», ils contiennent les logiciels sous forme de binaires (par opposition aux code source

qui se présente sous forme de fichiers texte), permettant l’installation et la désinstallation rapide et propre d’unlogiciel.

20

Page 21: BONdossier Info

2 Choix du système d’exploitation et logithèque

– non-US : cette section contient tous les logiciels, libres ou non, dont l’exportation hors desÉtats-Unis d’Amérique est contrôlée, notamment par les lois cryptographiques. Elle estelle-même divisée en 3 sections (main, non-free, contrib).

Le rythme de publication est d’environ une version par an, voire moins. Aucune date de sortien’est annoncée à l’avance, la version sort quand elle est prête, et pas avant.

Actuellement, la version stable de Debian GNU/Linux est la version 2.2r3 «Potato». Elleoccupe 3 CD, et peut se trouver dans le commerce pour une centaine de Francs français. L’ins-tallation peut se faire via CD-ROM, FTP ou NFS, ce qui permet de faire des installations viaInternet. Ikarios9 propose toutes les distributions Linux existantes pour un prix modique, voilàdonc un moyen simple de se procurer une distribution à moindre coût.

2.2 La logithèque

Il existe beaucoup d’outils logiciels libres couvrant tous les domaines. La liste faite ici n’estde loin pas exhaustive et présente rapidement quelques logiciels.

Des captures d’écran de certains des logiciels listés ici sont visibles à la section 14, en page249.

Les adresses des sites Web concernant les différents logiciels sont à la section 15.26, en page262.

2.2.1 GNOME, l’environnement graphique

GNOME est l’environnement graphique du projet GNU. C’est un environnement extrême-ment puissant et somptueux.

Par défaut, il utilise le gestionnaire Enlightenment, mais l’utilisateur a la possibilité de chan-ger le gestionnaire utilisé, au profit de quelque chose de plus léger.

2.2.1.1 Gestionnaires de fenêtres

Le gestionnaire de fenêtres10 est un programme dont la tâche est de gérer les fenêtres af-fichées par l’interface graphique. GNOME supporte plusieurs gestionnaires différents. Parmiceux-ci, citons AfterStep, WindowMaker, Sawfish, Fvwm et d’autres encore. Enlightenment est legestionnaire livré en standard avec GNOME.

On peut installer tous ces gestionnaires sur les machines ; le choix d’utiliser l’un d’entre euxrevient à l’utilisateur.

2.2.2 Netscape, le navigateur Internet

La firme Netscape a effectué un portage sous divers Unices de son navigateur. Il a bienentendu été porté sous Linux.

Malgré la qualité du logiciel, il vaut mieux éviter l’utilisation de Java lors de la navigation,sous peine de voir le navigateur se figer ou se fermer tout simplement.

9http://www.ikarios.com10«Window Manager» en anglais.

21

Page 22: BONdossier Info

2 Choix du système d’exploitation et logithèque

Il ressemble comme deux gouttes d’eau à la version MS-Windows, comme vous pouvez leconstater sur la capture en annexe.

2.2.3 Mozilla, le prochain Netscape

Mozilla est destiné à être la base du prochain navigateur Netscape, Netscape 6. Il est pourl’instant en développement, mais une pré-version sort régulièrement.

Ces pré-versions sont tout à fait utilisables, bien que Mozilla ne soit pas encore optimisé.On regrette pour l’instant une certaine lenteur à afficher des pages très chargées.

2.2.4 Logiciels de transfert de fichiers

2.2.4.1 ProFTPd

ProFTPd est un serveur FTP. Installé sur le serveur, il permettra de proposer le télécharge-ment de fichiers, et autorisera chaque utilisateur à accéder à distance à ses fichiers dans sonrépertoire personnel.

2.2.4.2 GFTP

GFTP est un client FTP graphique, puissant mais malheureusement instable.

2.2.4.3 IglooFTP

IglooFTP est un client FTP shareware, disposant de nombreuses fonctionnalités. L’auteuraccorde des licences gratuites aux établissements d’enseignement sur simple demande. Ce n’estpas un logiciel libre.

2.2.4.4 NcFTP

NcFTP est un client FTP en mode texte, très puissant, rapide et stable.

2.2.5 Squid, le proxy HTTP

Squid sera installé sur le serveur d’accès, afin d’économiser un peu de bande passante. Sonrôle est de récupérer et de conserver dans un cache les sites consultés par les machines clientes.

Certaines pages ne sont pas conservées en cache, afin de respecter la vie privée et la confi-dentialité, telles les pages consultées par protocole sécurisé (HTTPS).

Par ailleurs, Squid gère une liste noire qui permet d’interdire l’accès à certains sites. Il existeplusieurs listes noires disponibles librement, recensant des sites à la moralité douteuse, qu’iln’est pas souhaitable de laisser accessibles dans un environnement scolaire. Ceci restant à l’ap-préciation de l’administrateur du site et/ou de sa hiérarchie.

22

Page 23: BONdossier Info

2 Choix du système d’exploitation et logithèque

2.2.6 Bind, le serveur DNS

Bind est le serveur DNS traditionnel d’Internet. Son but est de répondre aux requêtes desmachines clients en leur renvoyant un nom de machine, une adresse IP ou d’autres renseigne-ments à propos d’un domaine, selon la requête.

Le serveur DNS contrôle aussi notre domaine «etablissement.org» ; c’est ce serveur et luiseul qui a l’autorité pour notre zone, c’est à dire que les autres serveurs DNS du monde entierviendront lui soumettre des requêtes si besoin est.

2.2.7 Samba, interopérabilité avec l’environnement MS-Windows

Le logiciel Samba permet le partage de ressources entre plusieurs machines sous différentsenvironnement logiciels. Dans la plupart des cas, il s’agit de permettre le partage d’un disquedur entre un serveur sous environnement UNIX et un poste client sous environnement MS-Windows.

L’idée est ici de permettre l’accès aux répertoires personnels depuis un poste MS-Windowsdu réseau pré-existant dans l’établissement.

2.2.8 Logiciels de communication

2.2.8.1 Pour le mail

2.2.8.1.1 Sendmail, le serveur SMTP Sendmail est le serveur SMTP11 par excellence dessystèmes UNIX. Certains lui reprochent sa difficulté de configuration et lui préfèrent d’autresserveurs plus faciles à configurer. Malgré cela, tous reconnaissent que Sendmail est le serveurSMTP le plus robuste, car activement développé depuis de longues années.

2.2.8.1.2 Qpopper, le serveur POP3 Qpopper est un serveur POP312 libre. Le service POP3permet à l’utilisateur final de récupérer ses mails sur le serveur.

2.2.8.1.3 Netscape Netscape Communicator intègre Netscape Messenger, un logiciel permet-tant de lire/envoyer des e-mails. Il fonctionne tout à fait comme la version MS-Windows, avecles mêmes limitations, à savoir qu’il est limité à un seul compte POP.

2.2.8.1.4 Mozilla Mozilla intègre, tout comme Netscape, un client mail. Ce client est capablede gérer plusieurs comptes POP.

2.2.8.1.5 Balsa Balsa est un client mail graphique qui s’intègre dans l’environnement GNOME.Son design rappelle les logiciels les plus connus comme Outlook ou Netscape Messenger.

2.2.8.1.6 Gnus Gnus est un client mail et news très puissant qui s’exécute avec l’éditeur detexte Emacs, dans sa version GNU Emacs ou XEmacs. Emacs intègre en effet un interpréteur dulangage LISP qui permet d’exécuter des logiciels tels que Gnus.11Simple Mail Transfer Protocol : protocole simple pour le transfert du courrier.12Post Office Protocole : littéralement, «protocole bureau de poste», son but est de permettre aux destinataires de

récupérer leur courrier.

23

Page 24: BONdossier Info

2 Choix du système d’exploitation et logithèque

2.2.8.1.7 Mutt Mutt est un puissant client mail en mode texte. Il intègre toutes les fonctionsque l’on peut attendre d’un client mail évolué.

2.2.8.2 Pour les news

2.2.8.2.1 INN, le serveur de news InterNet News est le serveur de news par excellence.Robuste et complet, il est la base de Usenet depuis de longues années, et est toujours activementdéveloppé.

2.2.8.2.2 Netscape Netscape Messenger propose également la lecture des groupes de discus-sions, dans la même interface que celle utilisée pour le mail.

2.2.8.2.3 Mozilla L’interface utilisée pour la lecture du mail est également destinée à la lec-ture des news, à l’image de Netscape Messenger.

2.2.8.2.4 Pan Pan est un client news graphique s’intégrant dans l’environnement GNOME.On retrouve là aussi un graphisme rappelant les logiciels les plus connus, facilitant la prise enmain.

2.2.8.2.5 Gnus Gnus gère les news et les mails de la même manière, en transformant lesmails reçus en une sorte de groupe de discussion local. Il regorge de fonctionnalités, notammentla capacité de traiter un forum Web comme s’il s’agissait d’un groupe de discussion Usenetclassique.

2.2.8.2.6 Slrn Slrn est un client news en mode texte, extrêmement puissant à l’image deGnus. Il ne sait en revanche traiter que les groupes de discussion classiques.

2.2.9 Suite bureautique

2.2.9.1 StarOffice/OpenOffice, la suite bureatique selon Sun

Sun a racheté la suite bureautique StarOffice et la propose en libre téléchargement. Cettesuite est équivalente à Microsoft Office, remplissant les mêmes fonctions.

Elle intègre un traitement de texte, un tableur, une base de données, un outil de dessin, unoutil de présentation, un éditeur HTML, entre autres.

Cette suite est très complète, compatible avec la suite Microsoft Office, mais très gourmandeen mémoire. Cependant, sur les configurations énoncées plus avant, elle fonctionne sans pro-blèmes.

Sun a annoncé, durant la rédaction de ce dossier, le placement sous licence libre13 de Sta-13Plus exactement, Sun a placé sous double licence GNU General Public License (GNU Lesser General Public Li-

cense pour les bibliothèques partagées et certains autres composants) et Sun Industry Standard Source Licenseune version retravaillée de StarOffice. Plus précisément, tous les éléments dont Sun ne détient pas les droits delicence ont été retirés et remplacés par un équivalent appartenant à Sun ; à cela s’ajoute une opération de com-mentaire du code source (traduction de l’allemand vers l’anglais), afin que la Communauté des DéveloppeursLibres puissent modifier plus aisément OpenOffice.

24

Page 25: BONdossier Info

2 Choix du système d’exploitation et logithèque

rOffice. Cela a donné naissance à OpenOffice14, le 13 Octobre 2000.

2.2.9.2 Gnumeric, le tableur selon GNOME

Gnumeric est un tableur équivalent à Microsoft Excel, développé par le projet GNOME. Ilest actuellement utilisable, bien que développé activement.

2.2.9.3 AbiWord

AbiWord est un clone libre de Microsoft Word. Bien qu’il n’en ait pas toutes les fonctionna-lités, il est parfaitement utilisable et est capable de produire des documents tout à fait exploi-tables.

2.2.10 Éditeurs de texte

2.2.10.1 Emacs

Emacs, ou XEmacs, version plus orientée sur l’interface graphique, est un éditeur de textetrès puissant, complètement personnalisable, capable de coloration syntaxique, ou encore ca-pable d’exécuter des programmes, tels Gnus.

Il est essentiellement orienté vers la programmation, ce qui explique certaines fonctionsprésentes dans sa barre d’outils.

2.2.10.2 Vi

L’éditeur traditionnel du monde UNIX, il se décline dans plusieurs versions. Vim, pour laversion console et gVim pour une version intégrant une interface graphique, sont les versionsles plus à jour actuellement.

2.2.11 LATEX, le processeur de texte

LATEX est un jeu de macros pour le processeur de document TEX, c’est à dire qu’il s’occupede la mise en forme en fonction du style défini pour le document.

Un document TEX se présente comme un fichier texte normal, dans lequel se glissent desbalises qui indiquent aux macros comment elles doivent traiter ce texte, et donc commandentl’apparence du document obtenu au final.

Il y a deux solutions pour écrire un document en utilisant TEX :– utiliser un éditeur de texte comme Emacs, qui proposent un mode TEX, c’est-à-dire la

coloration syntaxique des balises et quelques fonctions qui rendent l’écriture plus facile– utiliser LYX, un programme que l’on peut assimiler à un traitement de texte, mis à part

que ce que l’on voit à l’écran n’est pas tout à fait ce que l’on obtiendra au final. L’écritured’un document est simplifiée de cette manière, permettant aux débutants de se familiari-ser avec TEX avant de peut-être apprendre à se servir pleinement des fonctionnalités dulangage

14http://www.openoffice.org

25

Page 26: BONdossier Info

2 Choix du système d’exploitation et logithèque

Ce document a été réalisé grâce à LYX et LATEX.Ce langage est très pratique pour des cours de chimie ou de physique, plus généralement

pour tous les documents qui nécessitent l’emploi d’expressions mathématiques.Il est nécessaire d’installer un visualisateur PostScript, tel que GhostView, ainsi qu’un visua-

lisateur DVI, tel que Xdvi ; en effet, les documents sont au format DVI ou PostScript en sortiedu processeur LATEX.

Par ailleurs, l’installation d’utilitaires tels jpeg2ps n’est pas inutile, pour inclure une illustra-tion dans un document, dans ce cas précis.

2.2.12 Logiciels pédagogiques

Les logiciels répertoriés ici le sont à titre indicatif. Libre à l’administrateur du site de lesinstaller ou non.

2.2.12.1 wget

Wget est un logiciel d’aspiration de sites Web, c’est à dire qu’il va récupérer toutes les pagesqui composent un site, afin que celui-ci soit disponible localement. Cela permet par exemplede faire un miroir temporaire d’un gros site sur le serveur local, afin d’économiser de la bandepassante.

Il existe une interface graphique pour wget, Gwget.

2.2.12.2 TiLP

TiLP permet le transfert de fichiers entre un ordinateur sous Linux ou MS-Windows et unecalculatrice graphique Texas Instrument.

Ce logiciel peut être très utile aux élèves pour transférer sur leur calculatrice des petitsprogrammes qui leur simplifient certains calculs, je pense que cela peut être très intéressant.

Son système de plugins permet d’étendre ses fonctionnalités.

2.2.12.3 Bluefish

Bluefish est un éditeur HTML permettant de réaliser facilement des documents HTML.

2.2.12.4 Screem

Screem est un éditeur HTML très complet et très puissant, disposant également d’une ges-tion de projet efficace.

2.2.12.5 xsky

Xsky propose une carte du ciel.

26

Page 27: BONdossier Info

2 Choix du système d’exploitation et logithèque

2.2.12.6 RasMol

RasMol est un logiciel permettant de visualiser des molécules en 3 dimensions, à partirde fichiers téléchargeables librement sur Internet. Le logiciel a été modifié pour accepter unaffichage en 65 536 couleurs ; la disponibilité du code source induite par le Logiciel Libre s’estavérée utile dans le cas de ce logiciel.

2.2.12.7 Xephem

Un logiciel d’astronomie surpuissant. Les dernières versions sont proprement étonnantesde par la qualité de la réalisation.

2.2.12.8 Lum

Un logiciel d’optique.

2.2.12.9 Mek

Un logiciel éducatif en français qui propose de voir le programme de mécanique du lycéeet du premier cycle universitaire.

2.2.12.10 Xem

Permet de tracer en quelques instants des courbes de dosages acides/bases.

2.2.12.11 MuPAD

Un logiciel de calcul formel

2.2.12.12 SciLab

Un paquetage mathématiques proposant de très nombreuses fonctionnalités, notamment letraçage.

Un support de cours est disponible sur le site de l’École Ouverte de l’Internet pour ces deuxderniers logiciels.

2.2.12.13 GNUPlot

Un logiciel de traçage de courbes.

2.2.12.14 Dia

Dia est un éditeur de diagrammes.

2.2.12.15 BWBasic

Un interpréteur du langage BASIC.

27

Page 28: BONdossier Info

2 Choix du système d’exploitation et logithèque

2.2.12.16 DrGeo

Un logiciel de découverte/exploration de la géométrie.

2.2.12.17 The GIMP

Le célèbre logiciel de retouche d’images.

2.2.12.18 Moonlight Creator

Un logiciel de modélisation en 3 dimensions.

2.2.12.19 Blender

Un logiciel permettant de créer des animations en 3 dimensions.Ces deux derniers logiciels sont d’un maniement complexe, comme tous les logiciels pro-

posant ces fonctionnalités.

28

Page 29: BONdossier Info

3 Description des services proposés

Outre l’accès à Internet, ce projet proposera aux élèves plusieurs autres services, plus oumoins essentiels pour pouvoir tirer pleinement parti d’Internet.

3.1 Une adresse e-mail pour tous

Internet ne servirait à rien sans l’e-mail. Chaque personne possédant un login sur les ma-chines se verra attribuer une adresse du type «[email protected]». Cette boîte aux lettressera toutefois limitée à 30 Mo, ceci afin de répartir les ressources, notamment l’espace disque.

3.2 Un Web pour tous

Internet est surtout connu pour le Web. Qu’à cela ne tienne, pourquoi ne pas proposer unpetit espace aux personnes le désirant ? Beaucoup apprécieront ce petit espace d’expression,qu’ils soient élèves ou professeurs. Cela permettra aussi d’héberger le site de l’établissement,moyennant un peu de configuration.

L’accès à cet espace se fera par l’adresse http ://eleves.etablissement.org/~login/,ou http ://profs.etablissement.org/~login/.

Cet espace est partie intégrante du répertoire personnel de chaque utilisateur. Les docu-ments à publier sur le Web sont à placer dans le répertoire1 ~/public_html/.

3.3 Les news pour tous

Les groupes de news2 sont des espaces privilégiés pour discuter d’un sujet précis. Nousinstallerons un serveur de news transportant plusieurs hiérarchies, correspondant aux languesenseignées dans l’établissement. Les élèves désirant perfectionner leurs langues vivantes pour-ront alors discuter des sujets les intéressant dans l’une ou l’autre de ces langues.

La célèbre hiérarchie alt.*, symbole de l’anarchisme technologique, ne peut plus, quant àelle, être propagée en milieu scolaire après un sérieux incident ayant entraîné de lourdes consé-quences judiciaires en Janvier 19973. Elle ne le sera donc pas. Son trafic gigantesque4 ne lepermettrait pas, d’ailleurs, pas plus que son contenu, en grande partie pornographique et/ouillégal.

1Le tildé (~) symbolise le répertoire personnel d’un utilisateur.2Aussi appelés «newsgroups», ou, plus français, groupes de discussion.3Diffusion d’images à caractère pédophile. La hiérarchie étant alors propagée par toutes les universités françaises,

l’affaire a fait grand bruit, entraînant un boycott préventif.4Actuellement, le trafic journalier approche les 11 Go et est en augmentation constante.

29

Page 30: BONdossier Info

3 Description des services proposés

3.4 Autres services

Tout, ou presque, est faisable. Partant de là, tout dépend de l’administrateur du site, de saconnaissance du système et de son temps libre.

30

Page 31: BONdossier Info

4 Descriptions et explications techniques decertains services

4.1 DNS

Le Domain Name Service («service nom de domaine») est une des composantes logiciellesles plus importantes d’Internet et des réseaux IP en général. Son but est de vous renseigner àpropos d’un hôte et/ou d’un domaine.

Ces renseignements servent à l’établissement de la communication entre votre machine etla machine distante et à l’acheminement de votre courrier électronique notamment.

Le DNS a été créé pour une raison très simple. Lorsque seules quelques dizaines ou cen-taines de machines étaient capables de dialoguer au moyen d’ARPANET ou du naissant In-ternet, chaque machine possédait un fichier hosts (comprenez /etc/hosts) qui contenait les cor-respondances noms↔ adresses réseau de chaque machine. Ce fichier était mis à jour réguliè-rement à partir d’un site FTP central. Seulement, avec le temps, ce fichier a considérablementgrossi, rendant sa présence sur chaque machine pénible. Il a donc été décidé de centralisertoutes ces informations sur un certain nombre de machines dédiées. Ce sont les root-servers ([am].root-servers.net).

Pour faciliter la gestion de chaque zone (comprenez chaque nom de domaine, un nom de do-maine étant une zone), la base de données qui gère les noms de domaines contient les adressesréseau d’un certain nombre de machines (généralement deux) qui sont les serveurs DNS decette zone. Parmi ces machines, il y a un serveur maître et des serveurs esclaves. Les esclavesallant chercher sur le serveur maître le fichier contenant les informations de la zone, partageantainsi les mêmes informations. Les root-servers sont également les esclaves du serveur maître dechaque zone, des esclaves particuliers cependant, puisqu’ils sont les serveurs centraux.

Ainsi, lorsque vous voulez accéder à un site Web, par exemple, vous allez envoyer unerequête à votre serveur DNS. Celui-ci va consulter son cache, puis, s’il ne connaît pas l’hôte,ira demander à l’un des root-servers quels sont les serveurs DNS qui ont l’autorité sur la zonedont fait partie la machine distante. Une fois qu’il aura cette information, il lancera une re-quête vers l’un des serveurs DNS de la zone qui lui retournera l’adresse réseau de la machinedistante. Votre navigateur reçoit ensuite l’information qu’il attendait, c’est-à-dire cette mêmeadresse réseau, puis va tenter d’établir une connexion avec la machine distante, afin d’afficherle document que vous avez demandé.

Tout ceci se passe en quelques dixièmes de seconde, mais nécessite quelques heures detravail de la part des différents administrateurs en charge des différentes machines utilisées.

L’organisation du DNS est hiérarchique, et peut-être résumée sous forme d’arbre. Le pointde départ de cet arbre est le «.». Puis viennent les différents Top-Level Domains (TLD, ou do-maines de premier niveau), tels ORG, NET, EDU, COM. Viennent ensuite ce que nous appe-

31

Page 32: BONdossier Info

4 Descriptions et explications techniques de certains services

lons les domaines. Ensuite les sous-domaines, etc. . . à l’infini. Il est aussi possible de déléguerla gestion DNS d’un sous-domaine à une machine particulière, complexifiant encore un peuplus l’arbre que nous évoquions tout à l’heure.

Mais qu’est-ce que «.» ? Et bien c’est simplement le commencement de tout. C’est à direque, prenons fremen.etablissement.org comme exemple, un nom de machine s’écrit sous la formefremen.etablissement.org., et non pas fremen.etablissement.org comme nous avons l’habitude del’écrire lorsque nous donnons une URL à notre navigateur Web. Les noms de domaines selisent donc de la droite vers la gauche afin de simplifier et de rendre plus rapide la résolutionde noms.

4.2 Usenet

De part la forme des messages, on pourrait dans un premier temps comparer Usenet à unsimple service de listes de diffusion. Mais ce n’en est pas un.

Usenet permet de mener une discussion par le biais de messages textuels, tout autour dumonde et quelque soit l’heure. Les messages sont archivés durant une certaine période (géné-ralement quatorze jours), puis sont effacés du serveur.

Usenet n’est pas centralisé sur une ou deux machines, mais est composé de centaines demilliers de machines, interconnectées par des lignes téléphoniques, par des lignes spécialiséesà très haut débit, par le biais de simples accès Internet grand public ou encore au moyen d’unavion et de bande perforée (si ce n’est plus utilisé à l’heure où vous lisez ce document, sachezque cela se faisait encore il n’y pas si longtemps). De ce fait, le système est très tolérant auxpannes et très flexible.

Usenet est organisé autour de plusieurs hiérarchies, parmi lesquelles on peut citer alt.*,fr.*, le «Big8»1, ru.*, fx.*, et des dizaines d’autres. Dans ces hiérarchies se dégagent plusieurscatégories, puis des sous-catégories, et enfin des groupes. On peut, là encore, résumer unehiérarchie par un arbre. Les hiérarchies sont réparties principalement par langues, mais aussipar sujet. Les groupes sont eux répartis par sujets.

Lorsque vous postez un article sur un de ces groupes, celui-ci est enregistré par le serveur,puis transmis au serveur voisin, puis à un autre, et à plusieurs dizaines de milliers d’autres. Ceque vous écrivez de chez vous à un instant X sera disponible sur un serveur à l’autre bout dumonde à un instant Y, le temps séparant ces deux instants variant de quelques millisecondes àquelques minutes.

Le Logiciel Libre est très lié à Usenet, car c’est un formidable moyen pour les développeurset utilisateurs de communiquer entre eux, permettant un échange rapide d’informations. C’estaussi un moyen sûr pour trouver rapidement des réponses à presque n’importe quel problème,ou pour simplement passer un bon moment.

1La hiérarchie internationale, composée en réalité de huit hiérarchies : comp.*, news.*, rec.*, soc.*, misc.*, sci.*,talk.*, humanities.*

32

Page 33: BONdossier Info

5 Mise en place matérielle

5.1 Liaison

Je ne couvrirais pas cette partie, ne sachant pas quel type de liaison sera retenu par l’établis-sement. Toutefois, ce projet se base sur une liaison fixe haut débit, disposant d’au moins deuxadresses IP fixes.

En effet, les solutions d’accès Internet déployées dans les établissements scolaires sont gé-néralement de simples routeurs Numéris, coûteux, lents et complètement obsolètes.

Comparativement, un accès par technologie câble ou xDSL revient beaucoup moins cherpour une qualité et un débit nettement supérieurs.

Sur le territoire français, l’offre Netissimo 2 de France Télécom est un excellent choix quiconviendra très bien. Certains fournisseurs, tel que Nerim1 par exemple, fournissent des adressesIP fixes pour un prix très raisonnable. L’offre Netissimo 1 peut également s’avérer suffisante.Dans le cas d’une ligne ADSL, la topologie du réseau sera toutefois différente de celle présentéeci-dessous. L’utilisation d’un routeur/modem ADSL est une solution envisageable.

5.2 Réseau

L’architecture du réseau est relativement simple ; le serveur et le serveur d’accès sont reliésdirectement à Internet. Les cinq machines clientes sont reliés au réseau par le biais du serveurd’accès, grâce à un simple hub Fast-Ethernet (100 Mb/s). Sur ce même hub viendront se connec-ter le serveur et le serveur d’accès, permettant le partage des répertoires utilisateurs et l’accèsà Internet.

Les deux serveurs disposent chacun d’une adresse IP publique fixe. Les clients, quant àeux, disposent chacun d’une adresse fixe, mais privée et non routable (si vous disposez desuffisamment d’adresses publiques pour en assigner également aux postes clients, n’hésitezpas).

Éclairons tout ceci par le schéma de la figure 5.1. Basons-nous sur une connexion de typeLigne Spécialisée, ou câble, sur lesquelles l’on se connecte au moyen d’équipements réseauEthernet (10 Mb/s ou 100 Mb/s).

1http://www.nerim.net

33

Page 34: BONdossier Info

5 Mise en place matérielle

FIG. 5.1 – Architecture du réseau

34

Page 35: BONdossier Info

5 Mise en place matérielle

5.3 Machines

5.3.1 Serveur

Le serveur sera mis à l’abris, si possible dans un placard. Le clavier, la souris et l’écran nesont nécessaires que pour l’installation et peuvent être retirés par la suite, afin d’éviter tout inci-dent. Il devra toutefois être accessible pour permettre l’échange des cartouches de sauvegarde.

En effet, le plus gros risque pour une machine quelle qu’elle soit réside dans son accèsphysique, et non dans son accès par le réseau, contrairement à ce que les médias nous fontcroire.

5.3.2 Serveur d’accès

Il doit rester accessible, car il servira à l’administration du site. Le clavier peut être enlevélorsque la machine n’est pas utilisée, afin de limiter les risques.

5.3.3 Clients

Accessibles par tous, ils disposent en permanence de leurs claviers, souris et écrans.

5.4 Disponibilité des machines

Les machines seront allumées en permanence. Il n’y a en effet pas de risques de «plantages»,et il est inutile de perdre du temps à allumer et éteindre les 5 machines clients tous les jours,alors que le matériel est aujourd’hui prévu pour cet usage.

Les deux serveurs, quant à eux, ne peuvent être arrêtés. En effet, ils accueillent des servicesessentiels qu’on ne peut interrompre.

Il convient de protéger électriquement les deux serveurs au moyen de deux onduleurs. Unedurée de 20 minutes devrait être suffisante pour garantir la continuité de l’alimentation. Onveillera à entretenir ces deux onduleurs en les déchargeant régulièrement. Il est également pos-sible de brancher sur l’onduleur du serveur d’accès, par exemple, les équipements de liaison,tels le premier hub et un éventuel équipement fourni par le prestataire de liaison.

Il est fortement conseillé d’utiliser un logiciel de surveillance de l’onduleur, qui permetd’arrêter proprement les machines lorsque les batteries de l’onduleur dépassent un seuil cri-tique2.

2APC et Merlin Gerin ont notamment fait un gros efforts sur ce plan depuis quelques mois.

35

Page 36: BONdossier Info

6 Installation du système Debian GNU/Linux

Je ne vais pas décrire ici l’intégralité de la longue procédure d’installation du système De-bian GNU/Linux. L’installation est rendue particulièrement longue par la sélection des paque-tages logiciels à installer. En effet, Debian propose plus de 5000 paquetages, parmi lesquels ilfaudra sélectionner ceux que nous voulons utiliser, en prenant garde aux problèmes de conflitset de dépendances.

Heureusement, l’utilitaire de sélection des paquetages prend garde à ces problèmes de dé-pendances et de conflits, et vous proposera immédiatement de résoudre le problème dès qu’ilsurvient.

Petit bémol, le système d’installation est pour le moment uniquement disponible en anglais.L’installation peut se faire au moyen d’une connexion Internet (FTP, HTTP), à partir d’un

disque local où résident les fichiers, à partir d’un volume monté par NFS, ou, bien entendu, parle biais des 3 CD-ROM d’installation de Debian GNU/Linux «Potato».

Je préciserai, dans les sections qui suivent, quels sont les paquetages importants que nousavons besoin d’installer. Je ne détaille pas les paquetages de base d’un système UNIX, la listeserait trop longue.

Une documentation détaillée, claire, précise et normalement disponible en Français est four-nie avec la distribution Debian GNU/Linux ; elle se trouve sur les CD-ROM d’installation ainsique sur les serveurs FTP et HTTP du projet. Je vous conseille de récupérer et d’imprimer cetteprécieuse documentation.

6.1 Serveur

Le serveur sera dépourvu d’interface graphique, celle-ci étant une aberration consomma-trice de ressources dans ces conditions. Nous n’installerons donc que les différents serveurs etutilitaires dont nous aurons besoin, et rien de plus.

Bien que nous n’installions pas d’interface graphique, certains programmes dépendent dela xlib6g ; installez le paquetage et rien de plus.

La liste n’est pas exhaustive ; elle ne comporte que les logiciels indispensables pour mettreen place les différents services. Un certain nombre d’autres outils doivent être installés afind’avoir un système UNIX utilisable.

– sendmail : notre serveur SMTP– bind : notre serveur DNS– dnsutils : une panoplie d’outils permettant d’interroger les serveurs DNS– inn2 : le serveur de news INN, dans sa version 2.2.2– apache : le serveur web Apache– qpopper : notre serveur POP3

36

Page 37: BONdossier Info

6 Installation du système Debian GNU/Linux

– proftpd : notre serveur FTP– samba : permet le partage de ressources avec l’environnement MS-Windows– nfs-common et nfs-kernel-server : le serveur NFS et les fichiers communs aux clients et au

serveur– nis : le serveur NIS, permettant le partage d’informations à propos des comptes utilisa-

teurs– quota : utilitaires pour la gestion des quotas d’espace disque– ntp : permet de garder la machine à l’heure– libgd-perl : utilisé par innreport et MRTG pour générer les graphiques– snmpd : permet la surveillance de diverses informations sur l’état du réseau et des hôtes– snmp : les utilitaires permettant de lancer des requêtes SNMP1

– mrtg2 : permet de surveiller la charge sur un réseau, et produit des graphiques avec lesinformations recueillies

– sudo : permet d’accorder les droits de l’administrateur3 au coup par coup à certains utili-sateurs

– ssh : permet d’accéder à la machine à distance, de manière sécurisée– screen : multiplexeur de terminaux, permet l’affichage de 10 terminaux virtuels sur un

terminal physique– telnet : nous n’installons que le client telnet, pas le serveur, pour des raisons de sécurité– les outils de développement standards : make, gcc, libc6-dev, etc. . .– les éditeurs et manipulateurs de texte : vim, Emacs, sed, awk, . . .– les afficheurs de texte : less, more

Lors de l’installation, il est nécessaire de partitionner, formater et monter les différents disquesdurs. Le premier disque comportera une partition de quelques dizaines de Mo (20 ou 30 Mosont suffisants) en début de disque, que l’on montera sous /boot, ainsi qu’une partition de swap4

de 128 Mo, et une troisième partition, montée sous /.Le deuxième disque sera une seule et même partition, montée sous /home.Le troisième disque sera une seule et même partition, montée sous /var/spool/mail.Le quatrième disque sera une seule et même partition, montée sous /var/spool/news. Contrai-

rement aux autres, il faudra le formater manuellement durant l’installation, en utilisant la com-mande mke2fs -T news <partition à formater> qui formatera la partition avec des options spé-ciales, correspondant à l’usage particulier d’un spool de news.

Remarquez que vous devez monter la partition correspondant à / avant de monter les autrespartitions.

Lors de la configuration de la zone horaire, veillez à entrer l’heure GMT, et choisissez lazone GMT, ceci afin de ne pas souffrir du changement d’heure. Rappel (pour la France) :

– été←→ GMT + 2 heures– hiver←→ GMT + 1 heure

Ne créez pas de nouvel utilisateur lorsque cela vous est demandé. Nous travaillerons en roottant que le service NIS n’aura pas été configuré.

1Simple Network Management Protocol : protocole simple de gestion du réseau.2Multi Router Traffic Grapher.3Administrateur dont le login est «root», par tradition.4Mémoire virtuelle.

37

Page 38: BONdossier Info

6 Installation du système Debian GNU/Linux

6.2 Serveur d’accès

Là aussi, nous n’installons pas d’interface graphique. La console est amplement suffisante,et il est possible de se connecter à distance sur la machine (besoin de plusieurs terminaux, parexemple).

– sendmail : notre serveur SMTP– squid : le proxy HTTP– squidguard : un redirecteur pour Squid qui permet d’effectuer un filtrage– bind : notre serveur DNS– dnsutils : une panoplie d’outils permettant d’interroger les serveurs DNS– nfs-common : les fichiers communs aux clients et au serveur– nis : le client NIS, permettant le partage d’informations à propos des comptes utilisateurs– ntp : permet de garder la machine à l’heure– snmpd : permet la surveillance de diverses informations sur l’état du réseau et des hôtes– sudo : permet d’accorder les droits de l’administrateur au coup par coup à certains utili-

sateurs– ssh : permet d’accéder à la machine à distance, de manière sécurisée– telnet : nous n’installons que le client telnet, pas le serveur, pour des raisons de sécurité– ipchains : utilitaire de configuration du firewalling/masquerading pour Linux v2.2– apsfilter : les filtres permettant l’utilisation des imprimantes. Divers utilitaires sont né-

cessaires, tels a2ps, html2ps, . . . L’utilisation de magicfilter peut s’avérer nécessaire si lesimprimantes ne sont pas reconnues par apsfilter.

– gs : GhostScript permet l’impression des documents PostScript. Il est utilisé par apsfilter etmagicfilter.

– les outils de développement standards : make, gcc, libc6-dev, etc. . .– les éditeurs et manipulateurs de texte : vim, Emacs, sed, awk, . . .– les afficheurs de texte : less, more

Ici, nous créerons une partition de swap de 128 Mo en début de disque, puis une petite partition(20 ou 30 Mo suffisent) que nous montons sous /boot, et le reste du disque sera une seule etmême partition montée sous /.

Remarquez qu’il faut monter la partition destinée à / avant de monter celle destinée à /boot.Ici aussi, veillez à configurer la machine en heure GMT dans la zone horaire GMT.Lors de l’installation, le programme d’installation vous demande si vous souhaitez créer un

autre utilisateur. Ne créez pas d’utilisateur, rappelez-vous que nous utilisons un serveur NISet que nous montons un volume NFS pour les répertoires personnels, bien que seul l’admi-nistrateur ne soit appelé à se servir de cette machine. Ceci pour lui permettre d’accéder à sonrépertoire personnel, comme s’il utilisait une des machines clientes.

Il vous faudra sélectionner les modules ip_masq_ftp, ip_masq_cuseeme, ip_masq_irc, ip_masq_raudiolors de l’installation.

6.3 Machines clientes

– sendmail : notre serveur SMTP– nfs-common : les fichiers communs aux clients et au serveur– nis : le client NIS, permettant le partage d’informations à propos des comptes utilisateurs

38

Page 39: BONdossier Info

6 Installation du système Debian GNU/Linux

– sudo : permet d’accorder les droits de l’administrateur au coup par coup à certains utili-sateurs

– ssh : permet d’accéder à la machine à distance, de manière sécurisée– snmpd : permet la surveillance de diverses informations sur l’état du réseau et des hôtes– telnet : nous n’installons que le client telnet, pas le serveur, pour des raisons de sécurité– l’interface graphique X-Window : le serveur X5 idoine, ainsi que l’environnement gra-

phique GNOME et les différents gestionnaires de fenêtres cités plus haut.– les logiciels cités dans la section 2.2 (page 21) et concernant les postes clients– les outils de développement standards : make, gcc, libc6-dev, etc. . .– les éditeurs de texte : vim, Emacs, sed, awk, . . .– les afficheurs de texte : less, more

Ici, nous créerons une partition de swap de 128 Mo en début de disque, puis une petite partition(20 ou 30 Mo suffisent) que nous montons sous /boot, et le reste du disque sera une seule etmême partition montée sous /.

Là aussi, vous devez monter la partition correspondant à / avant de monter les autres par-titions.

Lors de la configuration de la zone horaire, entrez l’heure courante, et sélectionnez la zonehoraire «Europe/Paris» (pour la France). En d’autres termes, les machines clientes seront ré-glées à l’heure légale. Lors du changement d’heure, veillez à ce qu’il se soit effectué correcte-ment !

Lors de l’installation, le programme d’installation vous demande si vous voulez créer unautre utilisateur. Ne créez pas d’utilisateur, rappelez-vous que nous utilisons un serveur NIS etque nous montons un volume NFS pour les répertoires personnels.

6.3.1 Réplication des machines clientes

L’installation de Debian GNU/Linux est quelque peu longue lorsque l’on choisit de sélec-tionner soi-même les paquetages à installer. Installer cinq machines (ou plus) avec exactementles mêmes paquetages est une chose fastidieuse et éprouvante, pour l’avoir fait.

L’utilitaire de gestion des paquetages, dpkg, permet de répliquer l’installation d’une ma-chine assez facilement. Détaillons la marche à suivre :

– Installez la première machine cliente. Lors de la sélection des paquetages, choisissez l’op-tion «advanced». Repérez bien cette étape.

– Configurez entièrement la machine. Si vous avez oublié des logiciels, installez-les. Dres-sez une liste des fichiers de configuration que vous avez modifiés.

– Il s’agit maintenant de récupérer la liste des paquetages installés et de la mettre dans unfichier, pour pouvoir l’exploiter par la suite. Exécutez la commande :

dpkg --get-selections > pkg-client.txt

– Transférez le fichier pkg-client.txt sur une disquette (de préférence contenant un systèmede fichier ext2, c’est à dire formatée en ext2).

– Débutez l’installation de la prochaine machine cliente, puis, à l’écran vous informantque dselect va être lancé, basculez sur le shell (console 2, Alt + F2), montez la disquettecontenant le fichier pkg-client.txt (dans /instmnt par exemple).

5Le serveur dépend du type de carte installée sur la machine. La liste des cartes supportées est incluse dans ledescriptif du paquetage.

39

Page 40: BONdossier Info

6 Installation du système Debian GNU/Linux

– Exécutez la commande :

dpkg --set-selections < /instmnt/pkg-client.txt

– Démontez la disquette, revenez sur la procédure d’installation (console 1, Alt + F1), puiscontinuez.

– Arrivé dans dselect, aller dans la rubrique «Select» : tous les paquetages installés sur lapremière machine doivent être sélectionnés.

– Sortez, choisissez «Install».Vous venez de gagner approximativement une heure.

Il ne vous reste plus qu’à configurer la machine à l’image de la précédente, moyennant lesinformations propres à la machine (adresse IP, nom, etc. . .).

6.4 Shadow passwords et MD5

Sur toutes les machines, nous activerons les shadow passwords et le MD5.

6.5 Note à propos des logiciels

Les logiciels présentés dans la section 2.2.12 (page 26) ainsi que StarOffice/OpenOffice ouIglooFTP, ne sont pas tous disponibles sous forme de paquetages Debian.

De ce fait, l’administrateur devra installer ces logiciels à partir de leur code source ou deleur distribution binaire. Le plus généralement, cela se fait en 6 étapes, grâce aux outils GNU :

– récupération de l’archive contenant les sources– décompression de l’archive– lancement du script configure– compilation– installation– suppression des sources

Toutefois, si vous désirez un paquetage Debian pour l’un ou l’autre de ces logiciels, vous pou-vez me contacter, je ferai mon possible pour «debianiser» ledit logiciel, si l’auteur n’y voit pasd’objections, et que cela n’est pas déjà fait. Vous pouvez également solliciter n’importe quelDéveloppeur Debian de votre connaissance, qui, s’il en a le temps et l’envie, fera son possible.Vous pouvez également construire vous-même un paquetage en suivant les documentationsidoines.

40

Page 41: BONdossier Info

7 root, le super-utilisateur

Sur un système multi-utilisateurs, chaque utilisateur a des droits spécifiques. Il ne peut agirque sur certaines parties du système, ceci afin de ne pas compromettre le travail des autresutilisateurs.

Il est donc nécessaire pour assurer l’administration du système d’avoir recours à un utilisa-teur ayant absolument tous les droits. Sous MS-Windows NT, cet utilisateur est nommé «Admi-nistrateur» (dans la version française). Sur les systèmes UNIX, ce super-utilisateur est nommépar tradition «root».

«root» en anglais signifie «racine». On comprend dès lors mieux l’origine du nom donné àcet utilisateur. En effet, le root est à la base de la vie du système. Sans lui, rien ne me marche.

7.1 Les opérations réservées

De ce fait, seul le root est autorisé à effectuer certaines opérations. Il est par exemple le seulà pouvoir arrêter ou démarrer certains programmes, à pouvoir modifier certains fichiers, etc. . .

Si vous vouliez redémarrer un daemon1 arrêté pour une cause quelconque, vous devriezvous logguer2 en tant que root puis exécuter la commande adéquate.

Idem si vous vouliez modifier la configuration de sendmail, de proFTPd ou encore de Squid.Bien évidemment, le root est seul à pouvoir ajouter ou supprimer des utilisateurs.

7.2 Sécurité

Étant donné l’importance de cet utilisateur, il y a quelques précautions à prendre pour évitertout problème.

7.2.1 Ne pas travailler en root

Lors de l’installation des machines, nous devrons travailler un certain temps en tant queroot. C’est un moment exceptionnel dans la vie d’un système, qui ne se produit qu’une seule etunique fois. Il ne faut pas que cela devienne une habitude.

En effet, en tant que root, vous pouvez tout faire, y compris effacer complètement et irré-médiablement le système. Vous devez être vigilant par rapport aux programmes ou scripts quevous exécutez en tant que root. Il est conseillé d’éviter l’exécution de programme dont on a

1Disk And Extensions MONitor : sont appelés daemons les programmes serveurs, tels sendmail, INN, proFTPd, ouencore les programmes qui veillent à la vie du système, tel syslog qui permet de consigner dans un journal lesévènements.

2Ouvrir une session (to log in).

41

Page 42: BONdossier Info

7 root, le super-utilisateur

des raisons de douter de leur provenance. Il est également fortement conseillé de lire un scriptavant de l’exécuter afin de savoir ce qu’il va faire. Imaginez un simple script Bash3 contenant lacommande «rm -rf /»4, ou tout autre dérivée. Eh bien, vous y êtes, le système est intégralementeffacé.

7.2.2 Répertoire personnel

Le répertoire personnel de root est /root. Il est local à chaque machine et ne peut ni ne doitêtre partagé. En effet, si le répertoire personnel d’un utilisateur n’est pas accessible, celui-ci nepeut pas ouvrir de session sur la machine. Il serait embêtant que root ne puisse travailler parceque son répertoire ne peut être accédé à cause d’un montage NFS indisponible.

7.2.3 Contourner les problèmes de droits

Il y a plusieurs moyens permettant de s’approprier les droits du root pour une périodetemporaire. Il y en a trois principaux :

7.2.3.1 L’utilitaire su

Il permet d’ouvrir une session root pendant une session d’utilisateur normal. Le mot depasse du root est alors demandé, puis la session démarre si celui-ci est correct. On quitte lasession par la commande «exit», comme pour une session normale. Il peut être invoqué avecdifférentes options :

– su : ouvre une session root en conservant l’environnement de l’utilisateur courant– su - : ouvre une session root et charge l’environnement du root à la place de l’environne-

ment de l’utilisateur. Celui-ci sera restauré lorsque l’on sortira de la session– su - <utilisateur> : ouvre une session en tant que <utilisateur>, en chargeant l’environne-

ment de l’utilisateur. Le mot de passe de <utilisateur> est requis.On remarquera que le root n’a pas besoin de connaître le mot de passe d’un utilisateur pourouvrir une session sous cet utilisateur au moyen de su. L’inconvénient de su est qu’il requiertla connaissance du mot de passe de l’utilisateur, ce qui est embêtant dans le cas de root.

7.2.3.2 L’utilitaire sudo

Il permet à certains utilisateurs de lancer une commande en tant que root. Seuls les utilisa-teurs répertoriés par le root dans le fichier de configuration de sudo (/etc/sudoers) ont le droitd’invoquer cette commande. Si un autre utilisateur essayait de se servir de sudo sans être enre-gistré, le root recevrait un mail l’informant de cette tentative d’utilisation frauduleuse. Il permetà peu près les mêmes choses que su, permettant en plus de spécifier un certains nombres decommandes que l’utilisateur peut lancer.

– sudo <commande> : demande le mot de passe de l’utilisateur, puis lance <commande>– sudo -u <utilisateur> <commande> : demande le mot de passe de l’utilisateur, puis lance

<commande> en tant que <utilisateur>3Bash est un shell standard sous UNIX qui peut interpréter des fichiers exécutables comprenant des commandes

reconnues par le shell.4rm -rf / : effacer récursivement sans message d’avertissement le répertoire /.

42

Page 43: BONdossier Info

7 root, le super-utilisateur

– sudo -s : lance le shell spécifié par la variable d’environnement $SHELL, ici en tant queroot.

Les options sont bien sûr combinables.Vous trouverez plus de détails à propos de ces options dans les pages de man5 concernant

su, sudo et sudoers.

7.2.3.3 Le bit setUID

Le bit setUID est un moyen simple de donner la possibilité à tous les utilisateurs de lancerun programme donné en tant que root. Il suffit de positionner le bit setUID du programme enquestion par la commande :

chmod +s <fichier>

Le programme sera alors exécuté avec les droits de root.

7.2.4 Permissions spéciales

Il se peut que certains programmes nécessitent des permissions spéciales sur certains fi-chiers pour fonctionner convenablement.

Il s’agit en particulier des fichiers se trouvant dans /dev et qui permettent la communicationentre les programmes et le matériel.

TiLP, notamment, nécessite un accès en lecture et écriture aux ports série et parallèle de lamachine (c’est-à-dire aux fichiers /dev/ttyS* et /dev/lp*) pour fonctionner correctement.

Il y a deux possibilités pour accorder ces droits :– positionner le bit setUID sur le fichier exécutable du programme (ce qui ne fonctionne

plus avec les programmes utilisant la bibliothèque graphique GTK+)– accorder à l’utilisateur les droits sur les ressources concernées (ce qui peut ne pas être

suffisant)La deuxième solution est tout aussi facilement applicable, car il vous suffit de faire en sorteque vos utilisateurs soient membres des groupes possédant les droits sur les ressources concer-nées. Pour les ports série et parallèle, les groupes dialout et lp sont concernés. Les membres deces groupes ont les droits en lecture et écriture sur les ports série et parallèle, par conséquentn’importe quel membre de ces groupes aura les mêmes droits.

Avant d’accorder des droits supplémentaires à vos utilisateurs, assurez-vous qu’ils ne peuventrien faire de dangereux en profitant de ces droits.

7.2.5 Lecteurs de disquettes et de CD-ROM

Par défaut, seul root peut accéder aux lecteurs de disquettes et de CD-ROM.Pour qu’un utilisateur non-privilégié puisse accéder à ces ressources, il convient de modifier

les options du lecteur dans le fichier /etc/fstab. La ligne :

/dev/fd0 /floppy auto defaults,user,noauto 0 0

5Système de documentation en ligne (MANuel) des systèmes UNIX, appelé par «man sudo» ou «man 8 sudo». Plusde détails dans la page de man de man (disponible par «man man»).

43

Page 44: BONdossier Info

7 root, le super-utilisateur

permet à chaque utilisateur (paramètre user) de monter le lecteur de disquettes (/dev/fd0)dans le répertoire /floppy en tapant simplement mount /dev/fd0.

7.3 Confidentialité

7.3.1 Mot de passe du root

Il doit bien entendu rester secret et connu d’une seule et unique personne. Vous ne devez lecommuniquer à personne, et le changer régulièrement. C’est absolument nécessaire pour assurerune bonne sécurité du système.

7.3.2 Données utilisateurs

Le root ayant tous les droits, il peut à sa guise agir sur tous les fichiers présents sur lesystème, même si vous n’accordez les droits sur vos fichiers qu’à vous et vous seul.

Par conséquent, les utilisateurs de sudo peuvent également visionner et modifier n’importequel fichier. Il convient donc de bien choisir les personnes que vous enregistrerez comme uti-lisateurs de sudo. Lors de la première utilisation de sudo, chaque utilisateur voit apparaître àl’écran une note concernant la confidentialité des données. Puis, il doit confirmé qu’il a bien lucette note et qu’il est conscient de ses responsabilités.

Je vous conseille fortement de restreindre les commandes accessibles aux «sudoers»6.Maintenant, il peut utiliser sudo. À bon ou mauvais escient. Ne vous fâchez jamais avec l’un

de vos «sudoers», vous ne pouvez pas prévoir sa réaction.

6Utilisateurs enregistrés de sudo.

44

Page 45: BONdossier Info

8 Configuration du serveur

8.1 Compilation du noyau

Le noyau générique fourni avec la distribution Debian contient un certain nombre de pi-lotes de périphériques qui nous sont inutiles. Cela entraîne une consommation de mémoireplus importante, et des performances moindres, dans une certaine mesure. Nous allons donccompiler un noyau sur mesure pour notre machine.

Commencez par récupérer les sources du dernier noyau 2.2.x (le kernel 2.4.x est supportéégalement par Debian 2.2r3) sur ftp.fr.kernel.org, par exemple. Placez l’archive dans le réper-toire /usr/src. Vérifiez qu’il n’y a pas de répertoire nommé «linux», s’il y en a un, renommez-le.Maintenant, décompressez l’archive contenant les sources du noyau.

Un nouveau répertoire «linux» est apparu, celui-ci contient les sources du noyau. Allez dansce répertoire, et lancez la commande (le paquetage libncurses-dev doit être installé) :

make menuconfig

Après la compilation de quelques fichiers, une interface graphique apparaît. Nous allons main-tenant configurer le noyau Linux. En dehors des composants requis pour la bonne marche dela machine, veillez plus particulièrement aux options suivantes :

– utilisation des pilotes expérimentaux– optimisation pour la famille de processeurs utilisée par la machine– utilisation des modules noyau– nous mettons les pilotes des différentes cartes Ethernet dans le noyau et non pas en mo-

dule– le pilote de la carte SCSI utilisée doit être dans le noyau, pas en module– le support pour les «UNIX98 PTYs» ; nous laissons la valeur par défaut (256)– dans la section «systèmes de fichiers», nous incluons dans le noyau le support pour le

système «/proc» ainsi que celui pour le système «/dev/pts», sans oublier d’inclure le sup-port pour le «deuxième système de fichiers étendu (ext2fs)». Nous activons également lesupport pour les quotas

– dans la même section, nous plaçons en modules les supports pour les systèmes de fichiersFAT, VFAT, MSDOS, UMSDOS, ISO9660

– dans la section «systèmes de fichiers réseau», nous plaçons en modules les supports pourle système de fichiers NFS, le serveur NFS et le système de fichiers SMB

– dans la section «kernel hacking», activez l’option «Magic SysRQ key». Cette option per-met de communiquer avec le noyau lors d’un plantage sévère de la machine afin d’ef-fectuer les opérations de dernière minute (synchronisation des partitions montées, etc. . .)avant de redémarrer la machine. Lisez la documentation concernant cette fonctionnalitédans le fichier Documentation/sysrq.txt.

45

Page 46: BONdossier Info

8 Configuration du serveur

Maintenant, sauvegardez la configuration et quittez l’interface. Puis compilez et installez lenoyau. Configurez LILO de manière à pouvoir démarrer sur l’un ou l’autre des deux noyauxprésents, c’est-à-dire le noyau d’origine et celui que nous venons de compiler. Le fichier deconfiguration de LILO doit ressembler à celui-ci :

# /etc/lilo.conf - See: ‘lilo(8)’ and ‘lilo.conf(5)’,# --------------- ‘install-mbr(8)’, ‘/usr/share/doc/lilo/’,# and ‘/usr/share/doc/mbr/’.

# +---------------------------------------------------------------+# | !! Reminder !! |# | |# | Don’t forget to run ‘lilo’ after you make changes to this |# | conffile, ‘/boot/bootmess.txt’, or install a new kernel. The |# | computer will most likely fail to boot if a kernel-image |# | post-install script or you don’t remember to run ‘lilo’. |# | |# +---------------------------------------------------------------+

# Specifies the boot device. This is where Lilo installs its boot# block. It can be either a partition, or the raw device, in which# case it installs in the MBR, and will overwrite the current MBR.#boot=/dev/sda

# Specifies the device that should be mounted as root. (‘/’)#root=/dev/sda5

# Enable map compaction:# Tries to merge read requests for adjacent sectors into a single# read request. This drastically reduces load time and keeps the# map smaller. Using ‘compact’ is especially recommended when# booting from a floppy disk. It is disabled here by default# because it doesn’t always work.## compact

# Installs the specified file as the new boot sector#install=/boot/boot.b

# Specifies the location of the map file#map=/boot/map

46

Page 47: BONdossier Info

8 Configuration du serveur

# You can set a password here, and uncomment the ‘restricted’ lines# in the image definitions below to make it so that a password must# be typed to boot anything but a default configuration. If a# command line is given, other than one specified by an ‘append’# statement in ‘lilo.conf’, the password will be required, but a# standard default boot will not require one.## This will, for instance, prevent anyone with access to the# console from booting with something like ‘Linux init=/bin/sh’,# and thus becoming ‘root’ without proper authorization.## Note that if you really need this type of security, you will# likely also want to use ‘install-mbr’ to reconfigure the MBR# program, as well as set up your BIOS to disallow booting from# removable disk or CD-ROM, then put a password on getting into the# BIOS configuration as well. Please RTFM ‘install-mbr(8)’.## password=tatercounter2000

# Specifies the number of deciseconds (0.1 seconds) LILO should# wait before booting the first image.#delay=100 # laissons-nous 10 secondes pour choisir le noyau

# You can put a customized boot message up if you like. If you use# ‘prompt’, and this computer may need to reboot unattended, you# must specify a ‘timeout’, or it will sit there forever waiting# for a keypress. ‘single-key’ goes with the ‘alias’ lines in the# ‘image’ configurations below. eg: You can press ‘1’ to boot# ‘Linux’, ‘2’ to boot ‘LinuxOLD’, if you uncomment the ‘alias’.## message=/boot/bootmess.txt# prompt# single-key# delay=100# timeout=100

# Specifies the VGA text mode at boot time. (normal, extended, ask, <mode>)## vga=ask# vga=9#vga=normal

47

Page 48: BONdossier Info

8 Configuration du serveur

# Kernel command line options that apply to all installed images go# here. See: The ‘boot-prompt-HOWTO’ and ‘kernel-parameters.txt’ in# the Linux kernel ‘Documentation’ directory.## append=""

# Boot up Linux by default.#default=Linux

image=/boot/vmlinuz-2.2.16 # le nouveau noyau, ici version 2.2.16label=Linuxread-only

# restricted# alias=1

image=/boot/vmlinuz-2.2.14 # le nouveau noyau, ici version 2.2.14label=linux-origread-only

# optional# restricted# alias=2

# If you have another OS on this machine to boot, you can uncomment the# following lines, changing the device name on the ‘other’ line to# where your other OS’ partition is.## other=/dev/hda4# label=HURD# restricted# alias=3

Ce fichier est le fichier livré avec Debian GNU/Linux. Seuls les paragraphes concernant lesdeux noyaux ont été modifiés. Ici, le nouveau noyau sera démarré par défaut. L’ancien noyauest accessible sous le nom «linux-orig». Pour y accéder, appuyez sur la touche «tabulation» lorsdu prompt «LILO : » ; vous verrez apparaître la liste des noyaux disponibles. Sélectionnez lenoyau à démarrer et appuyez sur «Entrée».

Lancez /sbin/lilo de manière à mettre à jour le secteur de boot de la machine. Si tout se passebien, vous pouvez essayer de redémarrer la machine. Si LILO vous dit que votre noyau esttrop gros, soit vous avez inclus beaucoup trop de choses dedans, auquel cas vous pouvez lereconfigurer et faire la chasse aux options inutiles, soit vous pouvez utiliser «make bzImage»pour le compiler.

Si la machine redémarre sans problèmes, bravo, sinon recommencez, vous avez certaine-ment oublié quelque chose.

Une fois la machine redémarrée avec son nouveau noyau, et si tout se passe bien, sauvegar-

48

Page 49: BONdossier Info

8 Configuration du serveur

dez le fichier /usr/src/linux/.config (notez le «.», ce qui signifie que c’est un fichier caché) dansle répertoire personnel de root (/root), sous un nom évocateur. Vous pourrez charger ce fichierpour configurer le prochain kernel, ce qui vous évitera de devoir saisir à nouveau la configura-tion.

Je ne peux pas décrire ici toute la configuration du noyau, car je ne sais pas quel est lematériel présent. Beaucoup d’options en dépendent.

N’hésitez pas à consulter la documentation, tel le kernel-HOWTO.

8.2 Interfaces réseau

Nous avons ici trois interfaces réseau, dont seulement une est configurée. Nous nous arran-gerons pour obtenir ce schéma (du moins, je me base sur ceci) :

– eth0←→ Internet– eth1←→ réseau local– eth2←→ intranet de l’établissement

La première interface, eth0, a été configurée durant l’installation, elle est donc théoriquementen état de marche. Configurons maintenant les deux autres.

La configuration des interfaces est contenue dans le fichier /etc/network/interfaces. Éditez-leà l’aide de votre éditeur favori.

Vous devez arriver à quelque chose comme cela :

# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)

# The loopback interface

iface lo inet loopback

# The first network card - this entry was# created during the Debian installation

iface eth0 inet staticaddress xxx.xxx.xxx.xxxnetmask xxx.xxx.xxx.xxxhostname fremen.etablissement.org# ici, la machine s’appelle "fremen"

# Ici, l’interface eth0, configurée avec une IP statique (static).# Remplacez xxx.xxx.xxx.xxx par l’adresse IP assignée à la machine# puis# remplacez xxx.xxx.xxx.xxx par le masque de réseau adéquat.

iface eth1 inet staticaddress 10.1.0.1netmask 255.255.255.0

49

Page 50: BONdossier Info

8 Configuration du serveur

hostname fremen.etablissement.org

# Ici, l’interface eth1, configurée avec une IP statique (static)

iface eth2 inet staticaddress xxx.xxx.xxx.xxxnetmask xxx.xxx.xxx.xxxhostname fremen.etablissement.org

# Ici, l’interface eth2, configurée avec une IP statique (static).# Si l’intranet de l’établissement utilise le protocole DHCP# voyez avec l’administrateur la possibilité d’obtenir une IP fixe# pour cette machine.## Remplacez xxx.xxx.xxx.xxx par l’IP fournie par l’administrateur.# Remplacez xxx.xxx.xxx.xxx par le masque de réseau fourni par# l’admisnitrateur.## Si le site utilise la classe 10.x.x.x, changez les adresses du# réseau local ; utilisez par exemple 192.168.1.1 (classe privée)# pour eth1.

Sauvegardez le fichier, quittez votre éditeur et nous allons maintenant démarrer les diffé-rentes interfaces. Un script de démarrage est chargé de cela ; nous l’utilisons comme ceci :

/etc/init.d/networking restart

Le script va initialiser les différentes interfaces. Si tout se passe bien, l’utilitaire ifconfig doit vousdonner quelque chose de ce genre :

eth0 Link encap:Ethernet HWaddr 00:60:97:A7:0E:8Dinet addr:213.166.193.178 Bcast:213.166.195.255 Mask:255.255.252.0UP BROADCAST NOTRAILERS RUNNING MULTICAST MTU:1500 Metric:1RX packets:252308 errors:0 dropped:0 overruns:0 frame:0TX packets:12150 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:100Interrupt:5 Base address:0x300

Et ce, pour chaque interface, certaines données variant.

8.3 Bind, serveur DNS

Avant de continuer, nous devons permettre au monde de joindre nos machines et de nousadresser du courrier. Pour ce faire, nous devons configurer notre serveur DNS primaire.

50

Page 51: BONdossier Info

8 Configuration du serveur

Lors du dépôt du domaine, vous indiquerez comme serveur DNS nos deux serveurs, ou,plus exactement, leurs adresses IP.

Bind étant installé, il ne reste plus qu’à éditer les différents fichiers de configuration et àdémarrer le daemon.

Pour l’instant, commençons par arrêter Bind :

/etc/init.d/bind stop

Attaquons-nous maintenant à la configuration.

8.3.1 Note importante

Tout au long de ce dossier, j’utilise comme exemple le domaine «etablissement.org». Cedomaine existe et est utilisé.

SURTOUT, NE LANCEZ PAS LE SERVEUR DNS AVEC CE DOMAINE DANS LES FICHIERS DE

CONFIGURATION ! Remplacez IMPÉRATIVEMENT «etablissement.org» par le nom de domainequi vous appartient.

Je décline toute responsabilité quant à la gêne que pourraient subir les détenteurs du do-maine «etablissement.org» en cas d’utilisation «telle quelle» des fichiers de configuration four-nis ici.

8.3.2 /etc/bind/named.conf

C’est le fichier de configuration de Bind. Il doit ressembler à ceci :

// This is the primary configuration file for the BIND DNS server named.//// Please read /usr/share/doc/bind/README.Debian for information on the// structure of BIND configuration files in Debian for BIND versions 8.2.1// and later, *BEFORE* you customize this configuration file.//

options directory "/var/cache/bind";

// If there is a firewall between you and nameservers you want// to talk to, you might need to uncomment the query-source// directive below. Previous versions of BIND always asked// questions using port 53, but BIND 8.1 and later use an unprivileged// port by default.

// query-source address * port 53;

// If your ISP provided one or more IP addresses for stable// nameservers, you probably want to use them as forwarders.// Uncomment the following block, and insert the addresses replacing

51

Page 52: BONdossier Info

8 Configuration du serveur

// the all-0’s placeholder.

// forwarders // 0.0.0.0;// ;

;

// reduce log verbosity on issues outside our controllogging

category lame-servers null; ;category cname null; ;

;

// prime the server with knowledge of the root serverszone "."

type hint;file "/etc/bind/db.root";

;

// be authoritative for the localhost forward and reverse zones, and for// broadcast zones as per RFC 1912

zone "localhost" type master;file "/etc/bind/db.local";

;

zone "127.in-addr.arpa" type master;file "/etc/bind/db.127";

;

zone "0.in-addr.arpa" type master;file "/etc/bind/db.0";

;

zone "255.in-addr.arpa" type master;file "/etc/bind/db.255";

;

// add entries for other zones below here

52

Page 53: BONdossier Info

8 Configuration du serveur

// notre zone "etablissement.org"

zone "etablissement.org" type master;file "/var/cache/bind/masters/etablissement.org";

;

// pour permettre la résolution inverse

zone "xxx.xxx.xxx.in-addr.arpa" type master;file "/var/cache/bind/masters/xxx.xxx.xxx";

;

// remplacez xxx.xxx.xxx par l’inverse de l’adresse IP// exemple :// * nos adresses IP sont 213.166.193.178 et 213.166.193.179// dans ce cas, xxx.xxx.xxx.xxx = 193.166.213

8.3.3 /var/cache/bind/masters/xxx.xxx.xxx

Ce fichier contient les informations permettant de retrouver le nom canonique d’un hôte àpartir de son adresse IP.

Il se présente comme suit :

@ IN SOA ns1.etablissement.org. hostmaster.etablissement.org. (200006031 ; n de série -> date (aaaammjj)+ n

8H ; refresh2H ; retry1W ; expire1D) ; TTL minimum

NS ns1.etablissement.org.NS ns2.etablissement.org.

xxx PTR fremen.etablissement.org.xxx PTR ns1.etablissement.org.xxx PTR ftp.etablissement.org.xxx PTR www.etablissement.org.xxx PTR mail.etablissement.org.xxx PTR news.etablissement.org.xxx PTR etablissement.org.

yyy PTR sardaukar.etablissement.org.

53

Page 54: BONdossier Info

8 Configuration du serveur

yyy PTR ns2.etablissement.org.

Le numéro de série est composé de la date du jour au format AAAAMMJJ et d’un chiffre de1 à 9, permettant d’identifier la version des enregistrements. Notez qu’il ne peut y avoir que 9versions par jour. Au-delà, vous devrez attendre le lendemain.

Remarquez également que «fremen», «ns1», «ftp», «www» , «mail» et «news» sont en faitla même machine. Idem, «sardaukar» et «ns2» sont la même machine. Les noms «fremen» et«sardaukar» sont à remplacer par les noms que vous avez décidé de donner à vos deux ma-chines.

Remplacez «xxx.xxx.xxx.xxx» par l’adresse IP de «fremen». Utilisez l’utilitaire ifconfig pouravoir, comme tout à l’heure, le résumé des différentes interfaces. Prenez l’adresse de l’interfaceeth0.

Remplacez maintenant «yyy.yyy.yyy.yyy» par l’adresse qui nous est allouée et que nousallouerons tout à l’heure à notre autre machine («sardaukar»).

L’entrée «hostmaster.etablissement.org» est à lire comme étant «[email protected]».C’est l’adresse e-mail du responsable des serveurs DNS pour la zone. Cette adresse doit exister.

8.3.4 /var/cache/bind/masters/etablissement.org

Ce fichier contient les informations permettant de retrouver l’adresse IP d’un hôte à partirde son nom canonique.

Il se présente comme suit :

@ IN SOA ns1.etablissement.org. hostmaster.etablissement.org. (200006031 ; n de série -> date (aaaammjj)+ n

8H ; refresh2H ; retry1W ; expire1D) ; TTL minimum

NS ns1.etablissement.org.NS ns2.etablissement.org.

TXT "Lycee xxxxxxxxxxxx"

MX 10 mail.etablissement.org.MX 20 ns2.etablissement.org.

localhost A 127.0.0.1

fremen A xxx.xxx.xxx.xxxns1 A xxx.xxx.xxx.xxxftp A xxx.xxx.xxx.xxxwww A xxx.xxx.xxx.xxxeleves A xxx.xxx.xxx.xxx

54

Page 55: BONdossier Info

8 Configuration du serveur

profs A xxx.xxx.xxx.xxxmail A xxx.xxx.xxx.xxxnews A xxx.xxx.xxx.xxxetablissement.org. A xxx.xxx.xxx.xxx

sardaukar A yyy.yyy.yyy.yyyns2 A yyy.yyy.yyy.yyy

Les remarques faites précédemment s’appliquent ici aussi.Remplacez «xxx.xxx.xxx.xxx» par l’adresse IP de «fremen» et «yyy.yyy.yyy.yyy» par l’adresse

IP que nous allouerons au deuxième serveur.Le champ TXT comprend un texte de quelques mots. Vous pouvez y mettre ce que vous

voulez, par exemple le nom de l’établissement.

8.3.5 Maintenance

Notre serveur DNS sert de cache pour nos machines clientes. Pour ce faire, le serveur abesoin d’avoir une liste à jour des serveurs DNS principaux1. Cette liste est contenue dans lefichier /etc/bind/db.root.

Cette liste peut être amenée à changer, pour une raison quelconque, il faut donc la mettre àjour régulièrement.

Voici un script-shell qui s’occupe de cette mise à jour :

#!/bin/sh

# /usr/local/bin/update-dns# Mise à jour du fichier /etc/bind/db.root.

# Lancé par cron une fois par semaine.

cd /etc/bind

echo -e "\n*** Lancement de dig ***\n"

dig . ns @ e.root-servers.net > db.root.new 2>&1

chown root.root db.root.newchmod 444 db.root.new

rm -f db.root.old

echo -e "\n*** Copie du nouveau fichier ***\n"

1Ce sont les «root-servers».

55

Page 56: BONdossier Info

8 Configuration du serveur

mv db.root db.root.oldmv db.root.new db.root

echo -e "\n*** Redémarrage de Bind ***\n"

ndc restart

echo -e "\n*** Mise à jour terminée ***\n"date

Enregistrez ceci dans un fichier /usr/local/bin/update-dns, et rendez ce fichier exécutable.Lancez le script une première fois.Maintenant, nous lancerons ce script une fois par semaine, pour maintenir un fichier à jour.

Nous utilisons le programme cron, dont la tâche est de lancer à un moment défini une actiondéfinie.

Éditons la crontab de root (notez que cron va lancer l’éditeur défini dans la variable d’envi-ronnement $EDITOR) :

crontab -e

Nous y ajoutons la ligne suivante :

45 18 1 * * /usr/local/bin/update-dns

Enregistrez le fichier, quittez l’éditeur. Cron s’occupe maintenant de tout.

8.3.6 Redémarrage de Bind

Nous pouvons maintenant redémarrer Bind :

/etc/init.d/bind start

Si jamais le serveur ne démarrait pas, examinez les logs dans le fichier /var/log/messages. Bind yindique les erreurs détectées et l’emplacement de ces erreurs.

Trouvez le problème et corrigez-le, puis tentez de redémarrer le serveur.

8.3.7 /etc/resolv.conf

Ce fichier est utilisé par le mécanisme de résolution des noms de domaine. Il contient lesinformations nécessaires pour que les différents logiciels mènent à bien leur mission.

Il se présente comme cela :

domain etablissement.orgsearch etablissement.orgnameserver 127.0.0.1

56

Page 57: BONdossier Info

8 Configuration du serveur

8.3.8 /etc/nsswitch.conf

Ce fichier indique aux agents chargés de la résolution des noms de domaine les différentsmoyen à leur disposition pour arriver à leur fin et l’ordre de préférence.

Il se présente comme cela :

# /etc/nsswitch.conf## Example configuration of GNU Name Service Switch functionality.# If you have the ‘glibc-doc’ and ‘info’ packages installed, try:# ‘info libc "Name Service Switch"’ for information about this file.

passwd: compatgroup: compatshadow: compat

hosts: files dnsnetworks: files

protocols: db filesservices: db filesethers: db filesrpc: db files

netgroup: nis

8.3.9 /etc/host.conf

Ce fichier indique aux routines en charge de la résolution de noms l’ordre d’utilisation desdifférents moyens disponibles pour la résolution des noms.

Il se présente comme ceci :

order hosts,bindmulti on

8.3.10 /etc/hosts

Ce fichier contient les adresses IP et noms canoniques de différentes machines. De nos jours,il n’est plus utilisé que pour renseigner le nom attribué à la machine.

Il se présente sous cette forme :

# The following lines are desirable for IPv6 capable hosts# (added automatically by netbase upgrade)

::1 ip6-localhost ip6-loopback

57

Page 58: BONdossier Info

8 Configuration du serveur

fe00::0 ip6-localnetff00::0 ip6-mcastprefixff02::1 ip6-allnodesff02::2 ip6-allroutersff02::3 ip6-allhosts

127.0.0.1 fremen.etablissement.org fremen,localhost

8.4 Sendmail, serveur SMTP

Notre serveur SMTP principal sera chargé de la réception et de l’envoi de tous les mails,sans exception. Nous le configurerons de façon qu’il rejette une partie du spam, grâce à quelqueslistes noires renommées.

Commençons par arrêter sendmail :

/etc/init.d/sendmail stop

8.4.1 /etc/mail/sendmail.cf

Ce fichier peut être généré de plusieurs façons. La plus répandue est l’utilisation du kit M4fourni avec sendmail. Une façon tout aussi efficace, mais plus longue, est d’écrire directementce fichier à la main. D’aucuns avancent que personne ne peut se prétendre administrateur desystèmes UNIX tant qu’il n’a pas écrit un sendmail.cf à la main. D’autres prétendent que fairececi plus d’une fois rend fou.

Voilà pour les anecdotes, passons à la confection d’un sendmail.mc sur lequel nous lanceronsle processeur M4.

Rendez-vous dans le répertoire /usr/share/sendmail/sendmail.cf. Ouvrez votre éditeur préférésur un fichier nommé sendmail.mc.

Voici le fichier que nous utiliserons :

include(‘./m4/cf.m4’)dnldnldnl Définition de certains éléments spécifiques au systèmednl (emplacement de certains fichiers, ...)dnlOSTYPE(‘debian’)dnldnldnl Nous définissons certains emplacementsdnlFEATURE(‘use_cw_file’,‘/etc/mail/local-host-names’)dnlFEATURE(‘use_ct_file’,‘/etc/mail/sendmail.ct’)dnlFEATURE(‘mailertable’,‘hash -o /etc/mail/mailertable’)dnlFEATURE(‘domaintable’,‘hash -o /etc/mail/domaintable’)dnlFEATURE(‘genericstable’,‘hash -o /etc/mail/genericstable’)dnlFEATURE(‘virtusertable’,‘hash -o /etc/mail/virtusertable’)dnl

58

Page 59: BONdossier Info

8 Configuration du serveur

FEATURE(‘access_db’,‘hash -o /etc/mail/access’)dnldefine(‘STATUS_FILE’, ‘/etc/mail/trusted-users’)dnldefine(‘LOCAL_MAILER_PATH’, ‘/usr/bin/procmail’)dnldefine(‘confCW_FILE’,‘/etc/mail/local-host-names’)dnldefine(‘confCT_FILE’,‘/etc/mail/sendmail.ct’)dnldefine(‘confSTATUS_FILE’, ‘/etc/mail/statistics’)dnldnldnl Nous rajoutons toujours le domaine en fin d’adressednl (ex.: To: root devient To: [email protected])dnlFEATURE(‘always_add_domain’)dnldnldnl Nous définissons les mailer (protocoles) à utiliserdnl Ainsi que l’utilisation de procmaildnlFEATURE(‘local_procmail’)dnlMAILER(‘local’)dnlMAILER(‘smtp’)dnlMAILER(‘procmail’)dnldnldnl Permet de rediriger une adresse en "adresse.REDIRECT"dnlFEATURE(‘redirect’)dnldnldnl Protection anti-spamdnlFEATURE(‘dnsbl’,‘blackholes.mail-abuse.org’,‘ Mail from $&client_addr rejected; see http://mail-abuse.org/cgi-bin/look’)dnlFEATURE(‘dnsbl’,‘dialups.mail-abuse.org’,‘ Mail from dial-up rejected; see http://mail-abuse.org/dul/enduser.htm’)dnlFEATURE(‘no_default_msa’)dnlFEATURE(‘rbl’)dnldnldnl Permet de bloquer l’arrivée de courrier pour certains utilisateursdnlFEATURE(‘blacklist_recipients’)dnldnldnl Taille maximum d’un message, en octets. Ici, 10 Mo.dnldefine(‘confMAX_MESSAGE_SIZE’,‘10485760’)dnldnldefine(‘confAUTO_REBUILD’)dnldnldnl Message affiché lors de la connexiondnl

59

Page 60: BONdossier Info

8 Configuration du serveur

define(‘confSMTP_LOGIN_MSG’,‘fremen.etablissement.org Sendmail 8.9.3 Have a nice day !’)dnldnldnl Les durées après lesquelles les messages d’erreur sont envoyésdnldefine(‘confTO_QUEUEWARN’,‘12h’)dnldefine(‘confTO_QUEUEWARN_NORMAL’,‘12h’)dnldefine(‘confTO_QUEUEWARN_URGENT’,‘12h’)dnldefine(‘confTO_QUEUEWARN_NONURGENT’,‘12h’)dnldnldnl Nous interdisont certaines commandes, et nous plaçonsdnl des avertissements de sécurité dans certains casdnldefine(‘confPRIVACY_FLAGS’, ‘‘authwarnings,novrfy,noexpn,noetrn’’)dnldnldnl Emplacement du fichier .forwarddnldefine(‘confFORWARD_PATH’, ‘$z/.forward.$w:$z/.forward+$h:$z/.forward’)dnldnldnl La personne qui doit recevoir les messages d’erreursdnldefine(‘confCOPY_ERRORS_TO’, ‘postmaster’)dnldnldnl Nombre maximum de destinataires pour un maildnldefine(‘confMAX_RCPTS_PER_MESSAGE’, ‘20’)dnldnldnl Nous masquons les noms de machinesdnlMASQUERADE_AS(etablissement.org)dnlMASQUERADE_DOMAIN(*.etablissement.org)dnlFEATURE(‘masquerade_entire_domain’)dnldnldnl Nous relayons les machines listées dans /etc/mail/accessdnlFEATURE(‘relay_hosts_only’)dnl

Compilez le fichier avec la commande :

m4 sendmail.mc > /etc/mail/sendmail.cf

Pour ce faire, vous aurez besoin de deux fichiers : no_default_msa.m4 et dnsbl.m4. Ces fichierssont présents sur le CD-ROM joint à ce dossier. Copiez-les dans le sous-répertoire feature. Cesfichiers ne sont normalement pas nécessaires pour une version de sendmail supérieure ou égaleà 8.10.x.

60

Page 61: BONdossier Info

8 Configuration du serveur

Puis sauvegardez le fichier /etc/mail/sendmail.cf et copiez le nouveau fichier sendmail.cf dans/etc/mail.

8.4.2 /etc/mail/access

Ce fichier contient des renseignements sur les droits d’accès de certains sites. On peut au-toriser le relayage, rejeter les connexions, par exemple.

La syntaxe est très simple :

<hôte> <valeur><hôte> ### <message d’erreur>

Où <hôte> peut être un nom de machine (ex. mail.blabla.org), un domaine (ex. blabla.org), uneadresse particulière (ex. [email protected]) ou simplement un login (ex. facheux@).

Et <valeur> peut être REJECT, OK, RELAY, DISCARD. Enfin, ### est un code d’erreur stan-dard (ex. 550) et <message d’erreur> un message en anglais (ex. “No spammers allowed here.Go away.”).

Voici celui que nous utiliserons ici :

*.etablissement.org RELAY

Nous devons compiler ces fichiers, de manière que sendmail puisse y accéder plus vite. Nousutilisons la commande :

makemap hash /etc/mail/access.db < /etc/mail/access

8.4.3 /etc/mail/aliases

Ce fichier contient les alias utilisé par sendmail. Par défaut, plusieurs adresses («postmaster»,«usenet», «mailer-daemon», par exemple) sont des alias de root.

Root est la plupart du temps un alias vers un compte utilisé par l’administrateur. Car,rappelons-le, il ne faut pas travailler en tant que root, du moins, le moins possible.

Ce fichier est déjà présent et contient plusieurs valeurs qu’il ne faut pas modifier. Rajoutezseulement ce qui diffère.

Voici à quoi il ressemble :

## @(#)aliases 8.2 (Berkeley) 3/5/94## Aliases in this file will NOT be expanded in the header from# Mail, but WILL be visible over networks or from /bin/mail.## >>>>>>>>>> The program "newaliases" must be run after# >> NOTE >> this file is updated for any changes to# >>>>>>>>>> show through to sendmail.#

61

Page 62: BONdossier Info

8 Configuration du serveur

# Basic system aliases -- these MUST be present.MAILER-DAEMON: postmasterpostmaster: root

# General redirections for pseudo accounts.bin: rootdaemon: rootgames: rootingres: rootnobody: rootsystem: roottoor: rootuucp: root

# Well-known aliases.manager: rootdumper: rootoperator: rootabuse: rootnewsmaster: rootnews: rootusenet: rootwebmaster: rootftpmaster: roothostmaster: root

# trap decode to catch security attacksdecode: root

root: <utilisateur>

Remplacez <utilisateur> par votre login, puis enregistrez le fichier et lancez la commande :

newaliases

Sendmail va relire le fichier /etc/mail/aliases et en tiendra désormais compte.

8.4.4 /etc/mail/domaintable

Ce fichier ne nous sert pas. Nous allons créer un fichier vide, puis le compiler :

touch /etc/mail/domaintablemakemap hash /etc/mail/domaintable.db < /etc/mail/domaintable

62

Page 63: BONdossier Info

8 Configuration du serveur

8.4.5 /etc/mail/genericstable

Là encore, nous ne nous servons pas de ce fichier. Nous créons donc un fichier vide et lecompilons :

touch /etc/mail/genericstablemakemap hash /etc/mail/genericstable.db < /etc/mail/genericstable

8.4.6 /etc/mail/local-host-names

Ce fichier contient les différents noms sous lesquels la machine est connue. Sendmail se sertde ce fichier pour savoir si il doit accepter ou pas un mail.

Il se présente comme ceci :

etablissement.orgfremen.etablissement.orgns1.etablissement.orgftp.etablissement.orgwww.etablissement.orgnews.etablissement.orgmail.etablissement.org

Ce fichier ne se compile pas, sendmail y accède directement.

8.4.7 /etc/mail/mailertable

Nous ne nous servons pas de ce fichier sur cette machine, nous allons donc créer un fichiervide puis le compiler :

touch/etc/mail/mailertablemakemap hash /etc/mail/mailertable.db < /etc/mail/mailertable

8.4.8 /etc/mail/relay-domains

Nous n’utilisons pas ce fichier. Nous créons donc un fichier vide.

touch /etc/mail/relay-domains

8.4.9 /etc/mail/sendmail.ct

Ce fichier contient les logins des utilisateurs considérés comme ne présentant pas de risquesde sécurité. On peut donc leur faire confiance, et sendmail ne générera pas de message d’aver-tissement dans les en-têtes du message si l’utilisateur mentionne une adresse différente de celleque nous lui fournissons comme origine de son mail.

Le fichier se présente comme une simple liste d’utilisateurs, nous y mettons bien entenduroot :

root

63

Page 64: BONdossier Info

8 Configuration du serveur

8.4.10 /etc/mail/service.switch

Ce fichier indique à Sendmail de quels moyens il dispose pour se renseigner sur un utilisa-teur, un nom de machine ou sur ses aliases :

# /etc/mail/service.switch## This is the format that sendmail expects (no colon after the service)#passwd fileshosts files dnsaliases files

Ce fichier ne se compile pas.

8.4.11 /etc/mail/virtusertable

Nous n’utilisons pas ce fichier, nous allons donc créer un fichier vide et le compiler :

touch /etc/mail/virtusertablemakemap hash /etc/mail/virtusertable.db < /etc/mail/virtusertable

8.4.12 Redémarrage de sendmail

Nous redémarrons maintenant sendmail :

/etc/init.d/sendmail start

Si sendmail ne redémarre pas, il y a une erreur quelque part. Il devrait vous indiquer l’erreur.Vérifiez que tout va bien en vous connectant sur le port 25 (SMTP) de la machine :

telnet localhost 25

Si tout va bien, sendmail vous accueille, sinon, le message «Connection refused.» apparaît. Vousmettez fin à la connexion avec sendmail par la commande «quit».

8.5 Qpopper, le serveur POP3

Le serveur POP3 ne requiert pas de configuration particulière.

8.6 NIS

Lors de l’installation du paquetage NIS, il vous est demandé d’entrer le domaine NIS. Sai-sissez «etablissement.org».

Commencez par arrêter le serveur NIS :

/etc/init.d/nis stop

64

Page 65: BONdossier Info

8 Configuration du serveur

8.6.1 /etc/hosts

Nous devons modifier le contenu du fichier /etc/hosts, afin que celui-ci contienne toutes lesautres machines. Nous arrivons à ceci :

# The following lines are desirable for IPv6 capable hosts# (added automatically by netbase upgrade)

::1 ip6-localhost ip6-loopbackfe00::0 ip6-localnetff00::0 ip6-mcastprefixff02::1 ip6-allnodesff02::2 ip6-allroutersff02::3 ip6-allhosts

127.0.0.1 fremen.etablissement.org fremen,localhost10.1.0.1 fremen.etablissement.org fremen10.1.0.2 sardaukar.etablissement.org sardaukar10.1.0.11 client1.etablissement.org client110.1.0.12 client2.etablissement.org client210.1.0.13 client3.etablissement.org client310.1.0.14 client4.etablissement.org client410.1.0.15 client5.etablissement.org client5

Si vous avez utilisé la classe d’adresses 192.168.x.x, remplacez les adresses par les valeursidoines.

8.6.2 /etc/defaultdomain

Nous allons configurer le nom du domaine NIS dans ce fichier. Nous obtenons ceci :

etablissement.org

8.6.3 /etc/init.d/nis

Nous devons indiquer au programme qu’il est un serveur maître. Nous allons éditer lescript de démarrage :

#!/bin/sh## /etc/init.d/nis Start NIS (formerly YP) daemons.##

65

Page 66: BONdossier Info

8 Configuration du serveur

# Set to "false", "slave" or "master".NISSERVER=masterNET="/usr/sbin"test -f $NET/ypbind -a -f /etc/defaultdomain || exit 0

[...]

8.6.4 /etc/ypserv.securenets

Ce fichier permet au serveur NIS d’accepter ou de refuser la connexion selon l’origine de larequête. Cela évite que n’importe qui ait accès aux données du serveur.

Voici notre fichier :

## securenets This file defines the access rights to your NIS server# for NIS clients. This file contains netmask/network# pairs. A clients IP address needs to match with at least# one of those.## One can use the word "host" instead of a netmask of# 255.255.255.255. Only IP addresses are allowed in this# file, not hostnames.## Always allow access for localhost255.0.0.0 127.0.0.0

# This line gives access to everybody. PLEASE ADJUST!# 0.0.0.0 0.0.0.0

# Nous n’autorisons que notre réseau local255.255.255.0 10.1.0.0

8.6.5 /etc/ypserv.conf

Nous modifions légèrement le fichier pour n’autoriser l’accès qu’aux machines de notreréseau local :

## ypserv.conf In this file you can set certain options for the NIS server,# and you can deny or restrict access to certain maps based# on the originating host.## See ypserv.conf(5) for a description of the syntax.#

66

Page 67: BONdossier Info

8 Configuration du serveur

# The following, when uncommented, will give you shadow like passwords.# Note that it will not work if you have slave NIS servers in your# network that do not run the same server as you.

# Host : Map : Security : Passwd_mangle## * : passwd.byname : port : yes# * : passwd.byuid : port : yes# * : * : none

# This is the default - restrict access to the shadow password file,# allow access to all others.10.1.0.0/255.255.255.0 : shadow.byname : port10.1.0.0/255.255.255.0 : passwd.adjunct.byname : port10.1.0.0/255.255.255.0 : * : none

Là encore, si vous utilisez la classe 192.168.x.x, remplacez les adresses IP par les valeursadéquates.

8.6.6 /etc/nsswitch.conf

Nous n’avons pas de modifications à apporter à ce fichier.

8.6.7 /var/yp/Makefile

Nous devons adapter ce Makefile2 pour tenir compte des shadow passwords. C’est unetoute petite modification.

Éditez le fichier et recherchez la ligne commençant par «all : ». La ligne se présente commececi :

all: passwd group hosts rpc services netid protocols netgrp \networks # shadow publickey mail ethers bootparams printcap \amd.home auto.master auto.home passwd.adjunct

Modifiez-la de sorte qu’elle se présente comme cela au final :

all: passwd group hosts rpc services netid protocols netgrp \networks shadow \# publickey mail ethers bootparams printcap \amd.home auto.master auto.home passwd.adjunct

2Fichier interprété par le programme make.

67

Page 68: BONdossier Info

8 Configuration du serveur

8.6.8 Fin de la configuration du serveur

Nous terminons la configuration du serveur en lançant :

/usr/lib/yp/ypinit -m

8.6.9 Démarrage du serveur NIS

Nous pouvons maintenant redémarrer le serveur NIS :

/etc/init.d/nis start

Si le serveur ne démarre pas correctement, cherchez l’erreur ; le programme devrait vous direoù elle se situe.

8.7 Création d’un utilisateur

Vous pouvez maintenant créer un utilisateur qui soit soit votre utilisateur personnel, soitun utilisateur dédié à l’administration.

Cela vous évitera de travailler en tant que root jusqu’à la fin de la configuration.

8.7.1 Mis à jour des maps NIS

Le serveur NIS n’utilise pas directement les fichiers /etc/passwd, /etc/group et /etc/shadow,mais des copies de ceux-ci, compilés à la manière de sendmail, de façon à rendre l’accès auxdonnées qu’ils renferment plus rapide.

À chaque modification de ces fichiers sur le serveur, que ce soit grâce aux utilitaires clas-siques ou à la main, vous devez régénérer ces fichiers.

Pour ce faire, rendez-vous dans le répertoire /var/yp et lancez :

make

Rien de plus, rien de moins.Pour être certain que les maps soient à jour, nous allons mettre une entrée dans la crontab

de root ; éditez la crontab comme précédemment, puis rajoutez :

15 23 * * * cd /var/yp && make

Comme tout à l’heure, enregistrez et quittez votre éditeur. Tous les jours à 23h15, cron lancerapour nous la génération des maps NIS.

8.8 Quotas disque

Comme toujours, nous commençons par arrêter le gestionnaire des quotas :

/etc/init.d/quota stop

La manipulation des quotas est réservée à root. Seul lui peut utiliser les utilitaires destinés à lamaintenance des quotas.

68

Page 69: BONdossier Info

8 Configuration du serveur

8.8.1 /etc/fstab

Ce fichier contient les informations relatives à chaque partition montée ou susceptible d’êtremontée sur le système. Cela inclue certaines options, dont l’utilisation des quotas.

Notre fichier doit ressembler à ceci :

# /etc/fstab: static file system information.##<file system><mount point> <type> <options> <dump><pass>/dev/sda5 / ext2 defaults,errors=remount-ro 0 1/dev/sda6 none swap sw 0 0proc /proc proc defaults 0 0/dev/sdb1 /home ext2 defaults,usrquota 0 2/dev/sdc1 /var/spool/mail ext2 defaults,usrquota 0 2/dev/sdd1 /var/spool/news ext2 defaults 0 2# Uncomment the following entry if you use a 2.2.x or newer kernel for# UNIX98-style pty handlingnone /dev/pts devpts gid=5,mode=620 0 0/dev/fd0 /floppy auto defaults,user,noauto 0 0/dev/cdrom /cdrom iso9660 defaults,ro,user,noauto 0 0/dev/sda1 /boot ext2 rw 0 2

On remarque la mention «usrquota» dans les options. Ceci pour indiquer au système qu’ildoit tenir compte des quotas sur cette partition.

8.8.2 quota.user et quota.group

Ces fichiers contiennent les enregistrements des quotas : la limite pour chaque utilisateur,la consommation actuelle, etc. . .

Ils doivent appartenir à root et lui seul doit pouvoir les lire et y écrire. Root doit les créer àla racine de chaque partition sur laquelle nous désirons appliquer les quotas :

touch /home/quota.usertouch /home/quota.groupchmod 600 /home/quota.userchmod 600 /home/quota.grouptouch /var/spool/mail/quota.usertouch /var/spool/mail/quota.groupchmod 600 /var/spool/mail/quota.userchmod 600 /var/spool/mail/quota.group

8.8.3 Activation des quotas

Nous allons maintenant demander au système d’activer la gestion des quotas disque surtoutes les partitions comportant l’option «usrquota» dans le fichier /etc/fstab :

/etc/init.d/quota start

69

Page 70: BONdossier Info

8 Configuration du serveur

8.8.4 Attribution des quotas

Les quotas sont définis pour chaque utilisateur. Pour simplifier la maintenance, l’utilisationd’un utilisateur «prototype» a été rendue possible.

Créons donc un utilisateur ayant pour login «eleve», et qui nous servira de prototype pourles quotas :

adduser eleve

Rentrez les informations demandées, et poursuivons.Nous lançons la commande «quotacheck -avug» pour synchroniser les fichiers quota.user et

quota.group avec la situation actuelle des partitions. Maintenant, nous éditons les quotas del’utilisateur «eleve» :

edquota -u eleve

L’éditeur Vi est lancé, ou tout autre éditeur spécifié dans la variable $EDITOR. Nous obtenonsceci :

Quotas for user eleve:/dev/sdb1: blocks in use: 0, limits (soft = 0, hard = 0)

inodes in use: 0, limits (soft = 0, hard = 0)/dev/sdc1: blocks in use: 0, limits (soft = 0, hard = 0)

inodes in use: 0, limits (soft = 0, hard = 0)

L’utilisateur ne consomme pas d’espace disque pour l’instant, puisque nous venons de lecréer.

Il y a deux types de limites :– limite douce (soft limit) : c’est une frontière à partir de laquelle l’utilisateur reçoit un mes-

sage lui signifiant qu’il a dépassé sa limite– limite dure (hard limit) : c’est la limite absolue pour l’utilisateur. Il ne peut pas la dépasser.

Notez que les limites sont exprimées en nombre de blocs, un bloc occupant 1024 octets, soit1 Ko. Le nombre d’inodes correspond au nombre de fichiers que l’utilisateur peut créer ; enréalité, il est supérieur à 0 dès que l’utilisateur est créé, car quelques fichiers sont copiés dansson répertoire personnel.

Nous avons décidé d’octroyer un espace disque de 100 Mo maximum à chaque utilisateur,ainsi qu’une boîte aux lettres de 30 Mo. Nous traduisons cela par :

Quotas for user eleve:

/dev/sdb1: blocks in use: 0, limits (soft = 102400, hard = 112640)

inodes in use: 0, limits (soft = 110000, hard = 120000)

/dev/sdc1: blocks in use: 0, limits (soft = 30720, hard = 35840)

inodes in use: 0, limits (soft = 10, hard = 15)

70

Page 71: BONdossier Info

8 Configuration du serveur

Ici, nous avons donc la configuration suivante pour l’espace disque :– répertoire personnel : limite douce à 100 Mo, limite dure à 110 Mo– boîte aux lettres : limite douce à 30 Mo, limite dure à 35 Mo

Et nous avons ceci pour le nombre d’inodes utilisables :– répertoire personnel : limite douce à 110 000 inodes, limite dure à 120 000 inodes, soit

respectivement 110 000 et 120 000 fichiers. La limite dure ne sera jamais atteinte ici, car lenombre d’inodes est supérieur au nombre maximum de blocs.

– boîte aux lettres : limite douce à 10 inodes, limite dure à 15 inodes, soit respectivement 10et 15 fichiers. Ici aussi, aucune des deux limites ne sera jamais atteinte ; en effet, il n’y aqu’un fichier appartenant à l’utilisateur dans ce répertoire.

Maintenant que nous avons terminé, sauvegardez le fichier et quittez votre éditeur. L’utilitaireedquota va mettre à jour les fichiers quota.user et quota.group de chacune des partitions.

8.8.5 Maintenance

Pour plus de sécurité, nous lancerons périodiquement l’utilitaire quotacheck, comme précé-demment. Nous utilisons là encore cron. Éditez la crontab de root :

crontab -e

Puis rajoutez la ligne :

15 23 * * 7 /sbin/quotacheck -avug

Sauvegardez, quittez votre éditeur, cron s’occupe maintenant de tout.

8.9 NFS

Nous allons maintenant exporter les répertoires personnels en utilisant le Network FileSys-tem3. Comme à l’accoutumée, nous commençons par arrêter le service :

/etc/init.d/nfs-kernel-server stop/etc/init.d/nfs-common stop

8.9.1 /etc/exports

Le contenu de ce fichier indique quels répertoires doivent être exportés, qui peut y avoiraccès, dans quelles conditions.

Nous utiliserons ceci :

# /etc/exports: the access control list for filesystems which may be exported# to NFS clients. See exports(5).

/home 10.1.0.0/255.255.255.0(secure,rw,root\_squash)

Explications :3Système de fichiers réseau. Il permet d’exporter des fichiers au travers d’un réseau.

71

Page 72: BONdossier Info

8 Configuration du serveur

– /home : nous exportons le répertoire /home, qui contient les répertoires personnels– 10.1.0.0/255.255.255.0 : nous autorisons notre réseau local, et uniquement celui-ci à accé-

der à ce montage NFS– (secure,rw,root_squash) : nous demandons au serveur d’utiliser un port compris entre 0

et 1024, nous autorisons la lecture et l’écriture, nous interdisons au root de la machinecliente d’agir sur les fichiers

8.9.2 Un peu de sécurité

8.9.2.1 /etc/hosts.deny

Ce fichier permet de restreindre l’accès à certains services pour certains hôtes. Nous inter-disons à tous les hôtes de contacter portmap :

# /etc/hosts.deny: list of hosts that are _not_ allowed to access the system.# See the manual pages hosts_access(5), hosts_options(5)# and /usr/doc/netbase/portmapper.txt.gz## Example: ALL: some.host.name, .some.domain# ALL EXCEPT in.fingerd: other.host.name, .other.domain## If you’re going to protect the portmapper use the name "portmap" for the# daemon name. Remember that you can only use the keyword "ALL" and IP# addresses (NOT host or domain names) for the portmapper. See portmap(8)# and /usr/doc/netbase/portmapper.txt.gz for further information.## The PARANOID wildcard matches any host whose name does not match its# address.ALL: PARANOID

portmap: ALL

8.9.2.2 /etc/hosts.allow

Ce fichier permet d’autoriser l’accès à certains services pour certains hôtes. Nous autorisonsnotre réseau local à accéder à portmap :

# /etc/hosts.allow: list of hosts that are allowed to access the system.# See the manual pages hosts_access(5), hosts_options(5)# and /usr/doc/netbase/portmapper.txt.gz## Example: ALL: LOCAL @some_netgroup# ALL: .foobar.edu EXCEPT terminalserver.foobar.edu## If you’re going to protect the portmapper use the name "portmap" for the

72

Page 73: BONdossier Info

8 Configuration du serveur

# daemon name. Remember that you can only use the keyword "ALL" and IP# addresses (NOT host or domain names) for the portmapper. See portmap(8)# and /usr/doc/netbase/portmapper.txt.gz for further information.#

portmap: 10.1.0.0/255.255.255.0

8.9.3 Redémarrage du service NFS

Nous pouvons maintenant redémarrer le serveur NFS :

/etc/init.d/nfs-common start/etc/init.d/nfs-kernel-server start

8.10 Samba

Nous utiliserons Samba en-dehors de inetd («standalone daemon»). Nous arrêtons Samba :

/etc/init.d/samba stop

8.10.1 /etc/samba/smb.conf

C’est le fichier de configuration central de Samba. Nous utiliserons celui-ci afin d’exporterles répertoires personnels :

;; /etc/samba/smb.conf;; Sample configuration file for the Samba suite for Debian GNU/Linux;; Please see the manual page for smb.conf for detailed description of; every parameter.;

[global]

; Samba n’agit QUE sur l’interface reliée à l’intranet

interfaces = yyy.yyy.yyy.yyy/zzz.zzz.zzz.zzz

; Remplacez yyy.yyy.yyy.yyy par l’adresse de la carte eth2; Remplacez zzz.zzz.zzz.zzz par le masque de sous-réseau

bind interfaces only = true

; "security = user" is always a good idea. This will require a Unix account

73

Page 74: BONdossier Info

8 Configuration du serveur

; in this server for every user accessing the server.security = user

; Change this for the workgroup your Samba server will part ofworkgroup = WORKGROUP

; Remplacez "WORKGROUP" par le nom de votre groupe de travail

server string = %h server (Samba %v)

; If you want Samba to log though syslog only then set the following; parameter to ’yes’. Please note that logging through syslog in; Samba is still experimental.

syslog only = no

; We want Samba to log a minimum amount of information to syslog. Everything; should go to /var/log/smb,nmb instead. If you want to log through; syslog you should set the following parameter to something higher.

syslog = 0;

; This socket options really speed up Samba under Linux, according to my; own tests.

socket options = IPTOS_LOWDELAY TCP_NODELAY SO_SNDBUF=4096 SO_RCVBUF=4096

; Passwords are encrypted by default. This way the latest Windows 95 and NT; clients can connect to the Samba server with no problems.

encrypt passwords = yes

; It’s always a good idea to use a WINS server. If you want this server; to be the WINS server for your network change the following parameter; to "yes". Otherwise leave it as "no" and specify your WINS server; below (note: only one Samba server can be the WINS server).; Read BROWSING.txt for more details.

wins support = no

; If this server is not the WINS server then specify who is it and uncomment; next line.

wins server = xxx.xxx.xxx.xxx; Remplacez xxx.xxx.xxx.xxx par l’adresse du serveur WINS; Demandez cette adresse à l’administrateur de l’établissement

; Please read BROWSING.txt and set the next four parameters according; to your network setup. There is no valid default so they are commented; out.; os level = 0; domain master = no

74

Page 75: BONdossier Info

8 Configuration du serveur

; local master = no; preferred master = no

; What naming service and in what order should we use to resolve host names; to IP addresses

name resolve order = lmhosts host wins bcast

; This will prevent nmbd to search for NetBIOS names through DNS.dns proxy = no

; Name mangling options

preserve case = yesshort preserve case = yes

; This boolean parameter controlls whether Samba attempts to sync. the Unix; password with the SMB password when the encrypted SMB password in the; /etc/samba/smbpasswd file is changed.

unix password sync = false

; For Unix password sync. to work on a Debian GNU/Linux system, the following; parameters must be set (thanks to Augustin Luton; <[email protected]> for sending the correct chat script for; the passwd program in Debian Potato).

passwd program = /usr/bin/passwd %upasswd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n .

; The following parameter is useful only if you have the linpopup package; installed. The samba maintainer and the linpopup maintainer are; working to ease installation and configuration of linpopup and samba.; message command = /bin/sh -c ’/usr/bin/linpopup "%f" "%m" %s; rm %s’ &

; The default maximum log file size is 5 MBytes. That’s too big so this; next parameter sets it to 1 MByte. Currently, Samba rotates log; files (/var/log/smb,nmb in Debian) when these files reach 1000 KBytes.; A better solution would be to have Samba rotate the log file upon; reception of a signal, but for now on, we have to live with this.

max log size = 1000

[homes]comment = Home Directoriesbrowseable = no

; By default, the home directories are exported read only. Change next

75

Page 76: BONdossier Info

8 Configuration du serveur

; parameter to "no" if you want to be able to write to them.read only = no

; File creation mask is set to 0700 for security reasons. If you want to; create files with group=rw permissions, set next parameter to 0775.

create mask = 0700

; Directory creation mask is set to 0700 for security reasons. If you want to; create dirs. with group=rw permissions, set next parameter to 0775.

directory mask = 0700

; Un fichier journal sera créé pour les répertoires personnelslog file = /var/log/samba-homes.log.%m

8.10.2 Redémarrage de Samba

Nous redémarrons maintenant Samba :

/etc/init.d/samba start

8.10.3 Utilisation

Chaque utilisateur doit définir un mot de passe pour sa connexion. Samba gère en effetune liste de mots de passe différente de celle du système. Le mot de passe est défini par lacommande :

smbpasswd

Chaque utilisateur accède à son compte à partir d’une machine MS-Windows par l’adresse :

\\<ressource>\<login>\

Un mot de passe est alors demandé.Où <ressource> est le nom de partage du serveur, et <login> est le login de la personne sur

les machines clientes.

8.11 INN, le serveur de news

Comme d’habitude, nous commençons par arrêter le service INN :

/etc/init.d/inn2 stop

8.11.1 Particularité : l’utilisateur news

Durant toute la configuration de INN, vous DEVEZ agir en tant qu’utilisateur news. Cecipour préserver les droits des fichiers de configuration qui doivent appartenir à l’utilisateurnews.

Commencez par définir un mot de passe pour l’utilisateur, vous devez être root :

76

Page 77: BONdossier Info

8 Configuration du serveur

passwd news

Rentrez deux fois de suite le mot de passe.Ouvrez une session en tant que news, et nous commençons.

8.11.2 /var/spool/news

En tant que root, vérifiez les droits du répertoire /var/spool/news. Ce répertoire doit apparte-nir à l’utilisateur et au groupe «news». Si ce n’est pas le cas, corrigez les droits comme ceci :

chown news.news /var/spool/news

8.11.3 /etc/news/inn.conf

C’est le fichier de configuration du daemon innd. Nous utiliserons ceci :

## $Revision: 1.24.2.2 $## inn.conf -- inn configuration data## Format:## <parameter>:<whitespace><value>#### See the inn.conf(5) man page for a full description of each## of these options#### Blank values are allowed for certain parameters## ---------------------------------# All parameters must exist#organization: Lycee xxxX (Posts don’t reflect the views of the Lycee xxxx)# ci-dessus, une petite notice en anglais signifiant que le contenu# du message ne reflète pas l’opinion du lycée.server:pathhost: fremen.etablissement.orgmoderatormailer:domain: etablissement.orgfromhost: fremen.etablissement.orgpathalias:complaints: [email protected]##################################################### Vous n’avez plus rien à modifier à partir d’ici #####################################################mta: /usr/sbin/sendmail -oi %smailcmd: /usr/lib/news/bin/innmailcheckincludedtext: false

77

Page 78: BONdossier Info

8 Configuration du serveur

maxforks: 10maxartsize: 1000000nicekids: 4nicenewnews: 0verifycancels: falselogcancelcomm: falsewanttrash: falseremembertrash: truelinecountfuzz: 0peertimeout: 3600clienttimeout: 600allownewnews: truelocalmaxartsize: 1000000

logartsize: truelogipaddr: truelogsitename: truemaxconnections: 50artcutoff: 14icdsynccount: 10hiscachesize: 0readertrack: falsestrippostcc: falsestatus: 0timer: 0readerswhenstopped: falsenoreader: falseextendeddbz: falsennrpdoverstats: falsestoreonxref: truennrpdcheckart: truestoremsgid: trueusecontrolchan: falsemergetogroups: falsebackoffauth: falsebackoffdb: /var/lib/news/backoffbackoffpostfast: 0Lbackoffpostslow: 1Lbackofftrigger: 10000Lmimeversion:mimecontenttype:mimeencoding:refusecybercancels: falseactivedenable: falseactivedupdate: 30

78

Page 79: BONdossier Info

8 Configuration du serveur

activedport: 1119nnrpperlauth: false### These options are unlikely to need changing in most situationschaninacttime: 600chanretrytime: 300pauseretrytime: 300nntplinklog: falsenntpactsync: 200badiocount: 5blockbackoff: 120## ---------------------------------# Changing these options can have an effect on the way articles are# stored and may require recreating the spool and/or database files#wireformat: falsexrefslave: falsennrpdposthost:nnrpdpostport: 119spoolfirst: falsewritelinks: truestorageapi: falsearticlemmap: falseoverviewmmap: truebindaddress: allsourceaddress: anyport: 119### Keywords-in-overview options## Enabling this without stopping innd and deleting the existing overview## database and adding will probably confuse a lot of things. You must## have compiled this support in too.#keywords: falsekeylimit: 512keyartlimit: 100000keymaxwords: 250## Other optionsinnflags: -Ldoinnwatch: trueinnwatchsleeptime: 600pgpverify: true

79

Page 80: BONdossier Info

8 Configuration du serveur

controlfailnotice: falselogcycles: 3innwatchpauseload: 1500innwatchhiload: 2000innwatchloload: 1000innwatchspoolspace: 8000innwatchbatchspace: 800innwatchlibspace: 25000innwatchspoolnodes: 200docnfsstat: false## ---------------------------------# Paths to various aspects of the news system#pathnews: /usr/lib/newspathbin: /usr/lib/news/binpathfilter: /usr/lib/news/bin/filterpathcontrol: /usr/lib/news/bin/controlpathdb: /var/lib/newspathetc: /etc/newspathrun: /var/run/newspathlog: /var/log/newspathhttp: /var/log/newspathtmp: /var/tmppathspool: /var/spool/newspatharticles: /var/spool/news/articlespathoverview: /var/spool/news/overviewpathoutgoing: /var/spool/news/outgoingpathincoming: /var/spool/news/incomingpatharchive: /var/spool/news/archivepathuniover: /var/spool/news/unioveroverviewname: .overview## ---------------------------------#

N’oubliez pas de remplacer le nom de domaine et les noms de machines par votre domaineet vos noms de machines.

8.11.4 /etc/news/hosts.nntp

Ce fichier contient les adresses IP des machines qui nous fournissent des articles via leprotocole NNTP. Chez moi, ce fichier est le suivant :

localhost :

80

Page 81: BONdossier Info

8 Configuration du serveur

62.4.16.158 :

La ligne «localhost :» est requise dans tous les cas.La ligne «62.4.16.158 :» correspond à la machine analynn.codeine.org qui m’alimente en ar-

ticles.Vous remplacerez donc «62.4.16.158» par l’adresse IP de la machine qui vous fournira les

articles. Nous verrons plus tard où trouver des fournisseurs.

8.11.5 /etc/news/nnrp.access

Ce fichier contient les permissions d’accès pour les lecteurs. INN 2.2.2 ne permet pas l’uti-lisation du fichier /etc/passwd comme source des mots de passe NNRP4. De ce fait, l’accès enécriture au serveur sera réservé à notre réseau local, et éventuellement à l’intranet de l’établis-sement.

Voici le fichier que nous utiliserons :

## $Revision: 1.3.2.1 $## nnrp.access - access file for on-campus NNTP sites## Format:## <host>:<perm>:<user>:<pass>:<groups>## <host>:</path/file>## Connecting host must be found in this file; the last match found is## used, so put defaults first.## <host> Wildcard name or IP address## <perm> R to read; P to post## <user> Username for authentication before posting## <pass> Password, for same reason## <groups> Newsgroup patterns that can be read or not read## </path/file> A second file to scan in the same format as this## To disable posting put a space in the <user> and <pass> fields, since## there is no way for client to enter one.#### Default is no access, no way to authentication, and no groups.*::::!*## Foo, Incorporated, hosts have no password, can read anything.#*.foo.com:Read Post:::*## Bar, Incorporated have a separate access file that they maintain# *.bar.com:/news/etc/customers/access.bar.com

stdin:Read Post:::*

## Nous permettons l’accès à la machine locale

4News Network Reader Protocol : protocole de lecture/écriture réservé aux lecteurs, contrairement au protocoleNNTP utilisé pour l’acheminement des articles entre serveurs.

81

Page 82: BONdossier Info

8 Configuration du serveur

localhost:Read Post:::*127.0.0.1:Read Post:::*

## Nous permettons l’accès en lecture/écriture à notre réseau local## Tous les groupes, pas de mot de passe10.1.0.*:Read Post:::*

## Si vous voulez permettre l’accès au serveur en lecture/écriture## pour l’intranet de l’établissement, remplacez xxx.xxx.* par la## valeur adéquate et décommentez la ligne#xxx.xxx.*:Read Post:::*

## Un exemple d’accès restreint aux groupes#*.foo.com:Read:::*

## Un exemple d’accès lecture/écriture à certains groupes#*.bar.com:Read Post:::fr.*

## Un exemple d’accès avec login + mot de passe#*.foobar.com:Read Post:login:password:*

Si vous n’avez pas utilisé les adresses IP 10.1.0.* pour le réseau local, remplacez par lesvaleurs réelles.

Si vous définissez des mots de passe dans ce fichier, faites en sorte qu’il ne soit lisible quepar l’utilisateur news.

8.11.6 /etc/news/newsfeeds

Ce fichier renseigne INN sur ses différents fournisseurs5 : ce que chacun lui fournit, ce qu’ildoit fournir à chacun, comment reconnaître les articles venant de tel ou tel, etc. . .

Voici un exemple, tiré de ma configuration :

ME\:*,!junk,!control*,!local*,!test,!foo::

crosspost:*:Tc,Ap,WR:/usr/lib/news/bin/crosspost

overview!:*:Tc,WO:/usr/lib/news/bin/overchan

innfeed!:!*,:Tc,Wnm*,S30000:/usr/lib/news/bin/startinnfeed

codeine.org/codeine.org\:!*,fx,fx.*,fr.*,cybercable.discussions\

5On parle de «feeds», car ils «nourrissent» le serveur en articles.

82

Page 83: BONdossier Info

8 Configuration du serveur

:Tm:innfeed!

La ligne commençant6 par «ME\» concerne notre propre machine. La ligne commençantpar «crosspost :» est un pseudo-feed permettant de gérer les crossposts7, celle commençant par«overview ! :» permet de gérer l’overview8.

La ligne commençant par «innfeed ! :» permet l’envoi des articles vers les serveurs avec quinous sommes liés.

La dernière ligne concerne le feed avec codeine.org ; on reconnaît les articles en provenancede codeine.org par la chaîne «codeine.org» présente dans le champ «Path :» d’un article. J’en-voie vers codeine.org tout ce qui m’arrive d’autres serveurs et qui n’est pas encore passé parcodeine.org, ainsi que ce qui est posté depuis mon serveur, mais seulement sur certains groupes.Enfin, innfeed est appelé ; il va contacter le serveur de codeine.org et lui envoyer les articles parle biais du protocole NNTP9.

8.11.7 /etc/news/moderators

Ce fichier permet à INN de savoir à quelle adresse il doit envoyer les articles postés dansun groupe modéré. Les articles postés dans ces groupes sont soumis à l’approbation d’une ouplusieurs personnes et, ensuite seulement, s’ils sont approuvés, ils sont postés dans le groupe.

Le fichier /etc/news/moderators se présente comme ceci :

## $Revision: 1.2.4.1 $## Mailing addresses for moderators.## Format:## <newsgroup>:<pathname>## First match found is used.## <newsgroup> Shell-style newsgroup pattern or specific newsgroup## <pathname> Mail address, "%s" becomes newgroup name with dots## changed to dashes.

## Hiérarchie fr.*fr.*:%[email protected]

## Hiérarchie fx.*fx.*:%[email protected]

## Pour toutes les autres hiérarchies*:%[email protected]

6Un backslash (\) dans une ligne signifie que celle-ci se poursuit après le prochain retour à la ligne.7Un article posté sur plusieurs groupes à la fois est dit «crossposté».8Sorte de sommaire répertoriant les articles disponibles dans un groupe donné.9News Network Transfer Protocol, ce protocole sert à propager les articles en temps réel entre les différents ser-

veurs tout autour de la planète.

83

Page 84: BONdossier Info

8 Configuration du serveur

Si vous souhaitez rajouter une adresse de modération pour une hiérarchie particulière, vousdevez la rajouter avant la dernière entrée, car INN utilise la première adresse qui correspondau groupe.

8.11.8 /etc/news/control.ctl

Grâce à ce fichier, vous pouvez faire en sorte que INN créé lui-même les nouveaux groupesà réception du message de contrôle. Le fichier se présente sous cette forme :

## FR (French Language)# *PGP* See comment at top of file.## checkgroups:*:fr.*:drop## newgroup:*:fr.*:drop## rmgroup:*:fr.*:dropcheckgroups:[email protected]:fr.*\:[email protected]=mailnewgroup:[email protected]:fr.*\:[email protected]=mailrmgroup:[email protected]:fr.*\:[email protected]=mail

Recherchez la hiérarchie désirée, puis décommentez et modifiez les lignes nécessaires.N’oubliez pas d’ajouter la clé publique PGP de la hiérarchie dans la collection de clés de

l’utilisateur news (vous pouvez le faire par la commande pgp -ka <fichier contenant la clé>).

8.11.9 /etc/news/expire.ctl

Ce fichier permet de configurer la durée de conservation des articles pour un groupe, unehiérarchie, ou pour l’ensemble. Voici un exemple :

## $Revision: 1.1.1.1 $## expire.ctl - expire control file## Format:## /remember/:<keep>## <patterns>:<modflag>:<keep>:<default>:<purge>## First line gives history retention; other lines specify expiration## for newsgroups. Must have a "*:A:..." line which is the default.## <patterns> wildmat-style patterns for the newsgroups## <modflag> Pick one of M U A -- modifies pattern to be only## moderated, unmoderated, or all groups## <keep> Mininum number of days to keep article## <default> Default number of days to keep the article## <purge> Flush article after this many days## <keep>, <default>, and <purge> can be floating-point numbers or the

84

Page 85: BONdossier Info

8 Configuration du serveur

## word "never." Times are based on when received unless -p is used;## see expire.8

## If article expires before 14 days, we still remember it for 14 days in## case we get offered it again. Depending on what you use for the innd## -c flag and how paranoid you are about old news, you might want to## make this 28, 30, etc./remember/:14

# Nous expirons control.cancel au bout d’une journéecontrol.cancel:A:1:1:1

# Nous expirons fr.test au bout de deux joursfr.test:A:2:2:2

8.11.10 /etc/news/incoming.conf

Ce fichier contient les noms de machines, adresses IP et autres options relatives à nos four-nisseurs d’articles. En voici un exemple, ici le feed avec codeine.org (VB) :

## $Revision: 1.3.4.2 $## incoming.conf - names and addresses that feed us news#### This file consists of three types of entries: key/value, peer## and group. Comments are taken from the hash character ‘‘#’’ to## the end of the line. Blank lines are ignored.#### Key/value entries are a keyword immediatly followed by a colon,## at least one blank and a value. For example:#### max-connections: 10#### A legal key contains nor blanks, nor colon, nor ‘‘#’’.## There are 5 different type of values: integers, booleans, and strings.## Integers are as to be expected. A boolean value is either ‘‘true’’## or ‘‘false’’ (case is significant). A string value is any other## sequence of characters. If the string needs to contain whitespace,## then it must be quoted with double quotes.#### Peer entries look like:#### peer <name> ## # body##

85

Page 86: BONdossier Info

8 Configuration du serveur

#### The word ‘‘peer’’ is required. <name> is a label for this peer.## It is any string valid as a key. The body of a peer entry contains## some number of key/value entries.#### Group entries look like:#### group <name> ## # body## #### The word ‘‘group’’ is required. The ‘‘<name>’’ is any string valid## as a key. The body of a group entry contains any number of the three## types of entries. So key/value pairs can be defined inside a group,## and peers can be nested inside a group, and other groups can be## nested inside a group.#### Key/value entries that are defined outside of all peer and group## entries are said to be at ‘‘global scope’’. Global key/value entries## act as defaults for peers. When innd looks for a specific value in## a peer entry (for example, the maximum number of connections to allow),## if the value is not defined in the peer entry, then the enclosing## groups are examined for the entry (starting at the closest enclosing## group). If there are no enclosing groups, or the enclosing groups## don’t define the key/value, then the value at global scope is used.#### A small example could be:#### # Global value applied to all peers that have no value## # of their own.## max-connections: 5#### # A peer definition.## peer uunet ## hostname: usenet1.uu.net## #### peer vixie ## hostname: gw.home.vix.com## max-connections: 10 # override global value.## #### # A group of two peers who can open more connections than normal## group fast-sites ## max-connections: 15

86

Page 87: BONdossier Info

8 Configuration du serveur

#### # Another peer. The ‘‘max-connections’’ value from the## # ‘‘fast-sites’’ group scope is used.## peer data.ramona.vix.com ## hostname: data.ramona.vix.com## #### peer bb.home.vix.com ## hostname: bb.home.vix.com## max-connections: 20 # he can really cook.## ## #### Given the above configuration file, the defined peers would have the## following values for the ‘‘max-connections’’ key.#### uunet 5## vixie 10## data.ramona.vix.com 15## bb.home.vix.com 20#### Height keys are allowed:#### hostname:## This key is mandatory in a peer block. The value is a string## representing a list of hostnames separated by a comma. A hostname## is the host’s FQDN, or the dotted quad ip-address of the peer.#### streaming:## This key requires a boolean value. It defines whether streaming## commands are allowed from this peer. (default=true)#### max-connections:## This key requires positive integer value. It defines the maximum## number of connections allowed. A value of zero specifies an## unlimited number of maximum connections (‘‘unlimited’’ or ‘‘none’’## can be used as synonym). (default=0)#### password:## This key requires a string value. It is used if you wish to require## a peer to supply a password. (default=no password)#### patterns:## This key requires a string value. It is a list of newsfeeds(5)-style## list of newsgroups which are to be accepted from this host.

87

Page 88: BONdossier Info

8 Configuration du serveur

## (default="*")#### email:## This key requires a string value. Reserved for future use.## (default=empty)#### comment:## This key requires a string value. Reserved for future use.## (default=empty)#### skip:## This key requires a boolean value. Setting this entry causes this## peer to be skipped. Reserved for future use. (default=false)#### noresendid:## This key requires a boolean value. It defines whether innd should## send "431 RESENDID" (stream mode) or "436 Retry later" (non-stream## mode) responses if a message is offered that is already received## from another peer. This can be useful for peers that resend messages## right away, as innfeed does. (default=false)##

streaming: true # streaming allowed by defaultmax-connections: 8 # per feed

peer ME hostname: "localhost, 127.0.0.1"

peer VB hostname: "annalynn.codeine.org, 212.208.8.55"

8.11.11 /etc/news/innfeed.conf

C’est le fichier de configuration de innfeed. Nous inscrivons ici nos différents feeds ainsi queleurs adresses IP. Innfeed consulte ce fichier lorsqu’il doit contacter les autres serveurs pour leurenvoyer des articles. Ici encore, un exemple avec le feed de codeine.org :

# $Revision: 1.1 $## Sample innfeed config file. See the comment block at the# end for a fuller description of the format, and innfeed.conf(5) for a# description of the entries.#

88

Page 89: BONdossier Info

8 Configuration du serveur

#### Global values. Not specific to any peer. These are optional, but if## used will override the compiled in values.##

pid-file: innfeed.pid # relative to pathrundebug-level: 0use-mmap: falselog-file: innfeed.log # relative to pathlogstdio-fdmax: 0

## Uncomment the next line to include the contents## of ‘‘testfile’’ at this point.

#$INCLUDE testfile

backlog-directory: innfeed # relative to pathspoolbacklog-rotate-period: 60backlog-ckpt-period: 30backlog-newfile-period: 600

dns-retry: 900dns-expire: 86400close-period: 3600gen-html: falsestatus-file: innfeed.status # relative to pathlogconnection-stats: falsehost-queue-highwater: 200stats-period: 600stats-reset: 43200

max-reconnect-time: 3600initial-reconnect-time: 30

#### Defaults for all peers. These must all exist at## global scope. Any of them can be redefined## inside a peer or group definition.##

article-timeout: 600response-timeout: 300initial-connections: 1

89

Page 90: BONdossier Info

8 Configuration du serveur

max-connections: 5max-queue-size: 25streaming: trueno-check-high: 95.0no-check-low: 90.0no-check-filter: 50.0port-number: 119backlog-limit: 0backlog-factor: 1.10backlog-limit-highwater: 0dynamic-method: 3dynamic-backlog-filter: 0.7dynamic-backlog-low: 25.0dynamic-backlog-high: 50.0no-backlog: false

#### Peers.###peer decwrl # ip-name: news1.pa.dec.com#

#peer uunet # ip-name: news.uunet.uu.net# max-connections: 10#

#### Group peers together to give second level defaults.###group fast-sites # max-connections: 7## peer data.ramona.vix.com # # ip-name defaults to data.ramona.vix.com# streaming: false# ## peer bb.home.vix.com # ip-name: 192.5.5.33# #

90

Page 91: BONdossier Info

8 Configuration du serveur

peer codeine.org ip-name: 212.208.8.55

# Blank lines are ignored. Exerything after a ’#’# is ignored too.## Format is:# key : value## See innfeed.conf(5) for a description of# necessary & useful keys. Unknown keys and their# values are ignored.## Values may be a integer, floating-point, c-style# single-quoted characters, boolean, and strings.## If a string value contains whitespace, or# embedded quotes, or the comment character# (‘‘#’’), then the whole string must be quoted# with double quotes. Inside the quotes, you may# use the standard c-escape sequence# (\t,\n,\r,\f,\v,\",\’).## Examples:# eg-string: "New\tConfig\tfile\n"# eg-long-string: "A long string that goes# over multiple lines. The# newline is kept in the# string except when quoted# with a backslash \# as here."# eg-simple-string: A-no-quote-string# eg-integer: 10# eg-boolean: true# eg-char: ’a’# eg-ctrl-g: ’\007’

8.11.12 /etc/news/innreport.conf

Innreport est lancé toutes les nuits par cron. Il examine les logs d’INN et vous fait parvenirun rapport détaillé des activités du serveur pendant la journée écoulée. Il génère également despages HTML agrémentées de graphiques, résumant l’activité du serveur.

Voici le début du long fichier de configuration :

91

Page 92: BONdossier Info

8 Configuration du serveur

########################################################### Configuration file for innreport (3.0.0 and more).## Sample file for INN.# Tested with INN 1.8current, 1.7 and 1.5.1.## (c) 1997, 1998 by Fabien Tassin <[email protected]># version 2.1.9_7##########################################################

# Default parameterssection default libpath "/usr/lib/news";logpath "/var/log/news";unknown true; # want unknown entries.max_unknown 50; # max unknown entries to display.casesensitive true;module "innreport_inn"; # $libpath/$module.pmunwanted_log "unwanted.log"; # $logpath/$unwanted_log

text true;html true;graph true; # need ’html’

archive true; # use false to keep only the latest HTML report.index "index.html"; # name of the HTML index file.

html_dir "/var/www/news/stats"; # default to pathhttp in inn.confimg_dir "pics"; # images will go to $html_dir/$img_dircycle none; # use a number or ’none’.

separator "."; # use a valid filename character.title "Daily Usenet report for <A HREF=\"/stat/\">news.y.z</A>";footer "Contact: <A HREF=\"mailto:[email protected]\">\

[email protected]</A>";html_body "BGCOLOR=\"#FFFFFF\" TEXT=\"#000000\"";

# html_header_file "header.html"; # $html_dir/$html_header_file# html_footer_file "footer.html"; # $html_dir/$html_footer_file

graph_width 550; # graph width (in pixels)transparent true; # graph background transparent ?graph_fg "#000000"; # graph foreground color.graph_bg "#FFFFFF"; # graph background color.

;

8.11.13 /etc/news/motd.news

Le texte contenu dans ce fichier est affiché sur demande du lecteur de news. Il n’est pasobligatoire d’y mettre quelque chose.

92

Page 93: BONdossier Info

8 Configuration du serveur

8.11.14 /var/lib/news/active

Ce fichier contient les noms des différents groupes présents sur le serveur, ainsi que lenuméro de l’article le plus vieux et celui de l’article le plus récent.

Vous ne devez pas éditer ce fichier à la main.Nous ferons le nécessaire pour l’initialiser tout à l’heure.

8.11.15 /var/lib/news/history

Ce fichier est généré par INN lui-même. Nous n’avons pas à nous en occuper.

8.11.16 /var/lib/news/newsgroups

Ce fichier contient les descriptions des différents groupes présents sur le serveur. Nousl’initialiserons en même temps que le fichier active.

8.11.17 Vérification de la configuration

Avant de redémarrer INN, nous allons vérifier la configuration grâce à inncheck :

inncheck -a -v -pedantic

Vous devriez obtenir quelque chose comme ça :

Looking at /var/lib/news/active...Looking at /etc/news/control.ctl...Looking at /etc/news/expire.ctl...Looking at /etc/news/incoming.conf...Looking at /etc/news/inn.conf.../etc/news/inn.conf:16: modmailer has bad addressLooking at /etc/news/moderators...Looking at /etc/news/newsfeeds...ME, crosspost, overview!, innfeed!, codeine.org,/etc/news/newsfeeds:0: warning you accept all incoming article distributionsdone.Looking at /etc/news/nnrp.access...Looking at /etc/news/nntpsend.ctl...Looking at /etc/news/overview.fmt...Looking at /etc/news/passwd.nntp...

Malgré les quelques erreurs, tout est bon. Nous pouvons redémarrer INN.Si vous obtenez d’autres erreurs que celles-ci, faites en sorte de les corriger.

93

Page 94: BONdossier Info

8 Configuration du serveur

8.11.18 Redémarrage de INN

Nous allons donc redémarrer INN :

/etc/init.d/inn2 start

Si le résultat de inncheck ne présentait aucune erreur grave, INN devrait démarrer sans pro-blèmes.

8.11.19 CleanFeed, la lutte anti-spam

CleanFeed est un logiciel de filtrage qui analyse chaque article arrivant sur le serveur. Ilpermet d’éviter les articles en HTML, les fichiers attachés, et une partie du spam.

Le spam consiste en des messages publicitaires non sollicités. Cela pose plusieurs pro-blèmes :

– gêne des contributeurs des différents forums– augmentation du trafic– consommation inutile de ressources

Je vous conseille fortement d’installer CleanFeed. Vous pouvez vous le procurer à l’adressessuivante :

http://www.exit109.com/~jeremy/news/cleanfeed.html

8.11.19.1 Installation

Copiez le fichier filter_innd.pl dans le répertoire /usr/lib/news/bin/filter.

8.11.19.2 Configuration

CleanFeed utilise le fichier /etc/news/cleanfeed.conf. Le voici :

# Cleanfeed configuration file

sub local_config

### !! WARNING !! YOU CAN & MUST SET ONLY ONE OF THE FOLLOWING:$inn = 1; # set $inn = 1 for INN$highwind = 0; # set $highwind = 1 for Cyclone/Typhoon/Breeze$nntprelay = 0; # set $nntprelay = 1 for NNTPRelay

%config_local = (

# Settings in %config_local will OVERRIDE any defaults# in Cleanfeed.## Any setting here will blindly replace one with the# same name in %config. No sanity checks are done.

94

Page 95: BONdossier Info

8 Configuration du serveur

# Be careful!## On/off settings should be set to 1 for on, 0 for off

### Setting aggressive to 0 disables all content-based filters’aggressive’ => 1,

### Active file’active_file’ => "/var/lib/news/active",

############################################################ MD5-based EMP filter settings

### Do the MD5 checks? You probably shouldn’t turn this off,### but if you’re running Hippo also you might want to anyway,### and far be it from me to stop you.

’do_md5’ => 1,

### Start rejecting after the MD5 filter sees this many copies’md5maxmultiposts’ => 5,

### Keep history of this many MD5 article checksums’MD5History’ => 11000,

### Time to keep MD5 EMP ids with no hits, in hours’MD5maxlife’ => 24,

### Use "fuzzy" MD5 check by "imploding" message bodies### before hashing?

’fuzzy_md5’ => 0,

### Don’t do fuzzy-check if the body is more than this many lines’fuzzy_max_length’ => 700,

### Should the MD5 filter skip articles with References?### Possibly a major performance difference.

’md5_skips_followups’ => 1,

### Maximum number of MD5 EMP ids to ever keep’MD5HistSize’ => 7000,

############################################################ Header-based EMP filter settings

95

Page 96: BONdossier Info

8 Configuration du serveur

### Do the Posting-Host/Lines EMP checks? You really want to### keep this on.

’do_phl’ => 1,

### Do the From/Subject/Lines EMP checks? This is the one with### the lowest hit rate these days.

’do_fsl’ => 1,

### Start rejecting after the header filter sees this many copies.### More prone to false positives than MD5 so set this higher

’maxmultiposts’ => 20,

### Keep history of this many header-EMP checks’ArticleHistory’ => 7000,

### Time to keep EMP ids with no hits, in hours’EMPmaxlife’ => 24,

### Maximum number of EMP ids to ever keep’EMPHistSize’ => 1500,

############################################################ Excessive Crosspost settings

### Maximum number of newsgroups allowed in a crosspost### Articles are rejected if posted such that followups### will be to more than this many groups

’maxgroups’ => 5,

### Restrict crossposts in low_xpost_groups (below) to this many’low_xpost_maxgroups’ => 6,

### ’tjfmaxgroups’ has been removed

############################################################ Misplaced Binaries Filter

### Block binaries in non-binary newsgroups?’block_binaries’ => 1,

### Max number of binary-encoded lines before considering### an article a "binary"

’max_encoded_lines’ => 20,

96

Page 97: BONdossier Info

8 Configuration du serveur

### Allow binaries in all moderated groups?### (Requires an active file)

’binaries_in_mod_groups’ => 1,

############################################################ HTML, etc.

### Block MIME-encapsulated HTML?### (not regular HTML or multipart/alternative)

’block_mime_html’ => 1,

### Block HTML and multipart/alternative?’block_html’ => 0,

############################################################ Cancel Message Filtering

### Block cancels of already-rejected articles?’block_late_cancels’ => 0,

### Time to keep rejected message-ids for cancel rejection### in hours

’MIDmaxlife’ => 1,

############################################################ Other filters you may want to shut off for some reason

### Do the scoring filter?’do_scoring_filter’ => 1,

### Do the message-id filter on NNTP CHECK command (INN only)?’do_mid_filter’ => 0,

### Do the spam-bot-signature checks? Leave this on. Really.’do_bot_checks’ => 1,

### Do the excessive Supersedes filter?’do_supersedes_filter’ => 1,

### Apply bad_cancel_paths to Supersedes also?’check_supersedes_path’ => 1,

97

Page 98: BONdossier Info

8 Configuration du serveur

### Drop all sendsys, senduuname, and version control messages?’drop_useless_controls’ => 1,

### Drop all ihave and sendme control messages?’drop_ihave_sendme’ => 1,

### Drop any control message also containing a Supersedes header?’drop_control_with_supersedes’ => 1,

############################################################ Hash-Trimming

### Trim hashes every N cycles through the filter’trimcycles’ => 500,

### Don’t bother trimming hashes until they’re this big’EMPstarttrimming’ => 500,

############################################################ Logging

### Verbose rejection reasons in news.notice/logfile?’verbose’ => 1,

### Set the following to log the message ID’s### of all articles processed.### Doesn’t work for INN (uses news.notice instead).

’logfile’ => undef,’reportfile’ => undef,

### Should the above log, if used, log accepts as well as rejects?’log_accepts’ => 0,

### Rotate the log (if used) at this size’max_log_size’ => 10000000,

### Crude stats for tuning purposes (see documentation)’statfile’ => undef,

############################################################ Timing Information

98

Page 99: BONdossier Info

8 Configuration du serveur

### Generate timing information?’timer_info’ => 1,

### Interval over which to average timing information,### in seconds.

’timer_interval’ => 300,

############################################################ Debugging

### Batch files for debugging written to this directory’debug_batch_directory’ => undef,

### Batch files will be rotated when they exceed this size’debug_batch_size’ => 100000,

);

%config_append = (

# Used to append to the end of the default regexps.## Settings here will be added to the defaults, with a | between# the default string and the one provided here.## See the default settings in the Cleanfeed code.## Allowed in this section:

### binaries allowed if groups match# ’bin_allowed’ => undef,

### reject crossposts if any groups match# ’poison_groups’ => undef,

### HTML allowed if groups match (only if block_html is on)# ’html_allowed’ => undef,

### md5 EMP check not done if groups match# ’md5exclude’ => undef,

### no checks done if groups match

99

Page 100: BONdossier Info

8 Configuration du serveur

# ’allexclude’ => undef,

### restrict crossposts in these groups to low_xpost_maxgroups# ’low_xpost_groups’ => undef,

### used to build domain names for URL matching# ’badguys’ => undef,

### matched against domain names in URLs# ’baddomainpat’ => undef,

### regexps to exempt from NNTP-Posting-Host EMP filter# ’exempt’ => undef,

### regexps to exempt from excessive supersedes filter# ’supersedes_exempt’ => undef,

### Reject cancels (and possibly supersedes) with these path elements# ’bad_cancel_paths’ => undef,

### refuse articles with these in the message-id (INN only)# ’refuse_messageids’ => undef,

);

1;

8.11.19.3 Activation du filtre

Toujours en tant qu’utilisateur news, lancez les commandes suivantes :

ctlinnd pause ’cleanfeed’ctlinnd perl yctlinnd reload all ’activation~cleanfeed’ctlinnd go ’cleanfeed’

Sachez que le programme ctlinnd se trouve dans /usr/lib/news/bin. Je vous recommanded’ajouter ce chemin à la variable $PATH de l’utilisateur news.

Maintenant, le filtrage est activé. Innreport vous fera part des statistiques relatives à Clean-Feed dans son rapport quotidien.

8.11.20 Constitution des fichiers active et newsgroups

Nous allons utiliser une liste des groupes au format checkgroups. Cette liste est formatéede manière à être traitée par le programme docheckgroups.

100

Page 101: BONdossier Info

8 Configuration du serveur

Commencez par récupérer la liste. Pour la hiérarchie fr.*, cette liste est postée tous les quinzejours sur le forum fr.usenet.forums.annonces, avec pour titre «[ANNONCE] Liste des groupes fr.*au format checkgroups».

Enregistrez dans un fichier nommé «checkgroups» les lignes comprises entre

/usr/local/news/bin/control/docheckgroups <<PASGLOP

et

PASGLOP

Veillez à ce que «/usr[...]PASGLOP» soit au début de la ligne. Modifiez le chemin vers le pro-gramme docheckgroups pour qu’il corresponde à l’endroit où il est installé sur votre système,soit /usr/lib/news/docheckgroups dans notre cas.

Arrêtez le serveur :

ctlinnd pause ’checkgroups’

Lancez la commande :

sh ./checkgroups > maj-active

Le fichier maj-active contient un certain nombre de lignes qui vont permettre de mettre à jourvotre fichier active. Puis, il contient les descriptions des groupes que vous devez ajouter dans lefichier /var/lib/news/newsgroups.

Sauvegardez votre fichier active courant :

cp /var/lib/news/active /var/lib/news/active.save

Lancez la mise à jour :

sh ./maj-active

Forcez INN à recharger ses fichiers de configuration :

ctlinnd reload all ’checkgroups’

Relancez INN :

ctlinnd go ’checkgroups’

Pour les checkgroups des hiérarchies autres que fr.*, renseignez-vous dans le groupe fr.usenet.divers.Vous trouverez toujours quelqu’un pour vous aiguiller.

8.11.21 Trouver un feed

Maintenant, il vous faut trouver quelqu’un qui accepte de vous envoyer des articles via leprotocole NNTP, et donc en utilisant innfeed. Vous pouvez vous reporter à la documentation deStéphane MARCHAU, intitulée «[DOC] Ou trouver un approvisionnement pour fr.* ?», qui estpostée tous les quinze jours sur fr.usenet.distribution.

Vous pouvez également tenter de solliciter codeine.org présenté dans les exemples, ainsi quemoi-même.

Vous pouvez également tenter votre chance auprès des grands fournisseurs tels que free.fr.Avant de demander un feed, assurez-vous que la liaison entre votre machine et celle du

fournisseur est de bonne qualité.

101

Page 102: BONdossier Info

8 Configuration du serveur

8.12 Apache, le serveur HTTP

Nous commençons comme pour les autres services par arrêter le daemon Apache :

/etc/init.d/apache stop

La configuration d’Apache se fait grâce à trois fichiers principaux.

8.12.1 /etc/apache/httpd.conf

C’est le fichier principal dans la configuration d’Apache. Nous utiliserons celui-ci :

# This is the main server configuration file.# See URL http://www.apache.org/ for instructions.

# Do NOT simply read the instructions in here without understanding# what they do, if you are unsure consult the online docs. You have been# warned.

# Originally by Rob McCool

# Shared Object Module Loading:# To be able to use the functionality of a module which was built# as a shared object you have to place corresponding ‘LoadModule’# lines at this location so the directives contained in it are# actually available _before_ they are used.# Example:

# ServerType is either inetd, or standalone.

ServerType standalone

# If you are running from inetd, go to "ServerAdmin".

# Port: The port the standalone listens to. For ports < 1023, you will# need httpd to be run as root initially.

Port 80

# HostnameLookups: Log the names of clients or just their IP numbers# e.g. www.apache.org (on) or 204.62.129.132 (off)# The default is off because it’d be overall better for the net if people# had to knowingly turn this feature on.

HostnameLookups off

102

Page 103: BONdossier Info

8 Configuration du serveur

# If you wish httpd to run as a different user or group, you must run# httpd as root initially and it will switch.

# User/Group: The name (or #number) of the user/group to run httpd as.# On SCO (ODT 3) use User nouser and Group nogroup# On HPUX you may not be able to use shared memory as nobody, and the# suggested workaround is to create a user www and use that user.

User www-dataGroup www-data

# ServerAdmin: Your address, where problems with the server should be# e-mailed.ServerAdmin [email protected]

# ServerRoot: The directory the server’s config, error, and log files# are kept in.# NOTE! If you intend to place this on a NFS (or otherwise network)# mounted filesystem then please read the LockFile documentation,# you will save yourself a lot of trouble.

ServerRoot /etc/apache

# BindAddress: You can support virtual hosts with this option. This option# is used to tell the server which IP address to listen to. It can either# contain "*", an IP address, or a fully qualified Internet domain name.# See also the VirtualHost directive.

#BindAddress *

# The Debian package of Apache loads every feature as shared modules.# Please keep this LoadModule: line here, it is needed for installation.# LoadModule vhost_alias_module /usr/lib/apache/1.3/mod_vhost_alias.so# LoadModule env_module /usr/lib/apache/1.3/mod_env.soLoadModule config_log_module /usr/lib/apache/1.3/mod_log_config.so# LoadModule mime_magic_module /usr/lib/apache/1.3/mod_mime_magic.soLoadModule mime_module /usr/lib/apache/1.3/mod_mime.soLoadModule negotiation_module /usr/lib/apache/1.3/mod_negotiation.soLoadModule status_module /usr/lib/apache/1.3/mod_status.so# LoadModule info_module /usr/lib/apache/1.3/mod_info.so# LoadModule includes_module /usr/lib/apache/1.3/mod_include.soLoadModule autoindex_module /usr/lib/apache/1.3/mod_autoindex.soLoadModule dir_module /usr/lib/apache/1.3/mod_dir.soLoadModule cgi_module /usr/lib/apache/1.3/mod_cgi.so

103

Page 104: BONdossier Info

8 Configuration du serveur

# LoadModule asis_module /usr/lib/apache/1.3/mod_asis.so# LoadModule imap_module /usr/lib/apache/1.3/mod_imap.so# LoadModule action_module /usr/lib/apache/1.3/mod_actions.so# LoadModule speling_module /usr/lib/apache/1.3/mod_speling.soLoadModule userdir_module /usr/lib/apache/1.3/mod_userdir.soLoadModule alias_module /usr/lib/apache/1.3/mod_alias.soLoadModule rewrite_module /usr/lib/apache/1.3/mod_rewrite.soLoadModule access_module /usr/lib/apache/1.3/mod_access.soLoadModule auth_module /usr/lib/apache/1.3/mod_auth.so# LoadModule anon_auth_module /usr/lib/apache/1.3/mod_auth_anon.so# LoadModule dbm_auth_module /usr/lib/apache/1.3/mod_auth_dbm.so# LoadModule db_auth_module /usr/lib/apache/1.3/mod_auth_db.so# LoadModule proxy_module /usr/lib/apache/1.3/libproxy.so# LoadModule digest_module /usr/lib/apache/1.3/mod_digest.so# LoadModule cern_meta_module /usr/lib/apache/1.3/mod_cern_meta.soLoadModule expires_module /usr/lib/apache/1.3/mod_expires.so# LoadModule headers_module /usr/lib/apache/1.3/mod_headers.so# LoadModule usertrack_module /usr/lib/apache/1.3/mod_usertrack.soLoadModule unique_id_module /usr/lib/apache/1.3/mod_unique_id.soLoadModule setenvif_module /usr/lib/apache/1.3/mod_setenvif.so# LoadModule sys_auth_module /usr/lib/apache/1.3/mod_auth_sys.so# LoadModule put_module /usr/lib/apache/1.3/mod_put.so# LoadModule throttle_module /usr/lib/apache/1.3/mod_throttle.so# LoadModule allowdev_module /usr/lib/apache/1.3/mod_allowdev.so# LoadModule auth_mysql_module /usr/lib/apache/1.3/mod_auth_mysql.so# LoadModule pgsql_auth_module /usr/lib/apache/1.3/mod_auth_pgsql.so# LoadModule eaccess_module /usr/lib/apache/1.3/mod_eaccess.so# LoadModule roaming_module /usr/lib/apache/1.3/mod_roaming.so

ExtendedStatus on

# ErrorLog: The location of the error log file. If this does not start# with /, ServerRoot is prepended to it.

ErrorLog /var/log/apache/error.log

# LogLevel: Control the number of messages logged to the error_log.# Possible values include: debug, info, notice, warn, error, crit,# alert, emerg.

LogLevel warn

# The following directives define some format nicknames for use with# a CustomLog directive (see below).

104

Page 105: BONdossier Info

8 Configuration du serveur

LogFormat "%h %l %u %t \"%r\" %>s %b \"%Refereri\" \"%User-Agenti\" %T %v" fullLogFormat "%h %l %u %t \"%r\" %>s %b \"%Refereri\" \"%User-Agenti\"" combinedLogFormat "%h %l %u %t \"%r\" %>s %b" commonLogFormat "%Refereri -> %U" refererLogFormat "%User-agenti" agent

# The location of the access logfile (Common Logfile Format).# If this does not start with /, ServerRoot is prepended to it.

CustomLog /var/log/apache/access.log common

# If you would like to have an agent and referer logfile uncomment the# following directives.

CustomLog /var/log/apache/referer.log refererCustomLog /var/log/apache/agent.log agent

# If you prefer a single logfile with access, agent and referer# information (Combined Logfile Format) you can use the# following directive.

#CustomLog /var/log/apache/access.log combined

# PidFile: The file the server should log its pid toPidFile /var/run/apache.pid

# ScoreBoardFile: File used to store internal server process# information.# Not all architectures require this. But if yours does (you’ll know# because this file is created when you run Apache) then you *must*# ensure that no two invocations of Apache share the same scoreboard# file.# ScoreBoardFile logs/apache_runtime_status

# The LockFile directive sets the path to the lockfile used when Apache# is compiled with either USE_FCNTL_SERIALIZED_ACCEPT or# USE_FLOCK_SERIALIZED_ACCEPT. This directive should normally be left at# its default value. The main reason for changing it is if the logs# directory is NFS mounted, since the lockfile MUST BE STORED ON A LOCAL# DISK. The PID of the main server process is automatically appended to# the filename.#LockFile /var/run/apache.lock

# ServerName allows you to set a host name which is sent back to

105

Page 106: BONdossier Info

8 Configuration du serveur

# clients for your server if it’s different than the one the program# would get (i.e. use "www" instead of the host’s real name).## Note: You cannot just invent host names and hope they work. The# name you define here must be a valid DNS name for your host. If# you don’t understand this, ask your network administrator.

ServerName www.etablissement.org

# UseCanonicalName: (new for 1.3) With this setting turned on, whenever# Apache needs to construct a self-referencing URL (a url that refers back# to the server the response is coming from) it will use ServerName and# Port to form a "canonical" name. With this setting off, Apache will# use the hostname:port that the client supplied, when possible. This# also affects SERVER_NAME and SERVER_PORT in CGIs.UseCanonicalName on

# CacheNegotiatedDocs: By default, Apache sends Pragma: no-cache with each# document that was negotiated on the basis of content. This asks proxy# servers not to cache the document. Uncommenting the following line# disables this behavior, and proxies will be allowed to cache the# documents.

#CacheNegotiatedDocs

# Timeout: The number of seconds before receives and sends time out

Timeout 300

# KeepAlive: Whether or not to allow persistent connections (more than# one request per connection). Set to "Off" to deactivate.

KeepAlive On

# MaxKeepAliveRequests: The maximum number of requests to allow# during a persistent connection. Set to 0 to allow an unlimited amount.# We reccomend you leave this number high, for maximum performance.

MaxKeepAliveRequests 100

# KeepAliveTimeout: Number of seconds to wait for the next request

KeepAliveTimeout 15

# Server-pool size regulation. Rather than making you guess how many

106

Page 107: BONdossier Info

8 Configuration du serveur

# server processes you need, Apache dynamically adapts to the load it# sees --- that is, it tries to maintain enough server processes to# handle the current load, plus a few spare servers to handle transient# load spikes (e.g., multiple simultaneous requests from a single# Netscape browser).

# It does this by periodically checking how many servers are waiting# for a request. If there are fewer than MinSpareServers, it creates# a new spare. If there are more than MaxSpareServers, some of the# spares die off. These values are probably OK for most sites ---

MinSpareServers 5MaxSpareServers 10

# Number of servers to start --- should be a reasonable ballpark figure.

StartServers 5

# Limit on total number of servers running, i.e., limit on the number# of clients who can simultaneously connect --- if this limit is ever# reached, clients will be LOCKED OUT, so it should NOT BE SET TOO LOW.# It is intended mainly as a brake to keep a runaway server from taking# Unix with it as it spirals down...

MaxClients 150

# MaxRequestsPerChild: the number of requests each child process is# allowed to process before the child dies.# The child will exit so as to avoid problems after prolonged use when# Apache (and maybe the libraries it uses) leak. On most systems, this# isn’t really needed, but a few (such as Solaris) do have notable leaks# in the libraries.

MaxRequestsPerChild 30

# Listen: Allows you to bind Apache to specific IP addresses and/or# ports, in addition to the default. See also the VirtualHost command

#Listen 3000#Listen 12.34.56.78:80

# VirtualHost: Allows the daemon to respond to requests for more than one# server address, if your server machine is configured to accept IP packets# for multiple addresses. This can be accomplished with the ifconfig

107

Page 108: BONdossier Info

8 Configuration du serveur

# alias flag, or through kernel patches like VIF.

# Any httpd.conf or srm.conf directive may go into a VirtualHost command.# See also the BindAddress entry.## Un exemple de serveur virtuel

#<VirtualHost autre-serveur.etablissement.org>#ServerAdmin [email protected]#DocumentRoot /var/www/autre-serveur#ServerName autre-serveur.etablissement.org#ErrorLog /var/log/apache/autre-serveur-error.log#TransferLog /var/log/apache/autre-serveur-access.log#</VirtualHost>

# Serveurs virtuels sur l’interface externe. Remplacer# xxx.xxx.xxx.xxx par l’adresse IP de l’interface externe

NameVirtualHost xxx.xxx.xxx.xxx

# Serveur virtuel principal : www.etablissement.org

<VirtualHost xxx.xxx.xxx.xxx>ServerAdmin [email protected] /var/www/etablissementServerName www.etablissement.orgServerAlias etablissement.orgUserDir disabledErrorLog /var/log/apache/www-error.logTransferLog /var/log/apache/www-access.log</VirtualHost>

# Serveur virtuel : pages web élèves

<VirtualHost xxx.xxx.xxx.xxx>ServerAdmin [email protected] /var/www/elevesServerName eleves.etablissement.orgUserDir disabled rootUserDir enabled /home/eleves/*/public_htmlErrorLog /var/log/apache/eleves-error.logTransferLog /var/log/apache/eleves-access.log</VirtualHost>

# Serveur virtuel : pages web professeurs

108

Page 109: BONdossier Info

8 Configuration du serveur

<VirtualHost xxx.xxx.xxx.xxx>ServerAdmin [email protected] /var/www/profsServerName profs.etablissement.orgUserDir disabled rootUserDir enabled /home/profs/*/public_htmlErrorLog /var/log/apache/profs-error.logTransferLog /var/log/apache/profs-access.log</VirtualHost>

8.12.2 /etc/apache/srm.conf

Ce fichier définit la manière dont Apache doit répondre aux requêtes. On y définit notam-ment où seront cherchées les pages personnelles, ainsi que les pages d’erreur personnalisées,par exemple.

Ici l’emplacement des pages personnelles est défini pour chaque serveur virtuel, dans le fi-chier httpd.conf, car j’ai décidé de séparer l’accès aux espaces Web des professeurs et des élèves.Cela nous obligera à séparer les répertoires personnels des professeurs et des élèves, nous enreparlerons plus tard. Par contre, nous interdisons au root d’avoir une page personnelle, pourdes raisons de sécurité.

Nous utiliserons celui-ci ; les pages d’erreur ne sont pas personnalisées :

# With this document, you define the name space that users see of your# http server. This file also defines server settings which affect# how requests are serviced, and how results should be formatted.

# See the tutorials at http://www.apache.org/ for# more information.

# Originally by Rob McCool; Adapted for Apache

# DocumentRoot: The directory out of which you will serve your# documents. By default, all requests are taken from this directory, but# symbolic links and aliases may be used to point to other locations.DocumentRoot /var/www

# UserDir: The name of the directory which is appended onto a user’s home# directory if a ~user request is recieved.

UserDir disabled root

# DirectoryIndex: Name of the file or files to use as a pre-written HTML# directory index. Separate multiple entries with spaces.

109

Page 110: BONdossier Info

8 Configuration du serveur

DirectoryIndex index.html

# FancyIndexing is whether you want fancy directory indexing or standard

FancyIndexing on

# AddIcon tells the server which icon to show for different files or# filename extensions

AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip

AddIconByType (TXT,/icons/text.gif) text/*AddIconByType (IMG,/icons/image2.gif) image/*AddIconByType (SND,/icons/sound2.gif) audio/*AddIconByType (VID,/icons/movie.gif) video/*

AddIcon /icons/binary.gif .bin .exeAddIcon /icons/binhex.gif .hqxAddIcon /icons/tar.gif .tarAddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .ivAddIcon /icons/compressed.gif .Z .z .tgz .gz .zipAddIcon /icons/a.gif .ps .ai .epsAddIcon /icons/layout.gif .html .shtml .htm .pdfAddIcon /icons/text.gif .txtAddIcon /icons/c.gif .cAddIcon /icons/p.gif .pl .pyAddIcon /icons/f.gif .forAddIcon /icons/dvi.gif .dviAddIcon /icons/uuencoded.gif .uuAddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tclAddIcon /icons/tex.gif .texAddIcon /icons/bomb.gif */coreAddIcon /icons/deb.gif .deb Debian

AddIcon /icons/back.gif ..AddIcon /icons/hand.right.gif READMEAddIcon /icons/folder.gif ^^DIRECTORY^^AddIcon /icons/blank.gif ^^BLANKICON^^

# DefaultIcon is which icon to show for files which do not have an icon# explicitly set.

DefaultIcon /icons/unknown.gif

110

Page 111: BONdossier Info

8 Configuration du serveur

# AddDescription allows you to place a short description after a file in# server-generated indexes.# Format: AddDescription "description" filename

# ReadmeName is the name of the README file the server will look for by# default. Format: ReadmeName name## The server will first look for name.html, include it if found, and# it will then look for name and include it as plaintext if found.## HeaderName is the name of a file which should be prepended to# directory indexes.

ReadmeName READMEHeaderName HEADER

# IndexIgnore is a set of filenames which directory indexing should# ignore# Format: IndexIgnore name1 name2...

IndexIgnore .??* *~ *# HEADER HEADER.html README README.html RCS CVS

# AccessFileName: The name of the file to look for in each directory# for access control information.

AccessFileName .htaccess

# DefaultType is the default MIME type for documents which the server# cannot find the type of from filename extensions.

DefaultType text/plain

# AddEncoding allows you to have certain browsers (Mosaic/X 2.1+)# uncompress information on the fly. Note: Not all browsers support# this.

AddEncoding x-compress ZAddEncoding x-gzip gz

# AddLanguage allows you to specify the language of a document. You can# then use content negotiation to give a browser a file in a language# it can understand. Note that the suffix does not have to be the same# as the language keyword --- those with documents in Polish (whose# net-standard language code is pl) may wish to use "AddLanguage pl .po"# to avoid the ambiguity with the common suffix for perl scripts.

111

Page 112: BONdossier Info

8 Configuration du serveur

AddLanguage en .enAddLanguage fr .frAddLanguage de .deAddLanguage da .daAddLanguage it .itAddLanguage es .esAddLanguage br .brAddLanguage ja .jaAddLanguage dk .dkAddLanguage pl .plAddLanguage kr .kr

# LanguagePriority allows you to give precedence to some languages# in case of a tie during content negotiation.# Just list the languages in decreasing order of preference.

LanguagePriority fr en de

# Redirect allows you to tell clients about documents which used to# exist in your server’s namespace, but do not anymore. This allows# you to tell the clients where to look for the relocated document.# Format: Redirect fakename url

# Aliases: Add here as many aliases as you need (with no limit). The# format is# Alias fakename realname

# Note that if you include a trailing / on fakename then the server will# require it to be present in the URL. So "/icons" isn’t aliased in this# example.

Alias /icons/ /usr/share/apache/icons/

# ScriptAlias: This controls which directories contain server scripts.# Format: ScriptAlias fakename realname

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

# If you want to use server side includes, or CGI outside# ScriptAliased directories, uncomment the following lines.

# AddType allows you to tweak mime.types without actually editing it,# or to make certain files to be certain types.

112

Page 113: BONdossier Info

8 Configuration du serveur

# Format: AddType type/subtype ext1

# For example, the PHP3 module (a separate Debian package)# will typically use:#AddType application/x-httpd-php3 .phtml#AddType application/x-httpd-php3-source .phps

# AddHandler allows you to map certain file extensions to "handlers",# actions unrelated to filetype. These can be either built into the# server or added with the Action command (see below)# Format: AddHandler action-name ext1

# To use CGI scripts:#AddHandler cgi-script .cgi

# To use server-parsed HTML files#AddType text/html .shtml#AddHandler server-parsed .shtml

# Uncomment the following line to enable Apache’s send-asis HTTP file# feature#AddHandler send-as-is asis

# If you wish to use server-parsed imagemap files, use#AddHandler imap-file map

# To enable type maps, you might want to use#AddHandler type-map var

# Action lets you define media types that will execute a script whenever# a matching file is called. This eliminates the need for repeated URL# pathnames for oft-used CGI file processors.# Format: Action media/type /cgi-script/location# Format: Action handler-name /cgi-script/location

# Customizable error response (Apache style)# these come in three flavors## Ici sont définies les pages d’erreur personnalisées## 1) plain text#ErrorDocument 500 "The server made a boo boo.# n.b. the (") marks it as text, it does not get output## 2) local redirects

113

Page 114: BONdossier Info

8 Configuration du serveur

#ErrorDocument 404 /missing.html# to redirect to local url /missing.html#ErrorDocument 404 /cgi-bin/missing_handler.pl# n.b. can redirect to a script or a document using server-side-includes.## 3) external redirects#ErrorDocument 402 http://some.other_server.com/subscription_info.html#

# mod_mime_magic allows the server to use various hints from the file# itself to determine its type.#MimeMagicFile conf/magic

# The following directives disable keepalives and HTTP header flushes.# The first directive disables it for Netscape 2.x and browsers which# spoof it. There are known problems with these.# The second directive is for Microsoft Internet Explorer 4.0b2# which has a broken HTTP/1.1 implementation and does not properly# support keepalive when it is used on 301 or 302 (redirect) responses.

BrowserMatch "Mozilla/2" nokeepaliveBrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0

# The following directive disables HTTP/1.1 responses to browsers which# are in violation of the HTTP/1.0 spec by not being able to grok a# basic 1.1 response.

BrowserMatch "RealPlayer 4\.0" force-response-1.0BrowserMatch "Java/1\.0" force-response-1.0BrowserMatch "JDK/1\.0" force-response-1.0

Alias /doc/ /usr/doc/## The above line is for Debian Policy 3.0.1 (FHS), which specifies## that /doc is /usr/share/doc. Packages should symlink to share/doc.## -- apacheconfig

8.12.3 /etc/apache/access.conf

Ce fichier définit les droits sur les différents répertoires. Il permet notamment d’interdirel’accès à certains répertoires pour une certaines catégories de personnes. En voici un exemple :

# access.conf: Global access configuration# Online docs at http://www.apache.org/

# This file defines server settings which affect which types of

114

Page 115: BONdossier Info

8 Configuration du serveur

# services are allowed, and in what circumstances.

# Each directory to which Apache has access, can be configured with# respect to which services and features are allowed and/or disabled# in that directory (and its subdirectories).

# Originally by Rob McCool

# This should be changed to whatever you set DocumentRoot to.

<Directory /var/www>

# This may also be "None", "All", or any combination of "Indexes",# "Includes", "FollowSymLinks", "ExecCGI", or "MultiViews".

# Note that "MultiViews" must be named *explicitly* --- "Options All"# doesn’t give it to you (or at least, not yet).

Options Indexes FollowSymLinks MultiViews

# This controls which options the .htaccess files in directories can# override. Can also be "All", or any combination of "Options",# "FileInfo", "AuthConfig", and "Limit"

AllowOverride None

# Controls who can get stuff from this server.

order allow,denyallow from all

</Directory>

# /usr/lib/cgi-bin should be changed to whatever your ScriptAliased# CGI directory exists, if you have that configured.

<Directory /usr/lib/cgi-bin>AllowOverride NoneOptions ExecCGI FollowSymLinks</Directory>

# Allow server status reports, with the URL of# http://servername/server-status# Change the ".your_domain.com" to match your domain to enable.

115

Page 116: BONdossier Info

8 Configuration du serveur

<Location /server-status>SetHandler server-status

order deny,allowdeny from allallow from localhost</Location>

# Allow server info reports, with the URL of# http://servername/server-info# Change the ".your_domain.com" to match your domain to enable.

<Location /server-info>SetHandler server-info

order deny,allowdeny from allallow from localhost</Location>

# Debian Policy assumes /usr/doc is "/doc/", at least from# the localhost.

<Directory /usr/doc>Options Indexes FollowSymLinksAllowOverride Noneorder deny,allowdeny from allallow from localhost</Directory>

# This sets the viewable location of the mod_throttle status display.## <location /throttle-info># SetHandler throttle-info# </location>

# Do not allow users to browse foreign files using symlinks in# their private webspace public_html.# Note: This should be changed if you modify the UserDir-Option.# We would really like to use LocationMatch but the Option we want# is ignored with that directive.

<DirectoryMatch ^/home/.*/.*/public_html>Options Indexes SymLinksIfOwnerMatch

116

Page 117: BONdossier Info

8 Configuration du serveur

AllowOverride None</DirectoryMatch>

# Do not allow retrieval of the override files, a standard security# measure.<Files .htaccess>order allow,denydeny from all</Files>

# You may place any other directories or locations you wish to have# access information for after this one.

8.12.4 Négociation de contenu

La négociation de contenu permet au serveur Web de proposer plusieurs variantes d’undocument lors de la consultation du site. De cette façon, vous pouvez proposer un documentsdans différents formats (les images, par exemple) ou dans différentes langues.

Nous nous servirons ici de la négociation de contenu pour proposer différentes langues.L’activation la négociation de contenu, dans notre cas, se fait dans deux fichiers. Dans le fichiersrm.conf, tout d’abord, par les directives :

AddLanguage en .enAddLanguage fr .frAddLanguage de .deAddLanguage da .daAddLanguage it .itAddLanguage es .esAddLanguage br .brAddLanguage ja .jaAddLanguage dk .dkAddLanguage pl .plAddLanguage kr .kr

LanguagePriority fr en de

Nous définissons ici les suffixes correspondant aux différentes langues, ainsi que la prioritédes différentes langues ; nous mettons le Français par défaut, puis l’Anglais et enfin l’Allemand.

Dans le fichier httpd.conf, nous rajoutons l’option MultiViews pour le répertoire /var/www :

Options Indexes FollowSymLinks MultiViews

L’utilisation de la négociation de contenu est très simple : pour chaque page HTML, il y auraune page appelée page.html.fr et une page appelée page.html.en, par exemple. Lors d’une requête

117

Page 118: BONdossier Info

8 Configuration du serveur

portant sur page.html, Apache enverra soit page.html.fr, soit page.html.en, suivant la configurationdu navigateur ayant effectué la requête. Celui-ci envoie en effet au serveur une liste des languesqu’il accepte. Le serveur Web décide alors quelle page il doit envoyer, selon la disponibilité etla priorité des langues.

Bien sûr, il n’est pas obligatoire de mettre en place une version anglaise ou allemande d’unsite. Si seule une page est disponible, Apache la retournera au navigateur, tout simplement.

Il serait judicieux, en cas d’utilisation de la négociation de contenu, de rajouter une note enbas de la page principale du site, disant quelque chose comme :

This site uses the language content negociation to brought you the mostsuitable page. Available languages are French and English, French being thedefault. If you’re reading the French version and don’t speak French, pleaseconfigure your browser so that it asks the English version to the server.

Ce site utilise la négociation de contenu pour vous offrir une page traduitedans votre langue, si cela est possible. Les langues disponibles sont leFrançais et l’Anglais, le Français étant le choix par défaut. Si vous lisezla version Anglaise et que vous ne parlez pas Anglais, configurez votrenavigateur de manière qu’il demande la version Française au serveur.

Adaptez selon vos besoins les textes ci-dessus.

8.12.5 Serveurs virtuels

Nous avons défini, dans le fichier /etc/apache/httpd.conf, trois serveurs virtuels. Passons-les en revue.

8.12.5.1 www.etablissement.org

Du fait des deux autres serveurs virtuels, il faut créer une entrée VirtualHost pour le serveurprincipal.

Ce serveur ne propose pas de pages personnelles. C’est précisément pour ces pages person-nelles que nous avons créé les deux autres serveurs virtuels.

Les documents accessibles par ce serveur se trouvent dans /var/www/etablissement. Ce ser-veur est accessible par les adresses http ://www.etablissement.org/ et http ://etablissement.org/.

8.12.5.2 eleves.etablissement.org

La tâche de ce serveur virtuel est de servir les pages personnelles des élèves. Elles sontaccessibles par l’URL http ://eleves.etablissement.org/~login/.

Une requête à l’adresse http ://eleves.etablissement.org/ présentera les documents présentsdans /var/www/eleves. Il serait bon d’y mettre une page d’index.

118

Page 119: BONdossier Info

8 Configuration du serveur

8.12.5.3 profs.etablissement.org

Ce serveur a pour but de fournir les pages personnelles des professeurs. Elles sont acces-sibles par l’URL http ://profs.etablissement.org/~login/.

Une requête à l’adresse http ://profs.etablissement.org/ présentera les documents présentsdans /var/www/profs. Il serait là aussi bon d’y mettre une page d’index.

On remarquera que les pages personnelles des élèves ne sont pas disponibles via le serveurprofs.etablissement.org et vice-versa, ni par le serveur www.etablissement.org (ou etablissement.org).

8.12.6 Redémarrage d’Apache

Apache est maintenant prêt à redémarrer. Nous le redémarrons grâce au script de démarragede la machine :

/etc/init.d/apache start

Apache doit maintenant répondre aux requêtes arrivant sur le port 80 de la machine. Tentezde vous connecter sur www.etablissement.org (n’oubliez pas de remplacer par votre nom dedomaine). Vous devriez voir une page vous informant que l’installation d’Apache a réussi.

8.13 ProFTPd, le serveur FTP

Nous commençons par arrêter le serveur :

/etc/init.d/proftpd stop

ProFTPd n’utilise qu’un seul et unique fichier de configuration.

8.13.1 /etc/proftpd.conf

C’est le fichier de configuration de ProFTPd. Voici celui que nous utiliserons :

# This is a basic ProFTPD configuration file. Rename it to# ’proftpd.conf’ for actual use. It establishes a single server# and a single anonymous login. It assumes that you have a user/group# "nobody" and "ftp" for normal operation and anon.

ServerName "ProFTPD"ServerType standaloneDeferWelcome off

ShowSymlinks onMultilineRFC2228 onDefaultServer onShowSymlinks onAllowOverwrite onAllowStoreRestart on

119

Page 120: BONdossier Info

8 Configuration du serveur

AllowRetrieveRestart on

TimeoutNoTransfer 600TimeoutStalled 600TimeoutIdle 1200

DisplayLogin welcome.msgDisplayFirstChdir .messageLsDefaultOptions "-l"

# Port 21 is the standard FTP port.Port 21

# Umask 022 is a good standard umask to prevent new dirs and files# from being group and world writable.Umask 022

# Set the user and group that the server normally runs at.User rootGroup root

# A basic anonymous configuration, no upload directories.

<Anonymous ~ftp>User ftp

Group nogroup

UserAlias anonymous ftp

RequireValidShell off##

# Limit the maximum number of anonymous loginsMaxClients 10

# We want ’welcome.msg’ displayed at login, and ’.message’ displayed# in each newly chdired directory.DisplayLogin welcome.msgDisplayFirstChdir .message

ShowSymlinks on

# Limit WRITE everywhere in the anonymous chroot<Directory *>

120

Page 121: BONdossier Info

8 Configuration du serveur

<Limit WRITE>DenyAll

</Limit></Directory>

### <Directory incoming># <Limit READ WRITE># DenyAll# </Limit># <Limit STOR># AllowAll# </Limit># </Directory>

</Anonymous>

De cette manière, chaque utilisateur peut accéder à son répertoire personnel, en utilisantson login et son mot de passe.

Par ailleurs, un accès anonyme est autorisé dans le répertoire /home/ftp.

8.13.2 Redémarrage de ProFTPd

Nous pouvons maintenant redémarrer ProFTPd :

/etc/init.d/proftpd start

8.14 Remarque concernant Apache et ProFTPd

Afin de permettre la maintenance du site Web et de l’espace FTP anoyme, je vous conseillede changer les propriétaires des répertoires /var/www et /home/ftp, de même pour leurs sous-répertoires.

8.15 NTP, synchronisation de l’heure

Afin que le serveur soit toujours à l’heure, nous installons le daemon NTPD. Le protocoleNTP10 permet de synchroniser une machine sur une autre, reliée, elle, à une horloge atomique.

Lors de l’installation du paquetage ntp, vous devrez spécifier un serveur NTP. Vous trouve-rez une liste des serveurs français à l’adresse http://www.cru.fr/NTP/serveurs\protect\T1\textunderscorefrancais.html . Pour ne pas encombrer les serveurs primaires, utili-sez s’il vous plaît un serveur secondaire, comme ntp.loria.fr, par exemple.

10Network Time Protocol.

121

Page 122: BONdossier Info

8 Configuration du serveur

8.16 SNMPD, surveillance réseau

Pour pouvoir utiliser MRTG, nous avons besoin d’un serveur SNMP sur chaque machineque nous désirons surveiller. Le serveur SNMP est fourni par le paquetage snmpd.

Voici son fichier de configuration, qui se nomme /etc/snmp/snmpd.conf :

################################################################################# EXAMPLE.conf:# An example configuration file for configuring the ucd-snmp snmpd agent.################################################################################## This file is intended to only be an example. If, however, you want# to use it, it should be placed in /etc/snmp/snmpd.conf.# When the snmpd agent starts up, this is where it will look for it.## All lines beginning with a ’#’ are comments and are intended for you# to read. All other lines are configuration commands for the agent.

## PLEASE: read the snmpd.conf(5) manual page as well!#

################################################################################ Access Control###############################################################################

# By far, the most common question I get about the agent is "why won’t# it work?", when really it should be "how do I configure the agent to# allow me to access it?"## By default, the agent responds to the "public" community for read# only access, if run out of the box without any configuration file in# place. The following examples show you other ways of configuring# the agent so that you can change the community names, and give# yourself write access as well.

# The following lines change the access permissions of the agent so# that the COMMUNITY string provides read-only access to your entire# NETWORK (EG: 10.10.10.0/24), and read/write access to only the# localhost (127.0.0.1, not its real ipaddress).

# For more information, read the FAQ as well as the snmpd.conf(5)

122

Page 123: BONdossier Info

8 Configuration du serveur

# manual page.

##### First, map the community name (COMMUNITY) into a security name# (local and mynetwork, depending on where the request is coming# from):

rocommunity mrtg

# sec.name source community#com2sec paranoid default public#com2sec readonly default public#com2sec readwrite default privatecom2sec readonly default mrtg

##### Second, map the security names into group names:

# sec.model sec.namegroup MyROSystem v1 paranoidgroup MyROSystem v2c paranoidgroup MyROSystem usm paranoidgroup MyROGroup v1 readonlygroup MyROGroup v2c readonlygroup MyROGroup usm readonlygroup MyRWGroup v1 readwritegroup MyRWGroup v2c readwritegroup MyRWGroup usm readwrite

##### Third, create a view for us to let the groups have rights to:

# incl/excl subtree maskview all included .1 80view system included .iso.org.dod.internet.mgmt.mib-2.system

##### Finally, grant the 2 groups access to the 1 view with different# write permissions:

# context sec.model sec.level match read write notifaccess MyROSystem "" any noauth exact system none noneaccess MyROGroup "" any noauth exact all none noneaccess MyRWGroup "" any noauth exact all all none

123

Page 124: BONdossier Info

8 Configuration du serveur

# -----------------------------------------------------------------------------

################################################################################ System contact information#

# It is also possible to set the sysContact and sysLocation system# variables through the snmpd.conf file:

syslocation Ville (Pays)syscontact Responsable <[email protected]>

# Example output of snmpwalk:# % snmpwalk -v 1 localhost public system# system.sysDescr.0 = "Debian GNU/Linux"# system.sysObjectID.0 = OID: enterprises.ucdavis.ucdSnmpAgent.sunos4# system.sysUpTime.0 = Timeticks: (595637548) 68 days, 22:32:55# system.sysContact.0 = "Root <root@localhost>"# system.sysName.0 = "name"# system.sysLocation.0 = "Right here, right now."# system.sysServices.0 = 72

# -----------------------------------------------------------------------------

################################################################################ Process checks.## The following are examples of how to use the agent to check for# processes running on the host. The syntax looks something like:## proc NAME [MAX=0] [MIN=0]## NAME: the name of the process to check for. It must match# exactly (ie, http will not find httpd processes).# MAX: the maximum number allowed to be running. Defaults to 0.# MIN: the minimum number to be running. Defaults to 0.

## Examples:#

124

Page 125: BONdossier Info

8 Configuration du serveur

# Make sure mountd is running#proc mountd

# Make sure there are no more than 4 ntalkds running, but 0 is ok too.#proc ntalkd 4

# Make sure at least one sendmail, but less than or equal to 10 are running.proc sendmail 10 1

# A snmpwalk of the process mib tree would look something like this:## % snmpwalk -v 1 localhost public .1.3.6.1.4.1.2021.2# enterprises.ucdavis.procTable.prEntry.prIndex.1 = 1# enterprises.ucdavis.procTable.prEntry.prIndex.2 = 2# enterprises.ucdavis.procTable.prEntry.prIndex.3 = 3# enterprises.ucdavis.procTable.prEntry.prNames.1 = "mountd"# enterprises.ucdavis.procTable.prEntry.prNames.2 = "ntalkd"# enterprises.ucdavis.procTable.prEntry.prNames.3 = "sendmail"# enterprises.ucdavis.procTable.prEntry.prMin.1 = 0# enterprises.ucdavis.procTable.prEntry.prMin.2 = 0# enterprises.ucdavis.procTable.prEntry.prMin.3 = 1# enterprises.ucdavis.procTable.prEntry.prMax.1 = 0# enterprises.ucdavis.procTable.prEntry.prMax.2 = 4# enterprises.ucdavis.procTable.prEntry.prMax.3 = 10# enterprises.ucdavis.procTable.prEntry.prCount.1 = 0# enterprises.ucdavis.procTable.prEntry.prCount.2 = 0# enterprises.ucdavis.procTable.prEntry.prCount.3 = 1# enterprises.ucdavis.procTable.prEntry.prErrorFlag.1 = 1# enterprises.ucdavis.procTable.prEntry.prErrorFlag.2 = 0# enterprises.ucdavis.procTable.prEntry.prErrorFlag.3 = 0# enterprises.ucdavis.procTable.prEntry.prErrMessage.1 = "No mountd process running."# enterprises.ucdavis.procTable.prEntry.prErrMessage.2 = ""# enterprises.ucdavis.procTable.prEntry.prErrMessage.3 = ""# enterprises.ucdavis.procTable.prEntry.prErrFix.1 = 0# enterprises.ucdavis.procTable.prEntry.prErrFix.2 = 0# enterprises.ucdavis.procTable.prEntry.prErrFix.3 = 0## Note that the errorFlag for mountd is set to 1 because one is not# running (in this case an rpc.mountd is, but thats not good enough),# and the ErrMessage tells you what’s wrong. The configuration# imposed in the snmpd.conf file is also shown.## Special Case: When the min and max numbers are both 0, it assumes# you want a max of infinity and a min of 1.#

125

Page 126: BONdossier Info

8 Configuration du serveur

# -----------------------------------------------------------------------------

################################################################################ Executables/scripts#

## You can also have programs run by the agent that return a single# line of output and an exit code. Here are two examples.## exec NAME PROGRAM [ARGS ...]## NAME: A generic name.# PROGRAM: The program to run. Include the path!# ARGS: optional arguments to be passed to the program

# a simple hello world#exec echotest /bin/echo hello world

# Run a shell script containing:## #!/bin/sh# echo hello world# echo hi there# exit 35## Note: this has been specifically commented out to prevent# accidental security holes due to someone else on your system writing# a /tmp/shtest before you do. Uncomment to use it.##exec shelltest /bin/sh /tmp/shtest

# Then,# % snmpwalk -v 1 localhost public .1.3.6.1.4.1.2021.8# enterprises.ucdavis.extTable.extEntry.extIndex.1 = 1# enterprises.ucdavis.extTable.extEntry.extIndex.2 = 2# enterprises.ucdavis.extTable.extEntry.extNames.1 = "echotest"# enterprises.ucdavis.extTable.extEntry.extNames.2 = "shelltest"# enterprises.ucdavis.extTable.extEntry.extCommand.1 = "/bin/echo hello world"# enterprises.ucdavis.extTable.extEntry.extCommand.2 = "/bin/sh /tmp/shtest"# enterprises.ucdavis.extTable.extEntry.extResult.1 = 0# enterprises.ucdavis.extTable.extEntry.extResult.2 = 35

126

Page 127: BONdossier Info

8 Configuration du serveur

# enterprises.ucdavis.extTable.extEntry.extOutput.1 = "hello world."# enterprises.ucdavis.extTable.extEntry.extOutput.2 = "hello world."# enterprises.ucdavis.extTable.extEntry.extErrFix.1 = 0# enterprises.ucdavis.extTable.extEntry.extErrFix.2 = 0

# Note that the second line of the /tmp/shtest shell script is cut# off. Also note that the exit status of 35 was returned.

# -----------------------------------------------------------------------------

################################################################################ disk checks#

# The agent can check the amount of available disk space, and make# sure it is above a set limit.

# disk PATH [MIN=100000]## PATH: mount path to the disk in question.# MIN: Disks with space below this value will have the Mib’s errorFlag set.# Default value = 100000.

# Check the / partition and make sure it contains at least 10 megs.

disk / 10000

# % snmpwalk -v 1 localhost public .1.3.6.1.4.1.2021.9# enterprises.ucdavis.diskTable.dskEntry.diskIndex.1 = 0# enterprises.ucdavis.diskTable.dskEntry.diskPath.1 = "/" Hex: 2F# enterprises.ucdavis.diskTable.dskEntry.diskDevice.1 = "/dev/dsk/c201d6s0"# enterprises.ucdavis.diskTable.dskEntry.diskMinimum.1 = 10000# enterprises.ucdavis.diskTable.dskEntry.diskTotal.1 = 837130# enterprises.ucdavis.diskTable.dskEntry.diskAvail.1 = 316325# enterprises.ucdavis.diskTable.dskEntry.diskUsed.1 = 437092# enterprises.ucdavis.diskTable.dskEntry.diskPercent.1 = 58# enterprises.ucdavis.diskTable.dskEntry.diskErrorFlag.1 = 0# enterprises.ucdavis.diskTable.dskEntry.diskErrorMsg.1 = ""

# -----------------------------------------------------------------------------

################################################################################ load average checks

127

Page 128: BONdossier Info

8 Configuration du serveur

#

# load [1MAX=12.0] [5MAX=12.0] [15MAX=12.0]## 1MAX: If the 1 minute load average is above this limit at query# time, the errorFlag will be set.# 5MAX: Similar, but for 5 min average.# 15MAX: Similar, but for 15 min average.

# Check for loads:load 12 14 14

# % snmpwalk -v 1 localhost public .1.3.6.1.4.1.2021.10# enterprises.ucdavis.loadTable.laEntry.loadaveIndex.1 = 1# enterprises.ucdavis.loadTable.laEntry.loadaveIndex.2 = 2# enterprises.ucdavis.loadTable.laEntry.loadaveIndex.3 = 3# enterprises.ucdavis.loadTable.laEntry.loadaveNames.1 = "Load-1"# enterprises.ucdavis.loadTable.laEntry.loadaveNames.2 = "Load-5"# enterprises.ucdavis.loadTable.laEntry.loadaveNames.3 = "Load-15"# enterprises.ucdavis.loadTable.laEntry.loadaveLoad.1 = "0.49" Hex: 30 2E 34 39# enterprises.ucdavis.loadTable.laEntry.loadaveLoad.2 = "0.31" Hex: 30 2E 33 31# enterprises.ucdavis.loadTable.laEntry.loadaveLoad.3 = "0.26" Hex: 30 2E 32 36# enterprises.ucdavis.loadTable.laEntry.loadaveConfig.1 = "12.00"# enterprises.ucdavis.loadTable.laEntry.loadaveConfig.2 = "14.00"# enterprises.ucdavis.loadTable.laEntry.loadaveConfig.3 = "14.00"# enterprises.ucdavis.loadTable.laEntry.loadaveErrorFlag.1 = 0# enterprises.ucdavis.loadTable.laEntry.loadaveErrorFlag.2 = 0# enterprises.ucdavis.loadTable.laEntry.loadaveErrorFlag.3 = 0# enterprises.ucdavis.loadTable.laEntry.loadaveErrMessage.1 = ""# enterprises.ucdavis.loadTable.laEntry.loadaveErrMessage.2 = ""# enterprises.ucdavis.loadTable.laEntry.loadaveErrMessage.3 = ""

# -----------------------------------------------------------------------------

################################################################################ Extensible sections.#

# This alleviates the multiple line output problem found in the# previous executable mib by placing each mib in its own mib table:

# Run a shell script containing:## #!/bin/sh

128

Page 129: BONdossier Info

8 Configuration du serveur

# echo hello world# echo hi there# exit 35## Note: this has been specifically commented out to prevent# accidental security holes due to someone else on your system writing# a /tmp/shtest before you do. Uncomment to use it.## exec .1.3.6.1.4.1.2021.50 shelltest /bin/sh /tmp/shtest

# % snmpwalk -v 1 localhost public .1.3.6.1.4.1.2021.50# enterprises.ucdavis.50.1.1 = 1# enterprises.ucdavis.50.2.1 = "shelltest"# enterprises.ucdavis.50.3.1 = "/bin/sh /tmp/shtest"# enterprises.ucdavis.50.100.1 = 35# enterprises.ucdavis.50.101.1 = "hello world."# enterprises.ucdavis.50.101.2 = "hi there."# enterprises.ucdavis.50.102.1 = 0

# Now the Output has grown to two lines, and we can see the ’hi# there.’ output as the second line from our shell script.## Note that you must alter the mib.txt file to be correct if you want# the .50.* outputs above to change to reasonable text descriptions.

# Other ideas:## exec .1.3.6.1.4.1.2021.51 ps /bin/ps# exec .1.3.6.1.4.1.2021.52 top /usr/local/bin/top# exec .1.3.6.1.4.1.2021.53 mailq /usr/bin/mailq

# -----------------------------------------------------------------------------

################################################################################ Pass through control.#

# Usage:# pass MIBOID EXEC-COMMAND## This will pass total control of the mib underneath the MIBOID# portion of the mib to the EXEC-COMMAND.## Note: You’ll have to change the path of the passtest script to your

129

Page 130: BONdossier Info

8 Configuration du serveur

# source directory or install it in the given location.## Example: (see the script for details)# (commented out here since it requires that you place the# script in the right location. (its not installed by default))

# pass .1.3.6.1.4.1.2021.255 /bin/sh /usr/local/passtest

# % snmpwalk -v 1 localhost public .1.3.6.1.4.1.2021.255# enterprises.ucdavis.255.1 = "life the universe and everything"# enterprises.ucdavis.255.2.1 = 42# enterprises.ucdavis.255.2.2 = OID: 42.42.42# enterprises.ucdavis.255.3 = Timeticks: (363136200) 42 days, 0:42:42# enterprises.ucdavis.255.4 = IpAddress: 127.0.0.1# enterprises.ucdavis.255.5 = 42# enterprises.ucdavis.255.6 = Gauge: 42## % snmpget -v 1 localhost public .1.3.6.1.4.1.2021.255.5# enterprises.ucdavis.255.5 = 42## % snmpset -v 1 localhost public .1.3.6.1.4.1.2021.255.1 s "New string"# enterprises.ucdavis.255.1 = "New string"#

# For specific usage information, see the man/snmpd.conf.5 manual page# as well as the local/passtest script used in the above example.

Remplacez «Ville (Pays)» par les données appropriées, ainsi que le nom et l’adresse emaildu responsable.

Vous pouvez maintenant relancer le serveur SNMP :

/etc/init.d/snmpd stop/etc/init.d/snmpd start

Vous remarquerez que nous n’utilisons pas l’option «restart» du script d’init de snmpd. En effet,son utilisation entraîne l’affichage de plusieurs messages d’erreur non justifiés.

8.17 MRTG, statistiques réseau

MRTG est lancé automatiquement par cron toutes les cinq minutes, et lance une requêteSNMP vers chaque machine indiquée dans son fichier de configuration. Il met ensuite à jourles graphiques concernant chaque machine, ainsi que les pages HTML qui comportent ces gra-phiques.

Voici son fichier de configuration, /etc/mrtg.cfg :

130

Page 131: BONdossier Info

8 Configuration du serveur

####################################################################### Multi Router Traffic Grapher -- Sample Configuration File####################################################################### This file is for use with mrtg-2.5.4c

# Global configurationWorkDir: /var/www/etablissement/mrtgWriteExpires: Yes

Title[^]: Traffic Analysis forKilo[_]: 1024Options[_]: growrightPageTop[^]: <h1>PageTop[$]: </h1>

# fremen.etablissement.org (interface externe)# ------------------------Title[fremen-ext]: fremen.etablissement.org (external interface)PageTop[fremen-ext]: fremen.etablissement.org -- Server (PC)Target[fremen-ext]: 2:mrtg@fremen-intDirectory[fremen-ext]: fremen-extMaxBytes[fremen-ext]: 10485760Timezone[fremen-ext]: GMT

# fremen.etablissement.org (interface interne)# ------------------------Title[fremen-int]: fremen.etablissement.org (internal interface)PageTop[fremen-int]: fremen.etablissement.org -- Server (PC)Target[fremen-int]: 3:mrtg@fremen-intDirectory[fremen-int]: fremen-intMaxBytes[fremen-int]: 10485760Timezone[fremen-int]: GMT

# fremen.etablissement.org (interface vers réseau établissement)# ------------------------Title[fremen-snet]: fremen.etablissement.org (interface to school network)PageTop[fremen-snet]: fremen.etablissement.org -- Server (PC)Target[fremen-snet]: 4:mrtg@fremen-intDirectory[fremen-snet]: fremen-snetMaxBytes[fremen-snet]: 10485760Timezone[fremen-snet]: GMT

# sardaukar.etablissement.org (interface externe)# ---------------------------Title[sardaukar-ext]: sardaukar.etablissement.org (external interface)

131

Page 132: BONdossier Info

8 Configuration du serveur

PageTop[sardaukar-ext]: sardaukar.etablissement.org -- Server (PC)Target[sardaukar-ext]: 2:mrtg@sardaukar-intDirectory[sardaukar-ext]: sardaukar-extMaxBytes[sardaukar-ext]: 10485760Timezone[sardaukar-ext]: GMT

# sardaukar.etablissement.org (interface interne)# ---------------------------Title[sardaukar-int]: sardaukar.etablissement.org (internal interface)PageTop[sardaukar-int]: sardaukar.etablissement.org -- Server (PC)Target[sardaukar-int]: 3:mrtg@sardaukar-intDirectory[sardaukar-int]: sardaukar-intMaxBytes[sardaukar-int]: 10485760Timezone[sardaukar-int]: GMT

# client1.etablissement.org# -------------------------Title[client1]: client1.etablissement.orgPageTop[client1]: client1.etablissement.org --

Publicly available workstation (PC)Target[client1]: 2:mrtg@client1Directory[client1]: client1MaxBytes[client1]: 10485760Timezone[client1]: Paris

# client2.etablissement.org# -------------------------Title[client2]: client2.etablissement.orgPageTop[client2]: client2.etablissement.org --

Publicly available workstation (PC)Target[client2]: 2:mrtg@client2Directory[client2]: client2MaxBytes[client2]: 10485760Timezone[client2]: Paris

# client3.etablissement.org# -------------------------Title[client3]: client3.etablissement.orgPageTop[client3]: client3.etablissement.org --

Publicly available workstation (PC)Target[client3]: 2:mrtg@client3Directory[client3]: client3MaxBytes[client3]: 10485760Timezone[client3]: Paris

132

Page 133: BONdossier Info

8 Configuration du serveur

# client4.etablissement.org# -------------------------Title[client4]: client4.etablissement.orgPageTop[client4]: client4.etablissement.org --

Publicly available workstation (PC)Target[client4]: 2:mrtg@client4Directory[client4]: client5MaxBytes[client4]: 10485760Timezone[client4]: Paris

# client5.etablissement.org# -------------------------Title[client5]: client5.etablissement.orgPageTop[client5]: client5.etablissement.org --

Publicly available workstation (PC)Target[client5]: 2:mrtg@client5Directory[client5]: client5MaxBytes[client5]: 10485760Timezone[client5]: Paris

Vous pouvez changer les noms de machines, mais veillez à changer toutes les occurences !Vous devrez aussi adapter l’option MaxBytes de chaque paragraphe, en fonction des pos-

sibilités des équipements réseau. Rappels : 1 byte = 1 octet, 1 octet = 8 bits (les capacités deséquipements réseau sont exprimées en bits/s). La valeur donnée dans le fichier de configura-tion ci-dessus correspond à 100 Mbps.

Il serait bon de vérifier l’affectation des interfaces réseau au niveau de snmpd. En effet, laligne

Target[client5]: 2:mrtg@client5

Indique à mrtg qu’il doit demander les statistiques concernant l’interface connue par snmpdsous le numéro 2, c’est-à-dire eth0 dans le cas de cette machine (l’interface 1 est le loopback(127.0.0.1) référencé lo0 et propre à chaque machine. Il n’y a aucun intérêt à surveiller cetteinterface).

La vérification se fait de marnière simple. Prenons un exemple sur une machine possédantdeux interfaces réseau :

julien@arrakis:~$ snmpwalk localhost mrtg interfaces | grep ethinterfaces.ifTable.ifEntry.ifDescr.2 = eth0interfaces.ifTable.ifEntry.ifDescr.3 = eth1interfaces.ifTable.ifEntry.ifType.2 = ethernetCsmacd(6)interfaces.ifTable.ifEntry.ifType.3 = ethernetCsmacd(6)

Ici, l’interface eth0 est connue comme numéro 1 et l’interface eth1 comme numéro 2 parsnmpd.

133

Page 134: BONdossier Info

8 Configuration du serveur

Enfin, notez qu’il vaut mieux commenter les entrées correspondant aux hôtes qui ne sontpas encore en état de marche. Sans cela, cron vous fera parvenir un mail toutes les cinq minutesvous informant que telle machine ou telle autre était injoignable.

Les statistiques pour l’interface interne de fremen seront dans le répertoire /var/www/mrtg/fremen-int/, ou sur http ://www.etablissement.org/mrtg/fremen-int/.

8.18 Sauvegarde des données

Nous allons sauvegarder les données toutes les nuits en semaine, et tôt le dimanche matinle week-end, afin de ne pas perdre trop de données en cas de problème.

Nous sauvegarderons les répertoires suivants :– le spool de mail : /var/spool/mail– les répertoires personnels : /home– le répertoire de configuration du système : /etc– les sites Web de l’établissement : /var/www

ATTENTION : l’espace FTP anonyme sera également sauvegardé !Deux problèmes se posent à nous :– l’installation du périphérique de sauvegarde– les fichiers ne doivent pas évoluer pendant la sauvegarde

La résolution du premier problème est laissée à la discrétion de l’administrateur. La solutiondépendant du matériel utilisée, je ne peux que difficilement en parler ici.

Le deuxième problème peut se résoudre facilement à l’aide d’un petit script shell, tel quecelui-ci :

#! /bin/sh

echo -e "\n *** Arret des services ***\n"dateecho -e "\n"

/etc/init.d/sendmail stop/etc/init.d/proftpd stop

echo -e "\n *** Demarrage de la sauvegarde *** \n"

tar -cvf /dev/<periphérique de sauvegarde> \/etc /home /var/spool/mail /var/www

echo -e "\n *** Sauvegarde terminee *** \n"

echo -e "*** Redemarrage des services ***\n"

/etc/init.d/sendmail start/etc/init.d/proftpd start

134

Page 135: BONdossier Info

8 Configuration du serveur

echo -e "\n *** Procedure de sauvegarde terminée ***"dateecho -e "\n"

Enregistrez ceci dans un fichier /usr/local/bin/sauvegarde.sh, et rendez le fichier exécutable.Dans le fichier ci-dessus, remplacez «/dev/<périphérique de sauvegarde>» par la référence

au fichier symbolique de /dev correspondant à votre périphérique de sauvegarde.Comme vous pouvez le voir, nous arrêtons Sendmail et ProFTPd avant de commencer la

sauvegarde, ceci afin d’éviter que les fichiers se trouvant respectivement dans /var/spool/mail et/home ainsi que /var/www ne soient modifiés avant la fin de la sauvegarde.

Nous allons encore une fois nous servir de cron pour lancer notre sauvegarde. Éditez lacrontab de root et ajoutez la ligne :

5 22 * * 1-5,7 /usr/local/bin/sauvegarde.sh

Cron lancera le script de sauvegarde les lundis, mardis, mercredis, jeudis, vendredis, ainsi queles dimanches à 22h05 (en fait, 00h05 en heure française en été, et 23h05 en hiver). Si l’admi-nistrateur peut avoir un accès physique à la machine le week-end, il peut faire en sorte que lessauvegardes se fassent de la même manière le samedi soir.

Prévoyez donc 6 ou 7 bandes de sauvegarde, selon que vous pouvez ou non accéder à lamachine durant le week-end. Et, surtout, n’oubliez pas de changer les bandes et de les étiqueter !

8.18.1 Restauration des données

Au cas où il arriverait le moindre problème vous obligeant à restaurer une sauvegarde, voicila marche à suivre :

– remédier au problème ayant causé cette situation (défaillance d’un disque, orage, etc. . .)– réinstaller un système sur la machine, comportant les mêmes logiciels que précédemment– configurer le lecteur de bandes– prendre votre sauvegarde la plus récente ET dans le meilleur état (cela ne vas pas toujours

de pair)– lancer la restauration grâce à la commande :

tar -xvzf /dev/<périphérique de sauvegarde> /

Les répertoires sauvegardés seront alors restaurés.Notez que vous pouvez également ne restaurer qu’un seul de ces répertoires. Pour plus de

détails, consultez la documentation de GNU Tar.

135

Page 136: BONdossier Info

9 Configuration du serveur d’accès

9.1 Compilation du noyau

Comme pour le serveur, nous avons besoin de certaines fonctionnalités qui ne sont pasincluses dans le noyau standard.

Commencez par récupérer les sources du dernier noyau 2.2.x (le kernel 2.4.x est supportépar Debian 2.2r3, mais la configuration du masquerading plus loin dans ce document n’est va-lable que pour un kernel 2.2.x) sur ftp.fr.kernel.org, par exemple. Placez l’archive dans le réper-toire /usr/src. Vérifiez qu’il n’y a pas de répertoire nommé «linux», s’il y en a un, renommez-le.Maintenant, décompressez l’archive contenant les sources du noyau.

Un nouveau répertoire «linux» est apparu, celui-ci contient les sources du noyau. Allez dansce répertoire, et lancez la commande (le paquetage libncurses-dev doit être installé) :

make menuconfig

Après la compilation de quelques fichiers, une interface graphique apparaît. Nous allons main-tenant configurer le noyau Linux. En dehors des composants requis pour la bonne marche dela machine, veillez plus particulièrement aux options suivantes :

– utilisation des pilotes expérimentaux– optimisation pour la famille de processeurs utilisée par la machine– utilisation des modules noyau– nous mettons les pilotes des différentes cartes Ethernet dans le noyau et non pas en mo-

dule– dans les options réseau, nous activons la fonctionnalité «IP : firewalling»– le support pour les «UNIX98 PTYs» ; nous laissons la valeur par défaut (256)– dans la section «systèmes de fichiers», nous incluons dans le noyau le support pour le

système «/proc» ainsi que celui pour le système «/dev/pts», sans oublier d’inclure le sup-port pour le «deuxième système de fichiers étendu (ext2fs)».

– dans la même section, nous plaçons en modules les supports pour les systèmes de fichiersFAT, VFAT, MSDOS, UMSDOS, ISO9660

– dans la section «systèmes de fichiers réseau», nous plaçons en module le support pour lesystème de fichiers NFS

– dans la section «kernel hacking», activez l’option «Magic SysRQ key». Cette option per-met de communiquer avec le noyau lors d’un plantage sévère de la machine afin d’ef-fectuer les opérations de dernière minute (synchronisation des partitions montées, etc. . .)avant de redémarrer la machine. Lisez la documentation concernant cette fonctionnalitédans le fichier Documentation/sysrq.txt.

Maintenant, sauvegardez la configuration et quittez l’interface. Puis compilez et installez lenoyau. Configurez LILO de manière à pouvoir démarrer sur l’un ou l’autre des deux noyaux

136

Page 137: BONdossier Info

9 Configuration du serveur d’accès

présents, c’est-à-dire le noyau d’origine et celui que nous venons de compiler. Le fichier deconfiguration de LILO doit ressembler à celui-ci :

# /etc/lilo.conf - See: ‘lilo(8)’ and ‘lilo.conf(5)’,# --------------- ‘install-mbr(8)’, ‘/usr/share/doc/lilo/’,# and ‘/usr/share/doc/mbr/’.

# +---------------------------------------------------------------+# | !! Reminder !! |# | |# | Don’t forget to run ‘lilo’ after you make changes to this |# | conffile, ‘/boot/bootmess.txt’, or install a new kernel. The |# | computer will most likely fail to boot if a kernel-image |# | post-install script or you don’t remember to run ‘lilo’. |# | |# +---------------------------------------------------------------+

# Specifies the boot device. This is where Lilo installs its boot# block. It can be either a partition, or the raw device, in which# case it installs in the MBR, and will overwrite the current MBR.#boot=/dev/hda

# Specifies the device that should be mounted as root. (‘/’)#root=/dev/hda5

# Enable map compaction:# Tries to merge read requests for adjacent sectors into a single# read request. This drastically reduces load time and keeps the# map smaller. Using ‘compact’ is especially recommended when# booting from a floppy disk. It is disabled here by default# because it doesn’t always work.## compact

# Installs the specified file as the new boot sector#install=/boot/boot.b

# Specifies the location of the map file#map=/boot/map

# You can set a password here, and uncomment the ‘restricted’ lines

137

Page 138: BONdossier Info

9 Configuration du serveur d’accès

# in the image definitions below to make it so that a password must# be typed to boot anything but a default configuration. If a# command line is given, other than one specified by an ‘append’# statement in ‘lilo.conf’, the password will be required, but a# standard default boot will not require one.

## This will, for instance, prevent anyone with access to the# console from booting with something like ‘Linux init=/bin/sh’,# and thus becoming ‘root’ without proper authorization.## Note that if you really need this type of security, you will# likely also want to use ‘install-mbr’ to reconfigure the MBR# program, as well as set up your BIOS to disallow booting from# removable disk or CD-ROM, then put a password on getting into the# BIOS configuration as well. Please RTFM ‘install-mbr(8)’.## password=tatercounter2000

# Specifies the number of deciseconds (0.1 seconds) LILO should# wait before booting the first image.#delay=100 # laissons-nous 10 secondes pour choisir le noyau

# You can put a customized boot message up if you like. If you use# ‘prompt’, and this computer may need to reboot unattended, you# must specify a ‘timeout’, or it will sit there forever waiting# for a keypress. ‘single-key’ goes with the ‘alias’ lines in the# ‘image’ configurations below. eg: You can press ‘1’ to boot# ‘Linux’, ‘2’ to boot ‘LinuxOLD’, if you uncomment the ‘alias’.## message=/boot/bootmess.txt# prompt# single-key# delay=100# timeout=100

# Specifies the VGA text mode at boot time. (normal, extended, ask, <mode>)## vga=ask# vga=9#vga=normal

# Kernel command line options that apply to all installed images go

138

Page 139: BONdossier Info

9 Configuration du serveur d’accès

# here. See: The ‘boot-prompt-HOWO’ and ‘kernel-parameters.txt’ in# the Linux kernel ‘Documentation’ directory.## append=""

# Boot up Linux by default.#default=Linux

image=/boot/vmlinuz-2.2.16 # le nouveau noyau, ici version 2.2.16label=Linuxread-only

# restricted# alias=1

image=/boot/vmlinuz-2.2.14 # le nouveau noyau, ici version 2.2.14label=linux-origread-only

# optional# restricted# alias=2

# If you have another OS on this machine to boot, you can uncomment the# following lines, changing the device name on the ‘other’ line to# where your other OS’ partition is.## other=/dev/hda4# label=HURD# restricted# alias=3

Ce fichier est le fichier livré avec Debian GNU/Linux. Seuls les paragraphes concernant lesdeux noyaux ont été modifiés. Ici, le nouveau noyau sera démarré par défaut. L’ancien noyauest accessible sous le nom «linux-orig». Pour y accéder, appuyez sur la touche «tabulation» lorsdu prompt «LILO : » ; vous verrez apparaître la liste des noyaux disponibles. Sélectionnez lenoyau à démarrer et appuyez sur «Entrée».

Lancez /sbin/lilo de manière à mettre à jour le secteur de boot de la machine. Si tout se passebien, vous pouvez essayer de redémarrer la machine. Si LILO vous dit que votre noyau esttrop gros, soit vous avez inclus beaucoup trop de choses dedans, auquel cas vous pouvez lereconfigurer et faire la chasse aux options inutiles, soit vous pouvez utiliser «make bzImage»pour le compiler.

Si la machine redémarre sans problèmes, bravo, sinon recommencez, vous avez certaine-ment oublié quelque chose.

Une fois la machine redémarrée avec son nouveau noyau, et si tout se passe bien, sauvegar-dez le fichier /usr/src/linux/.config (notez le «.», ce qui signifie que c’est un fichier caché) dans

139

Page 140: BONdossier Info

9 Configuration du serveur d’accès

le répertoire personnel de root (/root), sous un nom évocateur. Vous pourrez charger ce fichierpour configurer le prochain kernel, ce qui vous évitera de devoir saisir à nouveau la configura-tion.

9.2 Interfaces réseau

Nous avons ici deux interfaces réseau, dont seulement une est configurée. Nous nous ar-rangerons pour obtenir ce schéma (du moins, je me base sur ceci) :

– eth0←→ Internet– eth1←→ réseau local

La première interface, eth0, a été configurée durant l’installation, elle est donc théoriquementen état de marche. Nous allons configurer notre deuxième interface, eth1.

La configuration des interfaces est contenue dans le fichier /etc/network/interfaces. Éditez-leà l’aide de votre éditeur favoris.

Vous devez arriver à quelque chose comme cela :

# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)

# The loopback interface

iface lo inet loopback

# The first network card - this entry was# created during the Debian installation

iface eth0 inet staticaddress xxx.xxx.xxx.xxxnetmask xxx.xxx.xxx.xxxhostname sardaukar.etablissement.org# ici, la machine s’appelle "sardaukar"

# Ici, l’interface eth0, configurée avec une IP statique (static).# Remplacez xxx.xxx.xxx.xxx par l’adresse IP assignée à la machine# puis# remplacez xxx.xxx.xxx.xxx par le masque de réseau adéquat.

iface eth1 inet staticaddress 10.1.0.2netmask 255.255.255.0hostname sardaukar.etablissement.org

# Ici, l’interface eth1, configurée avec une IP statique (static)

# Si le site utilise la classe 10.x.x.x, changez les adresses

140

Page 141: BONdossier Info

9 Configuration du serveur d’accès

# du réseau local ; utilisez par exemple 192.168.1.2 (classe privée)# pour eth1.

Sauvegardez le fichier, quittez votre éditeur et nous allons maintenant démarrer les diffé-rentes interfaces. Un script de démarrage est chargé de cela ; nous l’utilisons comme ceci :

/etc/init.d/networking restart

Le script va initialiser les différentes interfaces. Si tout se passe bien, l’utilitaire ifconfig doit vousdonner quelque chose de ce genre :

eth0 Link encap:Ethernet HWaddr 00:60:97:A7:0E:8Dinet addr:213.166.193.178 Bcast:213.166.195.255 Mask:255.255.252.0UP BROADCAST NOTRAILERS RUNNING MULTICAST MTU:1500 Metric:1RX packets:252308 errors:0 dropped:0 overruns:0 frame:0TX packets:12150 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:100Interrupt:5 Base address:0x300

Et ce, pour chacune de nos deux interfaces, les données propres à chaque interface variant.

9.3 Bind, serveur DNS

Nous allons configurer un deuxième serveur DNS pour notre zone. Pourquoi ? Tout sim-plement parce qu’en cas de panne du premier serveur (serveur primaire), nous serions bienembêtés de ne pas en avoir un autre. Cela va aussi permettre de répartir la charge sur les deuxserveurs.

En plus des serveurs primaire et secondaire, il serait bien d’avoir un serveur tertiaire, hé-bergé par un site ami, juste «au cas où». Mais ce n’est pas indispensable.

Nous arrêtons le serveur :

/etc/init.d/bind stop

9.3.1 /etc/bind/named.conf

Dans le cas d’un serveur secondaire, le fichier de configuration va différer très légère-ment. Le serveur ne sera plus configuré en tant que maître («master») mais en tant qu’esclave(«slave») :

// This is the primary configuration file for the BIND DNS server named.//// Please read /usr/share/doc/bind/README.Debian for information on the// structure of BIND configuration files in Debian for BIND versions 8.2.1// and later, *BEFORE* you customize this configuration file.//

141

Page 142: BONdossier Info

9 Configuration du serveur d’accès

options directory "/var/cache/bind";

// If there is a firewall between you and nameservers you want// to talk to, you might need to uncomment the query-source// directive below. Previous versions of BIND always asked// questions using port 53, but BIND 8.1 and later use an unprivileged// port by default.

// query-source address * port 53;

// If your ISP provided one or more IP addresses for stable// nameservers, you probably want to use them as forwarders.// Uncomment the following block, and insert the addresses replacing// the all-0’s placeholder.

// forwarders // 0.0.0.0;// ;

;

// reduce log verbosity on issues outside our controllogging

category lame-servers null; ;category cname null; ;

;

// prime the server with knowledge of the root serverszone "."

type hint;file "/etc/bind/db.root";

;

// be authoritative for the localhost forward and reverse zones, and for// broadcast zones as per RFC 1912

zone "localhost" type master;file "/etc/bind/db.local";

;

zone "127.in-addr.arpa" type master;file "/etc/bind/db.127";

;

142

Page 143: BONdossier Info

9 Configuration du serveur d’accès

zone "0.in-addr.arpa" type master;file "/etc/bind/db.0";

;

zone "255.in-addr.arpa" type master;file "/etc/bind/db.255";

;

// add entries for other zones below here

// notre zone "etablissement.org"

zone "etablissement.org" type slave;file "/var/cache/bind/masters/etablissement.org";masters yyy.yyy.yyy.yyy; ;

;

// pour permettre la résolution inverse

zone "xxx.xxx.xxx.in-addr.arpa" type slave;file "/var/cache/bind/masters/xxx.xxx.xxx";masters yyy.yyy.yyy.yyy; ;

;

// remplacez xxx.xxx.xxx par l’inverse de l’adresse IP// exemple :// * nos adresses IP sont 213.166.193.178 et 213.166.193.179// dans ce cas, xxx.xxx.xxx.xxx = 193.166.213//// Remplacez yyy.yyy.yyy.yyy par l’adresse IP du serveur primaire// Ici, le serveur primaire est "fremen"

Dans le cas d’un serveur secondaire, nous n’avons pas besoin de nous préoccuper des fi-chiers de zones comme précédemment. Le serveur les constituera lui-même à partir du serveurprimaire.

143

Page 144: BONdossier Info

9 Configuration du serveur d’accès

9.3.2 Maintenance

Comme pour notre serveur primaire, ce serveur peut servir de cache pour nos machinesclientes. Il faut donc là aussi mettre à jour régulièrement la liste des serveurs DNS principaux.

Nous utilisons le même script qu’à la section 8.3.5 (page 55).Vous devez lancer le script une première fois avant de lancer le serveur.Il faut maintenir ce fichier à jour, nous allons donc lancer ce script périodiquement, grâce à

cron. Éditez la crontab de root, puis ajoutez-y la ligne :

45 18 1 * * /usr/local/bin/update-dns

Sauvegardez le fichier et quittez votre éditeur, cron s’occupe de tout.

9.3.3 Redémarrage de Bind

Nous pouvons maintenant redémarrer Bind :

/etc/init.d/bind start

Si le serveur ne démarre pas, examinez les logs ; Bind y consigne les erreurs et l’emplacementoù elles ont été commises. Trouvez-les et corrigez-les, puis essayer de relancer le daemon.

9.3.4 /etc/resolv.conf

Ce fichier est utilisé par les routines de résolution de noms pour mener à bien leur mission.Il se présente comme ceci :

domain etablissement.orgsearch etablissement.orgnameserver 127.0.0.1

9.3.5 /etc/nsswitch.conf

Ce fichier indique aux routines de résolution de noms les différents moyens à leur disposi-tion, et l’ordre dans lequel elles doivent essayer ces différents moyens.

Nous utiliserons ceci :

# /etc/nsswitch.conf## Example configuration of GNU Name Service Switch functionality.# If you have the ‘glibc-doc’ and ‘info’ packages installed, try:# ‘info libc "Name Service Switch"’ for information about this file.

passwd: compatgroup: compatshadow: compat

hosts: files dns

144

Page 145: BONdossier Info

9 Configuration du serveur d’accès

networks: files

protocols: db filesservices: db filesethers: db filesrpc: db files

netgroup: nis

9.3.6 /etc/host.conf

Ce fichier sert également aux routines de résolution de noms pour déterminer quel systèmede résolution elles doivent utiliser.

Il se présente comme ceci :

order hosts,bindmulti on

9.3.7 /etc/hosts

Ce fichier contient les adresses IP et les noms canoniques de différentes machines. Il n’estplus utilisé que par certains programmes, ou dans des cas bien précis.

Voici celui de notre machine :

# The following lines are desirable for IPv6 capable hosts# (added automatically by netbase upgrade)

::1 ip6-localhost ip6-loopbackfe00::0 ip6-localnetff00::0 ip6-mcastprefixff02::1 ip6-allnodesff02::2 ip6-allroutersff02::3 ip6-allhosts

127.0.0.1 sardaukar.etablissement.org sardaukar,localhost

9.4 Sendmail, serveur SMTP

Ici, Sendmail sera utilisé comme serveur entrant secondaire1. C’est-à-dire qu’il acceptera lecourrier entrant et le renverra aussitôt à notre serveur principal, que nous avons configuré toutà l’heure.

Nous commençons par arrêter le serveur :

/etc/init.d/sendmail stop

1Ou MX secondaire, MX signifiant «Mail eXchanger» (échangeur de courrier).

145

Page 146: BONdossier Info

9 Configuration du serveur d’accès

9.4.1 /etc/mail/sendmail.cf

Nous utilisons ici aussi le kit M4 fourni avec Sendmail.Rendez-vous donc dans le répertoire /usr/share/sendmail/sendmail.cf, puis ouvrez un fichier

nommé sendmail.mc.Nous utiliserons cette configuration :

include(‘./m4/cf.m4’)dnldnldnl Définition de certains éléments spécifiques au systèmednl (emplacement de certains fichiers, ...)dnlOSTYPE(‘debian’)dnldnldnl Nous définissons certains emplacementsdnlFEATURE(‘use_cw_file’,‘/etc/mail/local-host-names’)dnlFEATURE(‘use_ct_file’,‘/etc/mail/sendmail.ct’)dnlFEATURE(‘mailertable’,‘hash -o /etc/mail/mailertable’)dnlFEATURE(‘domaintable’,‘hash -o /etc/mail/domaintable’)dnlFEATURE(‘genericstable’,‘hash -o /etc/mail/genericstable’)dnlFEATURE(‘virtusertable’,‘hash -o /etc/mail/virtusertable’)dnlFEATURE(‘access_db’,‘hash -o /etc/mail/access’)dnldefine(‘STATUS_FILE’, ‘/etc/mail/trusted-users’)dnldefine(‘LOCAL_MAILER_PATH’, ‘/usr/bin/procmail’)dnldefine(‘confCW_FILE’,‘/etc/mail/local-host-names’)dnldefine(‘confCT_FILE’,‘/etc/mail/sendmail.ct’)dnldefine(‘confSTATUS_FILE’, ‘/etc/mail/statistics’)dnldnldnl Nous rajoutons toujours le domaine en fin d’adressednl (ex.: To: root devient To: [email protected])dnlFEATURE(‘always_add_domain’)dnldnldnl Nous définissons les mailer (protocoles) à utiliserdnl Ainsi que l’utilisation de procmaildnlFEATURE(‘local_procmail’)dnlMAILER(‘local’)dnlMAILER(‘smtp’)dnlMAILER(‘procmail’)dnldnldnl Permet de rediriger une adresse en "adresse.REDIRECT"dnlFEATURE(‘redirect’)dnl

146

Page 147: BONdossier Info

9 Configuration du serveur d’accès

dnldnl Protection anti-spamdnlFEATURE(‘dnsbl’,‘blackholes.mail-abuse.org’,‘ Mail from $&client_addr rejected; see http://mail-abuse.org/cgi-bin/look’)dnlFEATURE(‘dnsbl’,‘dialups.mail-abuse.org’,‘ Mail from dial-up rejected; see http://mail-abuse.org/dul/enduser.htm’)dnlFEATURE(‘no_default_msa’)dnlFEATURE(‘rbl’)dnldnldnl Permet de bloquer l’arrivée de courrier pour certains utilisateursdnlFEATURE(‘blacklist_recipients’)dnldnldnl Taille maximum d’un message, en octets. Ici, 10 Mo.dnldefine(‘confMAX_MESSAGE_SIZE’,‘10485760’)dnldnldefine(‘confAUTO_REBUILD’)dnldnldnl Message affiché lors de la connexiondnldefine(‘confSMTP_LOGIN_MSG’,‘sardaukar.etablissement.org Sendmail 8.9.3 Have a nice day !’)dnldnldnl Les durées après lesquelles les messages d’erreur sont envoyésdnldefine(‘confTO_QUEUEWARN’,‘12h’)dnldefine(‘confTO_QUEUEWARN_NORMAL’,‘12h’)dnldefine(‘confTO_QUEUEWARN_URGENT’,‘12h’)dnldefine(‘confTO_QUEUEWARN_NONURGENT’,‘12h’)dnldnldnl Nous interdisont certaines commandes, et nous plaçonsdnl des avertissements de sécurité dans certains casdnldefine(‘confPRIVACY_FLAGS’, ‘‘authwarnings,novrfy,noexpn,noetrn’’)dnldnldnl Emplacement du fichier .forwarddnldefine(‘confFORWARD_PATH’, ‘$z/.forward.$w:$z/.forward+$h:$z/.forward’)dnldnldnl La personne qui doit recevoir les messages d’erreursdnldefine(‘confCOPY_ERRORS_TO’, ‘postmaster’)dnldnl

147

Page 148: BONdossier Info

9 Configuration du serveur d’accès

dnl Nombre maximum de destinataires pour un maildnldefine(‘confMAX_RCPTS_PER_MESSAGE’, ‘20’)dnldnldnl Nous masquons les noms de machinesdnlMASQUERADE_AS(etablissement.org)dnlMASQUERADE_DOMAIN(*.etablissement.org)dnlFEATURE(‘masquerade_entire_domain’)dnldnldnl Nous relayons les machines listées dans /etc/mail/accessdnlFEATURE(‘relay_hosts_only’)dnldnldnl Nous envoyons les mails considérés comme locaux à notrednl serveur principaldnldefine(‘LOCAL_RELAY’,‘esmtp:[xxx.xxx.xxx.xxx]’)dnldnldnl Nous définissons une machine à qui envoyer tous les mailsdnldefine(‘MAIL_HUB’,‘esmtp:[xxx.xxx.xxx.xxx]’)dnldnldnl Nous définissons quelle machine doit recevoir le courrierdnl du domainednldefine(‘SMART_HOST’,‘esmtp:[xxx.xxx.xxx.xxx]’)dnldnldnl Dans les lignes précédentes, remplacezdnl xxx.xxx.xxx.xxx par l’adresse IP de fremendnl

Compilez le fichier avec la commande :

m4 sendmail.mc > /etc/mail/sendmail.cf

Ici aussi, vous aurez besoin des deux fichiers no_default_msa.m4 et dnsbl.m4 présents sur le CD-ROM. Copiez-les dans le sous-répertoire feature. Ces fichiers ne sont normalement pas néces-saires pour une version de sendmail supérieure ou égale à 8.10.x.

Puis sauvegardez le fichier /etc/mail/sendmail.cf et copiez le nouveau sendmail.cf dans le ré-pertoire /etc/mail.

9.4.2 /etc/mail/access

Comme tout à l’heure, ce fichier définit les droits d’accès de certains sites.Ici, nous le renseignons comme ceci :

148

Page 149: BONdossier Info

9 Configuration du serveur d’accès

*.etablissement.org RELAY

Noux compilons le fichier :

makemap hash /etc/mail/access.db < /etc/mail/access

9.4.3 /etc/mail/aliases

Ce fichier contient les alias. Il n’est pas utile de s’en soucier ici, étant donné que tout mail,même local, sera renvoyé sur notre serveur principal.

Il serait même dangereux de mettre en place des alias, car ceux-ci ne seraient pas respectés.Nous utiliserons donc le fichier de base :

## @(#)aliases 8.2 (Berkeley) 3/5/94## Aliases in this file will NOT be expanded in the header from# Mail, but WILL be visible over networks or from /bin/mail.## >>>>>>>>>> The program "newaliases" must be run after# >> NOTE >> this file is updated for any changes to# >>>>>>>>>> show through to sendmail.#

# Basic system aliases -- these MUST be present.MAILER-DAEMON: postmasterpostmaster: root

# General redirections for pseudo accounts.bin: rootdaemon: rootgames: rootingres: rootnobody: rootsystem: roottoor: rootuucp: root

# Well-known aliases.manager: rootdumper: rootoperator: rootabuse: root

# trap decode to catch security attacksdecode: root

149

Page 150: BONdossier Info

9 Configuration du serveur d’accès

Enregistrez le fichier et lancez la commande :

newaliases

Sendmail a régénéré les aliases.

9.4.4 /etc/mail/domaintable

Ici non plus, nous ne servirons pas de ce fichier. Nous créons donc un fichier vide et lecompilons :

touch /etc/mail/domaintablemakemap hash /etc/mail/domaintable.db < /etc/mail/domaintable

9.4.5 /etc/mail/genericstable

Nous ne nous servons pas de ce fichier. Nous créons un fichier vide et le compilons :

touch /etc/mail/genericstablemakemap hash /etc/mail/genericstable.db < /etc/mail/genericstable

9.4.6 /etc/mail/local-host-names

Ce fichier contient les différents noms sous lesquels la machine est connue. Sendmail s’ensert pour déterminer s’il doit ou non accepter un mail.

Nous le renseignons comme ceci :

sardaukar.etablissement.orgns2.etablissement.org

Nous ne compilons pas ce fichier, Sendmail y accède directement.

9.4.7 /etc/mail/mailertable

Sur cette machine, nous nous servons de ce fichier afin de rediriger les mails vers notreserveur principal.

Nous renseignons le fichier comme ceci :

etablissement.org esmtp:[xxx.xxx.xxx.xxx]*.etablissement.org esmtp:[xxx.xxx.xxx.xxx]

Où xxx.xxx.xxx.xxx est à remplacer par l’adresse IP du serveur principal, ici «fremen».

150

Page 151: BONdossier Info

9 Configuration du serveur d’accès

9.4.8 /etc/mail/relay-domains

Nous n’utilisons pas ce fichier. Nous créons un fichier vide :

touch /etc/mail/relay-domains

9.4.9 /etc/mail/sendmail.ct

Ce fichier contient les logins des personnes considérées comme sûres. Sendmail ne générerapas de message d’avertissement si ces personnes mentionnent une adresse différente de leuradresse «[email protected]».

Nous y mettons bien sûr root :

root

9.4.10 /etc/mail/service.switch

Ce fichier indique à Sendmail de quels moyens il dispose pour se renseigner sur un utilisa-teur, un nom de machine ou sur ses aliases :

# /etc/mail/service.switch## This is the format that sendmail expects (no colon after the service)#passwd fileshosts files dnsaliases files

Ce fichier ne se compile pas.

9.4.11 /etc/mail/virtusertable

Nous n’utilisons pas ce fichier. Nous créons un fichier vide et le compilons :

touch /etc/mail/virtusertablemakemap hash /etc/mail/virtusertable.db < /etc/mail/virtusertable

9.4.12 Redémarrage de Sendmail

Nous pouvons maintenant redémarrer Sendmail :

/etc/init.d/sendmail start

Si Sendmail ne redémarre pas, il y a une erreur quelque part. Il devrait vous l’indiquer.Vérifiez que Sendmail est effectivement en fonction en vous connectant sur le port 25 (SMTP) :

telnet localhost 25

Si tout va bien, Sendmail vous accueille, sinon vous obtenez le message «Connection refused.».Vous mettez fin à la connexion avec Sendmail par la commande «quit».

151

Page 152: BONdossier Info

9 Configuration du serveur d’accès

9.5 NFS

Nous commençons par arrêter le service nfs-common :

/etc/init.d/nfs-common stop

9.5.1 /etc/hosts

Pour que le système puisse monter le volume NFS, le serveur doit figurer dans le fichier/etc/hosts :

# The following lines are desirable for IPv6 capable hosts# (added automatically by netbase upgrade)

::1 ip6-localhost ip6-loopbackfe00::0 ip6-localnetff00::0 ip6-mcastprefixff02::1 ip6-allnodesff02::2 ip6-allroutersff02::3 ip6-allhosts

127.0.0.1 sardaukar.etablissement.org sardaukar,localhost10.1.0.1 fremen.etablissement.org fremen

9.5.2 /etc/fstab

Pour que le système monte tout seul le volume NFS au démarrage, nous devons ajouterune ligne à notre fichier /etc/fstab.

Voici ce que nous obtenons :

# /etc/fstab: static file system information.##<file system><mount point> <type> <options> <dump><pass>/dev/hda5 / ext2 defaults,errors=remount-ro 0 1/dev/hda6 none swap sw 0 0proc /proc proc defaults 0 0# Uncomment the following entry if you use a 2.2.x or newer kernel for# UNIX98-style pty handlingnone /dev/pts devpts gid=5,mode=620 0 0/dev/fd0 /floppy auto defaults,user,noauto 0 0/dev/cdrom /cdrom iso9660 defaults,ro,user,noauto 0 0/dev/hda1 /boot ext2 rw 0 2fremen:/home /home nfs rsize=1024,wsize=1024 0 0

152

Page 153: BONdossier Info

9 Configuration du serveur d’accès

9.5.3 Redémarrage de nfs-common

Nous pouvons redémarrer nfs-common :

/etc/init.d/nfs-common start

9.5.4 Montage manuel des volumes NFS

Vérifiez que le volume NFS soit bien accessible dans le répertoire /home. S’il ne l’était pas,vous pouvez monter manuellement le volume par la commande :

mount -o rsize=1024,wsize=1024,hard,intr fremen:/home /home

9.6 NIS

Lors de l’installation du paquetage, il vous est demandé d’entrer le domaine NIS. Saisissez«etablissement.org».

Nous commençons par stopper le service NIS :

/etc/init.d/nis stop

9.6.1 /etc/hosts

Nous devons modifier le fichier de manière à ce qu’il contienne toutes les autres machines.Nous arrivons à quelque chose comme ceci :

# The following lines are desirable for IPv6 capable hosts# (added automatically by netbase upgrade)

::1 ip6-localhost ip6-loopbackfe00::0 ip6-localnetff00::0 ip6-mcastprefixff02::1 ip6-allnodesff02::2 ip6-allroutersff02::3 ip6-allhosts

127.0.0.1 sardaukar.etablissement.org sardaukar,localhost10.1.0.1 fremen.etablissement.org fremen10.1.0.2 sardaukar.etablissement.org sardaukar10.1.0.11 client1.etablissement.org client110.1.0.12 client2.etablissement.org client210.1.0.13 client3.etablissement.org client310.1.0.14 client4.etablissement.org client410.1.0.15 client5.etablissement.org client5

Si vous avez utilisé la classe d’adresses 192.168.x.x, remplacez par les valeurs idoines.

153

Page 154: BONdossier Info

9 Configuration du serveur d’accès

9.6.2 /etc/defaultdomain

Dans ce fichier est configuré le nom de domaine NIS que nous utilisons :

etablissement.org

9.6.3 /etc/init.d/nis

Nous devons indiquer au script de démarrage que seul le client NIS est utilisé ici. Il fautéditer le script :

#!/bin/sh## /etc/init.d/nis Start NIS (formerly YP) daemons.##

# Set to "false", "slave" or "master".NISSERVER=falseNET="/usr/sbin"test -f $NET/ypbind -a -f /etc/defaultdomain || exit 0

[...]

9.6.4 /etc/yp.conf

Dans ce fichier, nous indiquons au client NIS qui est le serveur. Cela évite que le clientparcours le réseau à la recherche de son serveur :

## yp.conf Configuration file for the ypbind process. You can define# NIS servers manually here if they can’t be found by# broadcasting on the local net (which is the default).## See the manual page of ypbind for the syntax of this file.#

ypserver fremen.etablissement.org

9.6.5 /etc/passwd

Pour utiliser le service NIS, nous devons modifier le fichier /etc/passwd :

154

Page 155: BONdossier Info

9 Configuration du serveur d’accès

root:x:0:0:root:/root:/bin/bashdaemon:x:1:1:daemon:/usr/sbin:/bin/shbin:x:2:2:bin:/bin:/bin/shsys:x:3:3:sys:/dev:/bin/shsync:x:4:100:sync:/bin:/bin/syncgames:x:5:100:games:/usr/games:/bin/shman:x:6:100:man:/var/cache/man:/bin/shlp:x:7:7:lp:/var/spool/lpd:/bin/shmail:x:8:8:mail:/var/spool/mail:/bin/shnews:x:9:9:news:/var/spool/news:/bin/shuucp:x:10:10:uucp:/var/spool/uucp:/bin/shproxy:x:13:13:proxy:/bin:/bin/shmajordom:x:30:31:Majordomo:/usr/lib/majordomo:/bin/shpostgres:x:31:32:postgres:/var/lib/postgres:/bin/shwww-data:x:33:33:www-data:/var/www:/bin/shbackup:x:34:34:backup:/var/backups:/bin/shmsql:x:36:36:Mini SQL Database Manager:/var/lib/msql:/bin/shoperator:x:37:37:Operator:/var:/bin/shlist:x:38:38:SmartList:/var/list:/bin/shirc:x:39:39:ircd:/var:/bin/shgnats:x:41:41:Gnats Bug-Reporting System:/var/lib/gnats/gnats-db:/bin/shnobody:x:65534:65534:nobody:/home:/bin/shtelnetd:x:101:101::/usr/lib/telnetd:/bin/falseidentd:x:100:65534::/var/run/identd:/bin/false+julien:::::::+:*::::::/etc/NoShelljulien:x:1000:1000:Julien BLACHE,,,:/home/julien:/bin/bashautre:x:1001:1001:Un autre utilisateur,,,:/home/autre:/bin/bash

Dans cette exemple, tous les utilisateurs listés avant les lignes

+julien:::::::+:*::::::/etc/NoShell

peuvent utiliser la machine. Tout ceux listés après ne peuvent pas, à l’exception de l’utilisateur«julien».

Faites donc très attention lorsque vous ajoutez ces lignes. D’autre part, le nombre de « :» estimportant ! Notez qu’il n’y a pas d’espace entre les « :».

Sur cette machine, faites en sorte que vous soyez le seul à pouvoir ouvrir une session sousun compte normal (différent de root). Il n’est pas indispensable que votre utilisateur soit déclarédans le fichier /etc/passwd de cette machine.

9.6.6 /etc/group

Nous devons faire le même genre de modification dans ce fichier :

155

Page 156: BONdossier Info

9 Configuration du serveur d’accès

root:x:0:daemon:x:1:bin:x:2:sys:x:3:adm:x:4:tty:x:5:disk:x:6:lp:x:7:lp,julienmail:x:8:news:x:9:uucp:x:10:proxy:x:13:kmem:x:15:dialout:x:20:julienfax:x:21:voice:x:22:cdrom:x:24:julienfloppy:x:25:tape:x:26:sudo:x:27:audio:x:29:juliendip:x:30:majordom:x:31:majordompostgres:x:32:www-data:x:33:backup:x:34:msql:x:36:operator:x:37:list:x:38:irc:x:39:src:x:40:gnats:x:41:shadow:x:42:utmp:x:43:telnetdvideo:x:44:staff:x:50:juliengames:x:60:users:x:100:nogroup:x:65534:telnetd:x:101:+:::julien:x:1000:autre:x:1001:

Attention, ici aussi, le nombre de « :» est important ! Remarquez encore qu’il n’y a pas

156

Page 157: BONdossier Info

9 Configuration du serveur d’accès

d’espace entre les « :».

9.6.7 Redémarrage de NIS

Nous pouvons maintenant redémarrer NIS :

/etc/init.d/nis start

9.7 Permettre l’accès à Internet - firewalling et masquerading

Les adresses IP assignées à nos machines clientes ne sont pas publiques. De ce fait, elles nepeuvent accéder à Internet sans l’aide de notre serveur d’accès.

Nous en profiterons pour les protéger quelque peu.Pour configurer les fonctionnalités de firewalling2 et de masquerading3 du noyau Linux,

nous utiliserons le script FireMasq. Ce script est une interface à l’utilitaire ipchains utilisé pourconfigurer ces deux fonctions.

Étant donnée la topologie de notre réseau et nos besoins, cela nous suffira amplement. Il estbien sûr toujours possible d’utiliser ipchains directement.

9.7.1 /sbin/firemasq.up.sh

Ce script sera lancé automatiquement lorsque les interfaces de la machine auront été confi-gurées. Il configurera les fonctionnalités de firewalling et de masquerading de façon adéquate.

#!/bin/sh

# Masquerading Firewall

# Script for IPChains on Linux 2.2.14 kernel

# Released under the GNU GPL (http://www.fsf.org/copyleft/gpl.html)# Copyleft 2000 by Dr. Teeth (this is open source, hack away...)# [email protected]

# Check http://northernlights.bizland.com for new versions of this program# and for other computer security related tools and information.

# This is a script for any box running ipchains on a Linux 2.2.x kernel# (RedHat 6.x, Mandrake 7.x, etc). In particular, this script is for a box# with a dial-up internet connection; it will turn the box into a firewall# with masquerading services. All clients that connect to the firewall# via a local network can simultaneously connect to the Internet, or any

2Protection des machines par le biais d’une machine filtrant le trafic réseau entrant et sortant.3Masquage d’adresses IP. Le masquerading permet d’utiliser une connexion avec plusieurs machines, une machine

se chargeant de masquer toutes les autres.

157

Page 158: BONdossier Info

9 Configuration du serveur d’accès

# other network segment the firewall is connected to. This script can also# be used for today’s "high speed internet access" enabled machines, for# example machines connected to cable modems and dsl routers.

# If you do not need masquerading servives, but you still want to setup a# firewall for a dial-up, dsl, cable modem, or ethernet connection on a# single computer, you can download the script "firedog" from the Northern# Lights Group’s site at http://northernlights.bizland.com.

# All denied packets are logged via the kernel’s packet logging facilities.# Check ’/var/log/messages’ on most systems for a log of denied traffic...

# Any clients using masquerading will "borrow" the IP address of the firewall# router, so outside machines will always see the firewall, not any of the# clients on the LAN. This is actually a nice side effect of masquerading, as# outsiders can’t easily get a picture of what’s on the inside of the firewall# if they never see the LAN clients’ IP addresses.

# Remember that most dial-up connections have a unique IP address with every# connection. While you could manually start and stop the firewall, I# would highly suggest storing this executable in ’/sbin’ and then starting# it by adding the line ’/sbin/firemasq’ to the end of ’/etc/ppp/ip-up’ (at# the next-to-last line, before the line ’exit 0’). This will automatically# start the firewall with the correct IP on every connection, even when the# connection is lost and it redials.

# Copy the script ’firemasq.down’ to ’/sbin’ as well, then you can deactivate# the firewall with a simple ’firemasq.down’ command if needed.

# This script sets up more than adaquate protection for a dial-up connection.# Most services are blocked from the outside but not from the inside. For# example, you can still telnet, ftp, etc. the firewall from the LAN, but hosts# on the Internet cannot. You may want to add more sections to block the known# cable modem nets in your area (think script kiddie protection).

# There is a further layer of protection for LAN clients who use IP’s from the# "private" ranges ’10.x.x.x’, ’172.16.x.x - 172.31.x.x’, and# ’192.168.0.x - 192.168.255.x’. These clients are in the Internet’s# "blackhole", and routers are not capable of directing traffic to these# "private" hosts.

# You will need to edit settings for your network, changing the network# addresses and devices if needed. The path for ipchains is probablly okay,# but you can change it if nessesary. You only have to change this information# in the beginning of the script (below). The script will take care of the

158

Page 159: BONdossier Info

9 Configuration du serveur d’accès

# rest.

# You can stop a certain line or section from executing by adding a pound ’#’# character to the begginning of the line...

# Advanced users already know they can add lines with ’$IPCHAINS [options]’.# run ’man ipchains’ for more info...

# Change IPCHAINS to the correct path for your systemIPCHAINS=/sbin/ipchains

# Change INETDEV to the network device connceted to the Internet (ppp0/eth0)# This is ppp0 by default for dial-up connections. Most cable modem users# will probably want eth0 or possibly eth1. When in doubt look at the command# ’ifconfig’.INETDEV="eth0"

# Change LAN to the correct network address and network mask for your LAN# this can be found by using ifconfig from one of the clientsLAN="10.0.1.0/24"

# Change LANDEV to the network device connected to your LANLANDEV="eth1"

# There should be no need to change thisLOCALIP=‘ifconfig $LANDEV | grep inet | cut -d : -f 2 | cut -d \ -f 1‘

echo ""echo "FireMasq version 0.7 by Dr. Teeth (2000)"echo "---------------------------------------------------------"echo "Local Network Device: $LANDEV"echo "Local IP: $LOCALIP"echo "Local Network Address: $LAN"echo "External Network Device: $INETDEV"echo "---------------------------------------------------------"echo ""

#Set default chain policyecho -n "Setting default chain policies..."$IPCHAINS -P input DENY$IPCHAINS -P forward DENY$IPCHAINS -P output ACCEPTecho " Done!"

#Flush all chains

159

Page 160: BONdossier Info

9 Configuration du serveur d’accès

echo -n "Flushing chains..."$IPCHAINS -F$IPCHAINS -Xecho " Done!"

#Add custom chainsecho -n "Adding custom chains..."$IPCHAINS -N inet-in$IPCHAINS -N inet-outecho " Done!"

#Set input rulesecho -n "Setting rules for input chain..."$IPCHAINS -A input -s $LAN -d $LAN -j ACCEPT$IPCHAINS -A input -s 0.0.0.0/0 -d 0.0.0.0/0 -i lo -j ACCEPT$IPCHAINS -A input -s $LAN -d 0.0.0.0/0 -j ACCEPT$IPCHAINS -A input -s 0.0.0.0/0 -d 0.0.0.0/0 -i $INETDEV -j inet-inecho " Done!"

#Set forward rulesecho -n "Setting rules for forward chain..."$IPCHAINS -A forward -s $LAN -d $LAN -j ACCEPT$IPCHAINS -A forward -s $LOCALIP -d 0.0.0.0/0 -j ACCEPTecho " Done!"

#Activate masqueradeecho -n "Activating masquerade..."$IPCHAINS -A forward -s $LAN -d 0.0.0.0/0 -j MASQ$IPCHAINS -M -S 7200 10 60echo " Done!"

#Set output rulesecho -n "Setting rules for output chain..."$IPCHAINS -A output -s $LAN -d $LAN -j ACCEPT$IPCHAINS -A output -s 0.0.0.0/0 -d 0.0.0.0/0 -i lo -j ACCEPT$IPCHAINS -A output -s $LAN -d 0.0.0.0/0 -j ACCEPT$IPCHAINS -A output -s 0.0.0.0/0 -d 0.0.0.0/0 -i $INETDEV -j inet-outecho " Done!"

#Set inet-in rulesecho "Setting rules for internet device incoming chain:"echo -n " Setup port blocking on vulnerable ports..."#Block NFS$IPCHAINS -A inet-in -p tcp -s 0.0.0.0/0 -d 0.0.0.0/0 2049 -j DENY -l$IPCHAINS -A inet-in -p udp -s 0.0.0.0/0 -d 0.0.0.0/0 2049 -j DENY -l

160

Page 161: BONdossier Info

9 Configuration du serveur d’accès

#Block postgres$IPCHAINS -A inet-in -p tcp -s 0.0.0.0/0 -d 0.0.0.0/0 postgres -j DENY -l$IPCHAINS -A inet-in -p udp -s 0.0.0.0/0 -d 0.0.0.0/0 postgres -j DENY -l#Block X$IPCHAINS -A inet-in -p tcp -s 0.0.0.0/0 -d 0.0.0.0/0 5999:6003 -j DENY -l$IPCHAINS -A inet-in -p udp -s 0.0.0.0/0 -d 0.0.0.0/0 5999:6003 -j DENY -l#Block XFS$IPCHAINS -A inet-in -p tcp -s 0.0.0.0/0 -d 0.0.0.0/0 7100 -j DENY -l$IPCHAINS -A inet-in -p udp -s 0.0.0.0/0 -d 0.0.0.0/0 7100 -j DENY -l#Block Back Orifice$IPCHAINS -A inet-in -p tcp -s 0.0.0.0/0 -d 0.0.0.0/0 31337 -j DENY -l$IPCHAINS -A inet-in -p udp -s 0.0.0.0/0 -d 0.0.0.0/0 31337 -j DENY -l#Block netbus$IPCHAINS -A inet-in -p tcp -s 0.0.0.0/0 -d 0.0.0.0/0 12345:12346 -j DENY -l$IPCHAINS -A inet-in -p udp -s 0.0.0.0/0 -d 0.0.0.0/0 12345:12346 -j DENY -lecho " Done!"#Block direct web accessecho -n " Blocking direct web access..."$IPCHAINS -A output -p tcp -s $LAN -d 0.0.0.0/0 www -j DENYecho " Done!"echo -n " Allowing ssh, dns, and icmp (ping/traceroute) traffic..."$IPCHAINS -A inet-in -p tcp -s 0.0.0.0/0 ssh -d 0.0.0.0/0 -j ACCEPT$IPCHAINS -A inet-in -p tcp -s 0.0.0.0/0 -d 0.0.0.0/0 ssh -j ACCEPT$IPCHAINS -A inet-in -p tcp -s 0.0.0.0/0 -d 0.0.0.0/0 auth -j ACCEPT$IPCHAINS -A inet-in -p tcp -s 0.0.0.0/0 -d 0.0.0.0/0 1023:65535 -j ACCEPT$IPCHAINS -A inet-in -p udp -s 0.0.0.0/0 -d 0.0.0.0/0 1023:65535 -j ACCEPT$IPCHAINS -A inet-in -p icmp -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPTecho " Done!"echo -n " Setting default input to DENY..."$IPCHAINS -A inet-in -s 0.0.0.0/0 -d 0.0.0.0/0 -j DENY -lecho " Done!"

#Set inet-out rulesecho "Setting rules for internet device outgoing chain:"echo -n " Setting TOS flags for www, telnet, ssh, and ftp..."#$IPCHAINS -A inet-out -p tcp -s 0.0.0.0/0 -d 0.0.0.0/0 www -t 0x01 0x10$IPCHAINS -A inet-out -p tcp -s 0.0.0.0/0 -d 0.0.0.0/0 telnet -t 0x01 0x10$IPCHAINS -A inet-out -p tcp -s 0.0.0.0/0 -d 0.0.0.0/0 ssh -t 0x01 0x10$IPCHAINS -A inet-out -p tcp -s 0.0.0.0/0 -d 0.0.0.0/0 ftp -t 0x01 0x10$IPCHAINS -A inet-out -p tcp -s 0.0.0.0/0 -d 0.0.0.0/0 ftp-data -t 0x01 0x08echo " Done!"

161

Page 162: BONdossier Info

9 Configuration du serveur d’accès

9.7.2 /sbin/firemasq.down.sh

Ce script sera exécuté à l’arrêt de la machine. Bien qu’il ne soit pas spécialement utile à cemoment-là. Il est utile en cas de changement sur les interfaces (adresses IP par exemple). Lesrègles de masquerading et firewalling seront alors remises à zéro.

#!/bin/sh

IPCHAINS=/sbin/ipchains

echo -n "Flushing all chains..."$IPCHAINS -F$IPCHAINS -X$IPCHAINS -P input ACCEPT$IPCHAINS -P forward ACCEPT$IPCHAINS -P output ACCEPTecho " Done!"

9.7.3 Modules noyau

Éditez le fichier /etc/modules et vérifiez que les modules ip_masq_ftp, ip_masq_irc, ip_masq_cuseeme,ip_masq_raudio sont listés dans ce fichier. S’ils ne le sont pas, rajoutez-les puis sauvegardez lefichier.

Ce fichier est consulté au démarrage de la machine et permet de charger automatiquementles modules noyau qui y sont mentionnés. Les lignes commençant par «#» sont ignorées.

Ces modules permettent aux machines clients d’utiliser certains protocoles (FTP, ICQ, IRCet RealAudio) qui ne peuvent être utilisés lorsque la machine se trouve derrière une passerellecomme la notre.

Lancez la commande lsmod et observez sa sortie. Si les modules cités ci-dessus n’appa-raissent pas dans la liste, exécutez les commandes :

insmod ip_masq_ftpinsmod ip_masq_ircinsmod ip_masq_cuseemeinsmod ip_masq_raudio

Qui chargeront les modules.

9.7.4 /etc/init.d/firemasq

Ce script sera exécuté au démarrage de la machine par init et appellera /sbin/firemasq.up.shpour mettre en place les règles de firewalling et masquerading.

Il pourra ensuite être utilisé comme tous les autres scripts d’init pour stopper/réactiver cesfonctionnalités.

162

Page 163: BONdossier Info

9 Configuration du serveur d’accès

#!/bin/sh

# Simple init script for firemasq by Julien BLACHE.# Licensed under the GNU GPL.

test -x /sbin/firemasq.up.sh || exit 0test -x /sbin/firemasq.down.sh || exit 0test -x /sbin/ipchains || exit 0

case "$1 instart)

echo -n "Setting up firewalling/masquerading rules:"/sbin/firemasq.up.shecho " firemasq.up."

;;stop)

echo -n "Flushing firewalling/masquerading rules:"/sbin/firemasq.down.shecho " firemasq.down."

;;restart)

echo -n "Resetting firewalling/masquerading rules:"/sbin/firemasq.up.shecho " done."

;;*)

echo "Usage: /etc/init.d/firemasq start|stop|restart" >&2exit 1;;

esac

exit 0

Il nous faut faire quelques liens symboliques pour installer convenablement ce script :

cd /etc/rcS.d && ln -s ../init.d/firemasq S41firemasq && cd -cd /etc/rc0.d && ln -s ../init.d/firemasq K41firemasq && cd -cd /etc/rc1.d && ln -s ../init.d/firemasq K41firemasq && cd -cd /etc/rc2.d && ln -s ../init.d/firemasq S25firemasq && cd -cd /etc/rc3.d && ln -s ../init.d/firemasq S25firemasq && cd -cd /etc/rc4.d && ln -s ../init.d/firemasq S25firemasq && cd -cd /etc/rc5.d && ln -s ../init.d/firemasq S25firemasq && cd -cd /etc/rc6.d && ln -s ../init.d/firemasq K30firemasq && cd -

163

Page 164: BONdossier Info

9 Configuration du serveur d’accès

9.7.5 Démarrage du firewalling

Nous utilisons notre script :

/etc/init.d/firemasq start

9.8 Serveur proxy

En milieu scolaire, nous ne pouvons nous permettre de fournir un accès brut au Web. Nousdevons filtrer certains sites.

Nous utiliserons le serveur proxy Squid et SquidGuard, un redirecteur pour Squid. Le travaildu redirecteur consiste à comparer les adresses des sites demandés au proxy avec le contenu deses bases de données. Si le résultat est positif, SquidGuard prendra une décision différente selonla base qui a produit ce résultat, et informera Squid de la suite à donner à la requête. Si le résultatest négatif, Squid en sera informé, et la requête s’effectuera. Tout ceci est presque transparentpour l’utilisateur, excepté qu’il ne pourra accéder à certains sites et ne verra quasiment aucunebannière de publicité.

Il existe des listes noires de sites toutes prêtes pour SquidGuard, disponibles sur le site4 duprojet. Nous nous en servirons afin de filtrer les sites proposant des contenus pornographiques,traitant de warez5 ou de cracking6 et les publicités. L’administrateur du site pourra, s’il le sou-haite, utiliser l’une ou l’autre des listes disponibles, telles celles traitant des sites de jeux d’ar-gent ou de ceux permettant le téléchargement libre d’enregistrement audio (MP3 notamment)ou vidéo illégaux.

Pour justifier ce filtrage, outre le bon sens, rappelons l’article 227-24 du Nouveau CodePénal :

Article 227-24Le fait soit de fabriquer, de transporter, de diffuser par quelque moyen que ce soitet quel qu’en soit le support un message à caractère violent ou pornographique oude nature à porter gravement atteinte à la dignité humaine, soit de faire commerced’un tel message, est puni de trois ans d’emprisonnement et de 500.000 F d’amendelorsque ce message est susceptible d’être vu ou perçu par un mineur.Lorsque les infractions prévues au présent article sont soumises par la voie de lapresse écrite ou audiovisuelle, les dispositions particulières des lois qui régissentces matières sont applicables en ce qui concerne la détermination des personnesresponsables.

9.8.1 Squid - /etc/squid.conf

C’est le fichier de configuration central de Squid. Voici celui que nous utiliserons :

4http://www.squidguard.org/blacklist/5Piratage de logiciels.6Piratage d’équipements électroniques et informatiques, à ne pas confondre avec «hacking» qui signifie «program-

mation», malgré ce que les médias s’évertuent à nous faire croire.

164

Page 165: BONdossier Info

9 Configuration du serveur d’accès

# WELCOME TO SQUID 2# ------------------## This is the default Squid configuration file. You may wish# to look at http://cache.is.co.za/squid/ for documentation,# or the Squid home page (http://squid.nlanr.net/) for the FAQ.## The default Squid config file shows what the defaults for# various options happen to be. If you don’t need to change the# default, you shouldn’t uncomment the line. Doing so may cause# run-time problems. In some cases "none" refers to no default# setting at all, whilst in other cases it refers to a valid# option - the comments for that keyword indicate if this is the# case.#

# NETWORK OPTIONS# -----------------------------------------------------------------------------

# TAG: http_port# The port number where Squid will listen for HTTP client# requests. Default is 3128, for httpd-accel mode use port 80.# May be overridden with -a on the command line.## You may specify multiple ports here, but they MUST all be on# a single line.#http_port 8080

# TAG: icp_port# The port number where Squid sends and receives ICP requests to# and from neighbor caches. Default is 3130. To disable use# "0". May be overridden with -u on the command line.##icp_port 3130

# TAG: htcp_port# The port number where Squid sends and receives ICP requests to# and from neighbor caches. Default is 4827. To disable use# "0".## To enable this option, you must use --enable-htcp with the# configure script.#htcp_port 0

165

Page 166: BONdossier Info

9 Configuration du serveur d’accès

# TAG: mcast_groups# This tag specifies a list of multicast groups which your server# should join to receive multicasted ICP requests.## NOTE! Be very careful what you put here! Be sure you# understand the difference between an ICP _query_ and an ICP# _reply_. This option is to be set only if you want to RECEIVE# multicast queries. Do NOT set this option to SEND multicast# ICP (use cache_peer for that). ICP replies are always sent via# unicast, so this option does not affect whether or not you will# receive replies from multicast group members.## You must be very careful to NOT use a multicast address which# is already in use by another group of caches. NLANR has been# assigned a block of multicast address space for use in Web# Caching. Plese write to us at [email protected] to receive# an address for your own use.## If you are unsure about multicast, please read the Multicast# chapter in the Squid FAQ (http://squid.nlanr.net/Squid/FAQ/).## Usage: mcast_groups 239.128.16.128 224.0.1.20## By default, Squid doesn’t listen on any multicast groups.##mcast_groups none

# TAG: tcp_incoming_address# TAG: tcp_outgoing_address# TAG: udp_incoming_address# TAG: udp_outgoing_address# Usage: tcp_incoming_address 10.20.30.40# udp_outgoing_address fully.qualified.domain.name## tcp_incoming_address is used for the HTTP socket which accepts# connections from clients and other caches.# tcp_outgoing_address is used for connections made to remote# servers and other caches.# udp_incoming_address is used for the ICP socket receiving packets# from other caches.# udp_outgoing_address is used for ICP packets sent out to other# caches.## The default behaviour is to not bind to any specific address.

166

Page 167: BONdossier Info

9 Configuration du serveur d’accès

## NOTE, udp_incoming_address and udp_outgoing_address can not# have the same value (unless it is 0.0.0.0) since they both use# port 3130.#tcp_incoming_address 10.0.1.2tcp_outgoing_address xxx.xxx.xxx.xxxudp_incoming_address 10.0.1.2udp_outgoing_address xxx.xxx.xxx.xxx

## Ici, remplacez xxx.xxx.xxx.xxx par l’adresse affectée à l’interface eth0#

# OPTIONS WHICH AFFECT THE NEIGHBOR SELECTION ALGORITHM# -----------------------------------------------------------------------------

# TAG: cache_peer# To specify other caches in a hierarchy, use the format:## hostname type http_port icp_port## For example,## # proxy icp# # hostname type port port options# # -------------------- -------- ----- ----- -----------# cache_peer parent.foo.net parent 3128 3130 [proxy-only]# cache_peer sib1.foo.net sibling 3128 3130 [proxy-only]# cache_peer sib2.foo.net sibling 3128 3130 [proxy-only]## type: either ’parent’, ’sibling’, or ’multicast’.## proxy_port: The port number where the cache listens for proxy# requests.## icp_port: Used for querying neighbor caches about# objects. To have a non-ICP neighbor# specify ’7’ for the ICP port and make sure the# neighbor machine has the UDP echo port# enabled in its /etc/inetd.conf file.## options: proxy-only# weight=n# ttl=n

167

Page 168: BONdossier Info

9 Configuration du serveur d’accès

# no-query# default# round-robin# multicast-responder# closest-only# no-digest# no-netdb-exchange# no-delay# login=user:password## use ’proxy-only’ to specify that objects fetched# from this cache should not be saved locally.## use ’weight=n’ to specify a weighted parent.# The weight must be an integer. The default weight# is 1, larger weights are favored more.## use ’ttl=n’ to specify a IP multicast TTL to use# when sending an ICP request to this address.# Only useful when sending to a multicast group.# Because we don’t accept ICP replies from random# hosts, you must configure other group members as# peers with the ’multicast-responder’ option below.## use ’no-query’ to NOT send ICP queries to this# neighbor.## use ’default’ if this is a parent cache which can# be used as a "last-resort." You should probably# only use ’default’ in situations where you cannot# use ICP with your parent cache(s).## use ’round-robin’ to define a set of parents which# should be used in a round-robin fashion in the# absence of any ICP queries.## ’multicast-responder’ indicates that the named peer# is a member of a multicast group. ICP queries will# not be sent directly to the peer, but ICP replies# will be accepted from it.## ’closest-only’ indicates that, for ICP_OP_MISS# replies, we’ll only forward CLOSEST_PARENT_MISSes# and never FIRST_PARENT_MISSes.#

168

Page 169: BONdossier Info

9 Configuration du serveur d’accès

# use ’no-digest’ to NOT request cache digests from# this neighbor.## ’no-netdb-exchange’ disables requesting ICMP# RTT database (NetDB) from the neighbor.## use ’no-delay’ to prevent access to this neighbor# from influencing the delay pools.## use ’login=user:password’ if this is a personal/workgroup# proxy and your parent requires proxy authentication.## NOTE: non-ICP neighbors must be specified as ’parent’.##cache_peer hostname type 3128 3130

# TAG: cache_peer_domain# Use to limit the domains for which a neighbor cache will be# queried. Usage:## cache_peer_domain cache-host domain [domain ...]# cache_peer_domain cache-host !domain## For example, specifying## cache_peer_domain parent.foo.net .edu## has the effect such that UDP query packets are sent to# ’bigserver’ only when the requested object exists on a# server in the .edu domain. Prefixing the domainname# with ’!’ means that the cache will be queried for objects# NOT in that domain.## NOTE: * Any number of domains may be given for a cache-host,# either on the same or separate lines.# * When multiple domains are given for a particular# cache-host, the first matched domain is applied.# * Cache hosts with no domain restrictions are queried# for all requests.# * There are no defaults.# * There is also a ’cache_peer_access’ tag in the ACL# section.

# TAG: neighbor_type_domain# usage: neighbor_type_domain parent|sibling domain domain ...

169

Page 170: BONdossier Info

9 Configuration du serveur d’accès

## Modifying the neighbor type for specific domains is now# possible. You can treat some domains differently than the the# default neighbor type specified on the ’cache_peer’ line.# Normally it should only be necessary to list domains which# should be treated differently because the default neighbor type# applies for hostnames which do not match domains listed here.##EXAMPLE:# cache_peer parent cache.foo.org 3128 3130# neighbor_type_domain cache.foo.org sibling .com .net# neighbor_type_domain cache.foo.org sibling .au .de

# TAG: icp_query_timeout (msec)# Normally Squid will automatically determine an optimal ICP# query timeout value based on the round-trip-time of recent ICP# queries. If you want to override the value determined by# Squid, set this ’icp_query_timeout’ to a non-zero value. This# value is specified in MILLISECONDS, so, to use a 2-second# timeout (the old default), you would write:## icp_query_timeout 2000##icp_query_timeout 0

# TAG: mcast_icp_query_timeout (msec)# For Multicast peers, Squid regularly sends out ICP "probes" to# count how many other peers are listening on the given multicast# address. This value specifies how long Squid should wait to# count all the replies. The default is 2000 msec, or 2# seconds.##mcast_icp_query_timeout 2000

# TAG: dead_peer_timeout (seconds)# This controls how long Squid waits to declare a peer cache# as "dead." If there are no ICP replies received in this# amount of time, Squid will declare the peer dead and not# expect to receive any further ICP replies. However, it# continues to send ICP queries, and will mark the peer as# alive upon receipt of the first subsequent ICP reply.## This timeout also affects when Squid expects to receive ICP# replies from peers. If more than ’dead_peer’ seconds have# passed since the last ICP reply was received, Squid will not

170

Page 171: BONdossier Info

9 Configuration du serveur d’accès

# expect to receive an ICP reply on the next query. Thus, if# your time between requests is greater than this timeout, you# will see a lot of requests sent DIRECT to origin servers# instead of to your parents.##dead_peer_timeout 10 seconds

# TAG: hierarchy_stoplist# A list of words which, if found in a URL, cause the object to# be handled directly by this cache. In other words, use this# to not query neighbor caches for certain objects. You may# list this option multiple times.## The default is to directly fetch URLs containing ’cgi-bin’ or ’?’.##hierarchy_stoplist cgi-bin ?

# TAG: no_cache# A list of ACL elements which, if matched, cause the reply to# immediately removed from the cache. In other words, use this# to force certain objects to never be cached.## You must use the word ’DENY’ to indicate the ACL names which should# NOT be cached.## There is no default. We recommend you uncomment the following# two lines.##acl QUERY urlpath_regex cgi-bin \?#no_cache deny QUERY

# OPTIONS WHICH AFFECT THE CACHE SIZE# -----------------------------------------------------------------------------

# TAG: cache_mem (bytes)# NOTE: THIS PARAMETER DOES NOT SPECIFY THE MAXIMUM PROCESS# SIZE. IT PLACES A LIMIT ON ONE ASPECT OF SQUID’S MEMORY# USAGE. SQUID USES MEMORY FOR OTHER THINGS AS WELL.# YOUR PROCESS WILL PROBABLY BECOME TWICE OR THREE TIMES# BIGGER THAN THE VALUE YOU PUT HERE## ’cache_mem’ specifies the ideal amount of memory to be used# for:# * In-Transit objects

171

Page 172: BONdossier Info

9 Configuration du serveur d’accès

# * Hot Objects# * Negative-Cached objects## Data for these objects are stored in 4 KB blocks. This# parameter specifies the ideal upper limit on the total size of# 4 KB blocks allocated. In-Transit objects take the highest# priority.## In-transit objects have priority over the others. When# additional space is needed for incoming data, negative-cached# and hot objects will be released. In other words, the# negative-cached and hot objects will fill up any unused space# not needed for in-transit objects.## If circumstances require, this limit will be exceeded.# Specifically, if your incoming request rate requires more than# ’cache_mem’ of memory to hold in-transit objects, Squid will# exceed this limit to satisfy the new requests. When the load# decreases, blocks will be freed until the high-water mark is# reached. Thereafter, blocks will be used to store hot# objects.## The values of cache_mem_low and cache_mem_high (below) can be# used to tune the use of the memory pool. When the high mark is# reached, in-transit and hot objects will be released to clear# space. When an object transfer is completed, it will remain in# memory only if the current memory usage is below the low water# mark.## The default is 8 Megabytes.#cache_mem 8 MB

# TAG: cache_swap_low (percent, 0-100)# TAG: cache_swap_high (percent, 0-100)# The low- and high-water marks for cache LRU replacement. LRU# replacement begins when the high-water mark is reached and ends# when enough objects have been removed and the low-water mark is# reached. Defaults are 90% and 95%. If you have a large cache, 5%# could be hundreds of MB. If this is the case you may wish to# set these numbers closer together.#cache_swap_low 90cache_swap_high 95

172

Page 173: BONdossier Info

9 Configuration du serveur d’accès

# TAG: maximum_object_size (bytes)# Objects larger than this size will NOT be saved on disk. The# value is specified in kilobytes, and the default is 4MB. If# you wish to get a high BYTES hit ratio, you should probably# increase this (one 32 MB object hit counts for 3200 10KB# hits). If you wish to increase speed more than your want to# save bandwidth you should leave this low.#maximum_object_size 4096 KB

# TAG: ipcache_size (number of entries)# TAG: ipcache_low (percent)# TAG: ipcache_high (percent)# The size, low-, and high-water marks for the IP cache.#ipcache_size 1024ipcache_low 90ipcache_high 95

# TAG: fqdncache_size (number of entries)# Maximum number of FQDN cache entries.fqdncache_size 1024

# LOGFILE PATHNAMES AND CACHE DIRECTORIES# -----------------------------------------------------------------------------

# TAG: cache_dir# Usage:## cache_dir Directory-Name Mbytes Level-1 Level2## You can specify multiple cache_dir lines to spread the# cache among different disk partitions.## ’Directory’ is a top-level directory where cache swap# files will be stored. If you want to use an entire disk# for caching, then this can be the mount-point directory.# The directory must exist and be writable by the Squid# process. Squid will NOT create this directory for you.## If no ’cache_dir’ lines are specified, the following# default will be used: /var/spool/squid.## ’Mbytes’ is the amount of disk space (MB) to use under this

173

Page 174: BONdossier Info

9 Configuration du serveur d’accès

# directory. The default is 100 MB. Change this to suit your# configuration.## ’Level-1’ is the number of first-level subdirectories which# will be created under the ’Directory’. The default is 16.## ’Level-2’ is the number of second-level subdirectories which# will be created under each first-level directory. The default# is 256.#cache_dir /var/spool/squid 100 16 256

# TAG: cache_access_log# Logs the client request activity. Contains an entry for# every HTTP and ICP request received.#cache_access_log /var/log/squid/access.log

# TAG: cache_log# Cache logging file. This is where general information about# your cache’s behaviour goes. You can increase the amount of data# logged to this file with the "debug_options" tag below.#cache_log /var/log/squid/cache.log

# TAG: cache_store_log# Logs the activities of the storage manager. Shows which# objects are ejected from the cache, and which objects are# saved and for how long. To disable, enter "none". There are# not really utilities to analyse this data, so you can safely# disable it.#cache_store_log /var/log/squid/store.log

# TAG: cache_swap_log# Location for the cache "swap.log." This log file holds the# metadata of objects saved on disk. It is used to rebuild the# cache during startup. Normally this file resides in the first# ’cache_dir’ directory, but you may specify an alternate# pathname here. Note you must give a full filename, not just# a directory. Since this is the index for the whole object# list you CANNOT periodically rotate it!## If you have more than one ’cache_dir’, these swap logs will# have names such as:

174

Page 175: BONdossier Info

9 Configuration du serveur d’accès

## cache_swap_log.00# cache_swap_log.01# cache_swap_log.02## The numbered extension (which is added automatically)# corresponds to the order of the ’cache_dir’ lines in this# configuration file. If you change the order of the ’cache_dir’# lines in this file, then these log files will NOT correspond to# the correct ’cache_dir’ entry (unless you manually rename# them). We recommend that you do NOT use this option. It is# better to keep these log files in each ’cache_dir’ directory.##cache_swap_log

# TAG: emulate_httpd_log on|off# The Cache can emulate the log file format which many ’httpd’# programs use. To disable/enable this emulation, set# emulate_httpd_log to ’off’ or ’on’. The default# is to use the native log format since it includes useful# information that Squid-specific log analysers use.#emulate_httpd_log off

# TAG: mime_table# Pathname to Squid’s MIME table. You shouldn’t need to change# this, but the default file contains examples and formatting# information if you do.#mime_table /usr/lib/squid/mime.conf

# TAG: log_mime_hdrs on|off# The Cache can record both the request and the response MIME# headers for each HTTP transaction. The headers are encoded# safely and will appear as two bracketed fields at the end of# the access log (for either the native or httpd-emulated log# formats). To enable this logging set log_mime_hdrs to ’on’.##log_mime_hdrs off

# TAG: useragent_log# If configured with the "--enable-useragent_log" configure# option, Squid will write the User-Agent field from HTTP# requests to the filename specified here. By default# useragent_log is disabled.

175

Page 176: BONdossier Info

9 Configuration du serveur d’accès

##useragent_log none

# TAG: pid_filename# A filename to write the process-id to. To disable, enter "none".#pid_filename /var/run/squid.pid

# TAG: debug_options# Logging options are set as section,level where each source file# is assigned a unique section. Lower levels result in less# output, Full debugging (level 9) can result in a very large# log file, so be careful. The magic word "ALL" sets debugging# levels for all sections. We recommend normally running with# "ALL,1".##debug_options ALL,1

# TAG: log_fqdn on|off# Turn this on if you wish to log fully qualified domain names# in the access.log. To do this Squid does a DNS lookup of all# IP’s connecting to it. This can (in some situations) increase# latency, which makes your cache seem slower for interactive# browsing.##log_fqdn off

# TAG: client_netmask# A netmask for client addresses in logfiles and cachemgr output.# Change this to protect the privacy of your cache clients.# A netmask of 255.255.255.0 will log all IP’s in that range with# the last digit set to ’0’.##client_netmask 255.255.255.255

# OPTIONS FOR EXTERNAL SUPPORT PROGRAMS# -----------------------------------------------------------------------------

# TAG: ftp_user# If you want the anonymous login password to be more informative# (and enable the use of picky ftp servers), set this to something# resonable for your domain, like [email protected]## The reason why this is domainless by default is that the

176

Page 177: BONdossier Info

9 Configuration du serveur d’accès

# request can be made on the behalf of a user in any domain,# depending on how the cache is used.# Some ftp server also validate that the email address is valid# (for example perl.com).#ftp_user squid@

# TAG: ftp_list_width# Sets the width of ftp listings. This should be set to fit in# the width of a standard browser. Setting this too small# can cut off long filenames when browsing ftp sites.#ftp_list_width 32

# TAG: cache_dns_program# Specify the location of the executable for dnslookup process.##cache_dns_program /usr/lib/squid/dnsserver

# TAG: dns_children# The number of processes spawn to service DNS name lookups.# For heavily loaded caches on large servers, you should# probably increase this value to at least 10. The maximum# is 32. The default is 5.##dns_children 5

# TAG: dns_defnames on|off# Normally the ’dnsserver’ disables the RES_DEFNAMES resolver# option (see res_init(3)). This prevents caches in a hierarchy# from interpreting single-component hostnames locally. To allow# dnsserver to handle single-component names, enable this# option.##dns_defnames off

# TAG: dns_nameservers# Use this if you want to specify a list of DNS name servers# (IP addresses) to use instead of those given in your# /etc/resolv.conf file.## Example: dns_nameservers 10.0.0.1 192.172.0.4##dns_nameservers none

177

Page 178: BONdossier Info

9 Configuration du serveur d’accès

# TAG: unlinkd_program# Specify the location of the executable for file deletion process.# This isn’t needed if you are using async-io since it’s handled by# a thread.##unlinkd_program /usr/lib/squid/unlinkd

# TAG: pinger_program# Specify the location of the executable for the pinger process.# This is only useful if you configured Squid (during compliation)# with the ’--enable-icmp’ option.##pinger_program /usr/lib/squid/pinger

# TAG: redirect_program# Specify the location of the executable for the URL redirector.# Since they can perform almost any function there isn’t one included.# See the Release-Notes for information on how to write one.# By default, a redirector is not used.#redirect_program /usr/bin/squidGuard -c /etc/squidGuard.conf

# TAG: redirect_children# The number of redirector processes to spawn. If you start# too few Squid will have to wait for them to process a backlog of# URLs, slowing it down. If you start too many they will use RAM# and other system resources.#redirect_children 10

# TAG: redirect_rewrites_host_header# By default Squid rewrites any Host: header in redirected requests.# If you are running a accelerator then this may not be a wanted effect# of a redirector.redirect_rewrites_host_header on

# TAG: authenticate_program# Specify the command for the external authenticator. Such a# program reads a line containing "username password" and replies# "OK" or "ERR" in an endless loop. If you use an authenticator,# make sure you have 1 acl of type proxy_auth. By default, the# authenticator_program is not used.## If you want to use the traditional proxy authentication,# jump over to the ../auth_modules/NCSA directory and

178

Page 179: BONdossier Info

9 Configuration du serveur d’accès

# type:# % make# % make install## Then, set this line to something like## authenticate_program /usr/bin/ncsa_auth /usr/etc/passwd##authenticate_program none

# TAG: authenticate_children# The number of authenticator processes to spawn (default 5). If you# start too few Squid will have to wait for them to process a backlog# of usercode/password verifications, slowing it down. When password# verifications are done via a (slow) network you are likely to need# lots of authenticator processes.##authenticate_children 5

# TAG: authenticate_ttl# The time a checked username/password combination remains cached# (default 3600). If a wrong password is given for a cached user,# the user gets removed from the username/password cache forcing# a revalidation.##authenticate_ttl 3600

# OPTIONS FOR TUNING THE CACHE# -----------------------------------------------------------------------------

# TAG: wais_relay_host# TAG: wais_relay_port# Relay WAIS request to host (1st arg) at port (2 arg).##wais_relay_host localhost#wais_relay_port 8000

# TAG: request_size (KB)# Maximum allowed request size in kilobytes. If people are using# POST to upload files, then set this to the largest acceptable# filesize plus a few extra kbytes.##request_size 100 KB

179

Page 180: BONdossier Info

9 Configuration du serveur d’accès

# TAG: refresh_pattern# usage: refresh_pattern [-i] regex min percent max [options]## By default, regular expressions are CASE-SENSITIVE. To make# them case-insensitive, use the -i option.## min and max are specified in MINUTES.# percent is an integer number.## options: override-expire# override-lastmod# reload-into-ims# ignore-reload## override-expire enforces min age even if the server# sent a Expires: header. Doing this VIOLATES the HTTP# standard. Enabling this feature could make you liable# for problems which it causes.## override-lastmod enforces min age even on objects# that was modified recently.## reload-into-ims changes client no-cache or ‘‘reload’’# to If-Modified-Since requests. Doing this VIOLATES the# HTTP standard. Enabling this feature could make you# liable for problems which it causes.## ignore-reload ignores a client no-cache or ‘‘reload’’# header. Doing this VIOLATES the HTTP standard. Enabling# this feature could make you liable for problems which# it causes.## Please see the file doc/Release-Notes-1.1.txt for a full# description of Squid’s refresh algorithm. Basically a# cached object is: (the order is changed from 1.1.X)## FRESH if expires < now, else STALE# STALE if age > max# FRESH if lm-factor < percent, else STALE# FRESH if age < min# else STALE## The refresh_pattern lines are checked in the order listed here.# The first entry which matches is used. If none of the entries# match, then the default will be used.

180

Page 181: BONdossier Info

9 Configuration du serveur d’accès

##Default:#refresh_pattern ^ftp: 1440 20% 10080#refresh_pattern ^gopher: 1440 0% 1440#refresh_pattern . 0 20% 4320

# TAG: reference_age# As a part of normal operation, Squid performs Least Recently# Used removal of cached objects. The LRU age for removal is# computed dynamically, based on the amount of disk space in# use. The dynamic value can be seen in the Cache Manager ’info’# output.## The ’reference_age’ parameter defines the maximum LRU age. For# example, setting reference_age to ’1 week’ will cause objects# to be removed if they have not been accessed for a week or# more. The default value is one month.## Specify a number here, followed by units of time. For example:# 1 week# 3.5 days# 4 months# 2.2 hours#reference_age 1 days

# TAG: quick_abort_min (KB)# TAG: quick_abort_max (KB)# TAG: quick_abort_pct (percent)# The cache can be configured to continue downloading aborted# requests. This may be undesirable on slow (e.g. SLIP) links# and/or very busy caches. Impatient users may tie up file# descriptors and bandwidth by repeatedly requesting and# immediately aborting downloads.## When the user aborts a request, Squid will check the# quick_abort values to the amount of data transfered until# then.## If the transfer has less than ’quick_abort_min’ KB remaining,# it will finish the retrieval. Setting ’quick_abort_min’ to -1# will disable the quick_abort feature.## If the transfer has more than ’quick_abort_max’ KB remaining,# it will abort the retrieval.

181

Page 182: BONdossier Info

9 Configuration du serveur d’accès

## If more than ’quick_abort_pct’ of the transfer has completed,# it will finish the retrieval.#quick_abort_min 16 KBquick_abort_max 16 KBquick_abort_pct 95

# TAG: negative_ttl time-units# Time-to-Live (TTL) for failed requests. Certain types of# failures (such as "connection refused" and "404 Not Found") are# negatively-cached for a configurable amount of time. The# default is 5 minutes. Note that this is different from# negative caching of DNS lookups.##negative_ttl 5 minutes

# TAG: positive_dns_ttl time-units# Time-to-Live (TTL) for positive caching of successful DNS lookups.# Default is 6 hours (360 minutes). If you want to minimize the# use of Squid’s ipcache, set this to 1, not 0.##positive_dns_ttl 6 hours

# TAG: negative_dns_ttl time-units# Time-to-Live (TTL) for negative caching of failed DNS lookups.##negative_dns_ttl 5 minutes

# TAG: range_offset_limit (bytes)# Sets a upper limit on how far into the the file a Range request# may be to cause Squid to prefetch the whole file. If beyond this# limit then Squid forwards the Range request as it is and the result# is NOT cached.## This is to stop a far ahead range request (lets say start at 17MB)# from making Squid fetch the whole object up to that point before# sending anything to the client.## A value of -1 causes Squid to always fetch the object from the# beginning so that it may cache the result. (2.0 style)## A value of 0 causes Squid to never fetch more than the client# client requested. (default)#

182

Page 183: BONdossier Info

9 Configuration du serveur d’accès

#range_offset_limit 0 KB

# TIMEOUTS# -----------------------------------------------------------------------------

# TAG: connect_timeout time-units# Some systems (notably Linux) can not be relied upon to properly# time out connect(2) requests. Therefore the Squid process# enforces its own timeout on server connections. This parameter# specifies how long to wait for the connect to complete. The# default is two minutes (120 seconds).#connect_timeout 60 seconds

# TAG: siteselect_timeout time-units# For URN to multiple URL’s URL selection##siteselect_timeout 4 seconds

# TAG: read_timeout time-units# The read_timeout is applied on server-side connections. After# each successful read(), the timeout will be extended by this# amount. If no data is read again after this amount of time,# the request is aborted and logged with ERR_READ_TIMEOUT. The# default is 15 minutes.##read_timeout 15 minutes

# TAG: request_timeout# How long to wait for an HTTP request after connection# establishment. For persistent connections, wait this long# after the previous request completes.#request_timeout 30 seconds

# TAG: client_lifetime time-units# The maximum amount of time that a client (browser) is allowed to# remain connected to the cache process. This protects the Cache# from having alot of sockets (and hence file descriptors) tied up# in a CLOSE_WAIT state from remote clients that go away without# properly shutting down (either because of a network failure or# because of a poor client implementation). The default is one# day, 1440 minutes.#

183

Page 184: BONdossier Info

9 Configuration du serveur d’accès

# NOTE: The default value is intended to be much larger than any# client would ever need to be connected to your cache. You# should probably change client_lifetime only as a last resort.# If you seem to have many client connections tying up# filedescriptors, we recommend first tuning the read_timeout,# request_timeout, pconn_timeout and quick_abort values.##client_lifetime 1 day

# TAG: half_closed_clients# Some clients may shutdown the sending side of their TCP# connections, while leaving their receiving sides open. Sometimes,# Squid can not tell the difference between a half-closed and a# fully-closed TCP connection. By default, half-closed client# connections are kept open until a read(2) or write(2) on the# socket returns an error. Change this option to ’off’ and Squid# will immediately close client connections when read(2) returns# "no more data to read."##half_closed_clients on

# TAG: pconn_timeout# Timeout for idle persistent connections to servers and other# proxies.pconn_timeout 120 seconds

# TAG: ident_timeout# Maximum time to wait for IDENT requests. If this is too high,# and you enabled ’ident_lookup’, then you might be susceptible# to denial-of-service by having many ident requests going at# once.## This option may be disabled by using --disable-ident with# the configure script.#ident_timeout 10 seconds

# TAG: shutdown_lifetime time-units# When SIGTERM or SIGHUP is received, the cache is put into# "shutdown pending" mode until all active sockets are closed.# This value is the lifetime to set for all open descriptors# during shutdown mode. Any active clients after this many# seconds will receive a ’timeout’ message.##shutdown_lifetime 30 seconds

184

Page 185: BONdossier Info

9 Configuration du serveur d’accès

# ACCESS CONTROLS# -----------------------------------------------------------------------------

# TAG: acl# Defining an Access List## acl aclname acltype string1 ...# acl aclname acltype "file" ...## when using "file", the file should contain one item per line## acltype is one of src dst srcdomain dstdomain url_pattern# urlpath_pattern time port proto method browser user## By default, regular expressions are CASE-SENSITIVE. To make# them case-insensitive, use the -i option.## acl aclname src ip-address/netmask ... (clients IP address)# acl aclname src addr1-addr2/netmask ... (range of addresses)# acl aclname dst ip-address/netmask ... (URL host’s IP address)# acl aclname myip ip-address/netmask ... (local socket IP address)## acl aclname srcdomain foo.com ... # reverse lookup, client IP# acl aclname dstdomain foo.com ... # Destination server from URL# acl aclname srcdom_regex [-i] xxx ... # regex matching client name# acl aclname dstdom_regex [-i] xxx ... # regex matching server# # For dstdomain and dstdom_regex a reverse lookup is tried if a IP# # based URL is used. The name "none" is used if the reverse lookup# # fails.## acl aclname time [day-abbrevs] [h1:m1-h2:m2]# day-abbrevs:# S - Sunday# M - Monday# T - Tuesday# W - Wednesday# H - Thursday# F - Friday# A - Saturday# h1:m1 must be less than h2:m2# acl aclname url_regex [-i] ^http:// ... # regex matching on whole URL# acl aclname urlpath_regex [-i] \.gif$ ... # regex matching on URL path# acl aclname port 80 70 21 ...# acl aclname port 0-1024 ... # ranges allowed

185

Page 186: BONdossier Info

9 Configuration du serveur d’accès

# acl aclname proto HTTP FTP ...# acl aclname method GET POST ...# acl aclname browser [-i] regexp# # pattern match on User-Agent header# acl aclname ident username ...# # string match on ident output.# # use REQUIRED to accept any non-null ident.# acl aclname src_as number ...# acl aclname dst_as number ...# # Except for access control, AS numbers can be used for# # routing of requests to specific caches. Here’s an# # example for routing all requests for AS#1241 and only# # those to mycache.mydomain.net:# # acl asexample dst_as 1241# # cache_peer_access mycache.mydomain.net allow asexample# # cache_peer_access mycache_mydomain.net deny all## acl aclname proxy_auth username ...# # list of valid usernames# # use REQUIRED to accept any valid username.# ## # NOTE: when a Proxy-Authentication header is sent but it is not# # needed during ACL checking the username is NOT logged# # in access.log.# ## # NOTE: proxy_auth requires a EXTERNAL authentication program# # to check username/password combinations (see# # authenticate_program).# ## # WARNING: proxy_auth can’t be used in a transparent proxy. It# # collides with any authentication done by origin servers. It may# # seem like it works at first, but it doesn’t.## acl aclname snmp_community string ...# # A community string to limit access to your SNMP Agent# # Example:# ## # acl snmppublic snmp_community public###Examples:#acl myexample dst_as 1241#acl password proxy_auth REQUIRED##Defaults:

186

Page 187: BONdossier Info

9 Configuration du serveur d’accès

acl all src 0.0.0.0/0.0.0.0acl manager proto cache_objectacl localhost src 127.0.0.1/255.255.255.255acl SSL_ports port 443 563acl Safe_ports port 80 21 443 563 70 210 1025-65535acl purge method PURGEacl CONNECT method CONNECT

## Nous définissons un groupe pour nos clients#acl clients 10.0.1.0/255.255.255.0

# TAG: http_access# Allowing or Denying access based on defined access lists## Access to the HTTP port:# http_access allow|deny [!]aclname ...## Access to the ICP port:# icp_access allow|deny [!]aclname ...## NOTE on default values:## If there are no "access" lines present, the default is to allow# the request.## If none of the "access" lines cause a match, the default is the# opposite of the last line in the list. If the last line was# deny, then the default is allow. Conversely, if the last line# is allow, the default will be deny. For these reasons, it is a# good idea to have an "deny all" or "allow all" entry at the end# of your access lists to avoid potential confusion.##Default configuration:http_access allow manager localhosthttp_access deny managerhttp_access allow purge localhosthttp_access deny purgehttp_access deny !Safe_portshttp_access deny CONNECT !SSL_ports## INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS#http_access deny all

187

Page 188: BONdossier Info

9 Configuration du serveur d’accès

## Nous accordons l’accès HTTP à nos postes clients#http_access allow clients

# TAG: icp_access# Reply to all ICP queries we receive#icp_access deny all

# TAG: miss_access# Use to force your neighbors to use you as a sibling instead of# a parent. For example:## acl localclients src 172.16.0.0/16# miss_access allow localclients# miss_access deny !localclients## This means that only your local clients are allowed to fetch# MISSES and all other clients can only fetch HITS.## By default, allow all clients who passed the http_access rules# to fetch MISSES from us.miss_access allow all

# TAG: cache_peer_access# Similar to ’cache_peer_domain’ but provides more flexibility by# using ACL elements.## cache_peer_access cache-host allow|deny [!]aclname ...## The syntax is identical to ’http_access’ and the other lists of# ACL elements. See the comments for ’http_access’ below, or# the Squid FAQ (http://squid.nlanr.net/Squid/FAQ/FAQ-10.html).

# TAG: proxy_auth_realm# Specifies the realm name which is to be reported to the client for# proxy authentication (part of the text the user will see when# prompted their username and password).##proxy_auth_realm Squid proxy-caching web server

# TAG: ident_lookup_access# A list of ACL elements which, if matched, cause an ident

188

Page 189: BONdossier Info

9 Configuration du serveur d’accès

# (RFC 931) lookup to be performed for this request. For# example, you might choose to always perform ident lookups# for your main multi-user Unix boxes, but not for your Macs# and PCs. By default, ident lookups are not performed for# any requests.## To enable ident lookups for specific client addresses, you# can follow this example:## acl ident_aware_hosts src 198.168.1.0/255.255.255.0# ident_lookup_access allow ident_aware_hosts# ident_lookup_access deny all## This option may be disabled by using --disable-ident with# the configure script.#ident_lookup_access deny all

# ADMINISTRATIVE PARAMETERS# -----------------------------------------------------------------------------

# TAG: cache_mgr# Email-address of local cache manager who will receive# mail if the cache dies. The default is "webmaster."#cache_mgr root

# TAG: cache_effective_user# TAG: cache_effective_group## If the cache is run as root, it will change its effective/real# UID/GID to the UID/GID specified below. The default is to# change to UID to nobody and GID to nogroup.## If Squid is not started as root, the default is to keep the# current UID/GID. Note that if Squid is not started as root then# you cannot set http_port to a value lower than 1024.#cache_effective_user proxycache_effective_group proxy

# TAG: visible_hostname# If you want to present a special hostname in error messages, etc,# then define this. Otherwise, the return value of gethostname()# will be used. If you have multiple caches in a cluster and

189

Page 190: BONdossier Info

9 Configuration du serveur d’accès

# get errors about IP-forwarding you must set them to have individual# names with this setting.##visible_hostname www-cache.foo.org

# TAG: unique_hostname# If you want to have multiple machines with the same# ’visible_hostname’ then you must give each machine a different# ’unique_hostname’ so that forwarding loops can be detected.##unique_hostname www-cache1.foo.org

# OPTIONS FOR THE CACHE REGISTRATION SERVICE# -----------------------------------------------------------------------------## This section contains parameters for the (optional) cache# announcement service. This service is provided to help# cache administrators locate one another in order to join or# create cache hierarchies.## An ’announcement’ message is sent (via UDP) to the registration# service by Squid. By default, the annoucement message is NOT# SENT unless you enable it with ’announce_period’ below.## The announcement message includes your hostname, plus the# following information from this configuration file:## http_port# icp_port# cache_mgr## All current information is processed regularly and made# available on the Web at http://ircache.nlanr.net/Cache/Tracker/.

# TAG: announce_period# This is how frequently to send cache announcements. The# default is ‘0’ which disables sending the announcement# messages.## To enable announcing your cache, just uncomment the line# below.##announce_period 1 day

190

Page 191: BONdossier Info

9 Configuration du serveur d’accès

# TAG: announce_host# TAG: announce_file# TAG: announce_port# announce_host and announce_port set the hostname and port# number where the registration message will be sent.## Hostname will default to ’tracker.ircache.net’ and port will# default default to 3131. If the ’filename’ argument is given,# the contents of that file will be included in the announce# message.##announce_host tracker.ircache.net#announce_port 3131

# HTTPD-ACCELERATOR OPTIONS# -----------------------------------------------------------------------------

# TAG: httpd_accel_host# TAG: httpd_accel_port# If you want to run Squid as an httpd accelerator, define the# host name and port number where the real HTTP server is.## If you want virtual host support then specify the hostname# as "virtual".## NOTE: enabling httpd_accel_host disables proxy-caching and# ICP. If you want these features enabled also, then set# the ’httpd_accel_with_proxy’ option.##httpd_accel_host hostname#httpd_accel_port port

# TAG: httpd_accel_with_proxy on|off# If you want to use Squid as both a local httpd accelerator# and as a proxy, change this to ’on’.##httpd_accel_with_proxy off

# TAG: httpd_accel_uses_host_header on|off# HTTP/1.1 requests include a Host: header which is basically the# hostname from the URL. Squid can be an accelerator for# different HTTP servers by looking at this header. However,# Squid does NOT check the value of the Host header, so it opens# a big security hole. We recommend that this option remain

191

Page 192: BONdossier Info

9 Configuration du serveur d’accès

# disabled unless you are sure of what you are doing.## However, you will need to enable this option if you run Squid# as a transparent proxy. Otherwise, virtual servers which# require the Host: header will not be properly cached.#httpd_accel_uses_host_header off

# MISCELLANEOUS# -----------------------------------------------------------------------------

# TAG: dns_testnames# The DNS tests exit as soon as the first site is successfully looked up## If you want to disable DNS tests, do not comment out or delete this# list. Instead use the -D command line option##dns_testnames netscape.com internic.net nlanr.net microsoft.com

# TAG: logfile_rotate# Specifies the number of logfile rotations to make when you# type ’squid -k rotate’. The default is 10, which will rotate# with extensions 0 through 9. Setting logfile_rotate to 0 will# disable the rotation, but the logfiles are still closed and# re-opened. This will enable you to rename the logfiles# yourself just before sending the rotate signal.## Note, the ’squid -k rotate’ command normally sends a USR1# signal to the running squid process. In certain situations# (e.g. on Linux with Async I/O), USR1 is used for other# purposes, so -k rotate uses another signal. It is best to get# in the habit of using ’squid -k rotate’ instead of ’kill -USR1# <pid>’.##logfile_rotate 0

# TAG: append_domain# Appends local domain name to hostnames without any dots in# them. append_domain must begin with a period.#append_domain .etablissement.org

## Remplacez "etablissement.org" par votre domaine.#

192

Page 193: BONdossier Info

9 Configuration du serveur d’accès

# TAG: tcp_recv_bufsize (bytes)# Size of receive buffer to set for TCP sockets. Probably just# as easy to change your kernel’s default. Set to zero to use# the default buffer size.##tcp_recv_bufsize 0 bytes

# TAG: err_html_text# HTML text to include in error messages. Make this a "mailto"# URL to your admin address, or maybe just a link to your# organizations Web page.## To include this in your error messages, you must rewrite# the error template files (found in the "errors" directory).# Wherever you want the ’err_html_text’ line to appear,# insert a %L tag in the error template file.#err_html_text

# TAG: deny_info# Usage: deny_info err_page_name acl# Example: deny_info ERR_CUSTOM_ACCESS_DENIED bad_guys## This can be used to return a ERR_ page for requests which# do not pass the ’http_access’ rules. A single ACL will cause# the http_access check to fail. If a ’deny_info’ line exists# for that ACL then Squid returns a corresponding error page.## You may use ERR_ pages that come with Squid or create your own pages# and put them into the configured errors/ directory.

# TAG: memory_pools on|off# If set, Squid will keep pools of allocated (but unused) memory# available for future use. If memory is a premium on your# system and you believe your malloc library outperforms Squid# routines, disable this.##memory_pools on

# TAG: memory_pools_limit (bytes)# Used only with memory_pools on:# memory_pools_limit 50 MB## If set to a non-zero value, Squid will keep at most the specified# limit of allocated (but unused) memory in memory pools. All free()

193

Page 194: BONdossier Info

9 Configuration du serveur d’accès

# requests that exceed this limit will be handled by your malloc# library. Squid does not pre-allocate any memory, just safe-keeps# objects that otherwise would be free()d. Thus, it is safe to set# memory_pools_limit to a reasonably high value even if your# configuration will use less memory.## If not set (default) or set to zero, Squid will keep all memory it# can. That is, there will be no limit on the total amount of memory# used for safe-keeping.## To disable memory allocation optimization, do not set# memory_pools_limit to 0. Set memory_pools to "off" instead.## An overhead for maintaining memory pools is not taken into account# when the limit is checked. This overhead is close to four bytes per# object kept. However, pools may actually _save_ memory because of# reduced memory thrashing in your malloc library.

# TAG: forwarded_for on|off# If set, Squid will include your system’s IP address or name# in the HTTP requests it forwards. By default it looks like# this:## X-Forwarded-For: 192.1.2.3## If you disable this, it will appear as## X-Forwarded-For: unknown##forwarded_for on

# TAG: log_icp_queries on|off# If set, ICP queries are logged to access.log. You may wish# do disable this if your ICP load is VERY high to speed things# up or to simplify log analysis.##log_icp_queries on

# TAG: icp_hit_stale on|off# If you want to return ICP_HIT for stale cache objects, set this# option to ’on’. If you have sibling relationships with caches# in other administrative domains, this should be ’off’. If you only# have sibling relationships with caches under your control, then# it is probably okay to set this to ’on’.#

194

Page 195: BONdossier Info

9 Configuration du serveur d’accès

#icp_hit_stale off

# TAG: minimum_direct_hops# If using the ICMP pinging stuff, do direct fetches for sites# which are no more than this many hops away.##minimum_direct_hops 4

# TAG: cachemgr_passwd# Specify passwords for cachemgr operations.## Usage: cachemgr_passwd password action action ...## Some valid actions are (see cache manager menu for a full list):# 5min# 60min# asndb# authenticator# cbdata# client_list# comm_incoming# config *# counters# delay# digest_stats# dns# events# filedescriptors# fqdncache# histograms# http_headers# info# io# ipcache# mem# menu# netdb# non_peers# objects# pconn# peer_select# redirector# refresh# server_list# shutdown *

195

Page 196: BONdossier Info

9 Configuration du serveur d’accès

# store_digest# storedir# utilization# via_headers# vm_objects## * Indicates actions which will not be performed without a# valid password, others can be performed if not listed here.## To disable an action, set the password to "disable".# To allow performing an action without a password, set the# password to "none".## Use the keyword "all" to set the same password for all actions.##cachemgr_passwd secret shutdown#cachemgr_passwd lesssssssecret info stats/objects#cachemgr_passwd disable all

# TAG: store_avg_object_size (kbytes)# Average object size, used to estimate number of objects your# cache can hold. See doc/Release-Notes-1.1.txt. The default is# 13 KB.##store_avg_object_size 13 KB

# TAG: store_objects_per_bucket# Target number of objects per bucket in the store hash table.# Lowering this value increases the total number of buckets and# also the storage maintenance rate. The default is 20.##store_objects_per_bucket 50

# TAG: client_db on|off# If you want to disable collecting per-client statistics, then# turn off client_db here.##client_db on

# TAG: netdb_low# TAG: netdb_high# The low and high water marks for the ICMP measurement# database. These are counts, not percents. The defaults are# 900 and 1000. When the high water mark is reached, database# entries will be deleted until the low mark is reached.

196

Page 197: BONdossier Info

9 Configuration du serveur d’accès

##netdb_low 900#netdb_high 1000

# TAG: netdb_ping_period# The minimum period for measuring a site. There will be at# least this much delay between successive pings to the same# network. The default is five minutes.##netdb_ping_period 5 minutes

# TAG: query_icmp on|off# If you want to ask your peers to include ICMP data in their ICP# replies, enable this option.## If your peer has configured Squid (during compilation) with# ’--enable-icmp’ then that peer will send ICMP pings to origin server# sites of the URLs it receives. If you enable this option then the# ICP replies from that peer will include the ICMP data (if available).# Then, when choosing a parent cache, Squid will choose the parent with# the minimal RTT to the origin server. When this happens, the# hierarchy field of the access.log will be# "CLOSEST_PARENT_MISS". This option is off by default.##query_icmp off

# TAG: test_reachability on|off# When this is ’on’, ICP MISS replies will be ICP_MISS_NOFETCH# instead of ICP_MISS if the target host is NOT in the ICMP# database, or has a zero RTT.##test_reachability off

# TAG: buffered_logs on|off# Some log files (cache.log, useragent.log) are written with# stdio functions, and as such they can be buffered or# unbuffered. By default they will be unbuffered. Buffering them# can speed up the writing slightly (though you are unlikely to# need to worry).#buffered_logs off

# TAG: reload_into_ims on|off# When you enable this option, client no-cache or ‘‘reload’’# requests will be changed to If-Modified-Since requests.# Doing this VIOLATES the HTTP standard. Enabling this

197

Page 198: BONdossier Info

9 Configuration du serveur d’accès

# feature could make you liable for problems which it# causes.## see also refresh_pattern for a more selective approach.## This option may be disabled by using --disable-http-violations# with the configure script.#reload_into_ims off

# TAG: always_direct# Usage: always_direct allow|deny [!]aclname ...## Here you can use ACL elements to specify requests which should# ALWAYS be forwarded directly to origin servers. For example,# to always directly forward requests for local servers use# something like:## acl local-servers dstdomain my.domain.net# always_direct allow local-servers## To always forward FTP requests directly, use## acl FTP proto FTP# always_direct allow FTP## NOTE: There is a similar, but opposite option named# ’never_direct’. You need to be aware that "always_direct deny# foo" is NOT the same thing as "never_direct allow foo". You# may need to use a deny rule to exclude a more-specific case of# some other rule. Example:## acl local-external dstdomain external.foo.net# acl local-servers dstdomain foo.net# always_direct deny local-external# always_direct allow local-servers## This option replaces some v1.1 options such as local_domain# and local_ip.

# TAG: never_direct# Usage: never_direct allow|deny [!]aclname ...## never_direct is the opposite of always_direct. Please read# the description for always_direct if you have not already.#

198

Page 199: BONdossier Info

9 Configuration du serveur d’accès

# With ’never_direct’ you can use ACL elements to specify# requests which should NEVER be forwarded directly to origin# servers. For example, to force the use of a proxy for all# requests, except those in your local domain use something like:## acl local-servers dstdomain foo.net# acl all src 0.0.0.0/0.0.0.0# never_direct deny local-servers# never_direct allow all## or if squid is inside a firewall and there is local intranet# servers inside the firewall then use something like:## acl local-intranet dstdomain foo.net# acl local-external dstdomain external.foo.net# always_direct deny local-external# always_direct allow local-intranet# never_direct allow all## This option replaces some v1.1 options such as inside_firewall# and firewall_ip.

# TAG: anonymize_headers# Usage: anonymize_headers allow|deny header_name ...## This option replaces the old ’http_anonymizer’ option with# something that is much more configurable. You may now# specify exactly which headers are to be allowed, or which# are to be removed from outgoing requests.## There are two methods of using this option. You may either# allow specific headers (thus denying all others), or you# may deny specific headers (thus allowing all others).## For example, to achieve the same behaviour as the old# ’http_anonymizer standard’ option, you should use:## anonymize_headers deny From Referer Server# anonymize_headers deny User-Agent WWW-Authenticate Link## Or, to reproduce the old ’http_anonymizer paranoid’ feature# you should use:## anonymize_headers allow Allow Authorization Cache-Control# anonymize_headers allow Content-Encoding Content-Length

199

Page 200: BONdossier Info

9 Configuration du serveur d’accès

# anonymize_headers allow Content-Type Date Expires Host# anonymize_headers allow If-Modified-Since Last-Modified# anonymize_headers allow Location Pragma Accept Charset# anonymize_headers allow Accept-Encoding Accept-Language# anonymize_headers allow Content-Language Mime-Version# anonymize_headers allow Retry-After Title Connection# anonymize_headers allow Proxy-Connection## NOTE: You can not mix "allow" and "deny". All ’anonymize_headers’# lines must have the same second argument.## By default, all headers are allowed (no anonymizing is# performed).##anonymize_headers

# TAG: fake_user_agent# If you filter the User-Agent header with ’anonymize_headers’ it# may cause some Web servers to refuse your request. Use this to# fake one up. For example:## fake_user_agent Nutscrape/1.0 (CP/M; 8-bit)# (credit to Paul Southworth [email protected] for this one!)##fake_user_agent none

# TAG: icon_directory# Where the icons are stored. These are normally kept in# /usr/lib/squid/icons

# TAG: error_directory# If you wish to create your own versions of the default# (English) error files, either to customise them to suit your# language or company copy the template english files to another# directory and point this tag at them.

# TAG: minimum_retry_timeout (seconds)# This specifies the minimum connect timeout, for when the# connect timeout is reduced to compensate for the availability# of multiple IP addresses.## When a connection to a host is initiated, and that host has# several IP addresses, the default connection timeout is reduced# by dividing it by the number of addresses. So, a site with 15# addresses would then have a timeout of 8 seconds for each

200

Page 201: BONdossier Info

9 Configuration du serveur d’accès

# address attempted. To avoid having the timeout reduced to the# point where even a working host would not have a chance to# respond, this setting is provided. The default, and the# minimum value, is five seconds, and the maximum value is sixty# seconds, or half of connect_timeout, whichever is greater and# less than connect_timeout.##minimum_retry_timeout 5 seconds

# TAG: maximum_single_addr_tries# This sets the maximum number of connection attempts for a# host that only has one address (for multiple-address hosts,# each address is tried once).## The default value is three tries, the (not recommended)# maximum is 255 tries. A warning message will be generated# if it is set to a value greater than ten.##maximum_single_addr_tries 3

# TAG: snmp_port# Squid can now serve statistics and status information via SNMP.# By default it listens to port 3401 on the machine. If you don’t# wish to use SNMP, set this to ’-1’.## NOTE: SNMP support requires use the --enable-snmp configure# command line option.#snmp_port -1

# TAG: forward_snmpd_port# This configures whether we should be forwarding SNMP requests# to another snmpd. The reason for putting this piece of# functionality into Squid was to enable access to the system’s# installed snmpd with minimal changes. This option is turned# off by default, check with your /etc/services for your system’s# snmp port (usually 161). We do not use getservbyname() to# allow you to set Squid into port 161 and your system’s snmpd to# another port by changing /etc/services.## WARNING: Because of Squid acting as a proxy snmpd for system# you have to do security checks on THIS snmpd for all objects.# Check your snmp_config_file.#forward_snmpd_port 0

# TAG: snmp_access

201

Page 202: BONdossier Info

9 Configuration du serveur d’accès

# Allowing or denying access to the SNMP port.## All access to the agent is denied by default.# usage:## snmp_access allow|deny [!]aclname ...##Example:#snmp_access allow public localhost#snmp_access deny all

# TAG: snmp_incoming_address# TAG: snmp_outgoing_address# Just like ’udp_incoming_address’ above, but for the SNMP port.## snmp_incoming_address is used for the SNMP socket receiving# messages from SNMP agents.# snmp_outgoing_address is used for SNMP packets returned to SNMP# agents.## The default behaviour is to not bind to any specific address.## NOTE, snmp_incoming_address and snmp_outgoing_address can not have# the same value since they both use port 3130.##snmp_incoming_address 0.0.0.0#snmp_outgoing_address 0.0.0.0

# TAG: as_whois_server# WHOIS server to query for AS numbers. NOTE: AS numbers are# queried only when Squid starts up, not for every request.

# DELAY POOL PARAMETERS (all require DELAY_POOLS compilation option)# -----------------------------------------------------------------------------

# TAG: delay_pools# This represents the number of delay pools to be used. For example,# if you have one class 2 delay pool and one class 3 delays pool, you# have a total of 2 delay pools.## To enable this option, you must use --enable-delay-pools with the# configure script.#delay_pools 0

202

Page 203: BONdossier Info

9 Configuration du serveur d’accès

# TAG: delay_class# This defines the class of each delay pool. There must be exactly one# delay_class line for each delay pool. For example, to define two# delay pools, one of class 2 and one of class 3, the settings above# and here would be:##delay_pools 2 # 2 delay pools#delay_class 1 2 # pool 1 is a class 2 pool#delay_class 2 3 # pool 2 is a class 3 pool## The delay pool classes are:## class 1 Everything is limited by a single aggregate# bucket.## class 2 Everything is limited by a single aggregate# bucket as well as an "individual" bucket chosen# from bits 25 through 32 of the IP address.## class 3 Everything is limited by a single aggregate# bucket as well as a "network" bucket chosen# from bits 17 through 24 of the IP address and a# "individual" bucket chosen from bits 17 through# 32 of the IP address.## NOTE: If an IP address is a.b.c.d# -> bits 25 through 32 are "d"# -> bits 17 through 24 are "c"# -> bits 17 through 32 are "c * 256 + d"

# TAG: delay_access# This is used to determine which delay pool a request falls into.# The first matched delay pool is always used, ie, if a request falls# into delay pool number one, no more delay are checked, otherwise the# rest are checked in order of their delay pool number until they have# all been checked. For example, if you want some_big_clients in delay# pool 1 and lotsa_little_clients in delay pool 2:##delay_access 1 allow some_big_clients#delay_access 1 deny all#delay_access 2 allow lotsa_little_clients#delay_access 2 deny all

# TAG: delay_parameters# This defines the parameters for a delay pool. Each delay pool has

203

Page 204: BONdossier Info

9 Configuration du serveur d’accès

# a number of "buckets" associated with it, as explained in the# description of delay_class. For a class 1 delay pool, the syntax is:##delay_parameters pool aggregate## For a class 2 delay pool:##delay_parameters pool aggregate individual## For a class 3 delay pool:##delay_parameters pool aggregate network individual## The variables here are:## pool a pool number - ie, a number between 1 and the# number specified in delay_pools as used in# delay_class lines.## aggregate the "delay parameters" for the aggregate bucket# (class 1, 2, 3).## individual the "delay parameters" for the individual# buckets (class 2, 3).## network the "delay parameters" for the network buckets# (class 3).## A pair of delay parameters is written restore/maximum, where restore is# the number of bytes (not bits - modem and network speeds are usually# quoted in bits) per second placed into the bucket, and maximum is the# maximum number of bytes which can be in the bucket at any time.## For example, if delay pool number 1 is a class 2 delay pool as in the# above example, and is being used to strictly limit each host to 64kbps# (plus overheads), with no overall limit, the line is:##delay_parameters 1 -1/-1 8000/8000## Note that the figure -1 is used to represent "unlimited".## And, if delay pool number 2 is a class 3 delay pool as in the above# example, and you want to limit it to a total of 256kbps (strict limit)# with each 8-bit network permitted 64kbps (strict limit) and each# individual host permitted 4800bps with a bucket maximum size of 64kb

204

Page 205: BONdossier Info

9 Configuration du serveur d’accès

# to permit a decent web page to be downloaded at a decent speed# (if the network is not being limited due to overuse) but slow down# large downloads more significantly:##delay_parameters 2 32000/32000 8000/8000 600/64000## There must be one delay_parameters line for each delay pool.

# TAG: delay_initial_bucket_level (percent, 0-100)# The initial bucket percentage is used to determine how much is put# in each bucket when squid starts, is reconfigured, or first notices# a host accessing it (in class 2 and class 3, individual hosts and# networks only have buckets associated with them once they have been# "seen" by squid).##delay_initial_bucket_level 50

# TAG: incoming_icp_average# TAG: incoming_http_average# TAG: min_icp_poll_cnt# TAG: min_http_poll_cnt# Heavy voodoo here. I can’t even believe you are reading this.# Are you crazy? Don’t even think about adjusting these unless# you understand the algorithms in comm_select.c first!##incoming_icp_average 6#incoming_http_average 4#min_icp_poll_cnt 8#min_http_poll_cnt 8

# TAG: max_open_disk_fds# TAG: offline_mode# Enable this option and Squid will never try to validate cached# objects.

# TAG: uri_whitespace# What to do with requests that have whitespace characters in the# URI. Options:## deny: The request is denied. The user receives an "Invalid# Request" message.# allow: The request is allowed and the URI is not changed. The# whitespace characters remain in the URI. Note the# whitespace is passed to redirector processes if they# are in use.

205

Page 206: BONdossier Info

9 Configuration du serveur d’accès

# encode: The request is allowed and the whitespace characters are# encoded according to RFC1738. This could be considered# a violation of the HTTP/1.1# RFC because proxies are not allowed to rewrite URI’s.# chop: The request is allowed and the URI is chopped at the# first whitespace. This might also be considered a# violation.#uri_whitespace deny

# TAG: broken_posts# A list of ACL elements which, if matched, causes Squid to send# a extra CRLF pair after the body of a PUT/POST request.## Some HTTP servers has broken implementations of PUT/POST,# and rely on a extra CRLF pair sent by some WWW clients.## Quote from RFC 2068 section 4.1 on this matter:## Note: certain buggy HTTP/1.0 client implementations generate an# extra CRLF’s after a POST request. To restate what is explicitly# forbidden by the BNF, an HTTP/1.1 client must not preface or follow# a request with an extra CRLF.##acl buggy_server url_regex ^http://....#broken_posts allow buggy_server

# TAG: mcast_miss_addr# If you enable this option, every "cache miss" URL will# be sent out on the specified multicast address.## Do not enable this option unless you are are absolutely# certain you understand what you are doing.

# TAG: mcast_miss_port# This is the port number to be used in conjuction with# ’mcast_miss_addr’.

# TAG: mcast_miss_encode_key# The URLs that are sent in the multicast miss stream are# encrypted. This is the encryption key.

# TAG: prefer_direct# By default, if the ICP, HTCP, Cache Digest, etc. techniques# do not yield a parent cache, Squid gives higher preference# to forwarding the request direct to origin servers, rather

206

Page 207: BONdossier Info

9 Configuration du serveur d’accès

# than selecting a parent cache anyway.## If you want Squid to give higher precedence to a parent# cache, instead of going direct, then turn this option off.#prefer_direct on

# TAG: strip_query_terms# By default, Squid strips query terms from requested URLs before# logging. This protects your user’s privacy.#strip_query_terms on

# TAG: coredump_dir# By default Squid leaves core files in the first cache_dir# directory. If you set ’coredump_dir’ to a directory# that exists, Squid will chdir() to that directory at startup# and coredump files will be left there.

9.8.2 Installation de SquidGuard

Vous avez dû vous en rendre compte lors de l’installation, SquidGuard n’est pas inclus dansDebian GNU/Linux 2.2 «Potato». En revanche, SquidGuard fait son apparition dans la versionsuivante, pour le moment en développement, à savoir Debian GNU/Linux «Woody».

Lors de la rédaction de ce dossier, les deux versions, «Potato» et «Woody», ont encore uncontenu très proche, permettant de compiler un paquetage de l’une sur l’autre. C’est donc ceque j’ai fait. Vous trouverez sur le CD joint un fichier nommé «squidguard_1.1.4-6.1_i386.deb».

Installez ce paquetage par la commande :

dpkg -i squidguard_1.1.4-6.1_i386.deb

Dpkg va installer le paquetage. S’il y avait des problèmes de dépendances, installez les paque-tages idoines. Pour tout autre problème, contactez-moi.

9.8.3 /etc/squidGuard.conf

C’est le fichier de configuration de SquidGuard. Il contient absolument toutes les règles ettoutes les options dont nous avons besoin. Nous utiliserons ceci :

## Configuration file for SquidGuard# /etc/squidGuard.conf#

dbhome /var/lib/squidguard/dblogdir /var/log/squid

#

207

Page 208: BONdossier Info

9 Configuration du serveur d’accès

# Règles Temporelles# Définition de règles en fonction des heures et des jours# Rappelez-vous que les machines sont réglées en heure GMT...# Nous réglons ici pour la période en heure d’été, celle-ci étant# à GMT + 2 heures.## abbréviation des jours :# s = sun, m = mon, t =tue, w = wed, h = thu, f = fri, a = sat

time heures_de_cours weekly mtwhf 05:00 - 17:00 # de 07h00 à 19h00weekly a 05:00 - 11:00 # de 07h00 à 13h00 le samedi

## Déclaration des groupes#

src clients ip 10.0.1.0/255.255.255.0within heures_de_cours

src admin ip 10.0.1.0/255.255.255.0user root vos_utilisateurs_d_administration

# ici, remplacez "vos_utilisateurs_d_administration" par les logins des# différents administrateurs, qui doivent pouvoir accéder à l’extérieur# en permanence.

## Groupes de destination#

dest ok

dest local

dest adulte domainlist adulte/domains

208

Page 209: BONdossier Info

9 Configuration du serveur d’accès

urllist adulte/urlsexpressionlist adulte/expressionsredirect http://fremen/erreur_proxy/adulte.htmllog adulte.log

dest warez domainlist warez/domainsurllist warez/urlsredirect http://fremen/erreur_proxy/warez.htmllog warez.log

dest pub domainlist pub/domainsurllist pub/urlsredirect http://fremen/erreur_proxy/pub.html

dest cracking domainlist cracking/domainsurllist cracking/urllistredirect http://fremen/erreur_proxy/cracking.htmllog cracking.log

## Règles de réécriture d’adresses# Le filtrage se fait réellement ici, au moyen des définitions précédentes.#

acl clients pass !adulte !warez !pub !cracking all

admin pass !adulte !pub !warez all

# En effet, certains sites dit de "cracking" peuvent être utiles à un# administrateur.

default

209

Page 210: BONdossier Info

9 Configuration du serveur d’accès

pass noneredirect http://fremen.etablissement.org/erreur_proxy/unknown.html

9.8.4 Pages de redirection

Les pages de redirection sont à installer sur le serveur Web (c’est-à-dire la machine appelée«fremen» dans ce dossier), dans le répertoire /var/www/erreur_proxy/. Les images sont à placerdans le répertoire /var/www/images/.

Ci-dessous, un exemple pour chacune des pages. Les pages se trouvent sur le CD-ROMjoint.

Nous utiliserons des pages XHTML 1.0 (nouvelle recommandation du W3C7) et les CSS8.Voici le CSS que nous utiliserons (fichier squid.css) :

BODY background: black;color: white;font-family: arial, verdana, helvetica, times;font-size: 12pt

A:link background: black;color: #00C0FF

A:visited background: black;color: #00A0FF

H1 background: black;color: white;font-family: arial, verdana, helvetica, times;font-size: 24pt;font-weight: bold;text-align: center

B background: black;color: white;font-family: arial, verdana, helvetica, times;font-size: 12pt;

9.8.4.1 Sites pour adultes

Fichier adulte.html :

<?xml version="1.0" encoding="iso-8859-1"?>

7World Wide Web Consortium : organisme chargé de définir les standards du Web.8Cascading Style Sheet : feuilles de style. Leur utilisation permet de réduire la taille des pages HTML en suppri-

mant tous les éléments de mise en forme.

210

Page 211: BONdossier Info

9 Configuration du serveur d’accès

<!DOCTYPE htmlPUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head><meta http-equiv="Content-type" content=’text/html; charset="ISO-8859-1"’ /><link rel="stylesheet" type="text/css" href="squid.css" />

<title>Désolé... Site indisponible...</title>

</head>

<body><h1>SquidGuard</h1><blockquote>

<p>Vous avez tenté d’accéder à un site présentant un contenususcpetible de choquer certaines personnes.</p>

<p>Soucieux de respecter la loi, votre administrateur a mis en place unsystème de filtrage vous empêchant d’accéder à un tel site.</p>

<p>Cette tentative d’accès a été enregistrée et consignée dans unfichier-journal.</p>

<p>Nous vous rappelons le contenu de l’article 227-24 du Nouveau CodePénal :<br /><br /><b>Article 227-24</b><br /><br />Le fait soit de fabriquer, de transporter, de diffuser par quelque<br />moyen que ce soit et quel qu’en soit le support un message à<br />caractère violent ou <b>pornographique</b> ou de nature à porter gravement<br />atteinte à la dignité humaine, soit de faire commerce d’un tel<br />message, est puni de <b>trois ans d’emprisonnement</b> et de <b>500.000 F<br />

d’amende</b> lorsque ce message est susceptible d’être vu ou perçu par<br />un mineur.<br />Lorsque les infractions prévues au présent article sont soumises par<br />la voie de la presse écrite ou audiovisuelle, les dispositions<br />particulières des lois qui régissent ces matières sont applicables<br />en ce qui concerne la détermination des personnes responsables.<br /><br />Merci de votre compréhension.

</p><p>

<object>

211

Page 212: BONdossier Info

9 Configuration du serveur d’accès

<hr /></object>Contacter l’<a href="mailto:[email protected]">administrateur</a>-- This document validates as <a href="http://validator.w3.org/check/referer">

XHTML 1.0 Strict</a> &amp; <a href="http://jigsaw.w3.org/css-validator/check/referer">CSS</a> !<object>

<hr /></object>

</p><p>

Ce site utilise le serveur proxy Squid et le redirecteur SquidGuard.</p><table border="0" cellpadding="0" cellspacing="5" width="90%">

<tr><td valign="middle" align="center">

<a href="http://www.apache.org/"><imgsrc="/images/apache_pb.gif"alt="Powered by Apache" /></a>

</td><td valign="middle" align="center">

<a href="http://www.debian.org/"><imgsrc="/images/debian_logo.jpg"alt="Powered by Debian GNU/Linux" /></a>

</td><td valign="middle" align="center">

<a href="http://www.squidguard.org/"><imgsrc="/images/squidguard.gif"alt="Powered by the SquidGuardredirector for Squid" /></a>

</td><td valign="middle" align="center">

<a href="http://www.squid-cache.org/"><imgsrc="/images/squidnow.gif"alt="Powered by Squid" /></a>

</td></tr>

</table></blockquote>

</body></html>

9.8.4.2 Sites proposant des logiciels piratés

Fichier warez.html :

212

Page 213: BONdossier Info

9 Configuration du serveur d’accès

<?xml version="1.0" encoding="iso-8859-1"?>

<!DOCTYPE htmlPUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head><meta http-equiv="Content-type" content=’text/html; charset="ISO-8859-1"’ /><link rel="stylesheet" type="text/css" href="squid.css" />

<title>Désolé... Site indisponible...</title>

</head>

<body><h1>SquidGuard</h1><blockquote>

<p>Vous avez tenté d’accéder à un site proposant des logicielspiratés.</p>

<p>Soucieux de respecter la loi, votre administrateur a mis en place unsystème de filtrage vous empêchant d’accéder à un tel site.</p>

<p>Cette tentative d’accès a été enregistrée et consignée dans unfichier.</p><p>Merci de votre compréhension.</p><p>

<object><hr />

</object>Contacter l’<a href="mailto:[email protected]">administrateur</a> -- This document validates as <a href="http://validator.w3.org/check/referer">

XHTML 1.0 Strict</a> &amp; <a href="http://jigsaw.w3.org/css-validator/check/referer">CSS</a> !<object>

<hr /></object>

</p><p>

Ce site utilise le serveur proxy Squid et le redirecteur SquidGuard.</p><table border="0" cellpadding="0" cellspacing="5" width="90%">

<tr><td valign="middle" align="center">

<a href="http://www.apache.org/"><img src="/images/apache_pb.gif"alt="Powered by Apache" /></a>

</td>

213

Page 214: BONdossier Info

9 Configuration du serveur d’accès

<td valign="middle" align="center"><a href="http://www.debian.org/"><img src="/images/debian_logo.jpg"

alt="Powered by DebianGNU/Linux" /></a>

</td><td valign="middle" align="center">

<a href="http://www.squidguard.org/"><img src="/images/squidguard.gif"alt="Powered by theSquidGuard redirector forSquid" /></a>

</td><td valign="middle" align="center">

<a href="http://www.squid-cache.org/"><img src="/images/squidnow.gif"alt="Powered by Squid" /></a>

</td></tr>

</table></blockquote>

</body></html>

9.8.4.3 Sites proposant divers moyens de piratage

Fichier cracking.html :

<?xml version="1.0" encoding="iso-8859-1"?>

<!DOCTYPE htmlPUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head><meta http-equiv="Content-type" content=’text/html; charset="ISO-8859-1"’ /><link rel="stylesheet" type="text/css" href="squid.css" />

<title>Désolé... Site indisponible...</title>

</head>

<body><h1>SquidGuard</h1><blockquote>

<p>Vous avez tenté d’accéder à un site présentant divers moyens de

214

Page 215: BONdossier Info

9 Configuration du serveur d’accès

pirater du matériel électronique ou informatique, ou fournissant unou plusieurs moyens de s’introduire frauduleusement sur une machinene vous appartenant pas.</p>

<p>Nous vous rappelons que toute <b>tentative</b> d’intrusion dans unsystème informatique tiers est réprimée par la loi.</p>

<p>Soucieux de respecter la loi, votre administrateur a mis en place unsystème de filtrage vous empêchant d’accéder à un tel site.</p>

<p>Cette tentative d’accès a été enregistrée et consignée dans unfichier-journal.</p>

<p>Merci de votre compréhension.</p><p>

<object><hr />

</object>Contacter l’<a href="mailto:[email protected]">administrateur</a> -- This document validates as <a href="http://validator.w3.org/check/referer">

XHTML 1.0 Strict</a> &amp; <a href="http://jigsaw.w3.org/css-validator/check/referer">CSS</a> !<object>

<hr /></object>

</p><p>

Ce site utilise le serveur proxy Squid et le redirecteur SquidGuard.</p><table border="0" cellpadding="0" cellspacing="5" width="90%">

<tr><td valign="middle" align="center">

<a href="http://www.apache.org/"><img src="/images/apache_pb.gif"alt="Powered by Apache" /></a>

</td><td valign="middle" align="center">

<a href="http://www.debian.org/"><img src="/images/debian_logo.jpg"alt="Powered by DebianGNU/Linux" /></a>

</td><td valign="middle" align="center">

<a href="http://www.squidguard.org/"><img src="/images/squidguard.gif"alt="Powered by theSquidGuard redirector forSquid" /></a>

</td><td valign="middle" align="center">

<a href="http://www.squid-cache.org/"><img src="/images/squidnow.gif"alt="Powered by Squid" /></a>

</td></tr>

215

Page 216: BONdossier Info

9 Configuration du serveur d’accès

</table></blockquote>

</body></html>

9.8.4.4 Sites de publicité

Fichier pub.html :

<?xml version="1.0" encoding="iso-8859-1"?>

<!DOCTYPE htmlPUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head><meta http-equiv="Content-type" content=’text/html; charset="ISO-8859-1"’ /><link rel="stylesheet" type="text/css" href="squid.css" />

<title>Désolé... Site indisponible...</title>

</head>

<body><h1>SquidGuard</h1><blockquote>

<p>Vous avez tenté d’accéder à un site fournissant divers moyens de publicité.</p><p>Bien que ceci ne constitue en rien une infraction, certains de ces

sites proposent des publicités qui sont répréhensibles, notammentpar l’article 227-24 du Nouveau Code Pénal.</p>

<p>Soucieux de respecter la loi, et d’économiser les ressources en bandepassante, votre administrateur a mis en place un système defiltrage vous empêchant d’accéder à un tel site.</p>

<p>Cette tentative d’accès a été enregistrée et consignée dans unfichier-journal.</p>

<p>Nous vous rappelons le contenu de l’article 227-24 du Nouveau CodePénal :<br /><br /><b>Article 227-24</b><br />Le fait soit de fabriquer, de transporter, de diffuser par quelque<br />moyen que ce soit et quel qu’en soit le support un message à<br />caractère violent ou <b>pornographique</b> ou de nature à porter gravement<br />

216

Page 217: BONdossier Info

9 Configuration du serveur d’accès

atteinte à la dignité humaine, soit de faire commerce d’un tel<br />message, est puni de <b>trois ans d’emprisonnement</b> et de <b>500.000 F<br />

d’amende</b> lorsque ce message est susceptible d’être vu ou perçu par<br />un mineur.<br />Lorsque les infractions prévues au présent article sont soumises par<br />la voie de la presse écrite ou audiovisuelle, les dispositions<br />particulières des lois qui régissent ces matières sont applicables<br />en ce qui concerne la détermination des personnes responsables.<br /><br />Merci de votre compréhension.

</p><p>

<object><hr />

</object>Contacter l’<a href="mailto:[email protected]">administrateur</a> -- This document validates as <a href="http://validator.w3.org/check/referer">

XHTML 1.0 Strict</a> &amp; <a href="http://jigsaw.w3.org/css-validator/check/referer">CSS</a> !<object>

<hr /></object>

</p><p>

Ce site utilise le serveur proxy Squid et le redirecteur SquidGuard.</p><table border="0" cellpadding="0" cellspacing="5" width="90%">

<tr><td valign="middle" align="center">

<a href="http://www.apache.org/"><img src="/images/apache_pb.gif"alt="Powered by Apache" /></a>

</td><td valign="middle" align="center">

<a href="http://www.debian.org/"><img src="/images/debian_logo.jpg"alt="Powered by DebianGNU/Linux" /></a>

</td><td valign="middle" align="center">

<a href="http://www.squidguard.org/"><img src="/images/squidguard.gif"alt="Powered by theSquidGuard redirector forSquid" /></a>

</td><td valign="middle" align="center">

<a href="http://www.squid-cache.org/"><img src="/images/squidnow.gif"alt="Powered by Squid" /></a>

217

Page 218: BONdossier Info

9 Configuration du serveur d’accès

</td></tr>

</table></blockquote>

</body></html>

9.8.5 Listes noires

Ces listes sont utilisées par SquidGuard pour filtrer l’accès à certains sites.

9.8.5.1 Installation

Récupérez l’archive contenant les listes noires sur le site de SquidGuard9. Décompressez-la,et copiez les différents fichiers vers les emplacements adéquats.

Ici, nous ferons ceci :– copie des fichiers «domains», «domains.db», «urls» et «urls.db» du répertoire ads de l’ar-

chive vers le répertoire /var/lib/squidguard/db/pub– copie des fichiers «domains», «domains.db», «urls» et «urls.db» du répertoire warez de

l’archive vers le répertoire /var/lib/squidguard/db/warez– copie des fichiers «domains», «domains.db», «urls» et «urls.db» du répertoire hacking de

l’archive vers le répertoire /var/lib/squidguard/db/cracking– copie des fichiers «domains», «domains.db», «urls», «urls.db» et «expressions» du réper-

toire porn de l’archive vers le répertoire /var/lib/squidguard/db/adulteLancez la commande :

squidGuard -C all

SquidGuard met à jour ses fichiers, nous sommes prêts à redémarrer Squid.

9.8.5.2 Maintenance

Il faut garder ces fichiers à jour. En effet, ces listes évoluent toutes les semaines.Il est souhaitable de procéder à la mise à jour des listes noires une fois par semaine.Nous pouvons automatiser ceci grâce à cron, ncftp, et à un petit script shell :

#! /bin/bash

echo -e "\n *** Recuperation de l’archive ***"dateecho -e "\n"

cd /rootncftpget ftp://ftp.ost.eltele.no/pub/www/proxy/squidGuard/contrib/blacklists.tar.gz

9http://www.squidguard.org/blacklist/

218

Page 219: BONdossier Info

9 Configuration du serveur d’accès

echo -e "\n *** Decompression de l’archive ***\n"

tar -xvzf blacklists.tar.gz

echo -e "\n *** Copie des fichiers en cours... ***\n"

cd blacklistscp -f ads/urls /var/lib/squidguard/db/pubcp -f ads/urls.db /var/lib/squidguard/db/pubcp -f ads/domains /var/lib/squidguard/db/pubcp -f ads/domains.db /var/lib/squidguard/db/pub

cp -f warez/urls /var/lib/squidguard/db/warezcp -f warez/urls.db /var/lib/squidguard/db/warezcp -f warez/domains /var/lib/squidguard/db/warezcp -f warez/domains.db /var/lib/squidguard/db/warez

cp -f hacking/urls /var/lib/squidguard/db/crackingcp -f hacking/urls.db /var/lib/squidguard/db/crackingcp -f hacking/domains /var/lib/squidguard/db/crackingcp -f hacking/domains.db /var/lib/squidguard/db/cracking

cp -f porn/expressions /var/lib/squidguard/db/adultecp -f porn/urls /var/lib/squidguard/db/adultecp -f porn/urls.db /var/lib/squidguard/db/adultecp -f porn/domains /var/lib/squidguard/db/adultecp -f porn/domains.db /var/lib/squidguard/db/adulte

echo -e "\n *** Copie des fichiers terminee *** \n"

echo -e "\n *** Mise a jour de SquidGuard et nettoyage ***\n"

/usr/bin/squidGuard -C allcd /rootrm -rf blacklistsrm -f blacklists.tar.gz

echo -e "\n *** Mise a jour des listes terminee ***"dateecho -e "\n"

Enregistrez ceci dans un fichier /usr/local/bin/update-sgbl.sh, et rendez ce fichier exécutable.Installez le paquetage ncftp qui nous fournit le logiciel ncftpget.Éditez la crontab de root par le traditionnel crontab -e, et rajoutez la ligne :

30 22 * * 7 /usr/local/bin/update-sgbl.sh

219

Page 220: BONdossier Info

9 Configuration du serveur d’accès

Cron lancera notre script tous les dimanches à 22h30.

9.8.6 Redémarrage de Squid

Nous pouvons maintenant redémarrer Squid :

/etc/init.d/squid start

9.9 Serveur d’impression

9.9.1 Configuration des imprimantes

Raccordez les deux imprimantes sur les deux ports parallèles de la machine.

9.9.2 apsfilter

Pour configurer les imprimantes, nous utiliserons le logiciel apsfilter. C’est un jeu de filtresqui permettent l’utilisation des imprimantes sous divers Unices. La configuration d’apsfilterse fait par le biais du programme apsfilterconfig. Ne pouvant connaître à l’avance les modèlesd’imprimantes, je pense que c’est la meilleure solution.

Il se peut que vos modèles d’imprimantes ne soient pas supportés par aspfilter. Dans cecas-là, tentez votre chance avec magicfilter.

9.9.3 /etc/printcap

Ce fichier est le fichier de configuration de lpd10. C’est ici que nous déclarons les impri-mantes, leurs noms, les filtres à utiliser pour l’envoi de données, etc. . .

Aspfilterconfig se charge de créer les entrées nécessaires aux imprimantes. Trois entrées sontcrées, correspondant aux filtres PostScript, Raw et Auto. Vous pouvez supprimer les entréesconcernant PostScript et Raw.

Au final, vous devriez obtenir un fichier s’apparentant à celui-ci :

# /etc/printcap: printer capability database. See printcap(5).# You can use the filter entries df, tf, cf, gf etc. for# your own filters. See /etc/filter.ps, /etc/filter.pcl and# the printcap(5) manual page for further details.

# rlp|Remote printer entry:\# :lp=:\# :rm=remotehost:\# :rp=remoteprinter:\# :sd=/var/spool/lpd/remote:\# :mx#0:\# :sh:

10Line Printer Daemon : daemon chargé de la gestion des impressions.

220

Page 221: BONdossier Info

9 Configuration du serveur d’accès

# LABEL apsfilter# apsfilter setup Thu Nov 2 14:44:03 CET 2000##

lphpl3:\:lp=/dev/lp0:\:sd=/var/spool/lpd/lphpl3:\:lf=/var/spool/lpd/lphpl3/log:\:af=/var/spool/lpd/lphpl3/acct:\:if=/var/lib/apsfilter/filter/aps-ljet3-a4-auto-mono:\:mx#0:\:sh:

# LABEL apsfilter# apsfilter setup Thu Nov 2 14:44:03 CET 2000##

lpstylus:\:lp=/dev/lp1:\:sd=/var/spool/lpd/lpstylus:\:lf=/var/spool/lpd/lpstylus/log:\:af=/var/spool/lpd/lpstylus/acct:\:if=/var/lib/apsfilter/filter/aps-uniprint-a4-auto-color:\:mx#0:\:sh:

Configurez donc les deux imprimantes avec des noms équivoques ; par exemple lplaser etlpcouleur sont de bons noms pour une imprimante laser et une imprimante jet d’encre couleur.Il est possible de donner plusieurs noms à une imprimante, comme dans l’exemple ci-dessus.Ici, les deux imprimantes correspondent à une Epson Stylus Color II et une Hewlett PackardLaserJet III. La mention «lp» signifie que l’imprimante est locale. En aucun cas cette mentionn’est obligatoire dans le nom de l’imprimante.

9.9.4 Configuration de l’accès

Créez un fichier /etc/hosts.lpd contenant ceci :

# /etc/hosts.lpd: list of hosts that are allowed to use the printing# services of this machine. See lpd(8).#

client1

221

Page 222: BONdossier Info

9 Configuration du serveur d’accès

client2client3client4client5fremen

Nous listons ici toutes les machines qui ont le droit d’utiliser le service d’impression. Rem-placez «client[1-5]» par les noms de différentes machines clientes.

9.9.5 Redémarrage de lpd

Nous devons redémarrer le daemon lpd pour qu’il prenne en compte les modifications :

/etc/init.d/lpd restart

9.10 NTP, synchronisation de l’heure

Comme pour notre serveur, cette machine va se mettre à l’heure grâce à NTP.Lors de l’installation du paquetage ntp, vous devrez spécifier un serveur NTP. Vous trouve-

rez une liste des serveurs français à l’adresse http://www.cru.fr/NTP/serveurs\protect\T1\textunderscorefrancais.html . Pour ne pas encombrer les serveurs primaires, utili-sez s’il vous plaît un serveur secondaire, comme ntp.loria.fr, par exemple.

9.11 SNMPD, surveillance réseau

Le fichier de configuration utilisé est le même que celui de notre serveur (section 8.16, page122). Une fois placé dans /etc/snmp, relancez snmpd :

/etc/init.d/snmpd stop/etc/init.d/snmpd start

Une fois que snmpd est relancé avec sa nouvelle configuration, vous pouvez décommenter lesentrées concernant sardaukar dans le fichier /etc/mrtg.cfg de fremen.

222

Page 223: BONdossier Info

10 Configuration des machines clientes

Nos cinq postes clients étant des machines strictement identiques, je vous conseille de confi-gurer une machine, puis de recopier la configuration sur les autres. Vous gagnerez de ce faitbeaucoup de temps.

N’oubliez pas de faire les modifications propres à chaque machine (noms des machines,adresses IP, etc. . .). Je ne présente plus certains des fichiers de configuration, maintenant connus,notamment sur la partie résolution de noms.

10.1 Compilation du noyau

Comme pour nos autres machines, nous avons besoin de certaines fonctionnalités qui nesont pas incluses dans le noyau standard.

Commencez par récupérer les sources du dernier noyau 2.2.x (le noyau 2.4.x est supportépar Debian GNU/Linux 2.2.r3, vous pouvez utiliser un kernel 2.4 si vous le souhaitez) surftp.fr.kernel.org, par exemple. Placez l’archive dans le répertoire /usr/src. Vérifiez qu’il n’y a pasde répertoire nommé «linux», s’il y en a un, renommez-le. Maintenant, décompressez l’archivecontenant les sources du noyau.

Un nouveau répertoire «linux» est apparu, celui-ci contient les sources du noyau. Allez dansce répertoire, et lancez la commande (le paquetage libncurses-dev doit être installé) :

make menuconfig

Après la compilation de quelques fichiers, une interface graphique apparaît. Nous allons main-tenant configurer le noyau Linux. En dehors des composants requis pour la bonne marche dela machine, veillez plus particulièrement aux options suivantes :

– utilisation des pilotes expérimentaux– optimisation pour la famille de processeurs utilisée par la machine– utilisation des modules noyau– nous mettons le pilote de la carte Ethernet dans le noyau et non pas en module– le support pour les «UNIX98 PTYs» ; nous laissons la valeur par défaut (256)– dans la section «systèmes de fichiers», nous incluons dans le noyau le support pour le

système «/proc» ainsi que celui pour le système «/dev/pts», sans oublier d’inclure le sup-port pour le «deuxième système de fichiers étendu (ext2fs)».

– dans la même section, nous plaçons en modules les supports pour les systèmes de fichiersFAT, VFAT, MSDOS, UMSDOS, ISO9660

– dans la section «systèmes de fichiers réseau», nous plaçons en module le support pour lesystème de fichiers NFS

– nous faisons en sorte de pouvoir exploiter la carte son installée dans la machine

223

Page 224: BONdossier Info

10 Configuration des machines clientes

– configurez également le support AGP et DRM/DRI si vous souhaitez utiliser XFree86version 4.x.x (ce qui sera le cas si les cartes vidéo sont récentes)

– dans la section «kernel hacking», activez l’option «Magic SysRQ key». Cette option per-met de communiquer avec le noyau lors d’un plantage sévère de la machine afin d’ef-fectuer les opérations de dernière minute (synchronisation des partitions montées, etc. . .)avant de redémarrer la machine. Lisez la documentation concernant cette fonctionnalitédans le fichier Documentation/sysrq.txt.

Maintenant, sauvegardez la configuration et quittez l’interface. Puis compilez et installez lenoyau. Configurez LILO de manière à pouvoir démarrer sur l’un ou l’autre des deux noyauxprésents, c’est-à-dire le noyau d’origine et celui que nous venons de compiler. Le fichier deconfiguration de LILO doit ressembler à celui-ci :

# /etc/lilo.conf - See: ‘lilo(8)’ and ‘lilo.conf(5)’,# --------------- ‘install-mbr(8)’, ‘/usr/share/doc/lilo/’,# and ‘/usr/share/doc/mbr/’.

# +---------------------------------------------------------------+# | !! Reminder !! |# | |# | Don’t forget to run ‘lilo’ after you make changes to this |# | conffile, ‘/boot/bootmess.txt’, or install a new kernel. The |# | computer will most likely fail to boot if a kernel-image |# | post-install script or you don’t remember to run ‘lilo’. |# | |# +---------------------------------------------------------------+

# Specifies the boot device. This is where Lilo installs its boot# block. It can be either a partition, or the raw device, in which# case it installs in the MBR, and will overwrite the current MBR.#boot=/dev/hda

# Specifies the device that should be mounted as root. (‘/’)#root=/dev/hda5

# Enable map compaction:# Tries to merge read requests for adjacent sectors into a single# read request. This drastically reduces load time and keeps the# map smaller. Using ‘compact’ is especially recommended when# booting from a floppy disk. It is disabled here by default# because it doesn’t always work.## compact

224

Page 225: BONdossier Info

10 Configuration des machines clientes

# Installs the specified file as the new boot sector#install=/boot/boot.b

# Specifies the location of the map file#map=/boot/map

# You can set a password here, and uncomment the ‘restricted’ lines# in the image definitions below to make it so that a password must# be typed to boot anything but a default configuration. If a# command line is given, other than one specified by an ‘append’# statement in ‘lilo.conf’, the password will be required, but a# standard default boot will not require one.## This will, for instance, prevent anyone with access to the# console from booting with something like ‘Linux init=/bin/sh’,# and thus becoming ‘root’ without proper authorization.## Note that if you really need this type of security, you will# likely also want to use ‘install-mbr’ to reconfigure the MBR# program, as well as set up your BIOS to disallow booting from# removable disk or CD-ROM, then put a password on getting into the# BIOS configuration as well. Please RTFM ‘install-mbr(8)’.## password=tatercounter2000

# Specifies the number of deciseconds (0.1 seconds) LILO should# wait before booting the first image.#delay=100 # laissons-nous 10 secondes pour choisir le noyau

# You can put a customized boot message up if you like. If you use# ‘prompt’, and this computer may need to reboot unattended, you# must specify a ‘timeout’, or it will sit there forever waiting# for a keypress. ‘single-key’ goes with the ‘alias’ lines in the# ‘image’ configurations below. eg: You can press ‘1’ to boot# ‘Linux’, ‘2’ to boot ‘LinuxOLD’, if you uncomment the ‘alias’.## message=/boot/bootmess.txt# prompt# single-key# delay=100# timeout=100

225

Page 226: BONdossier Info

10 Configuration des machines clientes

# Specifies the VGA text mode at boot time. (normal, extended, ask, <mode>)## vga=ask# vga=9#vga=normal

# Kernel command line options that apply to all installed images go# here. See: The ‘boot-prompt-HOWO’ and ‘kernel-parameters.txt’ in# the Linux kernel ‘Documentation’ directory.## append=""

# Boot up Linux by default.#default=Linux

image=/boot/vmlinuz-2.2.16 # le nouveau noyau, ici version 2.2.16label=Linuxread-only

# restricted# alias=1

image=/boot/vmlinuz-2.2.14 # le nouveau noyau, ici version 2.2.14label=linux-origread-only

# optional# restricted# alias=2

# If you have another OS on this machine to boot, you can uncomment the# following lines, changing the device name on the ‘other’ line to# where your other OS’ partition is.## other=/dev/hda4# label=HURD# restricted# alias=3

Ce fichier est en fait le même que précédemment. Il s’agit du fichier par défaut livré avecDebian GNU/Linux. Seules les sections concernant les noyaux disponibles ont été modifiées,ainsi que les options concernant les partitions.

Lancez /sbin/lilo de manière à mettre à jour le secteur de boot de la machine. Si tout se passebien, vous pouvez essayer de redémarrer la machine. Si LILO vous dit que votre noyau esttrop gros, soit vous avez inclus beaucoup trop de choses dedans, auquel cas vous pouvez le

226

Page 227: BONdossier Info

10 Configuration des machines clientes

reconfigurer et faire la chasse aux options inutiles, soit vous pouvez utiliser «make bzImage»pour le compiler.

Si la machine redémarre sans problèmes, bravo, sinon recommencez, vous avez certaine-ment oublié quelque chose.

Une fois la machine redémarrée avec son nouveau noyau, et si tout se passe bien, sauvegar-dez le fichier /usr/src/linux/.config (notez le «.», ce qui signifie que c’est un fichier caché) dansle répertoire personnel de root (/root), sous un nom évocateur. Vous pourrez charger ce fichierpour configurer le prochain kernel, ce qui vous évitera de devoir saisir à nouveau la configura-tion.

10.2 Interface réseau

Les machines clientes ne disposent que d’une seule interface réseau. La seule spécificitéréside dans la spécification de la passerelle.

# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)

# The loopback interface

iface lo inet loopback

# The first network card# This entry was created during the Debian installation

iface eth0 inet statichostname client1.etablissement.orgaddress 10.1.0.11netmask 255.255.255.0network 10.1.0.0broadcast 10.1.0.255gateway 10.1.0.2

N’oubliez pas de modifier le nom de la machine et l’adresse IP qui correspond.

10.3 Configuration de la résolution de noms

10.3.1 /etc/resolv.conf

Nous utiliserons ceci :

domain etablissement.orgsearch etablissement.orgnameserver 10.0.1.2nameserver 10.0.1.1

227

Page 228: BONdossier Info

10 Configuration des machines clientes

Vous remarquerez que les serveurs DNS sont inversés : le serveur secondaire est listé enpremier, afin de décharger le serveur primaire de nos requêtes internes.

10.3.2 /etc/nsswitch.conf

Nous utiliserons le même fichier que précédemment :

# /etc/nsswitch.conf## Example configuration of GNU Name Service Switch functionality.# If you have the ‘glibc-doc’ and ‘info’ packages installed, try:# ‘info libc "Name Service Switch"’ for information about this file.

passwd: compatgroup: compatshadow: compat

hosts: files dnsnetworks: files

protocols: db filesservices: db filesethers: db filesrpc: db files

netgroup: nis

10.3.3 /etc/host.conf

Nous utiliserons là aussi la même configuration que précédemment :

order hosts,bindmulti on

10.3.4 /etc/hosts

Nous utiliserons ceci, sur le poste nommé «client1» (une fois encore, vous pouvez choisirun autre nom) :

# The following lines are desirable for IPv6 capable hosts# (added automatically by netbase upgrade)

::1 ip6-localhost ip6-loopbackfe00::0 ip6-localnet

228

Page 229: BONdossier Info

10 Configuration des machines clientes

ff00::0 ip6-mcastprefixff02::1 ip6-allnodesff02::2 ip6-allroutersff02::3 ip6-allhosts

127.0.0.1 client1.etablissement.org client1,localhost10.1.0.1 fremen.etablissement.org fremen10.1.0.2 sardaukar.etablissement.org sardaukar10.1.0.11 client1.etablissement.org client110.1.0.12 client2.etablissement.org client210.1.0.13 client3.etablissement.org client310.1.0.14 client4.etablissement.org client410.1.0.15 client5.etablissement.org client5

Notez que ce fichier varie selon le nom de la machine. La ligne commençant par «127.0.0.1»doit être modifiée sur chaque machine.

10.4 Sendmail, serveur SMTP

Sur ces postes, le seul but de Sendmail est d’envoyer le courrier à notre serveur principalafin que celui-ci le fasse parvenir à l’extérieur (ou à un autre utilisateur).

Nous commençons par arrêter Sendmail :

/etc/init.d/sendmail stop

10.4.1 /etc/mail/sendmail.cf

Nous utilisons là encore le kit M4 fourni avec Sendmail.Rendez-vous donc dans le répertoire /usr/share/sendmail/sendmail.cf, puis ouvrez un fichier

nommé sendmail.mc.Nous utiliserons cette configuration, très similaire à celle de notre MX secondaire :

include(‘./m4/cf.m4’)dnldnldnl Définition de certains éléments spécifiques au systèmednl (emplacement de certains fichiers, ...)dnlOSTYPE(‘debian’)dnldnldnl Nous définissons certains emplacementsdnlFEATURE(‘use_cw_file’,‘/etc/mail/local-host-names’)dnlFEATURE(‘use_ct_file’,‘/etc/mail/sendmail.ct’)dnlFEATURE(‘mailertable’,‘hash -o /etc/mail/mailertable’)dnlFEATURE(‘domaintable’,‘hash -o /etc/mail/domaintable’)dnl

229

Page 230: BONdossier Info

10 Configuration des machines clientes

FEATURE(‘genericstable’,‘hash -o /etc/mail/genericstable’)dnlFEATURE(‘virtusertable’,‘hash -o /etc/mail/virtusertable’)dnlFEATURE(‘access_db’,‘hash -o /etc/mail/access’)dnldefine(‘STATUS_FILE’, ‘/etc/mail/trusted-users’)dnldefine(‘LOCAL_MAILER_PATH’, ‘/usr/bin/procmail’)dnldefine(‘confCW_FILE’,‘/etc/mail/local-host-names’)dnldefine(‘confCT_FILE’,‘/etc/mail/sendmail.ct’)dnldefine(‘confSTATUS_FILE’, ‘/etc/mail/statistics’)dnldnldnl Nous rajoutons toujours le domaine en fin d’adressednl (ex.: To: root devient To: [email protected])dnlFEATURE(‘always_add_domain’)dnldnldnl Nous définissons les mailer (protocoles) à utiliserdnl Ainsi que l’utilisation de procmaildnlFEATURE(‘local_procmail’)dnlMAILER(‘local’)dnlMAILER(‘smtp’)dnlMAILER(‘procmail’)dnldnldnl Permet de rediriger une adresse en "adresse.REDIRECT"dnlFEATURE(‘redirect’)dnldnldnl Protection anti-spamdnlFEATURE(‘dnsbl’,‘blackholes.mail-abuse.org’,‘ Mail from $&client_addr rejected; see http://mail-abuse.org/cgi-bin/look’)dnlFEATURE(‘dnsbl’,‘dialups.mail-abuse.org’,‘ Mail from dial-up rejected; see http://mail-abuse.org/dul/enduser.htm’)dnlFEATURE(‘no_default_msa’)dnlFEATURE(‘rbl’)dnldnldnldnl Taille maximum d’un message, en octets. Ici, 10 Mo.dnldefine(‘confMAX_MESSAGE_SIZE’,‘10485760’)dnldnldefine(‘confAUTO_REBUILD’)dnldnldnl Message affiché lors de la connexiondnldefine(‘confSMTP_LOGIN_MSG’,

230

Page 231: BONdossier Info

10 Configuration des machines clientes

‘client1.etablissement.org Sendmail 8.9.3 Have a nice day !’)dnldnldnl Les durées après lesquelles les messages d’erreur sont envoyésdnldefine(‘confTO_QUEUEWARN’,‘12h’)dnldefine(‘confTO_QUEUEWARN_NORMAL’,‘12h’)dnldefine(‘confTO_QUEUEWARN_URGENT’,‘12h’)dnldefine(‘confTO_QUEUEWARN_NONURGENT’,‘12h’)dnldnldnl Nous interdisont certaines commandes, et nous plaçonsdnl des avertissements de sécurité dans certains casdnldefine(‘confPRIVACY_FLAGS’, ‘‘authwarnings,novrfy,noexpn,noetrn’’)dnldnldnl Emplacement du fichier .forwarddnldefine(‘confFORWARD_PATH’, ‘$z/.forward.$w:$z/.forward+$h:$z/.forward’)dnldnldnl La personne qui doit recevoir les messages d’erreursdnldefine(‘confCOPY_ERRORS_TO’, ‘postmaster’)dnldnldnl Nombre maximum de destinataires pour un maildnldefine(‘confMAX_RCPTS_PER_MESSAGE’, ‘20’)dnldnldnl Nous masquons les noms de machinesdnlMASQUERADE_AS(etablissement.org)dnlMASQUERADE_DOMAIN(*.etablissement.org)dnlFEATURE(‘masquerade_entire_domain’)dnldnldnl Nous relayons les machines listées dans /etc/mail/accessdnlFEATURE(‘relay_hosts_only’)dnldnldnl Nous envoyons les mails considérés comme locaux à notrednl serveur principaldnldefine(‘LOCAL_RELAY’,‘esmtp:[10.0.1.1]’)dnldnldnl Nous définissons une machine à qui envoyer tous les mailsdnldefine(‘MAIL_HUB’,‘esmtp:[10.0.1.1]’)dnldnl

231

Page 232: BONdossier Info

10 Configuration des machines clientes

dnl Nous définissons quelle machine doit recevoir le courrierdnl du domainednldefine(‘SMART_HOST’,‘esmtp:[10.0.1.1]’)dnldnl

N’oubliez pas de remplacer «client1.etablissement.org» par le nom de la machine concer-née.

Compilez le fichier avec la commande :

m4 sendmail.mc > /etc/mail/sendmail.cf

Ici aussi, vous aurez besoin des deux fichiers no_default_msa.m4 et dnsbl.m4 présents sur le CD-ROM. Copiez-les dans le sous-répertoire feature. Ces fichiers ne sont normalement pas néces-saires pour une version de sendmail supérieure ou égale à 8.10.x.

Puis sauvegardez le fichier /etc/mail/sendmail.cf et copiez le nouveau sendmail.cf dans le ré-pertoire /etc/mail.

Cette configuration a l’avantage de convenir à toutes les situations, ou presque. Que lamachine soit accessible ou non de l’extérieur (si vous disposez de suffisament d’adresses IPpubliques, ne vous privez pas), le routage du mail se fera de la même façon, en toute sécurité.Pour des machines non accessibles de l’extérieur, on peut utiliser la fonction nullclient de send-mail. La machine se comporte alors comme un relai ouvert à tous les vents, ce qui est dangereuxsi la machine est accessible autrement que par un réseau local.

10.4.2 /etc/mail/access

Comme tout à l’accoutumée, ce fichier définit les droits d’accès de certains sites.Ici, nous le renseignons comme ceci :

*.etablissement.org RELAY

Noux compilons le fichier :

makemap hash /etc/mail/access.db < /etc/mail/access

10.4.3 /etc/mail/aliases

Ce fichier contient les alias. Il n’est pas utile de s’en soucier ici, étant donné que tout mail,même local, sera renvoyé sur notre serveur principal.

Il serait même dangereux de mettre en place des alias, car ceux-ci ne seraient pas respectés.Nous utiliserons donc le fichier de base :

## @(#)aliases 8.2 (Berkeley) 3/5/94## Aliases in this file will NOT be expanded in the header from

232

Page 233: BONdossier Info

10 Configuration des machines clientes

# Mail, but WILL be visible over networks or from /bin/mail.## >>>>>>>>>> The program "newaliases" must be run after# >> NOTE >> this file is updated for any changes to# >>>>>>>>>> show through to sendmail.#

# Basic system aliases -- these MUST be present.MAILER-DAEMON: postmasterpostmaster: root

# General redirections for pseudo accounts.bin: rootdaemon: rootgames: rootingres: rootnobody: rootsystem: roottoor: rootuucp: root

# Well-known aliases.manager: rootdumper: rootoperator: rootabuse: root

# trap decode to catch security attacksdecode: root

Enregistrez le fichier et lancez la commande :

newaliases

Sendmail a régénéré les aliases.

10.4.4 /etc/mail/domaintable

Ici non plus, nous ne servirons pas de ce fichier. Nous créons donc un fichier vide et lecompilons :

touch /etc/mail/domaintablemakemap hash /etc/mail/domaintable.db < /etc/mail/domaintable

10.4.5 /etc/mail/genericstable

Nous ne nous servons pas de ce fichier. Nous créons un fichier vide et le compilons :

233

Page 234: BONdossier Info

10 Configuration des machines clientes

touch /etc/mail/genericstablemakemap hash /etc/mail/genericstable.db < /etc/mail/genericstable

10.4.6 /etc/mail/local-host-names

Ce fichier contient les différents noms sous lesquels la machine est connue. Sendmail s’ensert pour déterminer s’il doit ou non accepter un mail.

Nous le renseignons comme ceci :

client1.etablissement.org

Nous ne compilons pas ce fichier, Sendmail y accède directement.

10.4.7 /etc/mail/mailertable

Sur cette machine, nous nous servons de ce fichier afin de rediriger les mails vers notreserveur principal.

Nous renseignons le fichier comme ceci :

* esmtp:[xxx.xxx.xxx.xxx]

Où xxx.xxx.xxx.xxx est à remplacer par l’adresse IP du serveur principal, ici «fremen».

10.4.8 /etc/mail/relay-domains

Nous n’utilisons pas ce fichier. Nous créons un fichier vide :

touch /etc/mail/relay-domains

10.4.9 /etc/mail/sendmail.ct

Ce fichier contient les logins des personnes considérées comme sûres. Sendmail ne générerapas de message d’avertissement si ces personnes mentionnent une adresse différente de leuradresse «[email protected]».

Nous y mettons bien sûr root :

root

10.4.10 /etc/mail/service.switch

Ce fichier indique à Sendmail de quels moyens il dispose pour se renseigner sur un utilisa-teur, un nom de machine ou sur ses aliases :

234

Page 235: BONdossier Info

10 Configuration des machines clientes

# /etc/mail/service.switch## This is the format that sendmail expects (no colon after the service)#passwd fileshosts files dnsaliases files

Ce fichier ne se compile pas.

10.4.11 /etc/mail/virtusertable

Nous n’utilisons pas ce fichier. Nous créons un fichier vide et le compilons :

touch /etc/mail/virtusertablemakemap hash /etc/mail/virtusertable.db < /etc/mail/virtusertable

10.4.12 Redémarrage de Sendmail

Nous pouvons maintenant redémarrer Sendmail :

/etc/init.d/sendmail start

Si Sendmail ne redémarre pas, il y a une erreur quelque part. Il devrait vous l’indiquer.Vérifiez que Sendmail est effectivement en fonction en vous connectant sur le port 25 (SMTP) :

telnet localhost 25

Si tout va bien, Sendmail vous accueille, sinon vous obtenez le message «Connection refused.».Vous mettez fin à la connexion avec Sendmail par la commande «quit».

10.5 NFS

Nous allons maintenant nous occuper du client NFS, afin que les utilisateurs puissent accé-der à leurs répertoires personnels.

Nous arrêtons le service nfs-common, afin de procéder à la configuration :

/etc/init.d/nfs-common stop

10.5.1 /etc/fstab

Pour que le système monte tout seul le volume NFS au démarrage, nous devons ajouterune ligne à notre fichier /etc/fstab.

Voici ce que nous obtenons :

235

Page 236: BONdossier Info

10 Configuration des machines clientes

# /etc/fstab: static file system information.##<file system><mount point> <type> <options> <dump><pass>/dev/hda5 / ext2 defaults,errors=remount-ro 0 1/dev/hda6 none swap sw 0 0proc /proc proc defaults 0 0# Uncomment the following entry if you use a 2.2.x or newer kernel for# UNIX98-style pty handlingnone /dev/pts devpts gid=5,mode=620 0 0/dev/fd0 /floppy auto defaults,user,noauto 0 0/dev/cdrom /cdrom iso9660 defaults,ro,user,noauto 0 0/dev/hda1 /boot ext2 rw 0 2fremen:/home /home nfs rsize=1024,wsize=1024 0 0

10.5.2 Redémarrage de nfs-common

Nous pouvons redémarrer nfs-common :

/etc/init.d/nfs-common start

10.5.3 Montage manuel des volumes NFS

Vérifiez que le volume NFS soit bien accessible dans le répertoire /home. S’il ne l’était pas,vous pouvez monter manuellement le volume par la commande :

mount -o rsize=1024,wsize=1024,hard,intr fremen:/home /home

10.6 NIS

Lors de l’installation du paquetage, il vous est demandé d’entrer le domaine NIS. Saisissez«etablissement.org».

Nous commençons par stopper le service NIS :

/etc/init.d/nis stop

10.6.1 /etc/defaultdomain

Dans ce fichier est configuré le nom de domaine NIS que nous utilisons :

etablissement.org

10.6.2 /etc/init.d/nis

Nous devons indiquer au script de démarrage que seul le client NIS est utilisé ici. Il fautéditer le script :

236

Page 237: BONdossier Info

10 Configuration des machines clientes

#!/bin/sh##/etc/init.d/nis Start NIS (formerly YP) daemons.##

# Set to "false", "slave" or "master".

NISSERVER=falseNET="/usr/sbin"test -f $NET/ypbind -a -f /etc/defaultdomain || exit 0

[...]

10.6.3 /etc/yp.conf

Dans ce fichier, nous indiquons au client NIS qui est le serveur. Cela évite que le clientparcours le réseau à la recherche de son serveur :

## yp.conf Configuration file for the ypbind process. You can define# NIS servers manually here if they can’t be found by# broadcasting on the local net (which is the default).## See the manual page of ypbind for the syntax of this file.#

ypserver fremen.etablissement.org

10.6.4 /etc/passwd

Pour utiliser le service NIS, nous devons modifier le fichier /etc/passwd :

root:x:0:0:root:/root:/bin/bashdaemon:x:1:1:daemon:/usr/sbin:/bin/shbin:x:2:2:bin:/bin:/bin/shsys:x:3:3:sys:/dev:/bin/shsync:x:4:100:sync:/bin:/bin/syncgames:x:5:100:games:/usr/games:/bin/shman:x:6:100:man:/var/cache/man:/bin/shlp:x:7:7:lp:/var/spool/lpd:/bin/shmail:x:8:8:mail:/var/spool/mail:/bin/shnews:x:9:9:news:/var/spool/news:/bin/shuucp:x:10:10:uucp:/var/spool/uucp:/bin/shproxy:x:13:13:proxy:/bin:/bin/sh

237

Page 238: BONdossier Info

10 Configuration des machines clientes

majordom:x:30:31:Majordomo:/usr/lib/majordomo:/bin/shpostgres:x:31:32:postgres:/var/lib/postgres:/bin/shwww-data:x:33:33:www-data:/var/www:/bin/shbackup:x:34:34:backup:/var/backups:/bin/shmsql:x:36:36:Mini SQL Database Manager:/var/lib/msql:/bin/shoperator:x:37:37:Operator:/var:/bin/shlist:x:38:38:SmartList:/var/list:/bin/shirc:x:39:39:ircd:/var:/bin/shgnats:x:41:41:Gnats Bug-Reporting System:/var/lib/gnats/gnats-db:/bin/shnobody:x:65534:65534:nobody:/home:/bin/shtelnetd:x:101:101::/usr/lib/telnetd:/bin/falseidentd:x:100:65534::/var/run/identd:/bin/false+:::::::julien:x:1000:1000:Julien BLACHE,,,:/home/julien:/bin/bashautre:x:1001:1001:Un autre utilisateur,,,:/home/autre:/bin/bash

Sur ces machines, tout le monde doit pouvoir ouvrir une session avec son login. Nous ajou-tons donc la ligne suivante :

+:::::::

Pour une raison ou pour une autre, il se pourrait que vous souhaitiez interdire l’accès d’une ouplusieurs machines à un utilisateur. Cela peut être réalisé de la manière suivante ; ajoutez cetteligne pour interdire à l’utilisateur «julien» d’ouvrir une session :

-julien:::::::

Là encore, le nombre de signes « :» est très important. Notez également qu’il n’y a pas d’espaceentre les « :».

10.6.5 /etc/group

Nous devons faire le même genre de modification dans ce fichier :

root:x:0:daemon:x:1:bin:x:2:sys:x:3:adm:x:4:tty:x:5:disk:x:6:lp:x:7:lpmail:x:8:news:x:9:uucp:x:10:proxy:x:13:kmem:x:15:

238

Page 239: BONdossier Info

10 Configuration des machines clientes

dialout:x:20:fax:x:21:voice:x:22:cdrom:x:24:floppy:x:25:tape:x:26:sudo:x:27:audio:x:29:dip:x:30:majordom:x:31:majordompostgres:x:32:www-data:x:33:backup:x:34:msql:x:36:operator:x:37:list:x:38:irc:x:39:src:x:40:gnats:x:41:shadow:x:42:utmp:x:43:telnetdvideo:x:44:staff:x:50:games:x:60:users:x:100:nogroup:x:65534:telnetd:x:101:+:::julien:x:1000:autre:x:1001:

Attention, ici aussi, le nombre de « :» est important ! Remarquez qu’il n’y a pas d’espaceentre les « :».

10.6.6 Redémarrage de NIS

Nous pouvons maintenant redémarrer NIS :

/etc/init.d/nis start

10.7 Configuration des imprimantes

Ici, nous n’avons besoin ni de GhostScript, ni d’apsfilter. Le daemon lpd se charge de tout,et c’est le serveur d’impression qui fera les éventuelles transformations nécessaires pour l’im-pression.

239

Page 240: BONdossier Info

10 Configuration des machines clientes

Votre fichier /etc/printcap doit ressembler à cela :

# /etc/printcap: printer capability database. See printcap(5).# You can use the filter entries df, tf, cf, gf etc. for# your own filters. See /etc/filter.ps, /etc/filter.pcl and# the printcap(5) manual page for further details.

# rlp|Remote printer entry:\# :lp=:\# :rm=remotehost:\# :rp=remoteprinter:\# :sd=/var/spool/lpd/remote:\# :mx#0:\# :sh:

rplaser|rphpl3:\:sd=/var/spool/lpd/remote/rplaser:\:mx#0:\:sh:\:rm=sardaukar:\:rp=lplaser:

rpcouleur|ppstylus|rpinkjet:\:sd=/var/spool/lpd/remote/rpcouleur:\:mx#0:\:sh:\:rm=sardaukar:\:rp=lpcouleur:

Donnez-leur pour noms rplaser et rpcouleur. La machine à contacter pour utiliser les impri-mantes est le serveur d’accès («sardaukar» dans notre exemple), et les queues distantes sontrespectivement lplaser et lpcouleur.

10.8 NTP

Comme nos deux serveurs, les postes clients se maintiendront à l’heure grâce à NTP.Lors de l’installation du paquetage ntp, vous devrez spécifier un serveur NTP. Vous trouve-

rez une liste des serveurs français à l’adresse http://www.cru.fr/NTP/serveurs\protect\T1\textunderscorefrancais.html . Pour ne pas encombrer les serveurs primaires, utili-sez s’il vous plaît un serveur secondaire, comme ntp.loria.fr, par exemple.

Ne vous souciez pas de la zone horaire des machines, le protocole NTP se charge de tout.

240

Page 241: BONdossier Info

10 Configuration des machines clientes

10.9 SNMPD, surveillance réseau

Là encore, le fichier de configuration est le même que précédemment. Une fois placé dans/etc/snmp/, redémarrez snmpd :

/etc/init.d/snmpd stop/etc/init.d/snmpd start

Puis vous pourrez décommenter les entrées correspondant aux clients dans le fichier /etc/mrtg.cfgsur fremen, au fur et à mesure que ceux-ci sont configurés.

241

Page 242: BONdossier Info

11 Détails concernant les postes clients

11.1 Configuration des navigateurs Internet

Puisque nous utilisons un proxy, les utilisateurs devront configurer leurs navigateurs Webde telle sorte qu’ils utilisent ce proxy. Sans cela, ils ne pourront pas accéder au Web.

Voici les données utiles pour faire ceci :– serveur proxy : sardaukar.etablissement.org ou 10.0.1.2– port : 8080

Le serveur proxy n’est disponible que pour le protocole HTTP. Pour les autres protocoles, laconnexion se fait directement, au travers du masquerading.

11.2 Protocole FTP

Du fait du masquerading opéré par le serveur d’accès, les connexions FTP doivent impéra-tivement se faire en mode passif.

11.3 Modules spécifiques

Il existe des modules spécifiques concernant le masquage d’adresses, qui s’appliquent entreautres aux protocoles FTP et ICQ. N’hésitez pas à les installer sur le serveur d’accès. Ils sont dis-ponibles lors de l’installation des pilotes, pendant la phase d’installation de Debian GNU/Linux.

11.4 Utilisation des imprimantes distantes

Pour utiliser les imprimantes distantes, les utilisateurs doivent spécifier l’imprimante qu’ilsveulent utiliser lors de l’impression.

Ceci est possible en utilisant la bonne option de l’utilitaire lpr. Exemples :– pour imprimer sur l’imprimante laser :

lpr -Prplaser

– pour imprimer sur l’imprimante jet d’encre couleur :

lpr -Prpcouleur

242

Page 243: BONdossier Info

12 Politique d’administration

Je pose ci-dessous les bases de la politique d’administration qu’il convient d’adopter. Bienentendu, chaque administrateur est totalement libre d’adopter la politique qu’il souhaite.

12.1 Utilisation des machines

Les machines devraient être utilisées le plus possible pour des travaux scolaires. Néan-moins, il n’y pas de raisons de réprimer ou de s’opposer à leur utilisation dans un autre but,tant que celui-ci reste légal et en accord avec le règlement intérieur de l’établissement.

Toutefois, il serait bon que les élèves désirant utiliser ces machines pour un travail scolaireaient la priorité, ou, tout au moins, soient favorisés.

12.2 Utilisation de l’accès Internet

Je pense qu’il ne faut pas imposer un usage exclusif de cet accès, comme cela est parfois lecas sur les accès fournis par l’Éducation Nationale.

Il faut bien entendu rester en accord avec la loi sur l’usage qui est fait de cet accès. Nousavons pris des dispositions pour cela (mise en place du proxy Squid et du redirecteur Squid-Guard assorti de listes noires) ; toutefois, rien ne garantit que tout site illégal sera inaccessible.Je vous encourage à reporter au mainteneur des listes noires tout manquement ou toute erreur.

12.3 Utilisation du compte e-mail

Nous abordons ici la partie délicate de l’administration. En effet, il vous faut maintenant liresérieusement votre courrier, c’est à dire le courrier adressé à root, aux adresses [email protected],[email protected], entre autres.

C’est à ces adresses que vous seront envoyées les plaintes concernant les éventuels abuscommis par vos utilisateurs avec leurs adresses e-mail.

C’est alors à vous de juger de la gravité de l’abus. Dans tous les cas, vous devrez répondreà la personne qui vous aura prévenu.

En cas de spam, vous devrez prendre des mesures immédiates ; personnellement, j’averti-rais l’utilisateur concerné par mail, et éventuellement en personne. Je le ferais une fois, puisune deuxième. À la troisième plainte, je fermerais purement et simplement le compte e-mail del’utilisateur.

Il est indispensable de prendre des mesures, car, si vous ne le faites pas, votre domainesera répertorié comme expéditeur de spam, et vous risquez d’être filtré sur un bon nombre deserveurs.

243

Page 244: BONdossier Info

12 Politique d’administration

Quelque soit votre politique à cet égard, vous devrez en assumer les conséquences. Dans lepremier cas, elles seront minimes, c’est-à-dire que seul l’utilisateur concerné vous demanderades comptes. Dans le deuxième cas, celui où vous ne réagiriez pas aux plaintes, vous devrezaffronter les questions de plusieurs utilisateurs vous demandant pourquoi leurs courriers nesont pas arrivés à destination.

12.4 Utilisation des newsgroups

Là aussi, la question est délicate. Vous devrez lire attentivement votre courrier, car vous re-cevrez les plaintes aux adresses [email protected], [email protected], [email protected] ou encore [email protected].

Dans tous les cas, répondez aux personnes qui vous préviennent des abus.Ici, vous ne pouvez pas interdire l’accès aux newsgroups pour un utilisateur donné. C’est

une limitation de INN 2.2.2 qui ne peut pas se baser sur les fichiers systèmes pour l’authentifi-cation des utilisateurs.

Avertissez donc l’utilisateur incriminé, et soyez ferme. Ensuite, vous n’avez qu’à espérerqu’il comprenne.

Les risques sont ici à peu près les mêmes, à savoir un filtrage de tout ce qui provient devotre serveur de news. La seule différence est que vos utilisateurs risquent de ne pas se rendrecompte qu’ils sont filtrés ailleurs, tandis que dans le cas du mail, ils le sauraient assez rapide-ment.

Le plus gros risque ici est que votre feed refuse de continuer l’aventure avec vous. Cela peutse faire du jour au lendemain, sans explications. Rappelez-vous qu’il ne vous doit rien, et quevous l’avez sollicité.

12.5 Utilisation de l’espace Web personnel

Concernant l’espace Web personnel, vous recevrez les éventuelles plaintes aux [email protected] ou [email protected].

Tentez de régler au mieux les problèmes ; en cas de différend entre deux personnes, es-sayez d’influer sur votre utilisateur ; en cas de contenu clairement illégal, réagissez de suitepar l’effacement du contenu en question (ou le déplacement temporaire pour ne pas perdre lesdonnées).

Rappelez-vous que vous êtes l’administrateur : vous avez les pleins pouvoirs sur les fichiersstockés sur les machines, mais surtout, vous êtes responsables de ces fichiers au regard de laloi.

12.6 Quotas disque

Il se peut que, pour une raison ou une autre, l’un ou l’autre de vos utilisateurs vous de-mande un quota disque plus élevé. Pourquoi pas.

Dans le cas où vous seriez amené à créer un groupe pour quelques utilisateurs, vous devreztrès certainement revoir leurs quotas sensiblement à la hausse.

244

Page 245: BONdossier Info

12 Politique d’administration

Il n’y a pas vraiment de raisons de refuser un ajustement des quotas pour l’une ou l’autrepersonne.

12.7 Matériel

En cas de détérioration du matériel, ou de vol, je ne peux que laisser le champ libre à l’ad-ministrateur et à l’établissement concerné.

245

Page 246: BONdossier Info

13 L’administration en pratique

Dans les sections suivantes, je donne dans les grandes lignes les manipulations à réaliserpour mener à bien les tâches d’administration les plus simples. Rappelez-vous que le postulatde départ est que l’administrateur soit un tant soit peu familier avec l’administration UNIX.

La plupart des manipulations sont décrites dans les sections précédentes de ce dossier.

13.1 Ajout d’un utilisateur

Il y a deux cas différents lors de l’ajout d’un utilisateur : l’utilsateur est un élève, ou unprofesseur.

Pour ajouter un utilisateur, voici les étapes à suivre :– création du compte (et attribution d’un premier mot de passe) par la commande :

adduser --home /home/eleves/<login> <login> (pour un élève)adduser --home /home/profs/<login> <login> (pour un professeur)

– ajout de l’utilisateur sur le serveur Samba– mise à jour des maps NIS– ajout d’un quota disque pour l’utilisateur

Concernant les maps NIS, vous pouvez soit les régénérer manuellement, soit laisser cron s’encharger pendant la nuit.

Bien entendu, un login est unique et ne peut être utilisé par deux personnes.

13.2 Suppression d’un utilisateur

Pour supprimer un utilisateur :– suppression du compte (et du répertoire personnel, ainsi que du spool de mail) :

userdel -r <login>

– suppression de l’utilisateur sur le serveur Samba– mise à jour des maps NIS– suppression du quota disque pour l’utilisateur

13.3 Les groupes

Les groupes sont utiles lorsque plusieurs utilisateurs travaillent sur un même projet, parexemple. Dans ce cas, vous pouvez leur créer un groupe, ainsi qu’un répertoire commun (sous/home/groups/* par exemple). Les membres du groupe pourront alors accéder librement à cerépertoire et aux fichiers qu’il contient.

246

Page 247: BONdossier Info

13 L’administration en pratique

13.3.1 Création d’un groupe

Pour créer un nouveau groupe :– création du groupe par la commande :

addgroup <groupe>

– mise à jour des maps NIS– création d’un répertoire commun, possédé par le groupe et l’un des utilisateurs de ce

groupe– mise en place d’un quota disque portant sur le répertoire– éventuellement, mise en place d’un alias mail pointant vers tous les utilisateurs du groupe :

groupe1: utilisateur1,utilisateur2,utilisateur3

– ajout des utilisateurs dans le groupe

13.3.2 Ajout d’utilisateurs dans un groupe

Pour ajouter un utilisateur dans un groupe :

adduser <login> <groupe>

Puis mettez à jour les maps NIS.

13.3.3 Suppression d’un utilisateur dans un groupe

Éditez le fichier /etc/group, et effacez l’utilisateur dans la liste correspondant au groupevoulu. Puis mettez à jour les maps NIS.

13.3.4 Suppression d’un groupe

Pour supprimer un groupe :– éditez le fichier /etc/group, et supprimez l’entrée correspondant au groupe voulu– mettez à jour les maps NIS– supprimez les quotas portant sur le répertoire assigné au groupe– supprimez le répertoire assigné au groupe

13.4 Gestion des programmes

Si vous êtes amenez à installer des programmes supplémentaires sur les postes clients, pre-nez garde à les installer sur tous les postes. De même si vous en supprimez.

Vous disposez de deux méthodes pour installer ou enlever des logiciels :– à partir des sources, comme expliqué plus haut, auquel cas il vous faudra effacer à la

main les fichiers dudit logiciel pour le désinstaller– à partir d’un paquetage Debian

247

Page 248: BONdossier Info

13 L’administration en pratique

13.4.1 Installation d’un paquetage Debian

Il vous suffit d’utiliser le logiciel apt-get, configuré soit pour récupérer le paquetage sur unserveur FTP, soit sur un CD-ROM.

Pour installer un paquetage, vous utiliserez simplement la commande :

apt-get install <nom du paquetage>

Apt-get se chargera de se procurer le paquetage, au besoin il vous demandera d’insérer tel outel CD-ROM de Debian GNU/Linux 2.2 «Potato», puis installera le paquetage.

Vous pouvez également utiliser dpkg sur un fichier présent localement :

dpkg -i <nom du paquetage>

13.4.2 Désinstallation d’un paquetage Debian

Apt-get est le moyen le plus simple :

apt-get remove <nom du paquetage>

13.4.3 Désinstallation d’un paquetage Debian et de ses fichiers deconfiguration

Les fichiers de configuration d’un logiciel ont un statut à part dans les paquetages Debian.Lors des mises à jour, ces fichiers ne sont pas remplacés par ceux présents dans le paquetage,afin de préserver votre configuration. Lorsque vous désinstallez un paquetage, vous pouvezdécider de laisser ces fichiers à leur place, ou de les enlever.

Pour désinstaller un paquetage ainsi que ses fichiers de configuration, utilisez l’option –purge d’apt-get :

apt-get remove --purge <nom du paquetage>

248

Page 249: BONdossier Info

14 Captures d’écran

249

Page 250: BONdossier Info

14 Captures d’écran

FIG. 14.1 – GNOME 1.2. On remarque Gnumeric intégrant plusieurs objets Bonobo, ainsi queThe GIMP et un éditeur d’icônes. Au-dessus, un émulateur de terminal avec fond transparent.Le gestionnaire de fenêtres utilisé est SawFish. L’utilisateur a appliqué un thème aux objetsGTK+ ainsi qu’au gestionnaire de fenêtres.

FIG. 14.2 – Netscape 4.76 affichant le site http ://linuxfr.org/.

250

Page 251: BONdossier Info

14 Captures d’écran

FIG. 14.3 – Mozilla M18 affichant le site http ://linuxfr.org/.

FIG. 14.4 – Le logiciel IglooFTP, connecté à un serveur.

251

Page 252: BONdossier Info

14 Captures d’écran

FIG. 14.5 – La fenêtre principale du logiciel Balsa.

FIG. 14.6 – Lecture d’un groupe de discussion avec Gnus. Ici, le groupe comp.text.tex.

252

Page 253: BONdossier Info

14 Captures d’écran

FIG. 14.7 – Lecture du courrier avec Mutt. La barre de menu ne fait pas partie de mutt, maisd’Eterm, un émulateur de terminal.

FIG. 14.8 – Lecture d’un groupe de discussion avec Pan, fortement inspiré du logiciel FortéAgent sous MS-Windows.

253

Page 254: BONdossier Info

14 Captures d’écran

FIG. 14.9 – Lecture des groupes de discussion avec SLRN, dans un émulateur de terminalRXVT.

FIG. 14.10 – LYX, composition de la section 5.2 de ce document. Affichage du fichier PostScriptcontenant le diagramme du réseau, on aperçoit également une référence croisée vers une sec-tion du document, ainsi qu’une étiquette permettant de se référer à ce passage par une référencecroisée.

254

Page 255: BONdossier Info

14 Captures d’écran

FIG. 14.11 – TiLP en action. À gauche, liste des fichiers présents sur la calculatrice, à droite listedes fichiers dans le répertoire courant.

FIG. 14.12 – RasMol affichant une molécule relativement complexe. Le résultat est vraimentbon.

255

Page 256: BONdossier Info

14 Captures d’écran

FIG. 14.13 – Dia en pleine action.

256

Page 257: BONdossier Info

15 Documentation et sources d’information

Par thèmes, les différentes sources de documentations et d’informations utilisées pour larédaction de ce dossier, ainsi que quelques documentations plus poussées. La plupart de cesdocumentations sont en anglais, soit par manque de traduction française, soit pour cause detraduction obsolète ou imprécise.

Les différents HOWTO1 cités ici se trouvent dans divers formats en version anglaise etfrançaise sur le CD-ROM joint.

Les RFC2 sont des documents définissant un standard, un protocole, ou n’importe quoi3

ayant attrait à Internet. Vous pouvez les consulter sur le site http://www.faqs.org ouhttp://www.rfc-editor.org Ces documents sont uniquement disponibles en langue an-glaise.

La mention «documentation de» renvoie aux diverses pages de man et documentations Infolivrées avec le programme.

15.1 Installation de Debian GNU/Linux 2.2 «Potato»

– «Installing Debian GNU/Linux 2.2 For Intel x86», disponible sur les CD-ROM d’installa-tion et sur les mirroirs FTP, dont ftp ://ftp.fr.debian.org/debian/dists/potato/main/disks-i386/current/doc/install.en.pdf (ou ..../doc/fr/install.fr.pdf en version française)

15.2 Debian GNU/Linux

– «Learning Debian GNU/Linux», aux éditions O’Reilly

15.3 Paquetages Debian

La plupart des documentations sont disponibles uniquement en anglais.– «Le Guide du Nouveau Responsable Debian»– «The Debian Developer’s Reference»– «The Debian Policy Manual» ainsi que les autres «Policy Manuals»– «The Debian Packaging Manual»

1Documentations spécifiques à GNU/Linux décrivant pas à pas la mise en place d’une fonctionnalité.2Request For Comment.3Mais alors, vraiment n’importe quoi, telle la RFC 2324 qui définit HTCPCP (HyperText Coffee Pot Control Pro-

tocol) ou encore la RFC 1149 (RFC 2549 pour une version améliorée) qui encadre la transmission de paquets IPpar pigeons voyageurs. . .

257

Page 258: BONdossier Info

15 Documentation et sources d’information

Toutes ces documentations et quelques autres sont disponibles dans les paquetages debian-policy, developers-reference, doc-debian (doc-debian-fr), maint-guide (maint-guide-fr), packaging-manual,ainsi que sur le site Web du projet Debian : http://www.Debian.org/devel .

15.4 Serveur DNS Bind

– «The Linux DNS-HOWTO», version 2.2 du 11 Février 1999– «DNS & BIND», aux éditions O’Reilly– RFC 952 : DOD Internet Host Table Specifications– RFC 1034 : Domain Names - Concepts and Facilities– RFC 1035 : Domain Names - Implementation and Specifications– RFC 1101 : DNS Encoding of Network Names and Other Types– RFC 1183 : New DNS RR Definitions– RFC 1918 : Address Allocation for Private Internets

Ainsi que la documentation présente dans /usr/share/doc/bind.

15.5 Serveur SMTP Sendmail

– «Sendmail», aux éditions O’Reilly (aussi appelé le «Bat Book»)– «Sendmail Desktop Reference», aux éditions O’Reilly– Le site Web http://www.sendmail.org/– Les fichiers de /usr/share/doc/sendmail, spécialement le fichier cf.README.gz, ainsi que les

fichiers d’exemple– RFC 821 : Simple Mail Transfer Protocol– RFC 822 : Standard Format of ARPA Internet Text Messages– RFC 974 : Mail Routing and the Domain System– RFC 1341 : MIME (Multipurpose Internet Mail Extensions)– RFC 2045 : MIME part One - Format of Internet Messages Bodies– RFC 2046 : MIME part Two - Media Types– RFC 2047 : MIME part Three - Message Header Extensions for Non-ASCII Text– RFC 2142 : Mailbox Names for Common Services, Roles and Functions– RFC 2635 : DON’T SPEW - A set of guidelines for mass unsolicited mailings and postings

Merci à Valentin BECK pour son exemple de sendmail.mc, sur lequel je me suis basé.

15.6 Serveur POP3 QPopper

– RFC 1939 : Post Office Protocol - Version 3– Les fichiers de /usr/share/doc/qpopper

15.7 NIS

– «The Linux NIS(YP)/NYS/NIS+ HOWTO», version 1.0 du 9 Mars 1999

258

Page 259: BONdossier Info

15 Documentation et sources d’information

– «The Debian GNU/Linux NIS HOWTO», présent dans /usr/share/doc/nis, ainsi que lesautres fichiers du répertoire

15.8 Quotas disque

– «The Linux Quota Mini-HOWTO», version du 8 Août 1997– Les fichiers de /usr/share/doc/quota

15.9 Partage de fichiers par NFS

– «The Linux NFS-HOWTO», version 1.0 du 1er Octobre 1999– Les fichiers de /usr/share/doc/nfs-common– Les fichiers de /usr/share/doc/nfs-kernel-server

15.10 Partage de fichiers par Samba

– «The Linux SMB-HOWTO», version 1.3 du 20 Avril 2000– «Using SAMBA», éditions O’Reilly– Les fichiers de /usr/share/doc/samba

15.11 Serveur de news INN

– La documentation d’Éric JACOBONI, «Configuration de INN sous Linux», version 2.6 du30 Juin 1998

– La FAQ INN, disponible sur le site Web http://blank.org/innfaq/– Les fichiers de /usr/share/doc/inn2– RFC 977 : Network News Transfer Protocol– RFC 1036 : Standard for Interchange of USENET Messages– Son-of-RFC 1036

Merci à Valentin BECK pour le feed de news sur la hiérarchie FR.*.

15.11.1 Filtre PERL pour INN, CleanFeed

– La documentation livrée avec CleanFeed

15.12 Serveur HTTP Apache

– «The Apache Server Survival Guide»– Le fichier de configuration par défaut de Debian GNU/Linux– La documentation de /usr/share/doc/apache– RFC 2068 : HyperText Transfer Protocol - HTTP/1.1

259

Page 260: BONdossier Info

15 Documentation et sources d’information

15.13 Serveur FTP ProFTPd

– Le fichier de configuration par défaut de Debian GNU/Linux– Le site Web http://www.proftpd.net/– La documentation de /usr/share/doc/proftpd

15.14 Synchronisation de l’heure par NTP

– Les fichiers de /usr/share/doc/ntp– RFC 2030 : Simple Network Time Protocol Version 4 for IPv4, IPv6 and OSI

15.15 Sauvegarde de données

– La documentation Info de GNU Tar

15.16 Firewalling, firemasq

– La documentation de l’utilitaire IPChains– La documentation de firemasq– Le site Web de firemasq : http://northernlights.bizland.com/firewalls.htm

15.17 Serveur proxy Squid

– La documentation de Squid, http://www.squid-cache.org/– Les fichiers de /usr/share/doc/squid

15.18 Redirecteur SquidGuard

– La documentation de /usr/share/doc/squidguard– Le site Web http://www.squidguard.org/

15.19 Serveur d’impression, lpd

– La documentation de lpd– Les fichiers de /usr/share/doc/lpd

15.20 SNMP/snmpd

– La documentation de /usr/share/doc/snmpd– Le site Web http://ucd-snmp.ucdavis.edu/– La documentation http://www.cisco.com/univercd/cc/td/doc/cisintwk/ito\

protect\T1\textunderscoredoc/snmp.htm

260

Page 261: BONdossier Info

15 Documentation et sources d’information

– L’article http://www.david-guerrero.com/papers/snmp/

15.21 MRTG

– La documentation de /usr/share/doc/mrtg– Le site Web http://www.mrtg.org/

15.22 Notions de réseau

– «TCP/IP», aux éditions O’Reilly– «DNS & BIND», aux éditions O’Reilly– Le site http://www.cisco.com

Ainsi que divers ouvrages, glânés et perdus au fil du temps.

15.23 Administration UNIX

– «Linux in a Nutshell», éditions O’ReillyEt, là encore, divers autres ouvrages, glânés et perdus au fil du temps.

15.24 Divers

– «OpenSources : Voices from the Open Source Revolution», et sa version française «Tri-bune Libre», aux éditions O’Reilly

L’histoire de ce que beaucoup appellent la «Révolution OpenSource», qui mena Richard M.STALLMAN à fonder la Free Software Foundation et à démarrer le projet GNU, avec les consé-quences et la réussite que l’on connaît aujourd’hui.

15.25 Autres documentations

15.25.1 Les pages de man

Tous les logiciels cités ci-dessus disposent de pages de man (manuel en ligne), disponiblesous tous les systèmes UNIX en tapant :

man <section> <page>

Par exemple, pour la page de man concernant le fichier /etc/network/interfaces :

man 5 interfaces

Le numéro de la section est optionnel, il n’est nécessaire que s’il existe plusieurs pages portantle même nom dans des sections différentes. Pour connaître la répartition des sections, consultezla page de man du programme man.

261

Page 262: BONdossier Info

15 Documentation et sources d’information

15.25.2 La documentation Info

Certains logiciels, spécialement ceux du projet GNU, disposent de documentation au for-mat Info. Pour y accéder :

info <section>

Par exemple, pour la documentation de GNU Tar :

info tar

15.25.3 Les newsgroups

Un remerciement spécial aux habitués de la hiérarchie FR.* qui m’ont permis d’apprendrebeaucoup de choses.

En particulier les forums fr.comp.os.linux.*, fr.comp.mail, fr.usenet.logiciels, fr.comp.os.unix,fr.reseaux.*, et j’en oublie.

15.25.4 Les personnes

Un autre remerciement particulier aux habitués des quelques channels que je fréquente surIRCnet, ainsi que OpenProjects.net.

Enfin, merci à Yves POTIN4 pour la lecture des premières versions de ce document et sesavis éclairés.

15.25.5 L’expérience

Rien ne remplace l’expérience, et je n’aurais certainement jamais imaginé ce projet si jen’avais pas eu l’expérience nécessaire pour le réaliser et l’administrer moi-même.

Si je n’avais pas été fatigué par les plantages incessant de Microsoft Windows, si je n’avaispas eu l’occasion d’essayer GNU/Linux, de configurer un serveur SMTP, de monter un serveurde news, et de faire tout un tas d’autres choses, tout ceci n’aurait jamais été possible.

Merci donc à toutes les personnes qui ont rendu cela possible et qui m’ont aidé, encouragé.

15.26 Logithèque

Ci-dessous, les adresses des sites Web de la plupart des logiciels cités dans ce document.

GNOME http://www.gnome.org/

Enlightenment http://www.enlightenment.org/

AfterStep http://www.afterstep.org/

4Professeur de philosophie au Lycée François Truffaut de Beauvais, Yves POTIN a réalisé l’installation de sallesinformatiques utilisant GNU/Linux durant l’année scolaire 1998/99. Un document disponible sur http://www.aful.org/education/lycee-beauvais/ résulte de ces mises en place.

262

Page 263: BONdossier Info

15 Documentation et sources d’information

Window Maker http://www.windowmaker.org/

Sawfish http://sawmill.sourceforge.net/

Fvwm http://www.fvwm.org/

Netscape http://www.netscape.com/

Mozilla http://www.mozilla.org/

ProFTPd http://www.proftpd.net/

Gftp http://gftp.seul.org/

IglooFTP http://www.littleigloo.org/iglooftp.php3

NcFTP http://www.ncftp.com/

Squid http://www.squid-cache.org/

SquidGuard http://www.squidguard.org/

Bind http://www.isc.org/products/BIND/

Samba http://www.samba.org/

Sendmail http://www.sendmail.org/

Qpopper http://www.qpopper.org/

Balsa http://www.balsa.net/

Gnus http://www.gnus.org/

Mutt http://www.mutt.org/

INN http://www.isc.org/products/INN/

Pan http://www.superpimp.org/

Slrn http://space.mit.edu/\T1\textasciitildedavis/slrn.html

263

Page 264: BONdossier Info

15 Documentation et sources d’information

StarOffice http://www.sun.com/staroffice/

Gnumeric http://www.gnome.org/projects/gnumeric/

AbiWord http://www.abisource.com/

Emacs http://www.emacs.org/

XEmacs http://www.xemacs.org/

Vim http://www.vim.org/

LYX http://www.lyx.org/

Wget http://www.cg.tuwien.ac.at/\T1\textasciitildeprikryl/wget.html

TiLP http://lpg.ticalc.org/

Bluefish http://bluefish.openoffice.nl/

Screem http://www.screem.org/

Xsky http://www.cse.nd.edu/\T1\textasciitildesgi/Software/xsky.html

RasMol http://www.umass.edu/microbio/rasmol/

Xephem http://www.clearskyinstitute.com/xephem/

Lum http://www.linux-france.org/prj/lum/index.html

Mek http://www.linux-france.org/prj/mek/index.html

Xem http://www.linux-france.org/prj/xem/index.html

MuPAD http://www.mupad.de/

SciLab http://www-rocq.inria.fr/scilab/

GNUplot http://www.gnuplot.vt.edu/

Dia http://www.lysator.liu.se/\T1\textasciitildealla/dia/

264

Page 265: BONdossier Info

15 Documentation et sources d’information

BWBasic http://www.bwbasic.com/

DrGeo http://drgeo.seul.org/

The GIMP http://www.gimp.org/

Moonlight Creator http://rufus.w3.org/linux/moonlight/intro.html

Blender http://www.blender.nl/

265

Page 266: BONdossier Info

16 CD-ROM DemoLinux

Le CD-ROM DemoLinux est un CD-ROM bootable contenant un système Debian GNU/Linuxutilisable sans installation depuis le CD-ROM.

16.1 Utilisation

DemoLinux peut constituer une alternative à court terme à l’installation d’un système GNU/Linuxsur une machine.

L’utilisation de DemoLinux requiert une machine possédant au moins 32 Mo de RAM, 64Mo étant fortement recommandés. Vous devrez également vérifier que votre matériel est sup-porté, principalement la carte vidéo.

DemoLinux, comme son nom l’indique, se veut un outil de découverte des systèmes GNU/Linux.Je ne peux qu’encourager le lecteur ne connaissant pas GNU/Linux à en faire l’expérience parle biais du CD-ROM joint au dossier.

16.2 Documentation

Il est nécessaire de lire la documentation avant d’utiliser DemoLinux.La documentation est fournie sur le CD, au format HTML (fichier index.html à la racine du

CD). Je vous conseille de l’imprimer.Pour plus de renseignements, visitez le site http://www.demolinux.org/ .

266

Page 267: BONdossier Info

17 Concernant le document

17.1 Période de rédaction

Ce document a été rédigé pour la plus grande partie durant les mois de Juillet et Août 2000,pour des questions d’emploi du temps. Le contenu du présent document se réfère donc auxversions logicielles disponibles à cette date.

17.2 Historique

– 10 août 2000 : version 1.0, le document est en grande partie terminé, ainsi que le CD-ROM.– 18 août 2000 : version 1.1, ajout de la section 17.– 15 septembre 2000 : version 1.2, ajout des paragraphes concernant l’accès aux ressources

physiques, diverses corrections.– 29 octobre 2000 : version 1.3, réécriture des pages de redirection de SquidGuard en XHTML

1.0 et CSS.– 30 octobre 2000 : version 1.4, ajout des sections concernant SNMP et MRTG.– 17 Novembre 2000 : diverses corrections, relecture de la section 1. Un bug de LYX risque

de me poser quelques problèmes dans les temps à venir.– 18 Novembre 2000 : diverses corrections, relecture des sections 2 à 7. Ce bug de LYX

(touches mortes) est vraiment horripilant, je vais terminer le document avec XEmacs.– 19 Novembre 2000 : version 1.5, le diagramme du réseau a été refait avec Dia. Relecture

des sections 8 et 9.– 21 Novembre 2000 : version 1.6, relecture des sections 10 et 11, modification de la configu-

ration des imprimantes. L’utilitaire printtool semblant quelque peu déficient par les tempsqui courent, l’utilisation d’outils plus performants est nécessaire.

– 23 Novembre 2000 : relecture des sections 12 à 14.– 27 Décembre 2000 : version 1.7-bac, relecture des sections 15 et 16, diverses corrections.

Mise à jour de certaines captures d’écran. Ajout des chapitres 17 et 18.– 20 Janvier 2001 : version 1.8-bac. Amélioration des configurations d’Apache, SNMP/MRTG

et Samba.– 21 Janvier 2001 : version 1.9-bac. Amélioration du firewalling/masquerading, diverses

adaptations.– 23 Janvier 2001 : version 1.95-bac. Ajout d’un mode de réplication des machines clientes.– 23 Mars 2001 : Début de la dernière relecture. Sections 1 à 6.– 6 Avril 2001 : version 1.99-bac. Fin de la relecture, impression du sommaire et du dossier

lui-même. Le CD-ROM sera finalisé et gravé au mois de mai.– 8 Mai 2001 : version 2.10-bac. Reprise complète du fichier TEX produit par LYX. Nom-

267

Page 268: BONdossier Info

17 Concernant le document

breuses adaptations pour obtenir un rendu de qualité avec pdfTEX, diverses corrections(notamment structure du CD-ROM). CD-ROM finalisé. Le nombre de pages a diminuésuite à ces modifications. Le fichier LYX ne correspond plus au présent document et nesera pas remis à jour ; la version 2.00-bac sera à priori rendue car imprimée avant.

– 21 Juin 2001 : nettoyage des sections concernant le Baccalauréat, quelques modifications,publication.

17.3 Traduction

L’auteur demande à toute personne désirant effectuer une traduction de ce document deprendre contact avec lui. La traduction est autorisée et encouragée.

17.4 Mises à jour

Quiconque désire mettre à jour ce document est autorisé à le faire. L’auteur aimerait cepen-dant en être informé.

17.5 Validité des solutions

Par manque de matériel et de temps, je n’ai pas été en mesure de tester la majeure par-tie des configurations proposées dans ce document. Toutefois, elles devraient être en majoritéfonctionnelles.

17.6 Mise en application

L’auteur souhaiterait être averti au cas où quelqu’un déciderait de mettre en pratique lecontenu de ce document.

268

Page 269: BONdossier Info

18 Mentions légales

18.1 Informations de copyright

Copyright (c) 2000 Julien BLACHE.L’auteur accorde la permission de copier, distribuer et/ou modifier ce document confor-

mément aux termes de la GNU Free Documentation License, Version 1.1 telle que publiée parla Free Software Foundation ; avec comme Sections Invariantes les sections intitulées «Avant-propos» et «Annexe D : détails concernant le baccalauréat général», avec pour Texte de Cou-verture le titre et le nom exact de l’auteur, ainsi que l’adresse e-mail de l’auteur, et sans Textede Dernière de Couverture. Une copie de la licence est incluse dans le présent document à lasection 18.5. (en page 272)

Afin de rester le plus fidèle possible à l’esprit de la licence, et la version anglaise de celle-cifaisant foi en cas de désaccord, voici le texte original, traduit ci-dessus par l’auteur :

Copyright (c) 2000 Julien BLACHE.Permission is granted to copy, distribute and/or modify this document under the terms of

the GNU Free Documentation License, Version 1.1 as published by the Free Software Foun-dation ; with the Invariant Sections being “Avant-propos” and “Annexe D : détails concernantle baccalauréat général”, with the Front-Cover Texts being the exact title of the document, thename and e-mail address of the author, and with no Back-Cover Texts. A copy of the license isincluded in the section 18.5. (on page 272)

18.2 Concernant le domaine «etablissement.org»

Le domaine «etablissement.org» est pris ici à titre d’exemple, et uniquement à ce titre. L’au-teur déclare n’avoir aucune relation avec le propriétaire du domaine qui est :

[01-05-08 - 12:47:27] julien@thumper(pts/0 150):~% whois etablissement.org

Whois Server Version 1.3

Domain names in the .com, .net, and .org domains can now be registeredwith many different competing registrars. Go to http://www.internic.netfor detailed information.

Domain Name: ETABLISSEMENT.ORG

269

Page 270: BONdossier Info

18 Mentions légales

Registrar: NETWORK SOLUTIONS, INC.Whois Server: whois.networksolutions.comReferral URL: www.networksolutions.comName Server: NS1.NBC.NETCOM.CAName Server: NS2.NBC.NETCOM.CAName Server: TOR-NS2.NETCOM.CAUpdated Date: 01-feb-2001

>>> Last update of whois database: Mon, 7 May 2001 07:34:37 EDT <<<

The Registry database contains ONLY .COM, .NET, .ORG, .EDU domains andRegistrars.

Found InterNIC referral to whois.networksolutions.com.

The Data in Network Solutions’ WHOIS database is provided by NetworkSolutions for information purposes, and to assist persons in obtaininginformation about or related to a domain name registration record.Network Solutions does not guarantee its accuracy. By submitting aWHOIS query, you agree that you will use this Data only for lawfulpurposes and that, under no circumstances will you use this Data to:(1) allow, enable, or otherwise support the transmission of massunsolicited, commercial advertising or solicitations via e-mail(spam); or (2) enable high volume, automated, electronic processesthat apply to Network Solutions (or its systems). Network Solutionsreserves the right to modify these terms at any time. By submittingthis query, you agree to abide by this policy.

Registrant:Compucentre (ETABLISSEMENT-DOM)

1 Sunlight Park Rd. 2nd FloorToronto, Ont. M4M 1B5CA

Domain Name: ETABLISSEMENT.ORG

Administrative Contact, Billing Contact:Bradshaw, David (DB16506) [email protected] Sunlight Park Rd. 2nd FloorToronto, Ont. M4M 1B5CA+1 416 788 1300 (FAX) +1 416 778 1777

270

Page 271: BONdossier Info

18 Mentions légales

Technical Contact:AT&T Canada IES (SO69-ORG) [email protected]&T Canada IES905 King Street WestToronto, Ontario M6K 3G9CA416-341-5700Fax- 416-341-5725

Record last updated on 31-Jan-2001.Record expires on 09-Dec-2001.Record created on 09-Dec-1998.Database last updated on 7-May-2001 19:01:00 EDT.

Domain servers in listed order:

NS1.NBC.NETCOM.CA 207.181.89.2NS2.NBC.NETCOM.CA 207.181.89.3TOR-NS2.NETCOM.CA 207.181.101.5

L’auteur certifie les informations ci-dessus comme exactes au moment de la requête.L’auteur ne saurait en aucun cas être tenu responsable des problèmes que pourraient causer

l’utilisation des fichiers de configuration pour le serveur DNS Bind tels que fournis dans cedocument.

18.3 Marques citées dans ce document

Toutes les marques citées dans ce document sont des marques déposées par leurs proprié-taires respectifs aux États-Unis d’Amérique et/ou dans d’autres pays.

Linux est une marque déposée de Linus TORVALDS aux États-Unis d’Amérique et dansd’autres pays.

18.4 Scripts fournis dans le document

Les scripts fournis dans ce document sont Copyright (c) 2000 Julien BLACHE, à l’exceptiondes scripts firemasq.up.sh et firemasq.down.sh.

Ces fichiers sont des logiciels libres ; vous pouvez les redistribuer et/ou les modifier confor-mément aux termes de la GNU General Public License telle que publiée par la Free SoftwareFoundation ; dans sa version 2.

Ces fichiers sont distribués dans l’espoir qu’il deviendront utiles, mais SANS AUCUNEGARANTIE, ni implicite, ni explicite concernant leur commercialisation ou leur adaptationdans un but spécifique. Reportez-vous à la GNU General Public License pour plus de détails.

271

Page 272: BONdossier Info

18 Mentions légales

Vous devriez avoir reçu une copie de la GNU General Public License avec ces programmes ;si ce n’est pas le cas, écrivez à la Free Software Foundation, Inc., 59 Temple Place - Suite 330,Boston, MA 02111-1307, USA.

Dans le même soucis de respect que précédemment, et car là encore la version anglaise faitfoi, voici le texte original traduit ci-dessus par l’auteur :

Copyright (c) 2000 Julien BLACHE, except the firemasq.up.sh and firemasq.down.sh scripts.This program is free software ; you can redistribute it and/or modify it under the terms of

the GNU General Public License as published by the Free Software Foundation ; version 2.This program is distributed in the hope that it will be useful, but WITHOUT ANY WAR-

RANTY ; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PAR-TICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this pro-gram ; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,MA 02111-1307, USA.

Le texte complet de la GNU General Public License figure à la section 18.6, en page 279 duprésent document.

18.5 GNU Free Documentation License

Voici le texte intégral de la GNU Free Documentation License :

GNU Free Documentation LicenseVersion 1.1, March 2000

Copyright (C) 2000 Free Software Foundation, Inc.59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

Everyone is permitted to copy and distribute verbatim copiesof this license document, but changing it is not allowed.

0. PREAMBLE

The purpose of this License is to make a manual, textbook, or other written document "free"in the sense of freedom : to assure everyone the effective freedom to copy and redistribute it,with or without modifying it, either commercially or noncommercially. Secondarily, this Li-cense preserves for the author and publisher a way to get credit for their work, while not beingconsidered responsible for modifications made by others.

This License is a kind of "copyleft", which means that derivative works of the documentmust themselves be free in the same sense. It complements the GNU General Public License,which is a copyleft license designed for free software.

272

Page 273: BONdossier Info

18 Mentions légales

We have designed this License in order to use it for manuals for free software, because freesoftware needs free documentation : a free program should come with manuals providing thesame freedoms that the software does. But this License is not limited to software manuals ; itcan be used for any textual work, regardless of subject matter or whether it is published as aprinted book. We recommend this License principally for works whose purpose is instructionor reference.

1. APPLICABILITY AND DEFINITIONS

This License applies to any manual or other work that contains a notice placed by the co-pyright holder saying it can be distributed under the terms of this License. The "Document",below, refers to any such manual or work. Any member of the public is a licensee, and is ad-dressed as "you".

A "Modified Version" of the Document means any work containing the Document or aportion of it, either copied verbatim, or with modifications and/or translated into another lan-guage.

A "Secondary Section" is a named appendix or a front-matter section of the Document thatdeals exclusively with the relationship of the publishers or authors of the Document to theDocument’s overall subject (or to related matters) and contains nothing that could fall directlywithin that overall subject. (For example, if the Document is in part a textbook of mathematics,a Secondary Section may not explain any mathematics.) The relationship could be a matter ofhistorical connection with the subject or with related matters, or of legal, commercial, philoso-phical, ethical or political position regarding them.

The "Invariant Sections" are certain Secondary Sections whose titles are designated, as beingthose of Invariant Sections, in the notice that says that the Document is released under thisLicense.

The "Cover Texts" are certain short passages of text that are listed, as Front-Cover Texts orBack-Cover Texts, in the notice that says that the Document is released under this License.

A "Transparent" copy of the Document means a machine-readable copy, represented in aformat whose specification is available to the general public, whose contents can be viewedand edited directly and straightforwardly with generic text editors or (for images composed ofpixels) generic paint programs or (for drawings) some widely available drawing editor, andthat is suitable for input to text formatters or for automatic translation to a variety of for-mats suitable for input to text formatters. A copy made in an otherwise Transparent file formatwhose markup has been designed to thwart or discourage subsequent modification by readersis not Transparent. A copy that is not "Transparent" is called "Opaque".

Examples of suitable formats for Transparent copies include plain ASCII without markup,Texinfo input format, LATEX input format, SGML or XML using a publicly available DTD, and

273

Page 274: BONdossier Info

18 Mentions légales

standard-conforming simple HTML designed for human modification. Opaque formats in-clude PostScript, PDF, proprietary formats that can be read and edited only by proprietaryword processors, SGML or XML for which the DTD and/or processing tools are not generallyavailable, and the machine-generated HTML produced by some word processors for outputpurposes only.

The "Title Page" means, for a printed book, the title page itself, plus such following pagesas are needed to hold, legibly, the material this License requires to appear in the title page. Forworks in formats which do not have any title page as such, "Title Page" means the text near themost prominent appearance of the work’s title, preceding the beginning of the body of the text.

2. VERBATIM COPYING

You may copy and distribute the Document in any medium, either commercially or non-commercially, provided that this License, the copyright notices, and the license notice sayingthis License applies to the Document are reproduced in all copies, and that you add no otherconditions whatsoever to those of this License. You may not use technical measures to obstructor control the reading or further copying of the copies you make or distribute. However, youmay accept compensation in exchange for copies. If you distribute a large enough number ofcopies you must also follow the conditions in section 3.

You may also lend copies, under the same conditions stated above, and you may publiclydisplay copies.

3. COPYING IN QUANTITY

If you publish printed copies of the Document numbering more than 100, and the Docu-ment’s license notice requires Cover Texts, you must enclose the copies in covers that carry,clearly and legibly, all these Cover Texts : Front-Cover Texts on the front cover, and Back-CoverTexts on the back cover. Both covers must also clearly and legibly identify you as the publisherof these copies. The front cover must present the full title with all words of the title equallyprominent and visible. You may add other material on the covers in addition. Copying withchanges limited to the covers, as long as they preserve the title of the Document and satisfythese conditions, can be treated as verbatim copying in other respects.

If the required texts for either cover are too voluminous to fit legibly, you should put the firstones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacentpages.

If you publish or distribute Opaque copies of the Document numbering more than 100,you must either include a machine-readable Transparent copy along with each Opaque copy,or state in or with each Opaque copy a publicly-accessible computer-network location contai-ning a complete Transparent copy of the Document, free of added material, which the general

274

Page 275: BONdossier Info

18 Mentions légales

network-using public has access to download anonymously at no charge using public-standardnetwork protocols. If you use the latter option, you must take reasonably prudent steps, whenyou begin distribution of Opaque copies in quantity, to ensure that this Transparent copy willremain thus accessible at the stated location until at least one year after the last time you distri-bute an Opaque copy (directly or through your agents or retailers) of that edition to the public.

It is requested, but not required, that you contact the authors of the Document well be-fore redistributing any large number of copies, to give them a chance to provide you with anupdated version of the Document.

4. MODIFICATIONS

You may copy and distribute a Modified Version of the Document under the conditions ofsections 2 and 3 above, provided that you release the Modified Version under precisely thisLicense, with the Modified Version filling the role of the Document, thus licensing distributionand modification of the Modified Version to whoever possesses a copy of it. In addition, youmust do these things in the Modified Version :

A. Use in the Title Page (and on the covers, if any) a title distinct from that of the Document,and from those of previous versions (which should, if there were any, be listed in the Historysection of the Document). You may use the same title as a previous version if the originalpublisher of that version gives permission.

B. List on the Title Page, as authors, one or more persons or entities responsible for author-ship of the modifications in the Modified Version, together with at least five of the principalauthors of the Document (all of its principal authors, if it has less than five).

C. State on the Title page the name of the publisher of the Modified Version, as the publisher.D. Preserve all the copyright notices of the Document.E. Add an appropriate copyright notice for your modifications adjacent to the other copy-

right notices.F. Include, immediately after the copyright notices, a license notice giving the public per-

mission to use the Modified Version under the terms of this License, in the form shown in theAddendum below.

G. Preserve in that license notice the full lists of Invariant Sections and required Cover Textsgiven in the Document’s license notice.

H. Include an unaltered copy of this License.I. Preserve the section entitled "History", and its title, and add to it an item stating at least

the title, year, new authors, and publisher of the Modified Version as given on the Title Page. Ifthere is no section entitled "History" in the Document, create one stating the title, year, authors,and publisher of the Document as given on its Title Page, then add an item describing theModified Version as stated in the previous sentence.

J. Preserve the network location, if any, given in the Document for public access to a Trans-parent copy of the Document, and likewise the network locations given in the Document forprevious versions it was based on. These may be placed in the "History" section. You may omita network location for a work that was published at least four years before the Document itself,

275

Page 276: BONdossier Info

18 Mentions légales

or if the original publisher of the version it refers to gives permission.K. In any section entitled "Acknowledgements" or "Dedications", preserve the section’s title,

and preserve in the section all the substance and tone of each of the contributor acknowledge-ments and/or dedications given therein.

L. Preserve all the Invariant Sections of the Document, unaltered in their text and in theirtitles. Section numbers or the equivalent are not considered part of the section titles.

M. Delete any section entitled "Endorsements". Such a section may not be included in theModified Version.

N. Do not retitle any existing section as "Endorsements" or to conflict in title with any Inva-riant Section.

If the Modified Version includes new front-matter sections or appendices that qualify asSecondary Sections and contain no material copied from the Document, you may at your optiondesignate some or all of these sections as invariant. To do this, add their titles to the list ofInvariant Sections in the Modified Version’s license notice. These titles must be distinct fromany other section titles.

You may add a section entitled "Endorsements", provided it contains nothing but endorse-ments of your Modified Version by various parties–for example, statements of peer review orthat the text has been approved by an organization as the authoritative definition of a standard.

You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Onlyone passage of Front-Cover Text and one of Back-Cover Text may be added by (or througharrangements made by) any one entity. If the Document already includes a cover text for thesame cover, previously added by you or by arrangement made by the same entity you areacting on behalf of, you may not add another ; but you may replace the old one, on explicitpermission from the previous publisher that added the old one.

The author(s) and publisher(s) of the Document do not by this License give permission touse their names for publicity for or to assert or imply endorsement of any Modified Version.

5. COMBINING DOCUMENTS

You may combine the Document with other documents released under this License, underthe terms defined in section 4 above for modified versions, provided that you include in thecombination all of the Invariant Sections of all of the original documents, unmodified, and listthem all as Invariant Sections of your combined work in its license notice.

The combined work need only contain one copy of this License, and multiple identicalInvariant Sections may be replaced with a single copy. If there are multiple Invariant Sectionswith the same name but different contents, make the title of each such section unique by addingat the end of it, in parentheses, the name of the original author or publisher of that section if

276

Page 277: BONdossier Info

18 Mentions légales

known, or else a unique number. Make the same adjustment to the section titles in the list ofInvariant Sections in the license notice of the combined work.

In the combination, you must combine any sections entitled "History" in the various origi-nal documents, forming one section entitled "History" ; likewise combine any sections entitled"Acknowledgements", and any sections entitled "Dedications". You must delete all sections en-titled "Endorsements."

6. COLLECTIONS OF DOCUMENTS

You may make a collection consisting of the Document and other documents released underthis License, and replace the individual copies of this License in the various documents with asingle copy that is included in the collection, provided that you follow the rules of this Licensefor verbatim copying of each of the documents in all other respects.

You may extract a single document from such a collection, and distribute it individuallyunder this License, provided you insert a copy of this License into the extracted document, andfollow this License in all other respects regarding verbatim copying of that document.

7. AGGREGATION WITH INDEPENDENT WORKS

A compilation of the Document or its derivatives with other separate and independentdocuments or works, in or on a volume of a storage or distribution medium, does not as awhole count as a Modified Version of the Document, provided no compilation copyright isclaimed for the compilation. Such a compilation is called an "aggregate", and this License doesnot apply to the other self-contained works thus compiled with the Document, on account oftheir being thus compiled, if they are not themselves derivative works of the Document.

If the Cover Text requirement of section 3 is applicable to these copies of the Document, thenif the Document is less than one quarter of the entire aggregate, the Document’s Cover Textsmay be placed on covers that surround only the Document within the aggregate. Otherwisethey must appear on covers around the whole aggregate.

8. TRANSLATION

Translation is considered a kind of modification, so you may distribute translations of theDocument under the terms of section 4. Replacing Invariant Sections with translations requiresspecial permission from their copyright holders, but you may include translations of some orall Invariant Sections in addition to the original versions of these Invariant Sections. You mayinclude a translation of this License provided that you also include the original English ver-sion of this License. In case of a disagreement between the translation and the original Englishversion of this License, the original English version will prevail.

277

Page 278: BONdossier Info

18 Mentions légales

9. TERMINATION

You may not copy, modify, sublicense, or distribute the Document except as expressly pro-vided for under this License. Any other attempt to copy, modify, sublicense or distribute theDocument is void, and will automatically terminate your rights under this License. However,parties who have received copies, or rights, from you under this License will not have theirlicenses terminated so long as such parties remain in full compliance.

10. FUTURE REVISIONS OF THIS LICENSE

The Free Software Foundation may publish new, revised versions of the GNU Free Do-cumentation License from time to time. Such new versions will be similar in spirit to thepresent version, but may differ in detail to address new problems or concerns. See http://www.gnu.org/copyleft/ .

Each version of the License is given a distinguishing version number. If the Document spe-cifies that a particular numbered version of this License "or any later version" applies to it, youhave the option of following the terms and conditions either of that specified version or of anylater version that has been published (not as a draft) by the Free Software Foundation. If theDocument does not specify a version number of this License, you may choose any version everpublished (not as a draft) by the Free Software Foundation.

ADDENDUM : How to use this License for your documents

To use this License in a document you have written, include a copy of the License in thedocument and put the following copyright and license notices just after the title page :

Copyright (c) YEAR YOUR NAME.Permission is granted to copy, distribute and/or modify this documentunder the terms of the GNU Free Documentation License, Version 1.1or any later version published by the Free Software Foundation ;with the Invariant Sections being LIST THEIR TITLES, with theFront-Cover Texts being LIST, and with the Back-Cover Texts being LIST.A copy of the license is included in the section entitled "GNUFree Documentation License".

If you have no Invariant Sections, write "with no Invariant Sections" instead of saying whichones are invariant. If you have no Front-Cover Texts, write "no Front-Cover Texts" instead of"Front-Cover Texts being LIST" ; likewise for Back-Cover Texts.

278

Page 279: BONdossier Info

18 Mentions légales

If your document contains nontrivial examples of program code, we recommend releasingthese examples in parallel under your choice of free software license, such as the GNU GeneralPublic License, to permit their use in free software.

18.6 GNU General Public License

Voici le texte intégral de la GNU General Public License :

GNU GENERAL PUBLIC LICENSEVersion 2, June 1991

Copyright (C) 1989, 1991 Free Software Foundation, Inc.59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

Everyone is permitted to copy and distribute verbatim copiesof this license document, but changing it is not allowed.

Preamble

The licenses for most software are designed to take away your freedom to share and changeit. By contrast, the GNU General Public License is intended to guarantee your freedom to shareand change free software–to make sure the software is free for all its users. This General PublicLicense applies to most of the Free Software Foundation’s software and to any other programwhose authors commit to using it. (Some other Free Software Foundation software is coveredby the GNU Library General Public License instead.) You can apply it to your programs, too.

When we speak of free software, we are referring to freedom, not price. Our General Pu-blic Licenses are designed to make sure that you have the freedom to distribute copies of freesoftware (and charge for this service if you wish), that you receive source code or can get it ifyou want it, that you can change the software or use pieces of it in new free programs ; and thatyou know you can do these things.

To protect your rights, we need to make restrictions that forbid anyone to deny you theserights or to ask you to surrender the rights. These restrictions translate to certain responsibilitiesfor you if you distribute copies of the software, or if you modify it.

For example, if you distribute copies of such a program, whether gratis or for a fee, youmust give the recipients all the rights that you have. You must make sure that they, too, receiveor can get the source code. And you must show them these terms so they know their rights.

We protect your rights with two steps : (1) copyright the software, and (2) offer you thislicense which gives you legal permission to copy, distribute and/or modify the software.

Also, for each author’s protection and ours, we want to make certain that everyone unders-tands that there is no warranty for this free software. If the software is modified by someone

279

Page 280: BONdossier Info

18 Mentions légales

else and passed on, we want its recipients to know that what they have is not the original, sothat any problems introduced by others will not reflect on the original authors’ reputations.

Finally, any free program is threatened constantly by software patents. We wish to avoid thedanger that redistributors of a free program will individually obtain patent licenses, in effectmaking the program proprietary. To prevent this, we have made it clear that any patent mustbe licensed for everyone’s free use or not licensed at all.

The precise terms and conditions for copying, distribution and modification follow.

GNU GENERAL PUBLIC LICENSETERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

0. This License applies to any program or other work which contains a notice placed by thecopyright holder saying it may be distributed under the terms of this General Public License.The "Program", below, refers to any such program or work, and a "work based on the Program"means either the Program or any derivative work under copyright law : that is to say, a workcontaining the Program or a portion of it, either verbatim or with modifications and/or trans-lated into another language. (Hereinafter, translation is included without limitation in the term"modification".) Each licensee is addressed as "you".

Activities other than copying, distribution and modification are not covered by this License ;they are outside its scope. The act of running the Program is not restricted, and the outputfrom the Program is covered only if its contents constitute a work based on the Program (inde-pendent of having been made by running the Program). Whether that is true depends on whatthe Program does.

1. You may copy and distribute verbatim copies of the Program’s source code as you receiveit, in any medium, provided that you conspicuously and appropriately publish on each copyan appropriate copyright notice and disclaimer of warranty ; keep intact all the notices thatrefer to this License and to the absence of any warranty ; and give any other recipients of theProgram a copy of this License along with the Program.

You may charge a fee for the physical act of transferring a copy, and you may at your optionoffer warranty protection in exchange for a fee.

2. You may modify your copy or copies of the Program or any portion of it, thus forminga work based on the Program, and copy and distribute such modifications or work under theterms of Section 1 above, provided that you also meet all of these conditions :

a) You must cause the modified files to carry prominent notices stating that you changedthe files and the date of any change.

b) You must cause any work that you distribute or publish, that in whole or in partcontains or is derived from the Program or any part thereof, to be licensed as a whole at no

280

Page 281: BONdossier Info

18 Mentions légales

charge to all third parties under the terms of this License.

c) If the modified program normally reads commands interactively when run, you mustcause it, when started running for such interactive use in the most ordinary way, to print ordisplay an announcement including an appropriate copyright notice and a notice that there isno warranty (or else, saying that you provide a warranty) and that users may redistribute theprogram under these conditions, and telling the user how to view a copy of this License. (Ex-ception : if the Program itself is interactive but does not normally print such an announcement,your work based on the Program is not required to print an announcement.)

These requirements apply to the modified work as a whole. If identifiable sections of thatwork are not derived from the Program, and can be reasonably considered independent andseparate works in themselves, then this License, and its terms, do not apply to those sectionswhen you distribute them as separate works. But when you distribute the same sections as partof a whole which is a work based on the Program, the distribution of the whole must be on theterms of this License, whose permissions for other licensees extend to the entire whole, andthus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest your rights to work writtenentirely by you ; rather, the intent is to exercise the right to control the distribution of derivativeor collective works based on the Program.

In addition, mere aggregation of another work not based on the Program with the Program(or with a work based on the Program) on a volume of a storage or distribution medium doesnot bring the other work under the scope of this License.

3. You may copy and distribute the Program (or a work based on it, under Section 2) inobject code or executable form under the terms of Sections 1 and 2 above provided that youalso do one of the following :

a) Accompany it with the complete corresponding machine-readable source code, whichmust be distributed under the terms of Sections 1 and 2 above on a medium customarily usedfor software interchange ; or,

b) Accompany it with a written offer, valid for at least three years, to give any third party,for a charge no more than your cost of physically performing source distribution, a completemachine-readable copy of the corresponding source code, to be distributed under the terms ofSections 1 and 2 above on a medium customarily used for software interchange ; or,

c) Accompany it with the information you received as to the offer to distribute correspon-ding source code. (This alternative is allowed only for noncommercial distribution and only ifyou received the program in object code or executable form with such an offer, in accord withSubsection b above.)

The source code for a work means the preferred form of the work for making modifications

281

Page 282: BONdossier Info

18 Mentions légales

to it. For an executable work, complete source code means all the source code for all modulesit contains, plus any associated interface definition files, plus the scripts used to control com-pilation and installation of the executable. However, as a special exception, the source codedistributed need not include anything that is normally distributed (in either source or binaryform) with the major components (compiler, kernel, and so on) of the operating system onwhich the executable runs, unless that component itself accompanies the executable.

If distribution of executable or object code is made by offering access to copy from a de-signated place, then offering equivalent access to copy the source code from the same placecounts as distribution of the source code, even though third parties are not compelled to copythe source along with the object code.

4. You may not copy, modify, sublicense, or distribute the Program except as expressly pro-vided under this License. Any attempt otherwise to copy, modify, sublicense or distribute theProgram is void, and will automatically terminate your rights under this License. However,parties who have received copies, or rights, from you under this License will not have theirlicenses terminated so long as such parties remain in full compliance.

5. You are not required to accept this License, since you have not signed it. However, no-thing else grants you permission to modify or distribute the Program or its derivative works.These actions are prohibited by law if you do not accept this License. Therefore, by modifyingor distributing the Program (or any work based on the Program), you indicate your acceptanceof this License to do so, and all its terms and conditions for copying, distributing or modifyingthe Program or works based on it.

6. Each time you redistribute the Program (or any work based on the Program), the recipientautomatically receives a license from the original licensor to copy, distribute or modify theProgram subject to these terms and conditions. You may not impose any further restrictionson the recipients’ exercise of the rights granted herein. You are not responsible for enforcingcompliance by third parties to this License.

7. If, as a consequence of a court judgment or allegation of patent infringement or for anyother reason (not limited to patent issues), conditions are imposed on you (whether by courtorder, agreement or otherwise) that contradict the conditions of this License, they do not excuseyou from the conditions of this License. If you cannot distribute so as to satisfy simultaneouslyyour obligations under this License and any other pertinent obligations, then as a consequenceyou may not distribute the Program at all. For example, if a patent license would not permitroyalty-free redistribution of the Program by all those who receive copies directly or indirectlythrough you, then the only way you could satisfy both it and this License would be to refrainentirely from distribution of the Program.

If any portion of this section is held invalid or unenforceable under any particular circum-stance, the balance of the section is intended to apply and the section as a whole is intended toapply in other circumstances.

282

Page 283: BONdossier Info

18 Mentions légales

It is not the purpose of this section to induce you to infringe any patents or other propertyright claims or to contest validity of any such claims ; this section has the sole purpose of pro-tecting the integrity of the free software distribution system, which is implemented by publiclicense practices. Many people have made generous contributions to the wide range of soft-ware distributed through that system in reliance on consistent application of that system ; it isup to the author/donor to decide if he or she is willing to distribute software through any othersystem and a licensee cannot impose that choice.

This section is intended to make thoroughly clear what is believed to be a consequence ofthe rest of this License.

8. If the distribution and/or use of the Program is restricted in certain countries either bypatents or by copyrighted interfaces, the original copyright holder who places the Programunder this License may add an explicit geographical distribution limitation excluding thosecountries, so that distribution is permitted only in or among countries not thus excluded. Insuch case, this License incorporates the limitation as if written in the body of this License.

9. The Free Software Foundation may publish revised and/or new versions of the GeneralPublic License from time to time. Such new versions will be similar in spirit to the presentversion, but may differ in detail to address new problems or concerns.

Each version is given a distinguishing version number. If the Program specifies a versionnumber of this License which applies to it and "any later version", you have the option offollowing the terms and conditions either of that version or of any later version published bythe Free Software Foundation. If the Program does not specify a version number of this License,you may choose any version ever published by the Free Software Foundation.

10. If you wish to incorporate parts of the Program into other free programs whose distri-bution conditions are different, write to the author to ask for permission. For software which iscopyrighted by the Free Software Foundation, write to the Free Software Foundation ; we so-metimes make exceptions for this. Our decision will be guided by the two goals of preservingthe free status of all derivatives of our free software and of promoting the sharing and reuse ofsoftware generally.

NO WARRANTY

11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WAR-RANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EX-CEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OROTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND,EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIEDWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM ISWITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OFALL NECESSARY SERVICING, REPAIR OR CORRECTION.

283

Page 284: BONdossier Info

18 Mentions légales

12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRI-TING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFYAND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOUFOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUEN-TIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (IN-CLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INAC-CURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THEPROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OROTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

END OF TERMS AND CONDITIONS

How to Apply These Terms to Your New Programs

If you develop a new program, and you want it to be of the greatest possible use to thepublic, the best way to achieve this is to make it free software which everyone can redistributeand change under these terms.

To do so, attach the following notices to the program. It is safest to attach them to the startof each source file to most effectively convey the exclusion of warranty ; and each file shouldhave at least the "copyright" line and a pointer to where the full notice is found.

<one line to give the program’s name and a brief idea of what it does.>Copyright (C) yyyy <name of author>

This program is free software ; you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation ; either version 2 of the License, or(at your option) any later version.

This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY ; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See theGNU General Public License for more details.

You should have received a copy of the GNU General Public Licensealong with this program ; if not, write to the Free SoftwareFoundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

Also add information on how to contact you by electronic and paper mail.

If the program is interactive, make it output a short notice like this when it starts in aninteractive mode :

284

Page 285: BONdossier Info

18 Mentions légales

Gnomovision version 69, Copyright (C) 19yy name of authorGnomovision comes with ABSOLUTELY NO WARRANTY ; for details type ‘show w’.This is free software, and you are welcome to redistribute itunder certain conditions ; type ‘show c’ for details.

The hypothetical commands ‘show w’ and ‘show c’ should show the appropriate parts ofthe General Public License. Of course, the commands you use may be called something otherthan ‘show w’ and ‘show c’ ; they could even be mouse-clicks or menu items–whatever suitsyour program.

You should also get your employer (if you work as a programmer) or your school, if any, tosign a "copyright disclaimer" for the program, if necessary. Here is a sample ; alter the names :

Yoyodyne, Inc., hereby disclaims all copyright interest in the program‘Gnomovision’ (which makes passes at compilers) written by James Hacker.

<signature of Ty Coon>, 1 April 1989Ty Coon, President of Vice

This General Public License does not permit incorporating your program into proprietaryprograms. If your program is a subroutine library, you may consider it more useful to permitlinking proprietary applications with the library. If this is what you want to do, use the GNULibrary General Public License instead of this License.

285