Вы находитесь на странице: 1из 285

Mise en place dun service daccs Internet et services associs pour les lves

Julien BLACHE <mailto:jb@jblache.org> Version 2.15 - 21 Juin 2001

Table des matires

Avant-propos 1 Architecture 1.1 Description . . . . . . . . . . . . . . . . . . 1.2 Rpartition des machines . . . . . . . . . 1.3 Conguration matrielle . . . . . . . . . . 1.3.1 Conguration du serveur . . . . . 1.3.2 Conguration du serveur daccs . 1.3.3 Conguration des postes clients . 1.3.4 Note propos du matriel . . . . . 1.4 Rseau interne . . . . . . . . . . . . . . . . 1.4.1 Fournitures . . . . . . . . . . . . . 1.5 Connexion Internet . . . . . . . . . . . . 1.5.1 Dbit . . . . . . . . . . . . . . . . . 1.5.2 Adresses IP . . . . . . . . . . . . . 1.5.3 Nommage des machines . . . . . . 1.5.4 Fournitures . . . . . . . . . . . . . 1.6 Autre matriel . . . . . . . . . . . . . . . . 1.6.1 Imprimantes . . . . . . . . . . . . .

12 13 13 13 14 14 15 15 15 16 16 16 16 16 17 17 17 17 18 18 18 18 19 19 20 21 21 21 21 22 22 22 22 22

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

2 Choix du systme dexploitation et logithque 2.1 Systme dexploitation . . . . . . . . . . . . . . . . . . . . . . . 2.1.1 MS-Windows 9x . . . . . . . . . . . . . . . . . . . . . . 2.1.2 MS-Windows NT . . . . . . . . . . . . . . . . . . . . . . 2.1.3 Que reste-t-il ? . . . . . . . . . . . . . . . . . . . . . . . . 2.1.3.1 Un peu dhistoire . . . . . . . . . . . . . . . . 2.1.3.2 La distribution choisie : Debian GNU/Linux 2.2 La logithque . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.1 GNOME, lenvironnement graphique . . . . . . . . . . 2.2.1.1 Gestionnaires de fentres . . . . . . . . . . . . 2.2.2 Netscape, le navigateur Internet . . . . . . . . . . . . . 2.2.3 Mozilla, le prochain Netscape . . . . . . . . . . . . . . . 2.2.4 Logiciels de transfert de chiers . . . . . . . . . . . . . 2.2.4.1 ProFTPd . . . . . . . . . . . . . . . . . . . . . 2.2.4.2 GFTP . . . . . . . . . . . . . . . . . . . . . . . 2.2.4.3 IglooFTP . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

Table des matires 2.2.4.4 NcFTP . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.5 Squid, le proxy HTTP . . . . . . . . . . . . . . . . . . . . . . . 2.2.6 Bind, le serveur DNS . . . . . . . . . . . . . . . . . . . . . . . . 2.2.7 Samba, interoprabilit avec lenvironnement MS-Windows . 2.2.8 Logiciels de communication . . . . . . . . . . . . . . . . . . . . 2.2.8.1 Pour le mail . . . . . . . . . . . . . . . . . . . . . . . . 2.2.8.1.1 Sendmail, le serveur SMTP . . . . . . . . . . 2.2.8.1.2 Qpopper, le serveur POP3 . . . . . . . . . . 2.2.8.1.3 Netscape . . . . . . . . . . . . . . . . . . . . 2.2.8.1.4 Mozilla . . . . . . . . . . . . . . . . . . . . . 2.2.8.1.5 Balsa . . . . . . . . . . . . . . . . . . . . . . 2.2.8.1.6 Gnus . . . . . . . . . . . . . . . . . . . . . . 2.2.8.1.7 Mutt . . . . . . . . . . . . . . . . . . . . . . . 2.2.8.2 Pour les news . . . . . . . . . . . . . . . . . . . . . . 2.2.8.2.1 INN, le serveur de news . . . . . . . . . . . 2.2.8.2.2 Netscape . . . . . . . . . . . . . . . . . . . . 2.2.8.2.3 Mozilla . . . . . . . . . . . . . . . . . . . . . 2.2.8.2.4 Pan . . . . . . . . . . . . . . . . . . . . . . . 2.2.8.2.5 Gnus . . . . . . . . . . . . . . . . . . . . . . 2.2.8.2.6 Slrn . . . . . . . . . . . . . . . . . . . . . . . 2.2.9 Suite bureautique . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.9.1 StarOfce/OpenOfce, la suite bureatique selon Sun 2.2.9.2 Gnumeric, le tableur selon GNOME . . . . . . . . . . 2.2.9.3 AbiWord . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.10 diteurs de texte . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.10.1 Emacs . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.10.2 Vi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A 2.2.11 L TEX, le processeur de texte . . . . . . . . . . . . . . . . . . . . 2.2.12 Logiciels pdagogiques . . . . . . . . . . . . . . . . . . . . . . 2.2.12.1 wget . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.12.2 TiLP . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.12.3 Bluesh . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.12.4 Screem . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.12.5 xsky . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.12.6 RasMol . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.12.7 Xephem . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.12.8 Lum . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.12.9 Mek . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.12.10 Xem . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.12.11 MuPAD . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.12.12 SciLab . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.12.13 GNUPlot . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.12.14 Dia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.12.15 BWBasic . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.12.16 DrGeo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 22 23 23 23 23 23 23 23 23 23 23 24 24 24 24 24 24 24 24 24 24 25 25 25 25 25 25 26 26 26 26 26 26 27 27 27 27 27 27 27 27 27 27 28

Table des matires 2.2.12.17 The GIMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.12.18 Moonlight Creator . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.12.19 Blender . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Description des services proposs 3.1 Une adresse e-mail pour tous . . 3.2 Un Web pour tous . . . . . . . . . 3.3 Les news pour tous . . . . . . . . 3.4 Autres services . . . . . . . . . . 28 28 28 29 29 29 29 30

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

4 Descriptions et explications techniques de certains services 31 4.1 DNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.2 Usenet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 5 Mise en place matrielle 5.1 Liaison . . . . . . . . . . . . 5.2 Rseau . . . . . . . . . . . . 5.3 Machines . . . . . . . . . . . 5.3.1 Serveur . . . . . . . . 5.3.2 Serveur daccs . . . 5.3.3 Clients . . . . . . . . 5.4 Disponibilit des machines . 33 33 33 35 35 35 35 35 36 36 38 38 39 40 40 41 41 41 41 42 42 42 42 43 43 43 44 44 44

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

6 Installation du systme Debian GNU/Linux 6.1 Serveur . . . . . . . . . . . . . . . . . . . . 6.2 Serveur daccs . . . . . . . . . . . . . . . 6.3 Machines clientes . . . . . . . . . . . . . . 6.3.1 Rplication des machines clientes 6.4 Shadow passwords et MD5 . . . . . . . . 6.5 Note propos des logiciels . . . . . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

7 root, le super-utilisateur 7.1 Les oprations rserves . . . . . . . . . . . . 7.2 Scurit . . . . . . . . . . . . . . . . . . . . . . 7.2.1 Ne pas travailler en root . . . . . . . . 7.2.2 Rpertoire personnel . . . . . . . . . . 7.2.3 Contourner les problmes de droits . 7.2.3.1 Lutilitaire su . . . . . . . . . 7.2.3.2 Lutilitaire sudo . . . . . . . . 7.2.3.3 Le bit setUID . . . . . . . . . 7.2.4 Permissions spciales . . . . . . . . . 7.2.5 Lecteurs de disquettes et de CD-ROM 7.3 Condentialit . . . . . . . . . . . . . . . . . . 7.3.1 Mot de passe du root . . . . . . . . . . 7.3.2 Donnes utilisateurs . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

Table des matires 8 Conguration du serveur 8.1 Compilation du noyau . . . . . . . . . . . . . . . . . . 8.2 Interfaces rseau . . . . . . . . . . . . . . . . . . . . . . 8.3 Bind, serveur DNS . . . . . . . . . . . . . . . . . . . . 8.3.1 Note importante . . . . . . . . . . . . . . . . . 8.3.2 /etc/bind/named.conf . . . . . . . . . . . . . 8.3.3 /var/cache/bind/masters/xxx.xxx.xxx . . . . 8.3.4 /var/cache/bind/masters/etablissement.org 8.3.5 Maintenance . . . . . . . . . . . . . . . . . . . . 8.3.6 Redmarrage de Bind . . . . . . . . . . . . . . 8.3.7 /etc/resolv.conf . . . . . . . . . . . . . . . . . . 8.3.8 /etc/nsswitch.conf . . . . . . . . . . . . . . . . 8.3.9 /etc/host.conf . . . . . . . . . . . . . . . . . . . 8.3.10 /etc/hosts . . . . . . . . . . . . . . . . . . . . . 8.4 Sendmail, serveur SMTP . . . . . . . . . . . . . . . . . 8.4.1 /etc/mail/sendmail.cf . . . . . . . . . . . . . . 8.4.2 /etc/mail/access . . . . . . . . . . . . . . . . . 8.4.3 /etc/mail/aliases . . . . . . . . . . . . . . . . . 8.4.4 /etc/mail/domaintable . . . . . . . . . . . . . 8.4.5 /etc/mail/genericstable . . . . . . . . . . . . . 8.4.6 /etc/mail/local-host-names . . . . . . . . . . 8.4.7 /etc/mail/mailertable . . . . . . . . . . . . . . 8.4.8 /etc/mail/relay-domains . . . . . . . . . . . . 8.4.9 /etc/mail/sendmail.ct . . . . . . . . . . . . . . 8.4.10 /etc/mail/service.switch . . . . . . . . . . . . 8.4.11 /etc/mail/virtusertable . . . . . . . . . . . . . 8.4.12 Redmarrage de sendmail . . . . . . . . . . . . 8.5 Qpopper, le serveur POP3 . . . . . . . . . . . . . . . . 8.6 NIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.6.1 /etc/hosts . . . . . . . . . . . . . . . . . . . . . 8.6.2 /etc/defaultdomain . . . . . . . . . . . . . . . 8.6.3 /etc/init.d/nis . . . . . . . . . . . . . . . . . . 8.6.4 /etc/ypserv.securenets . . . . . . . . . . . . . . 8.6.5 /etc/ypserv.conf . . . . . . . . . . . . . . . . . 8.6.6 /etc/nsswitch.conf . . . . . . . . . . . . . . . . 8.6.7 /var/yp/Makele . . . . . . . . . . . . . . . . 8.6.8 Fin de la conguration du serveur . . . . . . . 8.6.9 Dmarrage du serveur NIS . . . . . . . . . . . 8.7 Cration dun utilisateur . . . . . . . . . . . . . . . . . 8.7.1 Mis jour des maps NIS . . . . . . . . . . . . . 8.8 Quotas disque . . . . . . . . . . . . . . . . . . . . . . . 8.8.1 /etc/fstab . . . . . . . . . . . . . . . . . . . . . 8.8.2 quota.user et quota.group . . . . . . . . . . . . 8.8.3 Activation des quotas . . . . . . . . . . . . . . 8.8.4 Attribution des quotas . . . . . . . . . . . . . . 45 45 49 50 51 51 53 54 55 56 56 57 57 57 58 58 61 61 62 63 63 63 63 63 64 64 64 64 64 65 65 65 66 66 67 67 68 68 68 68 68 69 69 69 70

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Table des matires 8.8.5 Maintenance . . . . . . . . . . . . . . . . . . . 8.9 NFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.9.1 /etc/exports . . . . . . . . . . . . . . . . . . . 8.9.2 Un peu de scurit . . . . . . . . . . . . . . . 8.9.2.1 /etc/hosts.deny . . . . . . . . . . . 8.9.2.2 /etc/hosts.allow . . . . . . . . . . . 8.9.3 Redmarrage du service NFS . . . . . . . . . 8.10 Samba . . . . . . . . . . . . . . . . . . . . . . . . . . 8.10.1 /etc/samba/smb.conf . . . . . . . . . . . . . 8.10.2 Redmarrage de Samba . . . . . . . . . . . . 8.10.3 Utilisation . . . . . . . . . . . . . . . . . . . . 8.11 INN, le serveur de news . . . . . . . . . . . . . . . . 8.11.1 Particularit : lutilisateur news . . . . . . . . 8.11.2 /var/spool/news . . . . . . . . . . . . . . . 8.11.3 /etc/news/inn.conf . . . . . . . . . . . . . . 8.11.4 /etc/news/hosts.nntp . . . . . . . . . . . . . 8.11.5 /etc/news/nnrp.access . . . . . . . . . . . . 8.11.6 /etc/news/newsfeeds . . . . . . . . . . . . . 8.11.7 /etc/news/moderators . . . . . . . . . . . . 8.11.8 /etc/news/control.ctl . . . . . . . . . . . . . 8.11.9 /etc/news/expire.ctl . . . . . . . . . . . . . . 8.11.10 /etc/news/incoming.conf . . . . . . . . . . . 8.11.11 /etc/news/innfeed.conf . . . . . . . . . . . . 8.11.12 /etc/news/innreport.conf . . . . . . . . . . . 8.11.13 /etc/news/motd.news . . . . . . . . . . . . 8.11.14 /var/lib/news/active . . . . . . . . . . . . . 8.11.15 /var/lib/news/history . . . . . . . . . . . . 8.11.16 /var/lib/news/newsgroups . . . . . . . . . 8.11.17 Vrication de la conguration . . . . . . . . 8.11.18 Redmarrage de INN . . . . . . . . . . . . . 8.11.19 CleanFeed, la lutte anti-spam . . . . . . . . . 8.11.19.1 Installation . . . . . . . . . . . . . . 8.11.19.2 Conguration . . . . . . . . . . . . 8.11.19.3 Activation du ltre . . . . . . . . . 8.11.20 Constitution des chiers active et newsgroups 8.11.21 Trouver un feed . . . . . . . . . . . . . . . . . 8.12 Apache, le serveur HTTP . . . . . . . . . . . . . . . . 8.12.1 /etc/apache/httpd.conf . . . . . . . . . . . . 8.12.2 /etc/apache/srm.conf . . . . . . . . . . . . . 8.12.3 /etc/apache/access.conf . . . . . . . . . . . 8.12.4 Ngociation de contenu . . . . . . . . . . . . 8.12.5 Serveurs virtuels . . . . . . . . . . . . . . . . 8.12.5.1 www.etablissement.org . . . . . . . 8.12.5.2 eleves.etablissement.org . . . . . . 8.12.5.3 profs.etablissement.org . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 71 71 72 72 72 73 73 73 76 76 76 76 77 77 80 81 82 83 84 84 85 88 91 92 93 93 93 93 94 94 94 94 100 100 101 102 102 109 114 117 118 118 118 119

Table des matires 8.12.6 Redmarrage dApache . . . . . . ProFTPd, le serveur FTP . . . . . . . . . . 8.13.1 /etc/proftpd.conf . . . . . . . . . 8.13.2 Redmarrage de ProFTPd . . . . . Remarque concernant Apache et ProFTPd NTP, synchronisation de lheure . . . . . . SNMPD, surveillance rseau . . . . . . . . MRTG, statistiques rseau . . . . . . . . . Sauvegarde des donnes . . . . . . . . . . 8.18.1 Restauration des donnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 119 119 121 121 121 122 130 134 135 136 136 140 141 141 144 144 144 144 145 145 145 146 148 149 150 150 150 150 151 151 151 151 151 152 152 152 153 153 153 153 154 154 154

8.13

8.14 8.15 8.16 8.17 8.18

9 Conguration du serveur daccs 9.1 Compilation du noyau . . . . . . . . . . . . 9.2 Interfaces rseau . . . . . . . . . . . . . . . . 9.3 Bind, serveur DNS . . . . . . . . . . . . . . 9.3.1 /etc/bind/named.conf . . . . . . . 9.3.2 Maintenance . . . . . . . . . . . . . . 9.3.3 Redmarrage de Bind . . . . . . . . 9.3.4 /etc/resolv.conf . . . . . . . . . . . . 9.3.5 /etc/nsswitch.conf . . . . . . . . . . 9.3.6 /etc/host.conf . . . . . . . . . . . . . 9.3.7 /etc/hosts . . . . . . . . . . . . . . . 9.4 Sendmail, serveur SMTP . . . . . . . . . . . 9.4.1 /etc/mail/sendmail.cf . . . . . . . . 9.4.2 /etc/mail/access . . . . . . . . . . . 9.4.3 /etc/mail/aliases . . . . . . . . . . . 9.4.4 /etc/mail/domaintable . . . . . . . 9.4.5 /etc/mail/genericstable . . . . . . . 9.4.6 /etc/mail/local-host-names . . . . 9.4.7 /etc/mail/mailertable . . . . . . . . 9.4.8 /etc/mail/relay-domains . . . . . . 9.4.9 /etc/mail/sendmail.ct . . . . . . . . 9.4.10 /etc/mail/service.switch . . . . . . 9.4.11 /etc/mail/virtusertable . . . . . . . 9.4.12 Redmarrage de Sendmail . . . . . . 9.5 NFS . . . . . . . . . . . . . . . . . . . . . . . 9.5.1 /etc/hosts . . . . . . . . . . . . . . . 9.5.2 /etc/fstab . . . . . . . . . . . . . . . 9.5.3 Redmarrage de nfs-common . . . . 9.5.4 Montage manuel des volumes NFS . 9.6 NIS . . . . . . . . . . . . . . . . . . . . . . . 9.6.1 /etc/hosts . . . . . . . . . . . . . . . 9.6.2 /etc/defaultdomain . . . . . . . . . 9.6.3 /etc/init.d/nis . . . . . . . . . . . . 9.6.4 /etc/yp.conf . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Table des matires 9.6.5 /etc/passwd . . . . . . . . . . . . . . . . . . . . . . 9.6.6 /etc/group . . . . . . . . . . . . . . . . . . . . . . . 9.6.7 Redmarrage de NIS . . . . . . . . . . . . . . . . . . 9.7 Permettre laccs Internet - rewalling et masquerading . 9.7.1 /sbin/remasq.up.sh . . . . . . . . . . . . . . . . . 9.7.2 /sbin/remasq.down.sh . . . . . . . . . . . . . . . . 9.7.3 Modules noyau . . . . . . . . . . . . . . . . . . . . . 9.7.4 /etc/init.d/remasq . . . . . . . . . . . . . . . . . . 9.7.5 Dmarrage du rewalling . . . . . . . . . . . . . . . 9.8 Serveur proxy . . . . . . . . . . . . . . . . . . . . . . . . . . 9.8.1 Squid - /etc/squid.conf . . . . . . . . . . . . . . . . 9.8.2 Installation de SquidGuard . . . . . . . . . . . . . . 9.8.3 /etc/squidGuard.conf . . . . . . . . . . . . . . . . . 9.8.4 Pages de redirection . . . . . . . . . . . . . . . . . . 9.8.4.1 Sites pour adultes . . . . . . . . . . . . . . 9.8.4.2 Sites proposant des logiciels pirats . . . . 9.8.4.3 Sites proposant divers moyens de piratage 9.8.4.4 Sites de publicit . . . . . . . . . . . . . . . 9.8.5 Listes noires . . . . . . . . . . . . . . . . . . . . . . . 9.8.5.1 Installation . . . . . . . . . . . . . . . . . . 9.8.5.2 Maintenance . . . . . . . . . . . . . . . . . 9.8.6 Redmarrage de Squid . . . . . . . . . . . . . . . . . 9.9 Serveur dimpression . . . . . . . . . . . . . . . . . . . . . . 9.9.1 Conguration des imprimantes . . . . . . . . . . . . 9.9.2 apslter . . . . . . . . . . . . . . . . . . . . . . . . . 9.9.3 /etc/printcap . . . . . . . . . . . . . . . . . . . . . . 9.9.4 Conguration de laccs . . . . . . . . . . . . . . . . 9.9.5 Redmarrage de lpd . . . . . . . . . . . . . . . . . . 9.10 NTP, synchronisation de lheure . . . . . . . . . . . . . . . . 9.11 SNMPD, surveillance rseau . . . . . . . . . . . . . . . . . . 10 Conguration des machines clientes 10.1 Compilation du noyau . . . . . . . . . . 10.2 Interface rseau . . . . . . . . . . . . . . 10.3 Conguration de la rsolution de noms 10.3.1 /etc/resolv.conf . . . . . . . . . . 10.3.2 /etc/nsswitch.conf . . . . . . . . 10.3.3 /etc/host.conf . . . . . . . . . . . 10.3.4 /etc/hosts . . . . . . . . . . . . . 10.4 Sendmail, serveur SMTP . . . . . . . . . 10.4.1 /etc/mail/sendmail.cf . . . . . . 10.4.2 /etc/mail/access . . . . . . . . . 10.4.3 /etc/mail/aliases . . . . . . . . . 10.4.4 /etc/mail/domaintable . . . . . 10.4.5 /etc/mail/genericstable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 155 157 157 157 162 162 162 164 164 164 207 207 210 210 212 214 216 218 218 218 220 220 220 220 220 221 222 222 222 223 223 227 227 227 228 228 228 229 229 232 232 233 233

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

Table des matires 10.4.6 /etc/mail/local-host-names . . . . 10.4.7 /etc/mail/mailertable . . . . . . . . 10.4.8 /etc/mail/relay-domains . . . . . . 10.4.9 /etc/mail/sendmail.ct . . . . . . . . 10.4.10 /etc/mail/service.switch . . . . . . 10.4.11 /etc/mail/virtusertable . . . . . . . 10.4.12 Redmarrage de Sendmail . . . . . . NFS . . . . . . . . . . . . . . . . . . . . . . . 10.5.1 /etc/fstab . . . . . . . . . . . . . . . 10.5.2 Redmarrage de nfs-common . . . . 10.5.3 Montage manuel des volumes NFS . NIS . . . . . . . . . . . . . . . . . . . . . . . 10.6.1 /etc/defaultdomain . . . . . . . . . 10.6.2 /etc/init.d/nis . . . . . . . . . . . . 10.6.3 /etc/yp.conf . . . . . . . . . . . . . 10.6.4 /etc/passwd . . . . . . . . . . . . . 10.6.5 /etc/group . . . . . . . . . . . . . . 10.6.6 Redmarrage de NIS . . . . . . . . . Conguration des imprimantes . . . . . . . NTP . . . . . . . . . . . . . . . . . . . . . . . SNMPD, surveillance rseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 234 234 234 234 235 235 235 235 236 236 236 236 236 237 237 238 239 239 240 241 242 242 242 242 242 243 243 243 243 244 244 244 245 246 246 246 246 247 247 247 247 247

10.5

10.6

10.7 10.8 10.9

11 Dtails concernant les postes clients 11.1 Conguration des navigateurs Internet 11.2 Protocole FTP . . . . . . . . . . . . . . . 11.3 Modules spciques . . . . . . . . . . . 11.4 Utilisation des imprimantes distantes . 12 Politique dadministration 12.1 Utilisation des machines . . . . . . . . 12.2 Utilisation de laccs Internet . . . . . 12.3 Utilisation du compte e-mail . . . . . . 12.4 Utilisation des newsgroups . . . . . . 12.5 Utilisation de lespace Web personnel 12.6 Quotas disque . . . . . . . . . . . . . . 12.7 Matriel . . . . . . . . . . . . . . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

13 Ladministration en pratique 13.1 Ajout dun utilisateur . . . . . . . . . . . . . . . . . . 13.2 Suppression dun utilisateur . . . . . . . . . . . . . . 13.3 Les groupes . . . . . . . . . . . . . . . . . . . . . . . 13.3.1 Cration dun groupe . . . . . . . . . . . . . 13.3.2 Ajout dutilisateurs dans un groupe . . . . . 13.3.3 Suppression dun utilisateur dans un groupe 13.3.4 Suppression dun groupe . . . . . . . . . . . 13.4 Gestion des programmes . . . . . . . . . . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

Table des matires 13.4.1 Installation dun paquetage Debian . . . . . . . . . . . . . . . . . . . . . . 248 13.4.2 Dsinstallation dun paquetage Debian . . . . . . . . . . . . . . . . . . . . 248 13.4.3 Dsinstallation dun paquetage Debian et de ses chiers de conguration 248 14 Captures dcran 15 Documentation et sources dinformation 15.1 Installation de Debian GNU/Linux 2.2 Potato 15.2 Debian GNU/Linux . . . . . . . . . . . . . . . . 15.3 Paquetages Debian . . . . . . . . . . . . . . . . . 15.4 Serveur DNS Bind . . . . . . . . . . . . . . . . . . 15.5 Serveur SMTP Sendmail . . . . . . . . . . . . . . 15.6 Serveur POP3 QPopper . . . . . . . . . . . . . . . 15.7 NIS . . . . . . . . . . . . . . . . . . . . . . . . . . 15.8 Quotas disque . . . . . . . . . . . . . . . . . . . . 15.9 Partage de chiers par NFS . . . . . . . . . . . . 15.10Partage de chiers par Samba . . . . . . . . . . . 15.11 Serveur de news INN . . . . . . . . . . . . . . . . 15.11.1 Filtre PERL pour INN, CleanFeed . . . . 15.12Serveur HTTP Apache . . . . . . . . . . . . . . . 15.13Serveur FTP ProFTPd . . . . . . . . . . . . . . . . 15.14Synchronisation de lheure par NTP . . . . . . . 15.15Sauvegarde de donnes . . . . . . . . . . . . . . 15.16Firewalling, remasq . . . . . . . . . . . . . . . . . 15.17Serveur proxy Squid . . . . . . . . . . . . . . . . 15.18Redirecteur SquidGuard . . . . . . . . . . . . . . 15.19Serveur dimpression, lpd . . . . . . . . . . . . . 15.20SNMP/snmpd . . . . . . . . . . . . . . . . . . . . 15.21MRTG . . . . . . . . . . . . . . . . . . . . . . . . 15.22Notions de rseau . . . . . . . . . . . . . . . . . . 15.23Administration UNIX . . . . . . . . . . . . . . . . 15.24Divers . . . . . . . . . . . . . . . . . . . . . . . . . 15.25Autres documentations . . . . . . . . . . . . . . . 15.25.1 Les pages de man . . . . . . . . . . . . . . 15.25.2 La documentation Info . . . . . . . . . . . 15.25.3 Les newsgroups . . . . . . . . . . . . . . . 15.25.4 Les personnes . . . . . . . . . . . . . . . . 15.25.5 Lexprience . . . . . . . . . . . . . . . . . 15.26Logithque . . . . . . . . . . . . . . . . . . . . . . 249 257 257 257 257 258 258 258 258 259 259 259 259 259 259 260 260 260 260 260 260 260 260 261 261 261 261 261 261 262 262 262 262 262

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16 CD-ROM DemoLinux 266 16.1 Utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266 16.2 Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266

10

Table des matires 17 Concernant le document 17.1 Priode de rdaction 17.2 Historique . . . . . . 17.3 Traduction . . . . . . 17.4 Mises jour . . . . . 17.5 Validit des solutions 17.6 Mise en application . 267 267 267 268 268 268 268 269 269 269 271 271 272 279

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

18 Mentions lgales 18.1 Informations de copyright . . . . . . . . . . 18.2 Concernant le domaine etablissement.org 18.3 Marques cites dans ce document . . . . . . 18.4 Scripts fournis dans le document . . . . . . 18.5 GNU Free Documentation License . . . . . 18.6 GNU General Public License . . . . . . . .

11

Avant-propos
Le projet dcrit dans ce dossier tait lorigine destin tre prsent au Lyce Saint-Andr de Colmar, en n danne 1999. Malheureusement, un certain nombre de raisons men ont dissuad. Le projet, qui tait prsent dans un document de 30 pages lorigine, a t toff pendant lanne scolaire coule, an de constituer mon dossier pour loption Informatique au Baccalaurat. Les preuves tant termines ou presque, et encourag par les retours que jai eu, je cherche des personnes intresses pour maintenir ce projet. Lenthousiasme soulev par ce dossier chez les professeurs qui lont lu, chez diverses personnes qui ont en eu connaissance ma surpris. Je pense, plus forte raison aujourdhui, que nombre de professeurs ou dtablissement pourraient tre intresss par un document dcrivant, tape par tape, la mise en place dune salle info destination exclusive des lves (ne concerne pas les cours). Le but nest pas la rutilisation de vieilles machines avec afchage dport, un nombre consquent de documents traitent dja du sujet. Il sagit ici de proposer un accs Internet, assortis de diffrents services. Pour cela, il faut choisir un environnement (Debian), une archictecture, et un certain nombre de services que lon peut mettre en place dans le cadre de ce projet. On peut donc fournir les chiers de congurations complets, et une sorte de manuel stepby-step. Les congurations rassembles dans ce document devraient, en thorie, fonctionner. Toutesfois, certaines restent vraiment thoriques, car je nai pas pu les tester toutes. Enn, ce document prsente le droulement de linstallation tel que je limagine, avec les moyens (notamment laccs Internet cble), dont je pouvais disposer ici. Quelques modications sont faire ce niveau l, plus diffrentes corrections (fautes de frappe, et autres, au bout de 1 an, je ne les vois plus, je connais le document par coeur). Tout nest pas optimal, ce nest pas la prtention. La maintenance de ce document va consister le garder jour par rapport la distribution Debian dune part, corriger les congurations, et ventuellement changer de format (passage en SGML). Mais je nexclue pas une rcriture complte, ce qui serait plus ou moins le cas pour un passage vers un autre format. Julien BLACHE <mailto:jb@jblache.org>

12

1 Architecture
1.1 Description

Le but essentiel de ce projet est de fournir, pour un prix moindre et une qualit suprieure, une mini salle informatique destination des lves. Ceci dans le but de permettre ces lves de faire des recherches, taper des documents, ou autres choses, sans mettre en danger la stabilit des salles informatiques existantes. De ce fait, en cas de problmes, ils se pnalisent euxmmes et nentravent pas le travail dautres lves, comme cela a pu tre le cas au Lyce SaintAndr, par exemple. Dans cette optique, ces machines permettront laccs Internet dans son ensemble, ainsi que lutilisation de divers outils logiciels et matriels. Laccs Internet sera complet. Cela veut dire, bien entendu, un accs rapide et illimit au Web, mais aussi une adresse e-mail par personne et la possibilit de participer aux forums de discussions Usenet. Jentends galement ne ltrer aucun protocole, de sorte que les passionns dinformatique dsireux douvrir une session distance sur leur machine puissent le faire. Ceci est actuellement impossible avec le rseau en place dans les divers tablissement franais. Par ailleurs, les lves auront la possibilit dhberger une page personnelle sur le serveur Web du projet. Les outils logiciels accessibles aux lves seront des outils de bureautique, semblables Microsoft Ofce, des outils permettant la manipulation dimages ou encore des outils pdagogiques permettant par exemple la visualisation de molcules dans lespace. Cette liste est loin dtre exhaustive tant la logithque disponible est vaste. Les outils matriels disposition consisteront en deux imprimantes, une imprimante laser pour limpression rapide de textes, et une imprimante jet dencre couleur pour tout ce qui requiert une impression colore.

1.2

Rpartition des machines

Il est prvu plusieurs serveurs couvrant des besoins spciques, tels que le mail, le Web, etc. . . Une machine sera donc ddie lhbergement des diffrents serveurs. Pour permettre laccs Internet des machines, il leur faut une adresse IP chacune. Ces adresses cotent cher. Nous utiliserons donc la translation dadresses, qui permet plusieurs machines daccder au monde extrieur tout en nutilisant quune seule adresse. Nous ltrerons galement laccs certains types de sites Web. Ce sera l lemploi dune deuxime machine. Enn, il faut des postes clients. Jen prvois cinq, cela me parat sufsant, mais il est toutefois possible den mettre plus.

13

Architecture

Au total, nous utiliserons donc sept machines, dont les congurations matrielles diffrent selon leur emploi.

1.3

Conguration matrielle

Les machines, telles que proposes ici, devraient tenir deux ou trois ans. Au-del, il sera souhaitable de les remplacer, tant au niveau de la vitesse dexcution quau niveau de la abilit.

1.3.1

Conguration du serveur

Cette machine supportera plusieurs logiciels serveurs, gourmands en ressources, ainsi que les rpertoires personnels des lves. La conguration est adapte en consquence. 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 31/2, 1.44 Mo Carte graphique compatible VESA 2.0 cran : au minimum 15 Carte rseau 100 BaseT Fast-Ethernet connecteur RJ45 Carte dinterface avec la liaison Internet : celle-ci peut tre une carte rseau, cela dpend de la liaison On peut prvoir une carte rseau permettant de relier le serveur au rseau de ltablissement dans un but dinteroprabilit Carte SCSI Ultra2 : la carte Tekram DC-390U2W est un bon choix 4 disques durs Ultra2 SCSI dune capacit minimum de 9 Go chacun Un dispositif de sauvegarde SCSI avec un jeu de cartouches, capable de sauvegarder plus de 25 Go de donnes Carte son compltement optionnelle (si la machine est pourvue dune carte son, il serait peut-tre souhaitable de la retirer) Clavier franais (ou adapt la langue) Souris 3 boutons1 sur port PS/2 ou srie Les disques durs seront rpartis comme suit : un disque pour le systme, un pour le spool2 de news, un pour le spool de mail et enn un dernier disque pour les rpertoires personnels des lves. Linterface SCSI permet de soulager le processeur, laissant ainsi plus de puissance disponible pour les autres applications. Le dispositif de sauvegarde permet la sauvegarde du systme pour parer tout problme ventuel. Lune des cartes rseau servira connecter le serveur au rseau local an dtre directement joignable par les autres machines.
1

Le troisime bouton est utilis pour le copier/coller. Une souris possdant une roulette, par exemple les souris Microsoft, convient parfaitement. La roulette est tout fait utilisable, et vraiment pratique. 2 Spool : espace de stockage temporaire. Dans le cas dun spool de news, le serveur stockera les messages dans ce spool pendant un certains temps pour permettre la consultation, puis les effacera.

14

Architecture

1.3.2

Conguration du serveur daccs

Cette machine permettra aux postes clients daccder Internet grce la translation dadresses. Toutes les donnes allant ou venant des postes clients passent par cette machine. Elle servira galement de poste dadministration. 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 31/2, 1.44 Mo Carte graphique PCI ou AGP dote de quelques Mo de mmoire cran : au minimum 15 Carte rseau 100 BaseT Fast-Ethernet connecteur RJ45 Carte dinterface avec la liaison Internet : celle-ci peut-tre une carte rseau, cela dpend de la liaison Deux ports parallles sont ncessaires pour connecter les imprimantes Disque dur de quelques Go Carte son optionnelle Clavier franais (ou adapt la langue) Souris 3 boutons sur port PS/2 ou srie La quantit leve de mmoire est rendue ncessaire par lemploi de la machine qui voit transiter toutes les informations et utilise donc une mmoire consquente.

1.3.3

Conguration des postes clients

Les cinq postes clients ont tous la mme conguration. Processeur de type Pentium III ou Athlon cadenc au moins 600 MHz 128 Mo de SDRAM Lecteur CD-ROM IDE Lecteur de disquettes 31/2, 1.44 Mo Carte graphique PCI ou AGP dote de quelques Mo de mmoire cran : au minimum 15 Carte rseau 100 BaseT Fast-Ethernet connecteur RJ45 Disque dur de quelques Go Carte son Clavier franais Souris 3 boutons sur port PS/2 ou srie Cette conguration est relativement standard et peut tre acquise pour un prix raisonnable.

1.3.4

Note propos du matriel

Pour des raisons de disponibilit des pilotes de priphriques, on sera vigilant sur les marques et modles de priphriques employs. En particulier, les cartes vidos de marque ATI ou Matrox sont majoritairement supportes, de mme pour les cartes rseau 3COM, les cartes compatibles NE2000 (PCI ou ISA) et les cartes Intel, enn il en va de mme pour les cartes son de marque Creative (SoundBlaster). Les marques cites ne sont que des exemples, et

15

Architecture

il faut souligner que de nouveaux pilotes sont disponibles quasiment chaque semaine. De plus en plus de matriel est support chaque mois. Il en va de mme pour les imprimantes, dont certaines ne seront jamais utilisables sous Linux, cest le cas des imprimantes supportant la norme WinPrinter.

1.4

Rseau interne

Le rseau interne sur lequel sont relies les sept machines sera un rseau Fast-Ethernet capable de dbits allant jusqu 100 Mbits/s. Un rseau performant permettra lchange rapide dinformations entre les machines.

1.4.1

Fournitures

Il faudra donc prvoir un hub3 capable daccueillir les sept machines. Peu importe la marque du hub, il doit supporter la norme Fast-Ethernet. Sept cordons seront ncessaires pour relier les machines au hub. On utilisera des cordons droits munis de connecteurs RJ45, fabriqus en utilisant un cble de type STP-5 ou STP-64 , ou UTP-5.

1.5

Connexion Internet

La connexion, pour des raisons de dbit, doit tre indpendante de celle de ltablissement, gnralement trs lente. En effet, les diffrents serveurs installs demandent une bande passante consquente et deux adresses IP xes. Ces conditions ne peuvent tre remplies par la connexion offerte ltablissement.

1.5.1 Dbit
Le serveur demande un dbit dau moins 128 Kbps an de travailler dans de bonnes conditions. Je reviendrais sur la raison de ce besoin de dbit plus loin dans ce dossier. Les postes clients doivent pouvoir compter sur au moins 64 Kbps de dbit pour tre utiliss dans de bonnes conditions de rapidit. Cela porte 384 Kbps la bande passante fournir aux cinq machines. Au total, la liaison doit fournir un dbit de 512 Kbps. Il est difcile de faire fonctionner les diffrents services avec un dbit plus faible.

1.5.2 Adresses IP
Nous avons besoin de deux adresses IP routables5 et xes6 an de connecter le serveur et le serveur daccs.
3 4

hub ou concentrateur : dispositif permettant de relier ensemble plusieurs machines disposant de cartes rseau. Cble 4 paires torsades blind. Les indices 5 et 6 renvoient la qualit du blindage. 5 Cela signie que ces deux adresses IP doivent tre publiques. 6 Ces adresses nous sont alloues de manire permanente.

16

Architecture

1.5.3

Nommage des machines

Les machines, pour tre plus facilement accessibles, doivent possder un nom. Il est de la forme machine.domaine.tld, et ncessite le dpt dun nom de domaine. Ce nom de domaine peut tre acquis moindre frais auprs de GANDI7 pour la somme denviron 90 FF/an. Le domaine se trouvera dans le TLD8 org. Dans la suite de ce document, jutiliserais un domaine ctif etablissement.org. Ce dpt de domaine contrevient aux directives ministrielles (Bulletin Ofciel de lducation Nationale n 35 du 24 Septembre 1998) qui prconisent lutilisation dun sous-domaine de la forme etablissement.academie.fr. Il me semble simplement inutile de subir un nom aussi long, alors que lachat dun domaine est maintenant possible pour une somme minime. Par ailleurs, nous avons besoin davoir le contrle total de nos serveurs DNS9 . Nous devrons donc mettre en place deux serveurs DNS, un primaire et un secondaire. Cest pour cette raison que deux machines seront pourvues dune adresse routable chacune, cest aussi une des raisons qui imposent lusage dadresses IP xes.

1.5.4 Fournitures
On fera le ncessaire an de connecter les deux machines sur la liaison Internet. Ne connaissant pas le type de liaison exploitable dans les diffrents tablissements, je laisse ceci la discrtion de ladministrateur.

1.6

Autre matriel

1.6.1 Imprimantes
Il est primordiale de donner la possibilit aux lves dimprimer leurs documents. Cela pose toutefois quelques problmes. On ne peut en effet pas tre sr que ces imprimantes seront utilises bon escient. Cest un risque prendre. Deux imprimantes seront disposition. Une imprimante laser permettra limpression rapide de textes, une imprimante jet dencre couleur permettra limpression dillustrations, par exemple. Les imprimantes seront relies sur le serveur daccs qui fera donc ofce de serveur dimpression. Cela peut ncessiter la pose dun deuxime port parallle sur cette machine.

http://www.gandi.net Top Level Domain : cest le domaine de premier niveau. Cela peut tre com, org, net, fr, uk, etc. . . 9 Domain Name Server (ou System) : ces serveurs permettent dtablir la correspondance entre un nom canonique machine.etablissement.org et une adresse IP.
8

17

2 Choix du systme dexploitation et logithque


2.1 Systme dexploitation

Nous avons besoin dun systme dexploitation robuste et vloce, grant les utilisateurs et leurs spcicits, pour un prix le meilleur possible. Il doit galement disposer de capacits serveur. Voyons donc ce qui est notre disposition dans ce domaine.

2.1.1

MS-Windows 9x

Nous le connaissons tous, de prs ou de loin. Il est relativement rapide mais essoufe vite la 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 sous MS-Windows 9x. Les fonctionnalits serveur sont quasi-inexistantes sous ce systme dexploitation. Son prix est tout de mme lev, il va de environ 800 FF lorsquil est livr avec la machine prs de 1500 FF au dtail. Ce nest donc pas le candidat idal.

2.1.2

MS-Windows NT

Se dclinant en version Server et WorkStation, il dispose dune gestion des utilisateurs relativement exploitable. Elle est toutefois rendue trs pnible par linterface peu ergonomique. Il est robuste mais lourd, ncessitant une grosse conguration pour fonctionner correctement. Bien qutant la version volue oriente rseau de MS-Windows, les plantages ne sont pas absents. Tout le monde na peut tre pas eu loccasion de travailler sur une machine quipe en MS-Windows NT, mais jai t tmoin et victime de plusieurs plantages assez importants. Les fonctionnalits serveur existent, mais ces solutions sont onreuses. Le prix de MS-Windows NT est trs lev, celui de la version Server dpend en outre du nombre dutilisateurs. L non plus, ce nest pas proprement parler le candidat idal.

18

Choix du systme dexploitation et logithque

2.1.3

Que reste-t-il ?

Il reste le systme UNIX. Un Unix commercial cote plusieurs milliers de Francs franais, ce qui est hors budget pour nous. La solution rside donc dans les Unix libres, tels Linux, FreeBSD, NetBSD, . . . Nous utiliserons Linux, non pas par effet de mode, mais parce quil convient la situation. Nous pourrions galement utiliser FreeBSD, mais il est inutile de compliquer la tche de ladministrateur, alors quici Linux donnera pleine et entire satisfaction. Ce choix est motiv par les fonctionnalits disponibles et le prix de lenvironnement. En effet, quasiment tous les logiciels sont disponibles gratuitement, mais ils sont surtout libres. Ce qui signie que lon peut les modier notre guise pour combler nos besoins. Linux nest pas gratuit, il est libre. Cest--dire que lon a le droit de le vendre. On trouve dans le commerce plusieurs versions, appeles distributions. Elles fournissent chacune un systme Unix bas sur Linux, complet et fonctionnel, avec une procdure dinstallation. Il faut donc choisir une distribution avant de continuer. 2.1.3.1 Un peu dhistoire Linux est n en 1991 en Finlande, sous les doigts de Linus TORVALDS, un tudiant de lUniversit dHelsinki. Fatigu de la lourdeur et des limitations de MS-DOS, abasourdit par le prix des Unix commerciaux et passionn par Minix, systme UNIX minimal dvelopp par Andrew TANENBAUM , professeur dune clbre Universit amricaine, il dcide de se consacrer lcriture dun systme dexploitation se conformant aux normes POSIX1 . En 1991, il publie la version 0.02 du kernel2 Linux. Ds lors, des dizaines de programmeurs vont se mettre au travail un peu partout dans le monde. La plupart sont des universitaires ou de trs grands programmeurs renomms ; lpoque, laccs Internet ntait pas aussi courant quaujourdhui. Mais Linux nest quun kernel, le noyau du systme dexploitation. Il faut des outils, les outils standards que lon trouve sur tous les Unix commerciaux. Richard M . STALLMAN, programmeur hors-pair faisant partie de lAI Lab du MIT3 , que lide de devoir travailler avec des outils logiciels quil ne peut modier sa guise agace fortement, lance en 1984 le projet GNU4 ; le but est de crer un clone dUNIX. Le kernel du projet GNU, nomm The HURD, bti sur une structure plus proche de celle de Minix que de celle de Linux5 , nest ce jour toujours pas utilisable pour lutilisateur lambda. En revanche, les outils traditionnels dUNIX sont, eux, utilisables depuis longtemps. Devant le retard du HURD et le dveloppement phnomnal de Linux, la FSF6 dcide de prendre Linux sous son aile. Ds lors, on parle de GNU/Linux. GNU est lensemble des outils qui constitue le systme dexploitation autour du noyau Linux.
1 2

Normes dnissant un systme UNIX. kernel : noyau. Ici, il sagit du noyau dun systme dexploitation, cest--dire le code qui parle directement au matriel et fournit une interface avec celui-ci aux autres programmes. 3 Le laboratoire dintelligence articielle du Massachusetts Institute of Technology. 4 GNUs Not UNIX : GNU nest pas UNIX. 5 Minix est bas sur un micro-noyau, tandis que Linux se base sur un noyau monolithique. 6 Free Software Foundation : fondation pour le Logiciel Libre.

19

Choix du systme dexploitation et logithque

Linux, aujourdhui en version 2.4, a valu Linus TORVALDS lobtention du titre de Docteur honoraire de lUniversit dHelsinki seulement 29 ans, en 1999. La performance est dautant plus apprciable quil na jamais eu en main les normes POSIX, vendues trs cher en ce tempsl. Ce succs phnomnal, libre et gratuit vient du fait que Linus a diffus les sources de son kernel sous licence GPL7 , licence qui autorise et incite fortement lire et modier le code source. A lpoque, linstallation de Linux tait rserve llite, car aucun programme dinstallation nexistait. On voit alors apparatre des distributions, telles Yggdrasil, SLS, Slackware, Caldera, RedHat, SuSE, . . . Elles proposent non seulement un programme dinstallation, mais aussi toute une collection de logiciels prts linstallation. Ces logiciels sont prcompils et compresss, ce sont les packages8 . Grce au systme de paquetages, lutilisateur est assur davoir un systme cohrent et able.

2.1.3.2

La distribution choisie : Debian GNU/Linux

La distribution Debian, plus que toutes les autres, est considre comme la distribution GNU/Linux. Dbut en 1993 par Ian MURDOCK et sa compagne Debra (do le nom Debian), ce projet utilise le systme de paquetages le plus complet et le plus puissant, assurant une parfaite cohrence du systme en toutes circonstances. Le mode de dveloppement de Debian est particulirement singulier. Nimporte qui peut devenir dveloppeur ofciel, ou presque. Le projet Debian compte aujourdhui prs de 600 dveloppeurs qui ont prcompil plus de 5000 logiciels, assurant la distribution une logithque abondamment fournie. Chaque dveloppeur est responsable des logiciels quil compile pour Debian et certie quils ne poseront pas de problmes et sintgreront de manire cohrente dans le systme. La philosophie de Debian tranche nettement de celle des autres distributions. Le but nest en effet pas de sortir une nouvelle version tous les mois, encore moins de faire de largent. Le but est de proposer aux administrateurs, utilisateurs de Linux, passionns dinformatique et autres, un systme complet, cohrent et stable, compos uniquement de logiciels libres et ne dpendant daucun logiciel propritaire. Cest pour cela quun logiciel libre aura toujours la priorit sur son quivalent non-libre. La distribution elle-mme est divise en quatre sections : main : cette section constitue en fait la distribution Debian. Elle est compose entirement de logiciels libres ; son contenu doit permettre lui seul dinstaller un systme polyvalent et pleinement fonctionnel ; non-free : cette section contient tous les logiciels non-libres distribus avec Debian ; contrib : cette section contient tous les logiciels libres dpendant de logiciels non-libres ou dlments extrieurs la distribution, et non distribus suite des problmes de licence ;
7 8

GNU General Public License : Licence Publique Gnrale. La licence par excellence du projet GNU. Aussi appels paquetages, ils contiennent les logiciels sous forme de binaires (par opposition aux code source qui se prsente sous forme de chiers texte), permettant linstallation et la dsinstallation rapide et propre dun logiciel.

20

Choix du systme dexploitation et logithque

non-US : cette section contient tous les logiciels, libres ou non, dont lexportation hors des tats-Unis dAmrique est contrle, notamment par les lois cryptographiques. Elle est elle-mme divise en 3 sections (main, non-free, contrib). Le rythme de publication est denviron une version par an, voire moins. Aucune date de sortie nest annonce lavance, la version sort quand elle est prte, et pas avant. Actuellement, la version stable de Debian GNU/Linux est la version 2.2r3 Potato. Elle occupe 3 CD, et peut se trouver dans le commerce pour une centaine de Francs franais. Linstallation peut se faire via CD-ROM, FTP ou NFS, ce qui permet de faire des installations via Internet. Ikarios9 propose toutes les distributions Linux existantes pour un prix modique, voil donc un moyen simple de se procurer une distribution moindre cot.

2.2

La logithque

Il existe beaucoup doutils logiciels libres couvrant tous les domaines. La liste faite ici nest de loin pas exhaustive et prsente rapidement quelques logiciels. Des captures dcran de certains des logiciels lists ici sont visibles la section 14, en page 249. Les adresses des sites Web concernant les diffrents logiciels sont la section 15.26, en page 262.

2.2.1

GNOME, lenvironnement graphique

GNOME est lenvironnement graphique du projet GNU. Cest un environnement extrmement puissant et somptueux. Par dfaut, il utilise le gestionnaire Enlightenment, mais lutilisateur a la possibilit de changer le gestionnaire utilis, au prot de quelque chose de plus lger. 2.2.1.1 Gestionnaires de fentres Le gestionnaire de fentres10 est un programme dont la tche est de grer les fentres afches par linterface graphique. GNOME supporte plusieurs gestionnaires diffrents. Parmi ceux-ci, citons AfterStep, WindowMaker, Sawsh, Fvwm et dautres encore. Enlightenment est le gestionnaire livr en standard avec GNOME. On peut installer tous ces gestionnaires sur les machines ; le choix dutiliser lun dentre eux revient lutilisateur.

2.2.2

Netscape, le navigateur Internet

La rme Netscape a effectu un portage sous divers Unices de son navigateur. Il a bien entendu t port sous Linux. Malgr la qualit du logiciel, il vaut mieux viter lutilisation de Java lors de la navigation, sous peine de voir le navigateur se ger ou se fermer tout simplement.
9 10

http://www.ikarios.com Window Manager en anglais.

21

Choix du systme dexploitation et logithque

Il ressemble comme deux gouttes deau la version MS-Windows, comme vous pouvez le constater 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 pour linstant en dveloppement, mais une pr-version sort rgulirement. Ces pr-versions sont tout fait utilisables, bien que Mozilla ne soit pas encore optimis. On regrette pour linstant une certaine lenteur afcher des pages trs charges.

2.2.4

Logiciels de transfert de chiers

2.2.4.1 ProFTPd ProFTPd est un serveur FTP. Install sur le serveur, il permettra de proposer le tlchargement de chiers, et autorisera chaque utilisateur accder distance ses chiers dans son rpertoire 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 fonctionnalits. Lauteur accorde des licences gratuites aux tablissements denseignement sur simple demande. Ce nest pas un logiciel libre.

2.2.4.4 NcFTP NcFTP est un client FTP en mode texte, trs puissant, rapide et stable.

2.2.5

Squid, le proxy HTTP

Squid sera install sur le serveur daccs, an dconomiser un peu de bande passante. Son rle est de rcuprer et de conserver dans un cache les sites consults par les machines clientes. Certaines pages ne sont pas conserves en cache, an de respecter la vie prive et la condentialit, telles les pages consultes par protocole scuris (HTTPS). Par ailleurs, Squid gre une liste noire qui permet dinterdire laccs certains sites. Il existe plusieurs listes noires disponibles librement, recensant des sites la moralit douteuse, quil nest pas souhaitable de laisser accessibles dans un environnement scolaire. Ceci restant lapprciation de ladministrateur du site et/ou de sa hirarchie.

22

Choix du systme dexploitation et logithque

2.2.6

Bind, le serveur DNS

Bind est le serveur DNS traditionnel dInternet. Son but est de rpondre aux requtes des machines clients en leur renvoyant un nom de machine, une adresse IP ou dautres renseignements propos dun domaine, selon la requte. Le serveur DNS contrle aussi notre domaine etablissement.org ; cest ce serveur et lui seul qui a lautorit pour notre zone, cest dire que les autres serveurs DNS du monde entier viendront lui soumettre des requtes si besoin est.

2.2.7

Samba, interoprabilit avec lenvironnement MS-Windows

Le logiciel Samba permet le partage de ressources entre plusieurs machines sous diffrents environnement logiciels. Dans la plupart des cas, il sagit de permettre le partage dun disque dur entre un serveur sous environnement UNIX et un poste client sous environnement MSWindows. Lide est ici de permettre laccs aux rpertoires personnels depuis un poste MS-Windows du rseau pr-existant dans ltablissement.

2.2.8
2.2.8.1

Logiciels de communication
Pour le mail

2.2.8.1.1 Sendmail, le serveur SMTP Sendmail est le serveur SMTP11 par excellence des systmes UNIX. Certains lui reprochent sa difcult de conguration et lui prfrent dautres serveurs plus faciles congurer. Malgr cela, tous reconnaissent que Sendmail est le serveur SMTP le plus robuste, car activement dvelopp depuis de longues annes. 2.2.8.1.2 Qpopper, le serveur POP3 Qpopper est un serveur POP312 libre. Le service POP3 permet lutilisateur nal de rcuprer ses mails sur le serveur. 2.2.8.1.3 Netscape Netscape Communicator intgre Netscape Messenger, un logiciel permettant de lire/envoyer des e-mails. Il fonctionne tout fait comme la version MS-Windows, avec les mmes limitations, savoir quil est limit un seul compte POP. 2.2.8.1.4 Mozilla Mozilla intgre, tout comme Netscape, un client mail. Ce client est capable de grer plusieurs comptes POP. 2.2.8.1.5 Balsa Balsa est un client mail graphique qui sintgre dans lenvironnement 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 trs puissant qui sexcute avec lditeur de texte Emacs, dans sa version GNU Emacs ou XEmacs. Emacs intgre en effet un interprteur du langage LISP qui permet dexcuter des logiciels tels que Gnus.
11 12

Simple Mail Transfer Protocol : protocole simple pour le transfert du courrier. Post Ofce Protocole : littralement, protocole bureau de poste, son but est de permettre aux destinataires de rcuprer leur courrier.

23

Choix du systme dexploitation et logithque

2.2.8.1.7 Mutt Mutt est un puissant client mail en mode texte. Il intgre toutes les fonctions que lon peut attendre dun 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 annes, et est toujours activement dvelopp. 2.2.8.2.2 Netscape Netscape Messenger propose galement la lecture des groupes de discussions, dans la mme interface que celle utilise pour le mail. 2.2.8.2.3 Mozilla Linterface utilise pour la lecture du mail est galement destine la lecture des news, limage de Netscape Messenger. 2.2.8.2.4 Pan Pan est un client news graphique sintgrant dans lenvironnement GNOME. On retrouve l aussi un graphisme rappelant les logiciels les plus connus, facilitant la prise en main. 2.2.8.2.5 Gnus Gnus gre les news et les mails de la mme manire, en transformant les mails reus en une sorte de groupe de discussion local. Il regorge de fonctionnalits, notamment la capacit de traiter un forum Web comme sil sagissait dun groupe de discussion Usenet classique. 2.2.8.2.6 Slrn Slrn est un client news en mode texte, extrmement puissant limage de Gnus. Il ne sait en revanche traiter que les groupes de discussion classiques.

2.2.9
2.2.9.1

Suite bureautique
StarOfce/OpenOfce, la suite bureatique selon Sun

Sun a rachet la suite bureautique StarOfce et la propose en libre tlchargement. Cette suite est quivalente Microsoft Ofce, remplissant les mmes fonctions. Elle intgre un traitement de texte, un tableur, une base de donnes, un outil de dessin, un outil de prsentation, un diteur HTML, entre autres. Cette suite est trs complte, compatible avec la suite Microsoft Ofce, mais trs gourmande en mmoire. Cependant, sur les congurations nonces plus avant, elle fonctionne sans problmes. Sun a annonc, durant la rdaction de ce dossier, le placement sous licence libre13 de Sta13

Plus exactement, Sun a plac sous double licence GNU General Public License (GNU Lesser General Public License pour les bibliothques partages et certains autres composants) et Sun Industry Standard Source License une version retravaille de StarOfce. Plus prcisment, tous les lments dont Sun ne dtient pas les droits de licence ont t retirs et remplacs par un quivalent appartenant Sun ; cela sajoute une opration de commentaire du code source (traduction de lallemand vers langlais), an que la Communaut des Dveloppeurs Libres puissent modier plus aisment OpenOfce.

24

Choix du systme dexploitation et logithque

rOfce. Cela a donn naissance OpenOfce14 , le 13 Octobre 2000. 2.2.9.2 Gnumeric, le tableur selon GNOME Gnumeric est un tableur quivalent Microsoft Excel, dvelopp par le projet GNOME. Il est actuellement utilisable, bien que dvelopp activement. 2.2.9.3 AbiWord AbiWord est un clone libre de Microsoft Word. Bien quil nen ait pas toutes les fonctionnalits, il est parfaitement utilisable et est capable de produire des documents tout fait exploitables.

2.2.10
2.2.10.1

diteurs de texte
Emacs

Emacs, ou XEmacs, version plus oriente sur linterface graphique, est un diteur de texte trs puissant, compltement personnalisable, capable de coloration syntaxique, ou encore capable dexcuter des programmes, tels Gnus. Il est essentiellement orient vers la programmation, ce qui explique certaines fonctions prsentes dans sa barre doutils. 2.2.10.2 Vi

Lditeur traditionnel du monde UNIX, il se dcline dans plusieurs versions. Vim, pour la version console et gVim pour une version intgrant une interface graphique, sont les versions les plus jour actuellement.

2.2.11

A L TEX, le processeur de texte

A L TEX est un jeu de macros pour le processeur de document TEX, cest dire quil soccupe de la mise en forme en fonction du style dni pour le document. Un document TEX se prsente comme un chier texte normal, dans lequel se glissent des balises qui indiquent aux macros comment elles doivent traiter ce texte, et donc commandent lapparence du document obtenu au nal. Il y a deux solutions pour crire un document en utilisant TEX : utiliser un diteur de texte comme Emacs, qui proposent un mode TEX, cest--dire la coloration syntaxique des balises et quelques fonctions qui rendent lcriture plus facile utiliser LYX, un programme que lon peut assimiler un traitement de texte, mis part que ce que lon voit lcran nest pas tout fait ce que lon obtiendra au nal. Lcriture dun document est simplie de cette manire, permettant aux dbutants de se familiariser avec TEX avant de peut-tre apprendre se servir pleinement des fonctionnalits du langage
14

http://www.openoffice.org

25

Choix du systme dexploitation et logithque

A Ce document a t ralis grce LYX et L TEX. Ce langage est trs pratique pour des cours de chimie ou de physique, plus gnralement pour tous les documents qui ncessitent lemploi dexpressions mathmatiques. Il est ncessaire dinstaller un visualisateur PostScript, tel que GhostView, ainsi quun visualisateur DVI, tel que Xdvi ; en effet, les documents sont au format DVI ou PostScript en sortie A du processeur L TEX. Par ailleurs, linstallation dutilitaires tels jpeg2ps nest pas inutile, pour inclure une illustration dans un document, dans ce cas prcis.

2.2.12

Logiciels pdagogiques

Les logiciels rpertoris ici le sont titre indicatif. Libre ladministrateur du site de les installer ou non. 2.2.12.1 wget

Wget est un logiciel daspiration de sites Web, cest dire quil va rcuprer toutes les pages qui composent un site, an que celui-ci soit disponible localement. Cela permet par exemple de faire un miroir temporaire dun gros site sur le serveur local, an dconomiser de la bande passante. Il existe une interface graphique pour wget, Gwget. 2.2.12.2 TiLP

TiLP permet le transfert de chiers entre un ordinateur sous Linux ou MS-Windows et une calculatrice graphique Texas Instrument. Ce logiciel peut tre trs utile aux lves pour transfrer sur leur calculatrice des petits programmes qui leur simplient certains calculs, je pense que cela peut tre trs intressant. Son systme de plugins permet dtendre ses fonctionnalits. 2.2.12.3 Bluesh

Bluesh est un diteur HTML permettant de raliser facilement des documents HTML. 2.2.12.4 Screem

Screem est un diteur HTML trs complet et trs puissant, disposant galement dune gestion de projet efcace. 2.2.12.5 xsky

Xsky propose une carte du ciel.

26

2 2.2.12.6 RasMol

Choix du systme dexploitation et logithque

RasMol est un logiciel permettant de visualiser des molcules en 3 dimensions, partir de chiers tlchargeables librement sur Internet. Le logiciel a t modi pour accepter un afchage en 65 536 couleurs ; la disponibilit du code source induite par le Logiciel Libre sest avre utile dans le cas de ce logiciel. 2.2.12.7 Xephem

Un logiciel dastronomie surpuissant. Les dernires versions sont proprement tonnantes de par la qualit de la ralisation. 2.2.12.8 Lum

Un logiciel doptique. 2.2.12.9 Mek

Un logiciel ducatif en franais qui propose de voir le programme de mcanique du lyce et 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 mathmatiques proposant de trs nombreuses fonctionnalits, notamment le traage. Un support de cours est disponible sur le site de lcole Ouverte de lInternet pour ces deux derniers logiciels. 2.2.12.13 GNUPlot

Un logiciel de traage de courbes. 2.2.12.14 Dia

Dia est un diteur de diagrammes. 2.2.12.15 BWBasic

Un interprteur du langage BASIC.

27

2 2.2.12.16 DrGeo

Choix du systme dexploitation et logithque

Un logiciel de dcouverte/exploration de la gomtrie. 2.2.12.17 The GIMP

Le clbre logiciel de retouche dimages. 2.2.12.18 Moonlight Creator

Un logiciel de modlisation en 3 dimensions. 2.2.12.19 Blender

Un logiciel permettant de crer des animations en 3 dimensions. Ces deux derniers logiciels sont dun maniement complexe, comme tous les logiciels proposant ces fonctionnalits.

28

3 Description des services proposs


Outre laccs Internet, ce projet proposera aux lves plusieurs autres services, plus ou moins essentiels pour pouvoir tirer pleinement parti dInternet.

3.1

Une adresse e-mail pour tous

Internet ne servirait rien sans le-mail. Chaque personne possdant un login sur les machines se verra attribuer une adresse du type login@etablissement.org. Cette bote aux lettres sera toutefois limite 30 Mo, ceci an de rpartir les ressources, notamment lespace disque.

3.2

Un Web pour tous

Internet est surtout connu pour le Web. Qu cela ne tienne, pourquoi ne pas proposer un petit espace aux personnes le dsirant ? Beaucoup apprcieront ce petit espace dexpression, quils soient lves ou professeurs. Cela permettra aussi dhberger le site de ltablissement, moyennant un peu de conguration. Laccs cet espace se fera par ladresse http ://eleves.etablissement.org/~login/, ou http ://profs.etablissement.org/~login/. Cet espace est partie intgrante du rpertoire personnel de chaque utilisateur. Les documents publier sur le Web sont placer dans le rpertoire1 ~/public_html/.

3.3

Les news pour tous

Les groupes de news2 sont des espaces privilgis pour discuter dun sujet prcis. Nous installerons un serveur de news transportant plusieurs hirarchies, correspondant aux langues enseignes dans ltablissement. Les lves dsirant perfectionner leurs langues vivantes pourront alors discuter des sujets les intressant dans lune ou lautre de ces langues. La clbre hirarchie alt.*, symbole de lanarchisme technologique, ne peut plus, quant elle, tre propage en milieu scolaire aprs un srieux incident ayant entran de lourdes consquences judiciaires en Janvier 19973 . Elle ne le sera donc pas. Son trac gigantesque4 ne le permettrait pas, dailleurs, pas plus que son contenu, en grande partie pornographique et/ou illgal.
1 2

Le tild (~) symbolise le rpertoire personnel dun utilisateur. Aussi appels newsgroups, ou, plus franais, groupes de discussion. 3 Diffusion dimages caractre pdophile. La hirarchie tant alors propage par toutes les universits franaises, laffaire a fait grand bruit, entranant un boycott prventif. 4 Actuellement, le trac journalier approche les 11 Go et est en augmentation constante.

29

Description des services proposs

3.4

Autres services

Tout, ou presque, est faisable. Partant de l, tout dpend de ladministrateur du site, de sa connaissance du systme et de son temps libre.

30

4 Descriptions et explications techniques de certains services


4.1 DNS

Le Domain Name Service (service nom de domaine) est une des composantes logicielles les plus importantes dInternet et des rseaux IP en gnral. Son but est de vous renseigner propos dun hte et/ou dun domaine. Ces renseignements servent ltablissement de la communication entre votre machine et la machine distante et lacheminement de votre courrier lectronique notamment. Le DNS a t cr pour une raison trs simple. Lorsque seules quelques dizaines ou centaines de machines taient capables de dialoguer au moyen dARPANET ou du naissant Internet, chaque machine possdait un chier hosts (comprenez /etc/hosts) qui contenait les correspondances noms adresses rseau de chaque machine. Ce chier tait mis jour rgulirement partir dun site FTP central. Seulement, avec le temps, ce chier a considrablement grossi, rendant sa prsence sur chaque machine pnible. Il a donc t dcid de centraliser toutes ces informations sur un certain nombre de machines ddies. Ce sont les root-servers ([a m].root-servers.net). Pour faciliter la gestion de chaque zone (comprenez chaque nom de domaine, un nom de domaine tant une zone), la base de donnes qui gre les noms de domaines contient les adresses rseau dun certain nombre de machines (gnralement deux) qui sont les serveurs DNS de cette zone. Parmi ces machines, il y a un serveur matre et des serveurs esclaves. Les esclaves allant chercher sur le serveur matre le chier contenant les informations de la zone, partageant ainsi les mmes informations. Les root-servers sont galement les esclaves du serveur matre de chaque zone, des esclaves particuliers cependant, puisquils sont les serveurs centraux. Ainsi, lorsque vous voulez accder un site Web, par exemple, vous allez envoyer une requte votre serveur DNS. Celui-ci va consulter son cache, puis, sil ne connat pas lhte, ira demander lun des root-servers quels sont les serveurs DNS qui ont lautorit sur la zone dont fait partie la machine distante. Une fois quil aura cette information, il lancera une requte vers lun des serveurs DNS de la zone qui lui retournera ladresse rseau de la machine distante. Votre navigateur reoit ensuite linformation quil attendait, cest--dire cette mme adresse rseau, puis va tenter dtablir une connexion avec la machine distante, an dafcher le document que vous avez demand. Tout ceci se passe en quelques diximes de seconde, mais ncessite quelques heures de travail de la part des diffrents administrateurs en charge des diffrentes machines utilises. Lorganisation du DNS est hirarchique, et peut-tre rsume sous forme darbre. Le point de dpart de cet arbre est le .. Puis viennent les diffrents Top-Level Domains (TLD, ou domaines de premier niveau), tels ORG, NET, EDU, COM. Viennent ensuite ce que nous appe-

31

Descriptions et explications techniques de certains services

lons les domaines. Ensuite les sous-domaines, etc. . . linni. Il est aussi possible de dlguer la gestion DNS dun sous-domaine une machine particulire, complexiant encore un peu plus larbre que nous voquions tout lheure. Mais quest-ce que . ? Et bien cest simplement le commencement de tout. Cest dire que, prenons fremen.etablissement.org comme exemple, un nom de machine scrit sous la forme fremen.etablissement.org., et non pas fremen.etablissement.org comme nous avons lhabitude de lcrire lorsque nous donnons une URL notre navigateur Web. Les noms de domaines se lisent donc de la droite vers la gauche an de simplier et de rendre plus rapide la rsolution de noms.

4.2

Usenet

De part la forme des messages, on pourrait dans un premier temps comparer Usenet un simple service de listes de diffusion. Mais ce nen est pas un. Usenet permet de mener une discussion par le biais de messages textuels, tout autour du monde et quelque soit lheure. Les messages sont archivs durant une certaine priode (gnralement quatorze jours), puis sont effacs du serveur. Usenet nest pas centralis sur une ou deux machines, mais est compos de centaines de milliers de machines, interconnectes par des lignes tlphoniques, par des lignes spcialises trs haut dbit, par le biais de simples accs Internet grand public ou encore au moyen dun avion et de bande perfore (si ce nest plus utilis lheure o vous lisez ce document, sachez que cela se faisait encore il ny pas si longtemps). De ce fait, le systme est trs tolrant aux pannes et trs exible. Usenet est organis autour de plusieurs hirarchies, parmi lesquelles on peut citer alt.*, fr.*, le Big81 , ru.*, fx.*, et des dizaines dautres. Dans ces hirarchies se dgagent plusieurs catgories, puis des sous-catgories, et enn des groupes. On peut, l encore, rsumer une hirarchie par un arbre. Les hirarchies sont rparties principalement par langues, mais aussi par sujet. Les groupes sont eux rpartis 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 dautres. Ce que vous crivez de chez vous un instant X sera disponible sur un serveur lautre bout du monde un instant Y, le temps sparant ces deux instants variant de quelques millisecondes quelques minutes. Le Logiciel Libre est trs li Usenet, car cest un formidable moyen pour les dveloppeurs et utilisateurs de communiquer entre eux, permettant un change rapide dinformations. Cest aussi un moyen sr pour trouver rapidement des rponses presque nimporte quel problme, ou pour simplement passer un bon moment.

La hirarchie internationale, compose en ralit de huit hirarchies : comp.*, news.*, rec.*, soc.*, misc.*, sci.*, talk.*, humanities.*

32

5 Mise en place matrielle


5.1 Liaison

Je ne couvrirais pas cette partie, ne sachant pas quel type de liaison sera retenu par ltablissement. Toutefois, ce projet se base sur une liaison xe haut dbit, disposant dau moins deux adresses IP xes. En effet, les solutions daccs Internet dployes dans les tablissements scolaires sont gnralement de simples routeurs Numris, coteux, lents et compltement obsoltes. Comparativement, un accs par technologie cble ou xDSL revient beaucoup moins cher pour une qualit et un dbit nettement suprieurs. Sur le territoire franais, loffre Netissimo 2 de France Tlcom est un excellent choix qui conviendra trs bien. Certains fournisseurs, tel que Nerim1 par exemple, fournissent des adresses IP xes pour un prix trs raisonnable. Loffre Netissimo 1 peut galement savrer sufsante. Dans le cas dune ligne ADSL, la topologie du rseau sera toutefois diffrente de celle prsente ci-dessous. Lutilisation dun routeur/modem ADSL est une solution envisageable.

5.2

Rseau

Larchitecture du rseau est relativement simple ; le serveur et le serveur daccs sont relis directement Internet. Les cinq machines clientes sont relis au rseau par le biais du serveur daccs, grce un simple hub Fast-Ethernet (100 Mb/s). Sur ce mme hub viendront se connecter le serveur et le serveur daccs, permettant le partage des rpertoires utilisateurs et laccs Internet. Les deux serveurs disposent chacun dune adresse IP publique xe. Les clients, quant eux, disposent chacun dune adresse xe, mais prive et non routable (si vous disposez de sufsamment dadresses publiques pour en assigner galement aux postes clients, nhsitez pas). clairons tout ceci par le schma de la gure 5.1. Basons-nous sur une connexion de type Ligne Spcialise, ou cble, sur lesquelles lon se connecte au moyen dquipements rseau Ethernet (10 Mb/s ou 100 Mb/s).
1

http://www.nerim.net

33

Mise en place matrielle

F IG . 5.1 Architecture du rseau

34

Mise en place matrielle

5.3
5.3.1

Machines
Serveur

Le serveur sera mis labris, si possible dans un placard. Le clavier, la souris et lcran ne sont ncessaires que pour linstallation et peuvent tre retirs par la suite, an dviter tout incident. Il devra toutefois tre accessible pour permettre lchange des cartouches de sauvegarde. En effet, le plus gros risque pour une machine quelle quelle soit rside dans son accs physique, et non dans son accs par le rseau, contrairement ce que les mdias nous font croire.

5.3.2

Serveur daccs

Il doit rester accessible, car il servira ladministration du site. Le clavier peut tre enlev lorsque la machine nest pas utilise, an 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 allumes en permanence. Il ny 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 matriel est aujourdhui prvu pour cet usage. Les deux serveurs, quant eux, ne peuvent tre arrts. En effet, ils accueillent des services essentiels quon ne peut interrompre. Il convient de protger lectriquement les deux serveurs au moyen de deux onduleurs. Une dure de 20 minutes devrait tre sufsante pour garantir la continuit de lalimentation. On veillera entretenir ces deux onduleurs en les dchargeant rgulirement. Il est galement possible de brancher sur londuleur du serveur daccs, par exemple, les quipements de liaison, tels le premier hub et un ventuel quipement fourni par le prestataire de liaison. Il est fortement conseill dutiliser un logiciel de surveillance de londuleur, qui permet darrter proprement les machines lorsque les batteries de londuleur dpassent un seuil critique2 .

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

35

6 Installation du systme Debian GNU/Linux


Je ne vais pas dcrire ici lintgralit de la longue procdure dinstallation du systme Debian GNU/Linux. Linstallation est rendue particulirement longue par la slection des paquetages logiciels installer. En effet, Debian propose plus de 5000 paquetages, parmi lesquels il faudra slectionner ceux que nous voulons utiliser, en prenant garde aux problmes de conits et de dpendances. Heureusement, lutilitaire de slection des paquetages prend garde ces problmes de dpendances et de conits, et vous proposera immdiatement de rsoudre le problme ds quil survient. Petit bmol, le systme dinstallation est pour le moment uniquement disponible en anglais. Linstallation peut se faire au moyen dune connexion Internet (FTP, HTTP), partir dun disque local o rsident les chiers, partir dun volume mont par NFS, ou, bien entendu, par le biais des 3 CD-ROM dinstallation de Debian GNU/Linux Potato. Je prciserai, dans les sections qui suivent, quels sont les paquetages importants que nous avons besoin dinstaller. Je ne dtaille pas les paquetages de base dun systme UNIX, la liste serait trop longue. Une documentation dtaille, claire, prcise et normalement disponible en Franais est fournie avec la distribution Debian GNU/Linux ; elle se trouve sur les CD-ROM dinstallation ainsi que sur les serveurs FTP et HTTP du projet. Je vous conseille de rcuprer et dimprimer cette prcieuse documentation.

6.1

Serveur

Le serveur sera dpourvu dinterface graphique, celle-ci tant une aberration consommatrice de ressources dans ces conditions. Nous ninstallerons donc que les diffrents serveurs et utilitaires dont nous aurons besoin, et rien de plus. Bien que nous ninstallions pas dinterface graphique, certains programmes dpendent de la xlib6g ; installez le paquetage et rien de plus. La liste nest pas exhaustive ; elle ne comporte que les logiciels indispensables pour mettre en place les diffrents services. Un certain nombre dautres outils doivent tre installs an davoir un systme UNIX utilisable. sendmail : notre serveur SMTP bind : notre serveur DNS dnsutils : une panoplie doutils permettant dinterroger 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

Installation du systme Debian GNU/Linux

proftpd : notre serveur FTP samba : permet le partage de ressources avec lenvironnement MS-Windows nfs-common et nfs-kernel-server : le serveur NFS et les chiers communs aux clients et au serveur nis : le serveur NIS, permettant le partage dinformations propos des comptes utilisateurs quota : utilitaires pour la gestion des quotas despace disque ntp : permet de garder la machine lheure libgd-perl : utilis par innreport et MRTG pour gnrer les graphiques snmpd : permet la surveillance de diverses informations sur ltat du rseau et des htes snmp : les utilitaires permettant de lancer des requtes SNMP1 mrtg2 : permet de surveiller la charge sur un rseau, et produit des graphiques avec les informations recueillies sudo : permet daccorder les droits de ladministrateur3 au coup par coup certains utilisateurs ssh : permet daccder la machine distance, de manire scurise screen : multiplexeur de terminaux, permet lafchage de 10 terminaux virtuels sur un terminal physique telnet : nous ninstallons que le client telnet, pas le serveur, pour des raisons de scurit les outils de dveloppement standards : make, gcc, libc6-dev, etc. . . les diteurs et manipulateurs de texte : vim, Emacs, sed, awk, . . . les afcheurs de texte : less, more Lors de linstallation, il est ncessaire de partitionner, formater et monter les diffrents disques durs. Le premier disque comportera une partition de quelques dizaines de Mo (20 ou 30 Mo sont sufsants) en dbut de disque, que lon montera sous /boot, ainsi quune partition de swap4 de 128 Mo, et une troisime partition, monte sous /. Le deuxime disque sera une seule et mme partition, monte sous /home. Le troisime disque sera une seule et mme partition, monte sous /var/spool/mail. Le quatrime disque sera une seule et mme partition, monte sous /var/spool/news. Contrairement aux autres, il faudra le formater manuellement durant linstallation, en utilisant la commande mke2fs -T news <partition formater> qui formatera la partition avec des options spciales, correspondant lusage particulier dun spool de news. Remarquez que vous devez monter la partition correspondant / avant de monter les autres partitions. Lors de la conguration de la zone horaire, veillez entrer lheure GMT, et choisissez la zone GMT, ceci an de ne pas souffrir du changement dheure. Rappel (pour la France) : t GMT + 2 heures hiver GMT + 1 heure Ne crez pas de nouvel utilisateur lorsque cela vous est demand. Nous travaillerons en root tant que le service NIS naura pas t congur.
1 2

Simple Network Management Protocol : protocole simple de gestion du rseau. Multi Router Trafc Grapher. 3 Administrateur dont le login est root, par tradition. 4 Mmoire virtuelle.

37

Installation du systme Debian GNU/Linux

6.2

Serveur daccs

L aussi, nous ninstallons pas dinterface graphique. La console est amplement sufsante, et il est possible de se connecter distance sur la machine (besoin de plusieurs terminaux, par exemple). sendmail : notre serveur SMTP squid : le proxy HTTP squidguard : un redirecteur pour Squid qui permet deffectuer un ltrage bind : notre serveur DNS dnsutils : une panoplie doutils permettant dinterroger les serveurs DNS nfs-common : les chiers communs aux clients et au serveur nis : le client NIS, permettant le partage dinformations propos des comptes utilisateurs ntp : permet de garder la machine lheure snmpd : permet la surveillance de diverses informations sur ltat du rseau et des htes sudo : permet daccorder les droits de ladministrateur au coup par coup certains utilisateurs ssh : permet daccder la machine distance, de manire scurise telnet : nous ninstallons que le client telnet, pas le serveur, pour des raisons de scurit ipchains : utilitaire de conguration du rewalling/masquerading pour Linux v2.2 apslter : les ltres permettant lutilisation des imprimantes. Divers utilitaires sont ncessaires, tels a2ps, html2ps, . . . Lutilisation de magiclter peut savrer ncessaire si les imprimantes ne sont pas reconnues par apslter. gs : GhostScript permet limpression des documents PostScript. Il est utilis par apslter et magiclter. les outils de dveloppement standards : make, gcc, libc6-dev, etc. . . les diteurs et manipulateurs de texte : vim, Emacs, sed, awk, . . . les afcheurs de texte : less, more Ici, nous crerons une partition de swap de 128 Mo en dbut de disque, puis une petite partition (20 ou 30 Mo sufsent) que nous montons sous /boot, et le reste du disque sera une seule et mme partition monte sous /. Remarquez quil faut monter la partition destine / avant de monter celle destine /boot. Ici aussi, veillez congurer la machine en heure GMT dans la zone horaire GMT. Lors de linstallation, le programme dinstallation vous demande si vous souhaitez crer un autre utilisateur. Ne crez pas dutilisateur, rappelez-vous que nous utilisons un serveur NIS et que nous montons un volume NFS pour les rpertoires personnels, bien que seul ladministrateur ne soit appel se servir de cette machine. Ceci pour lui permettre daccder son rpertoire personnel, comme sil utilisait une des machines clientes. Il vous faudra slectionner les modules ip_masq_ftp, ip_masq_cuseeme, ip_masq_irc, ip_masq_raudio lors de linstallation.

6.3 Machines clientes


sendmail : notre serveur SMTP nfs-common : les chiers communs aux clients et au serveur nis : le client NIS, permettant le partage dinformations propos des comptes utilisateurs

38

Installation du systme Debian GNU/Linux

sudo : permet daccorder les droits de ladministrateur au coup par coup certains utilisateurs ssh : permet daccder la machine distance, de manire scurise snmpd : permet la surveillance de diverses informations sur ltat du rseau et des htes telnet : nous ninstallons que le client telnet, pas le serveur, pour des raisons de scurit linterface graphique X-Window : le serveur X5 idoine, ainsi que lenvironnement graphique GNOME et les diffrents gestionnaires de fentres cits plus haut. les logiciels cits dans la section 2.2 (page 21) et concernant les postes clients les outils de dveloppement standards : make, gcc, libc6-dev, etc. . . les diteurs de texte : vim, Emacs, sed, awk, . . . les afcheurs de texte : less, more Ici, nous crerons une partition de swap de 128 Mo en dbut de disque, puis une petite partition (20 ou 30 Mo sufsent) que nous montons sous /boot, et le reste du disque sera une seule et mme partition monte sous /. L aussi, vous devez monter la partition correspondant / avant de monter les autres partitions. Lors de la conguration de la zone horaire, entrez lheure courante, et slectionnez la zone horaire Europe/Paris (pour la France). En dautres termes, les machines clientes seront rgles lheure lgale. Lors du changement dheure, veillez ce quil se soit effectu correctement ! Lors de linstallation, le programme dinstallation vous demande si vous voulez crer un autre utilisateur. Ne crez pas dutilisateur, rappelez-vous que nous utilisons un serveur NIS et que nous montons un volume NFS pour les rpertoires personnels.

6.3.1

Rplication des machines clientes

Linstallation de Debian GNU/Linux est quelque peu longue lorsque lon choisit de slectionner soi-mme les paquetages installer. Installer cinq machines (ou plus) avec exactement les mmes paquetages est une chose fastidieuse et prouvante, pour lavoir fait. Lutilitaire de gestion des paquetages, dpkg, permet de rpliquer linstallation dune machine assez facilement. Dtaillons la marche suivre : Installez la premire machine cliente. Lors de la slection des paquetages, choisissez loption advanced. Reprez bien cette tape. Congurez entirement la machine. Si vous avez oubli des logiciels, installez-les. Dressez une liste des chiers de conguration que vous avez modis. Il sagit maintenant de rcuprer la liste des paquetages installs et de la mettre dans un chier, pour pouvoir lexploiter par la suite. Excutez la commande : dpkg --get-selections > pkg-client.txt Transfrez le chier pkg-client.txt sur une disquette (de prfrence contenant un systme de chier ext2, cest dire formate en ext2). Dbutez linstallation de la prochaine machine cliente, puis, lcran vous informant que dselect va tre lanc, basculez sur le shell (console 2, Alt + F2), montez la disquette contenant le chier pkg-client.txt (dans /instmnt par exemple).
5

Le serveur dpend du type de carte installe sur la machine. La liste des cartes supportes est incluse dans le descriptif du paquetage.

39

Installation du systme Debian GNU/Linux

Excutez la commande : dpkg --set-selections < /instmnt/pkg-client.txt Dmontez la disquette, revenez sur la procdure dinstallation (console 1, Alt + F1), puis continuez. Arriv dans dselect, aller dans la rubrique Select : tous les paquetages installs sur la premire machine doivent tre slectionns. Sortez, choisissez Install. Vous venez de gagner approximativement une heure. Il ne vous reste plus qu congurer la machine limage de la prcdente, moyennant les informations 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 prsents dans la section 2.2.12 (page 26) ainsi que StarOfce/OpenOfce ou IglooFTP, ne sont pas tous disponibles sous forme de paquetages Debian. De ce fait, ladministrateur devra installer ces logiciels partir de leur code source ou de leur distribution binaire. Le plus gnralement, cela se fait en 6 tapes, grce aux outils GNU : rcupration de larchive contenant les sources dcompression de larchive lancement du script congure compilation installation suppression des sources Toutefois, si vous dsirez un paquetage Debian pour lun ou lautre de ces logiciels, vous pouvez me contacter, je ferai mon possible pour debianiser ledit logiciel, si lauteur ny voit pas dobjections, et que cela nest pas dj fait. Vous pouvez galement solliciter nimporte quel Dveloppeur Debian de votre connaissance, qui, sil en a le temps et lenvie, fera son possible. Vous pouvez galement construire vous-mme un paquetage en suivant les documentations idoines.

40

7 root, le super-utilisateur
Sur un systme multi-utilisateurs, chaque utilisateur a des droits spciques. Il ne peut agir que sur certaines parties du systme, ceci an de ne pas compromettre le travail des autres utilisateurs. Il est donc ncessaire pour assurer ladministration du systme davoir recours un utilisateur ayant absolument tous les droits. Sous MS-Windows NT, cet utilisateur est nomm Administrateur (dans la version franaise). Sur les systmes UNIX, ce super-utilisateur est nomm par tradition root. root en anglais signie racine. On comprend ds lors mieux lorigine du nom donn cet utilisateur. En effet, le root est la base de la vie du systme. Sans lui, rien ne me marche.

7.1

Les oprations rserves

De ce fait, seul le root est autoris effectuer certaines oprations. Il est par exemple le seul pouvoir arrter ou dmarrer certains programmes, pouvoir modier certains chiers, etc. . . Si vous vouliez redmarrer un daemon1 arrt pour une cause quelconque, vous devriez vous logguer2 en tant que root puis excuter la commande adquate. Idem si vous vouliez modier la conguration de sendmail, de proFTPd ou encore de Squid. Bien videmment, le root est seul pouvoir ajouter ou supprimer des utilisateurs.

7.2

Scurit

tant donn limportance de cet utilisateur, il y a quelques prcautions prendre pour viter tout problme.

7.2.1

Ne pas travailler en root

Lors de linstallation des machines, nous devrons travailler un certain temps en tant que root. Cest un moment exceptionnel dans la vie dun systme, qui ne se produit quune seule et unique fois. Il ne faut pas que cela devienne une habitude. En effet, en tant que root, vous pouvez tout faire, y compris effacer compltement et irrmdiablement le systme. Vous devez tre vigilant par rapport aux programmes ou scripts que vous excutez en tant que root. Il est conseill dviter lexcution de programme dont on a
1

Disk And Extensions MONitor : sont appels daemons les programmes serveurs, tels sendmail, INN, proFTPd, ou encore les programmes qui veillent la vie du systme, tel syslog qui permet de consigner dans un journal les vnements. 2 Ouvrir une session (to log in).

41

root, le super-utilisateur

des raisons de douter de leur provenance. Il est galement fortement conseill de lire un script avant de lexcuter an de savoir ce quil va faire. Imaginez un simple script Bash3 contenant la commande rm -rf / 4 , ou tout autre drive. Eh bien, vous y tes, le systme est intgralement effac.

7.2.2

Rpertoire personnel

Le rpertoire personnel de root est /root. Il est local chaque machine et ne peut ni ne doit tre partag. En effet, si le rpertoire personnel dun utilisateur nest pas accessible, celui-ci ne peut pas ouvrir de session sur la machine. Il serait embtant que root ne puisse travailler parce que son rpertoire ne peut tre accd cause dun montage NFS indisponible.

7.2.3

Contourner les problmes de droits

Il y a plusieurs moyens permettant de sapproprier les droits du root pour une priode temporaire. Il y en a trois principaux : 7.2.3.1 Lutilitaire su Il permet douvrir une session root pendant une session dutilisateur normal. Le mot de passe du root est alors demand, puis la session dmarre si celui-ci est correct. On quitte la session par la commande exit, comme pour une session normale. Il peut tre invoqu avec diffrentes options : su : ouvre une session root en conservant lenvironnement de lutilisateur courant su - : ouvre une session root et charge lenvironnement du root la place de lenvironnement de lutilisateur. Celui-ci sera restaur lorsque lon sortira de la session su - <utilisateur> : ouvre une session en tant que <utilisateur>, en chargeant lenvironnement de lutilisateur. Le mot de passe de <utilisateur> est requis. On remarquera que le root na pas besoin de connatre le mot de passe dun utilisateur pour ouvrir une session sous cet utilisateur au moyen de su. Linconvnient de su est quil requiert la connaissance du mot de passe de lutilisateur, ce qui est embtant dans le cas de root. 7.2.3.2 Lutilitaire sudo Il permet certains utilisateurs de lancer une commande en tant que root. Seuls les utilisateurs rpertoris par le root dans le chier de conguration de sudo (/etc/sudoers) ont le droit dinvoquer cette commande. Si un autre utilisateur essayait de se servir de sudo sans tre enregistr, le root recevrait un mail linformant de cette tentative dutilisation frauduleuse. Il permet peu prs les mmes choses que su, permettant en plus de spcier un certains nombres de commandes que lutilisateur peut lancer. sudo <commande> : demande le mot de passe de lutilisateur, puis lance <commande> sudo -u <utilisateur> <commande> : demande le mot de passe de lutilisateur, puis lance <commande> en tant que <utilisateur>
3

Bash est un shell standard sous UNIX qui peut interprter des chiers excutables comprenant des commandes reconnues par le shell. 4 rm -rf / : effacer rcursivement sans message davertissement le rpertoire /.

42

root, le super-utilisateur

sudo -s : lance le shell spci par la variable denvironnement $SHELL, ici en tant que root. Les options sont bien sr combinables. Vous trouverez plus de dtails 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 lancer un programme donn en tant que root. Il suft de positionner le bit setUID du programme en question par la commande : chmod +s <fichier> Le programme sera alors excut avec les droits de root.

7.2.4

Permissions spciales

Il se peut que certains programmes ncessitent des permissions spciales sur certains chiers pour fonctionner convenablement. Il sagit en particulier des chiers se trouvant dans /dev et qui permettent la communication entre les programmes et le matriel. TiLP, notamment, ncessite un accs en lecture et criture aux ports srie et parallle de la machine (cest--dire aux chiers /dev/ttyS* et /dev/lp*) pour fonctionner correctement. Il y a deux possibilits pour accorder ces droits : positionner le bit setUID sur le chier excutable du programme (ce qui ne fonctionne plus avec les programmes utilisant la bibliothque graphique GTK+) accorder lutilisateur les droits sur les ressources concernes (ce qui peut ne pas tre sufsant) La deuxime solution est tout aussi facilement applicable, car il vous suft de faire en sorte que vos utilisateurs soient membres des groupes possdant les droits sur les ressources concernes. Pour les ports srie et parallle, les groupes dialout et lp sont concerns. Les membres de ces groupes ont les droits en lecture et criture sur les ports srie et parallle, par consquent nimporte quel membre de ces groupes aura les mmes droits. Avant daccorder des droits supplmentaires vos utilisateurs, assurez-vous quils ne peuvent rien faire de dangereux en protant de ces droits.

7.2.5

Lecteurs de disquettes et de CD-ROM

Par dfaut, seul root peut accder aux lecteurs de disquettes et de CD-ROM. Pour quun utilisateur non-privilgi puisse accder ces ressources, il convient de modier les options du lecteur dans le chier /etc/fstab. La ligne : /dev/fd0
5

/floppy

auto

defaults,user,noauto

Systme de documentation en ligne (MANuel) des systmes UNIX, appel par man sudo ou man 8 sudo. Plus de dtails dans la page de man de man (disponible par man man).

43

root, le super-utilisateur

permet chaque utilisateur (paramtre user) de monter le lecteur de disquettes (/dev/fd0) dans le rpertoire /oppy en tapant simplement mount /dev/fd0.

7.3
7.3.1

Condentialit
Mot de passe du root

Il doit bien entendu rester secret et connu dune seule et unique personne. Vous ne devez le communiquer personne, et le changer rgulirement. Cest absolument ncessaire pour assurer une bonne scurit du systme.

7.3.2

Donnes utilisateurs

Le root ayant tous les droits, il peut sa guise agir sur tous les chiers prsents sur le systme, mme si vous naccordez les droits sur vos chiers qu vous et vous seul. Par consquent, les utilisateurs de sudo peuvent galement visionner et modier nimporte quel chier. Il convient donc de bien choisir les personnes que vous enregistrerez comme utilisateurs de sudo. Lors de la premire utilisation de sudo, chaque utilisateur voit apparatre lcran une note concernant la condentialit des donnes. Puis, il doit conrm quil a bien lu cette note et quil est conscient de ses responsabilits. Je vous conseille fortement de restreindre les commandes accessibles aux sudoers6 . Maintenant, il peut utiliser sudo. bon ou mauvais escient. Ne vous fchez jamais avec lun de vos sudoers, vous ne pouvez pas prvoir sa raction.

Utilisateurs enregistrs de sudo.

44

8 Conguration du serveur
8.1 Compilation du noyau

Le noyau gnrique fourni avec la distribution Debian contient un certain nombre de pilotes de priphriques qui nous sont inutiles. Cela entrane une consommation de mmoire plus importante, et des performances moindres, dans une certaine mesure. Nous allons donc compiler un noyau sur mesure pour notre machine. Commencez par rcuprer 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 larchive dans le rpertoire /usr/src. Vriez quil ny a pas de rpertoire nomm linux, sil y en a un, renommez-le. Maintenant, dcompressez larchive contenant les sources du noyau. Un nouveau rpertoire linux est apparu, celui-ci contient les sources du noyau. Allez dans ce rpertoire, et lancez la commande (le paquetage libncurses-dev doit tre install) : make menuconfig Aprs la compilation de quelques chiers, une interface graphique apparat. Nous allons maintenant congurer le noyau Linux. En dehors des composants requis pour la bonne marche de la machine, veillez plus particulirement aux options suivantes : utilisation des pilotes exprimentaux optimisation pour la famille de processeurs utilise par la machine utilisation des modules noyau nous mettons les pilotes des diffrentes cartes Ethernet dans le noyau et non pas en module le pilote de la carte SCSI utilise doit tre dans le noyau, pas en module le support pour les UNIX98 PTYs ; nous laissons la valeur par dfaut (256) dans la section systmes de chiers, nous incluons dans le noyau le support pour le systme /proc ainsi que celui pour le systme /dev/pts, sans oublier dinclure le support pour le deuxime systme de chiers tendu (ext2fs). Nous activons galement le support pour les quotas dans la mme section, nous plaons en modules les supports pour les systmes de chiers FAT, VFAT, MSDOS, UMSDOS, ISO9660 dans la section systmes de chiers rseau, nous plaons en modules les supports pour le systme de chiers NFS, le serveur NFS et le systme de chiers SMB dans la section kernel hacking, activez loption Magic SysRQ key. Cette option permet de communiquer avec le noyau lors dun plantage svre de la machine an deffectuer les oprations de dernire minute (synchronisation des partitions montes, etc. . .) avant de redmarrer la machine. Lisez la documentation concernant cette fonctionnalit dans le chier Documentation/sysrq.txt.

45

Conguration du serveur

Maintenant, sauvegardez la conguration et quittez linterface. Puis compilez et installez le noyau. Congurez LILO de manire pouvoir dmarrer sur lun ou lautre des deux noyaux prsents, cest--dire le noyau dorigine et celui que nous venons de compiler. Le chier de conguration 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 !! | | | | Dont 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 dont 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 doesnt 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

Conguration 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

8 # # # # #

Conguration 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 label=Linux read-only # restricted # alias=1 image=/boot/vmlinuz-2.2.14 label=linux-orig read-only # optional # restricted # alias=2 # # # # # # # # # le nouveau noyau, ici version 2.2.16

# le nouveau noyau, ici version 2.2.14

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 chier est le chier livr avec Debian GNU/Linux. Seuls les paragraphes concernant les deux noyaux ont t modis. Ici, le nouveau noyau sera dmarr par dfaut. Lancien noyau est accessible sous le nom linux-orig. Pour y accder, appuyez sur la touche tabulation lors du prompt LILO : ; vous verrez apparatre la liste des noyaux disponibles. Slectionnez le noyau dmarrer et appuyez sur Entre. Lancez /sbin/lilo de manire mettre jour le secteur de boot de la machine. Si tout se passe bien, vous pouvez essayer de redmarrer la machine. Si LILO vous dit que votre noyau est trop gros, soit vous avez inclus beaucoup trop de choses dedans, auquel cas vous pouvez le recongurer et faire la chasse aux options inutiles, soit vous pouvez utiliser make bzImage pour le compiler. Si la machine redmarre sans problmes, bravo, sinon recommencez, vous avez certainement oubli quelque chose. Une fois la machine redmarre avec son nouveau noyau, et si tout se passe bien, sauvegar-

48

Conguration du serveur

dez le chier /usr/src/linux/.cong (notez le ., ce qui signie que cest un chier cach) dans le rpertoire personnel de root (/root), sous un nom vocateur. Vous pourrez charger ce chier pour congurer le prochain kernel, ce qui vous vitera de devoir saisir nouveau la conguration. Je ne peux pas dcrire ici toute la conguration du noyau, car je ne sais pas quel est le matriel prsent. Beaucoup doptions en dpendent. Nhsitez pas consulter la documentation, tel le kernel-HOWTO.

8.2

Interfaces rseau

Nous avons ici trois interfaces rseau, dont seulement une est congure. Nous nous arrangerons pour obtenir ce schma (du moins, je me base sur ceci) : eth0 Internet eth1 rseau local eth2 intranet de ltablissement La premire interface, eth0, a t congure durant linstallation, elle est donc thoriquement en tat de marche. Congurons maintenant les deux autres. La conguration des interfaces est contenue dans le chier /etc/network/interfaces. ditez-le laide 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 static address xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx hostname fremen.etablissement.org # ici, la machine sappelle "fremen" # # # # Ici, linterface eth0, configure avec une IP statique (static). Remplacez xxx.xxx.xxx.xxx par ladresse IP assigne la machine puis remplacez xxx.xxx.xxx.xxx par le masque de rseau adquat.

iface eth1 inet static address 10.1.0.1 netmask 255.255.255.0

49

Conguration du serveur

hostname fremen.etablissement.org # Ici, linterface eth1, configure avec une IP statique (static) iface eth2 inet static address xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx hostname fremen.etablissement.org # # # # # # # # # # # # Ici, linterface eth2, configure avec une IP statique (static). Si lintranet de ltablissement utilise le protocole DHCP voyez avec ladministrateur la possibilit dobtenir une IP fixe pour cette machine. Remplacez xxx.xxx.xxx.xxx par lIP fournie par ladministrateur. Remplacez xxx.xxx.xxx.xxx par le masque de rseau fourni par ladmisnitrateur. Si le site utilise la classe 10.x.x.x, changez les adresses du rseau local ; utilisez par exemple 192.168.1.1 (classe prive) pour eth1.

Sauvegardez le chier, quittez votre diteur et nous allons maintenant dmarrer les diffrentes interfaces. Un script de dmarrage est charg de cela ; nous lutilisons comme ceci : /etc/init.d/networking restart Le script va initialiser les diffrentes interfaces. Si tout se passe bien, lutilitaire ifcong doit vous donner quelque chose de ce genre : eth0 Link encap:Ethernet HWaddr 00:60:97:A7:0E:8D inet addr:213.166.193.178 Bcast:213.166.195.255 Mask:255.255.252.0 UP BROADCAST NOTRAILERS RUNNING MULTICAST MTU:1500 Metric:1 RX packets:252308 errors:0 dropped:0 overruns:0 frame:0 TX packets:12150 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 Interrupt:5 Base address:0x300

Et ce, pour chaque interface, certaines donnes variant.

8.3 Bind, serveur DNS


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

50

Conguration du serveur

Lors du dpt 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 diffrents chiers de conguration et dmarrer le daemon. Pour linstant, commenons par arrter Bind : /etc/init.d/bind stop Attaquons-nous maintenant la conguration.

8.3.1

Note importante

Tout au long de ce dossier, jutilise comme exemple le domaine etablissement.org. Ce domaine existe et est utilis. S URTOUT, NE LANCEZ PAS LE SERVEUR DNS AVEC CE DOMAINE DANS LES FICHIERS DE CONFIGURATION ! Remplacez IMPRATIVEMENT etablissement.org par le nom de domaine qui vous appartient. Je dcline toute responsabilit quant la gne que pourraient subir les dtenteurs du domaine etablissement.org en cas dutilisation telle quelle des chiers de conguration fournis ici.

8.3.2

/etc/bind/named.conf

Cest le chier de conguration 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

Conguration du serveur

// the all-0s placeholder. // forwarders { // 0.0.0.0; // }; }; // reduce log verbosity on issues outside our control logging { category lame-servers { null; }; category cname { null; }; }; // prime the server with knowledge of the root servers zone "." { 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

Conguration du serveur

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

// pour permettre la rsolution inverse zone "xxx.xxx.xxx.in-addr.arpa" { type master; file "/var/cache/bind/masters/xxx.xxx.xxx"; }; // remplacez xxx.xxx.xxx par linverse de ladresse 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 chier contient les informations permettant de retrouver le nom canonique dun hte partir de son adresse IP. Il se prsente comme suit : @ IN SOA ns1.etablissement.org. hostmaster.etablissement.org. ( 200006031 ; n de srie -> date (aaaammjj)+ n 8H ; refresh 2H ; retry 1W ; expire 1D) ; TTL minimum NS NS xxx xxx xxx xxx xxx xxx xxx yyy PTR PTR PTR PTR PTR PTR PTR PTR ns1.etablissement.org. ns2.etablissement.org. fremen.etablissement.org. ns1.etablissement.org. ftp.etablissement.org. www.etablissement.org. mail.etablissement.org. news.etablissement.org. etablissement.org. sardaukar.etablissement.org.

53

8 yyy

Conguration du serveur ns2.etablissement.org.

PTR

Le numro de srie est compos de la date du jour au format AAAAMMJJ et dun chiffre de 1 9, permettant didentier la version des enregistrements. Notez quil ne peut y avoir que 9 versions par jour. Au-del, vous devrez attendre le lendemain. Remarquez galement que fremen, ns1, ftp, www , mail et news sont en fait la mme machine. Idem, sardaukar et ns2 sont la mme machine. Les noms fremen et sardaukar sont remplacer par les noms que vous avez dcid de donner vos deux machines. Remplacez xxx.xxx.xxx.xxx par ladresse IP de fremen. Utilisez lutilitaire ifcong pour avoir, comme tout lheure, le rsum des diffrentes interfaces. Prenez ladresse de linterface eth0. Remplacez maintenant yyy.yyy.yyy.yyy par ladresse qui nous est alloue et que nous allouerons tout lheure notre autre machine (sardaukar). Lentre hostmaster.etablissement.org est lire comme tant hostmaster@etablissement.org. Cest ladresse e-mail du responsable des serveurs DNS pour la zone. Cette adresse doit exister.

8.3.4

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

Ce chier contient les informations permettant de retrouver ladresse IP dun hte partir de son nom canonique. Il se prsente comme suit : @ IN SOA ns1.etablissement.org. hostmaster.etablissement.org. ( 200006031 ; n de srie -> date (aaaammjj)+ n 8H ; refresh 2H ; retry 1W ; expire 1D) ; TTL minimum NS NS TXT MX MX localhost fremen ns1 ftp www eleves A A A A A A ns1.etablissement.org. ns2.etablissement.org. "Lycee xxxxxxxxxxxx" 10 mail.etablissement.org. 20 ns2.etablissement.org. 127.0.0.1 xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx

54

8 profs mail news etablissement.org. sardaukar ns2 A A A A A A

Conguration du serveur xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx yyy.yyy.yyy.yyy yyy.yyy.yyy.yyy

Les remarques faites prcdemment sappliquent ici aussi. Remplacez xxx.xxx.xxx.xxx par ladresse IP de fremen et yyy.yyy.yyy.yyy par ladresse IP que nous allouerons au deuxime serveur. Le champ TXT comprend un texte de quelques mots. Vous pouvez y mettre ce que vous voulez, par exemple le nom de ltablissement.

8.3.5

Maintenance

Notre serveur DNS sert de cache pour nos machines clientes. Pour ce faire, le serveur a besoin davoir une liste jour des serveurs DNS principaux1 . Cette liste est contenue dans le chier /etc/bind/db.root. Cette liste peut tre amene changer, pour une raison quelconque, il faut donc la mettre jour rgulirement. Voici un script-shell qui soccupe 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.new chmod 444 db.root.new rm -f db.root.old echo -e "\n*** Copie du nouveau fichier ***\n"
1

Ce sont les root-servers.

55

8 mv db.root db.root.old mv db.root.new db.root

Conguration du serveur

echo -e "\n*** Redmarrage de Bind ***\n" ndc restart echo -e "\n*** Mise jour termine ***\n" date

Enregistrez ceci dans un chier /usr/local/bin/update-dns, et rendez ce chier excutable. Lancez le script une premire fois. Maintenant, nous lancerons ce script une fois par semaine, pour maintenir un chier jour. Nous utilisons le programme cron, dont la tche est de lancer un moment dni une action dnie. ditons la crontab de root (notez que cron va lancer lditeur dni dans la variable denvironnement $EDITOR) : crontab -e Nous y ajoutons la ligne suivante : 45 18 1 * * /usr/local/bin/update-dns

Enregistrez le chier, quittez lditeur. Cron soccupe maintenant de tout.

8.3.6

Redmarrage de Bind

Nous pouvons maintenant redmarrer Bind : /etc/init.d/bind start Si jamais le serveur ne dmarrait pas, examinez les logs dans le chier /var/log/messages. Bind y indique les erreurs dtectes et lemplacement de ces erreurs. Trouvez le problme et corrigez-le, puis tentez de redmarrer le serveur.

8.3.7

/etc/resolv.conf

Ce chier est utilis par le mcanisme de rsolution des noms de domaine. Il contient les informations ncessaires pour que les diffrents logiciels mnent bien leur mission. Il se prsente comme cela :

domain etablissement.org search etablissement.org nameserver 127.0.0.1

56

Conguration du serveur

8.3.8

/etc/nsswitch.conf

Ce chier indique aux agents chargs de la rsolution des noms de domaine les diffrents moyen leur disposition pour arriver leur n et lordre de prfrence. Il se prsente 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. compat compat compat files dns files db db db db files files files files

passwd: group: shadow: hosts: networks: protocols: services: ethers: rpc: netgroup:

nis

8.3.9

/etc/host.conf

Ce chier indique aux routines en charge de la rsolution de noms lordre dutilisation des diffrents moyens disponibles pour la rsolution des noms. Il se prsente comme ceci : order hosts,bind multi on

8.3.10

/etc/hosts

Ce chier contient les adresses IP et noms canoniques de diffrentes machines. De nos jours, il nest plus utilis que pour renseigner le nom attribu la machine. Il se prsente sous cette forme : # The following lines are desirable for IPv6 capable hosts # (added automatically by netbase upgrade) ::1 ip6-localhost ip6-loopback

57

8 fe00::0 ff00::0 ff02::1 ff02::2 ff02::3 ip6-localnet ip6-mcastprefix ip6-allnodes ip6-allrouters ip6-allhosts

Conguration du serveur

127.0.0.1

fremen.etablissement.org

fremen,localhost

8.4

Sendmail, serveur SMTP

Notre serveur SMTP principal sera charg de la rception et de lenvoi de tous les mails, sans exception. Nous le congurerons de faon quil rejette une partie du spam, grce quelques listes noires renommes. Commenons par arrter sendmail : /etc/init.d/sendmail stop

8.4.1

/etc/mail/sendmail.cf

Ce chier peut tre gnr de plusieurs faons. La plus rpandue est lutilisation du kit M4 fourni avec sendmail. Une faon tout aussi efcace, mais plus longue, est dcrire directement ce chier la main. Daucuns avancent que personne ne peut se prtendre administrateur de systmes UNIX tant quil na pas crit un sendmail.cf la main. Dautres prtendent que faire ceci plus dune fois rend fou. Voil pour les anecdotes, passons la confection dun sendmail.mc sur lequel nous lancerons le processeur M4. Rendez-vous dans le rpertoire /usr/share/sendmail/sendmail.cf. Ouvrez votre diteur prfr sur un chier nomm sendmail.mc. Voici le chier que nous utiliserons : include(./m4/cf.m4)dnl dnl dnl Dfinition de certains lments spcifiques au systme dnl (emplacement de certains fichiers, ...) dnl OSTYPE(debian)dnl dnl dnl Nous dfinissons certains emplacements dnl FEATURE(use_cw_file,/etc/mail/local-host-names)dnl FEATURE(use_ct_file,/etc/mail/sendmail.ct)dnl FEATURE(mailertable,hash -o /etc/mail/mailertable)dnl FEATURE(domaintable,hash -o /etc/mail/domaintable)dnl FEATURE(genericstable,hash -o /etc/mail/genericstable)dnl FEATURE(virtusertable,hash -o /etc/mail/virtusertable)dnl

58

Conguration du serveur

FEATURE(access_db,hash -o /etc/mail/access)dnl define(STATUS_FILE, /etc/mail/trusted-users)dnl define(LOCAL_MAILER_PATH, /usr/bin/procmail)dnl define(confCW_FILE,/etc/mail/local-host-names)dnl define(confCT_FILE,/etc/mail/sendmail.ct)dnl define(confSTATUS_FILE, /etc/mail/statistics)dnl dnl dnl Nous rajoutons toujours le domaine en fin dadresse dnl (ex.: To: root devient To: root@etablissement.org) dnl FEATURE(always_add_domain)dnl dnl dnl Nous dfinissons les mailer (protocoles) utiliser dnl Ainsi que lutilisation de procmail dnl FEATURE(local_procmail)dnl MAILER(local)dnl MAILER(smtp)dnl MAILER(procmail)dnl dnl dnl Permet de rediriger une adresse en "adresse.REDIRECT" dnl FEATURE(redirect)dnl dnl dnl Protection anti-spam dnl FEATURE(dnsbl,blackholes.mail-abuse.org, Mail from $&{client_addr} rejected; see http://mail-abuse.org/cgi-bin/look)d FEATURE(dnsbl,dialups.mail-abuse.org, Mail from dial-up rejected; see http://mail-abuse.org/dul/enduser.htm)dnl FEATURE(no_default_msa)dnl FEATURE(rbl)dnl dnl dnl Permet de bloquer larrive de courrier pour certains utilisateurs dnl FEATURE(blacklist_recipients)dnl dnl dnl Taille maximum dun message, en octets. Ici, 10 Mo. dnl define(confMAX_MESSAGE_SIZE,10485760)dnl dnl define(confAUTO_REBUILD)dnl dnl dnl Message affich lors de la connexion dnl

59

Conguration du serveur

define(confSMTP_LOGIN_MSG, fremen.etablissement.org Sendmail 8.9.3 Have a nice day !)dnl dnl dnl Les dures aprs lesquelles les messages derreur sont envoys dnl define(confTO_QUEUEWARN,12h)dnl define(confTO_QUEUEWARN_NORMAL,12h)dnl define(confTO_QUEUEWARN_URGENT,12h)dnl define(confTO_QUEUEWARN_NONURGENT,12h)dnl dnl dnl Nous interdisont certaines commandes, et nous plaons dnl des avertissements de scurit dans certains cas dnl define(confPRIVACY_FLAGS, authwarnings,novrfy,noexpn,noetrn)dnl dnl dnl Emplacement du fichier .forward dnl define(confFORWARD_PATH, $z/.forward.$w:$z/.forward+$h:$z/.forward)dnl dnl dnl La personne qui doit recevoir les messages derreurs dnl define(confCOPY_ERRORS_TO, postmaster)dnl dnl dnl Nombre maximum de destinataires pour un mail dnl define(confMAX_RCPTS_PER_MESSAGE, 20)dnl dnl dnl Nous masquons les noms de machines dnl MASQUERADE_AS(etablissement.org)dnl MASQUERADE_DOMAIN(*.etablissement.org)dnl FEATURE(masquerade_entire_domain)dnl dnl dnl Nous relayons les machines listes dans /etc/mail/access dnl FEATURE(relay_hosts_only)dnl

Compilez le chier avec la commande : m4 sendmail.mc > /etc/mail/sendmail.cf Pour ce faire, vous aurez besoin de deux chiers : no_default_msa.m4 et dnsbl.m4. Ces chiers sont prsents sur le CD-ROM joint ce dossier. Copiez-les dans le sous-rpertoire feature. Ces chiers ne sont normalement pas ncessaires pour une version de sendmail suprieure ou gale 8.10.x.

60

Conguration du serveur

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

8.4.2

/etc/mail/access

Ce chier contient des renseignements sur les droits daccs de certains sites. On peut autoriser le relayage, rejeter les connexions, par exemple. La syntaxe est trs simple : <hte> <hte> <valeur> ### <message derreur>

O <hte> peut tre un nom de machine (ex. mail.blabla.org), un domaine (ex. blabla.org), une adresse particulire (ex. facheux@blabla.org) ou simplement un login (ex. facheux@). Et <valeur> peut tre REJECT, OK, RELAY, DISCARD. Enn, ### est un code derreur standard (ex. 550) et <message derreur> un message en anglais (ex. No spammers allowed here. Go away.). Voici celui que nous utiliserons ici : *.etablissement.org RELAY Nous devons compiler ces chiers, de manire que sendmail puisse y accder plus vite. Nous utilisons la commande : makemap hash /etc/mail/access.db < /etc/mail/access

8.4.3

/etc/mail/aliases

Ce chier contient les alias utilis par sendmail. Par dfaut, 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 ladministrateur. Car, rappelons-le, il ne faut pas travailler en tant que root, du moins, le moins possible. Ce chier est dj prsent et contient plusieurs valeurs quil ne faut pas modier. Rajoutez seulement ce qui diffre. 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. >>>>>>>>>> >> NOTE >> >>>>>>>>>> The program "newaliases" must be run after this file is updated for any changes to show through to sendmail.

61

Conguration du serveur

# Basic system aliases -- these MUST be present. MAILER-DAEMON: postmaster postmaster: root # General redirections for pseudo accounts. bin: root daemon: root games: root ingres: root nobody: root system: root toor: root uucp: root # Well-known aliases. manager: root dumper: root operator: root abuse: root newsmaster: root news: root usenet: root webmaster: root ftpmaster: root hostmaster: root # trap decode to catch security attacks decode: root root: <utilisateur>

Remplacez <utilisateur> par votre login, puis enregistrez le chier et lancez la commande : newaliases Sendmail va relire le chier /etc/mail/aliases et en tiendra dsormais compte.

8.4.4

/etc/mail/domaintable

Ce chier ne nous sert pas. Nous allons crer un chier vide, puis le compiler : touch /etc/mail/domaintable makemap hash /etc/mail/domaintable.db < /etc/mail/domaintable

62

Conguration du serveur

8.4.5

/etc/mail/genericstable

L encore, nous ne nous servons pas de ce chier. Nous crons donc un chier vide et le compilons : touch /etc/mail/genericstable makemap hash /etc/mail/genericstable.db < /etc/mail/genericstable

8.4.6

/etc/mail/local-host-names

Ce chier contient les diffrents noms sous lesquels la machine est connue. Sendmail se sert de ce chier pour savoir si il doit accepter ou pas un mail. Il se prsente comme ceci : etablissement.org fremen.etablissement.org ns1.etablissement.org ftp.etablissement.org www.etablissement.org news.etablissement.org mail.etablissement.org Ce chier ne se compile pas, sendmail y accde directement.

8.4.7

/etc/mail/mailertable

Nous ne nous servons pas de ce chier sur cette machine, nous allons donc crer un chier vide puis le compiler : touch/etc/mail/mailertable makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable

8.4.8

/etc/mail/relay-domains

Nous nutilisons pas ce chier. Nous crons donc un chier vide. touch /etc/mail/relay-domains

8.4.9

/etc/mail/sendmail.ct

Ce chier contient les logins des utilisateurs considrs comme ne prsentant pas de risques de scurit. On peut donc leur faire conance, et sendmail ne gnrera pas de message davertissement dans les en-ttes du message si lutilisateur mentionne une adresse diffrente de celle que nous lui fournissons comme origine de son mail. Le chier se prsente comme une simple liste dutilisateurs, nous y mettons bien entendu root : root

63

Conguration du serveur

8.4.10

/etc/mail/service.switch

Ce chier indique Sendmail de quels moyens il dispose pour se renseigner sur un utilisateur, 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 files hosts files dns aliases files Ce chier ne se compile pas.

8.4.11

/etc/mail/virtusertable

Nous nutilisons pas ce chier, nous allons donc crer un chier vide et le compiler : touch /etc/mail/virtusertable makemap hash /etc/mail/virtusertable.db < /etc/mail/virtusertable

8.4.12

Redmarrage de sendmail

Nous redmarrons maintenant sendmail : /etc/init.d/sendmail start Si sendmail ne redmarre pas, il y a une erreur quelque part. Il devrait vous indiquer lerreur. Vriez 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. apparat. Vous mettez n la connexion avec sendmail par la commande quit.

8.5

Qpopper, le serveur POP3

Le serveur POP3 ne requiert pas de conguration particulire.

8.6

NIS

Lors de linstallation du paquetage NIS, il vous est demand dentrer le domaine NIS. Saisissez etablissement.org. Commencez par arrter le serveur NIS : /etc/init.d/nis stop

64

Conguration du serveur

8.6.1

/etc/hosts

Nous devons modier le contenu du chier /etc/hosts, an que celui-ci contienne toutes les autres machines. Nous arrivons ceci : # The following lines are desirable for IPv6 capable hosts # (added automatically by netbase upgrade) ::1 fe00::0 ff00::0 ff02::1 ff02::2 ff02::3 ip6-localhost ip6-loopback ip6-localnet ip6-mcastprefix ip6-allnodes ip6-allrouters ip6-allhosts fremen.etablissement.org fremen.etablissement.org sardaukar.etablissement.org client1.etablissement.org client2.etablissement.org client3.etablissement.org client4.etablissement.org client5.etablissement.org fremen,localhost fremen sardaukar client1 client2 client3 client4 client5

127.0.0.1 10.1.0.1 10.1.0.2 10.1.0.11 10.1.0.12 10.1.0.13 10.1.0.14 10.1.0.15

Si vous avez utilis la classe dadresses 192.168.x.x, remplacez les adresses par les valeurs idoines.

8.6.2

/etc/defaultdomain

Nous allons congurer le nom du domaine NIS dans ce chier. Nous obtenons ceci : etablissement.org

8.6.3

/etc/init.d/nis

Nous devons indiquer au programme quil est un serveur matre. Nous allons diter le script de dmarrage : #!/bin/sh # # /etc/init.d/nis Start NIS (formerly YP) daemons. # #

65

Conguration du serveur

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

8.6.4

/etc/ypserv.securenets

Ce chier permet au serveur NIS daccepter ou de refuser la connexion selon lorigine de la requte. Cela vite que nimporte qui ait accs aux donnes du serveur. Voici notre chier : # # 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 localhost 255.0.0.0 127.0.0.0 # This line gives access to everybody. PLEASE ADJUST! # 0.0.0.0 0.0.0.0 # Nous nautorisons que notre rseau local 255.255.255.0 10.1.0.0

8.6.5

/etc/ypserv.conf

Nous modions lgrement le chier pour nautoriser laccs quaux machines de notre rseau 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

Conguration 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 : passwd.byname : passwd.byuid : * : Security : port : port : none : Passwd_mangle : yes : yes

# 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 : port 10.1.0.0/255.255.255.0 : passwd.adjunct.byname : port 10.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 valeurs adquates.

8.6.6

/etc/nsswitch.conf

Nous navons pas de modications apporter ce chier.

8.6.7

/var/yp/Makele

Nous devons adapter ce Makele2 pour tenir compte des shadow passwords. Cest une toute petite modication. ditez le chier et recherchez la ligne commenant par all : . La ligne se prsente comme ceci :

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

Modiez-la de sorte quelle se prsente comme cela au nal :

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

Fichier interprt par le programme make.

67

Conguration du serveur

8.6.8

Fin de la conguration du serveur

Nous terminons la conguration du serveur en lanant : /usr/lib/yp/ypinit -m

8.6.9

Dmarrage du serveur NIS

Nous pouvons maintenant redmarrer le serveur NIS : /etc/init.d/nis start Si le serveur ne dmarre pas correctement, cherchez lerreur ; le programme devrait vous dire o elle se situe.

8.7

Cration dun utilisateur

Vous pouvez maintenant crer un utilisateur qui soit soit votre utilisateur personnel, soit un utilisateur ddi ladministration. Cela vous vitera de travailler en tant que root jusqu la n de la conguration.

8.7.1

Mis jour des maps NIS

Le serveur NIS nutilise pas directement les chiers /etc/passwd, /etc/group et /etc/shadow, mais des copies de ceux-ci, compils la manire de sendmail, de faon rendre laccs aux donnes quils renferment plus rapide. chaque modication de ces chiers sur le serveur, que ce soit grce aux utilitaires classiques ou la main, vous devez rgnrer ces chiers. Pour ce faire, rendez-vous dans le rpertoire /var/yp et lancez : make Rien de plus, rien de moins. Pour tre certain que les maps soient jour, nous allons mettre une entre dans la crontab de root ; ditez la crontab comme prcdemment, puis rajoutez : 15 23 * * * cd /var/yp && make

Comme tout lheure, enregistrez et quittez votre diteur. Tous les jours 23h15, cron lancera pour nous la gnration des maps NIS.

8.8

Quotas disque

Comme toujours, nous commenons par arrter le gestionnaire des quotas : /etc/init.d/quota stop La manipulation des quotas est rserve root. Seul lui peut utiliser les utilitaires destins la maintenance des quotas.

68

Conguration du serveur

8.8.1

/etc/fstab

Ce chier contient les informations relatives chaque partition monte ou susceptible dtre monte sur le systme. Cela inclue certaines options, dont lutilisation des quotas. Notre chier 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 0 proc /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 handling none /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 systme quil doit tenir compte des quotas sur cette partition.

8.8.2

quota.user et quota.group

Ces chiers 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 crer la racine de chaque partition sur laquelle nous dsirons appliquer les quotas : touch touch chmod chmod touch touch chmod chmod /home/quota.user /home/quota.group 600 /home/quota.user 600 /home/quota.group /var/spool/mail/quota.user /var/spool/mail/quota.group 600 /var/spool/mail/quota.user 600 /var/spool/mail/quota.group

8.8.3

Activation des quotas

Nous allons maintenant demander au systme dactiver la gestion des quotas disque sur toutes les partitions comportant loption usrquota dans le chier /etc/fstab : /etc/init.d/quota start

69

Conguration du serveur

8.8.4

Attribution des quotas

Les quotas sont dnis pour chaque utilisateur. Pour simplier la maintenance, lutilisation dun utilisateur prototype a t rendue possible. Crons donc un utilisateur ayant pour login eleve, et qui nous servira de prototype pour les quotas : adduser eleve Rentrez les informations demandes, et poursuivons. Nous lanons la commande quotacheck -avug pour synchroniser les chiers quota.user et quota.group avec la situation actuelle des partitions. Maintenant, nous ditons les quotas de lutilisateur eleve : edquota -u eleve Lditeur Vi est lanc, ou tout autre diteur spci dans la variable $EDITOR. Nous obtenons ceci : Quotas for user eleve: /dev/sdb1: blocks in use: inodes in use: /dev/sdc1: blocks in use: inodes in use:

0, 0, 0, 0,

limits limits limits limits

(soft (soft (soft (soft

= = = =

0, 0, 0, 0,

hard hard hard hard

= = = =

0) 0) 0) 0)

Lutilisateur ne consomme pas despace disque pour linstant, puisque nous venons de le crer. Il y a deux types de limites : limite douce (soft limit) : cest une frontire partir de laquelle lutilisateur reoit un message lui signiant quil a dpass sa limite limite dure (hard limit) : cest la limite absolue pour lutilisateur. Il ne peut pas la dpasser. Notez que les limites sont exprimes en nombre de blocs, un bloc occupant 1024 octets, soit 1 Ko. Le nombre dinodes correspond au nombre de chiers que lutilisateur peut crer ; en ralit, il est suprieur 0 ds que lutilisateur est cr, car quelques chiers sont copis dans son rpertoire personnel. Nous avons dcid doctroyer un espace disque de 100 Mo maximum chaque utilisateur, ainsi quune bote 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

Conguration du serveur

Ici, nous avons donc la conguration suivante pour lespace disque : rpertoire personnel : limite douce 100 Mo, limite dure 110 Mo bote aux lettres : limite douce 30 Mo, limite dure 35 Mo Et nous avons ceci pour le nombre dinodes utilisables : rpertoire personnel : limite douce 110 000 inodes, limite dure 120 000 inodes, soit respectivement 110 000 et 120 000 chiers. La limite dure ne sera jamais atteinte ici, car le nombre dinodes est suprieur au nombre maximum de blocs. bote aux lettres : limite douce 10 inodes, limite dure 15 inodes, soit respectivement 10 et 15 chiers. Ici aussi, aucune des deux limites ne sera jamais atteinte ; en effet, il ny a quun chier appartenant lutilisateur dans ce rpertoire. Maintenant que nous avons termin, sauvegardez le chier et quittez votre diteur. Lutilitaire edquota va mettre jour les chiers quota.user et quota.group de chacune des partitions.

8.8.5

Maintenance

Pour plus de scurit, nous lancerons priodiquement lutilitaire quotacheck, comme prcdemment. 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 soccupe maintenant de tout.

8.9
tem3 .

NFS

Nous allons maintenant exporter les rpertoires personnels en utilisant le Network FileSysComme laccoutume, nous commenons par arrter le service :

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

8.9.1

/etc/exports

Le contenu de ce chier indique quels rpertoires doivent tre exports, qui peut y avoir accs, 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 :
3

Systme de chiers rseau. Il permet dexporter des chiers au travers dun rseau.

71

Conguration du serveur

/home : nous exportons le rpertoire /home, qui contient les rpertoires personnels 10.1.0.0/255.255.255.0 : nous autorisons notre rseau local, et uniquement celui-ci accder ce montage NFS (secure,rw,root_squash) : nous demandons au serveur dutiliser un port compris entre 0 et 1024, nous autorisons la lecture et lcriture, nous interdisons au root de la machine cliente dagir sur les chiers

8.9.2

Un peu de scurit

8.9.2.1 /etc/hosts.deny Ce chier permet de restreindre laccs certains services pour certains htes. Nous interdisons tous les htes 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 youre 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 chier permet dautoriser laccs certains services pour certains htes. Nous autorisons notre rseau local accder 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 youre going to protect the portmapper use the name "portmap" for the

72

Conguration 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

Redmarrage du service NFS

Nous pouvons maintenant redmarrer 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 arrtons Samba : /etc/init.d/samba stop

8.10.1

/etc/samba/smb.conf

Cest le chier de conguration central de Samba. Nous utiliserons celui-ci an dexporter les rpertoires 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 nagit QUE sur linterface relie lintranet interfaces = yyy.yyy.yyy.yyy/zzz.zzz.zzz.zzz ; Remplacez yyy.yyy.yyy.yyy par ladresse de la carte eth2 ; Remplacez zzz.zzz.zzz.zzz par le masque de sous-rseau bind interfaces only = true ; "security = user" is always a good idea. This will require a Unix account

73

8 ;

Conguration du serveur

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

; Change this for the workgroup your Samba server will part of workgroup = 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 ; Its 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 ladresse du serveur WINS ; Demandez cette adresse ladministrateur de ltablissement ; 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

8 ; ; local master = no preferred master = no

Conguration du serveur

; 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 = yes short 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 ; <aluton@hybrigenics.fr> for sending the correct chat script for ; the passwd program in Debian Potato). passwd program = /usr/bin/passwd %u passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spasswor ; 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. Thats 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 Directories browseable = no ; By default, the home directories are exported read only. Change next

75

8 ;

Conguration 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 rpertoires personnels log file = /var/log/samba-homes.log.%m

8.10.2

Redmarrage de Samba

Nous redmarrons maintenant Samba : /etc/init.d/samba start

8.10.3

Utilisation

Chaque utilisateur doit dnir un mot de passe pour sa connexion. Samba gre en effet une liste de mots de passe diffrente de celle du systme. Le mot de passe est dni par la commande : smbpasswd Chaque utilisateur accde son compte partir dune machine MS-Windows par ladresse : \\<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 dhabitude, nous commenons par arrter le service INN : /etc/init.d/inn2 stop

8.11.1

Particularit : lutilisateur news

Durant toute la conguration de INN, vous DEVEZ agir en tant quutilisateur news. Ceci pour prserver les droits des chiers de conguration qui doivent appartenir lutilisateur news. Commencez par dnir un mot de passe pour lutilisateur, vous devez tre root :

76

8 passwd news

Conguration du serveur

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

8.11.2

/var/spool/news

En tant que root, vriez les droits du rpertoire /var/spool/news. Ce rpertoire doit appartenir lutilisateur et au groupe news. Si ce nest pas le cas, corrigez les droits comme ceci : chown news.news /var/spool/news

8.11.3

/etc/news/inn.conf

Cest le chier de conguration 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 dont reflect the views of the Lycee # ci-dessus, une petite notice en anglais signifiant que le contenu # du message ne reflte pas lopinion du lyce. server: pathhost: fremen.etablissement.org moderatormailer: domain: etablissement.org fromhost: fremen.etablissement.org pathalias: complaints: usenet@etablissement.org # ################################################### # Vous navez plus rien modifier partir dici # ################################################### # mta: /usr/sbin/sendmail -oi %s mailcmd: /usr/lib/news/bin/innmail checkincludedtext: false

77

8 maxforks: maxartsize: nicekids: nicenewnews: verifycancels: logcancelcomm: wanttrash: remembertrash: linecountfuzz: peertimeout: clienttimeout: allownewnews: localmaxartsize: logartsize: logipaddr: logsitename: maxconnections: artcutoff: icdsynccount: hiscachesize: readertrack: strippostcc: status: timer: readerswhenstopped: noreader: extendeddbz: nnrpdoverstats: storeonxref: nnrpdcheckart: storemsgid: usecontrolchan: mergetogroups: backoffauth: backoffdb: backoffpostfast: backoffpostslow: backofftrigger: mimeversion: mimecontenttype: mimeencoding: refusecybercancels: activedenable: activedupdate:

Conguration du serveur

10 1000000 4 0 false false false true 0 3600 600 true 1000000 true true true 50 14 10 0 false false 0 0 false false false false true true true false false false /var/lib/news/backoff 0L 1L 10000L

false false 30

78

Conguration du serveur

activedport: 1119 nnrpperlauth: false # # # These options are unlikely to need changing in most situations chaninacttime: 600 chanretrytime: 300 pauseretrytime: 300 nntplinklog: false nntpactsync: 200 badiocount: 5 blockbackoff: 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: false xrefslave: false nnrpdposthost: nnrpdpostport: 119 spoolfirst: false writelinks: true storageapi: false articlemmap: false overviewmmap: true bindaddress: all sourceaddress: any port: 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: false keylimit: 512 keyartlimit: 100000 keymaxwords: 250 # # Other options innflags: -L doinnwatch: true innwatchsleeptime: 600 pgpverify: true

79

Conguration du serveur

controlfailnotice: false logcycles: 3 innwatchpauseload: 1500 innwatchhiload: 2000 innwatchloload: 1000 innwatchspoolspace: 8000 innwatchbatchspace: 800 innwatchlibspace: 25000 innwatchspoolnodes: 200 docnfsstat: false # # --------------------------------# Paths to various aspects of the news system # pathnews: /usr/lib/news pathbin: /usr/lib/news/bin pathfilter: /usr/lib/news/bin/filter pathcontrol: /usr/lib/news/bin/control pathdb: /var/lib/news pathetc: /etc/news pathrun: /var/run/news pathlog: /var/log/news pathhttp: /var/log/news pathtmp: /var/tmp pathspool: /var/spool/news patharticles: /var/spool/news/articles pathoverview: /var/spool/news/overview pathoutgoing: /var/spool/news/outgoing pathincoming: /var/spool/news/incoming patharchive: /var/spool/news/archive pathuniover: /var/spool/news/uniover overviewname: .overview # # --------------------------------# Noubliez pas de remplacer le nom de domaine et les noms de machines par votre domaine et vos noms de machines.

8.11.4

/etc/news/hosts.nntp

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

80

8 62.4.16.158 :

Conguration du serveur

La ligne localhost : est requise dans tous les cas. La ligne 62.4.16.158 : correspond la machine analynn.codeine.org qui malimente en articles. Vous remplacerez donc 62.4.16.158 par ladresse 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 chier contient les permissions daccs pour les lecteurs. INN 2.2.2 ne permet pas lutilisation du chier /etc/passwd comme source des mots de passe NNRP4 . De ce fait, laccs en criture au serveur sera rserv notre rseau local, et ventuellement lintranet de ltablissement. Voici le chier 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 laccs la machine locale
4

News Network Reader Protocol : protocole de lecture/criture rserv aux lecteurs, contrairement au protocole NNTP utilis pour lacheminement des articles entre serveurs.

81

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

Conguration du serveur

## Nous permettons laccs en lecture/criture notre rseau local ## Tous les groupes, pas de mot de passe 10.1.0.*:Read Post:::* ## Si vous voulez permettre laccs au serveur en lecture/criture ## pour lintranet de ltablissement, remplacez xxx.xxx.* par la ## valeur adquate et dcommentez la ligne #xxx.xxx.*:Read Post:::* ## Un exemple daccs restreint aux groupes #*.foo.com:Read:::* ## Un exemple daccs lecture/criture certains groupes #*.bar.com:Read Post:::fr.* ## Un exemple daccs avec login + mot de passe #*.foobar.com:Read Post:login:password:* Si vous navez pas utilis les adresses IP 10.1.0.* pour le rseau local, remplacez par les valeurs relles. Si vous dnissez des mots de passe dans ce chier, faites en sorte quil ne soit lisible que par lutilisateur news.

8.11.6

/etc/news/newsfeeds

Ce chier renseigne INN sur ses diffrents fournisseurs5 : ce que chacun lui fournit, ce quil doit fournir chacun, comment reconnatre les articles venant de tel ou tel, etc. . . Voici un exemple, tir de ma conguration : 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\
5

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

82

8 :Tm:innfeed!

Conguration du serveur

La ligne commenant6 par ME\ concerne notre propre machine. La ligne commenant par crosspost : est un pseudo-feed permettant de grer les crossposts7 , celle commenant par overview ! : permet de grer loverview8 . La ligne commenant par innfeed ! : permet lenvoi des articles vers les serveurs avec qui nous sommes lis. La dernire ligne concerne le feed avec codeine.org ; on reconnat les articles en provenance de codeine.org par la chane codeine.org prsente dans le champ Path : dun article. Jenvoie vers codeine.org tout ce qui marrive dautres serveurs et qui nest pas encore pass par codeine.org, ainsi que ce qui est post depuis mon serveur, mais seulement sur certains groupes. Enn, innfeed est appel ; il va contacter le serveur de codeine.org et lui envoyer les articles par le biais du protocole NNTP9 .

8.11.7

/etc/news/moderators

Ce chier permet INN de savoir quelle adresse il doit envoyer les articles posts dans un groupe modr. Les articles posts dans ces groupes sont soumis lapprobation dune ou plusieurs personnes et, ensuite seulement, sils sont approuvs, ils sont posts dans le groupe. Le chier /etc/news/moderators se prsente 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.

## Hirarchie fr.* fr.*:%s@moderators.usenet.fr.net ## Hirarchie fx.* fx.*:%s@usenet-fx.org ## Pour toutes les autres hirarchies *:%s@moderators.isc.org

6 7

Un backslash (\) dans une ligne signie que celle-ci se poursuit aprs le prochain retour la ligne. Un article post sur plusieurs groupes la fois est dit crosspost. 8 Sorte de sommaire rpertoriant les articles disponibles dans un groupe donn. 9 News Network Transfer Protocol, ce protocole sert propager les articles en temps rel entre les diffrents serveurs tout autour de la plante.

83

Conguration du serveur

Si vous souhaitez rajouter une adresse de modration pour une hirarchie particulire, vous devez la rajouter avant la dernire entre, car INN utilise la premire adresse qui correspond au groupe.

8.11.8

/etc/news/control.ctl

Grce ce chier, vous pouvez faire en sorte que INN cr lui-mme les nouveaux groupes rception du message de contrle. Le chier se prsente sous cette forme : ## FR (French Language) # *PGP* See comment at top of file. ## checkgroups:*:fr.*:drop ## newgroup:*:fr.*:drop ## rmgroup:*:fr.*:drop checkgroups:control@usenet-fr.news.eu.org:fr.*\ :verify-control@usenet-fr.news.eu.org=mail newgroup:control@usenet-fr.news.eu.org:fr.*\ :verify-control@usenet-fr.news.eu.org=mail rmgroup:control@usenet-fr.news.eu.org:fr.*\ :verify-control@usenet-fr.news.eu.org=mail Recherchez la hirarchie dsire, puis dcommentez et modiez les lignes ncessaires. Noubliez pas dajouter la cl publique PGP de la hirarchie dans la collection de cls de lutilisateur news (vous pouvez le faire par la commande pgp -ka <chier contenant la cl>).

8.11.9

/etc/news/expire.ctl

Ce chier permet de congurer la dure de conservation des articles pour un groupe, une hirarchie, ou pour lensemble. 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

8 ## ## word "never." see expire.8

Conguration du serveur

Times are based on when received unless -p is used;

## 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 dune journe control.cancel:A:1:1:1 # Nous expirons fr.test au bout de deux jours fr.test:A:2:2:2

8.11.10

/etc/news/incoming.conf

Ce chier contient les noms de machines, adresses IP et autres options relatives nos fournisseurs darticles. 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

8 ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ##

Conguration 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 dont 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

8 ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ##

Conguration 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 vixie data.ramona.vix.com bb.home.vix.com 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 hosts 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. 5 10 15 20

87

8 ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## (default="*")

Conguration du serveur

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: max-connections: peer ME { hostname: } peer VB { hostname: }

true 8

# streaming allowed by default # per feed

"localhost, 127.0.0.1"

"annalynn.codeine.org, 212.208.8.55"

8.11.11

/etc/news/innfeed.conf

Cest le chier de conguration de innfeed. Nous inscrivons ici nos diffrents feeds ainsi que leurs adresses IP. Innfeed consulte ce chier lorsquil doit contacter les autres serveurs pour leur envoyer 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

Conguration du serveur

## ## Global values. Not specific to any peer. These are optional, but if ## used will override the compiled in values. ## pid-file: debug-level: use-mmap: log-file: stdio-fdmax: innfeed.pid 0 false innfeed.log 0 # relative to pathrun

# relative to pathlog

## Uncomment the next line to include the contents ## of testfile at this point. #$INCLUDE testfile backlog-directory: backlog-rotate-period: backlog-ckpt-period: backlog-newfile-period: dns-retry: dns-expire: close-period: gen-html: status-file: connection-stats: host-queue-highwater: stats-period: stats-reset: max-reconnect-time: initial-reconnect-time: innfeed 60 30 600 900 86400 3600 false innfeed.status false 200 600 43200 3600 30 # relative to pathspool

# relative to pathlog

## ## 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: response-timeout: initial-connections: 600 300 1

89

8 max-connections: max-queue-size: streaming: no-check-high: no-check-low: no-check-filter: port-number: backlog-limit: backlog-factor: backlog-limit-highwater: dynamic-method: dynamic-backlog-filter: dynamic-backlog-low: dynamic-backlog-high: no-backlog: ## ## Peers. ## #peer decwrl { # ip-name: #} #peer uunet { # ip-name: # max-connections: #}

Conguration du serveur 5 25 true 95.0 90.0 50.0 119 0 1.10 0 3 0.7 25.0 50.0 false

news1.pa.dec.com

news.uunet.uu.net 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

8 peer codeine.org { ip-name: } # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #

Conguration du serveur

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 dINN et vous fait parvenir un rapport dtaill des activits du serveur pendant la journe coule. Il gnre galement des pages HTML agrmentes de graphiques, rsumant lactivit du serveur. Voici le dbut du long chier de conguration :

91

Conguration 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 <fta@oleane.net> # version 2.1.9_7 ########################################################## # Default parameters section 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}.pm unwanted_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.conf img_dir "pics"; # images will go to ${html_dir}/${img_dir} cycle 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:newsmaster@etablissement.org\">\ newsmaster@etablissement.org</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 chier est afch sur demande du lecteur de news. Il nest pas obligatoire dy mettre quelque chose.

92

Conguration du serveur

8.11.14

/var/lib/news/active

Ce chier contient les noms des diffrents groupes prsents sur le serveur, ainsi que le numro de larticle le plus vieux et celui de larticle le plus rcent. Vous ne devez pas diter ce chier la main. Nous ferons le ncessaire pour linitialiser tout lheure.

8.11.15

/var/lib/news/history

Ce chier est gnr par INN lui-mme. Nous navons pas nous en occuper.

8.11.16

/var/lib/news/newsgroups

Ce chier contient les descriptions des diffrents groupes prsents sur le serveur. Nous linitialiserons en mme temps que le chier active.

8.11.17

Vrication de la conguration

Avant de redmarrer INN, nous allons vrier la conguration grce 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 address Looking 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 distributions done. 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 redmarrer INN. Si vous obtenez dautres erreurs que celles-ci, faites en sorte de les corriger.

93

Conguration du serveur

8.11.18

Redmarrage de INN

Nous allons donc redmarrer INN : /etc/init.d/inn2 start Si le rsultat de inncheck ne prsentait aucune erreur grave, INN devrait dmarrer sans problmes.

8.11.19

CleanFeed, la lutte anti-spam

CleanFeed est un logiciel de ltrage qui analyse chaque article arrivant sur le serveur. Il permet dviter les articles en HTML, les chiers attachs, et une partie du spam. Le spam consiste en des messages publicitaires non sollicits. Cela pose plusieurs problmes : gne des contributeurs des diffrents forums augmentation du trac consommation inutile de ressources Je vous conseille fortement dinstaller CleanFeed. Vous pouvez vous le procurer ladresses suivante : http://www.exit109.com/~jeremy/news/cleanfeed.html 8.11.19.1 Installation

Copiez le chier lter_innd.pl dans le rpertoire /usr/lib/news/bin/lter. 8.11.19.2 Conguration

CleanFeed utilise le chier /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

Conguration 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 shouldnt turn this off, ### but if youre 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, ### Dont 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

Conguration du serveur You really want to

### Do the Posting-Host/Lines EMP checks? ### keep this on. do_phl => 1, ### Do the From/Subject/Lines EMP checks? ### the lowest hit rate these days. do_fsl => 1,

This is the one with

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

Conguration 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? do_bot_checks => 1, ### Do the excessive Supersedes filter? do_supersedes_filter => 1, ### Apply bad_cancel_paths to Supersedes also? check_supersedes_path => 1, Leave this on. Really.

97

Conguration 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, ### Dont bother trimming hashes until theyre this big EMPstarttrimming => 500,

######################################################### ### Logging ### Verbose rejection reasons in news.notice/logfile? verbose => 1, ### Set the following to log the message IDs ### of all articles processed. ### Doesnt 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

Conguration 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

8 # allexclude => undef,

Conguration du serveur

### 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 ltre

Toujours en tant quutilisateur news, lancez les commandes suivantes : ctlinnd ctlinnd ctlinnd ctlinnd pause cleanfeed perl y reload all activation~cleanfeed go cleanfeed

Sachez que le programme ctlinnd se trouve dans /usr/lib/news/bin. Je vous recommande dajouter ce chemin la variable $PATH de lutilisateur news. Maintenant, le ltrage est activ. Innreport vous fera part des statistiques relatives CleanFeed dans son rapport quotidien.

8.11.20

Constitution des chiers active et newsgroups

Nous allons utiliser une liste des groupes au format checkgroups. Cette liste est formate de manire tre traite par le programme docheckgroups.

100

Conguration du serveur

Commencez par rcuprer la liste. Pour la hirarchie fr.*, cette liste est poste tous les quinze jours sur le forum fr.usenet.forums.annonces, avec pour titre [ANNONCE] Liste des groupes fr.* au format checkgroups. Enregistrez dans un chier nomm checkgroups les lignes comprises entre /usr/local/news/bin/control/docheckgroups <<PASGLOP et PASGLOP Veillez ce que /usr[...]PASGLOP soit au dbut de la ligne. Modiez le chemin vers le programme docheckgroups pour quil corresponde lendroit o il est install sur votre systme, soit /usr/lib/news/docheckgroups dans notre cas. Arrtez le serveur : ctlinnd pause checkgroups Lancez la commande : sh ./checkgroups > maj-active Le chier maj-active contient un certain nombre de lignes qui vont permettre de mettre jour votre chier active. Puis, il contient les descriptions des groupes que vous devez ajouter dans le chier /var/lib/news/newsgroups. Sauvegardez votre chier active courant : cp /var/lib/news/active /var/lib/news/active.save Lancez la mise jour : sh ./maj-active Forcez INN recharger ses chiers de conguration : ctlinnd reload all checkgroups Relancez INN : ctlinnd go checkgroups Pour les checkgroups des hirarchies autres que fr.*, renseignez-vous dans le groupe fr.usenet.divers. Vous trouverez toujours quelquun pour vous aiguiller.

8.11.21

Trouver un feed

Maintenant, il vous faut trouver quelquun qui accepte de vous envoyer des articles via le protocole NNTP, et donc en utilisant innfeed. Vous pouvez vous reporter la documentation de Stphane MARCHAU, intitule [DOC] Ou trouver un approvisionnement pour fr.* ?, qui est poste tous les quinze jours sur fr.usenet.distribution. Vous pouvez galement tenter de solliciter codeine.org prsent dans les exemples, ainsi que moi-mme. Vous pouvez galement tenter votre chance auprs 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

Conguration du serveur

8.12

Apache, le serveur HTTP

Nous commenons comme pour les autres services par arrter le daemon Apache : /etc/init.d/apache stop La conguration dApache se fait grce trois chiers principaux.

8.12.1

/etc/apache/httpd.conf

Cest le chier principal dans la conguration dApache. 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 itd be overall better for the net if people # had to knowingly turn this feature on. HostnameLookups off

102

Conguration 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-data Group www-data # ServerAdmin: Your address, where problems with the server should be # e-mailed. ServerAdmin webmaster@etablissement.org # # # # # ServerRoot: The directory the servers 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.so LoadModule config_log_module /usr/lib/apache/1.3/mod_log_config.so # LoadModule mime_magic_module /usr/lib/apache/1.3/mod_mime_magic.so LoadModule mime_module /usr/lib/apache/1.3/mod_mime.so LoadModule negotiation_module /usr/lib/apache/1.3/mod_negotiation.so LoadModule 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.so LoadModule autoindex_module /usr/lib/apache/1.3/mod_autoindex.so LoadModule dir_module /usr/lib/apache/1.3/mod_dir.so LoadModule cgi_module /usr/lib/apache/1.3/mod_cgi.so

103

Conguration 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.so LoadModule userdir_module /usr/lib/apache/1.3/mod_userdir.so LoadModule alias_module /usr/lib/apache/1.3/mod_alias.so LoadModule rewrite_module /usr/lib/apache/1.3/mod_rewrite.so LoadModule access_module /usr/lib/apache/1.3/mod_access.so LoadModule 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.so LoadModule 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.so LoadModule unique_id_module /usr/lib/apache/1.3/mod_unique_id.so LoadModule 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

8 LogFormat LogFormat LogFormat LogFormat LogFormat

Conguration du serveur

"%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %T %v" "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combin "%h %l %u %t \"%r\" %>s %b" common "%{Referer}i -> %U" referer "%{User-agent}i" 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 referer CustomLog /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 to PidFile /var/run/apache.pid # # # # # # # ScoreBoardFile: File used to store internal server process information. Not all architectures require this. But if yours does (youll 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

8 # # # # # #

Conguration du serveur

clients for your server if its different than the one the program would get (i.e. use "www" instead of the hosts 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 dont 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

8 # # # # # # # # #

Conguration 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 5 MaxSpareServers 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 # isnt 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

Conguration 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 webmaster@etablissement.org #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 linterface externe. Remplacer # xxx.xxx.xxx.xxx par ladresse IP de linterface externe NameVirtualHost xxx.xxx.xxx.xxx # Serveur virtuel principal : www.etablissement.org <VirtualHost xxx.xxx.xxx.xxx> ServerAdmin webmaster@etablissement.org DocumentRoot /var/www/etablissement ServerName www.etablissement.org ServerAlias etablissement.org UserDir disabled ErrorLog /var/log/apache/www-error.log TransferLog /var/log/apache/www-access.log </VirtualHost> # Serveur virtuel : pages web lves <VirtualHost xxx.xxx.xxx.xxx> ServerAdmin webmaster@etablissement.org DocumentRoot /var/www/eleves ServerName eleves.etablissement.org UserDir disabled root UserDir enabled /home/eleves/*/public_html ErrorLog /var/log/apache/eleves-error.log TransferLog /var/log/apache/eleves-access.log </VirtualHost> # Serveur virtuel : pages web professeurs

108

Conguration du serveur

<VirtualHost xxx.xxx.xxx.xxx> ServerAdmin webmaster@etablissement.org DocumentRoot /var/www/profs ServerName profs.etablissement.org UserDir disabled root UserDir enabled /home/profs/*/public_html ErrorLog /var/log/apache/profs-error.log TransferLog /var/log/apache/profs-access.log </VirtualHost>

8.12.2

/etc/apache/srm.conf

Ce chier dnit la manire dont Apache doit rpondre aux requtes. On y dnit notamment o seront cherches les pages personnelles, ainsi que les pages derreur personnalises, par exemple. Ici lemplacement des pages personnelles est dni pour chaque serveur virtuel, dans le chier httpd.conf, car jai dcid de sparer laccs aux espaces Web des professeurs et des lves. Cela nous obligera sparer les rpertoires personnels des professeurs et des lves, nous en reparlerons plus tard. Par contre, nous interdisons au root davoir une page personnelle, pour des raisons de scurit. Nous utiliserons celui-ci ; les pages derreur ne sont pas personnalises : # 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 users 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

Conguration 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 AddIconByType AddIconByType AddIconByType AddIcon AddIcon AddIcon AddIcon AddIcon AddIcon AddIcon AddIcon AddIcon AddIcon AddIcon AddIcon AddIcon AddIcon AddIcon AddIcon AddIcon AddIcon AddIcon AddIcon AddIcon (TXT,/icons/text.gif) text/* (IMG,/icons/image2.gif) image/* (SND,/icons/sound2.gif) audio/* (VID,/icons/movie.gif) video/*

/icons/binary.gif .bin .exe /icons/binhex.gif .hqx /icons/tar.gif .tar /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv /icons/compressed.gif .Z .z .tgz .gz .zip /icons/a.gif .ps .ai .eps /icons/layout.gif .html .shtml .htm .pdf /icons/text.gif .txt /icons/c.gif .c /icons/p.gif .pl .py /icons/f.gif .for /icons/dvi.gif .dvi /icons/uuencoded.gif .uu /icons/script.gif .conf .sh .shar .csh .ksh .tcl /icons/tex.gif .tex /icons/bomb.gif */core /icons/deb.gif .deb Debian /icons/back.gif .. /icons/hand.right.gif README /icons/folder.gif ^^DIRECTORY^^ /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

Conguration 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 README HeaderName 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 Z AddEncoding 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

Conguration du serveur

AddLanguage AddLanguage AddLanguage AddLanguage AddLanguage AddLanguage AddLanguage AddLanguage AddLanguage AddLanguage AddLanguage

en fr de da it es br ja dk pl kr

.en .fr .de .da .it .es .br .ja .dk .pl .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 servers 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" isnt 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

Conguration 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 Apaches 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 dfinies les pages derreur personnalises # # 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

Conguration 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" nokeepalive BrowserMatch "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.0 BrowserMatch "Java/1\.0" force-response-1.0 BrowserMatch "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 chier dnit les droits sur les diffrents rpertoires. Il permet notamment dinterdire laccs certains rpertoires pour une certaines catgories 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

Conguration 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" # doesnt 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,deny allow 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 None Options 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

8 <Location /server-status> SetHandler server-status order deny,allow deny from all allow from localhost </Location>

Conguration du serveur

# 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,allow deny from all allow from localhost </Location> # Debian Policy assumes /usr/doc is "/doc/", at least from # the localhost. <Directory /usr/doc> Options Indexes FollowSymLinks AllowOverride None order deny,allow deny from all allow 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

8 AllowOverride None </DirectoryMatch>

Conguration du serveur

# Do not allow retrieval of the override files, a standard security # measure. <Files .htaccess> order allow,deny deny from all </Files> # You may place any other directories or locations you wish to have # access information for after this one.

8.12.4

Ngociation de contenu

La ngociation de contenu permet au serveur Web de proposer plusieurs variantes dun document lors de la consultation du site. De cette faon, vous pouvez proposer un documents dans diffrents formats (les images, par exemple) ou dans diffrentes langues. Nous nous servirons ici de la ngociation de contenu pour proposer diffrentes langues. Lactivation la ngociation de contenu, dans notre cas, se fait dans deux chiers. Dans le chier srm.conf, tout dabord, par les directives : AddLanguage AddLanguage AddLanguage AddLanguage AddLanguage AddLanguage AddLanguage AddLanguage AddLanguage AddLanguage AddLanguage en fr de da it es br ja dk pl kr .en .fr .de .da .it .es .br .ja .dk .pl .kr

LanguagePriority fr en de Nous dnissons ici les sufxes correspondant aux diffrentes langues, ainsi que la priorit des diffrentes langues ; nous mettons le Franais par dfaut, puis lAnglais et enn lAllemand. Dans le chier httpd.conf, nous rajoutons loption MultiViews pour le rpertoire /var/www : Options Indexes FollowSymLinks MultiViews Lutilisation de la ngociation de contenu est trs simple : pour chaque page HTML, il y aura une page appele page.html.fr et une page appele page.html.en, par exemple. Lors dune requte

117

Conguration du serveur

portant sur page.html, Apache enverra soit page.html.fr, soit page.html.en, suivant la conguration du navigateur ayant effectu la requte. Celui-ci envoie en effet au serveur une liste des langues quil accepte. Le serveur Web dcide alors quelle page il doit envoyer, selon la disponibilit et la priorit des langues. Bien sr, il nest pas obligatoire de mettre en place une version anglaise ou allemande dun site. Si seule une page est disponible, Apache la retournera au navigateur, tout simplement. Il serait judicieux, en cas dutilisation de la ngociation de contenu, de rajouter une note en bas de la page principale du site, disant quelque chose comme :

This site uses the language content negociation to brought you the most suitable page. Available languages are French and English, French being the default. If youre reading the French version and dont speak French, please configure your browser so that it asks the English version to the server. Ce site utilise la ngociation de contenu pour vous offrir une page traduite dans votre langue, si cela est possible. Les langues disponibles sont le Franais et lAnglais, le Franais tant le choix par dfaut. Si vous lisez la version Anglaise et que vous ne parlez pas Anglais, configurez votre navigateur de manire quil demande la version Franaise au serveur.

Adaptez selon vos besoins les textes ci-dessus.

8.12.5

Serveurs virtuels

Nous avons dni, dans le chier /etc/apache/httpd.conf, trois serveurs virtuels. Passonsles en revue. 8.12.5.1 www.etablissement.org

Du fait des deux autres serveurs virtuels, il faut crer une entre VirtualHost pour le serveur principal. Ce serveur ne propose pas de pages personnelles. Cest prcisment pour ces pages personnelles que nous avons cr les deux autres serveurs virtuels. Les documents accessibles par ce serveur se trouvent dans /var/www/etablissement. Ce serveur est accessible par les adresses http ://www.etablissement.org/ et http ://etablissement.org/. 8.12.5.2 eleves.etablissement.org

La tche de ce serveur virtuel est de servir les pages personnelles des lves. Elles sont accessibles par lURL http ://eleves.etablissement.org/~login/. Une requte ladresse http ://eleves.etablissement.org/ prsentera les documents prsents dans /var/www/eleves. Il serait bon dy mettre une page dindex.

118

8 8.12.5.3

Conguration du serveur

profs.etablissement.org

Ce serveur a pour but de fournir les pages personnelles des professeurs. Elles sont accessibles par lURL http ://profs.etablissement.org/~login/. Une requte ladresse http ://profs.etablissement.org/ prsentera les documents prsents dans /var/www/profs. Il serait l aussi bon dy mettre une page dindex. On remarquera que les pages personnelles des lves ne sont pas disponibles via le serveur profs.etablissement.org et vice-versa, ni par le serveur www.etablissement.org (ou etablissement.org).

8.12.6

Redmarrage dApache

Apache est maintenant prt redmarrer. Nous le redmarrons grce au script de dmarrage de la machine : /etc/init.d/apache start Apache doit maintenant rpondre aux requtes arrivant sur le port 80 de la machine. Tentez de vous connecter sur www.etablissement.org (noubliez pas de remplacer par votre nom de domaine). Vous devriez voir une page vous informant que linstallation dApache a russi.

8.13

ProFTPd, le serveur FTP

Nous commenons par arrter le serveur : /etc/init.d/proftpd stop ProFTPd nutilise quun seul et unique chier de conguration.

8.13.1

/etc/proftpd.conf

Cest le chier de conguration 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. "ProFTPD" standalone off on on on on on on

ServerName ServerType DeferWelcome ShowSymlinks MultilineRFC2228 DefaultServer ShowSymlinks AllowOverwrite AllowStoreRestart

119

8 AllowRetrieveRestart TimeoutNoTransfer TimeoutStalled TimeoutIdle DisplayLogin DisplayFirstChdir LsDefaultOptions

Conguration du serveur on 600 600 1200 welcome.msg .message "-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 root Group root

# A basic anonymous configuration, no upload directories. <Anonymous ~ftp> User Group UserAlias anonymous

ftp nogroup ftp off

RequireValidShell ##

# Limit the maximum number of anonymous logins MaxClients 10 # We want welcome.msg displayed at login, and .message displayed # in each newly chdired directory. DisplayLogin welcome.msg DisplayFirstChdir .message ShowSymlinks on

# Limit WRITE everywhere in the anonymous chroot <Directory *>

120

8 <Limit WRITE> DenyAll </Limit> </Directory> ##

Conguration du serveur

# <Directory incoming> # <Limit READ WRITE> # DenyAll # </Limit> # <Limit STOR> # AllowAll # </Limit> # </Directory> </Anonymous>

De cette manire, chaque utilisateur peut accder son rpertoire personnel, en utilisant son login et son mot de passe. Par ailleurs, un accs anonyme est autoris dans le rpertoire /home/ftp.

8.13.2

Redmarrage de ProFTPd

Nous pouvons maintenant redmarrer ProFTPd : /etc/init.d/proftpd start

8.14

Remarque concernant Apache et ProFTPd

An de permettre la maintenance du site Web et de lespace FTP anoyme, je vous conseille de changer les propritaires des rpertoires /var/www et /home/ftp, de mme pour leurs sousrpertoires.

8.15

NTP, synchronisation de lheure

An que le serveur soit toujours lheure, nous installons le daemon NTPD. Le protocole NTP10 permet de synchroniser une machine sur une autre, relie, elle, une horloge atomique. Lors de linstallation du paquetage ntp, vous devrez spcier un serveur NTP. Vous trouverez une liste des serveurs franais ladresse http://www.cru.fr/NTP/serveurs\protect\ T1\textunderscorefrancais.html. Pour ne pas encombrer les serveurs primaires, utilisez sil vous plat un serveur secondaire, comme ntp.loria.fr, par exemple.
10

Network Time Protocol.

121

Conguration du serveur

8.16

SNMPD, surveillance rseau

Pour pouvoir utiliser MRTG, nous avons besoin dun serveur SNMP sur chaque machine que nous dsirons surveiller. Le serveur SNMP est fourni par le paquetage snmpd. Voici son chier de conguration, 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 wont 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

8 # manual page.

Conguration du serveur

#### # 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 #com2sec paranoid default #com2sec readonly default #com2sec readwrite default com2sec readonly default mrtg community public public private

#### # Second, map the security names into group names: # group group group group group group group group group sec.model v1 v2c usm v1 v2c usm v1 v2c usm sec.name paranoid paranoid paranoid readonly readonly readonly readwrite readwrite readwrite

MyROSystem MyROSystem MyROSystem MyROGroup MyROGroup MyROGroup MyRWGroup MyRWGroup MyRWGroup

#### # Third, create a view for us to let the groups have rights to: # incl/excl subtree mask view all included .1 80 view 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 access MyROSystem "" access MyROGroup "" access MyRWGroup "" sec.model any any any sec.level noauth noauth noauth match exact exact exact read system all all write none none all notif none none none

123

Conguration 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 <root@etablissement.org> # 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

Conguration 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 run 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 whats 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

Conguration 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: PROGRAM: ARGS: A generic name. The program to run. Include the path! 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

8 # # # #

Conguration du serveur = = = = "hello world." "hello world." 0 0

enterprises.ucdavis.extTable.extEntry.extOutput.1 enterprises.ucdavis.extTable.extEntry.extOutput.2 enterprises.ucdavis.extTable.extEntry.extErrFix.1 enterprises.ucdavis.extTable.extEntry.extErrFix.2

# 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 Mibs 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

8 # # # # # # #

Conguration du serveur

load [1MAX=12.0] [5MAX=12.0] [15MAX=12.0] 1MAX: 5MAX: 15MAX: If the 1 minute load average is above this limit at query time, the errorFlag will be set. Similar, but for 5 min average. 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

8 # # # # # # # # # # # # # # # # # # # # # # # # # # # echo hello world echo hi there exit 35

Conguration du serveur

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: Youll have to change the path of the passtest script to your

129

Conguration 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 donnes appropries, ainsi que le nom et ladresse email du responsable. Vous pouvez maintenant relancer le serveur SNMP : /etc/init.d/snmpd stop /etc/init.d/snmpd start Vous remarquerez que nous nutilisons pas loption restart du script dinit de snmpd. En effet, son utilisation entrane lafchage de plusieurs messages derreur non justis.

8.17

MRTG, statistiques rseau

MRTG est lanc automatiquement par cron toutes les cinq minutes, et lance une requte SNMP vers chaque machine indique dans son chier de conguration. Il met ensuite jour les graphiques concernant chaque machine, ainsi que les pages HTML qui comportent ces graphiques. Voici son chier de conguration, /etc/mrtg.cfg :

130

Conguration du serveur

###################################################################### # Multi Router Traffic Grapher -- Sample Configuration File ###################################################################### # This file is for use with mrtg-2.5.4c # Global configuration WorkDir: /var/www/etablissement/mrtg WriteExpires: Yes Title[^]: Traffic Analysis for Kilo[_]: 1024 Options[_]: growright PageTop[^]: <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-int Directory[fremen-ext]: fremen-ext MaxBytes[fremen-ext]: 10485760 Timezone[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-int Directory[fremen-int]: fremen-int MaxBytes[fremen-int]: 10485760 Timezone[fremen-int]: GMT # fremen.etablissement.org (interface vers rseau 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-int Directory[fremen-snet]: fremen-snet MaxBytes[fremen-snet]: 10485760 Timezone[fremen-snet]: GMT # sardaukar.etablissement.org (interface externe) # --------------------------Title[sardaukar-ext]: sardaukar.etablissement.org (external interface)

131

Conguration du serveur

PageTop[sardaukar-ext]: sardaukar.etablissement.org -- Server (PC) Target[sardaukar-ext]: 2:mrtg@sardaukar-int Directory[sardaukar-ext]: sardaukar-ext MaxBytes[sardaukar-ext]: 10485760 Timezone[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-int Directory[sardaukar-int]: sardaukar-int MaxBytes[sardaukar-int]: 10485760 Timezone[sardaukar-int]: GMT # client1.etablissement.org # ------------------------Title[client1]: client1.etablissement.org PageTop[client1]: client1.etablissement.org -Publicly available workstation (PC) Target[client1]: 2:mrtg@client1 Directory[client1]: client1 MaxBytes[client1]: 10485760 Timezone[client1]: Paris # client2.etablissement.org # ------------------------Title[client2]: client2.etablissement.org PageTop[client2]: client2.etablissement.org -Publicly available workstation (PC) Target[client2]: 2:mrtg@client2 Directory[client2]: client2 MaxBytes[client2]: 10485760 Timezone[client2]: Paris # client3.etablissement.org # ------------------------Title[client3]: client3.etablissement.org PageTop[client3]: client3.etablissement.org -Publicly available workstation (PC) Target[client3]: 2:mrtg@client3 Directory[client3]: client3 MaxBytes[client3]: 10485760 Timezone[client3]: Paris

132

Conguration du serveur

# client4.etablissement.org # ------------------------Title[client4]: client4.etablissement.org PageTop[client4]: client4.etablissement.org -Publicly available workstation (PC) Target[client4]: 2:mrtg@client4 Directory[client4]: client5 MaxBytes[client4]: 10485760 Timezone[client4]: Paris # client5.etablissement.org # ------------------------Title[client5]: client5.etablissement.org PageTop[client5]: client5.etablissement.org -Publicly available workstation (PC) Target[client5]: 2:mrtg@client5 Directory[client5]: client5 MaxBytes[client5]: 10485760 Timezone[client5]: Paris Vous pouvez changer les noms de machines, mais veillez changer toutes les occurences ! Vous devrez aussi adapter loption MaxBytes de chaque paragraphe, en fonction des possibilits des quipements rseau. Rappels : 1 byte = 1 octet, 1 octet = 8 bits (les capacits des quipements rseau sont exprimes en bits/s). La valeur donne dans le chier de conguration ci-dessus correspond 100 Mbps. Il serait bon de vrier laffectation des interfaces rseau au niveau de snmpd. En effet, la ligne Target[client5]: 2:mrtg@client5 Indique mrtg quil doit demander les statistiques concernant linterface connue par snmpd sous le numro 2, cest--dire eth0 dans le cas de cette machine (linterface 1 est le loopback (127.0.0.1) rfrenc lo0 et propre chaque machine. Il ny a aucun intrt surveiller cette interface). La vrication se fait de marnire simple. Prenons un exemple sur une machine possdant deux interfaces rseau : julien@arrakis:~$ snmpwalk localhost mrtg interfaces | grep eth interfaces.ifTable.ifEntry.ifDescr.2 = eth0 interfaces.ifTable.ifEntry.ifDescr.3 = eth1 interfaces.ifTable.ifEntry.ifType.2 = ethernetCsmacd(6) interfaces.ifTable.ifEntry.ifType.3 = ethernetCsmacd(6) Ici, linterface eth0 est connue comme numro 1 et linterface eth1 comme numro 2 par snmpd.

133

Conguration du serveur

Enn, notez quil vaut mieux commenter les entres correspondant aux htes qui ne sont pas encore en tat de marche. Sans cela, cron vous fera parvenir un mail toutes les cinq minutes vous informant que telle machine ou telle autre tait injoignable. Les statistiques pour linterface interne de fremen seront dans le rpertoire /var/www/mrtg/fremenint/, ou sur http ://www.etablissement.org/mrtg/fremen-int/.

8.18

Sauvegarde des donnes

Nous allons sauvegarder les donnes toutes les nuits en semaine, et tt le dimanche matin le week-end, an de ne pas perdre trop de donnes en cas de problme. Nous sauvegarderons les rpertoires suivants : le spool de mail : /var/spool/mail les rpertoires personnels : /home le rpertoire de conguration du systme : /etc les sites Web de ltablissement : /var/www ATTENTION : lespace FTP anonyme sera galement sauvegard ! Deux problmes se posent nous : linstallation du priphrique de sauvegarde les chiers ne doivent pas voluer pendant la sauvegarde La rsolution du premier problme est laisse la discrtion de ladministrateur. La solution dpendant du matriel utilise, je ne peux que difcilement en parler ici. Le deuxime problme peut se rsoudre facilement laide dun petit script shell, tel que celui-ci : #! /bin/sh echo -e "\n *** Arret des services ***\n" date echo -e "\n" /etc/init.d/sendmail stop /etc/init.d/proftpd stop echo -e "\n *** Demarrage de la sauvegarde *** \n" tar -cvf /dev/<periphrique 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

Conguration du serveur

echo -e "\n *** Procedure de sauvegarde termine ***" date echo -e "\n" Enregistrez ceci dans un chier /usr/local/bin/sauvegarde.sh, et rendez le chier excutable. Dans le chier ci-dessus, remplacez /dev/<priphrique de sauvegarde> par la rfrence au chier symbolique de /dev correspondant votre priphrique de sauvegarde. Comme vous pouvez le voir, nous arrtons Sendmail et ProFTPd avant de commencer la sauvegarde, ceci an dviter que les chiers se trouvant respectivement dans /var/spool/mail et /home ainsi que /var/www ne soient modis avant la n de la sauvegarde. Nous allons encore une fois nous servir de cron pour lancer notre sauvegarde. ditez la crontab 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 que les dimanches 22h05 (en fait, 00h05 en heure franaise en t, et 23h05 en hiver). Si ladministrateur peut avoir un accs physique la machine le week-end, il peut faire en sorte que les sauvegardes se fassent de la mme manire le samedi soir. Prvoyez donc 6 ou 7 bandes de sauvegarde, selon que vous pouvez ou non accder la machine durant le week-end. Et, surtout, noubliez pas de changer les bandes et de les tiqueter !

8.18.1

Restauration des donnes

Au cas o il arriverait le moindre problme vous obligeant restaurer une sauvegarde, voici la marche suivre : remdier au problme ayant caus cette situation (dfaillance dun disque, orage, etc. . .) rinstaller un systme sur la machine, comportant les mmes logiciels que prcdemment congurer le lecteur de bandes prendre votre sauvegarde la plus rcente ET dans le meilleur tat (cela ne vas pas toujours de pair) lancer la restauration grce la commande : tar -xvzf /dev/<priphrique de sauvegarde> / Les rpertoires sauvegards seront alors restaurs. Notez que vous pouvez galement ne restaurer quun seul de ces rpertoires. Pour plus de dtails, consultez la documentation de GNU Tar.

135

9 Conguration du serveur daccs


9.1 Compilation du noyau

Comme pour le serveur, nous avons besoin de certaines fonctionnalits qui ne sont pas incluses dans le noyau standard. Commencez par rcuprer les sources du dernier noyau 2.2.x (le kernel 2.4.x est support par Debian 2.2r3, mais la conguration du masquerading plus loin dans ce document nest valable que pour un kernel 2.2.x) sur ftp.fr.kernel.org, par exemple. Placez larchive dans le rpertoire /usr/src. Vriez quil ny a pas de rpertoire nomm linux, sil y en a un, renommez-le. Maintenant, dcompressez larchive contenant les sources du noyau. Un nouveau rpertoire linux est apparu, celui-ci contient les sources du noyau. Allez dans ce rpertoire, et lancez la commande (le paquetage libncurses-dev doit tre install) : make menuconfig Aprs la compilation de quelques chiers, une interface graphique apparat. Nous allons maintenant congurer le noyau Linux. En dehors des composants requis pour la bonne marche de la machine, veillez plus particulirement aux options suivantes : utilisation des pilotes exprimentaux optimisation pour la famille de processeurs utilise par la machine utilisation des modules noyau nous mettons les pilotes des diffrentes cartes Ethernet dans le noyau et non pas en module dans les options rseau, nous activons la fonctionnalit IP : rewalling le support pour les UNIX98 PTYs ; nous laissons la valeur par dfaut (256) dans la section systmes de chiers, nous incluons dans le noyau le support pour le systme /proc ainsi que celui pour le systme /dev/pts, sans oublier dinclure le support pour le deuxime systme de chiers tendu (ext2fs). dans la mme section, nous plaons en modules les supports pour les systmes de chiers FAT, VFAT, MSDOS, UMSDOS, ISO9660 dans la section systmes de chiers rseau, nous plaons en module le support pour le systme de chiers NFS dans la section kernel hacking, activez loption Magic SysRQ key. Cette option permet de communiquer avec le noyau lors dun plantage svre de la machine an deffectuer les oprations de dernire minute (synchronisation des partitions montes, etc. . .) avant de redmarrer la machine. Lisez la documentation concernant cette fonctionnalit dans le chier Documentation/sysrq.txt. Maintenant, sauvegardez la conguration et quittez linterface. Puis compilez et installez le noyau. Congurez LILO de manire pouvoir dmarrer sur lun ou lautre des deux noyaux

136

Conguration du serveur daccs

prsents, cest--dire le noyau dorigine et celui que nous venons de compiler. Le chier de conguration 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 !! | | | | Dont 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 dont 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 doesnt 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

9 # # # # # # # # # # # # # # # # #

Conguration du serveur daccs

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

Conguration du serveur daccs

# 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 label=Linux read-only # restricted # alias=1 image=/boot/vmlinuz-2.2.14 label=linux-orig read-only # optional # restricted # alias=2 # # # # # # # # # le nouveau noyau, ici version 2.2.16

# le nouveau noyau, ici version 2.2.14

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 chier est le chier livr avec Debian GNU/Linux. Seuls les paragraphes concernant les deux noyaux ont t modis. Ici, le nouveau noyau sera dmarr par dfaut. Lancien noyau est accessible sous le nom linux-orig. Pour y accder, appuyez sur la touche tabulation lors du prompt LILO : ; vous verrez apparatre la liste des noyaux disponibles. Slectionnez le noyau dmarrer et appuyez sur Entre. Lancez /sbin/lilo de manire mettre jour le secteur de boot de la machine. Si tout se passe bien, vous pouvez essayer de redmarrer la machine. Si LILO vous dit que votre noyau est trop gros, soit vous avez inclus beaucoup trop de choses dedans, auquel cas vous pouvez le recongurer et faire la chasse aux options inutiles, soit vous pouvez utiliser make bzImage pour le compiler. Si la machine redmarre sans problmes, bravo, sinon recommencez, vous avez certainement oubli quelque chose. Une fois la machine redmarre avec son nouveau noyau, et si tout se passe bien, sauvegardez le chier /usr/src/linux/.cong (notez le ., ce qui signie que cest un chier cach) dans

139

Conguration du serveur daccs

le rpertoire personnel de root (/root), sous un nom vocateur. Vous pourrez charger ce chier pour congurer le prochain kernel, ce qui vous vitera de devoir saisir nouveau la conguration.

9.2

Interfaces rseau

Nous avons ici deux interfaces rseau, dont seulement une est congure. Nous nous arrangerons pour obtenir ce schma (du moins, je me base sur ceci) : eth0 Internet eth1 rseau local La premire interface, eth0, a t congure durant linstallation, elle est donc thoriquement en tat de marche. Nous allons congurer notre deuxime interface, eth1. La conguration des interfaces est contenue dans le chier /etc/network/interfaces. ditez-le laide 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 static address xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx hostname sardaukar.etablissement.org # ici, la machine sappelle "sardaukar" # # # # Ici, linterface eth0, configure avec une IP statique (static). Remplacez xxx.xxx.xxx.xxx par ladresse IP assigne la machine puis remplacez xxx.xxx.xxx.xxx par le masque de rseau adquat.

iface eth1 inet static address 10.1.0.2 netmask 255.255.255.0 hostname sardaukar.etablissement.org # Ici, linterface eth1, configure avec une IP statique (static) # Si le site utilise la classe 10.x.x.x, changez les adresses

140

Conguration du serveur daccs

# du rseau local ; utilisez par exemple 192.168.1.2 (classe prive) # pour eth1. Sauvegardez le chier, quittez votre diteur et nous allons maintenant dmarrer les diffrentes interfaces. Un script de dmarrage est charg de cela ; nous lutilisons comme ceci : /etc/init.d/networking restart Le script va initialiser les diffrentes interfaces. Si tout se passe bien, lutilitaire ifcong doit vous donner quelque chose de ce genre : eth0 Link encap:Ethernet HWaddr 00:60:97:A7:0E:8D inet addr:213.166.193.178 Bcast:213.166.195.255 Mask:255.255.252.0 UP BROADCAST NOTRAILERS RUNNING MULTICAST MTU:1500 Metric:1 RX packets:252308 errors:0 dropped:0 overruns:0 frame:0 TX packets:12150 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 Interrupt:5 Base address:0x300

Et ce, pour chacune de nos deux interfaces, les donnes propres chaque interface variant.

9.3

Bind, serveur DNS

Nous allons congurer un deuxime serveur DNS pour notre zone. Pourquoi ? Tout simplement parce quen cas de panne du premier serveur (serveur primaire), nous serions bien embts de ne pas en avoir un autre. Cela va aussi permettre de rpartir la charge sur les deux serveurs. En plus des serveurs primaire et secondaire, il serait bien davoir un serveur tertiaire, hberg par un site ami, juste au cas o. Mais ce nest pas indispensable. Nous arrtons le serveur : /etc/init.d/bind stop

9.3.1

/etc/bind/named.conf

Dans le cas dun serveur secondaire, le chier de conguration va diffrer trs lgrement. Le serveur ne sera plus congur en tant que matre (master) mais en tant quesclave (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

Conguration du serveur daccs

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-0s placeholder.

// forwarders { // 0.0.0.0; // }; }; // reduce log verbosity on issues outside our control logging { category lame-servers { null; }; category cname { null; }; }; // prime the server with knowledge of the root servers zone "." { 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

Conguration du serveur daccs

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 rsolution 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 linverse de ladresse 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 ladresse IP du serveur primaire Ici, le serveur primaire est "fremen"

Dans le cas dun serveur secondaire, nous navons pas besoin de nous proccuper des chiers de zones comme prcdemment. Le serveur les constituera lui-mme partir du serveur primaire.

143

Conguration du serveur daccs

9.3.2

Maintenance

Comme pour notre serveur primaire, ce serveur peut servir de cache pour nos machines clientes. Il faut donc l aussi mettre jour rgulirement la liste des serveurs DNS principaux. Nous utilisons le mme script qu la section 8.3.5 (page 55). Vous devez lancer le script une premire fois avant de lancer le serveur. Il faut maintenir ce chier jour, nous allons donc lancer ce script priodiquement, grce cron. ditez la crontab de root, puis ajoutez-y la ligne : 45 18 1 * * /usr/local/bin/update-dns

Sauvegardez le chier et quittez votre diteur, cron soccupe de tout.

9.3.3

Redmarrage de Bind

Nous pouvons maintenant redmarrer Bind : /etc/init.d/bind start Si le serveur ne dmarre pas, examinez les logs ; Bind y consigne les erreurs et lemplacement o elles ont t commises. Trouvez-les et corrigez-les, puis essayer de relancer le daemon.

9.3.4

/etc/resolv.conf

Ce chier est utilis par les routines de rsolution de noms pour mener bien leur mission. Il se prsente comme ceci : domain etablissement.org search etablissement.org nameserver 127.0.0.1

9.3.5

/etc/nsswitch.conf

Ce chier indique aux routines de rsolution de noms les diffrents moyens leur disposition, et lordre dans lequel elles doivent essayer ces diffrents 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. compat compat compat files dns

passwd: group: shadow: hosts:

144

9 networks: protocols: services: ethers: rpc: netgroup: files db db db db

Conguration du serveur daccs

files files files files

nis

9.3.6

/etc/host.conf

Ce chier sert galement aux routines de rsolution de noms pour dterminer quel systme de rsolution elles doivent utiliser. Il se prsente comme ceci : order hosts,bind multi on

9.3.7

/etc/hosts

Ce chier contient les adresses IP et les noms canoniques de diffrentes machines. Il nest plus utilis que par certains programmes, ou dans des cas bien prcis. Voici celui de notre machine : # The following lines are desirable for IPv6 capable hosts # (added automatically by netbase upgrade) ::1 fe00::0 ff00::0 ff02::1 ff02::2 ff02::3 ip6-localhost ip6-loopback ip6-localnet ip6-mcastprefix ip6-allnodes ip6-allrouters ip6-allhosts sardaukar.etablissement.org sardaukar,localhost

127.0.0.1

9.4

Sendmail, serveur SMTP

Ici, Sendmail sera utilis comme serveur entrant secondaire1 . Cest--dire quil acceptera le courrier entrant et le renverra aussitt notre serveur principal, que nous avons congur tout lheure. Nous commenons par arrter le serveur : /etc/init.d/sendmail stop
1

Ou MX secondaire, MX signiant Mail eXchanger (changeur de courrier).

145

Conguration du serveur daccs

9.4.1

/etc/mail/sendmail.cf

Nous utilisons ici aussi le kit M4 fourni avec Sendmail. Rendez-vous donc dans le rpertoire /usr/share/sendmail/sendmail.cf, puis ouvrez un chier nomm sendmail.mc. Nous utiliserons cette conguration :

include(./m4/cf.m4)dnl dnl dnl Dfinition de certains lments spcifiques au systme dnl (emplacement de certains fichiers, ...) dnl OSTYPE(debian)dnl dnl dnl Nous dfinissons certains emplacements dnl FEATURE(use_cw_file,/etc/mail/local-host-names)dnl FEATURE(use_ct_file,/etc/mail/sendmail.ct)dnl FEATURE(mailertable,hash -o /etc/mail/mailertable)dnl FEATURE(domaintable,hash -o /etc/mail/domaintable)dnl FEATURE(genericstable,hash -o /etc/mail/genericstable)dnl FEATURE(virtusertable,hash -o /etc/mail/virtusertable)dnl FEATURE(access_db,hash -o /etc/mail/access)dnl define(STATUS_FILE, /etc/mail/trusted-users)dnl define(LOCAL_MAILER_PATH, /usr/bin/procmail)dnl define(confCW_FILE,/etc/mail/local-host-names)dnl define(confCT_FILE,/etc/mail/sendmail.ct)dnl define(confSTATUS_FILE, /etc/mail/statistics)dnl dnl dnl Nous rajoutons toujours le domaine en fin dadresse dnl (ex.: To: root devient To: root@etablissement.org) dnl FEATURE(always_add_domain)dnl dnl dnl Nous dfinissons les mailer (protocoles) utiliser dnl Ainsi que lutilisation de procmail dnl FEATURE(local_procmail)dnl MAILER(local)dnl MAILER(smtp)dnl MAILER(procmail)dnl dnl dnl Permet de rediriger une adresse en "adresse.REDIRECT" dnl FEATURE(redirect)dnl

146

Conguration du serveur daccs

dnl dnl Protection anti-spam dnl FEATURE(dnsbl,blackholes.mail-abuse.org, Mail from $&{client_addr} rejected; see http://mail-abuse.org/cgi-bin/look)d FEATURE(dnsbl,dialups.mail-abuse.org, Mail from dial-up rejected; see http://mail-abuse.org/dul/enduser.htm)dnl FEATURE(no_default_msa)dnl FEATURE(rbl)dnl dnl dnl Permet de bloquer larrive de courrier pour certains utilisateurs dnl FEATURE(blacklist_recipients)dnl dnl dnl Taille maximum dun message, en octets. Ici, 10 Mo. dnl define(confMAX_MESSAGE_SIZE,10485760)dnl dnl define(confAUTO_REBUILD)dnl dnl dnl Message affich lors de la connexion dnl define(confSMTP_LOGIN_MSG, sardaukar.etablissement.org Sendmail 8.9.3 Have a nice day !)dnl dnl dnl Les dures aprs lesquelles les messages derreur sont envoys dnl define(confTO_QUEUEWARN,12h)dnl define(confTO_QUEUEWARN_NORMAL,12h)dnl define(confTO_QUEUEWARN_URGENT,12h)dnl define(confTO_QUEUEWARN_NONURGENT,12h)dnl dnl dnl Nous interdisont certaines commandes, et nous plaons dnl des avertissements de scurit dans certains cas dnl define(confPRIVACY_FLAGS, authwarnings,novrfy,noexpn,noetrn)dnl dnl dnl Emplacement du fichier .forward dnl define(confFORWARD_PATH, $z/.forward.$w:$z/.forward+$h:$z/.forward)dnl dnl dnl La personne qui doit recevoir les messages derreurs dnl define(confCOPY_ERRORS_TO, postmaster)dnl dnl

147

Conguration du serveur daccs

dnl Nombre maximum de destinataires pour un mail dnl define(confMAX_RCPTS_PER_MESSAGE, 20)dnl dnl dnl Nous masquons les noms de machines dnl MASQUERADE_AS(etablissement.org)dnl MASQUERADE_DOMAIN(*.etablissement.org)dnl FEATURE(masquerade_entire_domain)dnl dnl dnl Nous relayons les machines listes dans /etc/mail/access dnl FEATURE(relay_hosts_only)dnl dnl dnl Nous envoyons les mails considrs comme locaux notre dnl serveur principal dnl define(LOCAL_RELAY,esmtp:[xxx.xxx.xxx.xxx])dnl dnl dnl Nous dfinissons une machine qui envoyer tous les mails dnl define(MAIL_HUB,esmtp:[xxx.xxx.xxx.xxx])dnl dnl dnl Nous dfinissons quelle machine doit recevoir le courrier dnl du domaine dnl define(SMART_HOST,esmtp:[xxx.xxx.xxx.xxx])dnl dnl dnl Dans les lignes prcdentes, remplacez dnl xxx.xxx.xxx.xxx par ladresse IP de fremen dnl Compilez le chier avec la commande : m4 sendmail.mc > /etc/mail/sendmail.cf Ici aussi, vous aurez besoin des deux chiers no_default_msa.m4 et dnsbl.m4 prsents sur le CDROM. Copiez-les dans le sous-rpertoire feature. Ces chiers ne sont normalement pas ncessaires pour une version de sendmail suprieure ou gale 8.10.x. Puis sauvegardez le chier /etc/mail/sendmail.cf et copiez le nouveau sendmail.cf dans le rpertoire /etc/mail.

9.4.2

/etc/mail/access

Comme tout lheure, ce chier dnit les droits daccs de certains sites. Ici, nous le renseignons comme ceci :

148

Conguration du serveur daccs

*.etablissement.org RELAY Noux compilons le chier : makemap hash /etc/mail/access.db < /etc/mail/access

9.4.3

/etc/mail/aliases

Ce chier contient les alias. Il nest pas utile de sen soucier ici, tant donn que tout mail, mme local, sera renvoy sur notre serveur principal. Il serait mme dangereux de mettre en place des alias, car ceux-ci ne seraient pas respects. Nous utiliserons donc le chier 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. >>>>>>>>>> >> NOTE >> >>>>>>>>>> The program "newaliases" must be run after this file is updated for any changes to show through to sendmail.

# Basic system aliases -- these MUST be present. MAILER-DAEMON: postmaster postmaster: root # General redirections for pseudo accounts. bin: root daemon: root games: root ingres: root nobody: root system: root toor: root uucp: root # Well-known aliases. manager: root dumper: root operator: root abuse: root # trap decode to catch security attacks decode: root

149

Conguration du serveur daccs

Enregistrez le chier et lancez la commande : newaliases Sendmail a rgnr les aliases.

9.4.4

/etc/mail/domaintable

Ici non plus, nous ne servirons pas de ce chier. Nous crons donc un chier vide et le compilons : touch /etc/mail/domaintable makemap hash /etc/mail/domaintable.db < /etc/mail/domaintable

9.4.5

/etc/mail/genericstable

Nous ne nous servons pas de ce chier. Nous crons un chier vide et le compilons : touch /etc/mail/genericstable makemap hash /etc/mail/genericstable.db < /etc/mail/genericstable

9.4.6

/etc/mail/local-host-names

Ce chier contient les diffrents noms sous lesquels la machine est connue. Sendmail sen sert pour dterminer sil doit ou non accepter un mail. Nous le renseignons comme ceci : sardaukar.etablissement.org ns2.etablissement.org Nous ne compilons pas ce chier, Sendmail y accde directement.

9.4.7

/etc/mail/mailertable

Sur cette machine, nous nous servons de ce chier an de rediriger les mails vers notre serveur principal. Nous renseignons le chier comme ceci : etablissement.org esmtp:[xxx.xxx.xxx.xxx] *.etablissement.org esmtp:[xxx.xxx.xxx.xxx] O xxx.xxx.xxx.xxx est remplacer par ladresse IP du serveur principal, ici fremen.

150

Conguration du serveur daccs

9.4.8

/etc/mail/relay-domains

Nous nutilisons pas ce chier. Nous crons un chier vide : touch /etc/mail/relay-domains

9.4.9

/etc/mail/sendmail.ct

Ce chier contient les logins des personnes considres comme sres. Sendmail ne gnrera pas de message davertissement si ces personnes mentionnent une adresse diffrente de leur adresse login@etablissement.org. Nous y mettons bien sr root : root

9.4.10

/etc/mail/service.switch

Ce chier indique Sendmail de quels moyens il dispose pour se renseigner sur un utilisateur, 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 files hosts files dns aliases files Ce chier ne se compile pas.

9.4.11

/etc/mail/virtusertable

Nous nutilisons pas ce chier. Nous crons un chier vide et le compilons : touch /etc/mail/virtusertable makemap hash /etc/mail/virtusertable.db < /etc/mail/virtusertable

9.4.12

Redmarrage de Sendmail

Nous pouvons maintenant redmarrer Sendmail : /etc/init.d/sendmail start Si Sendmail ne redmarre pas, il y a une erreur quelque part. Il devrait vous lindiquer. Vriez 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 n la connexion avec Sendmail par la commande quit.

151

Conguration du serveur daccs

9.5

NFS

Nous commenons par arrter le service nfs-common : /etc/init.d/nfs-common stop

9.5.1

/etc/hosts

Pour que le systme puisse monter le volume NFS, le serveur doit gurer dans le chier /etc/hosts :

# The following lines are desirable for IPv6 capable hosts # (added automatically by netbase upgrade) ::1 fe00::0 ff00::0 ff02::1 ff02::2 ff02::3 ip6-localhost ip6-loopback ip6-localnet ip6-mcastprefix ip6-allnodes ip6-allrouters ip6-allhosts sardaukar.etablissement.org fremen.etablissement.org sardaukar,localhost fremen

127.0.0.1 10.1.0.1

9.5.2

/etc/fstab

Pour que le systme monte tout seul le volume NFS au dmarrage, nous devons ajouter une ligne notre chier /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 0 proc /proc proc defaults 0 0 # Uncomment the following entry if you use a 2.2.x or newer kernel for # UNIX98-style pty handling none /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 2 fremen:/home /home nfs rsize=1024,wsize=1024 0 0

152

Conguration du serveur daccs

9.5.3

Redmarrage de nfs-common

Nous pouvons redmarrer nfs-common : /etc/init.d/nfs-common start

9.5.4

Montage manuel des volumes NFS

Vriez que le volume NFS soit bien accessible dans le rpertoire /home. Sil ne ltait 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 linstallation du paquetage, il vous est demand dentrer le domaine NIS. Saisissez etablissement.org. Nous commenons par stopper le service NIS : /etc/init.d/nis stop

9.6.1

/etc/hosts

Nous devons modier le chier de manire ce quil 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 fe00::0 ff00::0 ff02::1 ff02::2 ff02::3 ip6-localhost ip6-loopback ip6-localnet ip6-mcastprefix ip6-allnodes ip6-allrouters ip6-allhosts sardaukar.etablissement.org fremen.etablissement.org sardaukar.etablissement.org client1.etablissement.org client2.etablissement.org client3.etablissement.org client4.etablissement.org client5.etablissement.org sardaukar,localhost fremen sardaukar client1 client2 client3 client4 client5

127.0.0.1 10.1.0.1 10.1.0.2 10.1.0.11 10.1.0.12 10.1.0.13 10.1.0.14 10.1.0.15

Si vous avez utilis la classe dadresses 192.168.x.x, remplacez par les valeurs idoines.

153

Conguration du serveur daccs

9.6.2

/etc/defaultdomain

Dans ce chier est congur le nom de domaine NIS que nous utilisons :

etablissement.org

9.6.3

/etc/init.d/nis

Nous devons indiquer au script de dmarrage 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=false NET="/usr/sbin" test -f $NET/ypbind -a -f /etc/defaultdomain || exit 0 [...]

9.6.4

/etc/yp.conf

Dans ce chier, nous indiquons au client NIS qui est le serveur. Cela vite que le client parcours le rseau la recherche de son serveur :

# # yp.conf # # # # #

Configuration file for the ypbind process. You can define NIS servers manually here if they cant 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 modier le chier /etc/passwd :

154

Conguration du serveur daccs

root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh sys:x:3:3:sys:/dev:/bin/sh sync:x:4:100:sync:/bin:/bin/sync games:x:5:100:games:/usr/games:/bin/sh man:x:6:100:man:/var/cache/man:/bin/sh lp:x:7:7:lp:/var/spool/lpd:/bin/sh mail:x:8:8:mail:/var/spool/mail:/bin/sh news:x:9:9:news:/var/spool/news:/bin/sh uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh proxy:x:13:13:proxy:/bin:/bin/sh majordom:x:30:31:Majordomo:/usr/lib/majordomo:/bin/sh postgres:x:31:32:postgres:/var/lib/postgres:/bin/sh www-data:x:33:33:www-data:/var/www:/bin/sh backup:x:34:34:backup:/var/backups:/bin/sh msql:x:36:36:Mini SQL Database Manager:/var/lib/msql:/bin/sh operator:x:37:37:Operator:/var:/bin/sh list:x:38:38:SmartList:/var/list:/bin/sh irc:x:39:39:ircd:/var:/bin/sh gnats:x:41:41:Gnats Bug-Reporting System:/var/lib/gnats/gnats-db:/bin/sh nobody:x:65534:65534:nobody:/home:/bin/sh telnetd:x:101:101::/usr/lib/telnetd:/bin/false identd:x:100:65534::/var/run/identd:/bin/false +julien::::::: +:*::::::/etc/NoShell julien:x:1000:1000:Julien BLACHE,,,:/home/julien:/bin/bash autre:x:1001:1001:Un autre utilisateur,,,:/home/autre:/bin/bash Dans cette exemple, tous les utilisateurs lists avant les lignes +julien::::::: +:*::::::/etc/NoShell peuvent utiliser la machine. Tout ceux lists aprs ne peuvent pas, lexception de lutilisateur julien. Faites donc trs attention lorsque vous ajoutez ces lignes. Dautre part, le nombre de : est important ! Notez quil ny a pas despace entre les :. Sur cette machine, faites en sorte que vous soyez le seul pouvoir ouvrir une session sous un compte normal (diffrent de root). Il nest pas indispensable que votre utilisateur soit dclar dans le chier /etc/passwd de cette machine.

9.6.6

/etc/group

Nous devons faire le mme genre de modication dans ce chier :

155

9 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,julien mail:x:8: news:x:9: uucp:x:10: proxy:x:13: kmem:x:15: dialout:x:20:julien fax:x:21: voice:x:22: cdrom:x:24:julien floppy:x:25: tape:x:26: sudo:x:27: audio:x:29:julien dip:x:30: majordom:x:31:majordom postgres: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:telnetd video:x:44: staff:x:50:julien games:x:60: users:x:100: nogroup:x:65534: telnetd:x:101: +::: julien:x:1000: autre:x:1001:

Conguration du serveur daccs

Attention, ici aussi, le nombre de : est important ! Remarquez encore quil ny a pas

156

9 despace entre les :.

Conguration du serveur daccs

9.6.7

Redmarrage de NIS

Nous pouvons maintenant redmarrer NIS : /etc/init.d/nis start

9.7

Permettre laccs Internet - rewalling et masquerading

Les adresses IP assignes nos machines clientes ne sont pas publiques. De ce fait, elles ne peuvent accder Internet sans laide de notre serveur daccs. Nous en proterons pour les protger quelque peu. Pour congurer les fonctionnalits de rewalling2 et de masquerading3 du noyau Linux, nous utiliserons le script FireMasq. Ce script est une interface lutilitaire ipchains utilis pour congurer ces deux fonctions. tant donne la topologie de notre rseau et nos besoins, cela nous sufra amplement. Il est bien sr toujours possible dutiliser ipchains directement.

9.7.1 /sbin/remasq.up.sh
Ce script sera lanc automatiquement lorsque les interfaces de la machine auront t congures. Il congurera les fonctionnalits de rewalling et de masquerading de faon adquate. #!/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...) # drteeth@northernlights.bizland.com # Check http://northernlights.bizland.com for new versions of this program # and for other computer security related tools and information. # # # # #
2 3

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
Protection des machines par le biais dune machine ltrant le trac rseau entrant et sortant. Masquage dadresses IP. Le masquerading permet dutiliser une connexion avec plusieurs machines, une machine se chargeant de masquer toutes les autres.

157

Conguration du serveur daccs

# other network segment the firewall is connected to. This script can also # be used for todays "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 Groups site at http://northernlights.bizland.com.

# All denied packets are logged via the kernels 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 cant easily get a picture of whats 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 IPs 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 Internets "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

9 # rest.

Conguration du serveur daccs

# 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 system IPCHAINS=/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 clients LAN="10.0.1.0/24" # Change LANDEV to the network device connected to your LAN LANDEV="eth1" # There should be no need to change this LOCALIP=ifconfig $LANDEV | grep inet | cut -d : -f 2 | cut -d \ echo echo echo echo echo echo echo echo echo "" "FireMasq version 0.7 by Dr. Teeth (2000)" "---------------------------------------------------------" "Local Network Device: $LANDEV" "Local IP: $LOCALIP" "Local Network Address: $LAN" "External Network Device: $INETDEV" "---------------------------------------------------------" ""

-f 1

#Set default chain policy echo -n "Setting default chain policies..." $IPCHAINS -P input DENY $IPCHAINS -P forward DENY $IPCHAINS -P output ACCEPT echo " Done!" #Flush all chains

159

Conguration du serveur daccs

echo -n "Flushing chains..." $IPCHAINS -F $IPCHAINS -X echo " Done!" #Add custom chains echo -n "Adding custom chains..." $IPCHAINS -N inet-in $IPCHAINS -N inet-out echo " Done!" #Set input rules echo -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-in echo " Done!" #Set forward rules echo -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 ACCEPT echo " Done!" #Activate masquerade echo -n "Activating masquerade..." $IPCHAINS -A forward -s $LAN -d 0.0.0.0/0 -j MASQ $IPCHAINS -M -S 7200 10 60 echo " Done!" #Set output rules echo -n "Setting rules $IPCHAINS -A output -s $IPCHAINS -A output -s $IPCHAINS -A output -s $IPCHAINS -A output -s echo " Done!"

for output chain..." $LAN -d $LAN -j ACCEPT 0.0.0.0/0 -d 0.0.0.0/0 -i lo -j ACCEPT $LAN -d 0.0.0.0/0 -j ACCEPT 0.0.0.0/0 -d 0.0.0.0/0 -i $INETDEV -j inet-out

#Set inet-in rules echo "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

Conguration du serveur daccs

#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 -l echo " Done!" #Block direct web access echo -n " Blocking direct web access..." $IPCHAINS -A output -p tcp -s $LAN -d 0.0.0.0/0 www -j DENY echo " 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 ACCEPT echo " 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 -l echo " Done!" #Set inet-out rules echo "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 0x08 echo " Done!"

161

Conguration du serveur daccs

9.7.2

/sbin/remasq.down.sh

Ce script sera excut larrt de la machine. Bien quil ne soit pas spcialement utile ce moment-l. Il est utile en cas de changement sur les interfaces (adresses IP par exemple). Les rgles de masquerading et rewalling seront alors remises zro.

#!/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 ACCEPT echo " Done!"

9.7.3

Modules noyau

ditez le chier /etc/modules et vriez que les modules ip_masq_ftp, ip_masq_irc, ip_masq_cuseeme, ip_masq_raudio sont lists dans ce chier. Sils ne le sont pas, rajoutez-les puis sauvegardez le chier. Ce chier est consult au dmarrage de la machine et permet de charger automatiquement les modules noyau qui y sont mentionns. Les lignes commenant par # sont ignores. Ces modules permettent aux machines clients dutiliser certains protocoles (FTP, ICQ, IRC et RealAudio) qui ne peuvent tre utiliss lorsque la machine se trouve derrire une passerelle comme la notre. Lancez la commande lsmod et observez sa sortie. Si les modules cits ci-dessus napparaissent pas dans la liste, excutez les commandes : insmod insmod insmod insmod ip_masq_ftp ip_masq_irc ip_masq_cuseeme ip_masq_raudio

Qui chargeront les modules.

9.7.4

/etc/init.d/remasq

Ce script sera excut au dmarrage de la machine par init et appellera /sbin/remasq.up.sh pour mettre en place les rgles de rewalling et masquerading. Il pourra ensuite tre utilis comme tous les autres scripts dinit pour stopper/ractiver ces fonctionnalits.

162

9 #!/bin/sh

Conguration du serveur daccs

# Simple init script for firemasq by Julien BLACHE. # Licensed under the GNU GPL. test -x /sbin/firemasq.up.sh || exit 0 test -x /sbin/firemasq.down.sh || exit 0 test -x /sbin/ipchains || exit 0 case "$1 in start) echo -n "Setting up firewalling/masquerading rules:" /sbin/firemasq.up.sh echo " firemasq.up." ;; stop) echo -n "Flushing firewalling/masquerading rules:" /sbin/firemasq.down.sh echo " firemasq.down." ;; restart) echo -n "Resetting firewalling/masquerading rules:" /sbin/firemasq.up.sh echo " done." ;; *) echo "Usage: /etc/init.d/firemasq {start|stop|restart}" >&2 exit 1 ;; esac exit 0

Il nous faut faire quelques liens symboliques pour installer convenablement ce script : cd cd cd cd cd cd cd cd /etc/rcS.d /etc/rc0.d /etc/rc1.d /etc/rc2.d /etc/rc3.d /etc/rc4.d /etc/rc5.d /etc/rc6.d && && && && && && && && ln ln ln ln ln ln ln ln -s -s -s -s -s -s -s -s ../init.d/firemasq ../init.d/firemasq ../init.d/firemasq ../init.d/firemasq ../init.d/firemasq ../init.d/firemasq ../init.d/firemasq ../init.d/firemasq S41firemasq K41firemasq K41firemasq S25firemasq S25firemasq S25firemasq S25firemasq K30firemasq && && && && && && && && cd cd cd cd cd cd cd cd -

163

Conguration du serveur daccs

9.7.5

Dmarrage du rewalling

Nous utilisons notre script : /etc/init.d/firemasq start

9.8

Serveur proxy

En milieu scolaire, nous ne pouvons nous permettre de fournir un accs brut au Web. Nous devons ltrer certains sites. Nous utiliserons le serveur proxy Squid et SquidGuard, un redirecteur pour Squid. Le travail du redirecteur consiste comparer les adresses des sites demands au proxy avec le contenu de ses bases de donnes. Si le rsultat est positif, SquidGuard prendra une dcision diffrente selon la base qui a produit ce rsultat, et informera Squid de la suite donner la requte. Si le rsultat est ngatif, Squid en sera inform, et la requte seffectuera. Tout ceci est presque transparent pour lutilisateur, except quil ne pourra accder certains sites et ne verra quasiment aucune bannire de publicit. Il existe des listes noires de sites toutes prtes pour SquidGuard, disponibles sur le site4 du projet. Nous nous en servirons an de ltrer les sites proposant des contenus pornographiques, traitant de warez5 ou de cracking6 et les publicits. Ladministrateur du site pourra, sil le souhaite, utiliser lune ou lautre des listes disponibles, telles celles traitant des sites de jeux dargent ou de ceux permettant le tlchargement libre denregistrement audio (MP3 notamment) ou vido illgaux. Pour justier ce ltrage, outre le bon sens, rappelons larticle 227-24 du Nouveau Code Pnal : Article 227-24 Le fait soit de fabriquer, de transporter, de diffuser par quelque moyen que ce soit et quel quen soit le support un message caractre violent ou pornographique ou de nature porter gravement atteinte la dignit humaine, soit de faire commerce dun tel message, est puni de trois ans demprisonnement et de 500.000 F damende lorsque ce message est susceptible dtre vu ou peru par un mineur. Lorsque les infractions prvues au prsent article sont soumises par la voie de la presse crite ou audiovisuelle, les dispositions particulires des lois qui rgissent ces matires sont applicables en ce qui concerne la dtermination des personnes responsables.

9.8.1

Squid - /etc/squid.conf

Cest le chier de conguration central de Squid. Voici celui que nous utiliserons :
http://www.squidguard.org/blacklist/ Piratage de logiciels. 6 Piratage dquipements lectroniques et informatiques, ne pas confondre avec hacking qui signie programmation, malgr ce que les mdias svertuent nous faire croire.
5 4

164

9 # # # # # # # # # # # # # # # WELCOME TO SQUID 2 ------------------

Conguration du serveur daccs

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 dont need to change the default, you shouldnt 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

Conguration du serveur daccs

# 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 nlanr-cache@nlanr.net 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 doesnt 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 connections from clients and tcp_outgoing_address is used servers and other caches. udp_incoming_address is used from other caches. udp_outgoing_address is used caches. for the HTTP socket which accepts other caches. for connections made to remote for the ICP socket receiving packets for ICP packets sent out to other

The default behaviour is to not bind to any specific address.

166

Conguration du serveur daccs

# # 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.2 tcp_outgoing_address xxx.xxx.xxx.xxx udp_incoming_address 10.0.1.2 udp_outgoing_address xxx.xxx.xxx.xxx # # Ici, remplacez xxx.xxx.xxx.xxx par ladresse affecte linterface 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, # # # cache_peer cache_peer cache_peer proxy icp type port port -------- ----- ----parent 3128 3130 sibling 3128 3130 sibling 3128 3130

hostname -------------------parent.foo.net sib1.foo.net sib2.foo.net

options ----------[proxy-only] [proxy-only] [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

9 # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #

Conguration du serveur daccs

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 dont 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, well only forward CLOSEST_PARENT_MISSes and never FIRST_PARENT_MISSes.

168

Conguration du serveur daccs

# 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

Conguration du serveur daccs

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

Conguration du serveur daccs

# 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 SQUIDS 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

Conguration du serveur daccs

# * 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 90 cache_swap_high 95

172

Conguration du serveur daccs

# 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 1024 ipcache_low 90 ipcache_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

Conguration du serveur daccs

# 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 caches 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

Conguration du serveur daccs

# # 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 Squids MIME table. You shouldnt 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

9 # #useragent_log none

Conguration du serveur daccs

# TAG: pid_filename # A filename to write the process-id to. # pid_filename /var/run/squid.pid

To disable, enter "none".

# 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 # IPs 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 IPs 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 wwwuser@somewhere.net The reason why this is domainless by default is that the

176

Conguration du serveur daccs

# 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

Conguration du serveur daccs

# TAG: unlinkd_program # Specify the location of the executable for file deletion process. # This isnt needed if you are using async-io since its 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 isnt 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

Conguration du serveur daccs

# 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

9 # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #

Conguration du serveur daccs

TAG: refresh_pattern usage: refresh_pattern [-i] regex min percent max [options] By default, regular expressions are CASE-SENSITIVE. 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 Squids 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. To make

180

Conguration du serveur daccs

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

Conguration du serveur daccs

# # If more than quick_abort_pct of the transfer has completed, # it will finish the retrieval. # quick_abort_min 16 KB quick_abort_max 16 KB quick_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 Squids 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

Conguration du serveur daccs

#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 URLs 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

Conguration du serveur daccs

# 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

Conguration du serveur daccs

# 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. them case-insensitive, use the -i option. acl acl acl acl acl acl acl acl # # # aclname aclname aclname aclname src src dst myip To make

ip-address/netmask ... (clients IP address) addr1-addr2/netmask ... (range of addresses) ip-address/netmask ... (URL hosts IP address) ip-address/netmask ... (local socket IP address)

aclname srcdomain foo.com ... # reverse lookup, client IP aclname dstdomain foo.com ... # Destination server from URL aclname srcdom_regex [-i] xxx ... # regex matching client name 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

Conguration du serveur daccs

# 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. Heres 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 cant 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 doesnt. # # 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

9 acl acl acl acl acl acl acl

Conguration du serveur daccs

all src 0.0.0.0/0.0.0.0 manager proto cache_object localhost src 127.0.0.1/255.255.255.255 SSL_ports port 443 563 Safe_ports port 80 21 443 563 70 210 1025-65535 purge method PURGE CONNECT method CONNECT

# # Nous dfinissons 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 localhost http_access deny manager http_access allow purge localhost http_access deny purge http_access deny !Safe_ports http_access deny CONNECT !SSL_ports # # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS # http_access deny all

187

Conguration du serveur daccs

# # Nous accordons laccs 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

Conguration du serveur daccs

# (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 proxy cache_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

Conguration du serveur daccs

# 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

Conguration du serveur daccs

# 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

Conguration du serveur daccs

# 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

Conguration du serveur daccs

# TAG: tcp_recv_bufsize (bytes) # Size of receive buffer to set for TCP sockets. Probably just # as easy to change your kernels 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

9 # # # # # # # # # # # # # # # # #

Conguration du serveur daccs

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

9 #icp_hit_stale off

Conguration du serveur daccs

# 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

Conguration du serveur daccs

# 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

9 # #netdb_low 900 #netdb_high 1000

Conguration du serveur daccs

# 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

Conguration du serveur daccs

# 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

9 # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #

Conguration du serveur daccs

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

Conguration du serveur daccs

# 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 pauls@etext.org 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

Conguration du serveur daccs

# 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 dont # 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 systems # installed snmpd with minimal changes. This option is turned # off by default, check with your /etc/services for your systems # snmp port (usually 161). We do not use getservbyname() to # allow you to set Squid into port 161 and your systems 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

Conguration du serveur daccs

# 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

Conguration du serveur daccs

# 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

Conguration du serveur daccs

# 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

Conguration du serveur daccs

# 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 cant even believe you are reading this. # Are you crazy? Dont 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

Conguration du serveur daccs

# 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 URIs. # 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 CRLFs 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

Conguration du serveur daccs

# 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 users 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 linstallation, SquidGuard nest pas inclus dans Debian GNU/Linux 2.2 Potato. En revanche, SquidGuard fait son apparition dans la version suivante, pour le moment en dveloppement, savoir Debian GNU/Linux Woody. Lors de la rdaction de ce dossier, les deux versions, Potato et Woody, ont encore un contenu trs proche, permettant de compiler un paquetage de lune sur lautre. Cest donc ce que jai fait. Vous trouverez sur le CD joint un chier 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. Sil y avait des problmes de dpendances, installez les paquetages idoines. Pour tout autre problme, contactez-moi.

9.8.3

/etc/squidGuard.conf

Cest le chier de conguration de SquidGuard. Il contient absolument toutes les rgles et toutes les options dont nous avons besoin. Nous utiliserons ceci : # # Configuration file for SquidGuard # /etc/squidGuard.conf # dbhome /var/lib/squidguard/db logdir /var/log/squid #

207

9 # # # # # # # #

Conguration du serveur daccs

Rgles Temporelles Dfinition de rgles en fonction des heures et des jours Rappelez-vous que les machines sont rgles en heure GMT... Nous rglons ici pour la priode en heure dt, celle-ci tant GMT + 2 heures. abbrviation 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 19h00 weekly a 05:00 - 11:00 # de 07h00 13h00 le samedi }

# # Dclaration des groupes # src clients { ip 10.0.1.0/255.255.255.0 within heures_de_cours } src admin { ip 10.0.1.0/255.255.255.0 user root vos_utilisateurs_d_administration } # ici, remplacez "vos_utilisateurs_d_administration" par les logins des # diffrents administrateurs, qui doivent pouvoir accder lextrieur # en permanence.

# # Groupes de destination # dest ok { } dest local { } dest adulte { domainlist adulte/domains

208

Conguration du serveur daccs

urllist adulte/urls expressionlist adulte/expressions redirect http://fremen/erreur_proxy/adulte.html log adulte.log } dest warez { domainlist warez/domains urllist warez/urls redirect http://fremen/erreur_proxy/warez.html log warez.log } dest pub { domainlist pub/domains urllist pub/urls redirect http://fremen/erreur_proxy/pub.html } dest cracking { domainlist cracking/domains urllist cracking/urllist redirect http://fremen/erreur_proxy/cracking.html log cracking.log }

# # Rgles de rcriture dadresses # Le filtrage se fait rellement ici, au moyen des dfinitions prcdentes. # 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

Conguration du serveur daccs

pass none redirect http://fremen.etablissement.org/erreur_proxy/unknown.html }

9.8.4

Pages de redirection

Les pages de redirection sont installer sur le serveur Web (cest--dire la machine appele fremen dans ce dossier), dans le rpertoire /var/www/erreur_proxy/. Les images sont placer dans le rpertoire /var/www/images/. Ci-dessous, un exemple pour chacune des pages. Les pages se trouvent sur le CD-ROM joint. Nous utiliserons des pages XHTML 1.0 (nouvelle recommandation du W3C7 ) et les CSS8 . Voici le CSS que nous utiliserons (chier 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"?>


7 8

World Wide Web Consortium : organisme charg de dnir les standards du Web. Cascading Style Sheet : feuilles de style. Leur utilisation permet de rduire la taille des pages HTML en supprimant tous les lments de mise en forme.

210

Conguration du serveur daccs

<!DOCTYPE html PUBLIC "-//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>Dsol... Site indisponible...</title> </head>

<body> <h1>SquidGuard</h1> <blockquote> <p>Vous avez tent daccder un site prsentant un contenu suscpetible de choquer certaines personnes.</p> <p>Soucieux de respecter la loi, votre administrateur a mis en place un systme de filtrage vous empchant daccder un tel site.</p> <p>Cette tentative daccs a t enregistre et consigne dans un fichier-journal.</p> <p>Nous vous rappelons le contenu de larticle 227-24 du Nouveau Code Pnal :<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 quen soit le support un message <br /> caractre violent ou <b>pornographique</b> ou de nature porter gravement< atteinte la dignit humaine, soit de faire commerce dun tel<br /> message, est puni de <b>trois ans demprisonnement</b> et de <b>500.000 F<b damende</b> lorsque ce message est susceptible dtre vu ou peru par<br un mineur. <br /> Lorsque les infractions prvues au prsent article sont soumises par<br /> la voie de la presse crite ou audiovisuelle, les dispositions<br /> particulires des lois qui rgissent ces matires sont applicables<br /> en ce qui concerne la dtermination des personnes responsables.<br /> <br /> Merci de votre comprhension. </p> <p> <object>

211

Conguration du serveur daccs

<hr /> </object> Contacter l<a href="mailto:root@etablissement.org">administrateur</a> -- This document validates as <a href="http://validator.w3.org/check/refere XHTML 1.0 Strict</a> &amp; <a href="http://jigsaw.w3.org/css-validator/che <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 Debian GNU/Linux" </td> <td valign="middle" align="center"> <a href="http://www.squidguard.org/"><img src="/images/squidguard.gif" alt="Powered by the SquidGuard redirector for Squid" /></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.2 Sites proposant des logiciels pirats Fichier warez.html :

212

Conguration du serveur daccs

<?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE html PUBLIC "-//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>Dsol... Site indisponible...</title> </head>

<body> <h1>SquidGuard</h1> <blockquote> <p>Vous avez tent daccder un site proposant des logiciels pirats.</p> <p>Soucieux de respecter la loi, votre administrateur a mis en place un systme de filtrage vous empchant daccder un tel site.</p> <p>Cette tentative daccs a t enregistre et consigne dans un fichier.</p> <p>Merci de votre comprhension.</p> <p> <object> <hr /> </object> Contacter l<a href="mailto:root@etablissement.org">administrateur</a> -- T XHTML 1.0 Strict</a> &amp; <a href="http://jigsaw.w3.org/css-validator/che <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

Conguration du serveur daccs

<td valign="middle" align="center"> <a href="http://www.debian.org/"><img src="/images/debian_logo.jpg" alt="Powered by Debian GNU/Linux" /></a> </td> <td valign="middle" align="center"> <a href="http://www.squidguard.org/"><img src="/images/squidguard.gif" alt="Powered by the SquidGuard redirector for Squid" /></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 html PUBLIC "-//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>Dsol... Site indisponible...</title> </head> <body> <h1>SquidGuard</h1> <blockquote> <p>Vous avez tent daccder un site prsentant divers moyens de

214

Conguration du serveur daccs

pirater du matriel lectronique ou informatique, ou fournissant un ou plusieurs moyens de sintroduire frauduleusement sur une machine ne vous appartenant pas.</p> <p>Nous vous rappelons que toute <b>tentative</b> dintrusion dans un systme informatique tiers est rprime par la loi.</p> <p>Soucieux de respecter la loi, votre administrateur a mis en place un systme de filtrage vous empchant daccder un tel site.</p> <p>Cette tentative daccs a t enregistre et consigne dans un fichier-journal.</p> <p>Merci de votre comprhension.</p> <p> <object> <hr /> </object> Contacter l<a href="mailto:root@etablissement.org">administrateur</a> -- T XHTML 1.0 Strict</a> &amp; <a href="http://jigsaw.w3.org/css-validator/che <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 Debian GNU/Linux" /></a> </td> <td valign="middle" align="center"> <a href="http://www.squidguard.org/"><img src="/images/squidguard.gif" alt="Powered by the SquidGuard redirector for Squid" /></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

9 </table> </blockquote> </body> </html> 9.8.4.4 Sites de publicit Fichier pub.html :

Conguration du serveur daccs

<?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE html PUBLIC "-//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>Dsol... Site indisponible...</title> </head>

<body> <h1>SquidGuard</h1> <blockquote> <p>Vous avez tent daccder un site fournissant divers moyens de publicit <p>Bien que ceci ne constitue en rien une infraction, certains de ces sites proposent des publicits qui sont rprhensibles, notamment par larticle 227-24 du Nouveau Code Pnal.</p> <p>Soucieux de respecter la loi, et dconomiser les ressources en bande passante, votre administrateur a mis en place un systme de filtrage vous empchant daccder un tel site.</p> <p>Cette tentative daccs a t enregistre et consigne dans un fichier-journal.</p> <p>Nous vous rappelons le contenu de larticle 227-24 du Nouveau Code Pnal :<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 quen soit le support un message <br /> caractre violent ou <b>pornographique</b> ou de nature porter gravement<

216

Conguration du serveur daccs

atteinte la dignit humaine, soit de faire commerce dun tel<br /> message, est puni de <b>trois ans demprisonnement</b> et de <b>500.000 F<b damende</b> lorsque ce message est susceptible dtre vu ou peru par<br un mineur. <br /> Lorsque les infractions prvues au prsent article sont soumises par<br /> la voie de la presse crite ou audiovisuelle, les dispositions<br /> particulires des lois qui rgissent ces matires sont applicables<br /> en ce qui concerne la dtermination des personnes responsables.<br /> <br /> Merci de votre comprhension. </p> <p> <object> <hr /> </object> Contacter l<a href="mailto:root@etablissement.org">administrateur</a> -- T XHTML 1.0 Strict</a> &amp; <a href="http://jigsaw.w3.org/css-validator/che <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 Debian GNU/Linux" /></a> </td> <td valign="middle" align="center"> <a href="http://www.squidguard.org/"><img src="/images/squidguard.gif" alt="Powered by the SquidGuard redirector for Squid" /></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

9 </td> </tr> </table> </blockquote> </body> </html>

Conguration du serveur daccs

9.8.5

Listes noires

Ces listes sont utilises par SquidGuard pour ltrer laccs certains sites. 9.8.5.1 Installation

Rcuprez larchive contenant les listes noires sur le site de SquidGuard9 . Dcompressez-la, et copiez les diffrents chiers vers les emplacements adquats. Ici, nous ferons ceci : copie des chiers domains, domains.db, urls et urls.db du rpertoire ads de larchive vers le rpertoire /var/lib/squidguard/db/pub copie des chiers domains, domains.db, urls et urls.db du rpertoire warez de larchive vers le rpertoire /var/lib/squidguard/db/warez copie des chiers domains, domains.db, urls et urls.db du rpertoire hacking de larchive vers le rpertoire /var/lib/squidguard/db/cracking copie des chiers domains, domains.db, urls, urls.db et expressions du rpertoire porn de larchive vers le rpertoire /var/lib/squidguard/db/adulte Lancez la commande : squidGuard -C all SquidGuard met jour ses chiers, nous sommes prts redmarrer Squid. 9.8.5.2 Maintenance

Il faut garder ces chiers jour. En effet, ces listes voluent toutes les semaines. Il est souhaitable de procder la mise jour des listes noires une fois par semaine. Nous pouvons automatiser ceci grce cron, ncftp, et un petit script shell : #! /bin/bash echo -e "\n *** Recuperation de larchive ***" date echo -e "\n"

cd /root ncftpget ftp://ftp.ost.eltele.no/pub/www/proxy/squidGuard/contrib/blacklists.ta


9

http://www.squidguard.org/blacklist/

218

Conguration du serveur daccs

echo -e "\n *** Decompression de larchive ***\n" tar -xvzf blacklists.tar.gz echo -e "\n *** Copie des fichiers en cours... ***\n" cd cp cp cp cp cp cp cp cp cp cp cp cp cp cp cp cp cp blacklists -f ads/urls /var/lib/squidguard/db/pub -f ads/urls.db /var/lib/squidguard/db/pub -f ads/domains /var/lib/squidguard/db/pub -f ads/domains.db /var/lib/squidguard/db/pub -f -f -f -f -f -f -f -f -f -f -f -f -f warez/urls /var/lib/squidguard/db/warez warez/urls.db /var/lib/squidguard/db/warez warez/domains /var/lib/squidguard/db/warez warez/domains.db /var/lib/squidguard/db/warez hacking/urls /var/lib/squidguard/db/cracking hacking/urls.db /var/lib/squidguard/db/cracking hacking/domains /var/lib/squidguard/db/cracking hacking/domains.db /var/lib/squidguard/db/cracking porn/expressions /var/lib/squidguard/db/adulte porn/urls /var/lib/squidguard/db/adulte porn/urls.db /var/lib/squidguard/db/adulte porn/domains /var/lib/squidguard/db/adulte 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 all cd /root rm -rf blacklists rm -f blacklists.tar.gz echo -e "\n *** Mise a jour des listes terminee ***" date echo -e "\n" Enregistrez ceci dans un chier /usr/local/bin/update-sgbl.sh, et rendez ce chier excutable. 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

Conguration du serveur daccs

Cron lancera notre script tous les dimanches 22h30.

9.8.6

Redmarrage de Squid

Nous pouvons maintenant redmarrer Squid : /etc/init.d/squid start

9.9
9.9.1

Serveur dimpression
Conguration des imprimantes

Raccordez les deux imprimantes sur les deux ports parallles de la machine.

9.9.2

apslter

Pour congurer les imprimantes, nous utiliserons le logiciel apslter. Cest un jeu de ltres qui permettent lutilisation des imprimantes sous divers Unices. La conguration dapslter se fait par le biais du programme apsltercong. Ne pouvant connatre lavance les modles dimprimantes, je pense que cest la meilleure solution. Il se peut que vos modles dimprimantes ne soient pas supports par asplter. Dans ce cas-l, tentez votre chance avec magiclter.

9.9.3

/etc/printcap

Ce chier est le chier de conguration de lpd10 . Cest ici que nous dclarons les imprimantes, leurs noms, les ltres utiliser pour lenvoi de donnes, etc. . . Aspltercong se charge de crer les entres ncessaires aux imprimantes. Trois entres sont cres, correspondant aux ltres PostScript, Raw et Auto. Vous pouvez supprimer les entres concernant PostScript et Raw. Au nal, vous devriez obtenir un chier sapparentant 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:


10

Line Printer Daemon : daemon charg de la gestion des impressions.

220

Conguration du serveur daccs

# 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: Congurez donc les deux imprimantes avec des noms quivoques ; par exemple lplaser et lpcouleur sont de bons noms pour une imprimante laser et une imprimante jet dencre couleur. Il est possible de donner plusieurs noms une imprimante, comme dans lexemple ci-dessus. Ici, les deux imprimantes correspondent une Epson Stylus Color II et une Hewlett Packard LaserJet III. La mention lp signie que limprimante est locale. En aucun cas cette mention nest obligatoire dans le nom de limprimante.

9.9.4

Conguration de laccs

Crez un chier /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

9 client2 client3 client4 client5 fremen

Conguration du serveur daccs

Nous listons ici toutes les machines qui ont le droit dutiliser le service dimpression. Remplacez client[1-5] par les noms de diffrentes machines clientes.

9.9.5

Redmarrage de lpd

Nous devons redmarrer le daemon lpd pour quil prenne en compte les modications : /etc/init.d/lpd restart

9.10

NTP, synchronisation de lheure

Comme pour notre serveur, cette machine va se mettre lheure grce NTP. Lors de linstallation du paquetage ntp, vous devrez spcier un serveur NTP. Vous trouverez une liste des serveurs franais ladresse http://www.cru.fr/NTP/serveurs\protect\ T1\textunderscorefrancais.html. Pour ne pas encombrer les serveurs primaires, utilisez sil vous plat un serveur secondaire, comme ntp.loria.fr, par exemple.

9.11 SNMPD, surveillance rseau


Le chier de conguration utilis est le mme que celui de notre serveur (section 8.16, page 122). 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 conguration, vous pouvez dcommenter les entres concernant sardaukar dans le chier /etc/mrtg.cfg de fremen.

222

10 Conguration des machines clientes


Nos cinq postes clients tant des machines strictement identiques, je vous conseille de congurer une machine, puis de recopier la conguration sur les autres. Vous gagnerez de ce fait beaucoup de temps. Noubliez pas de faire les modications propres chaque machine (noms des machines, adresses IP, etc. . .). Je ne prsente plus certains des chiers de conguration, maintenant connus, notamment sur la partie rsolution de noms.

10.1

Compilation du noyau

Comme pour nos autres machines, nous avons besoin de certaines fonctionnalits qui ne sont pas incluses dans le noyau standard. Commencez par rcuprer 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) sur ftp.fr.kernel.org, par exemple. Placez larchive dans le rpertoire /usr/src. Vriez quil ny a pas de rpertoire nomm linux, sil y en a un, renommez-le. Maintenant, dcompressez larchive contenant les sources du noyau. Un nouveau rpertoire linux est apparu, celui-ci contient les sources du noyau. Allez dans ce rpertoire, et lancez la commande (le paquetage libncurses-dev doit tre install) : make menuconfig Aprs la compilation de quelques chiers, une interface graphique apparat. Nous allons maintenant congurer le noyau Linux. En dehors des composants requis pour la bonne marche de la machine, veillez plus particulirement aux options suivantes : utilisation des pilotes exprimentaux optimisation pour la famille de processeurs utilise 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 dfaut (256) dans la section systmes de chiers, nous incluons dans le noyau le support pour le systme /proc ainsi que celui pour le systme /dev/pts, sans oublier dinclure le support pour le deuxime systme de chiers tendu (ext2fs). dans la mme section, nous plaons en modules les supports pour les systmes de chiers FAT, VFAT, MSDOS, UMSDOS, ISO9660 dans la section systmes de chiers rseau, nous plaons en module le support pour le systme de chiers NFS nous faisons en sorte de pouvoir exploiter la carte son installe dans la machine

223

10

Conguration des machines clientes

congurez galement le support AGP et DRM/DRI si vous souhaitez utiliser XFree86 version 4.x.x (ce qui sera le cas si les cartes vido sont rcentes) dans la section kernel hacking, activez loption Magic SysRQ key. Cette option permet de communiquer avec le noyau lors dun plantage svre de la machine an deffectuer les oprations de dernire minute (synchronisation des partitions montes, etc. . .) avant de redmarrer la machine. Lisez la documentation concernant cette fonctionnalit dans le chier Documentation/sysrq.txt. Maintenant, sauvegardez la conguration et quittez linterface. Puis compilez et installez le noyau. Congurez LILO de manire pouvoir dmarrer sur lun ou lautre des deux noyaux prsents, cest--dire le noyau dorigine et celui que nous venons de compiler. Le chier de conguration 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 !! | | | | Dont 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 dont 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 doesnt always work. compact

224

10

Conguration 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

10

Conguration 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 label=Linux read-only # restricted # alias=1 image=/boot/vmlinuz-2.2.14 label=linux-orig read-only # optional # restricted # alias=2 # # # # # # # # # le nouveau noyau, ici version 2.2.16

# le nouveau noyau, ici version 2.2.14

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 chier est en fait le mme que prcdemment. Il sagit du chier par dfaut livr avec Debian GNU/Linux. Seules les sections concernant les noyaux disponibles ont t modies, ainsi que les options concernant les partitions. Lancez /sbin/lilo de manire mettre jour le secteur de boot de la machine. Si tout se passe bien, vous pouvez essayer de redmarrer la machine. Si LILO vous dit que votre noyau est trop gros, soit vous avez inclus beaucoup trop de choses dedans, auquel cas vous pouvez le

226

10

Conguration des machines clientes

recongurer et faire la chasse aux options inutiles, soit vous pouvez utiliser make bzImage pour le compiler. Si la machine redmarre sans problmes, bravo, sinon recommencez, vous avez certainement oubli quelque chose. Une fois la machine redmarre avec son nouveau noyau, et si tout se passe bien, sauvegardez le chier /usr/src/linux/.cong (notez le ., ce qui signie que cest un chier cach) dans le rpertoire personnel de root (/root), sous un nom vocateur. Vous pourrez charger ce chier pour congurer le prochain kernel, ce qui vous vitera de devoir saisir nouveau la conguration.

10.2

Interface rseau

Les machines clientes ne disposent que dune seule interface rseau. La seule spcicit rside dans la spcication 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 static hostname client1.etablissement.org address 10.1.0.11 netmask 255.255.255.0 network 10.1.0.0 broadcast 10.1.0.255 gateway 10.1.0.2 Noubliez pas de modier le nom de la machine et ladresse IP qui correspond.

10.3
10.3.1

Conguration de la rsolution de noms


/etc/resolv.conf

Nous utiliserons ceci : domain etablissement.org search etablissement.org nameserver 10.0.1.2 nameserver 10.0.1.1

227

10

Conguration des machines clientes

Vous remarquerez que les serveurs DNS sont inverss : le serveur secondaire est list en premier, an de dcharger le serveur primaire de nos requtes internes.

10.3.2

/etc/nsswitch.conf

Nous utiliserons le mme chier que prcdemment : # # # # # /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. compat compat compat files dns files db db db db nis files files files files

passwd: group: shadow: hosts: networks: protocols: services: ethers: rpc: netgroup:

10.3.3

/etc/host.conf

Nous utiliserons l aussi la mme conguration que prcdemment : order hosts,bind multi on

10.3.4

/etc/hosts

Nous utiliserons ceci, sur le poste nomm client1 (une fois encore, vous pouvez choisir un autre nom) : # The following lines are desirable for IPv6 capable hosts # (added automatically by netbase upgrade) ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet

228

10 ff00::0 ff02::1 ff02::2 ff02::3

Conguration des machines clientes

ip6-mcastprefix ip6-allnodes ip6-allrouters ip6-allhosts client1.etablissement.org fremen.etablissement.org sardaukar.etablissement.org client1.etablissement.org client2.etablissement.org client3.etablissement.org client4.etablissement.org client5.etablissement.org client1,localhost fremen sardaukar client1 client2 client3 client4 client5

127.0.0.1 10.1.0.1 10.1.0.2 10.1.0.11 10.1.0.12 10.1.0.13 10.1.0.14 10.1.0.15

Notez que ce chier varie selon le nom de la machine. La ligne commenant par 127.0.0.1 doit tre modie sur chaque machine.

10.4

Sendmail, serveur SMTP

Sur ces postes, le seul but de Sendmail est denvoyer le courrier notre serveur principal an que celui-ci le fasse parvenir lextrieur (ou un autre utilisateur). Nous commenons par arrter 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 rpertoire /usr/share/sendmail/sendmail.cf, puis ouvrez un chier nomm sendmail.mc. Nous utiliserons cette conguration, trs similaire celle de notre MX secondaire : include(./m4/cf.m4)dnl dnl dnl Dfinition de certains lments spcifiques au systme dnl (emplacement de certains fichiers, ...) dnl OSTYPE(debian)dnl dnl dnl Nous dfinissons certains emplacements dnl FEATURE(use_cw_file,/etc/mail/local-host-names)dnl FEATURE(use_ct_file,/etc/mail/sendmail.ct)dnl FEATURE(mailertable,hash -o /etc/mail/mailertable)dnl FEATURE(domaintable,hash -o /etc/mail/domaintable)dnl

229

10

Conguration des machines clientes

FEATURE(genericstable,hash -o /etc/mail/genericstable)dnl FEATURE(virtusertable,hash -o /etc/mail/virtusertable)dnl FEATURE(access_db,hash -o /etc/mail/access)dnl define(STATUS_FILE, /etc/mail/trusted-users)dnl define(LOCAL_MAILER_PATH, /usr/bin/procmail)dnl define(confCW_FILE,/etc/mail/local-host-names)dnl define(confCT_FILE,/etc/mail/sendmail.ct)dnl define(confSTATUS_FILE, /etc/mail/statistics)dnl dnl dnl Nous rajoutons toujours le domaine en fin dadresse dnl (ex.: To: root devient To: root@etablissement.org) dnl FEATURE(always_add_domain)dnl dnl dnl Nous dfinissons les mailer (protocoles) utiliser dnl Ainsi que lutilisation de procmail dnl FEATURE(local_procmail)dnl MAILER(local)dnl MAILER(smtp)dnl MAILER(procmail)dnl dnl dnl Permet de rediriger une adresse en "adresse.REDIRECT" dnl FEATURE(redirect)dnl dnl dnl Protection anti-spam dnl FEATURE(dnsbl,blackholes.mail-abuse.org, Mail from $&{client_addr} rejected; see http://mail-abuse.org/cgi-bin/look)d FEATURE(dnsbl,dialups.mail-abuse.org, Mail from dial-up rejected; see http://mail-abuse.org/dul/enduser.htm)dnl FEATURE(no_default_msa)dnl FEATURE(rbl)dnl dnl dnl dnl Taille maximum dun message, en octets. Ici, 10 Mo. dnl define(confMAX_MESSAGE_SIZE,10485760)dnl dnl define(confAUTO_REBUILD)dnl dnl dnl Message affich lors de la connexion dnl define(confSMTP_LOGIN_MSG,

230

10

Conguration des machines clientes

client1.etablissement.org Sendmail 8.9.3 Have a nice day !)dnl dnl dnl Les dures aprs lesquelles les messages derreur sont envoys dnl define(confTO_QUEUEWARN,12h)dnl define(confTO_QUEUEWARN_NORMAL,12h)dnl define(confTO_QUEUEWARN_URGENT,12h)dnl define(confTO_QUEUEWARN_NONURGENT,12h)dnl dnl dnl Nous interdisont certaines commandes, et nous plaons dnl des avertissements de scurit dans certains cas dnl define(confPRIVACY_FLAGS, authwarnings,novrfy,noexpn,noetrn)dnl dnl dnl Emplacement du fichier .forward dnl define(confFORWARD_PATH, $z/.forward.$w:$z/.forward+$h:$z/.forward)dnl dnl dnl La personne qui doit recevoir les messages derreurs dnl define(confCOPY_ERRORS_TO, postmaster)dnl dnl dnl Nombre maximum de destinataires pour un mail dnl define(confMAX_RCPTS_PER_MESSAGE, 20)dnl dnl dnl Nous masquons les noms de machines dnl MASQUERADE_AS(etablissement.org)dnl MASQUERADE_DOMAIN(*.etablissement.org)dnl FEATURE(masquerade_entire_domain)dnl dnl dnl Nous relayons les machines listes dans /etc/mail/access dnl FEATURE(relay_hosts_only)dnl dnl dnl Nous envoyons les mails considrs comme locaux notre dnl serveur principal dnl define(LOCAL_RELAY,esmtp:[10.0.1.1])dnl dnl dnl Nous dfinissons une machine qui envoyer tous les mails dnl define(MAIL_HUB,esmtp:[10.0.1.1])dnl dnl

231

10

Conguration des machines clientes

dnl Nous dfinissons quelle machine doit recevoir le courrier dnl du domaine dnl define(SMART_HOST,esmtp:[10.0.1.1])dnl dnl Noubliez pas de remplacer client1.etablissement.org par le nom de la machine concerne. Compilez le chier avec la commande : m4 sendmail.mc > /etc/mail/sendmail.cf Ici aussi, vous aurez besoin des deux chiers no_default_msa.m4 et dnsbl.m4 prsents sur le CDROM. Copiez-les dans le sous-rpertoire feature. Ces chiers ne sont normalement pas ncessaires pour une version de sendmail suprieure ou gale 8.10.x. Puis sauvegardez le chier /etc/mail/sendmail.cf et copiez le nouveau sendmail.cf dans le rpertoire /etc/mail. Cette conguration a lavantage de convenir toutes les situations, ou presque. Que la machine soit accessible ou non de lextrieur (si vous disposez de sufsament dadresses IP publiques, ne vous privez pas), le routage du mail se fera de la mme faon, en toute scurit. Pour des machines non accessibles de lextrieur, on peut utiliser la fonction nullclient de sendmail. La machine se comporte alors comme un relai ouvert tous les vents, ce qui est dangereux si la machine est accessible autrement que par un rseau local.

10.4.2

/etc/mail/access

Comme tout laccoutume, ce chier dnit les droits daccs de certains sites. Ici, nous le renseignons comme ceci : *.etablissement.org RELAY Noux compilons le chier : makemap hash /etc/mail/access.db < /etc/mail/access

10.4.3

/etc/mail/aliases

Ce chier contient les alias. Il nest pas utile de sen soucier ici, tant donn que tout mail, mme local, sera renvoy sur notre serveur principal. Il serait mme dangereux de mettre en place des alias, car ceux-ci ne seraient pas respects. Nous utiliserons donc le chier de base : # # # #

@(#)aliases

8.2 (Berkeley) 3/5/94

Aliases in this file will NOT be expanded in the header from

232

10 # # # # # #

Conguration des machines clientes

Mail, but WILL be visible over networks or from /bin/mail. >>>>>>>>>> >> NOTE >> >>>>>>>>>> The program "newaliases" must be run after this file is updated for any changes to show through to sendmail.

# Basic system aliases -- these MUST be present. MAILER-DAEMON: postmaster postmaster: root # General redirections for pseudo accounts. bin: root daemon: root games: root ingres: root nobody: root system: root toor: root uucp: root # Well-known aliases. manager: root dumper: root operator: root abuse: root # trap decode to catch security attacks decode: root Enregistrez le chier et lancez la commande : newaliases Sendmail a rgnr les aliases.

10.4.4

/etc/mail/domaintable

Ici non plus, nous ne servirons pas de ce chier. Nous crons donc un chier vide et le compilons : touch /etc/mail/domaintable makemap hash /etc/mail/domaintable.db < /etc/mail/domaintable

10.4.5

/etc/mail/genericstable

Nous ne nous servons pas de ce chier. Nous crons un chier vide et le compilons :

233

10

Conguration des machines clientes

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

10.4.6

/etc/mail/local-host-names

Ce chier contient les diffrents noms sous lesquels la machine est connue. Sendmail sen sert pour dterminer sil doit ou non accepter un mail. Nous le renseignons comme ceci : client1.etablissement.org Nous ne compilons pas ce chier, Sendmail y accde directement.

10.4.7

/etc/mail/mailertable

Sur cette machine, nous nous servons de ce chier an de rediriger les mails vers notre serveur principal. Nous renseignons le chier comme ceci : * esmtp:[xxx.xxx.xxx.xxx] O xxx.xxx.xxx.xxx est remplacer par ladresse IP du serveur principal, ici fremen.

10.4.8

/etc/mail/relay-domains

Nous nutilisons pas ce chier. Nous crons un chier vide : touch /etc/mail/relay-domains

10.4.9

/etc/mail/sendmail.ct

Ce chier contient les logins des personnes considres comme sres. Sendmail ne gnrera pas de message davertissement si ces personnes mentionnent une adresse diffrente de leur adresse login@etablissement.org. Nous y mettons bien sr root : root

10.4.10 /etc/mail/service.switch
Ce chier indique Sendmail de quels moyens il dispose pour se renseigner sur un utilisateur, un nom de machine ou sur ses aliases :

234

10

Conguration des machines clientes

# /etc/mail/service.switch # # This is the format that sendmail expects (no colon after the service) # passwd files hosts files dns aliases files Ce chier ne se compile pas.

10.4.11 /etc/mail/virtusertable
Nous nutilisons pas ce chier. Nous crons un chier vide et le compilons : touch /etc/mail/virtusertable makemap hash /etc/mail/virtusertable.db < /etc/mail/virtusertable

10.4.12 Redmarrage de Sendmail


Nous pouvons maintenant redmarrer Sendmail : /etc/init.d/sendmail start Si Sendmail ne redmarre pas, il y a une erreur quelque part. Il devrait vous lindiquer. Vriez 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 n la connexion avec Sendmail par la commande quit.

10.5

NFS

Nous allons maintenant nous occuper du client NFS, an que les utilisateurs puissent accder leurs rpertoires personnels. Nous arrtons le service nfs-common, an de procder la conguration : /etc/init.d/nfs-common stop

10.5.1

/etc/fstab

Pour que le systme monte tout seul le volume NFS au dmarrage, nous devons ajouter une ligne notre chier /etc/fstab. Voici ce que nous obtenons :

235

10

Conguration 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 0 proc /proc proc defaults 0 0 # Uncomment the following entry if you use a 2.2.x or newer kernel for # UNIX98-style pty handling none /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 2 fremen:/home /home nfs rsize=1024,wsize=1024 0 0

10.5.2

Redmarrage de nfs-common

Nous pouvons redmarrer nfs-common : /etc/init.d/nfs-common start

10.5.3

Montage manuel des volumes NFS

Vriez que le volume NFS soit bien accessible dans le rpertoire /home. Sil ne ltait 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 linstallation du paquetage, il vous est demand dentrer le domaine NIS. Saisissez etablissement.org. Nous commenons par stopper le service NIS : /etc/init.d/nis stop

10.6.1

/etc/defaultdomain

Dans ce chier est congur le nom de domaine NIS que nous utilisons : etablissement.org

10.6.2

/etc/init.d/nis

Nous devons indiquer au script de dmarrage que seul le client NIS est utilis ici. Il faut diter le script :

236

10

Conguration des machines clientes

#!/bin/sh # #/etc/init.d/nis Start NIS (formerly YP) daemons. # # # Set to "false", "slave" or "master". NISSERVER=false NET="/usr/sbin" test -f $NET/ypbind -a -f /etc/defaultdomain || exit 0 [...]

10.6.3

/etc/yp.conf

Dans ce chier, nous indiquons au client NIS qui est le serveur. Cela vite que le client parcours le rseau la recherche de son serveur : # # yp.conf # # # # #

Configuration file for the ypbind process. You can define NIS servers manually here if they cant 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 modier le chier /etc/passwd : root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh sys:x:3:3:sys:/dev:/bin/sh sync:x:4:100:sync:/bin:/bin/sync games:x:5:100:games:/usr/games:/bin/sh man:x:6:100:man:/var/cache/man:/bin/sh lp:x:7:7:lp:/var/spool/lpd:/bin/sh mail:x:8:8:mail:/var/spool/mail:/bin/sh news:x:9:9:news:/var/spool/news:/bin/sh uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh proxy:x:13:13:proxy:/bin:/bin/sh

237

10

Conguration des machines clientes

majordom:x:30:31:Majordomo:/usr/lib/majordomo:/bin/sh postgres:x:31:32:postgres:/var/lib/postgres:/bin/sh www-data:x:33:33:www-data:/var/www:/bin/sh backup:x:34:34:backup:/var/backups:/bin/sh msql:x:36:36:Mini SQL Database Manager:/var/lib/msql:/bin/sh operator:x:37:37:Operator:/var:/bin/sh list:x:38:38:SmartList:/var/list:/bin/sh irc:x:39:39:ircd:/var:/bin/sh gnats:x:41:41:Gnats Bug-Reporting System:/var/lib/gnats/gnats-db:/bin/sh nobody:x:65534:65534:nobody:/home:/bin/sh telnetd:x:101:101::/usr/lib/telnetd:/bin/false identd:x:100:65534::/var/run/identd:/bin/false +::::::: julien:x:1000:1000:Julien BLACHE,,,:/home/julien:/bin/bash autre: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 ajoutons donc la ligne suivante : +::::::: Pour une raison ou pour une autre, il se pourrait que vous souhaitiez interdire laccs dune ou plusieurs machines un utilisateur. Cela peut tre ralis de la manire suivante ; ajoutez cette ligne pour interdire lutilisateur julien douvrir une session : -julien::::::: L encore, le nombre de signes : est trs important. Notez galement quil ny a pas despace entre les :.

10.6.5

/etc/group

Nous devons faire le mme genre de modication dans ce chier : 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 mail:x:8: news:x:9: uucp:x:10: proxy:x:13: kmem:x:15:

238

10 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:majordom postgres: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:telnetd video:x:44: staff:x:50: games:x:60: users:x:100: nogroup:x:65534: telnetd:x:101: +::: julien:x:1000: autre:x:1001:

Conguration des machines clientes

Attention, ici aussi, le nombre de : est important ! Remarquez quil ny a pas despace entre les :.

10.6.6

Redmarrage de NIS

Nous pouvons maintenant redmarrer NIS : /etc/init.d/nis start

10.7

Conguration des imprimantes

Ici, nous navons besoin ni de GhostScript, ni dapslter. Le daemon lpd se charge de tout, et cest le serveur dimpression qui fera les ventuelles transformations ncessaires pour limpression.

239

10

Conguration des machines clientes

Votre chier /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 imprimantes est le serveur daccs (sardaukar dans notre exemple), et les queues distantes sont respectivement lplaser et lpcouleur.

10.8

NTP

Comme nos deux serveurs, les postes clients se maintiendront lheure grce NTP. Lors de linstallation du paquetage ntp, vous devrez spcier un serveur NTP. Vous trouverez une liste des serveurs franais ladresse http://www.cru.fr/NTP/serveurs\protect\ T1\textunderscorefrancais.html. Pour ne pas encombrer les serveurs primaires, utilisez sil vous plat 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

10

Conguration des machines clientes

10.9

SNMPD, surveillance rseau

L encore, le chier de conguration est le mme que prcdemment. Une fois plac dans /etc/snmp/, redmarrez snmpd : /etc/init.d/snmpd stop /etc/init.d/snmpd start Puis vous pourrez dcommenter les entres correspondant aux clients dans le chier /etc/mrtg.cfg sur fremen, au fur et mesure que ceux-ci sont congurs.

241

11 Dtails concernant les postes clients


11.1 Conguration des navigateurs Internet

Puisque nous utilisons un proxy, les utilisateurs devront congurer leurs navigateurs Web de telle sorte quils utilisent ce proxy. Sans cela, ils ne pourront pas accder au Web. Voici les donnes utiles pour faire ceci : serveur proxy : sardaukar.etablissement.org ou 10.0.1.2 port : 8080 Le serveur proxy nest disponible que pour le protocole HTTP. Pour les autres protocoles, la connexion se fait directement, au travers du masquerading.

11.2

Protocole FTP

Du fait du masquerading opr par le serveur daccs, les connexions FTP doivent imprativement se faire en mode passif.

11.3

Modules spciques

Il existe des modules spciques concernant le masquage dadresses, qui sappliquent entre autres aux protocoles FTP et ICQ. Nhsitez pas les installer sur le serveur daccs. Ils sont disponibles lors de linstallation des pilotes, pendant la phase dinstallation de Debian GNU/Linux.

11.4

Utilisation des imprimantes distantes

Pour utiliser les imprimantes distantes, les utilisateurs doivent spcier limprimante quils veulent utiliser lors de limpression. Ceci est possible en utilisant la bonne option de lutilitaire lpr. Exemples : pour imprimer sur limprimante laser : lpr -Prplaser pour imprimer sur limprimante jet dencre couleur : lpr -Prpcouleur

242

12 Politique dadministration
Je pose ci-dessous les bases de la politique dadministration quil convient dadopter. Bien entendu, chaque administrateur est totalement libre dadopter la politique quil souhaite.

12.1

Utilisation des machines

Les machines devraient tre utilises le plus possible pour des travaux scolaires. Nanmoins, il ny pas de raisons de rprimer ou de sopposer leur utilisation dans un autre but, tant que celui-ci reste lgal et en accord avec le rglement intrieur de ltablissement. Toutefois, il serait bon que les lves dsirant utiliser ces machines pour un travail scolaire aient la priorit, ou, tout au moins, soient favoriss.

12.2

Utilisation de laccs Internet

Je pense quil ne faut pas imposer un usage exclusif de cet accs, comme cela est parfois le cas sur les accs fournis par lducation Nationale. Il faut bien entendu rester en accord avec la loi sur lusage qui est fait de cet accs. Nous avons pris des dispositions pour cela (mise en place du proxy Squid et du redirecteur SquidGuard assorti de listes noires) ; toutefois, rien ne garantit que tout site illgal 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 dlicate de ladministration. En effet, il vous faut maintenant lire srieusement votre courrier, cest dire le courrier adress root, aux adresses abuse@etablissement.org, postmaster@etablissement.org, entre autres. Cest ces adresses que vous seront envoyes les plaintes concernant les ventuels abus commis par vos utilisateurs avec leurs adresses e-mail. Cest alors vous de juger de la gravit de labus. Dans tous les cas, vous devrez rpondre la personne qui vous aura prvenu. En cas de spam, vous devrez prendre des mesures immdiates ; personnellement, javertirais lutilisateur concern par mail, et ventuellement en personne. Je le ferais une fois, puis une deuxime. la troisime plainte, je fermerais purement et simplement le compte e-mail de lutilisateur. Il est indispensable de prendre des mesures, car, si vous ne le faites pas, votre domaine sera rpertori comme expditeur de spam, et vous risquez dtre ltr sur un bon nombre de serveurs.

243

12

Politique dadministration

Quelque soit votre politique cet gard, vous devrez en assumer les consquences. Dans le premier cas, elles seront minimes, cest--dire que seul lutilisateur concern vous demandera des comptes. Dans le deuxime cas, celui o vous ne ragiriez pas aux plaintes, vous devrez affronter les questions de plusieurs utilisateurs vous demandant pourquoi leurs courriers ne sont pas arrivs destination.

12.4 Utilisation des newsgroups


L aussi, la question est dlicate. Vous devrez lire attentivement votre courrier, car vous recevrez les plaintes aux adresses news@etablissement.org, newsmaster@etablissement.org, usenet@etablissement.org ou encore abuse@etablissement.org. Dans tous les cas, rpondez aux personnes qui vous prviennent des abus. Ici, vous ne pouvez pas interdire laccs aux newsgroups pour un utilisateur donn. Cest une limitation de INN 2.2.2 qui ne peut pas se baser sur les chiers systmes pour lauthentication des utilisateurs. Avertissez donc lutilisateur incrimin, et soyez ferme. Ensuite, vous navez qu esprer quil comprenne. Les risques sont ici peu prs les mmes, savoir un ltrage de tout ce qui provient de votre serveur de news. La seule diffrence est que vos utilisateurs risquent de ne pas se rendre compte quils sont ltrs ailleurs, tandis que dans le cas du mail, ils le sauraient assez rapidement. Le plus gros risque ici est que votre feed refuse de continuer laventure avec vous. Cela peut se faire du jour au lendemain, sans explications. Rappelez-vous quil ne vous doit rien, et que vous lavez sollicit.

12.5 Utilisation de lespace Web personnel


Concernant lespace Web personnel, vous recevrez les ventuelles plaintes aux adresses webmaster@etablissement.org ou root@etablissement.org. Tentez de rgler au mieux les problmes ; en cas de diffrend entre deux personnes, essayez dinuer sur votre utilisateur ; en cas de contenu clairement illgal, ragissez de suite par leffacement du contenu en question (ou le dplacement temporaire pour ne pas perdre les donnes). Rappelez-vous que vous tes ladministrateur : vous avez les pleins pouvoirs sur les chiers stocks sur les machines, mais surtout, vous tes responsables de ces chiers au regard de la loi.

12.6 Quotas disque


Il se peut que, pour une raison ou une autre, lun ou lautre de vos utilisateurs vous demande un quota disque plus lev. Pourquoi pas. Dans le cas o vous seriez amen crer un groupe pour quelques utilisateurs, vous devrez trs certainement revoir leurs quotas sensiblement la hausse.

244

12

Politique dadministration

Il ny a pas vraiment de raisons de refuser un ajustement des quotas pour lune ou lautre personne.

12.7 Matriel
En cas de dtrioration du matriel, ou de vol, je ne peux que laisser le champ libre ladministrateur et ltablissement concern.

245

13 Ladministration en pratique
Dans les sections suivantes, je donne dans les grandes lignes les manipulations raliser pour mener bien les tches dadministration les plus simples. Rappelez-vous que le postulat de dpart est que ladministrateur soit un tant soit peu familier avec ladministration UNIX. La plupart des manipulations sont dcrites dans les sections prcdentes de ce dossier.

13.1

Ajout dun utilisateur

Il y a deux cas diffrents lors de lajout dun utilisateur : lutilsateur est un lve, ou un professeur. Pour ajouter un utilisateur, voici les tapes suivre : cration du compte (et attribution dun premier mot de passe) par la commande : adduser --home /home/eleves/<login> <login> (pour un lve) adduser --home /home/profs/<login> <login> (pour un professeur) ajout de lutilisateur sur le serveur Samba mise jour des maps NIS ajout dun quota disque pour lutilisateur Concernant les maps NIS, vous pouvez soit les rgnrer manuellement, soit laisser cron sen charger pendant la nuit. Bien entendu, un login est unique et ne peut tre utilis par deux personnes.

13.2 Suppression dun utilisateur


Pour supprimer un utilisateur : suppression du compte (et du rpertoire personnel, ainsi que du spool de mail) : userdel -r <login> suppression de lutilisateur sur le serveur Samba mise jour des maps NIS suppression du quota disque pour lutilisateur

13.3 Les groupes


Les groupes sont utiles lorsque plusieurs utilisateurs travaillent sur un mme projet, par exemple. Dans ce cas, vous pouvez leur crer un groupe, ainsi quun rpertoire commun (sous /home/groups/* par exemple). Les membres du groupe pourront alors accder librement ce rpertoire et aux chiers quil contient.

246

13

Ladministration en pratique

13.3.1

Cration dun groupe

Pour crer un nouveau groupe : cration du groupe par la commande : addgroup <groupe> mise jour des maps NIS cration dun rpertoire commun, possd par le groupe et lun des utilisateurs de ce groupe mise en place dun quota disque portant sur le rpertoire ventuellement, mise en place dun alias mail pointant vers tous les utilisateurs du groupe : groupe1: utilisateur1,utilisateur2,utilisateur3

ajout des utilisateurs dans le groupe

13.3.2

Ajout dutilisateurs dans un groupe

Pour ajouter un utilisateur dans un groupe : adduser <login> <groupe> Puis mettez jour les maps NIS.

13.3.3

Suppression dun utilisateur dans un groupe

ditez le chier /etc/group, et effacez lutilisateur dans la liste correspondant au groupe voulu. Puis mettez jour les maps NIS.

13.3.4

Suppression dun groupe

Pour supprimer un groupe : ditez le chier /etc/group, et supprimez lentre correspondant au groupe voulu mettez jour les maps NIS supprimez les quotas portant sur le rpertoire assign au groupe supprimez le rpertoire assign au groupe

13.4

Gestion des programmes

Si vous tes amenez installer des programmes supplmentaires sur les postes clients, prenez garde les installer sur tous les postes. De mme si vous en supprimez. Vous disposez de deux mthodes pour installer ou enlever des logiciels : partir des sources, comme expliqu plus haut, auquel cas il vous faudra effacer la main les chiers dudit logiciel pour le dsinstaller partir dun paquetage Debian

247

13

Ladministration en pratique

13.4.1

Installation dun paquetage Debian

Il vous suft dutiliser le logiciel apt-get, congur soit pour rcuprer le paquetage sur un serveur 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 dinsrer tel ou tel CD-ROM de Debian GNU/Linux 2.2 Potato, puis installera le paquetage. Vous pouvez galement utiliser dpkg sur un chier prsent localement : dpkg -i <nom du paquetage>

13.4.2

Dsinstallation dun paquetage Debian

Apt-get est le moyen le plus simple : apt-get remove <nom du paquetage>

13.4.3

Dsinstallation dun paquetage Debian et de ses chiers de conguration

Les chiers de conguration dun logiciel ont un statut part dans les paquetages Debian. Lors des mises jour, ces chiers ne sont pas remplacs par ceux prsents dans le paquetage, an de prserver votre conguration. Lorsque vous dsinstallez un paquetage, vous pouvez dcider de laisser ces chiers leur place, ou de les enlever. Pour dsinstaller un paquetage ainsi que ses chiers de conguration, utilisez loption purge dapt-get : apt-get remove --purge <nom du paquetage>

248

14 Captures dcran

249

14

Captures dcran

F IG . 14.1 GNOME 1.2. On remarque Gnumeric intgrant plusieurs objets Bonobo, ainsi que The GIMP et un diteur dicnes. Au-dessus, un mulateur de terminal avec fond transparent. Le gestionnaire de fentres utilis est SawFish. Lutilisateur a appliqu un thme aux objets GTK+ ainsi quau gestionnaire de fentres.

F IG . 14.2 Netscape 4.76 afchant le site http ://linuxfr.org/.

250

14

Captures dcran

F IG . 14.3 Mozilla M18 afchant le site http ://linuxfr.org/.

F IG . 14.4 Le logiciel IglooFTP, connect un serveur.

251

14

Captures dcran

F IG . 14.5 La fentre principale du logiciel Balsa.

F IG . 14.6 Lecture dun groupe de discussion avec Gnus. Ici, le groupe comp.text.tex.

252

14

Captures dcran

F IG . 14.7 Lecture du courrier avec Mutt. La barre de menu ne fait pas partie de mutt, mais dEterm, un mulateur de terminal.

F IG . 14.8 Lecture dun groupe de discussion avec Pan, fortement inspir du logiciel Fort Agent sous MS-Windows.

253

14

Captures dcran

F IG . 14.9 Lecture des groupes de discussion avec SLRN, dans un mulateur de terminal RXVT.

F IG . 14.10 LYX, composition de la section 5.2 de ce document. Afchage du chier PostScript contenant le diagramme du rseau, on aperoit galement une rfrence croise vers une section du document, ainsi quune tiquette permettant de se rfrer ce passage par une rfrence croise.

254

14

Captures dcran

F IG . 14.11 TiLP en action. gauche, liste des chiers prsents sur la calculatrice, droite liste des chiers dans le rpertoire courant.

F IG . 14.12 RasMol afchant une molcule relativement complexe. Le rsultat est vraiment bon.

255

14

Captures dcran

F IG . 14.13 Dia en pleine action.

256

15 Documentation et sources dinformation


Par thmes, les diffrentes sources de documentations et dinformations utilises pour la rdaction de ce dossier, ainsi que quelques documentations plus pousses. La plupart de ces documentations sont en anglais, soit par manque de traduction franaise, soit pour cause de traduction obsolte ou imprcise. Les diffrents HOWTO1 cits ici se trouvent dans divers formats en version anglaise et franaise sur le CD-ROM joint. Les RFC2 sont des documents dnissant un standard, un protocole, ou nimporte quoi3 ayant attrait Internet. Vous pouvez les consulter sur le site http://www.faqs.org ou http://www.rfc-editor.org Ces documents sont uniquement disponibles en langue anglaise. La mention documentation de renvoie aux diverses pages de man et documentations Info livres 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 dinstallation 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 franaise)

15.2 Debian GNU/Linux


Learning Debian GNU/Linux, aux ditions OReilly

15.3

Paquetages Debian

La plupart des documentations sont disponibles uniquement en anglais. Le Guide du Nouveau Responsable Debian The Debian Developers Reference The Debian Policy Manual ainsi que les autres Policy Manuals The Debian Packaging Manual
1 2

Documentations spciques GNU/Linux dcrivant pas pas la mise en place dune fonctionnalit. Request For Comment. 3 Mais alors, vraiment nimporte quoi, telle la RFC 2324 qui dnit HTCPCP (HyperText Coffee Pot Control Protocol) ou encore la RFC 1149 (RFC 2549 pour une version amliore) qui encadre la transmission de paquets IP par pigeons voyageurs. . .

257

15

Documentation et sources dinformation

Toutes ces documentations et quelques autres sont disponibles dans les paquetages debianpolicy, 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 Fvrier 1999 DNS & BIND, aux ditions OReilly RFC 952 : DOD Internet Host Table Specications RFC 1034 : Domain Names - Concepts and Facilities RFC 1035 : Domain Names - Implementation and Specications RFC 1101 : DNS Encoding of Network Names and Other Types RFC 1183 : New DNS RR Denitions RFC 1918 : Address Allocation for Private Internets Ainsi que la documentation prsente dans /usr/share/doc/bind.

15.5

Serveur SMTP Sendmail

Sendmail, aux ditions OReilly (aussi appel le Bat Book) Sendmail Desktop Reference, aux ditions OReilly Le site Web http://www.sendmail.org/ Les chiers de /usr/share/doc/sendmail, spcialement le chier cf.README.gz, ainsi que les chiers dexemple 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 : DONT 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 Ofce Protocol - Version 3 Les chiers de /usr/share/doc/qpopper

15.7

NIS

The Linux NIS(YP)/NYS/NIS+ HOWTO, version 1.0 du 9 Mars 1999

258

15

Documentation et sources dinformation

The Debian GNU/Linux NIS HOWTO, prsent dans /usr/share/doc/nis, ainsi que les autres chiers du rpertoire

15.8 Quotas disque


The Linux Quota Mini-HOWTO, version du 8 Aot 1997 Les chiers de /usr/share/doc/quota

15.9 Partage de chiers par NFS


The Linux NFS-HOWTO, version 1.0 du 1er Octobre 1999 Les chiers de /usr/share/doc/nfs-common Les chiers de /usr/share/doc/nfs-kernel-server

15.10

Partage de chiers par Samba

The Linux SMB-HOWTO, version 1.3 du 20 Avril 2000 Using SAMBA, ditions OReilly Les chiers de /usr/share/doc/samba

15.11

Serveur de news INN

La documentation dric JACOBONI, Conguration de INN sous Linux, version 2.6 du 30 Juin 1998 La FAQ INN, disponible sur le site Web http://blank.org/innfaq/ Les chiers 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 hirarchie FR.*.

15.11.1

Filtre PERL pour INN, CleanFeed

La documentation livre avec CleanFeed

15.12

Serveur HTTP Apache

The Apache Server Survival Guide Le chier de conguration par dfaut de Debian GNU/Linux La documentation de /usr/share/doc/apache RFC 2068 : HyperText Transfer Protocol - HTTP/1.1

259

15

Documentation et sources dinformation

15.13

Serveur FTP ProFTPd

Le chier de conguration par dfaut de Debian GNU/Linux Le site Web http://www.proftpd.net/ La documentation de /usr/share/doc/proftpd

15.14

Synchronisation de lheure par NTP

Les chiers de /usr/share/doc/ntp RFC 2030 : Simple Network Time Protocol Version 4 for IPv4, IPv6 and OSI

15.15

Sauvegarde de donnes

La documentation Info de GNU Tar

15.16

Firewalling, remasq

La documentation de lutilitaire IPChains La documentation de remasq Le site Web de remasq : http://northernlights.bizland.com/firewalls.htm

15.17

Serveur proxy Squid

La documentation de Squid, http://www.squid-cache.org/ Les chiers 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 dimpression, lpd

La documentation de lpd Les chiers 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

15

Documentation et sources dinformation

Larticle 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 rseau

TCP/IP, aux ditions OReilly DNS & BIND, aux ditions OReilly Le site http://www.cisco.com Ainsi que divers ouvrages, glns et perdus au l du temps.

15.23

Administration UNIX

Linux in a Nutshell, ditions OReilly Et, l encore, divers autres ouvrages, glns et perdus au l du temps.

15.24

Divers

OpenSources : Voices from the Open Source Revolution, et sa version franaise Tribune Libre, aux ditions OReilly Lhistoire de ce que beaucoup appellent la Rvolution OpenSource, qui mena Richard M . STALLMAN fonder la Free Software Foundation et dmarrer le projet GNU, avec les consquences et la russite que lon connat aujourdhui.

15.25
15.25.1

Autres documentations
Les pages de man

Tous les logiciels cits ci-dessus disposent de pages de man (manuel en ligne), disponible sous tous les systmes UNIX en tapant : man <section> <page> Par exemple, pour la page de man concernant le chier /etc/network/interfaces : man 5 interfaces Le numro de la section est optionnel, il nest ncessaire que sil existe plusieurs pages portant le mme nom dans des sections diffrentes. Pour connatre la rpartition des sections, consultez la page de man du programme man.

261

15

Documentation et sources dinformation

15.25.2

La documentation Info

Certains logiciels, spcialement ceux du projet GNU, disposent de documentation au format Info. Pour y accder : info <section> Par exemple, pour la documentation de GNU Tar : info tar

15.25.3

Les newsgroups

Un remerciement spcial aux habitus de la hirarchie FR.* qui mont permis dapprendre beaucoup de choses. En particulier les forums fr.comp.os.linux.*, fr.comp.mail, fr.usenet.logiciels, fr.comp.os.unix, fr.reseaux.*, et jen oublie.

15.25.4

Les personnes

Un autre remerciement particulier aux habitus des quelques channels que je frquente sur IRCnet, ainsi que OpenProjects.net. Enn, merci Yves POTIN4 pour la lecture des premires versions de ce document et ses avis clairs.

15.25.5

Lexprience

Rien ne remplace lexprience, et je naurais certainement jamais imagin ce projet si je navais pas eu lexprience ncessaire pour le raliser et ladministrer moi-mme. Si je navais pas t fatigu par les plantages incessant de Microsoft Windows, si je navais pas eu loccasion dessayer GNU/Linux, de congurer un serveur SMTP, de monter un serveur de news, et de faire tout un tas dautres choses, tout ceci naurait jamais t possible. Merci donc toutes les personnes qui ont rendu cela possible et qui mont aid, encourag.

15.26

Logithque

Ci-dessous, les adresses des sites Web de la plupart des logiciels cits dans ce document. GNOME http://www.gnome.org/ Enlightenment http://www.enlightenment.org/ AfterStep http://www.afterstep.org/
4

Professeur de philosophie au Lyce Franois Truffaut de Beauvais, Yves POTIN a ralis linstallation de salles informatiques utilisant GNU/Linux durant lanne scolaire 1998/99. Un document disponible sur http:// www.aful.org/education/lycee-beauvais/ rsulte de ces mises en place.

262

15

Documentation et sources dinformation

Window Maker http://www.windowmaker.org/ Sawsh 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/ http://www.littleigloo.org/iglooftp.php3

IglooFTP 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\textasciitilde{}davis/slrn.html

263

15

Documentation et sources dinformation

StarOfce 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 Wget TiLP http://www.lyx.org/ http://www.cg.tuwien.ac.at/\T1\textasciitilde{}prikryl/wget.html http://lpg.ticalc.org/

Bluesh http://bluefish.openoffice.nl/ Screem http://www.screem.org/ Xsky http://www.cse.nd.edu/\T1\textasciitilde{}sgi/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 http://www.mupad.de/

MuPAD

SciLab http://www-rocq.inria.fr/scilab/ GNUplot http://www.gnuplot.vt.edu/

Dia http://www.lysator.liu.se/\T1\textasciitilde{}alla/dia/

264

15

Documentation et sources dinformation

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

16 CD-ROM DemoLinux
Le CD-ROM DemoLinux est un CD-ROM bootable contenant un systme Debian GNU/Linux utilisable sans installation depuis le CD-ROM.

16.1

Utilisation

DemoLinux peut constituer une alternative court terme linstallation dun systme GNU/Linux sur une machine. Lutilisation de DemoLinux requiert une machine possdant au moins 32 Mo de RAM, 64 Mo tant fortement recommands. Vous devrez galement vrier que votre matriel est support, principalement la carte vido. DemoLinux, comme son nom lindique, se veut un outil de dcouverte des systmes GNU/Linux. Je ne peux quencourager le lecteur ne connaissant pas GNU/Linux en faire lexprience par le biais du CD-ROM joint au dossier.

16.2

Documentation

Il est ncessaire de lire la documentation avant dutiliser DemoLinux. La documentation est fournie sur le CD, au format HTML (chier index.html la racine du CD). Je vous conseille de limprimer. Pour plus de renseignements, visitez le site http://www.demolinux.org/.

266

17 Concernant le document
17.1 Priode de rdaction

Ce document a t rdig pour la plus grande partie durant les mois de Juillet et Aot 2000, pour des questions demploi du temps. Le contenu du prsent document se rfre donc aux versions logicielles disponibles cette date.

17.2

Historique

10 aot 2000 : version 1.0, le document est en grande partie termin, ainsi que le CD-ROM. 18 aot 2000 : version 1.1, ajout de la section 17. 15 septembre 2000 : version 1.2, ajout des paragraphes concernant laccs aux ressources physiques, diverses corrections. 29 octobre 2000 : version 1.3, rcriture 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 problmes 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 rseau a t refait avec Dia. Relecture des sections 8 et 9. 21 Novembre 2000 : version 1.6, relecture des sections 10 et 11, modication de la conguration des imprimantes. Lutilitaire printtool semblant quelque peu dcient par les temps qui courent, lutilisation doutils plus performants est ncessaire. 23 Novembre 2000 : relecture des sections 12 14. 27 Dcembre 2000 : version 1.7-bac, relecture des sections 15 et 16, diverses corrections. Mise jour de certaines captures dcran. Ajout des chapitres 17 et 18. 20 Janvier 2001 : version 1.8-bac. Amlioration des congurations dApache, SNMP/MRTG et Samba. 21 Janvier 2001 : version 1.9-bac. Amlioration du rewalling/masquerading, diverses adaptations. 23 Janvier 2001 : version 1.95-bac. Ajout dun mode de rplication des machines clientes. 23 Mars 2001 : Dbut de la dernire relecture. Sections 1 6. 6 Avril 2001 : version 1.99-bac. Fin de la relecture, impression du sommaire et du dossier lui-mme. Le CD-ROM sera nalis et grav au mois de mai. 8 Mai 2001 : version 2.10-bac. Reprise complte du chier TEX produit par LYX. Nom-

267

17

Concernant le document

breuses adaptations pour obtenir un rendu de qualit avec pdfTEX, diverses corrections (notamment structure du CD-ROM). CD-ROM nalis. Le nombre de pages a diminu suite ces modications. Le chier LYX ne correspond plus au prsent document et ne sera pas remis jour ; la version 2.00-bac sera priori rendue car imprime avant. 21 Juin 2001 : nettoyage des sections concernant le Baccalaurat, quelques modications, publication.

17.3

Traduction

Lauteur demande toute personne dsirant effectuer une traduction de ce document de prendre contact avec lui. La traduction est autorise et encourage.

17.4

Mises jour

Quiconque dsire mettre jour ce document est autoris le faire. Lauteur aimerait cependant en tre inform.

17.5

Validit des solutions

Par manque de matriel et de temps, je nai pas t en mesure de tester la majeure partie des congurations proposes dans ce document. Toutefois, elles devraient tre en majorit fonctionnelles.

17.6

Mise en application

Lauteur souhaiterait tre averti au cas o quelquun dciderait de mettre en pratique le contenu de ce document.

268

18 Mentions lgales
18.1 Informations de copyright

Copyright (c) 2000 Julien BLACHE. Lauteur accorde la permission de copier, distribuer et/ou modier ce document conformment aux termes de la GNU Free Documentation License, Version 1.1 telle que publie par la Free Software Foundation ; avec comme Sections Invariantes les sections intitules Avantpropos et Annexe D : dtails concernant le baccalaurat gnral, avec pour Texte de Couverture le titre et le nom exact de lauteur, ainsi que ladresse e-mail de lauteur, et sans Texte de Dernire de Couverture. Une copie de la licence est incluse dans le prsent document la section 18.5. (en page 272) An de rester le plus dle possible lesprit de la licence, et la version anglaise de celle-ci faisant foi en cas de dsaccord, voici le texte original, traduit ci-dessus par lauteur : 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 Foundation ; with the Invariant Sections being Avant-propos and Annexe D : dtails concernant le baccalaurat gnral, with the Front-Cover Texts being the exact title of the document, the name and e-mail address of the author, and with no Back-Cover Texts. A copy of the license is included in the section 18.5. (on page 272)

18.2 Concernant le domaine etablissement.org


Le domaine etablissement.org est pris ici titre dexemple, et uniquement ce titre. Lauteur dclare navoir aucune relation avec le propritaire 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 registered with many different competing registrars. Go to http://www.internic.net for detailed information. Domain Name: ETABLISSEMENT.ORG

269

18

Mentions lgales

Registrar: NETWORK SOLUTIONS, INC. Whois Server: whois.networksolutions.com Referral URL: www.networksolutions.com Name Server: NS1.NBC.NETCOM.CA Name Server: NS2.NBC.NETCOM.CA Name Server: TOR-NS2.NETCOM.CA Updated 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 and Registrars.

Found InterNIC referral to whois.networksolutions.com. The Data in Network Solutions WHOIS database is provided by Network Solutions for information purposes, and to assist persons in obtaining information about or related to a domain name registration record. Network Solutions does not guarantee its accuracy. By submitting a WHOIS query, you agree that you will use this Data only for lawful purposes and that, under no circumstances will you use this Data to: (1) allow, enable, or otherwise support the transmission of mass unsolicited, commercial advertising or solicitations via e-mail (spam); or (2) enable high volume, automated, electronic processes that apply to Network Solutions (or its systems). Network Solutions reserves the right to modify these terms at any time. By submitting this query, you agree to abide by this policy. Registrant: Compucentre (ETABLISSEMENT-DOM) 1 Sunlight Park Rd. 2nd Floor Toronto, Ont. M4M 1B5 CA Domain Name: ETABLISSEMENT.ORG Administrative Contact, Billing Contact: Bradshaw, David (DB16506) ciccti@NETCOM.CA Compucentre 1 Sunlight Park Rd. 2nd Floor Toronto, Ont. M4M 1B5 CA +1 416 788 1300 (FAX) +1 416 778 1777

270

18

Mentions lgales

Technical Contact: AT&T Canada IES (SO69-ORG) AT&T Canada IES 905 King Street West Toronto, Ontario M6K 3G9 CA 416-341-5700 Fax- 416-341-5725

tech@NBC.NETCOM.CA

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 NS2.NBC.NETCOM.CA TOR-NS2.NETCOM.CA 207.181.89.2 207.181.89.3 207.181.101.5

Lauteur certie les informations ci-dessus comme exactes au moment de la requte. Lauteur ne saurait en aucun cas tre tenu responsable des problmes que pourraient causer lutilisation des chiers de conguration pour le serveur DNS Bind tels que fournis dans ce document.

18.3

Marques cites dans ce document

Toutes les marques cites dans ce document sont des marques dposes par leurs propritaires respectifs aux tats-Unis dAmrique et/ou dans dautres pays. Linux est une marque dpose de Linus TORVALDS aux tats-Unis dAmrique et dans dautres pays.

18.4

Scripts fournis dans le document

Les scripts fournis dans ce document sont Copyright (c) 2000 Julien BLACHE, lexception des scripts remasq.up.sh et remasq.down.sh. Ces chiers sont des logiciels libres ; vous pouvez les redistribuer et/ou les modier conformment aux termes de la GNU General Public License telle que publie par la Free Software Foundation ; dans sa version 2. Ces chiers sont distribus dans lespoir quil deviendront utiles, mais SANS AUCUNE GARANTIE, ni implicite, ni explicite concernant leur commercialisation ou leur adaptation dans un but spcique. Reportez-vous la GNU General Public License pour plus de dtails.

271

18

Mentions lgales

Vous devriez avoir reu une copie de la GNU General Public License avec ces programmes ; si ce nest pas le cas, crivez la Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Dans le mme soucis de respect que prcdemment, et car l encore la version anglaise fait foi, voici le texte original traduit ci-dessus par lauteur : Copyright (c) 2000 Julien BLACHE, except the remasq.up.sh and remasq.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 WARRANTY ; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 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 program ; 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 gure la section 18.6, en page 279 du prsent document.

18.5

GNU Free Documentation License

Voici le texte intgral de la GNU Free Documentation License : GNU Free Documentation License Version 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 copies of 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 License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modications made by others. This License is a kind of "copyleft", which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software.

272

18

Mentions lgales

We have designed this License in order to use it for manuals for free software, because free software needs free documentation : a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals ; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference.

1. APPLICABILITY AND DEFINITIONS This License applies to any manual or other work that contains a notice placed by the copyright 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 addressed as "you". A "Modied Version" of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modications and/or translated into another language. A "Secondary Section" is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Documents overall subject (or to related matters) and contains nothing that could fall directly within 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 of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them. The "Invariant Sections" are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. The "Cover Texts" are certain short passages of text that are listed, as Front-Cover Texts or Back-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 a format whose specication is available to the general public, whose contents can be viewed and edited directly and straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent le format whose markup has been designed to thwart or discourage subsequent modication by readers is not Transparent. A copy that is not "Transparent" is called "Opaque". Examples of suitable formats for Transparent copies include plain ASCII without markup, A Texinfo input format, L TEX input format, SGML or XML using a publicly available DTD, and

273

18

Mentions lgales

standard-conforming simple HTML designed for human modication. Opaque formats include PostScript, PDF, proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML produced by some word processors for output purposes only. The "Title Page" means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, "Title Page" means the text near the most prominent appearance of the works 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 noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3. You may also lend copies, under the same conditions stated above, and you may publicly display copies.

3. COPYING IN QUANTITY If you publish printed copies of the Document numbering more than 100, and the Documents 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-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects. If the required texts for either cover are too voluminous to t legibly, you should put the rst ones listed (as many as t reasonably) on the actual cover, and continue the rest onto adjacent pages. 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 containing a complete Transparent copy of the Document, free of added material, which the general

274

18

Mentions lgales

network-using public has access to download anonymously at no charge using public-standard network protocols. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute 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 before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document.

4. MODIFICATIONS You may copy and distribute a Modied Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modied Version under precisely this License, with the Modied Version lling the role of the Document, thus licensing distribution and modication of the Modied Version to whoever possesses a copy of it. In addition, you must do these things in the Modied 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 History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission. B. List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modications in the Modied Version, together with at least ve of the principal authors of the Document (all of its principal authors, if it has less than ve). C. State on the Title page the name of the publisher of the Modied Version, as the publisher. D. Preserve all the copyright notices of the Document. E. Add an appropriate copyright notice for your modications adjacent to the other copyright notices. F. Include, immediately after the copyright notices, a license notice giving the public permission to use the Modied Version under the terms of this License, in the form shown in the Addendum below. G. Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Documents 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 Modied Version as given on the Title Page. If there 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 the Modied Version as stated in the previous sentence. J. Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the "History" section. You may omit a network location for a work that was published at least four years before the Document itself,

275

18

Mentions lgales

or if the original publisher of the version it refers to gives permission. K. In any section entitled "Acknowledgements" or "Dedications", preserve the sections title, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein. L. Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. 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 the Modied Version. N. Do not retitle any existing section as "Endorsements" or to conict in title with any Invariant Section. If the Modied Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modied Versions license notice. These titles must be distinct from any other section titles. You may add a section entitled "Endorsements", provided it contains nothing but endorsements of your Modied Version by various partiesfor example, statements of peer review or that the text has been approved by an organization as the authoritative denition of a standard. You may add a passage of up to ve words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modied Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another ; but you may replace the old one, on explicit permission 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 to use their names for publicity for or to assert or imply endorsement of any Modied Version.

5. COMBINING DOCUMENTS You may combine the Document with other documents released under this License, under the terms dened in section 4 above for modied versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodied, and list them 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 identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if

276

18

Mentions lgales

known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work. In the combination, you must combine any sections entitled "History" in the various original documents, forming one section entitled "History" ; likewise combine any sections entitled "Acknowledgements", and any sections entitled "Dedications". You must delete all sections entitled "Endorsements."

6. COLLECTIONS OF DOCUMENTS You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects. You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow 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 independent documents or works, in or on a volume of a storage or distribution medium, does not as a whole count as a Modied Version of the Document, provided no compilation copyright is claimed for the compilation. Such a compilation is called an "aggregate", and this License does not apply to the other self-contained works thus compiled with the Document, on account of their 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, then if the Document is less than one quarter of the entire aggregate, the Documents Cover Texts may be placed on covers that surround only the Document within the aggregate. Otherwise they must appear on covers around the whole aggregate.

8. TRANSLATION Translation is considered a kind of modication, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License provided that you also include the original English version of this License. In case of a disagreement between the translation and the original English version of this License, the original English version will prevail.

277

18

Mentions lgales

9. TERMINATION You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under this License. Any other attempt to copy, modify, sublicense or distribute the Document 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 their licenses 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 Documentation License from time to time. Such new versions will be similar in spirit to the present 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 species that a particular numbered version of this License "or any later version" applies to it, you have the option of following the terms and conditions either of that specied version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (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 the document 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 document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation ; with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. A copy of the license is included in the section entitled "GNU Free Documentation License". If you have no Invariant Sections, write "with no Invariant Sections" instead of saying which ones 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

18

Mentions lgales

If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software.

18.6 GNU General Public License


Voici le texte intgral de la GNU General Public License : GNU GENERAL PUBLIC LICENSE Version 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 copies of 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 change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free softwareto make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundations software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by 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 Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs ; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for 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, you must give the recipients all the rights that you have. You must make sure that they, too, receive or 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 this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each authors protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modied by someone

279

18

Mentions lgales

else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reect on the original authors reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyones free use or not licensed at all. The precise terms and conditions for copying, distribution and modication follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright 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 work containing the Program or a portion of it, either verbatim or with modications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modication".) Each licensee is addressed as "you". Activities other than copying, distribution and modication are not covered by this License ; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Programs source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty ; keep intact all the notices that refer to this License and to the absence of any warranty ; and give any other recipients of the Program 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 option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modications or work under the terms of Section 1 above, provided that you also meet all of these conditions : a) You must cause the modied les to carry prominent notices stating that you changed the les and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no

280

18

Mentions lgales

charge to all third parties under the terms of this License. c) If the modied program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception : 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 modied work as a whole. If identiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus 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 written entirely by you ; rather, the intent is to exercise the right to control the distribution of derivative or 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 does not 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) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following : a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for 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 complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 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 corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modications

281

18

Mentions lgales

to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface denition les, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which 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 designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program 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 their licenses 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, nothing 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 modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.

282

18

Mentions lgales

It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims ; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system ; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such 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 General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program species a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the 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 distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation ; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

283

18

Mentions lgales

12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER 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 the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source le to most effectively convey the exclusion of warranty ; and each le should have at least the "copyright" line and a pointer to where the full notice is found. <one line to give the programs 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 modify it under the terms of the GNU General Public License as published by the 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 of MERCHANTABILITY or FITNESS FOR A PARTICULAR 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 program ; if not, write to the Free Software Foundation, 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 an interactive mode :

284

18

Mentions lgales

Gnomovision version 69, Copyright (C) 19yy name of author Gnomovision comes with ABSOLUTELY NO WARRANTY ; for details type show w. This is free software, and you are welcome to redistribute it under certain conditions ; type show c for details. The hypothetical commands show w and show c should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than show w and show c ; they could even be mouse-clicks or menu itemswhatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign 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 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License.

285

Вам также может понравиться