53

UnréseauDebianGNU/Linux pouruncentredeformationploug22.free.fr/doc/debian-install-reseaux-potin.pdf · 2005. 10. 12. · Samba),serveurdetemps,sauvegardes(Amandaetpartimage). Pour

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: UnréseauDebianGNU/Linux pouruncentredeformationploug22.free.fr/doc/debian-install-reseaux-potin.pdf · 2005. 10. 12. · Samba),serveurdetemps,sauvegardes(Amandaetpartimage). Pour

Un réseau Debian GNU/Linuxpour un centre de formation

Yves Potin

27 avril 2005

RésuméLe logiciel libre, aujourd'hui au c÷ur de l'actualité de l'informatique, ne peut plus être ignoré des administrateurs

de réseau, en particulier dans des établissements d'enseignement ou de formation d'où sortiront les utilisateurs dedemain, du simple utilisateur à l'ingénieur système. Il incombe en e�et aux responsables informatiques de mettre àdisposition des systèmes d'exploitation libres par respect du pluralisme de l'enseignement comme pour tenir comptedes évolutions à terme du monde de l'entreprise qu'ils peuvent ainsi anticiper et encourager.

Les documentations sur les divers services et systèmes sous GNU/Linux abondent, mais il manque peut être unrésumé de l'ensemble de la mise en place d'un réseau informatique libre dans le cadre d'une structure de formation.

Ce document résume l'installation d'un réseau Debian GNU/Linux complet, des serveurs aux machines clientes,de l'achat du matériel aux derniers ajustements de l'interface graphique et des usages du multimédia. Il ne prétendpas détailler tous les services réseau, mais servir de mémorandum et fournir des �chiers de con�guration pour laplupart d'entre eux. La majeure partie des services d'Internet est présentée sous l'angle d'un réseau local : DNS,courriel, Web, ftp... Certains services sont présentés sous forme de didacticiels progressifs : Amanda, pour les sauve-gardes sur bande, Nut, logiciel de surveillance des onduleurs, et l'utilisation avancée du chi�rage de l'authenti�cationpar ssh.

Un script permet la réplication de contenus sur toutes les machines clientes en une seule ligne de commande,simpli�ant grandement les tâches d'installation et d'administration.

Si cette longue étude de cas est arti�cielle en ce qu'elle commence par les murs d'un local vide et l'argent pouracheter le matériel, et s'achève par un réseau entier de machines homogènes, nous espérons néanmoins qu'elle serautile comme aide mémoire à ceux qui désirent o�rir à leurs étudiants la pratique d'une informatique libérée ducarcan propriétaire qu'ils peuvent ainsi, chacun selon sa mesure, contribuer à faire reculer.

Cette documentation est placée sous Licence Documentaire libre (GNU/FDL)1

Table des matières1 L'équipement matériel 4

1.1 Les serveurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.2 Les machines clientes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.3 Matériel complémentaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2 L'installation des systèmes d'exploitation 62.1 Partitionnement des serveurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.2 Partitionnement d'une station de travail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.3 Conseils généraux pour l'installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.4 Les sources des packages Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.5 Logiciels complémentaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

3 Une session de travail d'un administrateur réseau 9

4 Sécuriser une machine Debian : les bases 10

5 Con�guration et sécurité du routeur 105.1 Sécurité sur le routeur : première étape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115.2 Sécurité sur le routeur : seconde étape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125.3 Fonctionnalités additionnelles du script de �rewall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125.4 Logiciels complémentaires de sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

1http ://www.gnu.org/copyleft/fdl.html

1

Page 2: UnréseauDebianGNU/Linux pouruncentredeformationploug22.free.fr/doc/debian-install-reseaux-potin.pdf · 2005. 10. 12. · Samba),serveurdetemps,sauvegardes(Amandaetpartimage). Pour

6 Premier serveur : les services réseau non authenti�és 136.1 Le DNS : Bind . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136.2 Le DHCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156.3 Apt-Proxy, proxy de packages Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156.4 Squid, Proxy http et ftp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

6.4.1 Squid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176.4.2 SquidGuard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196.4.3 En conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

6.5 Xntpd, serveur de temps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206.6 CUPS, serveur d'impression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

7 Second serveur : l'authenti�cation 217.1 Courrier : SMTP et Pop3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

7.1.1 Post�x : installation et con�guration simple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227.1.2 Sécuriser Post�x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237.1.3 Un serveur de messagerie sur le réseau : envoi et réception . . . . . . . . . . . . . . . . . . . . . 24

7.2 NIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257.3 Samba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267.4 NFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267.5 Web et FTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

7.5.1 Apache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277.5.2 ProFTPd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

8 Services réseau complémentaires 288.1 Nut : gestion des onduleurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

8.1.1 Con�guration de nut en mode maître . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298.1.2 Démarrage du service et test de son bon fonctionnement . . . . . . . . . . . . . . . . . . . . . . 308.1.3 Con�guration d'un client sur le réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

8.2 Amanda : sauvegarde en réseau sur bande . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318.2.1 Con�guration d'une sauvegarde : le serveur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318.2.2 Con�guration d'une sauvegarde : les clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348.2.3 La première sauvegarde et restauration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348.2.4 Paramétrage de la sauvegarde hebdomadaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

8.3 Partimage : sauvegarde des machines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368.4 Webmin, administration simpli�ée et création de comptes . . . . . . . . . . . . . . . . . . . . . . . . . 38

9 L'installation de la première station de travail 399.1 Rappels sur l'installation d'une machine cliente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

9.1.1 Debian Sid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409.1.2 Paramétrage d'un environnement français . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

9.2 Un kernel linux pour machines multimédia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419.3 Intégration de la machine au réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

9.3.1 Clients NIS et NFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419.3.2 Clients LDAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

9.4 Installation d'un environnement graphique et de logiciels divers . . . . . . . . . . . . . . . . . . . . . . 429.5 Les droits sur les périphériques : carte son, webcam, etc... . . . . . . . . . . . . . . . . . . . . . . . . . 449.6 Le problème des logiciels et composants propriétaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

10 Installation automatisée de toutes les autres machines 4410.1 Le principe de la réplication de �chiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4410.2 Ssh en mode agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4510.3 Dupliquer la première machine : adapter le script de réplication - premiers tests . . . . . . . . . . . . . 4710.4 Extraire la liste des logiciels installés et la reproduire . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

2

Page 3: UnréseauDebianGNU/Linux pouruncentredeformationploug22.free.fr/doc/debian-install-reseaux-potin.pdf · 2005. 10. 12. · Samba),serveurdetemps,sauvegardes(Amandaetpartimage). Pour

11 Jouer avec le réseau 4911.1 Déporter l'a�chage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4911.2 Déporter le son . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4911.3 Wims . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4911.4 La di�usion vidéo : vlc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5011.5 Partager un scanner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5011.6 Un cluster de calcul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5111.7 Quelques jeux en réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

12 Remerciements 53

3

Page 4: UnréseauDebianGNU/Linux pouruncentredeformationploug22.free.fr/doc/debian-install-reseaux-potin.pdf · 2005. 10. 12. · Samba),serveurdetemps,sauvegardes(Amandaetpartimage). Pour

1 L'équipement matériel1.1 Les serveurs

Au moins deux ordinateurs serveurs vont faire fonctionner notre centre de formation :Un petit ordinateur servant de pare-feu / routeur pour la gestion de la connexion ADSL de notre centre. Un

Pentium 75 muni de 16 ou mieux 32 Mo de mémoire vive et au moins 600 Mo de disque dur IDE su�t amplementpour du matériel �able, encore en bon état de fonctionnement. On lui adjoindra deux cartes réseau, de préférence PCIet non ISA par souci de simplicité, et un onduleur.

Les � vrais � serveurs seront convenablement dimensionnés tant en mémoire qu'en capacité de disque SCSI. Si lebudget le permet, on choisira deux serveurs en con�guration en RAID 5, au moins pour le serveur qui va héberger lesdonnées. Les serveurs récents sont souvent munis d'un Gigaoctet de mémoire vive, et de disques de large capacité.

Un serveur hébergera les données de chacun et les services demandant authenti�cation : NIS (ou LDAP), NFS,Samba, serveur SMTP, serveur POP, ainsi qu'un serveur Web et un serveur FTP. Dans notre cas, deux disques de70 Go, un pour les formateurs, un pour les données des stagiaires, su�sent amplement. L'autre serveur hébergera uncertain nombre de services réseau sans authenti�cation : DHCP, DNS, Proxy (Web et apt), impression (via CUPS etSamba), serveur de temps, sauvegardes (Amanda et partimage).

Pour les sauvegardes, on prévoira beaucoup d'espace disque pour les images des stations. Pour les données, onadjoindra un lecteur DAT externe qui pourra servir ainsi à d'autres usages comme l'enregistrement numérique deproductions multimédia.

Ce matériel sera placé dans un local séparé des salles de formation, fermant à clef et normalement aéré. Tous leséléments actifs (switchs, routeurs, modems mais aussi les écrans et le commutateur écran /clavier partagé entre lesserveurs) seront ondulés au moyen d'une prise en kit fournie. Il s'agit d'une prise à l'apparence peu habituelle livréeavec chaque onduleur du marché. Pour l'utiliser, on coupera la prise mâle d'une multiprise ordinaire dont on relierales �ls à la prise en kit ; on peut alors brancher cette multiprise sur l'onduleur. Ceci est essentiel dès lors que :

� Tout le matériel du local serveur doit être ondulé pour ne pas lui faire subir de violentes coupures de courant etmaintenir la disponibilité de fonctionnement.

� S'il y a coupure de courant, le switch qui relie plusieurs ordinateurs partageant le même onduleur doit continuerà être alimenté, sinon le contrôle par réseau ne fonctionnera plus, occasionnant la chute des serveurs esclaves quiauraient pu continuer à fonctionner pendant une coupure courte.

La con�guration du logiciel de surveillance d'onduleur Nut est décrite dans la section 8.1. De nombreux testsaboutiront à un fonctionnement normal en cas de coupure courte ; on obtiendra une chute et remontée normale desserveurs en cas de coupure longue et rétablissement du courant. Fréquemment, il faudra déclarer dans le BIOS desordinateurs le comportement à adopter en cas de retour du secteur, qui n'est souvent pas par défaut le redémarragepourtant requis. On doit pouvoir l'âme tranquille débrancher l'alimentation générale du secteur et observer toutl'équipement continuer à fonctionner normalement avec un message d'alerte dans les logs de chaque serveur (et sur lesconsoles ouvertes) avertissant que l'onduleur est sur batterie.

Dans la mesure du possible, compte tenu de l'évolution du matériel dont seront équipés demain par défaut lesordinateurs, on choisira des switchs embarquant au minimum un port au Gigabit. Les usages d'applications multimédiamodernes, en particulier en vidéo, rendront bientôt un tel débit non plus confortable, mais nécessaire.

Règles élémentaires de sécurité : tous les ordinateurs du centre de formation, à commencer par les serveurs, serontverouillés par mot de passe dans le BIOS et il ne sera pas possible d'amorcer les ordinateurs sur autre chose quele disque dur une fois le système installé. Les cassettes DAT des sauvegardes seront rangées dans un autre local enprévision d'une détérioration des serveurs (incendie, inondation...). La sécurité informatique comporte une limite : elleest inexistante dès lors qu'il y a accès physique au matériel, mais on peut tout de même prendre quelques précautions.

1.2 Les machines clientesL'idéal pour la maintenance est de disposer de machines strictement homogènes, mais il est clair que cette homo-

généité n'est simple ni à obtenir ni à conserver dans le temps.Quand à l'achat de matériel, une règle simple s'impose qui doit guider tout choix : se renseigner au préalable sur

la compatibilité Linux de tout composant en identi�ant très précisément celui ci. Un devis très détaillé demandéau fournisseur doit permettre de taper le nom de chaque composant et périphérique, à commencer par la carte mère,dans un moteur de recherche pour étudier les problèmes qu'ont pu rencontrer les utilisateurs. Moins on parle d'uncertain matériel, mieux il est supporté... Le matériel de marque SiS pose les plus grands problèmes de compatibilité,outre ses performances relativement douteuses quel que soit le système d'exploitation.

Une station de travail aujourd'hui requiert le plus de mémoire vive possible, 512 Mo ne coutant pas beaucoupplus cher que 256 Mo. Pour des applications particulièrement gourmandes en ressources, en particulier l'usage desynthétiseurs virtuels ou de logiciels de montage vidéo (comme Cinelerra, les auteurs recommandant une machine

4

Page 5: UnréseauDebianGNU/Linux pouruncentredeformationploug22.free.fr/doc/debian-install-reseaux-potin.pdf · 2005. 10. 12. · Samba),serveurdetemps,sauvegardes(Amandaetpartimage). Pour

bi processeur), on prévoira 1 Go de RAM. Il est faux de croire que les environnements graphiques modernes sousGNU/Linux sont moins gourmands en ressource que les environnements propriétaires. Un système rapide, agréable àutiliser, qui fasse fonctionner en même temps de nombreux logiciels et environnements de bureau récents requiert unemachine puissante.

Les cartes vidéo sont quelque peu di�ciles à choisir puisque les principaux constructeurs ne livrent plus entièrementles spéci�cations de leur matériel : il est donc impossible de les exploiter entièrement avec des pilotes libres. Toutefois,le problème ne se pose qu'avec les applications 3D, principalement les jeux, encore relativement rares et peu pertinentsdans un contexte éducatif ou de formation, à l'exception notable du logiciel Celestia2. Les cartes graphiques duconstructeur ATI, modèles Radeon jusque 9300, fonctionnent très bien, y compris en 3D, avec les pilotes libres standardsans téléchargement de driver, compilation de modules, etc... Il n'en va pas de même des cartes de type GForce deNvidia. En�n pour le pur travail en 2D, les cartes du constructeur Matrox restent une référence de qualité, en particulierpour travailler sur plusieurs écrans.

L'environnement graphique X Window est d'autant plus confortable et agréable à l'usage que la résolution del'écran est grande, 1280x1024 constituant un strict minimum. On appréciera de travailler en 1600x1200 avec de nom-breuses applications ouvertes à l'écran, ce qui est normal avec un système d'exploitation de type Unix pleinementmultitâches. Aussi, des écrans CRT de grandes dimensions (19 pouces ou plus) seront préférés à des écrans TFT dansla limite du même budget. Ceci sera encore plus vrai pour les postes des formateurs dont l'a�chage sera redirigé survidéoprojecteur : si l'on doit montrer des manipulations en ligne de commande avec des stagiaires assis un peu loinde l'écran, grossir considérablement la police de caractères, et donc la taille du terminal, peut rendre une résolution1280x1024 di�cilement utilisable.

1.3 Matériel complémentairePour se connecter à Internet par l'ADSL, tout modem Ethernet est parfait, aucun modem USB ne convient. Le

�rewall / routeur que nous préconisons permet de se passer de routeur dédié, intégré ou non au modem.Les imprimantes seront simples à choisir : un modèle PostScript réseau ne demandera aucun pilote d'impression

particulier, fonctionnera dans tous les cas de �gure avec n'importe quel système d'exploitation et donnera toutesatisfaction pendant de longues années. Une imprimante jet d'encre couleur de bonne qualité sera plus di�cile àchoisir, on se demandera en premier lieu si les stagiaires ont réellement besoin de ce type d'impression, eu égardau coût des consommables. Le site linuxprinting.org3 recense tous les problèmes de compatibilité matérielle (trèsimportante base de données d'imprimantes).

Les scanners peuvent poser bien plus de problèmes de compatibilité que les imprimantes, on identi�era trèsexactement le matériel avant tout achat. Le logiciel standard s'appelle Sane4, et dispose d'une interface graphiqueuniforme pour tous les scanners, un avantage par rapport à la diversité de logiciels de pilotage propriétaires quiimposent d'utiliser une interface di�érente par type de scanner. Le site mentionné ci dessus intègre une très importantebase de données qui expose le degré de compatibilité de la plupart des matériels connus, classés par fabricants ou parpilote. D'une manière générale, un scanner véritablement SCSI (c'est à dire sans carte propriétaire mal identi�able)fonctionnera partout sans problème, mais ce type de matériel devient rare. Un très grand nombre de scanners USB sontcompatibles, on sera donc très circonspect quand au matériel imposant des manipulations complexes et hasardeusesdont on peut se dispenser aujourd'hui.

Les cartes sons s'organisent autour de � standards � industriels qui correspondent dans la réalité à des chipsetsfort di�érents. Néanmoins les cartes normalisés AC 97 sont aujourd'hui les plus répandues et fonctionnent en généralde manière satisfaisante, mais on ne cherchera pas autre chose avec ce type de matériel que l'écoute de CDs audioou �chiers OGG Vorbis ou mp3 sur des enceintes bas de gamme. Pour un véritable travail multimédia, on s'orienteravers un matériel de bonne qualité voire professionnel, la marque RME constituant une référence. Cette fois, le projetALSA5 (Advanced Linux Sound Architecture) fait autorité ; le site intègre une base de données des cartes son qui tendà l'exhaustivité. Une section entière6 de notre site est consacrée aux logiciels de musique et audio sous GNU/Linux,qui sont pléthoriques.

Les appareils photos numériques sont, eux, encore loin de présenter tous le même degré de compatibilité, enparticulier ceux de marque Canon qui, quelles que soient les qualités de leurs optiques et boîtiers, embarquent unmatériel aux spéci�cations très peu ouvertes. Les appareils récents fonctionnent toutefois souvent selon le protocolePTP qui permet une détection et une communication aisée avec un ordinateur. La base de données du matériel supporté

2http ://logiciels-libres-cndp.ac-versailles.fr/article.php3 ?id_article=73http ://www.linuxprinting.org/4http ://www.sane-project.org/5http ://www.alsa-project.org/6http ://logiciels-libres-cndp.ac-versailles.fr/rubrique.php3 ?id_rubrique=16

5

Page 6: UnréseauDebianGNU/Linux pouruncentredeformationploug22.free.fr/doc/debian-install-reseaux-potin.pdf · 2005. 10. 12. · Samba),serveurdetemps,sauvegardes(Amandaetpartimage). Pour

se trouve sur le site du logiciel standard de pilotage de ce type de matériel : Gphoto7. Un article8 du présent site exposel'interface graphique la plus courante pour communiquer avec un appareil photo numérique sous GNU/linux et traiterles images obtenues.

Le matériel d'acquisition vidéo numérique est le terrain ou GNU/Linux possède le plus de retard par rapportaux o�res propriétaires. Le site Funix.org9 donne des informations complètes à propos des con�gurations matérielleset logicielles pour l'acquisition et le montage.

En�n, le noyau Linux 2.6 sera systématiquement préféré à la version 2.4 dès qu'on se proposera de travailler lemultimédia, d'utiliser des périphériques USB ou Firewire, de toucher à la gestion avancée de l'énergie (ACPI)... Cetarticle10 expose en détail la procédure de compilation d'un noyau 2.6 avec toutes les options et pilotes.

2 L'installation des systèmes d'exploitationNote préliminaire Cet article concerne particulièrement un centre de formation, mais pourquoi pas d'autres struc-

tures (établissement scolaire, espace public numérique, etc...). Il présuppose des connaissances en réseau relativementsolides. Cependant, des solutions packagées libres existent qui simpli�ent grandement l'installation des serveurs et desservices réseau et o�rent des interfaces graphiques simpli�ées d'administration qui ne requièrent pas de compétencesUnix particulières, au premier rang desquelles Slis et Sambaedu. Une liste des solutions serveurs pour l'ÉducationNationale est en ligne sur le présent site11.

De manière générale, le choix Debian, systématique dans cette étude, ne doit pas faire oublier que la plupart desconseils et �chiers de con�guration seront identiques dans d'autres distributions puisque les logiciels sont les mêmes.

Pour les machines clientes, si nous préconisons Debian Sid, mentionnons tout de même la distribution Ubuntu12, trèssimple d'installation, particulièrement bien �nie et basée sur Sid. Quelques manipulations sont cependant nécessairespour disposer vraiment de tous les logiciels de Debian, qui ne sont pas supportés de la même manière.

Nous ne détaillerons pas outre mesure l'installation de Debian GNU/Linux sur un ordinateur, serveur ou non, dansla mesure où celle ci est aujourd'hui tellement simpli�ée, décrite et documentée qu'elle ne pose pas de problème endehors de l'étape toujours délicate du partitionnement des disques.

Debian comprend aujourd'hui trois distributions principales :� Woody, distribution stable recommandée pour les serveurs. Avec un installeur un peu plus austère que Sarge,

cette distribution est totalement éprouvée en matière de stabilité et de sécurité. Elle n'est aujourd'hui plusactualisée que pour des mises à jour de sécurité, le problème majeur étant son ancienneté. Mais Woody convientcomplètement pour un serveur.

� Sarge est la future version stable, aussi appelée testing, dont on attend la sortie en tant que stable depuis trèslongtemps. Cette distribution convient pour une station de travail, dans la mesure où Sarge intègre des logicielsraisonnablement récents, comme Gnome et KDE. Elle est pleinement utilisable, sous réserve de n'être pas aussistabilisée et achevée que Woody, version o�cielle de Debian.

� Sid signi�e Still in developpement, elle est la version unstable. Recommandée si l'on désire les dernières versionsdes logiciels au fur et à mesure de leur sortie, elle présente le risque relativement mineur de rencontrer parfois uncertain nombre de choses qui ne fonctionnent pas, ou mal, en particulier le système de dépendances qui empêcheparfois l'installation ou la mise à jour d'un plus ou moins grand nombre de choses à cause d'un seul package.Néanmoins, l'utilisation de Sid au quotidien depuis plusieurs années est tout à fait confortable. On prendrasimplement garde de ne pas se ruer immédiatement sur les tous derniers packages disponibles dès leur sortie, etd'installer l'utilitaire apt-listbugs qui prévient des problèmes avant installation ou mise à jour e�ective de tel outel logiciel.

2.1 Partitionnement des serveursLe principe de tout partitionnement est simple : séparer rigoureusement le système des données. Le reste peut

donner lieu à de nombreux débats con�nant à la théologie :), concernant en particulier les partitions pour /var et/tmp.

Nous avons retenu le partage des services réseau sur deux serveurs (outre le petit routeur) et avons donné dans lasection précédente leur répartition sur chaque ordinateur, mais on peut très bien concevoir de tout placer sur un seulserveur si on n'a pas de problème de charge ou de débit sur le réseau local. Nous conseillons le partitionnement suivant

7http ://www.gphoto.org/8http ://logiciels-libres-cndp.ac-versailles.fr/article.php3 ?id_article=1719http ://www.funix.org/10http ://logiciels-libres-cndp.ac-versailles.fr/article.php3 ?id_article=18011http ://logiciels-libres-cndp.ac-versailles.fr/article.php3 ?id_article=10312http ://www.ubuntulinux.org/

6

Page 7: UnréseauDebianGNU/Linux pouruncentredeformationploug22.free.fr/doc/debian-install-reseaux-potin.pdf · 2005. 10. 12. · Samba),serveurdetemps,sauvegardes(Amandaetpartimage). Pour

pour le serveur devant héberger les données et les comptes :

sda1 : /boot : 15 Mo 13

sda2 : Swap : 1,2 Go pour 1 Go de Ram.sda3 : / : 5 Go (si l'on prévoit vraiment l'installation de très nombreux logiciels)sda4 : /home : le reste du disquesdb1 : /data : le second disque du serveur, que l'on pourra a�ecter à autant de partages réseau que de besoin pour

le stockage de données, exportées ou non sur le réseau.

Le second serveur n'héberge pas à proprement parler de données mais plutôt des sauvegardes (on y place donc lelecteur DAT), ainsi que divers spools de proxy et d'impression.

sda1 : /boot : 15 Mo (avec la réserve ci dessus)sda2 : Swap : 1,2 Go pour 1 Go de Ram.sda3 : / : 5 Go (si l'on prévoit vraiment l'installation de très nombreux logiciels)sda4 : partition étenduesda5 : /var/spool : au moins 6 Go, pour les spools de squid, d'apt-proxy, de l'impression et d'Amanda.sda6 : /data : le reste du disque, environ 50 Go, pour les images des disques des stations générées avec le logiciel

partimage 14.Ces partitions seront formatées avec le système de �chiers ext3 si l'on désire une sauvegarde simple avec Amanda.

Reiserfs ne peut pas être sauvegardé ni surtout partiellement restauré simplement et XFS demande unlogiciel spéci�que de backup, outre la complexité de sauvegarde des ACLs. Normalement, un centre de formation avecdes utilisateurs occasionnels n'a pas besoin d'un système de �chiers aussi complexe que XFS. Si l'on envisage la mise enplace d'un serveur de news avec un feed extérieur, cela se traduira par la prolifération de petits �chiers extrêmementnombreux dans le spool, il sera donc recommandé d'augmenter la densité des inodes de la partition /var/spool auformatage (voir man mke2fs, option -i. Cette option est à �xer au formatage, il n'est plus possible de la modi�er parla suite).

Par contre il est possible d'ajouter la journalisation à un système ext2, donc passer en ext3, de manière très simple :� tune2fs -j /dev/sdax �, en rajoutant bien sur dans le �chier /etc/fstab que la partition est maintenant en ext3. La pagede man de tune2fs donne toutes les précisions voulues, également pour modi�er le pourcentage d'espace disque allouéau super utilisateur par partition. Cela sera utile après redimensionnement d'une partition avec le logiciel parted15,qui fonctionne très bien, dans la mesure où l'usage peut révéler une partition chroniquement sur dimensionnée audétriment d'une autre.

2.2 Partitionnement d'une station de travailLe partitionnement d'une station de travail est beaucoup plus simple et beaucoup moins sensible que celui d'un

serveur, dans la mesure où les stations n'hébergent absolument aucune donnée ; la partition /home est montée auboot par NFS et n'occupe donc aucun espace sur le disque local. On pourra faire une petite partition /boot, puis unepartition de swap plus large que la RAM dont on prévoit de doter a terme la machine, le reste du disque contenantla partition racine /. Une installation complète de Gnome 2.8, KDE 3.3, Enlightenment, Windowmaker, Mozilla,Firefox, Thunderbird, Gimp 2.2, LATEX, OOo 1.1, Gcompris et la majeure partie des logiciels éducatifs ou transversauxréférencés sur le présent site16 occupe moins de 3 Go sur le disque. En comptant large, une partition de 6 Go est doncamplement su�sante.

2.3 Conseils généraux pour l'installationQu'il s'agisse d'un serveur ou d'une station de travail, l'installation de Debian demeure simple mis à part le moment

du partitionnement qui requiert une grande attention. Les machines clientes et l'environnement français sont détailléesdans la section 9. Voici quelques conseils complémentaires :

� le mot de passe root des stations ne doit pas être le même que celui des serveurs et autres machines� sensibles �. Par simple bon sens, mais aussi parce qu'on fera parfois installer des logiciels par les stagiaires.

� l'installeur woody sera démarré avec la commande bf24 pour installer un kernel 2.4, et l'installeur Sarge aveclinux26 pour le kernel 2.6.7.

13Taille conseillée si l'on ne recourt pas aux images de kernel o�cielles qui intègrent un initrd de large taille, avec tous les modules degestion du SCSI, RAID, IDE, �le systems, etc... En ce cas, prévoir une petite centaine de Mo par sécurité.

14A l'usage, il s'avère que seuls les systèmes MS-Windows ont vraiment besoin de ce genre de sauvegarde15http ://www.gnu.org/software/parted/parted.html16http ://logiciels-libres-cndp.ac-versailles.fr/

7

Page 8: UnréseauDebianGNU/Linux pouruncentredeformationploug22.free.fr/doc/debian-install-reseaux-potin.pdf · 2005. 10. 12. · Samba),serveurdetemps,sauvegardes(Amandaetpartimage). Pour

� Le gestionnaire d'amorçage (lilo ou GRUB) doit toujours être installé dans le MBR (master boot record) dudisque principal. L'installer ailleurs, sur une partition du disque ou sur une disquette, est le meilleur moyend'avoir des problèmes par la suite.

� Dans le cas de machines en double amorçage avec un système d'exploitation MS-Windows, toujours commencerpar installer ce dernier et installer GNU/Linux ensuite.

� La con�guration de Debian s'achève par la con�guration du serveur SMTP qui permet au système de prévenirson administrateur de tel ou tel problème en lui envoyant un mail. Root n'a aucune raison de lire, et encoremoins de rédiger, du courrier. On redirigera donc tout le courrier de toutes les machines vers un utilisateur duréseau, typiquement le compte de la personne en train de lire ce document :-). Ceci se corrige en éditant le �chier/etc/aliases pour placer un alias ainsi : � root : [email protected] � (où cette adresse est celle de l'administrateurdu réseau), puis en mettant a jour la base d'alias au moyen de la commande newaliases et en relançant le serveurSMTP (dans le cas de Post�x, régénérer la base d'alias au moyen de la commande � postmap /etc/aliases �). Onvéri�era au moyen de la commande � echo coucou|mail root � que l'utilisateur � yves � reçoit bien les messagesde root sur son compte, sur l'ordinateur qui centralise les messages du domaine (voir plus loin, section 7.1.3).

� Le serveur SMTP exim, choix par défaut de Debian, convient bien pour une machine qui ne fait qu'envoyer lesmails du système vers un compte du réseau. Pour le serveur SMTP principal, qui doit traiter tout le courrier desutilisateurs, on préférera Post�x dont la con�guration est détaillée dans la section 7.1.

2.4 Les sources des packages DebianUn principe de Debian est que tous les logiciels reposent sur des packages qui dé�nissent leurs dépendances : ainsi,

on ne va jamais à la pêche à telle ou telle version d'une librairie très précise qui elle même en demande une autre qu'ilfaudra laborieusement compiler, cette � aventure � s'achevant par une réinstallation et mise à jour à la main de lamoitié du système. Au contraire, l'installation d'un package conditionne la mise en place de tout ce qui est nécessairepour qu'il fonctionne, en passant par internet pour obtenir les dernières versions des logiciels

Tout passe ainsi par l'utilitaire apt-get dont on trouvera sur ce même site17 une description sommaire. le HOWTOd'apt18 exposant beaucoup plus complètement ce logiciel qui fait une grande partie du confort, comme du succès, deDebian.

Apt possède son �chier de con�guration : /etc/apt/sources.list qui décrit les serveurs et sources sur lesquels ilva aller chercher ses packages. Un proxy de packages permettant d'économiser de la bande passante et du temps detéléchargement pour tous les ordinateurs de notre réseau sera installé plus tard (section 6.3), mais dans un premiertemps, pour partir de quelque chose, nous retiendrons cette con�guration :

� Pour un serveur :#Securitedeb http://security.debian.org/ stable/updates main#Serveur principaldeb ftp://ftp.fr.debian.org/debian stable main contrib

� Pour une station de travail, on prendra les mêmes sources mais avec la section unstable ou sid au lieu de stableou woody , en rajoutant certains serveurs qui proposent des logiciels en plus, selon les besoins (voir par exempleapt-get.org19, les serveurs proposés ne sont en rien o�ciels) :#Securitedeb http://security.debian.org/ testing/updates main

#Source principaledeb ftp://ftp.fr.debian.org/debian sid main contrib

#Agnula, logiciels de création musicale et multimediadeb http://apt.agnula.org/demudi/ unstable main local extra

#Acrobat Reader, Mplayer, logiciels non libresdeb ftp://ftp.nerim.net/debian-marillat unstable main

##Cinelerra, logiciel de montage video professionneldeb http://www.kiberpipa.org/~minmax/cinelerra/builds/sid/ ./

17http ://logiciels-libres-cndp.ac-versailles.fr/article.php3 ?id_article=2018http ://www.debian.org/doc/manuals/apt-howto/index.en.html19http ://www.apt-get.org/

8

Page 9: UnréseauDebianGNU/Linux pouruncentredeformationploug22.free.fr/doc/debian-install-reseaux-potin.pdf · 2005. 10. 12. · Samba),serveurdetemps,sauvegardes(Amandaetpartimage). Pour

#Ndiswrapper Debian, pour de nombreuses cartes wifi d'ordinateurs portablesdeb http://ndiswrapper.sourceforge.net/debian ./

2.5 Logiciels complémentairesAu sortir de l'installation de Debian, on dispose d'un système fonctionnel mais tellement minimal qu'on ne peut

presque rien faire avec. Même pour une telle installation, il manque un certain nombre de logiciels qu'on installera desuite, généralement parce qu'ils seront nécessaires pour identi�er certains problèmes dans des situations où il ne seraplus possible d'installer quoique ce soit :

� lsof, List Open Files, permet de savoir quels sont les �chiers ouverts et quel process les ouvre 20.� less a�che les pages de man de manière beaucoup plus confortable que le pager par défaut, more.� tcpdump, capteur de trames réseau.� nmap, scanner de ports pour s'assurer de ce qui est ouvert localement ou sur une autre machine .� ssh, permettant de prendre a distance le contrôle de la machine en mode texte. Il y a peu de raisons de ne pas

installer ssh sur une machine. On prendra les choix par défaut lors de la con�guration sous peine d'introduireune faille de sécurité.

� rsync, dont nous ferons un usage intensif pour distribuer des �chiers sur tout le réseau à la �n de cet article.Bien entendu, apt-get installera tout cela en quelques instants.

3 Une session de travail d'un administrateur réseauPour organiser son travail de manière e�cace, ne pas répéter toujours les mêmes taches et conserver une visibilité

maximale de ce qui se passe sur un ordinateur au fur et à mesure que l'on installe des logiciels et qu'on modi�e leurcon�guration, un certain nombre d'habitudes de travail, de simple bon sens, sont à prendre. Trois points essentiels :

Comprendre ce que l'on est en train de faire en consultant systématiquement les pages de man et ladocumentation présente dans /usr/share/doc/<nom du package>, en particulier les �chiers README.Debian 21. Unservice réseau ne démarrera pas ou ne fonctionnera pas correctement si l'on ne fait pas ce qui est indiqué dans ces�chiers rédigés très clairement, hélas en anglais.

Se familiariser avec un éditeur en mode texte qui permet d'ouvrir simplement plusieurs �chiers en mêmetemps, et se familiariser pendant une ou deux heures avec ses raccourcis clavier.

� Jed constitue de notre point de vue un excellent choix : cet éditeur, léger, n'impose pas de manipulation par-ticulière pour saisir du texte ou en modi�er, ni pour revenir à un mode permettant de sauvegarder son travail,ce qu'attend a priori un être humain normalement constitué. Il présente des menus qui rappellent les raccourcisclavier les plus usuels, o�re une coloration syntaxique par défaut et peut être utilisé à de nombreuses autres�ns, introduisant ainsi à un environnement complet de programmation, de courrier, de lecture de forums etbien d'autres choses, connu sous le nom d'Emacs. Un didacticiel en français est proposé avec Emacs, lancé avecle raccourci clavier C-h t 22. Une heure passée avec ce didacticiel permet de bien comprendre la logique trèsclaire des raccourcis clavier et de commencer à être opérationnel. On trouve facilement sur le Web des tableauxrécapitulatifs23 des raccourcis d'emacs.

� Mc est un gestionnaire de �chiers en mode texte très apprécié, qui propose un éditeur plus sommaire que jedmais qui reste de manipulaton aisée.

� Vi, ou ses clones, sont présents par défaut sous tout système Unix comme un mal nécessaire. On se doit deconnaître un minimum ses raccourcis clavier, en particulier ceux permettant d'en sortir rapidement ( :q !) :-).Un appui sur la touche escape permet en principe de saisir cette commande si les lettres :q ! apparaissent encoredans le corps du texte. La fonction M-x doctor d'emacs o�re secours et compassion après une session, mêmebrève, de � travail � dans vi.

Organiser sa session de travail en ouvrant quatre consoles textes (ou quatre xterm si l'on travaille sous X àtravers ssh). Sur ces 4 consoles, on maintiendra :

1. Un éditeur ouvert, qui permet d'ouvrir plusieurs �chiers en même temps2420en particulier lsof -i :<n◦_de_port>21la commande zless permet de visualiser un �chier sans le décompresser22Control h suivi de t23http ://asi.insa-rouen.fr/�lfallet/informatique/emacs.php24Raccourcis claviers utiles pour travailler sur plusieurs �chiers en même temps :� C-x C-f pour ouvrir un nouveau �chier� C-x b pour naviguer entre les �chiers ou tampons déjà ouverts, la complétion fonctionne classiquement au moyen de la touche de

9

Page 10: UnréseauDebianGNU/Linux pouruncentredeformationploug22.free.fr/doc/debian-install-reseaux-potin.pdf · 2005. 10. 12. · Samba),serveurdetemps,sauvegardes(Amandaetpartimage). Pour

2. Un simple shell pour taper des commandes, en particulier redémarrer le service réseau dont on vient de modi�erla con�guration (/etc/init.d/nom_du_service start|stop|restart).

3. Le contenu d'un �chier de log qui consigne l'activité du système en temps réel (/var/log/syslog) ou l'activité plusspéci�que d'un service (par exemple /var/spool/squid/access.log) et par là ce que signale le service réseau lorsde son redémarrage et pendant son fonctionnement (commande tail -f <nom du �chier de logs>).

4. La documentation de ce qu'on est en train de faire.Quelqu'un cherchant de l'aide sur les newsgroups ou les listes de di�usion se voit souvent répondre : � que disent

les logs ? �, et ensuite RTFM25 ou man. Avoir donc la doc et les logs présents à l'écran permet de gagner du temps etsurtout de l'autonomie.

4 Sécuriser une machine Debian : les basesChacun mesurera, en fonction du public auquel est destiné son réseau, quels sont ses besoins en matière de sécurité,

en dehors du routeur / Firewall que nous exposons dans la section suivante. Il y a un monde entre une salle où nepassent que des enseignants qui, dans le cadre d'un plan académique de formation, viennent apprendre le traitementde textes et les rudiments d'internet sous la responsabilité d'un formateur, et un local qui accueille des élèves sanscontrôle pendant leurs heures de permanence. Mais la première priorité d'un administrateur réseau doit être la sécurité,condition première de la haute disponibilité des machines.

Au sortir de l'installation, une machine GNU/Linux n'est pas nécessairement aussi sécurisée qu'elle peut l'être, sil'on part de ce principe : d'abord, on ferme tout et on ouvre ensuite selon des besoins mûrement ré�échis.

1. Commenter toutes les entrées du �chier /etc/inetd.conf, sauf celles qui servent explicitement à un usage réel(normalement il n'y en a aucun, lorsque l'installation de notre réseau sera complète il y aura pop et ftp sur leserveur principal, et Amanda sur toutes les machines sauvegardées). Inetd est ce � super daemon � qui lance desservices à la demande, leur évitant ainsi de tourner en permanence pour ne pas surcharger la machine. Certainesentrées comme time, discard, parfois �nger, etc... sont actives par défaut.

2. Placer la directive ALL : ALL dans le �chier /etc/hosts.deny et redémarrer inetd. Man 5 hosts_access indiquedes exemples très clairs de con�guration des tcp wrappers qui autorisent ou non certains services à telle ou tellemachine.

3. Le �chier /etc/lilo.conf contient une ligne commentée � password=tatacounter � qui permet de démarrer lamachine en mode � single user � et d'avoir ainsi un accès root sans authenti�cation. On évitera cela en dé-commentant cette ligne, en changeant le mot de passe, en sécurisant ce �chier 26 et en�n en réinstallant lilo(commande lilo).

Il est indispensable de s'abonner à la liste de di�usion d'alertes de sécurité de Debian dès lors que l'on administre unemachine, a fortiori un serveur connecté jour et nuit à Internet. Il su�t de cliquer ici : http ://lists.debian.org/debian-security-announce/27 et d'entrer son adresse.

5 Con�guration et sécurité du routeurCet ordinateur n'a pas besoin de beaucoup de puissance ou ressources matérielles, par contre il doit faire l'objet de

l'attention la plus grande en matière de sécurité car il est relié en permanence par une IP publique au monde extérieuret va donc subir des tentatives d'intrusion et attaques diverses venues de pirates qu'il sera toujours di�cile d'identi�er.Insistons : il est très maladroit de se demander � vais-je subir des attaques ? �. La question pertinente est : � commentmes services réseau ont-ils réagi aux tentatives d'intrusion qui ont eu lieu depuis que je les ai mis en place il y a unedemi heure ?�.

Pour cette raison, on suivra le principe suivant : le pare feu ne doit héberger aucun service réseau en plus de luimême et du moyen éventuel d'entrer depuis l'extérieur (ssh). On sera particulièrement attentif à la consultation de sesjournaux (logs).

tabulation� C-x 5 2 pour scinder la fenêtre d'édition en deux� C-x o pour naviguer d'une fenêtre à l'autre (par exemple pour faire des copier-coller)� C-x k pour tuer le tampon courant� C-x 1 pour n'a�cher qu'une seule fenêtre

25http ://www.catb.org/�esr/jargon/html/R/RTFM.html26au moyen de la commande chmod 600 /etc/lilo.conf27http ://lists.debian.org/debian-security-announce/

10

Page 11: UnréseauDebianGNU/Linux pouruncentredeformationploug22.free.fr/doc/debian-install-reseaux-potin.pdf · 2005. 10. 12. · Samba),serveurdetemps,sauvegardes(Amandaetpartimage). Pour

Note importante Les services réseau présentés dans ce document ne sont pas considérés comme ouverts surInternet mais réservés à un usage interne ; aucune translation de port n'est active par défaut dans la con�guration de�rewall proposée. On ne redirigera surtout aucun port vers le serveur hébergeant les données des utilisateurs, mêmepour le courrier ou le Web. Pour ouvrir certains services au monde extérieur, on se renseignera sur la notion de DMZoù l'on placera un serveur dédié.

Une installation minimale de Debian stable avec le kernel linux 2.4 su�ra pour le routeur ; un partitionnement trèssimple conviendra puisqu'il n'y aura ni compte ni donnée sur cet ordinateur.

5.1 Sécurité sur le routeur : première étapeAucun ordinateur ne doit être connecté à Internet sans être protégé par Firewall, qu'il n'y a aucune raison de

désactiver même pour un instant.Ce script de �rewall28 est à placer dans le répertoire /etc/init.d. Le rendre exécutable (chmod 700 iptables.sh) et

exécuté au boot du routeur par la commande update-rc.d iptables.sh start 15 2 3 4 5 . (attention au . �nal, voir manupdate-rc.d). Redémarrer l'ordinateur pour véri�er que les règles iptables sont bien appliquées au boot, la commandeiptables -L -v devant montrer que les tables INPUT et FORWARD ont une policy de DROP, et que n'est accepté enentrée sur ppp0 que ce qui est ESTABLISHED ou RELATED (une chaîne supplémentaire est a�chée pour les logs).

Chain INPUT (policy DROP 0 packets, 0 bytes)pkts bytes target prot opt in out source\destination287 16748 ACCEPT tcp -- any any localnet/24\anywhere tcp dpt:ssh2 168 ACCEPT icmp -- any any anywhere\ anywhere

144 12183 ACCEPT all -- any any anywhere\ anywhere state RELATED,ESTABLISHED

3 483 ACCEPT all -- eth0 any anywhere\ anywhere state NEW0 0 ACCEPT all -- lo any anywhere\ anywhere state NEW8 400 LOG_AND_DROP all -- any any anywhere\ anywhere

Chain FORWARD (policy DROP 0 packets, 0 bytes)pkts bytes target prot opt in out source\ destination207 14731 ACCEPT all -- eth0 any anywhere\ anywhere176 23867 ACCEPT all -- any any anywhere\ anywhere state RELATED,ESTABLISHED

Chain OUTPUT (policy ACCEPT 4200K packets, 327M bytes)pkts bytes target prot opt in out source\ destination

Quelques observations sur cette con�guration :� Tout est ouvert en sortie puisque nous n'avons pas de raison particulière d'interdire tel ou tel usage à l'intérieur

du centre de formation. On ré�échira soigneusement, dans un établissement à vocation éducative, à mettreen place un tel �ltrage, comme toute forme de censure qui est vite contre-productive sans un accompagnementpédagogique consistant déjà en la mise au point d'une charte des usages, adjointe au règlement intérieur, adoptéeen conseil d'administration et signée par les élèves.

� Filtrer ICMP en entrée de manière brutale doit être proscrit, mais un �ltrage ré�échi permet d'éviter d'êtrevisible aux scans les plus grossiers. Aucun �ltrage d'ICMP ne protège réellement contre un pirate compétent etdécidé.

27il va de soi qu'aucun client NIS ou LDAP ne sera installé.28http ://logiciels-libres-cndp.ac-versailles.fr/debianinstall/�chiers/iptables.sh

11

Page 12: UnréseauDebianGNU/Linux pouruncentredeformationploug22.free.fr/doc/debian-install-reseaux-potin.pdf · 2005. 10. 12. · Samba),serveurdetemps,sauvegardes(Amandaetpartimage). Pour

� Les logs de Net�lter sont fastidieux et guère passionnants à lire. Le logiciel fwlogwatch, disponible dans Debian,permet entre autres d'auditer les logs du Firewall et propose des rapports au format HTML29 ; il dépasse le cadrede cet article.

Nous pouvons maintenant ouvrir la connexion ADSL ; elle se paramètre avec la commande pppoecon�g, les �chiersde con�guration se trouvant dans le repertoire /etc/ppp. La ligne est ouverte avec � pon dsl-provider �, fermée par �po� � et une option à la con�guration permet de la rendre persistante, ce qui est recommandé.

Ce script30 permet de tester basiquement la ligne et de la remonter, on pourra le placer en crontab pour l'éxécutertous les quarts d'heure.

5.2 Sécurité sur le routeur : seconde étapeMettons tout de suite à jour la machine pour installer les derniers correctifs de sécurité : � apt-get update ; apt-get

dist-upgrade �. Installer la dernière version du kernel, ou mieux le compiler soi même31 pour l'optimiser et n'y mettreque ce qui est nécessaire, reste une excellente idée.

Cette mise à jour sera suivie de l'installation des packages Logcheck et ssh.Logcheck audite tous les journaux, ou logs, du système et envoie son audit par mail à l'administrateur (voir ci

dessus comment déporter ces messages vers un compte e�ectivement lu), ceci selon une périodicité dé�nie dans le�chier /etc/cron.d/logcheck. Le niveau de sécurité � server � permet un audit su�sant, mais le niveau � paranoid �est disponible :-).

le démon sshd permet de prendre la main à distance sur le routeur, mais surtout de parcourir le réseau et de selogguer sur les machines depuis l'extérieur : très commode, ceci permet à l'administrateur du réseau de continuer àtravailler chez lui, le soir ou le week end :-).

Réalisons mantenant un premier et très sommaire audit de sécurité. Depuis l'extérieur du réseau, sur unemachine disposant de Nmap32 (le standard en matière de scanner de ports), la commande � nmap -O ip_du_routeur� permet de s'assurer que seul le port 22 (ssh) est ouvert33. En cas contraire, reprendre depuis le départ la sécurisationde cette machine et la mise en place du pare-feu. Voici le résultat d'un scan de port satisfaisant :

Starting nmap 3.81 ( http://www.insecure.org/nmap/ ) at 2005-03-16 16:47 CETWarning: OS detection will be MUCH less reliable because we did not findat least 1 open and 1 closed TCP portInteresting ports on mpsoa.net4.nerim.net (62.212.122.37):(The 1662 ports scanned but not shown below are in state: filtered)PORT STATE SERVICE22/tcp open sshDevice type: general purposeRunning: Linux 2.4.X|2.5.XOS details: Linux 2.4.0 - 2.5.20, Linux 2.4.10 - 2.4.18, Linux 2.4.19 (x86)Uptime 66.351 days (since Sun Jan 9 08:23:22 2005)

Nmap finished: 1 IP address (1 host up) scanned in 30.075 seconds

5.3 Fonctionnalités additionnelles du script de �rewallNotre script permet de facilement ouvrir et translater des ports, les lignes permettant de le faire étant commentées.

Il su�ra donc, par exemple pour que la machine 192.168.28.50 sur lequel on a placé un serveur Web soit consultablede l'extérieur sur le port 80, de commencer par ouvrir ce port sur le �rewall :

$IPTABLES -A INPUT -p TCP -s 0/0 --dport 80 -j ACCEPT

Puis de faire en sorte que toutes les requêtes arrivant sur l'ip publique du �rewall à destination du port 80 soientredirigées sur le port 80 de cette machine :

$IPTABLES -t nat -A PREROUTING -p tcp -i ppp0 -d 62.212.122.37\ --dport 80 -j DNAT --to 192.168.28.50:80$IPTABLES -A FORWARD -d 192.168.28.0/24 -p tcp --dport 80-j ACCEPT

29http ://logiciels-libres-cndp.ac-versailles.fr/debianinstall/�chiers/report.html30http ://logiciels-libres-cndp.ac-versailles.fr/debianinstall/�chiers/internet.sh31http ://logiciels-libres-cndp.ac-versailles.fr/article.php3 ?id_article=18032http ://www.insecure.org/nmap/33avec ICMP non �ltré, sinon ajouter l'option -P0. Ce type de scan est très long.

12

Page 13: UnréseauDebianGNU/Linux pouruncentredeformationploug22.free.fr/doc/debian-install-reseaux-potin.pdf · 2005. 10. 12. · Samba),serveurdetemps,sauvegardes(Amandaetpartimage). Pour

Bien évidemment, on se sera soigneusement renseigné sur la sécurité du service réseau que l'on met ainsi à dispositionde manière à ne pas se le faire pirater ! La même procédure pourra ainsi être utilisée pour tester la sécurité du serveurSMTP Post�x lorsque nous procéderons à sa con�guration (section 7.1).

5.4 Logiciels complémentaires de sécuritéCes logiciels dépassent le cadre de cette étude et ne sont pas strictement indispensables, en particulier si le seul

port ouvert est ssh. Ils complètent toutefois utilement l'installation d'un lien permanent à Internet, même si l'on n'estpas spécialement paranoïaque :).

Tripwire34 permet de prendre l'empreinte d'une machine juste après son installation et de contrôler périodiquementson intégrité.

Snort35, classique IDS (système de détection d'intrusion), permet d'auditer très �nement ce qui se passe sur leréseau. Il existe un outil similaire mais beaucoup plus avancé, prelude-ids36.

Nessus37 est un simulateur d'intrusion et scanner de vulnérabilités avec lequel auditer la sécurité de manière pousséeà partir d'une machine cliente, sur le réseau ou à l'extérieur.

Chkrootkit38 permet de tenter de détecter la présence d'un rootkit39 sur la machine, trace indubitable d'un piratage.Une machine piratée ne peut être �ablement auditée à partir d'elle même, ce qui restreint la pertinencedes mails que chkrootkit propose d'envoyer quotidiennement, et a fortiori un audit réalisé post mortem.

Pour de plus amples détails, de nombreux sites sur la sécurité informatique et l'excellente revue MISC40 peuventservir de référence.

Tous les logiciels ci dessus sont disponibles dans Debian et installables via APT. Il est bien entendu tout à faitsuper�u d'installer un antivirus sur notre routeur.

6 Premier serveur : les services réseau non authenti�ésNous allons mettre en place dans cette section le premier serveur, dont la tâche sera essentiellement de nous relier

à internet, en plus de ce que fait le Firewall. Nous étudierons les services suivants : DNS, DHCP, proxy http et ftp,proxy apt, serveur de temps, serveur d'impression. D'une manière générale, nous con�gurerons les services réseaude manière autonome, sans dépendre en rien du fournisseur d'accès (DNS, SMTP, etc..), pour nous a�ranchir detout dysfonctionnement de ce dernier et être certains que si quelque chose ne marche pas, nous avons la main surce dysfonctionnement, mis à part les tuyaux, la connexion, qui est en �n de compte la seule chose à demander aufournisseur d'accès.

6.1 Le DNS : BindPackages requis : bind, dnsutils, et leurs dépendances.Le DNS établit un lien entre noms et adresses d'ordinateurs et constitue le coeur d'Internet. De fait, bind devient

vite le c÷ur d'un intranet et la première chose à installer dès que l'on sait s'en servir. Nous démontrerons sa puissancelors de l'installation des stations de travail, où la distribution de �chiers à l'identique sur toutes les machines en uneseule ligne de commande reposera sur un DNS fonctionnel.

Lire et mettre en pratique le DNS HOWTO41 permet d'acquérir les bases du DNS et surtout de beaucoup mieuxcomprendre Internet. Cette section présente un récapitulatif des �chiers de con�guration d'une zone et d'un reverse,elle ne remplace pas cette introduction au DNS, présupposée connue.

Avant de présenter la con�guration détaillée, précisons que le serveur DNS maître a pour adresse 192.168.28.2 etl'esclave 192.168.28.1.

Le �chier de con�guration de bind est /etc/bind/named.conf. Commentons ce qui se trouve dans la section forwar-ders, pour résoudre nous mêmes les noms sur internet sans passer par le serveur du fournisseur d'accès, en interrogeantdirectement les serveurs racines. 42

Ensuite, notre zone, qui va dé�nir les noms de nos machines, s'appelle mp-soa.net ; nous allons donc y déclarernotre zone et son reverse :

34http ://www.tripwire.org/35http ://www.snort.org/36http ://www.prelude-ids.org/37http ://www.nessus.org/38http ://www.chkrootkit.org/39http ://en.wikipedia.org/wiki/Rootkit40http ://www.miscmag.com/sommaire.php41http ://www.freenix.fr/unix/linux/HOWTO/DNS-HOWTO.html42Si le fournisseur d'accès est Wanadoo, il est hélas requis d'utiliser ses DNS comme forwarders pour pouvoir envoyer du courrier, sauf à

installer soi même un serveur SMTP autonome comme expliqué ci après, section 7.1.

13

Page 14: UnréseauDebianGNU/Linux pouruncentredeformationploug22.free.fr/doc/debian-install-reseaux-potin.pdf · 2005. 10. 12. · Samba),serveurdetemps,sauvegardes(Amandaetpartimage). Pour

// add entries for other zones below here

zone "mp-soa.net" in {type master;file "db.mp-soa";allow-transfer {192.168.28.1;};

};zone "28.168.192.in-addr.arpa" in {

type master;file "db.28.168.192";allow-transfer {192.168.28.1;};

};

La section � allow-transfer � interdit à toute autre machine que 192.168.28.1 de faire un transfert de zone qui révé-lerait une bonne part de la structure de notre réseau, tout en déclarant une seconde machine comme DNS secondaire.

Nous avons déclaré deux �chiers dans /var/cache/bind qu'il va falloir créer et renseigner :� db.mp-soa43 qui contient les machines de la zone mp-soa.net : tous les ordinateurs de notre réseau.� db.28.168.19244 : la zone inversée ou reverse, associant des adresses à des noms. Cette zone est indispensable au

fonctionnement normal du DNS et par là de la majeure partie des services réseau. En particulier, le montageNFS de la section suivante ne peut se faire que si la requête sur le reverse de la machine cliente qui opère lemontage réussit. Il en va de même pour nombres d'autres services (FTP, SMTP...) qui ne fonctionneront pasnormalement sans cette zone inversée.

Le DNS HOWTO mentionné ci dessus permet de comprendre la signi�cation du caractère @ en début de �chier,ainsi que la présence de points qui terminent les noms de machines dans le �chier de reverse, alors qu'il n'en va pas demême dans la zone � droite �.

Lorsque les �chiers seront remplis correctement, on redémarrera bind en observant soigneusement les modi�cationsdu �chier /var/log/syslog : toute erreur apparaît très clairement avec le nom du �chier et le numéro de la ligne quicontient un bug. Bind indique explicitement que les zones sont chargées et qu'il est prêt à répondre aux requêteslorsque tout est correct. Pour rajouter, enlever ou modi�er des machines du DNS, on incrémentera le serial numberaprès modi�cation du �chier, puis on rechargera la zone au moyen de la commande ndc reload <nom de la zone>. Ilest en e�et absurde de redémarrer bind si on a simplement modi�é une zone, ce redémarrage vidant le cache mémoirede bind qui contient toutes les requêtes DNS déjà e�ectuées sur Internet. Elles seront donc refaites, occasionnant tra�créseau, délai d'attente pour les utilisateurs, etc...

On pourra dans la suite de ce document ajouter un alias portant le nom de chaque service du réseau dès que celui cifonctionne. Par exemple, lorsque la messagerie sera en place, il sera élégant de rajouter deux entrées de type � smtp INCNAME abraracourcix � et � pop IN CNAME abraracourcix �, comme chez le fournisseur d'accès :), ce qui simpli�ela vie des utilisateurs et surtout permet de déplacer un service d'une machine à l'autre sans que rien ne change sur lereste du réseau. C'est un plaisir de voir ces alias répondre au ping dès que la zone est rechargée.

Le serveur DNS secondaire, ou esclave, sera con�guré très simplement ainsi (�chier /etc/bind/named.conf auquelon enlèvera les éventuels forwarders) :

zone "mp-soa.net" in {type slave;file "slave/db.mp-soa";masters {192.168.28.2; };

};zone "28.168.192.in-addr.arpa" in {

type slave;file "slave/db.28.168.192";masters {192.168.28.2; };

};

Au redémarrage de l'esclave, le �chier de zone arrive depuis le maître dans le répertoire /var/cache/bind/slave. Destests avec nslookup (ou mieux dig) véri�eront que tout notre DNS est bien correct. A la �n de ce document, chaquemachine du réseau sera jointe par son nom, en particulier les machines clientes.

On donnera à chaque machine, y compris les serveurs, cette con�guration dès l'installation (�chier /etc/resolv.conf ) :43http ://logiciels-libres-cndp.ac-versailles.fr/debianinstall/�chiers/db.mp-soa44http ://logiciels-libres-cndp.ac-versailles.fr/debianinstall/�chiers/db.28.168.192

14

Page 15: UnréseauDebianGNU/Linux pouruncentredeformationploug22.free.fr/doc/debian-install-reseaux-potin.pdf · 2005. 10. 12. · Samba),serveurdetemps,sauvegardes(Amandaetpartimage). Pour

search mp-soa.netnameserver 192.168.28.2nameserver 192.168.28.1

6.2 Le DHCPPackages requis : dhcpLe Dynamic Host Con�guration Protocol distribue automatiquement des adresses ip, ou plus exactement une

con�guration réseau complète avec DNS et passerelle, à des machines dont la con�guration est automatique. Serviceextrêmement commode, DHCP évite de déclarer sur chaque machine une con�guration qui peut changer : si l'adressedu serveur DNS change, il su�t de modi�er un �chier sur un serveur plutôt que devoir passer sur toutes les machinesqui peuvent être très éloignées les unes des autres, voire di�cilement accessibles. La con�guration de dhcpd est trèssimple, ceci su�t amplement :

authoritative;# Importante durée des bauxdefault-lease-time 259200;max-lease-time 2592000;# Nom de domaine, qui complète le DNS (directive search de /etc/resolv.confoption domain-name "mp-soa.net";# Passerelleoption routers 192.168.28.254;option domain-name-servers 192.168.28.2,192.168.28.1;# Plage d'adresses distribuées par le serveur,# ne pas empiéter sur les adresses fixes du DNSsubnet 192.168.28.0 netmask 255.255.255.0 {range 192.168.28.80 192.168.28.150;

}

Le protocole DHCP ne prévoyant pas de bail d'adresses illimité dans le temps (selon la rfc213245), les adressesdes machines risquent donc de changer de manière inopinée, or nous avons déclaré des adresses �xes pour les stationsclientes, de manière à les retrouver facilement avec ssh et à distribuer des �chiers de manière automatisée sur tout oupartie d'entre elles. La solution, si on ne souhaite pas renseigner fastidieusement chaque adresse sur chaque station, estde déclarer les machines selon l'adresse matérielle (MAC) de leur carte réseau dans la con�guration du serveur DHCPde cette manière :

host majipoor { hardware ethernet 00:0F:1F:C2:BD:4B; fixed-address 192.168.28.50; }

La commande ifcon�g donne l'adresse MAC d'une carte réseau. Il su�t de ne placer que ce type de déclaration dansla con�guration de dhcpd (donc omettre la section subnet ci dessus) pour que seules les machines déclarées selon leuradresse MAC puissent obtenir une adresse ip (et ainsi introduire un début de sécurité dans les montages NFS). Cettedéclaration des adresses physiques est aussi pratique pour les ordinateurs portables dont les propriétaires souhaitentrarement déclarer une con�guration ip statique mais qui apprécieront de pouvoir retrouver leur laptop en l'appelantpar son nom, pour y copier des �chiers par scp, etc...

En�n, il est très peu recommandé de faire tourner plus d'un serveur DHCP sur un même réseau, ce qui n'est passans poser problème lors de stages où l'on enseigne le DHCP.

6.3 Apt-Proxy, proxy de packages DebianPackages requis : apt-proxyNous sommes en train d'installer tout un réseau de machines clientes sous Debian à travers Internet au moyen de

packages mis à disposition sur des serveurs publics. Cette mise à disposition présente une limite, qui est celle de lacourtoisie : une, voire deux machines peuvent solliciter le serveur en même temps, mais pas une vingtaine provenant dumême réseau. Il faudrait donc installer les machines les unes à la suite des autres, ce qui est d'autant moins élégant qu'ilfaudra à chaque fois télécharger rigoureusement les mêmes centaines de logiciels, outre que l'on triche avec l'occupationdes miroirs Debian qu'on solliciterait ainsi beaucoup plus qu'il n'est correct de le faire.

Une solution consiste à mettre en place un miroir Debian local46, ce qui représente un espace disque importantcontenant nombre de choses dont nous n'avons pas besoin.

45http ://www.faqs.org/rfcs/rfc2132.html46http ://www.debian.org/mirror/ftpmirror.fr.html

15

Page 16: UnréseauDebianGNU/Linux pouruncentredeformationploug22.free.fr/doc/debian-install-reseaux-potin.pdf · 2005. 10. 12. · Samba),serveurdetemps,sauvegardes(Amandaetpartimage). Pour

L'autre solution consiste en un proxy de packages. Ainsi, comme avec tout proxy, seule la première machine quiinstalle un package donné provoque un téléchargement sur Internet, le proxy fournissant lui même ensuite ce dont ildipose déjà aux autres machines qui le demandent. Ainsi, on verra les ordinateurs télécharger l'ensemble de la suiteOpen O�ce.org en quelques secondes, le débit étant de 100 Mbits... Le logiciel permettant de faire cela s'appelleapt-proxy, il est disponible sous forme de package installable par apt-get. Notons que les packages stockés dans le proxyn'ont absolument pas besoin d'être installés sur la machine qui le fait tourner, ce même proxy pouvant héberger despackages de di�érentes versions de Debian. Soyons donc élégants et installons tout de suite ce proxy, qui sera dé�nicomme source Debian pour toute machine que l'on installera par la suite.

Sans surprise, le �chier /etc/apt-proxy/apt-proxy.conf contient la con�guration d'apt-proxy. Deux options impor-tantes :

� La variable APT_PROXY_CACHE détermine le répertoire de stockage des packages, pour nous /var/spool/apt-proxy en raison de la partition réservée pour /var/spool. Ce répertoire, crée à la main, a besoin des permissionssuivantes :drwxr-xr-x 8 aptproxy root 4096 Mar 9 13:53 /var/spool/apt-proxy

� La variable WGET="wget �passive-ftp", est essentielle puisque nous nous trouvons derrière un �rewall ; aucuntéléchargement par ftp n'est possible sans ce classique mode passif.

On dé�nit ensuite des backends, ou serveurs, où notre proxy s'alimentera automatiquement selon les requêtes que lesmachines vont lui soumettre :

add_backend /debian/ \$APT_PROXY_CACHE/debian/ \http://ftp.fr.debian.org/debian/ \+ftp.fr.debian.org::debian/

add_backend /marillat/ \$APT_PROXY_CACHE/marillat/ \ftp://ftp.nerim.net/debian-marillat/

add_backend /agnula/ \$APT_PROXY_CACHE/agnula/ \http://apt.agnula.org/demudi/

Il est très important, dans les versions 1 d'apt-proxy, de déclarer un backend sur une seule ligne. Par souci de clarté,les divers composants d'un backend sont ici mis sur plusieurs lignes terminées par un \ qui, selon la syntaxe Unix,indique que la ligne suivante est en fait la continuité de la première. Si cette syntaxe n'est pas respectée, le backendne fonctionnera pas et le proxy non plus.

Dans ses versions 2, la syntaxe de ce �chier, qui s'appelle apt-proxy-v2.conf est devenue considérablement plusclaire. Les backends se déclarent maintenant de la manière suivante :

[debian]backends =

http://ftp.fr.debian.org/debian[marillat]backends =

ftp://ftp.nerim.net/debian-marillat/

En version 1, apt-proxy est un service d'inetd lancé à la demande, en version 2 il fonctionne de manière autonome.Mais les deux cas, la syntaxe des sources Debian sur les clients est la même, dans le �chier /etc/apt/sources.list :

deb http://apt-proxy.mp-soa.net:9999/debian sid maindeb http://apt-proxy.mp-soa.net:9999/marillat unstable main

� apt-proxy.mp-soa.net est une entrée de notre DNS� le port 9999 est le port d'apt-proxy, que personne ne change par fainéantise :)� debian et marillat sont le nom des backends déclarés dans le �chier de con�guration du proxy� sid, main, unstable sont les noms des répertoires disponibles sur le serveur distant qu'il ne faut pas déclarer sur

le proxy lui même : il gérera très bien tout seul la multiplicité des répertoires sur une même source.

16

Page 17: UnréseauDebianGNU/Linux pouruncentredeformationploug22.free.fr/doc/debian-install-reseaux-potin.pdf · 2005. 10. 12. · Samba),serveurdetemps,sauvegardes(Amandaetpartimage). Pour

On pourra être amené à utiliser l'une ou l'autre de ces versions dans la mesure où la version 1 est présente enwoody, et la version 2 en sid. Si, pour une raison ou une autre, on souhaite se servir d'une station de travail alluméeen permanence comme proxy de packages, apt-get installera la version 2.

La gestion de l'occupation disque se fait de manière très transparente, apt-proxy s'occupant seul de nettoyer lespackages obsolètes (seul semble in�uer le paramètre spéci�ant le nombre de versions concurrentes à conserver). Unmaximum de deux Go d'espace disque su�t pour de très nombreux packages sur les machines clientes.

L'utilitaire, apt-proxy-import permet de copier dans le cache du proxy l'ensemble des packages déjà téléchargés parla même machine auparavant avec apt-get, ce qui peut représenter une taille considérable. Il faut initialiser le proxyavant cette importation avec un simple apt-get update, le �chier sources.list pointant bien évidemment maintenant surle proxy.

Restent à installer quelques logiciels sur une station pour observer notre proxy initialiser son cache et se remplir,en indiquant ce qui se passe dans son �chier de logs /var/log/apt-proxy.log. On y verra bien sûr tous les problèmes decon�guration éventuels qui expliqueront pourquoi quelque chose ne marche pas.

6.4 Squid, Proxy http et ftpPackages requis : squid, squidguard (nombreuses dépendances)Une implémentation complète de Squid et SquidGuard ne demandant aucune compétence Unix particulière, déve-

loppée pour les établissements scolaires et mise à jour très régulièrement est disponible sous le nom de Slis47, � ServeurLinux pour l'Internet Scolaire �, installée dans des milliers de sites en France. Le développement est réalisé par unecommunauté interne à l'Éducation Nationale et piloté par le CARMI Internet de Grenoble. Slis demande un serveurdédié et s'insère en principe dans une politique académique : chaque Slis est relié à une base centrale de supervisionet mise à jour. Ainsi, l'administrateur local d'un Slis est rarement root sur son serveur. Cette section s'adresse auxadministrateurs de réseau qui souhaitent contrôler entièrement leur proxy http.

6.4.1 SquidUn proxy http et ftp sert à économiser la bande passante et à �uidi�er la consultation du Web ; il devrait être

installé systématiquement, même avec une bande passante importante. D'autre part, ce proxy permet de �ltrer, onpourra aussi dire censurer, un certain nombre de contenus jugés indésirables selon tel ou tel critère. Comme nousl'avons dit à propos de la fermeture de certains ports en sortie du �rewall, il ne peut être pertinent de procéder à unetelle censure sur un réseau, en particulier dans un établissement scolaire, que dans le cadre d'une charte des usagesdont les utilisateurs ont pris connaissance.

Squid48 constitue le standard quasiment absolu en matière de cache proxy. Il est livré avec un �chier de con�gurationqui le fait fonctionner de manière tout à fait satisfaisante ; il est déconseillé de toucher à ce �chier (clairementautodocumenté) sans réellement comprendre ce que l'on fait. Les risques d'altérer voire casser le disque dur du serveursont réels si l'on modi�e inconsidérément certaines options.

Il est bon de savoir que toute modi�cation de la con�guration de Squid demande, comme tout autre service,redémarrage, mais Squid peut être particulièrement long à s'arrêter (quelques minutes dans le pire des cas). Ceci est� normal �, ne doit pas donner lieu à inquiétude et permet d'aller consommer une boisson en attendant :).

Il y a simplement deux options à modi�er :� Dans la section ACLs (access control list), placer en haut de la liste une règle autorisant le réseau local à utiliser

le proxy :acl localnet src 192.168.28.0/255.255.255.0http_access allow localnet

� L'espace disque occupé est déclaré de la manière suivante :cache_dir ufs /var/spool/squid/cache 1500 16 256Seul le premier chi�re est à modi�er, il précise ici une taille de 1,5 Go d'occupation disque dans /var/spool/squid(le défaut est de 100 Mo). Les deux autres chi�res sont relatifs à l'arborescence des sous répertoires du cache,les valeurs par défaut convenant complètement.

Un proxy possède trois modes de fonctionnement : le mode standard, sans con�guration additionnelle particulière,le mode transparent qui est une règle de �rewall redirigeant tous les accès sur un port vers un autre port, rendantsuper�u de déclarer le proxy dans les navigateurs mais le rendant ainsi incontournable, et le mode authenti�é quiimpose aux utilisateurs de saisir leurs nom et mot de passe pour utiliser squid, permettant ainsi de consigner tous lesaccès dans des journaux. Ces deux derniers modes sont exclusifs l'un de l'autre : un proxy est soit transparent, soitauthenti�é.

47http ://slis.ac-grenoble.fr/48http ://www.squid-cache.org/

17

Page 18: UnréseauDebianGNU/Linux pouruncentredeformationploug22.free.fr/doc/debian-install-reseaux-potin.pdf · 2005. 10. 12. · Samba),serveurdetemps,sauvegardes(Amandaetpartimage). Pour

1. Le mode � standard � : Il su�t de déclarer dans un navigateur que le proxy utilisé est proxy.mp-soa.net sur leport 3128 et le �chier /var/spool/squid/logs/access.log indiquera toutes les requêtes http et ftp traitées.

2. Le proxy transparent : solution confortable puisqu'aucun paramétrage n'est requis sur les stations clientes. Ilsu�t de faire en sorte, dans le câblage du réseau, que le routeur qui redirige vers Squid soit incontournable pourqu'il soit matériellement impossible d'éviter le proxy et son éventuel �ltrage49.La con�guration d'un Squid transparent :

http_port 8080httpd_accel_host virtualhttpd_accel_port 80httpd_accel_with_proxy onhttpd_accel_uses_host_header on

Et la con�guration du �rewall :

$IPTABLES -t nat -A PREROUTING -i eth0 -s ! 192.168.28.2 -p tcp --dport 80\ -j DNAT --to 192.168.28.2:8080$IPTABLES -t nat -A POSTROUTING -o eth0 -s 192.168.28.0/24 -d 192.168.28.2\-j SNAT --to 192.168.28.254$IPTABLES -A FORWARD -s 192.168.28.0/24 -d 192.168.28.2 -p tcp\ --dport 8080 -j ACCEPT

Le réseau local a ici pour adresse 192.168.28.0/24, le Squid tournant sur 192.168.28.2 et le routeur / Firewallayant l'adresse 192.168.28.254.

3. Le proxy authenti�é : la solution la plus lourde, qui impose à chaque utilisateur une nouvelle saisie de son nomet de son mot de passe, déjà saisis à l'ouverture de session, pour chaque utilisation du proxy, donc d'internet,et à chaque lancement d'un navigateur. Cette solution est très discutable d'un point de vue juridique car elleconsigne toutes les traces et tous les accès de tout le monde de manière extrêmement précise et surtout nomi-nale. Pour bien faire les choses, on branchera Squid sur le serveur d'authenti�cation de cette manière (ici LDAP) :

Squid sur woody :

authenticate_program /usr/lib/squid/ldap_auth -b <base_dn>authenticate_children 50

Squid version 2.5 (Sarge) :

auth_param basic program /usr/lib/squid/ldap_auth -b <base_dn>auth_param basic children 50

Et ajouter dans les ACLs :acl identification proxy_auth REQUIREDhttp_access allow identification

Le logiciel Sarg permet de générer des rapports complets indiquant qui est allé sur quel site avec quelle machine, àquelle heure, pendant combien de temps et pour faire transiter quel volume de données. Un proxy authenti�é n'ade sens que pour exploiter de tels rapports a�n de � �iquer � les utilisateurs, ce que certains peuvent souhaiteret qu'un cadre juridique permet dans certaines limites, à propos desquelles il serait judicieux de s'informer aupréalable.Les rapports de Sarg peuvent très vite occuper un espace disque extrèmement important, plusieurs dizaines deGo par mois ( !), avec certaines options comme l'enregistrement d'URL longues pour suivre très précisémenttoutes les connexions. Sarg crée des dizaines de milliers de petits �chiers, ce qui justi�e un formatage de lapartition /var/spool avec une haute densité d'inodes (voir section 2.1).

49une règle de �rewall pourra autoriser certaines adresses IPs à contourner Squid, pour le proxy apt par exemple

18

Page 19: UnréseauDebianGNU/Linux pouruncentredeformationploug22.free.fr/doc/debian-install-reseaux-potin.pdf · 2005. 10. 12. · Samba),serveurdetemps,sauvegardes(Amandaetpartimage). Pour

6.4.2 SquidGuardSquidGuard est un plugin pour Squid, qui permet de �ltrer des URLs de manière extrêmement puissante à partir

de bases de données que l'on trouve facilement sur Internet, constituant autant de politiques de censure établies selondes critères toujours discutables. L'Éducation Nationale préconise les bases de données de l'Université de Toulouse50,qui sont aussi utilisées par Slis51.

La con�guration de Squid doit être modi�ée pour indiquer la présence d'un programme de redirection. Commeprécédemment avec l'authenti�cation LDAP, on a�nera le nombre de process redirecteurs lancés simultanément enfonction du nombre de clients sur le réseau de manière à ne pas trop surcharger le serveur :

redirect_program /usr/bin/squidGuard -c /etc/squid/squidGuard.confredirect_children 50

Nous proposons une con�guration on ne peut plus simple de SquidGuard, qui permet un �ltrage très e�cace d'untype de données omniprésent sur le Web et dont les gens acceptent souvent avec plaisir de se passer : la publicité.Outre les a priori légèrement publiphobes qui animent ce type de démarche :-), �ltrer la publicité représente encoreune économie certaine de bande passante et se justi�e complètement en milieu scolaire.

Notre �chier de con�guration est disponible en téléchargement52 ainsi que les expressions régulières53 permettantle �ltrage de publicités. Pour activer ce �ltrage, on placera le �chier regexps dans le répertoire /var/squidGuard/dbauquel on donnera les permissions suivantes :

50http ://cri.univ-tlse1.fr/documentations/cache/squidguard.html51http ://slis.ac-grenoble.fr/52http ://logiciels-libres-cndp.ac-versailles.fr/debianinstall/�chiers/squiddGuard.conf53http ://logiciels-libres-cndp.ac-versailles.fr/debianinstall/�chiers/regexps

19

Page 20: UnréseauDebianGNU/Linux pouruncentredeformationploug22.free.fr/doc/debian-install-reseaux-potin.pdf · 2005. 10. 12. · Samba),serveurdetemps,sauvegardes(Amandaetpartimage). Pour

drwxrwx--- 4 root proxy 4096 Oct 2 2003 /var/squidGuard

On redirigera en�n les requêtes �ltrées vers une image quelconque disponible sur un serveur Web installé sur leréseau.

Le site o�ciel54 de SquidGuard détaille de manière poussée et progressive, à la manière d'un didacticiel, la con�-guration de �ltrages extrêmement complexes selon les heures, les utilisateurs, les machines, etc etc...

Les paramètre authenticate_children redirect-chidren demandent ajustement en fonction du nombre de clientssusceptibles de faire des requetes simultanées et selon les capacités du serveur. Tous ces paramètres seront a�nés àl'usage, une con�guration réellement optimisée de Squid permettant une économie substantielle de bande passante.

6.4.3 En conclusionEn imposant un �ltrage tellement draconien et une surveillance nominale de tous les instants, on peut réellement

arriver à dissuader les gens d'utiliser ce fabuleux outil qu'est Internet. Cette possibilité existe et comble peut êtrecertains egos, avec de jolis graphiques générés sans e�ort pour parfaire cette activité de � surveillance �. Chacun étantmaître de ce qu'il fait sur un réseau dont il est responsable, insistons au moins sur l'existence d'une législation quiencadre ce qui ressemble fort à une dérive à forte connotation totalitaire...

6.5 Xntpd, serveur de tempsPackages requis : ntp, ntp-simple, ntpdate pour les clientsUn serveur de temps est indispensable sur un réseau car il fournit une source locale unique de synchronisation

horaire pour toutes les machines. Si celles ci sont à l'heure, on peut être assuré que ce qui est consigné dans les logsde n'importe quel ordinateur se produit exactement au même moment que sur n'importe quel autre, ce qui permetune analyse précise de tout dysfonctionnement ou incident. D'autre part, la synchronisation avec une source extérieurede temps sera la première chose demandée en cas de problème venant de l'extérieur (spam, intrusion, etc...) par leresponsable du site distant.

Nous avons donc besoin d'un serveur de temps sur notre réseau. Il s'appelle Xntpd, son installation et sa con�-guration sont extrêmement simples pour l'usage basique auquel nous le destinons : dans son �chier de con�guration/etc/ntp.conf, on indiquera simplement l'adresse ip (pas le nom) du serveur distant sur lequel nous allons nous syn-chroniser. Des listes de serveurs Ntp publics55 sont disponibles sur le Web.

Il est à noter que Ntpd se synchronise sur sa source de temps en continu, il est impossible de lui préciser à quelleheure il doit le faire. Une liaison permanente est donc nécessaire. Il faudra à chaque démarrage du serveur une duréeassez longue avant qu'il s'estime capable de fournir l'heure aux clients (compter une petite heure), délai avant lequelceux ci répondront qu'aucun serveur de temps n'a pu être trouvé. Ce délai est tout à fait normal.

Tous les clients vont venir se synchroniser au boot et au début de chaque heure sur notre serveur (alias DNSchronos), sans connexion à l'extérieur, au moyen de cette entrée dans leur crontab :

0 * * * * /usr/sbin/ntpdate chronos > /dev/null

6.6 CUPS, serveur d'impressionPackages requis : cupsys (nombreuses dépendances), gs en cas d'absence d'imprimante PostScript.Le Common Unix Printing System constitue aujourd'hui un standard dans le monde de l'impression sous Unix. Son

installation dans Debian est aussi simple que le reste, et il s'administre au moyen d'une interface Web très convivialeque nous ne commentons pas. Elle écoute sur le port 631.

Ghostscript consiste en une suite d'outils et de �ltres qui permettent de transformer du PostScript en langagecompréhensible par une imprimante non PostScript. Son installation n'est requise que si on ne dispose pas d'une telleimprimante, le package Debian gs-gpl étant bien adapté. Le serveur d'impression appellera automatiquement le bon�ltre de Ghostscript selon la con�guration de l'imprimante.

54http ://www.squidguard.org/55http ://ntp.isc.org/bin/view/Servers/WebHome

20

Page 21: UnréseauDebianGNU/Linux pouruncentredeformationploug22.free.fr/doc/debian-install-reseaux-potin.pdf · 2005. 10. 12. · Samba),serveurdetemps,sauvegardes(Amandaetpartimage). Pour

Les clients pourront venir s'accrocher sur le serveur CUPS au moyen des utilitaires variés de con�guration desimprimantes tels qu'ils existent aujourd'hui dans Gnome ou KDE. On veillera à ce que les �chiers temporaires soientbien e�acés du spool après traitement des tâches d'impression pour ne pas encombrer le disque, mais CUPS gère enprincipe cela très bien.

7 Second serveur : l'authenti�cationNotre second serveur va héberger les comptes des utilisateurs et donc permettre de les authenti�er lorsqu'ils veulent

utiliser un ordinateur ou une ressource du réseau. Nous étudierons la mise en place des fonctionnalités suivantes :courriel (SMTP et pop), authenti�cation proprement dite (NIS), partage de répertoires du serveur (NFS), mise àdisposition de documents et consultation de ceux ci dans un espace personnel (Web et FTP).

7.1 Courrier : SMTP et Pop3Packages requis : post�x, qpopperLe SMTP n'est pas à proprement parler un service authenti�é (bien que Post�x supporte cela), mais il est plus

simple de placer ce service sur le même serveur que la base de comptes. D'autre part, pour éviter les mauvaises surprisescomme la désinstallation de la moitié des logiciels qu'on a passé du temps à con�gurer, il est préférable de changer leserveur SMTP immédiatement après installation de Debian. Le serveur SMTP constitue en e�et un composant centraldu système d'exploitation qui peut ainsi envoyer des mails à son administrateur pour le prévenir ou l'alerter à proposde telle ou telle chose. Il est impossible de désinstaller cette fonctionnalité, et changer ce serveur suppose de toucherau c÷ur d'un système équilibré.

Exim, le serveur SMTP par défaut de Debian, fonctionne bien pour des besoins extrêmement modestes. Post�xdonnera satisfaction pour des besoins plus évolués et n'est pas complexe à mettre en place, au contraire de sendmailqu'il a de plus en plus tendance à remplacer partout. Quelle que soit la solution retenue, il faut tout de même semontrer vigilant en mettant en place ce type de service :

� Soit le serveur n'est là que pour des besoins strictement internes de formation et d'acheminement de messagesentre utilisateurs locaux, et en aucun cas il n'est ouvert sur Internet. Auquel cas on peut supposer que personnene va spammer...

21

Page 22: UnréseauDebianGNU/Linux pouruncentredeformationploug22.free.fr/doc/debian-install-reseaux-potin.pdf · 2005. 10. 12. · Samba),serveurdetemps,sauvegardes(Amandaetpartimage). Pour

� Soit le serveur est ouvert sur Internet. Un serveur SMTP mal con�guré, qu'on appelle relai ouvert, va servir trèsrapidement pour spammer, de la part de nuisibles qui recherchent activement aux quatre coins d'internet ce typede � service �. Il faut être bien conscient que c'est l'administrateur de ce serveur qui sera tenu pour responsablede la dizaine de milliers de messages acheminés, pourtant à son insu, en quelques instants par un inconnu ayantutilisé le Post�x pour répandre ses nuisances. Il importe donc, par défaut, de sécuriser le plus possible un serveurSMTP.

� Dans tous les cas de �gure, root ne doit pas faire de courrier pour des raisons de sécurité. La procédure pourrediriger ses messages �gure dans les conseils généraux d'installation d'un système d'exploitation (section 2.3).

7.1.1 Post�x : installation et con�guration simplePost�x s'installe par apt-get en l'appelant tout simplement par son nom. L'interface debconf propose une pré con�-

guration qui conviendra pour un usage basique et strictement interne. L'unique �chier /etc/post�x/main.cf renfermel'essentiel de la con�guration.

Voici un �chier simple généré par debconf :

# appending .domain is the MUA's job.append_dot_mydomain = nomyhostname = abraracourcixalias_maps = hash:/etc/aliasesalias_database = hash:/etc/aliasesmyorigin = /etc/mailnamemydestination = mp-soa.net, abraracourcix.mp-soa.net,\abraracourcix, localhost.localdomain, localhostrelayhost =mynetworks = 127.0.0.0/8mailbox_command =mailbox_size_limit = 0recipient_delimiter = +

Deux paramètres fondamentaux sur lesquels repose Post�x :� mynetworks : dé�nit ce que Post�x considère comme réseaux dont il a la charge.� mydestination : dé�nit les domaines pour lesquels Post�x s'estime serveur de courrier (suppose une entrée MX

dans le DNS, voir 7.1.3), et pour lesquels il va accepter les messages à destination de ses utilisateurs.Relayhost dé�nit un serveur intermédiaire se chargeant de router les messages à notre place ; il est ici volontairementlaissé vide pour router nous mêmes nos messages sur internet, a�n d'avoir la trace dans /var/log/mail.info. On peutainsi savoir si le serveur SMTP distant du destinataire a accepté ou non le message, et donc avoir la preuve de sonbon acheminement. Ceci est impossible avec un relai.

Véri�ons tout de suite ce qui se passe lorsque quelqu'un tente d'utiliser notre serveur de courriel de l'extérieur,puis de l'intérieur du réseau ; nous l'utilisons en ligne de commande au moyen des commandes SMTP56. Le lecteur nonfamilier avec celles-ci pourra les reproduire sur le serveur SMTP de son fournisseur d'accès en attendant de s'installerson propre serveur. Commençons par une connexion telnet depuis l'extérieur :

[yves@shalmaneser[ttypts/2]~]$ telnet mpsoa.net4.nerim.net 25Trying 62.212.122.37...Connected to mpsoa.net4.nerim.net.Escape character is '^]'.220 abraracourcix ESMTP Postfix (Debian/GNU)helo abraracourcix250 abraracourcixmail from:<[email protected]>250 Okrcpt to:<[email protected]>554 <[email protected]>:\ Recipient address rejected: Relay access deniedquit221 ByeConnection closed by foreign host.

56http ://www.commentcamarche.net/internet/smtp.php3

22

Page 23: UnréseauDebianGNU/Linux pouruncentredeformationploug22.free.fr/doc/debian-install-reseaux-potin.pdf · 2005. 10. 12. · Samba),serveurdetemps,sauvegardes(Amandaetpartimage). Pour

Il ne se passe pas du tout la même chose depuis la machine � arrakis � qui se trouve à l'intérieur du réseau :

arrakis% telnet abraracourcix smtpTrying 192.168.28.6...Connected to abraracourcix.mp-soa.net.Escape character is '^]'.220 abraracourcix ESMTP Postfix (Debian/GNU)helo abraracourcix250 abraracourcixmail from:[email protected] Okrcpt to:[email protected] Okdata354 End data with <CR><LF>.<CR><LF>grouik.250 Ok: queued as 4A69A63920quit221 ByeConnection closed by foreign host.

Nous avons dans les deux cas tapé exactement les mêmes commandes, ce qui prouve deux choses :1. Par défaut, Post�x livré avec Debian est sécurisé et interdit de relayer quoi que ce soit depuis l'extérieur dans la

mesure où seule une machine locale est autorisée à poster hors de notre domaine (on véri�era que n'importe quipeut poster à destination d'un de nos utilisateurs locaux).

2. La ligne mynetworks contenant uniquement notre adresse de loopback, les machines du réseau local sur lequel leserveur dispose d'une adresse ip sont considérées comme faisant implicitement partie de mynetworks puisqu'unemachine du LAN a le droit de poster. Ceci est pratique si notre serveur se trouve sur un sous réseau en adressageprivé (ici 192.168.28.0/24). Cependant, si notre routeur est serveur SMTP, comme il dispose d'une adresse ippublique sur le réseau de notre fournisseur d'accès, nous relayons donc toute la classe d'adresses dans laquellenous avons obtenu une adresse à la connexion. On interdira alors toute autre machine à utiliser le serveur aveccette ligne :

mynetworks_style = host

7.1.2 Sécuriser Post�xNous disposons d'un serveur SMTP qui o�re le minimum vital de sécurité, nous pouvons maintenant le � blinder

� davantage puisque nous avons vu que depuis l'extérieur, n'importe qui peut adresser un message à nos utilisateurslocaux. On ne peut interdire cela si nous souhaitons recevoir du courrier, le problème majeur du spam est là. Il estcependant possible de prendre certaines précautions dans le �chier main.cf. Toute modi�cation de la con�gurationdu serveur implique un redémarrage au moyen du script idoine de /etc/init.d, tandis qu'une simple modi�cation desbases de données (�chiers access, canonical, aliases, etc...) ne demande qu'une relecture par Post�x au moyen de lacommande post�x reload.

Voici les directives à placer dans le �chier main.cf :

smtpd_client_restrictions = permit_mynetworks, reject_unknown_client,hash:/etc/postfix/Access

Cette ligne permet de � jeter � à la connexion les machines sans DNS inverse (voir section 6.1) de même que cequi vient des domaines dé�nis dans le �chier /etc/post�x/access dont voici un petit exemple :

aol.com REJECThotmail.com REJECTmsn.com REJECT 550 MSN c'est MAL

cloudyweather.net DISCARDemailisfun.com DISCARDstd-up.com DISCARD

23

Page 24: UnréseauDebianGNU/Linux pouruncentredeformationploug22.free.fr/doc/debian-install-reseaux-potin.pdf · 2005. 10. 12. · Samba),serveurdetemps,sauvegardes(Amandaetpartimage). Pour

L'action REJECT provoquera un bounce (renvoi à l'expéditeur par rebondissement) avec un message d'erreur plusexplicite éventuel (ici pour les utilisateurs de MSN), tandis que l'action DISCARD fera partir le message dans le trounoir sans qu'il en reste la moindre trace ailleurs que dans les logs du serveur.

Ce �chier complété, on reconstruira la table access.db au moyen de la commande postmap /etc/post�x/access et onfera relire cette base à Post�x par la commande post�x reload. Ce simple script57 permet de � discarder � simplementun nouveau domaine que l'on considère comme ne produisant que du spam et dont on ne veut absolument plus lireaucun message ni en informer l'expéditeur.

smtpd_sender_restrictions = reject_non_fqdn_sender,reject_unknown_sender_domain, reject_maps_rbl

Nous nous occupons ici du champ From : du mail, qui permet de rejeter les expéditeurs présentant des noms dedomaines incomplets ou inconnus, ou encore inscrits dans les listes noires RBL58. On évitera de multiplier ce type delistes noires, en particulier la DUL qui cherche de manière un peu vaine voire stupide à stopper les messages émanantdirectement d'abonnés de fournisseurs d'accès ne passant pas par les serveurs SMTP de ceux ci.

smtpd_recipient_restrictions = permit_mynetworks, check_relay_domains

N'autorise à personne d'envoyer des mails à l'extérieur hors des domaines que nous relayons, sauf nos utilisateursqui, eux, peuvent écrire à qui ils veulent.

smtpd_helo_required = yes

Impose la commande SMTP HELO pour initier une session.

disable_vrfy_command = yes

Inactive la commande vrfy permettant de véri�er qu'un utilisateur existe. Il est super�u de faire la même chosepour les commandes expn (véri�cation de l'existence de listes) qui ne sont pas implémentées dans Post�x.

mailbox_command = /usr/bin/procmail

Il est toujours pertinent de prévoir l'utilisation de procmail, par exemple pour Spamassassin.Il manque la réécriture de l'adresse de certains expéditeurs dans le cas ou notre domaine est strictement local, ou si

nous avons besoin de transformer � [email protected] � en � [email protected] �. C'est la fonction du �chier/etc/post�x/canonical à déclarer ainsi dans le main.cf :

canonical_maps = hash:/etc/postfix/canonical

Ce �chier contient ce type d'entrées :

yves [email protected]

On reconstruira la base de données avec � postmap /etc/post�x/canonical � et on fera relire cette base au serveurpar la commande habituelle � post�x reload �.

7.1.3 Un serveur de messagerie sur le réseau : envoi et réceptionEnvoyer des messagesLa dernière manipulation permet de disposer vraiment d'un serveur de mail sur le réseau que les utilisateurs peuvent

déclarer dans un client classique de messagerie (Thunderbird, Evolution, Sylpheed, Kmail, etc...). Pour le moment,toute tentative en ce sens se traduit par un message d'erreur, puisque notre serveur Post�x n'est déclaré nulle partailleurs que dans sa propre con�guration (ligne mydestination), que personne ne peut deviner tant que cela ne �gurepas dans le bon service réseau : le DNS. C'est le sens de l'entrée MX à placer de cette manière dans le �chier de lazone mp-soa.net 59 :

57http ://logiciels-libres-cndp.ac-versailles.fr/debianinstall/�chiers/spam57il est préférable de ne jamais signaler à un spammer qu'une adresse existe d'une manière ou d'une autre, car cela valide notre existence

de son coté et fait prendre de la valeur à nos coordonnées qu'il revendra ensuite. Chacun choisira entre REJECT et DISCARD, cettedernière réduisant les erreurs et la charge réseau

58http ://www.mail-abuse.com/59Il est possible de déclarer un MX secondaire, recommandé en cas de coupures fréquentes ou de charge importante, avec la ligne � IN

MX 20 mail.toto.com �. Avec l'accord de son administrateur, ce serveur pourra prendre le relai en cas d'indisponibilité du MX principal.Les chi�res n'ont pas d'importance en eux mêmes mais indiquent simplement un ordre de priorité (on aurait tout aussi bien pu indiquer1000, 1001 et 3000 pour un éventuel autre MX).

24

Page 25: UnréseauDebianGNU/Linux pouruncentredeformationploug22.free.fr/doc/debian-install-reseaux-potin.pdf · 2005. 10. 12. · Samba),serveurdetemps,sauvegardes(Amandaetpartimage). Pour

IN NS andromedeIN MX 10 abraracourcix

localhost IN A 127.0.0.1

Dès que la zone est actualisée dans bind, la commande dig mx mp-soa.net renvoie en�n quelque chose de satisfaisant :

;; ANSWER SECTION:mp-soa.net. 86400 IN MX 10 abraracourcix.mp-soa.net.

Important : Une entrée MX ne doit jamais pointer sur une entrée CNAME, c'est à dire un alias, mais toujourssur une entrée A. Ce n'est pas le cas, par contre, d'entrées comme smtp, pop, imap, alias qui simpli�ent et stabilisentla con�guration des logiciels clients.

En incrémentant le numéro de série de la zone et en la rechargeant dans Bind, nous aurons l'agréable surprise devoir le répertoire /var/mail du serveur se remplir de �chiers au nom du login des utilisateurs vers lesquels nous faisonsdes tests. Mais ces utilisateurs ne peuvent toujours pas aller chercher les messages en attente....

Recevoir des messages

Un serveur SMTP sert à transporter des messages sur un réseau, y compris internet. A ce titre, il assure deuxfonctions :

1. Envoyer un message à un MX distant2. Jouer à son tour le rôle de MX et accepter des messages en les plaçant là où les utilisateurs peuvent venir les

chercher.Mais en aucun cas le serveur SMTP n'est là pour servir de boite à lettres aux utilisateurs : son rôle se limite à faire

le facteur. La boîte à lettres est assurée par un serveur pop, dans notre cas le classique qpopper. Ce service, installépar apt-get, ne demande pas de con�guration particulière en raison du caractère extrêmement déterminé du protocolepop. Il s'agit généralement d'un service d'inetd, sauf charge particulière, qui se met à fonctionner immédiatement dèsqu'un client l'interroge et s'authenti�e. Mais il nous faut mettre en place un vrai serveur d'authenti�cation, c'est lafonction majeure du serveur que nous sommes en train de con�gurer.

7.2 NISPackages requis : Nis (le même package pour le serveur comme les clients), portmapper.Les services principaux de notre second serveur vont permettre l'authenti�cation et le partage de répertoires sur le

réseau. Nous utilisons le couple NIS / NFS, standard on ne peut plus classique même si les administrateurs de réseaufamiliers des environnements Microsoft r© n'en ont guère entendu parler.

NIS et NFS reposent sur le portmapper, démon qui leur attribue dynamiquement un numéro de port car ilsn'écoutent pas sur un port dédié. Son installation est automatique par le jeu des dépendances de NIS et NFS. Lacommande rpcinfo permet d'obtenir les informations concernant les services du portmapper disponibles.

Network Information Service est un service d'annuaire, aussi appelé yellow pages, développé à l'origine par SunMicrosystems ; c'est le standard historique dans le monde des stations de travail Unix. Aujourd'hui, il a tendance àêtre supplanté de plus en plus par LDAP, mais demeure relativement simple et léger à mettre en place et remplitparfaitement sa tâche d'authenti�cation dans le cadre d'une petite structure qui, avec relativement peu d'utilisateurs,n'a pas besoin de brancher sur un annuaire des applications complexes. Si l'authenti�cation se fait à travers plusieursapplications (clients Unix, Samba, un logiciel de publication de type spip, un serveur de mail, etc etc...), on considéreraLDAP avec plus d'intérêt mais nos besoins excèdent ici très peu la synchronisation d'un �chier de mots de passe Unixavec une application réseau d'authenti�cation pour l'ouverture de session sur les machines clientes.

Un serveur NIS maître est relativement simple à con�gurer si l'on suit bien rigoureusement la procédure indiquéedans le NIS HOWTO Debian60 dont nous donnons une traduction française. Pour mémoire :

1. Déclarer dans /etc/hosts le FQDN du serveur de cette manière :192.168.28.6 abraracourcix.mp-soa.net abraracourcix

2. Placer le nom du domaine NIS dans /etc/defaultdomain (pour nous mp-soa.net).3. Déclarer le serveur comme maître (master) dans /etc/default/nis4. Déclarer le couple netmask/network dans /etc/ypserv.securenets

60http ://logiciels-libres-cndp.ac-versailles.fr/debianinstall/nis.debian.howto.fr

25

Page 26: UnréseauDebianGNU/Linux pouruncentredeformationploug22.free.fr/doc/debian-install-reseaux-potin.pdf · 2005. 10. 12. · Samba),serveurdetemps,sauvegardes(Amandaetpartimage). Pour

5. Préciser dans /var/yp/Make�le que nous fonctionnons en shadow passwords61 en dé-commentant les lignesappropriées :MERGE_PASSWD=trueMERGE_GROUP=true

Consulter le HOWTO à propos des di�érentes options, de sécurité en particulier.6. Démarrer nis : /etc/init.d/nis start7. Initialiser le serveur : /usr/lib/yp/ypinit -mAprès l'ajout d'un utilisateur, la commande make (invoquée dans le répertoire /var/yp où se trouve le Make�le)

permet de compiler la base de comptes et permettre à l'utilisateur de s'authenti�er sur une station con�gurée commecliente NIS 62.

On pourra véri�er le fonctionnement du serveur NIS (ici abraracourcix) depuis un ordinateur quelconque de cettemanière :

[yves@ash[ttypts/6]~/temp/tex]$ rpcinfo -p abraracourcixprogram no_version protocole no_port100000 2 tcp 111 portmapper100000 2 udp 111 portmapper100009 1 udp 805 yppasswdd100004 2 udp 803 ypserv100004 1 udp 803 ypserv100004 2 tcp 807 ypserv100004 1 tcp 807 ypserv

600100069 1 udp 808 ypxfrd600100069 1 tcp 810 ypxfrd

100024 1 udp 32768 status100024 1 tcp 32768 status100007 2 udp 817 ypbind100007 1 udp 817 ypbind100007 2 tcp 820 ypbind100007 1 tcp 820 ypbind

On consultera le NIS HOWTO63 en complément de ce HOWTO Debian.

7.3 SambaPackages requis : samba (nombreuses dépendances et outils conseillés).Par hypothèse, nous exposons ici l'installation d'un réseau complet de machines clientes sous environnement Unix.

Il n'est donc pas question d'envisager le cas de clients Microsoft Windows r©, même dans un contexte de doubleamorçage des stations où deux systèmes d�exploitation seraient présents.

La documentation sur Samba, qui permet à un serveur Unix d'émuler le protocole SMB d'ouverture de session,de partage de �chiers et d'imprimantes, et ainsi de se faire passer pour un serveur MS-Windows r© NT/2000 est trèsabondante sur Internet. D'autre part, le logiciel libre SambaEdu364 développé par et pour l'Éducation Nationale sanscompétence Unix particulière de disposer d'un serveur Samba pour gérer ses clients MS-Windows r©.

7.4 NFSPackages requis : nfs-kernel-server (support du serveur NFS compilé dans le kernel, sinon nfs-user-server). Le

package nfs-common, indispensable, sera installé par dépendances.Network File System partage des répertoires sur un réseau. Il est très facile à con�gurer, on peut mettre en service

des failles de sécurité béantes en quelques instants avec ce protocole. Il est donc recommandé de se documentersoigneusement à son sujet, à commencer par le NFS HOWTO65 (en français). NFS n'est de toute manière pas un

61les mots de passe contenus dans le �chier /etc/password posent un gros problème : ce �chier est lisible par tout le monde même si lesmots de passe sont cryptés. La solution, assez ancienne, consiste donc à placer le mot de passe dans un �chier lisible uniquement par root,/etc/shadow. Quasiment toutes les distributions modernes fonctionnent ainsi.

62la section 9.2 montrera que cette con�guration est tout à fait triviale par rapport à un client LDAP63http ://www.freenix.fr/unix/linux/HOWTO/NIS-HOWTO.html64http ://www.crdp.ac-caen.fr/se3/65http ://www.freenix.fr/unix/linux/HOWTO/NFS-HOWTO.html

26

Page 27: UnréseauDebianGNU/Linux pouruncentredeformationploug22.free.fr/doc/debian-install-reseaux-potin.pdf · 2005. 10. 12. · Samba),serveurdetemps,sauvegardes(Amandaetpartimage). Pour

protocole sécurisé, il suppose un minimum de con�ance entre les utilisateurs qui accèdent aux données partagées.N'importe qui pouvant être root sur une machine Unix peut opérer le montage NFS si cette machine y est autorisée(par son adresse ip), puis prendre l'uid de n'importe quel utilisateur et ainsi s'approprier toutes ses données si /homeest exporté via NFS. Ceci, dans un centre de formation où ne viennent que des utilisateurs passagers, ne pose pas deproblème majeur. Il en ira de même dans un établissement où les utilisateurs pouvant être root sous GNU/Linux surleur portable sont encore relativement rares (comme dans un collège). On observe de vastes sites où les risques sontpotentiellement plus importants, comme des universités, recourir à NFS pour le home des utilisateurs, l'administrateurréseau étant conscient de ce risque.

Précisons tout de même qu'une installation de NFS où l'on prend les précautions indiquées dans ce document etsurtout dans le HOWTO NFS ne met absolument pas en péril la sécurité du serveur lui même, mais, répétons le, lacon�dentialité des données des utilisateurs.

L'exportation classique de /home permettra à chacun de retrouver l'intégralité de ses données, son courrier, lespréférences de ses logiciels, etc etc... à l'identique quelque soit l'ordinateur utilisé. Ceci est particulièrement bien adaptéau contexte de l'Éducation Nationale où les utilisateurs sont par défaut mobiles et ne possèdent pas un poste de travaildédié : si un utilisateur bouge une icône sur son bureau de quelques centimètres, il la retrouvera à cette nouvelleposition sur un autre ordinateur, ceci n'ayant rien à voir avec des � pro�ls errants �. Cette déportation d'un répertoireest tout à fait transparente pour l'utilisateur, qui ne se rend pas compte que ses données ne se trouvent pas sur lamachine locale.

La con�guration de NFS est très simple. On commencera par dé�nir ce que nous exportons dans le �chier/etc/exports :

/home 192.168.28.0/255.255.255.0(rw, root_squash)/data/stagiaires 192.168.28.0/255.255.255.0(rw, root_squash)

On autorisera ensuite les machines du réseau local à opérer le montage dans la con�guration des tcp wrappers :

/etc/hosts.deny : portmap : ALL/etc/hosts.allow : portmap : 192.168.28.0/255.255.255.0Redémarrer le serveur NFS, puis véri�er son fonctionnement au moyen de la commande déjà utilisée avec NIS

rpcinfo -p abraracourcix :

program vers proto port100000 2 tcp 111 portmapper100000 2 udp 111 portmapper100024 1 udp 964 status100024 1 tcp 966 status100003 2 udp 2049 nfs100003 3 udp 2049 nfs100021 1 udp 32768 nlockmgr100021 3 udp 32768 nlockmgr100021 4 udp 32768 nlockmgr100005 1 udp 32770 mountd

Le montage se fait avec la comande mount abraracourcix :/data/stagiaires /mnt sur une machine cliente ; la com-mande showmount, sur le serveur cette fois, a�chant la liste des machines ayant réalisé des montages. La section 9.2consacrée au paramétrage des stations expliquera quelle ligne rajouter dans /etc/fstab pour automatiser le montagedu répertoire personnel importé au boot.

7.5 Web et FTPPackages requis : apache, proftpd, puis php4, mysql-server et phpmyadmin selon les besoins

7.5.1 ApacheL'intérêt d'un serveur Web couplé à un serveur FTP accroché à la base de comptes du serveur est évident. L'ins-

tallation d'Apache, PHP et MySQL pour mettre en place des sites dynamiques est documentée un peu partout, nousy renvoyons 66. Insistons simplement sur quelques fonctionnalités confortables pour les utilisateurs.

66backport de PHP4 pour Woody : � deb http ://packages.dotdeb.org/ ./ �. Packet yaz (support z39.50 pour PHP), justepour les bibliothèques, le paquet deb est disponible sur http ://perso.dotdeb.org/misc/php4-yaz_4.3.8-8.dotdeb.1_i386.deb � debhttp ://www.indexdata.dk/debian indexdata/woody released �

27

Page 28: UnréseauDebianGNU/Linux pouruncentredeformationploug22.free.fr/doc/debian-install-reseaux-potin.pdf · 2005. 10. 12. · Samba),serveurdetemps,sauvegardes(Amandaetpartimage). Pour

On placera dans /etc/skel un répertoire public_html avec les permissions 755 et on donnera aux répertoires person-nels eux mêmes les permissions 711, de manière à ce que ce public_html puisse être consulté par tout le monde avec unnavigateur Web à l'intérieur du réseau. Chacun peut ainsi déposer des pages Web ou des documents aisés à consulter,en particulier si l'on forme à la réalisation de contenus pour le Web. Apache intègre dans sa con�guration par défautle répertoire �/public_html comme chemin du répertoire des utilisateurs. On consultera simplement ce répertoire àl'adresse http ://serveurweb.domaine/�utilisateur, non seulement pour voir les pages de chacun mais également entant que moyen simple d'accéder à un �chier partagé (cours, devoir, corrigé...).

7.5.2 ProFTPdNous présentons le protocole FTP dans le contexte un peu particulier d'un serveur auquel les utilisateurs accèdent

de toute manière en écriture par le biais de leur compte personnel en ouvrant une session. L'intérêt est de pouvoirmontrer, voire apprendre ce protocole comme un des modes les plus courants de mise en ligne de contenus sur unserveur distant, que l'on retrouve ensuite sur une machine qui ne porte pas forcément le même nom par la magie desalias DNS.

Avant de bien connaître ce protocole qui donne accès en écriture sur le disque, on prendra garde à :� ne pas ouvrir le FTP sur le routeur, évidemment, mais à laisser ce serveur FTP en usage privé à l'intérieur du

réseau� ne pas permettre l'usage du FTP anonyme, dont l'accès est désactivé par défaut dans la version Debian de

Proftpd (il su�t de décommenter les lignes ad-hoc du �chier de con�guration).� ne pas utiliser wu-ftpd, souvent proposé comme serveur FTP par défaut. Proftpd est un logiciel très sécurisé

au vu de son nombre quasiment nul d'alertes de sécurité depuis plusieurs années.� Pour un usage très ponctuel, on en fera un service d'inetd plutôt que de le laisser tourner en permanence (option

claire du �chier de con�guration).Le serveur Proftpd est un logiciel très évolué, qui peut intégrer sa propre base d'utilisateurs ainsi inconnus du systèmelui même. Il propose un chroot très simple à mettre en place. Le principe du chroot est de modi�er la racine du systèmede �chiers de manière à � emprisonner � l'utilisateur dans une � cage � qui l'empêche de se promener librement dansle reste du disque. Si seuls les formateurs appartiennent au groupe du même nom, le chroot se met en place ainsi :

DefaultRoot ~/public_html users,!formateurs

On pourra véri�er avec un client ftp que chaque utilisateur n'appartenant pas au groupe des formateurs se retrouvedans le public_html de son répertoire personnel sans pouvoir remonter au dessus.

8 Services réseau complémentairesCes services contribuent à sécuriser le réseau, non plus comme nous l'avons vu à de nombreuses reprises contre

des intrusions extérieures, mais cette fois contre des dysfonctionnements matériels, voire des malveillances internes auréseau. La sécurité, c'est aussi celle des données de tout un chacun et l'intégrité des systèmes comme des disques durs.

Pour les sauvegardes comme pour les onduleurs, ces logiciels demandent d'amples tests, y compris lorsque cesservices semblent fonctionner convenablement. Par exemple, il ne faudra pas craindre de couper le secteur pour véri�erla réaction des serveurs, ou détruire un répertoire personnel pour en véri�er la bonne restauration. Le véritable premiertest se produira lorsqu'il y aura un réel � pépin � sur le réseau...

8.1 Nut : gestion des onduleursPackages requis : nut, nut-cgi pour obtenir de jolis graphiquesNetwork UPS tool permet de surveiller l'alimentation électrique d'un onduleur par le port série de l'ordinateur

67 ; il provoque l'extinction propre du système lorsque la panne de courant a été assez longue pour faire descendre lacharge des batteries à un état critique ; ainsi les partitions des disques durs sont démontées normalement et l'ensemblede leur contenu, système comme données, ne court aucun risque. En e�et, une rupture brutale d'alimentation d'unordinateur peut avoir des conséquences catastrophiques sur le contenu des disques : onduler un serveur ne su�t pas,encore faut-il surveiller cet onduleur avec un logiciel qui sait ce qu'est une rupture d'alimentation et comment y faireface.

Nut comporte également une partie cliente qui lui permet de fonctionner en réseau, c'est à dire interroger parTCP/IP un serveur qui surveille par sa liaison série l'onduleur, qui ne dispose que d'un seul port pour cela. Ce ou

67l'USB est implémenté dans les dernières versions mais risque de poser des problèmes de compatibilité. Ne pas chercher à faire marcherun onduleur USB avec la version de Nut disponible dans Debian Woody.

28

Page 29: UnréseauDebianGNU/Linux pouruncentredeformationploug22.free.fr/doc/debian-install-reseaux-potin.pdf · 2005. 10. 12. · Samba),serveurdetemps,sauvegardes(Amandaetpartimage). Pour

ces serveurs esclaves tomberont les premiers, avant le maître, en cas de baisse critique de l'alimentation, le maîtreattendant la chute des esclaves avant de s'éteindre. . La richesse fonctionnelle de Nut en fait un des logiciels les pluspuissants pour ce type d'usage.

On respectera deux démarches de bon sens lors de l'installation d'onduleurs et de leur surveillance :1. Tout le matériel actif doit être ondulé, en particulier les switchs qui relient les serveurs partageant le même

onduleur. Comme l'esclave surveille l'onduleur du maître par réseau, cette surveillance marchera moins bien lorsd'une panne si le switch n'est pas ondulé :). Si l'esclave surveille le maître en l'appelant par son nom et non parson adresse, on veillera à la disponibilité du service DNS en cas de coupure, et donc faire tourner celui ci sur leserveur maître.

2. Dans la con�guration du logiciel de surveillance, on laissera les batteries de l'onduleur se vider jusqu'à une chargecritique avant de faire tomber le serveur, au lieu de le faire à la moindre coupure. La fonction même d'un onduleurest d'assurer une continuité de service en cas de coupure relativement brève.

8.1.1 Con�guration de nut en mode maîtreNut se comporte en mode client / serveur même sur un seul ordinateur : le serveur s'appelle upsd, c'est lui qui

obtient les informations sur l'état des batteries par le port série. Le client, lui, s'appelle upsmon, il s'authenti�e auprèsd'upsd, surveille l'onduleur et provoque l'arrêt du serveur. Le client comme le daemon ont chacun leur �chier decon�guration dans /etc/nut.

Voici la con�guration de Nut dans la version 0.45 de Debian Woody 68avec un résumé adapté, qui n'en remplacepas du tout la lecture, du �chier /usr/share/doc/nut/README.Debian. On considère que sur le système maître, uncâble série relie le serveur, port ttyS0 ou COM1, à un onduleur de marque APC, modèle Smart UPS.

1. Tester, sous root, le bon fonctionnement du pilote de l'onduleur à travers le câble série. Les pilotes se trouventdans /lib/nut, on pourra faire le test de cette manière :[root@andromede[ttypts/1]/lib/nut]# ./apcsmart /dev/ttyS0Network UPS Tools - APC Smart protocol driver 0.60 (0.45.5)Detected SMART-UPS 700 [QS0237332128] on /dev/ttyS0 (level 3)

L'onduleur répond parfaitement, nous pouvons donc donner les droits au groupe nut sur le port série de cettemanière :crw-rw---- 1 root nut 4, 64 Mar 28 20:01 /dev/ttyS0

2. Le �chier /etc/nut/upsd.conf est le �chier de con�guration du serveur upsd, qui assure la surveillance e�ectivedes batteries de l'onduleur. Cette ligne :UPS myups /var/lib/nut/apcsmart-ttyS1 apcsmart /dev/ttyS0

déclare notre onduleur, que nous appelons myups ; nous avons véri�é sa présence sur le port COM 1 (/dev/ttys0),et sa compatibilité avec le pilote APC.

3. Dans le même �chier, nous dé�nissons ensuite les listes de contrôle d'accès (ACLs) de cette manière :

ACL all 0.0.0.0/0ACL localhost 127.0.0.1/32ACL mynetwork 192.168.1.0/24

Nous commençons donc par dé�nir des règles d'accès, en leur donnant un nom : localhost pour le loopback etmynetwork pour le réseau. Puis nous allons dé�nir des actions en fonction de ces règles, à savoir autoriser unaccès complet pour la machine locale et autoriser les machines du réseau à accéder aux données du serveur etdonc à l'état de l'onduleur (on remplacera le mot � password � par un mot de passe quelconque à reporter dansla con�guration de l'upsmon de chaque client) :

# grant your localhost master access to upsd (a good idea)ACCESS grant master localhost password

# grant your network monitor access to upsdACCESS grant login mynetwork password

68La con�guration des versions 1.4 et 2.0 de Nut disponibles en Sid sont sensiblement di�érentes et exposées, avec la procédure demigration, dans le Debian README fourni avec la documentation du logiciel.

29

Page 30: UnréseauDebianGNU/Linux pouruncentredeformationploug22.free.fr/doc/debian-install-reseaux-potin.pdf · 2005. 10. 12. · Samba),serveurdetemps,sauvegardes(Amandaetpartimage). Pour

# deny everybody elseACCESS deny all all

4. Dans le �chier de con�guration du client, upsmon.conf, on renseignera correctement cette ligne :

MONITOR myups@localhost 1 password master

5. On s'assurera de la présence éventuelle d'un �chier /etc/default/nut, où déclarer le démarrage du client et duserveur. On peut passer très longtemps à essayer de démarrer le service s'il est déclaré o� dans ce �chier. Ceciconcerne surtout les versions ultérieures de nut.

8.1.2 Démarrage du service et test de son bon fonctionnementCette con�guration achevée, on peut démarrer nut et observer dans les logs le démarrage du serveur et l'authenti-

�cation immédiate du client :

Mar 28 21:01:09 andromede apcsmart[4534]: Startup successfulMar 28 21:01:09 andromede upsd[4539]: Read data for UPS [myups] successfullyMar 28 21:01:09 andromede upsd[4539]: Data source for UPS [myups]: /var/lib/nut/apcsmart-ttyS0Mar 28 21:01:09 andromede upsd[4540]: Startup successfulMar 28 21:01:10 andromede upsmon[4546]: Startup successfulMar 28 21:01:10 andromede upsd[4540]: Connection from 127.0.0.1Mar 28 21:01:10 andromede upsd[4540]: Client 127.0.0.1 logged into UPS [myups]

Puis on obtiendra au moyen de la commande upsc des informations sur l'état de l'onduleur, qui est ici à 100 % desa charge et dont les batteries datent du 14 Septembre 2002 :

[root@andromede[ttypts/1]# upsc localhosthost: localhostMODEL: SMART-UPS 700SERIAL: QS0237332128STATUS: OLUTILITY: 237.9BATTPCT: 100.0ACFREQ: 50.00LOADPCT: 031.2BATTVOLT: 27.74OUTVOLT: 237.9UPSTEMP: 041.8UPSIDENT: UPS_IDENLOWXFER: 196HIGHXFER: 253WAKEDELAY: 000LINESENS: HGRACEDELAY: 020RTHRESH: 00ALRMDEL: 0BATTDATE: 09/14/02MFR: APC

8.1.3 Con�guration d'un client sur le réseauIl su�ra, sur un autre ordinateur alimenté par le même onduleur pour que cela serve à quelque chose :), de déclarer

dans le �chier de con�guration d'upsmon le nom de l'onduleur, la machine sur laquelle upsd l'observe, le mot de passepermettant de s'authenti�er auprès de cet upsd et le status, � slave �, de notre client :

MONITOR myups@andromede 1 password slave

La commande � upsc myups@andromede � renverra les informations ci dessus et les logs d'andromede montrerontl'adresse ip du client en train d'entrer dans le daemon.

30

Page 31: UnréseauDebianGNU/Linux pouruncentredeformationploug22.free.fr/doc/debian-install-reseaux-potin.pdf · 2005. 10. 12. · Samba),serveurdetemps,sauvegardes(Amandaetpartimage). Pour

Des con�gurations plus évoluées sont documentées, en particulier la déclaration d'utilisateurs de l'onduleur, systé-matiquement utilisés dans les dernières versions de nut.

Les �chiers de con�guration de nut v0.4569 et de nut v.2.070 sont joints à cet article.

8.2 Amanda : sauvegarde en réseau sur bandePackages requis : dump, amanda-server (sur le serveur), amanda-client (sur toute machine faisant l'objet d'une

sauvegarde)Au contraire du RAID qui assure une redondance et synchronise immédiatement toute modi�cation d'un �chier

sur plusieurs disques, un système de sauvegarde permet en plus de retrouver certaines données ayant été e�acées oumodi�ées par erreur. Sauvegarder, c'est ainsi conserver les états antérieurs d'un travail en plusieurs versions. Restaurer,c'est se livrer à une sorte de � voyage dans le temps � avec les bandes magnétiques 71. On disposera au mieux d'unjeu de bandes pour chaque jour de la semaine, puis d'un jeu de bandes pour chaque semaine, ensuite pour chaquemois, etc etc... Le volume de sauvegarde devenant vite important, les logiciels évolués procèdent à une sauvegarde diteincrémentale où seules les modi�cations des �chiers sont sauvegardées par rapport à une certaine date et un certainvolume.

Un placard blindé :) pour ranger les (nombreuses) bandes, situé loin du local serveur en cas de cambriolage,incendie, inondation... dépasse largement nos besoins ; mais on déterminera soigneusement le rythme des sauvegardeset le nombre de bandes en fonction de cette exigence : o�rir à nos utilisateurs la possibilité de retrouver leurs données,altérées ou e�acées par maladresse... Nous avons retenu 4 bandes avec une fréquence de sauvegarde hebdomadaire.

Automatic Maryland Advanced Network Disk Archiver est un logiciel libre, serveur de sauvegarde de partitionsde disques durs sur bande magnétique (de type DAT) fonctionnant en réseau, supportant un robot de manipulationautomatique des bandes et un nombre très important de systèmes de �chiers. Amanda ne requiert pas un espace disqueimportant, mais deux ou trois Go seront bienvenus comme zone de stockage temporaire. En�n, la précaution la plusélémentaire pour une sauvegarde consiste à ne jamais sauvegarder des données sur le serveur qui les abrite,d'où la sauvegarde en réseau.

La con�guration d'Amanda n'est pas cauchemardesque :). Schématiquement, elle comprend :� un �chier par type de sauvegarde (un seul dans notre cas) : amanda.conf� un �chier très bref dé�nissant les disques à sauvegarder sur le réseau : disklist� un jeu de �chiers autorisant les diverses machines, clientes et serveurs, à se connecter entre elles pour échanger

leurs données : .amandahostsIl n'existe à notre connaissance aucune interface graphique à Amanda.

8.2.1 Con�guration d'une sauvegarde : le serveurSur le serveur, on installe les packages dump et amanda-server qui descend le package amanda-common. Un

utilisateur backup est ajouté au système, propriétaire des �chiers de con�guration et du périphérique lecteur de bandes ;backup lancera les taches de sauvegarde via cron. Attention, ce sera root qui procédera aux restaurations, lancées depuisles clients avec amrecover, et non backup dont ce n'est pas le travail et qui n'aura pas les droits pour le faire. Toutefois,on fera toutes les manipulations de cette section sous l'utilisateur backup et non root. Comme le répertoire /usr/sbin,qui n'est pas dans le PATH de backup, contient toutes les commandes d'Amanda (amcheck, amdump, amlabel, etc..),il est impossible que backup trouve les commandes qu'il est appelé à utiliser constamment. Pour y remédier, on placerala ligne � export PATH=$PATH :/usr/sbin � dans le �chier .pro�le du home de backup (/var/backups) .

Commençons par véri�er le fonctionnement du matériel et les droits de l'utilisateur backup Celui ci doit faire partiedes groupes disk, tape et backup. Le périphérique de sauvagarde (logiquement un DAT SCSI) s'appelle dev/st0, maisle périphérique /dev/nst0 sera impérativement utilisé par défaut dans les sauvegardes d'Amanda (il ne rembobine pasla bande). Ces deux périphériques doivent avoir les permissions suivantes :

crw-rw---- 1 root tape 9, 0 Mar 14 2002 /dev/st0crw-rw---- 1 root tape 9, 128 Mar 14 2002 /dev/nst0

Deux commandes simples permettent de véri�er que backup peut faire fonctionner le lecteur DAT : � mt -f /dev/st0rewind � et � mt -f /dev/st0 eject �.

Nous allons mettre en place une sauvegarde incrémentale hebdomadaire qui tourne sur 4 bandes, nous o�rantune antériorité d'un mois ; nous l'appellerons con�g, et la placerons sur le premier serveur où nous avons réservé unepartition pour /var/spool. Nous sauvegarderons les données présentes sur deux machines du réseau, le serveur de

69http ://logiciels-libres-cndp.ac-versailles.fr/debianinstall/�chiers/nut-0.4570http ://logiciels-libres-cndp.ac-versailles.fr/debianinstall/�chiers/nut-2.071Ce n'est pas un hasard si une des solutions propriétaires les plus connues de sauvegarde s'appelle time navigator.

31

Page 32: UnréseauDebianGNU/Linux pouruncentredeformationploug22.free.fr/doc/debian-install-reseaux-potin.pdf · 2005. 10. 12. · Samba),serveurdetemps,sauvegardes(Amandaetpartimage). Pour

�chiers (pour les données des utilisateurs) et la machine du bureau (pour la gestion du centre de formation), tous lesVendredis soirs.

Les �chiers dé�nissant la sauvegarde se trouvent dans /etc/amanda/con�g (où le répertoire con�g désigne le nomde notre sauvegarde, que nous allons utiliser en permanence). Créons dans /etc/amanda un répertoire con�g à cotéde celui qui a été crée à l'installation, dont les permissions sont les suivantes :

drwxr-xr-x 2 backup backup 4096 Mar 18 20:30 config

Copions dans ce répertoire le contenu du répertoire DailySet1, con�guration de sauvegarde par défaut :� amanda.conf, la quasi totalité de la con�guration de la sauvegarde� disklist, la liste des disques des machines à sauvegarder.le �chier /etc/amanda/con�g/amanda.conf , clairement autodocumenté en anglais, dé�nit notre sauvegarde :

il faut en renseigner bien rigoureusement chaque ligne. Nous indiquerons à chaque fois qu'un certain nombre derépertoires sont à créer manuellement ; il sera judicieux de créer ces répertoires au moment où on les déclare dans le�chier de manière à ne pas les oublier par la suite.

org "Sauvegardes" # your organization name for reportsmailto "root" # space separated list of operators at your site

Pour les rapports envoyés par mail à l'issue de chaque sauvegarde.

dumpuser "backup" # the user to run dumps under

Clair de soi.

inparallel 4 # maximum dumpers that will run in parallelnetusage 95000 # maximum net bandwidth for Amanda, in KB per sec

A ajuster selon la puissance du serveur et la bande passante du réseau en tenant compte de son occupation àl'heure où les sauvegardes sont réalisées, d'où l'intérêt de les faire la nuit en utilisant la totalité des 100 Mbits permispar le switch.

dumpcycle 4 weeks # the number of days in the normal dump cycle

Durée d'un cycle de sauvegarde

tapecycle 4 tapes # the number of tapes in rotation

Nombre de bandes en rotation pendant ce cycle.

bumpsize 20 MB # minimum savings (threshold) to bump level 1 -> 2bumpdays 1 # minimum days at each levelbumpmult 4 # threshold = bumpsize * (level-1)**bumpmult

L'incrémentalité de la sauvegarde, à a�ner à l'usage selon le volume de données sauvegardées et la capacité desbandes.

#tpchanger "no-changer" # the tape-changer glue script, see TAPE.CHANGERS

Tout ce qui parle de � tape changer � concerne un système de robot qui change automatiquement les bandes, quipeuvent être plusieurs pour une même sauvegarde. Ce sont des systèmes très haut de gamme, nous n'avons qu'un bêtelecteur DAT SCSI.

tapedev "/dev/nst0" # Linux @ tuck, important: norewinding

Le périphérique de sauvegarde, il est essentiel de ne pas rembobiner la bande. Le périphérique /dev/st0 ne convientdonc pas.

tapetype HP-DDS-4 # what kind of tape it is (see tapetypes below)

Le type de bande utilisée, tel que nous le dé�nirons ci dessous (type HP-DDS-4).

labelstr "^config[0-9][0-9]*$" # label constraint regex: all tapes must match

32

Page 33: UnréseauDebianGNU/Linux pouruncentredeformationploug22.free.fr/doc/debian-install-reseaux-potin.pdf · 2005. 10. 12. · Samba),serveurdetemps,sauvegardes(Amandaetpartimage). Pour

Le nom que nous donnerons à nos bandes, qui s'appelleront impérativement con�g01, con�g02, etc...

diskdir "/var/spool/backup" # where the holding disk is

Le répertoire du disque dur que nous utiliserons comme zone de stockage temporaire pendant la sauvegarde, avantl'écriture proprement dite sur la bande. Deux lignes plus bas, on remarque que plusieurs disques de ce type peuventêtre dé�nis.

disksize 2000 MB # how much space can we use on it

La quantité d'espace disque utilisable pour ce répertoire qui n'est pas nécessairement une partition, on peut lepartager avec d'autres spools. Ce répertoire devra être crée à la main avec les permissions suivantes :

drwxr-xr-x 3 backup backup 4096 Mar 25 20:30 /var/spool/backup

infofile "/data/amanda/curinfo" # database filenamelogfile "/data/amanda/config/log" # log filename

L'emplacement de la base de données des �chiers sauvegardés, leur historique, etc.

indexdir "/data/amanda/config/index"

L'emplacement des �chiers d'index (la liste de ce qui est sauvegardé).Quelques Mo sont nécessaires pour cette base de données, il n'est pas pertinent en cas d'occupation disque impor-

tante de placer cela à coté des �chiers de con�guration. Ce répertoire, crée à la main, a ces permissions :

drwxrwx--- 5 backup backup 4096 May 13 2004 /data/amanda

On créera ensuite, dans ce répertoire, un sous répertoire qui portera le nom de notre sauvegarde (con�g). L'ar-borescence de ce sous répertoire sera, elle, créée automatiquement lors de la première sauvegarde, avec un messaged'avertissement lors de la véri�cation de la con�guration (commande amcheck).

Cette base de données est essentielle au fonctionnement d'Amanda, puisqu'elle contient l'index des �chiers quiont été sauvegardés et la bande où ils se trouvent. C'est la raison pour laquelle il ne faut jamais sauvegarder undisque sur lui même, de manière à préserver cette base de données en cas de crash disque. La documentationindique toutefois une procédure de restauration, indiquée comme particulièrement chaude :), même en ce cas (cf./usr/share/doc/packages/amanda-common/RESTORE.gz ).

Vient ensuite une longue liste de dé�nitions de types de bandes magnétiques, il est fort probable que cette liste necomprendra pas celles qui ont été achetées avec le lecteur DAT :). La commande tapetype, au traitement particulièrementlong, permet de générer une description de bande pour Amanda. On trouve facilement avec Google une dé�nition descaractéristiques de nos bandes fournie par d'autres utilisateurs. Le rapport reçu par mail à l'issue de la premièresauvegarde permettra de véri�er la conformité de la dé�nition des bandes dans Amanda avec leur capacité réelle.

Voici une entrée pour les bandes de notre lecteur DAT trouvée en quelques instants sur Internet :

define tapetype HP-DDS-4 {length 17021 mbytesfilemark 403 kbytesspeed 1578 kps

}

Vient en�n la dé�nition proprement dite de la sauvegarde que nous allons réaliser. L'auto documentation du�chier expose les di�érentes options avec un nombre conséquent d'exemples. Nous allons dé�nir un nouveau type desauvegarde que nous appellerons � hebdo � :

define dumptype hebdo {compress-bestpriority highindex

}

33

Page 34: UnréseauDebianGNU/Linux pouruncentredeformationploug22.free.fr/doc/debian-install-reseaux-potin.pdf · 2005. 10. 12. · Samba),serveurdetemps,sauvegardes(Amandaetpartimage). Pour

Nous compressons le mieux possible puisque nous disposons du temps pour le faire (il y a peu de stagiaires oud'élèves la nuit :) ) ; l'option index précise que nous voulons que la liste des �chiers sauvegardés soit indexée. En�nla priorité est dé�nie comme haute, elle pourrait être mise à � low � ou � medium � par rapport à d'autres disquesque nous sauvegarderions en même temps, mais avec un autre type de sauvegarde car ces disques seraient jugés plusimportants. La di�érence est que plus une sauvegarde est importante, plus elle sera prioritaire dans l'occupation del'espace disque temporaire, ce qui est très utile en mode dégradé, lorsque le lecteur n'est pas disponible (vraisembla-blement parce qu'on a oublié de changer la bande) et que tout va rester sur le disque en attendant un dump dé�nitif(commande am�ush).

Le �chier /etc/amanda/con�g/disklist contient la liste des disques72 que nous désirons sauvegarder, le �chierdocumente lui même abondamment le type de partitions prises en charge, y compris vfat. La syntaxe est simple : onindique sur une ligne le nom de la machine, la partition à sauvegarder et le type de sauvegarde tel que dé�ni en dernierdans le �chier amanda.conf. Pour nous :

abraracourcix sda4 hebdoabraracourcix sdb1 hebdoash hda5 hebdo

C'est tout ! :)Les �chiers de con�guration peuvent être consultés à cette adresse73.

8.2.2 Con�guration d'une sauvegarde : les clientsAmandad, logiciel client du serveur Amanda, est lancé automatiquement sur chaque machine cliente (celles dont on

désire sauvegarder une partition) par le serveur en tant que service d'inetd dès que démarre la sauvegarde. L'installationdu package amanda-client a placé cette ligne dans le �chier etc/inetd.conf :

amanda dgram udp wait backup /usr/sbin/tcpd /usr/lib/amanda/amandad

Il faut cependant que chaque machine, serveur comme cliente, soit autorisée à communiquer avec les autres pendantla sauvegarde mais également pendant la restauration. Ces autorisations sont dé�nies dans les �chiers .amanda-hosts situés dans le répertoire personnel de l'utilisateur backup (/var/backups) sur chaque machine. La syntaxe de ces�chiers peut donner lieu à un certain énervement :), et requiert de bien comprendre qui accède à quelle machine, entant que root ou en tant que backup (rappellons que root seul peut restaurer mais ne doit pas sauvegarder).

Sur le serveur de sauvegarde andromede, cette con�guration est requise si nous sauvegardons les machines abrara-courcix et ash, puisque backup réalise la sauvegarde et root assure la restauration :

localhost backupabraracourcix.mp-soa.net rootabraracourcix.mp-soa.net backupash.mp-soa.net rootash.mp-soa.net backup

Sur une machine cliente, il su�ra d'indiquer :

localhost backupandromede.mp-soa.net backup

8.2.3 La première sauvegarde et restaurationNous pouvons formater une bande qui va nous servir de test pour la sauvegarde � con�g �, que nous allons appeler

� con�g01 �, au moyen de la commande amlabel con�g con�g01. Si cette bande a déjà été utilisée dans la mêmesauvegarde, on pourra forcer son e�acement au moyen de l'option -f.

La commande amcheck con�g, lancée en tant que backup sur le serveur, nous permet de tester la validité de lasauvegarde que nous avons appelée � con�g �. En voici une sortie correcte :

72plus exactement des partitions73http ://logiciels-libres-cndp.ac-versailles.fr/debianinstall/�chiers/amanda

34

Page 35: UnréseauDebianGNU/Linux pouruncentredeformationploug22.free.fr/doc/debian-install-reseaux-potin.pdf · 2005. 10. 12. · Samba),serveurdetemps,sauvegardes(Amandaetpartimage). Pour

andromede:~$ amcheck configAmanda Tape Server Host Check-----------------------------Holding disk /data/backup: 2963940 KB disk space available, that's plentyNOTE: skipping tape-writable testTape config01 label okServer check took 8.637 seconds

Amanda Backup Client Hosts Check--------------------------------Client check: 2 hosts checked in 0.101 seconds, 0 problems found

Tous les problèmes seront indiqués très clairement : bande absente, non valide, machine indisponible ou avec laquelleil est impossible de communiquer, etc etc... La documentation du package amanda-common contient une FAQ quidétaille les problèmes les plus courants (en particulier une entrée d'inetd.conf incorrecte ou un �chier .amandahostsmal renseigné). Les logiciels composant Amanda créent des �chiers temporaires portant leurs noms dans /tmp, ilsapportent une aide majeure pour debugguer.

Lorsque tout est correct, il su�t de lancer une sauvegarde de test avec la commande � amdump con�g �. On voit lesystème rendre tout de suite la main, les démons amandad se lancer sur les machines clientes et appeler les utilitairesde backup, de compression et d'envoi par réseau de la sauvegarde. Sur le serveur, le répertoire /var/spool/backupse remplit de �chiers temporaires qui grossisent en taille, puis vont être écrits sur la bande. Lorsque tout est �ni,l'utilisateur dé�ni dans la sauvegarde reçoit un mail qui l'informe du déroulement des opérations et des statistiques dela sauvegarde, en particulier les pourcentages d'occupation des bandes et les taux de compression. Le message préciseen premier lieu le nom de la prochaine bande qu'attend Amanda.

Nous pouvons donc tester le fonctionnement de la restauration avec l'utilitaire amrecover.Il y a deux utilitaires de restauration : amrestore permet de restaurer l'ensemble d'une partition qui a été détruite ou

altérée, ce que le RAID est là pour éviter. D'autre part l'utilitaire amrecover permet de restaurer simplement certains�chiers qui ont été perdus ou altérés par maladresse. C'est la raison pour laquelle nous faisons des sauvegardes.

Amrecover sera lancé en tant que root (et non backup) sur la machine cliente, à la racine du système de�chiers où se trouve ce que l'on veut restaurer. Imaginons que nous fassions un test sur le �chier galantine.sxi,e�acé par mégarde du répertoire � /home/formateurs � sur la machine abraracourcix. Nous nous loggons donc en rootsur notre serveur de �chiers et nous nous plaçons dans le répertoire /home, puisque c'est cette partition que nousavons sauvegardée (voir les dé�nitions placées dans le �chier disklist). Si on lançait amrecover dans le home de rootpour restaurer des �chiers de /home, les �chiers restaurés apparaîtraient dans le home de root où serait recréée toutel'arborescence des �chiers restaurés. Amrecover prévient tout de suite très clairement de ce genre d'erreur :

WARNING: not on root of selected filesystem, check man-page!

La documentation d'amrecover précise comment le lancer, il vaut mieux lui préciser, en plus du nom de la sauve-garde, comment s'appellent le serveur, le serveur de bandes et le périphérique DAT :

[root@abraracourcix[ttypts/0]/home]# amrecover -C config\ -s andromede -t andromede -d /dev/nst0AMRECOVER Version 2.4.2p2. Contacting server on andromede ...220 andromede AMANDA index server (2.4.2p2) ready.200 Access OKSetting restore date to today (2005-03-28)200 Working date set to 2005-03-28.200 Config set to config.200 Dump host set to abraracourcix.$CWD '/home' is on disk 'sda4' mounted at '/home'.200 Disk set to sda4./homeamrecover>

Le prompt amrecover> o�re un certain nombre de commandes listées par help. L'équivalent des classiques pwd, lset cd nous permettent de nous déplacer et de localiser le �chier que nous cherchons de cette manière :

35

Page 36: UnréseauDebianGNU/Linux pouruncentredeformationploug22.free.fr/doc/debian-install-reseaux-potin.pdf · 2005. 10. 12. · Samba),serveurdetemps,sauvegardes(Amandaetpartimage). Pour

amrecover> pwd/homeamrecover> cd formateurs/home/formateursamrecover> ls2005-03-18 .2005-03-18 galantine.sxi2005-03-18 savNT/2005-03-18 softs/

Nous retrouvons l'arborescence familière de notre système de �chiers, � galantine.sxi � est bien présent. Nous allonsl'ajouter, pour extraction de la bande et restauration sur le disque :

amrecover> add galantine.sxiAdded /formateurs/galantine.sxi

Il est alors possible de parcourir encore le système de �chiers, voire d'en changer, et d'ajouter avec add d'autrescontenus à restaurer. La commande extract permet de commencer à restaurer :

amrecover> extract

Extracting files using tape drive /dev/nst0 on host andromede.The following tapes are needed: config03

Restoring files into directory /homeContinue? [Y/n]:

La ou les bandes nécessaires sont indiquées clairement, il faudra les introduire successivement dans le lecteur. Larestauration démarre, elle n'est pas spécialement rapide car le DAT va devoir relire les bandes. Cela peut prendrelargement plus d'une demi heure pour une restauration importante.

8.2.4 Paramétrage de la sauvegarde hebdomadaireDès que les tests ont été concluants, on peut mettre en place la procédure hebdomadaire dé�nitive, c'est le dernier

point de la FAQ. Il faut e�acer à la main le contenu du répertoire � holding disk � (normalement, il est vidé automa-tiquement) et surtout la base de données des �chiers sauvegardées (/data/amanda). Reste à formater les bandes aumoyen de amlabel, que nous appellerons con�g01, con�g02, con�g03 et con�g04. Deux entrées de crontab su�ront àprévenir l'administrateur d'une erreur le Vendredi à midi, puis à démarrer la sauvegarde le Vendredi soir à 20 heures30 :

0 12 * * 5 /usr/sbin/amcheck -m config > /dev/null30 20 * * 5 /usr/sbin/amdump config > /dev/null

Amanda propose d'autres utilitaires, par exemple amrmtape qui e�ace tout le contenu d'une bande de la base dedonnées ; toutes ces commandes sont trouvées par complétion sur les lettres am, tout simplement. Leur documentation,très simple, brève et intelligible, est en anglais.

Mentionnons la commande am�ush : elle poursuit une sauvegarde inachevée car la bande requise n'était pas dansle lecteur, surement parce qu'on avait oublié de la changer. L'administrateur aura été prévenu par mail de cet échec.L'appel d'am�ush vide le répertoire de stockage temporaire en le passant sur la bande, puis un mail est envoyé àl'administrateur.

8.3 Partimage : sauvegarde des machinesPackages requis : partimage-server, partimage (installation très particulière).Le logiciel de sauvegarde Partimage permet de sauvegarder des partitions de disques durs, localement sur une

machine, ou en envoyant la sauvegarde sur un serveur. Son intérêt est de restaurer rapidement un système d'exploitationet l'ensemble des logiciels installés lorsque ce système a été altéré par de mauvaises manipulations, ce qui demeureassez rare dans le cas de stations Unix.

Notons cependant que sur les machines clientes, il n'y a en principe que le système Debian et que toutes lesdonnées des utilisateurs, c'est à dire tout ce qu'ils peuvent modi�er, se trouve sur un serveur, exporté par NFS. On

36

Page 37: UnréseauDebianGNU/Linux pouruncentredeformationploug22.free.fr/doc/debian-install-reseaux-potin.pdf · 2005. 10. 12. · Samba),serveurdetemps,sauvegardes(Amandaetpartimage). Pour

observera que Debian ne présente pas de problème d'altération et de dégradation avec le temps, outre qu'il n'y a pas devirus. Partimage sera donc pertinent pour sauvegarder un OS propriétaire qui cohabiterait avec Debian GNU/Linux,comme si on faisait une photo à un instant t d'un état sain de ces systèmes fragiles, peu adaptés au fonctionnementmulti utilisateurs, qui demandent des droits exorbitants pour faire fonctionner des logiciels triviaux ou se servir d'unpériphérique aussi commun qu'un scanner ou une imprimante, et qui se dégradent avec le temps.

Le problème de Partimage est que ses diverses versions communiquent mal entre elles, en particulier la versionwoody sur nos serveurs et la version plus récente en Sarge ou mieux Sid. Le chi�rement SSL des données n'est pasimplémenté, ou pas de la même manière, et le client partimage de sid, au mieux refuse de communiquer avec le serveuren woody, au pire le fait planter. Il est particulièrement lourd (en raison de très nombreuses librairies de développementà installer) et surtout pas forcément possible de compiler pour le serveur la dernière version disponible à partir dessources. La solution la plus simple, certes peu élégante, consiste à installer partimaged (le package serveur) sur unordinateur en sid et de copier le binaire /usr/sbin/partimaged sur l'ordinateur qui sera serveur partimage à la placedu binaire original.

D'autre part, le démarrage de partimaged pose problème puisqu'il semble qu'il sauvegarde les images qu'il reçoitdu réseau non pas dans le répertoire spéci�é dans son �chier de con�guration mais à l'endroit du système où on l'ainvoqué depuis la ligne de commande. Il vaut mieux donc le lancer à la main dans le répertoire où sont stockées lesimages des disques.

Pour récapituler :1. Installer le package partimage-server sur le serveur (woody) et un client (sid).2. Copier le binaire /usr/sbin/partimaged de la station sur le serveur3. Créer sur le serveur un répertoire pour les images des disques (par exemple /data/images)4. Indiquer sur le serveur, dans le �chier /etc/partimaged/partimagedusers (qui n'existe peut être pas), le nom de

l'utilisateur qui va envoyer les images depuis les clients (pour nous root). Cet utilisateur devra disposer du droitd'écrire dans le répertoire qu'on vient de créer.

5. Se placer dans ce répertoire de sauvegarde, lancer le démon au moyen de la commande /usr/sbin/partimaged -d.Véri�er qu'il tourne au moyen de la commande ps aux |grep partimage.

6. Sur une station, sous root, lancer le client avec la commande partimage qui appelle l'interface ci dessous, ettester l'envoi d'une sauvegarde sur le serveur. De nombreuses options sont disponibles, la principale étant lacompression de l'image. Le meilleur choix pour un rapport optimal temps / occupation disque est gzip. L'imagedoit arriver progressivement dans le bon répertoire sur le serveur à la vitesse du réseau

7. Tester une restauration, en lançant l'utilitaire partimage sur le client et en se laissant guider par l'interface trèsintuitive. L'image de la machine asterix s'appelle asterix.000, on véri�era le nom du �chier sur le serveur en casde doute.

Sur un réseau switché à 100 Mbits, la sauvegarde comme la restauration d'une partition d'environ 3 Go compresséeavec gzip demande très approximativement une vingtaine de minutes.

Notons en�n qu'existent des CDs bootables qui intègrent un client partimage permettant de faire une sauvegardecomplète de la machine en réseau mais également sur le disque local.

37

Page 38: UnréseauDebianGNU/Linux pouruncentredeformationploug22.free.fr/doc/debian-install-reseaux-potin.pdf · 2005. 10. 12. · Samba),serveurdetemps,sauvegardes(Amandaetpartimage). Pour

8.4 Webmin, administration simpli�ée et création de comptesPackages requis : webmin, libnet-ssleay-perl pour l'authenti�cation SSL, plus un package par service réseau à

intégrer en tant que module (� apt-cache search webmin �). La dernière version contenant l'intégralité du logiciel ettous les modules est disponible sur le site o�ciel74, elle ne dispense pas de l'installation des librairies Perl SSL.

L'installation de la version complète est très simple : on détarre l'archive téléchargée dans un répertoire, typiquementusr/local/, puis le script setup.sh s'occupe de détecter lui même le système Unix installé (une énorme variété d'entreeux sont supportés, pas seulement les diverses versions de GNU/Linux) ; il pose ensuite un certain nombre de questionstrès claires comme son activation au boot ou le login et password de son administrateur. On accède à l'interface dewebmin au moyen d'un navigateur quelconque à l'URL https ://nom-de-machine :10000

Note importante : nous nous inscrivons absolument contre l'opinion qui voudrait que webmin puisseconstituer une sorte d'interface graphique à l'administration d'un serveur, qui dispenserait d'une cer-taine maîtrise de l'administration système et réseau. Cliquer partout dans un navigateur en espérant obtenirdes résultats satisfaisants alors qu'on ne connaît quasiment rien au logiciel serveur qu'on est en train de massacrerconduira au mieux à des dysfonctionnements sérieux, au pire à la réinstallation complète du serveur.

Les avantages de webmin sont tout de même indéniables, spéci�quement pour un centre de formation où des droitssont à déléguer à des formateurs qui disposent de compétences limitées dans l'administration Unix. Webmin permeten e�et de

� Créer ses propres utilisateurs seulement pour certains modules : on permettra à certains formateurs de créer descomptes pour leurs stagiaires.

� Synchroniser très simplement les utilisateurs Unix et les éventuels utilisateurs Samba (ajout automatique d'uneentrée dans le �chier /etc/samba/smbpasswd, e�acement du répertoire de pro�l lorsque le compte est supprimé...).

� Créer et supprimer des utilisateurs par lots au moyen de �chiers batch, extrêmement pratique pour les utilisateursoccasionnels d'un centre de formation : en quelques secondes, on e�ace les utilisateurs de la veille qui ont modi�éleur répertoire personnel pour régénérer ces mêmes comptes le matin... On trouvera à cette adresse75 un batchde création de 13 comptes et un autre batch permettant de les e�acer.

Nous plaçons volontairement tous les utilisateurs dans le groupe primaire � users � et non dans un groupe à leur nompour simpli�er le paramétrage des droits sur les périphériques des stations de travail, en particulier la carte son.

74http ://www.webmin.com/75http ://logiciels-libres-cndp.ac-versailles.fr/debianinstall/�chiers/webmin/

38

Page 39: UnréseauDebianGNU/Linux pouruncentredeformationploug22.free.fr/doc/debian-install-reseaux-potin.pdf · 2005. 10. 12. · Samba),serveurdetemps,sauvegardes(Amandaetpartimage). Pour

9 L'installation de la première station de travailNous pouvons �nalement passer au c÷ur du problème, l'installation de stations de travail sous système d'exploita-

tion libre.Un serveur doit être tout à fait transparent pour l'utilisateur qui n'en entend même jamais parler. Par contre, une

pénétration e�cace du logiciel libre dans les pratiques les plus courantes des gens passe nécessairement par l'ordinateurque l'on utilise au quotidien. La mise en place de systèmes d'exploitation libres sur ces machines clientes montrera unealternative complète aux environnements propriétaires (et pas seulement à quelques logiciels dont la bureautique),outre un fonctionnement en réseau bien supérieur à ce que connaissent les administrateurs de parcs entiers de machinesdans les établissements scolaires :

� Strict respect de la loi en matière de piratage de logiciels, exigé en tout premier lieu des enseignants dont lepremier devoir est de se montrer exemplaires

� Systèmes stables dans la durée qui ne se dégradent pas au cours d'installations et de désintallations multiples delogiciels

� Absence de virus� Impossibilité pour un utilisateur d'installer des logiciels souvent indésirables, que ces utilisateurs soient des

formateurs ou des stagiaires, des élèves ou leurs professeurs� L'environnement complet de l'utilisateur le suit partout : il retrouve son courrier à l'identique sur n'importe

39

Page 40: UnréseauDebianGNU/Linux pouruncentredeformationploug22.free.fr/doc/debian-install-reseaux-potin.pdf · 2005. 10. 12. · Samba),serveurdetemps,sauvegardes(Amandaetpartimage). Pour

quelle machine avec toutes ses données, les préférences qu'il a dé�nies pour ses logiciels, etc...� Système conçu depuis le départ pour des utilisateurs multiples, pas de droits exorbitants pour utiliser telle ou

telle fonctionnalité (composant matériel, logiciel, etc...)� Installation et mise à jour extrêmement simple de centaines de logiciels et du système lui même à travers Internet� Pas de gestion, quasiment impossible à faire en pratique, des licences installées� Possibilité de s'insérer et de participer, à la mesure de chacun, aux communautés de développement de ce que

l'on utilise, à commencer par la demande de fonctionnalités et le rapport de bugs� Gratuité.

9.1 Rappels sur l'installation d'une machine cliente9.1.1 Debian Sid

Nous conseillons la distribution Debian Sid, ou instable, qui fonctionne très bien malgré cette dénomination etintègre dans un délai raisonnable les dernières versions des logiciels76.

Pour disposer de Sid, après une installation basique de Debian, il su�t d'éditer le �chier /etc/apt/sources.list poury déclarer la distribution sid dans toutes les lignes, en accrochant la machine sur le proxy de packages dont le réseaudispose maintenant (il faudra lui adjoindre quelques backends, pour Agnula, mplayer, etc...) Nous fournissons un �chiersources.list complet en section 2.4.

L'installeur Sarge permet d'avoir tout de suite un kernel 2.6 et paramètre correctement les locales françaises pardéfaut. On laissera de côté Tasksel et Dselect pour maitriser ce qui va e�ectivement être installé par les dépendancesd'apt-get.

Il est inutile de créer un utilisateur sur la machine puisque nous allons immédiatement l'intégrer au réseau et ainsiutiliser les comptes du serveur. Mais avant tout déploiement, le plus important est de bien véri�er l'environnementfrancais dans tous les logiciels et environnements graphiques.

9.1.2 Paramétrage d'un environnement françaisNormalement, le système parle en français : la commande printenv LANG doit renvoyer fr_FR@euro au moins

aux utilisateurs si ce n'est à root. Si tel n'est pas le cas avec l'installeur Sarge, cela vient d'une mauvaise manipulationpendant l'installation. Voici la procédure de con�guration des locales françaises :

� apt-get install locales language-env� prendre au minimum fr_FR ISO-8859-1 et fr_FR@euro ISO-8859-15 ( conseillé par défaut) dans l'interfacedebconf.

� sous root, � set-language-env -E -l fr et répondre oui à toutes les questionsPour con�gurer les locales à la main, après installation du package locales :� echo fr_FR ISO-8859-1 � /etc/locale.gen� echo fr_FR.UTF-8 UTF-8 � /etc/locale.gen� echo fr_FR@euro ISO-8859-15 � /etc/locale.gen� locale-gen� set-language-env -E -l fr� echo "LANG=fr_FR@euro" � /etc/environment (il est bon de véri�er le contenu de ce �chier après paramétrage

automatique des locales).Le package � localepurge � permet d'e�acer automatiquement les �chiers de localisation non utilisés à la �n de

l'installation d'un logiciel. L'espace disque libéré est considérable, de l'ordre de plusieurs dizaines de Mo voire nettementplus.

Les logiciels s'a�cheront dans la langue de Molière, s'ils sont traduits bien entendu, à l'exception notable des plusgros d'entre eux qui demandent d'un package séparé : KDE, Mozilla (Firefox) et Open O�ce.org.

Les pages de man s'a�chent en français si elles sont traduites et que le package manpages-fr est installé.KDE parle français avec le package kde-i18n-fr.Open O�ce.org en français demande le package openo�ce.org-help-fr openo�ce.org-l10n-fr. Pour l'intégration à

gnome : openo�ce.org-gnomevfs et pour l'intégration à KDE : openo�ce.org-kde.Dictionnaire francais : myspell-fr-gut.En�n, Mozilla Firefox est localisé par le package mozilla-�refox-locale-fr-fr.

76Attention, Sid fonctionne bien mais bouge très rapidement, des mises à jour sont disponibles quotidiennement. Il arrive donc quecertaines choses ne fonctionnent pas ou que certaines dépendances soient brisées. Le package apt-listbugs prévient de cela avant installationou mise à jour.

40

Page 41: UnréseauDebianGNU/Linux pouruncentredeformationploug22.free.fr/doc/debian-install-reseaux-potin.pdf · 2005. 10. 12. · Samba),serveurdetemps,sauvegardes(Amandaetpartimage). Pour

9.2 Un kernel linux pour machines multimédiaIl est souhaitable d'installer une version récente du kernel linux, si possible optimisée pour la machine et le matériel

qu'elle est appellée à faire fonctionner. Compiler un kernel soi même n'est pas absolument nécessaire, mais cela faitpartie des choses qu'il est bon de savoir faire soi même.

Ce document77 expose dans le détail la procédure de compilation d'un kernel 2.6 optimisé � temps réel � pour lemultimédia, en particulier pour la Musique Assistée par Ordinateur. La compilation avec les outils Debian procure unpackage installable sur d'autres machines (en tenant compte de l'hétérogénéité du parc), qu'on pourra di�user sur leréseau au moyen du script exposé en section 10.3 et installer en une seule ligne de commande sur chaque ordinateur.

9.3 Intégration de la machine au réseau9.3.1 Clients NIS et NFS

L'intégration d'une machine cliente aux services NIS et NFS est extrêmement simple.Pour NFS, installer nfs-common, qui installera le portmapper. Le montage du home au boot de la station se fait

en ajoutant cette ligne dans etc/fstab :

abraracourcix:/home /home nfs nosuid,intr,hard 0 0

Pour NIS, debconf demande à l'installation quel est le nom du domaine nis et prévient que la machine a besoinde davantage de con�guration. Les détails sont expliqués dans le �chier README.Debian, mais il su�t de rajouter �+ : : : : : : � en bas du �chier /etc/passwd et � + : : : � en bas de /etc/group pour que la machine soit cliente NIS.Bien entendu, de nombreuses options à propos de ces deux lignes sont documentées.

Il su�t de faire le montage NFS à la main et de redémarrer NIS pour véri�er qu'un utilisateur crée sur le serveur peuts'authenti�er sur la machine et disposer de ses �chiers. On véri�era bien entendu que tout fonctionne normalementau boot de la machine ; un problème fréquent est de voir le montage NFS ne pas se faire à cause d'un délai tropimportant : cela provient très probablement d'un reverse DNS mal con�guré. Ce problème est extrêmementfréquent et classique.

On pourra se référer à la section 2.5, � logiciels complémentaires �, pour a�ner l'installation basique à laquellenous venons de procéder avant de passer à l'installation des composants d'une véritable station de travail.

9.3.2 Clients LDAPRappelons que la solution la plus simple pour disposer d'un annuaire LDAP pour établissement scolaire demeure

SambaEdu 378. Le paramétrage d'un client LDAP qui permet de s'authenti�er sur un annuaire n'est pas aussi trivialqu'un client NIS, mais il demeure très accessible.

Deux librairies doivent être installées avec apt-get : libnss-ldap, lippam-ldap (le cache nscd est optionnel). Debconfpose de nombreuses questions pendant leur con�guration, on prendra les choix par défaut, à l'exception de ce quiconcerne le base DN de l'annuaire (dans SambaEdu : con�guration générale, paramètres LDAP, Dn de base de l'an-nuaire) et l'adresse IP, qui est celle du serveur LDAP et non 127.0.0.1. Les �chiers de con�guration de ces librairiessont /etc/libnss-ldap.conf et /etc/pam_ldap.conf.

Ensuite, deux �chiers doivent être modi�és :/etc/nsswitch.conf :Remplacer les entrées par défaut :

passwd: compatgroup: compatshadow: compat

par :

passwd: files ldapgroup: files ldapshadow: files ldap

/etc/pam.d/loginAttention, pam constitue le mécanisme d'authenti�cation sous linux. Il n'y a rien à redémarrer après une

modi�cation dans pam, il devient donc impossible de s'authenti�er sur la machine après une mauvaise manipulation.77http ://logiciels-libres-cndp.ac-versailles.fr/article.php3 ?id_article=18078http ://www.crdp.ac-caen.fr/se3/

41

Page 42: UnréseauDebianGNU/Linux pouruncentredeformationploug22.free.fr/doc/debian-install-reseaux-potin.pdf · 2005. 10. 12. · Samba),serveurdetemps,sauvegardes(Amandaetpartimage). Pour

Il est très vivement conseillé d'ouvrir aux moins deux consoles root de manière à être certain de pouvoir conserverla main sur la station et replacer les �chiers originaux dont on aura fait une sauvegarde (si on a installé nscd, il peutêtre nécessaire de le redémarrer).

Voici le contenu correct de ce �chier :

auth required pam_env.soauth sufficient pam_unix.so nullokauth required pam_ldap.so use_first_pass

account sufficient pam_ldap.so use_first_passaccount required pam_unix.sosession required pam_unix.sosession optional pam_lastlog.sosession optional pam_motd.sosession optional pam_mail.so standard noenvpassword required pam_unix.so nullok obscure min=4 max=8

Un listing des �chiers dans /etc/pam.d montre qu'il y a un �chier par service d'authenti�cation, on copiera doncle �chier login dans le �chier xdm (ou kdm, etc..) pour que l'ouverture de session en mode graphique puisse se faire.

9.4 Installation d'un environnement graphique et de logiciels diversPackages requis : x-window-system, gnome, kdeNous allons installer des � meta-packages �, qui en eux mêmes ne contiennent pas grand chose mais en appellent de

nombreux autres et permettent ainsi une installation complète de composants pour une machine de bureau. Ainsi lesystème X Window sera installé dans son intégralité pour éviter tout dysfonctionnement qui ne sera souvent constatéque plus tard, par quelqu'un d'autre, lorsque tout sera en place.

La commande � apt-get install x-window-system � provoque une grosse installation, dont le package x-server-xfree86 : le serveur X à proprement parler. C'est le package le plus délicat puisqu'il conditionne tout l'a�chage enmode graphique et pose de nombreuses questions auxquelles il faut répondre de manière très rigoureuse, les choixpar défaut n'étant pas toujours les plus pertinents. Avant de le con�gurer, on véri�era le modèle exact de carte vidéode l'ordinateur au moyen de la commande lspci et on se munira de la documentation du moniteur qui en précise lesfréquences horizontales et verticales (ces caractéristiques techniques se trouvent en quelques instants sur Internet).

On pourra rappeler la con�guration du serveur X au moyen de la commande � dpkg-recon�gure xserver-xfree86 �,que nous détaillons ci dessous pour les options ambiguës ou délicates :

� Pilote de serveur X que vous souhaitez utiliser :Il n'est pas forcément toujours parfaitement détecté, dans notre cas ati. Surtout pas Vesa qui est proposé pardéfaut si la carte est mal reconnue.Ne pas prendre le pilote � frame bu�er � qui rajoute une couche d'abstraction logicielle au dessus dumatériel et dégrade sensiblement les performances, à moins d'être certain que la carte soit mal supportée, ce quiest très rare aujourd'hui.

� Identi�ant de votre carte vidéo : Generic Video CardLe nom n'a aucune importance

� Identi�ant du bus de la carte vidéo :� Quantité de mémoire (en ko) utilisée par votre carte vidéo :

On peut laisser en blanc ces deux options� Jeu de règles XKB à utiliser :

Laisser le choix xfree86� Type de clavier :

Pc105 (sauf pour un portable), le choix pc104 provoque souvent un dysfonctionnement des touches < et >.� Disposition de votre clavier :

� fr � conseillé, le chois � us � étant proposé par défaut.� Variante de votre clavier :� Options de votre clavier :

Laisser en blanc ces deux options, pour recon�gurer éventuellement ensuite� Port de branchement de votre souris :

/dev/psaux pour une souris PS/2, ttyS0 pour COM 1. Les souris USB se font passer pour des souris PS/2.� Veuillez choisir ce qui correspond le mieux à votre souris.

ImPS/2 pour une souris à roulette.

42

Page 43: UnréseauDebianGNU/Linux pouruncentredeformationploug22.free.fr/doc/debian-install-reseaux-potin.pdf · 2005. 10. 12. · Samba),serveurdetemps,sauvegardes(Amandaetpartimage). Pour

� Faut-il émuler une souris à 3 boutons ?Pour une souris deux Répondre oui pour que la fonction � coller � sous X Window (usage normal et quasi exclusifdu bouton central), soit obtenue par une pression simultanée des deux boutons.

� Veuillez choisir une méthode de sélection des caractéristiques de votre écranCette question indique le niveau de complexité des questions qui seront posées par la suite. Le choix le plus per-tinent sauf con�guration vraiment exotique et connaissance poussée du matériel demeure, pour nous, � Medium�.

� Veuillez choisir le meilleur mode supporté par votre écranLa fréquence est le paramètre le plus important, ce choix ne concerne pas encore les résolutions qui seronta�chées. Pour un 17 pouces standard on peut normalement choisir 1280x1024 @ 60Hz voire au dela. Il faudraprobablement repasser dans le �chier de con�guration pour a�ner ces valeurs à l'aide de la documentation del'écran 79.

� Modes vidéo utilisés par le serveur X :Indiquer la résolution maximale supportée par le moniteur, puis les résolutions inférieures désirées. Pour nous,1280x1024, 1024x768, 800x600.

� Veuillez choisir la profondeur de couleur par défaut (en bits)24 bits si la carte vidéo dispose d'assez de mémoire

� Modules du serveur XFree86 qui seront chargés par défaut :Cocher tous les modules. Le plus important concerne le module DRI pour la 3D, si la carte vidéo le supporte. Onpourra toujours commenter cette ligne dans le �chier par la suite, ainsi que sa toute dernière section qui dé�nitles paramètres du DRI.

� Faut-il mettre une section � Files � de référence dans la con�guration ?� Faut-il mettre une section � DRI � de référence dans la con�guration ?

Répondre Oui.Le message d'erreur le plus fréquent si X ne démarre pas est � no screens found �, qui ne signi�e pas qu'aucun écran

n'est trouvé, mais que le système ne parvient pas à demander à la carte vidéo d'envoyer un mode (une résolution)qui soit acceptée par l'écran. Auquel cas on reprendra la con�guration du serveur X (dpkg-recon�gure xserver-xfree86 )pour rentrer de nouvelles valeurs.

On ajustera au besoin les paramètres de fréquence de l'écran en éditant le �chier /etc/X11/XF86Con�g-4 à l'aidede la documentation du moniteur qui précise toujours les bons paramètres, par exemple de cette manière 80 :

Section "Monitor"Identifier "Generic Monitor"HorizSync 30-72VertRefresh 50-120Option "DPMS"

EndSection

Un problème récurrent concerne certaines polices de caractères, dans xterm en particulier : elles sont tellement laidesqu'elles en sont illisibles. Cela provient des polices par défaut qui ne sont pas optimisées pour une locale européenne. Ony remédiera par l'installation de trois packages trouvés par apt-cache search transcoded : xfonts-base-transcoded, xfonts-75dpi-transcoded et xfonts-100dpi-transcoded. Si la police de l'utilisateur est toujours aussi laide après redémarrage duserveur X, on supprimera le �chier .Xressources qui se trouve dans son répertoire personnel.

En�n, il sera possible d'agrémenter l'écran de login graphique en installant celui de KDE (KDM) ou celui deGnome (GDM) avec apt-get. Nous recommandons KDM qui se paramètre plus aisément depuis les préférences deKDE, sans toucher à aucun �chier de con�guration, et qui présente les avantages de trouver automatiquement tousles gestionnaires de fenêtres installés et de permettre à tout le monde d'éteindre l'ordinateur sans ouvrir de session.Le choix et l'apparence de ce gestionnaire de connexion sont importants car ils donnent à la salle informatique son �look � tel que le percevront les visiteurs avant d'utiliser les machines.

On peut forcer la taille des polices dans les paramètres passés au lancement de X par le gestionnaire de connexion.Le �chier impliqué s'appelle Xservers, son emplacement dépend de Xdm, GDM ou KDM. Pour KDM, il s'agit de/etc/kde3/kdm/Xservers, la ligne est :

:0 local@tty1 /usr/X11R6/bin/X -nolisten tcp vt7

On rajoutera -dpi 100 pour forcer cette taille si le défaut ne convient pas, par exemple pour une résolution un peuélevée. Cet ajustement a parfois tendance à harmoniser les polices, leur taille et leur apparence dans l'ensemble de X.

79si l'on donne absolument n'importe quoi comme valeur à ces paramètres il est possible de sérieusement détériorer l'écran.80l'option DPMS permet l'économie d'énergie

43

Page 44: UnréseauDebianGNU/Linux pouruncentredeformationploug22.free.fr/doc/debian-install-reseaux-potin.pdf · 2005. 10. 12. · Samba),serveurdetemps,sauvegardes(Amandaetpartimage). Pour

D'autre part, l'option -nolisten tcp explique que dans Debian, il soit par défaut impossible de déporter son a�chagesur le réseau, puisque X n'écoute pas sur celui ci. Si l'on veut permettre cela, ce qui est une faille de sécurité potentielle,il faudra retirer cette option.

Vient ensuite l'installation des environnements de bureau Gnome et KDE, qui peuvent être appelés par leur nomavec apt-get install et provoquent le téléchargement de quelques centaines de Mo de logiciels. Il est préférable de lesinstaller complètement à l'aide de leurs � méta packages � pour o�rir aux utilisateurs le plus large choix logiciel possible,ce que permet la taille des disques durs modernes. Pour cette raison, il semble également inutile de choisir entre l'un oul'autre, il est préférable d'installer les deux car, outre le plus grand choix, les librairies des deux environnements serontde toute manière nécessaires pour faire tourner tous les logiciels. Les dépendances des �meta packages � installerontde nombreux composants nécessaires pour des usages très variés, comme hotplug, sane, LATEX, Gimp, un systèmed'impression, etc...

9.5 Les droits sur les périphériques : carte son, webcam, etc...Si les utilisateurs appartiennent tous au même groupe primaire sur le serveur, ces groupes se retrouvent localement

dans NIS. Ainsi, pour que tous les utilisateurs puissent avoir du son, il su�t de placer les bons périphériques dans legroupe � users �, à savoir /dev/audio0, /dev/mixer0 et /dev/dsp0 81.

La carte son demeure probablement toujours muette, même pour root. Le package alsa-utils (avec un kernel 2.6)intègre alsamixer : sous root, dans une console, il permet d'a�ecter un volume aux di�érentes sorties de la carte etsurtout dé-muter les pistes (touche M) puisque tout est muet par défaut dans Alsa.

On placera d'autres périphériques dans le même groupe, comme /dev/video0 pour une webcam ou le groupe dé�nidans le script /etc/hotplug/usb/libgphoto2 (par défaut video) pour faire fonctionner un appareil photo numérique USB.

9.6 Le problème des logiciels et composants propriétairesIl existe un certain nombre de logiciels propriétaires auxquels les gens sont très habitués voire dépendants, et dont

ils oublient l'usage d'autant plus facilement que ces logiciels sont gratuits. Chacun se déterminera en fonction de sesconvictions et des demandes de ses utilisateurs pour les installer, ils sont disponibles avec un peu de recherche dansDebian et peuvent aider à convaincre des personnes réticentes à propos de la viabilité de notre solution informatique ;une tel choix fait qu'on ne peut hélas plus quali�er celle ci de totalement libre.

Parmi ces logiciels, on trouvera en particulier :� Les polices True Type.� Acrobat Reader� Les codecs vidéo propriétaires du package w32codecs, qui accompagnent mplayer� Flash� Real audio� JavaCes trois derniers composants sont hélas nécessaires pour a�cher tel ou tel site Web...

10 Installation automatisée de toutes les autres machinesLa première machine doit servir de modèle pour toutes les autres. Dès que l'on a déterminé une liste complète de

logiciels pour les usages proposés aux futurs utilisateurs et que les divers détails de con�guration sont réglés, quand àl'a�chage, au son, à la vidéo, etc etc... il est possible de reproduire l'installation de cette machine sur le réseau quandtous les tests sont concluants.

10.1 Le principe de la réplication de �chiersLe principe est le suivant :1. On commence par une installation basique de Sarge sur toutes les machines clientes, qu'on termine par les

packages ssh et rsync.2. Nous utilisons ensuite un script qui interroge le serveur DNS pour connaître la liste des machines présentes sur

le réseau, et propose de choisir les machines cibles d'une synchronisation d'un ensemble de contenus envoyés àdestination à travers ssh automatiquement, sans qu'aucun mot de passe ne soit à saisir.

81Ce choix du groupe primaire des utilisateurs est exposé dans la section 8.4

44

Page 45: UnréseauDebianGNU/Linux pouruncentredeformationploug22.free.fr/doc/debian-install-reseaux-potin.pdf · 2005. 10. 12. · Samba),serveurdetemps,sauvegardes(Amandaetpartimage). Pour

3. Comme nous allons déployer un script d'installation, il faudra tout de même exécuter ce script sur chaquemachine, mais nous contrôlerons alors tout le réseau depuis une station unique sans authenti�cation, puisqu'ilsu�ra de s'authenti�er une seule fois sur le réseau en ouvrant sa session de travail le matin.

4. Cette procédure pourra être réutilisée pour mettre à jour les machines ou répliquer certains �chiers (paramétragede l'imprimante, logiciel installé à part, etc...).

10.2 Ssh en mode agentComment fonctionne donc ce système d'authenti�cation unique sur tout le réseau ? Voici un login ssh classique sur

une machine :

prof@hyperion:~$ ssh weatherwaxThe authenticity of host 'weatherwax (192.168.28.48)' can't be established.RSA key fingerprint is 04:59:cc:56:73:c8:57:47:19:d2:c7:1b:12:9f:2d:91.Are you sure you want to continue connecting (yes/no)?

Le système prévient que la machine à laquelle nous tentons d'accéder est inconnue, souhaitons nous continuer ?En lui répondant oui, l'identité chi�rée de la machine, fournie par son démon sshd, sera stockée dans le �chier�/.ssh/known_hosts et la question ne nous sera plus posée (c'est le sens du � Warning � suivant). Par contre sijamais cette identité numérique change, nous en serons prévenus car cela signi�era que la machine n'est plus la même,ce qui est extrêmement suspect. Répondons oui :

Warning: Permanently added 'weatherwax,192.168.28.48' (RSA) to the list ofknown hosts.Password:

Et nous sommes loggués sur la machine distante avec notre mot de passe validé par NIS. Nous voulons renforcercette authenti�cation et faire en sorte, en même temps, de ne s'authenti�er qu'une seule fois sur une seule machinequel que soit le nombre de connexions que nous pouvons opérer ensuite jusqu'à la fermeture de notre session. Plusclairement, pouvoir se logguer sur toutes les machines du réseau, en tant que root, sans mot de passe, de manièresécurisée.

La première chose à faire est d'utiliser un agent ssh qui va mémoriser notre authenti�cation et chi�rer les donnéestransférées sur le réseau. Pour générer cette clef, on procède de cette manière :

prof@hyperion:~$ ssh-keygen -t dsa

Ssh-keygen va générer notre clef, l'option � -t dsa � génère un chi�rement fort compatible avec ssh version 2 qu'ilest impératif d'utiliser pour des raisons de sécurité. La machine génère la paire de clefs (publique et privée), et nousdemande dans quel �chier sauvegarder cela :

Generating public/private dsa key pair.Enter file in which to save the key (/home/prof/.ssh/id_dsa):

Nous ne changeons pas le choix par défaut qui est de placer cela dans le �chier id_dsa, dans le répertoire .ssh durépertoire personnel. Validons, voici le moment le plus important.

Enter passphrase (empty for no passphrase):

C'est un gou�re de sécurité que de créer une passphrase vide ! C'est donc le moment de saisir unepassphrase la plus longue et complexe possible, avec autant qu'on le souhaite d'espaces et de caractères spéciaux, puisvalider. Cette chaîne de caractères nous servira par la suite quotidiennement pour administrer l'ensemble du réseau, ilimporte donc de choisir quelque chose d'à la fois non trivial à deviner mais que l'on soit certain de retenir.

Enter same passphrase again:

Il est demandé très logiquement de con�rmer cette passphrase. Le système l'enregistre :

Your identification has been saved in /home/prof/.ssh/id_dsa.Your public key has been saved in /home/prof/.ssh/id_dsa.pub.The key fingerprint is:46:58:2f:97:98:61:4c:3e:9b:94:0a:8a:3d:d1:1c:0b prof@hyperion

45

Page 46: UnréseauDebianGNU/Linux pouruncentredeformationploug22.free.fr/doc/debian-install-reseaux-potin.pdf · 2005. 10. 12. · Samba),serveurdetemps,sauvegardes(Amandaetpartimage). Pour

Et nous pouvons véri�er le contenu du répertoire .ssh de notre répertoire personnel :prof@hyperion:~$ ls -al .sshtotal 20drwx------ 2 prof users 4096 2005-03-31 11:09 .drwxr-xr-x 14 prof users 4096 2005-03-22 17:12 ..-rw------- 1 prof users 744 2005-03-31 11:09 id_dsa-rw-r--r-- 1 prof users 603 2005-03-31 11:09 id_dsa.pub-rw-r--r-- 1 prof users 224 2005-03-18 12:53 known_hosts

Testons de suite cette clef, nous allons transformer notre clef publique en clef autorisée sur la machine distante.Pour ce faire, il su�t de copier un �chier :prof@hyperion:~$ cd .sshprof@hyperion:~/.ssh$ cp id_dsa.pub authorized_keysprof@hyperion:~/.ssh$ ls -altotal 24drwx------ 2 prof users 4096 2005-03-31 11:33 .drwxr-xr-x 14 prof users 4096 2005-03-22 17:12 ..-rw-r--r-- 1 prof users 603 2005-03-31 11:33 authorized_keys-rw------- 1 prof users 744 2005-03-31 11:09 id_dsa-rw-r--r-- 1 prof users 603 2005-03-31 11:09 id_dsa.pub-rw-r--r-- 1 prof users 458 2005-03-31 11:15 known_hosts

Il se trouve maintenant un �chier authorized_keys dans notre dossier personnel et donc, grâce au montage NFS,sur l'ensemble du réseau (ce ne sera pas le cas pour le root de chaque machine).prof@hyperion:~/.ssh$ ssh weatherwaxEnter passphrase for key '/home/prof/.ssh/id\_dsa':

La même machine que précédemment ne nous demande plus de mot de passe, mais notre passphrase. Il su�t de larentrer pour s'authenti�er sur la machine. Nous avons introduit un niveau de sécurité supérieur à celui du simple motde passe, mais il nous est toujours demandé une authenti�cation. Utilisons donc un � agent ssh �. Délogguons nous dela machine distante et introduisons toutes les variables d'environnement dans l'agent :prof@hyperion:~/.ssh$ eval `ssh-agent`Agent pid 3523

Voila qui est fait82. Nous pouvons maintenant nous authenti�er auprès de cet agent ssh :prof@hyperion:~/.ssh$ ssh-addEnter passphrase for /home/prof/.ssh/id_dsa:Identity added: /home/prof/.ssh/id_dsa (/home/prof/.ssh/id_dsa)prof@hyperion:~/.ssh$

Et s'ensuit une agréable surprise :prof@hyperion:~/.ssh$ ssh weatherwaxLinux weatherwax 2.6.10 #1 Tue Jan 18 15:51:30 CET 2005 i686 GNU/Linux

Last login: Thu Mar 31 11:36:33 2005 from hyperion.mp-soa.netprof@weatherwax:~$

Plus aucun mot de passe n'est demandé, nous sommes authenti�és sur toutes les machines qui connaissent notreclef jusqu'à la �n de notre session. Comme le �chier authorized_keys est � présent � sur chaque machine dans notrerépertoire personnel à cause du montage NFS, on remarquera que nous pouvons ainsi rentrer sur une machine, ensortir et rentrer sur une autre toujours sans mot de passe.

Le problème est que le compte root de chaque machine ne nous connaît pas, car ce compte n'est pas connu de NISmais demeure, heureusement d'ailleurs, local à chaque machine. Par mesure de sécurité, nous n'allons pas copier notreclef privée ni la liste des machines connues sur tout le réseau, mais simplement la clef publique qui se trouve dans le�chier authorized_keys. Nous allons donc nous authenti�er pour la dernière fois sur la machine distante en apprenantà utiliser rsync83 :

82Il s'agit d'apostrophes inversées obtenues avec Alt Gr-782pour se promener de machine en machine en emportant l'agent avec soi, voir la �n de cette section83on peut le faire également avec scp, mais il faut s'authenti�er une fois pour créer le répertoire, une autre fois pour copier le �chier si

on ne veut pas copier tout le répertoire

46

Page 47: UnréseauDebianGNU/Linux pouruncentredeformationploug22.free.fr/doc/debian-install-reseaux-potin.pdf · 2005. 10. 12. · Samba),serveurdetemps,sauvegardes(Amandaetpartimage). Pour

prof@hyperion:~$ rsync -avzR .ssh/authorized\_keys root@weatherwax:~Password:building file list ... done.ssh/.ssh/authorized\_keys

sent 627 bytes received 40 bytes 148.22 bytes/sectotal size is 603 speedup is 0.90

Il ne nous reste plus qu'à rentrer en root sur la machine distante sans mot de passe :

prof@hyperion:~/.ssh$ ssh weatherwax -l rootLast login: Thu Mar 31 11:55:05 2005 from hyperion.mp-soa.netweatherwax:~#

La contrainte est de reproduire cette copie de �chier / répertoire dans /root sur chaque machine du réseau. D'autrepart, si plusieurs administrateurs procèdent à cette manipulation, on veillera à ne pas écraser la clef du collègue encopiant brutalement le �chier, mais en y insérant notre clef à la suite de la sienne en éditant le �chier.

Sur notre station de travail, il su�t maintenant de rajouter une ligne dans le �chier .xinitrc (ou .xsession), quicontient le fameux � eval `ssh-agent` � et de s'authenti�er auprès de l'agent avec ssh-add dans le premier terminalgraphique ouvert au début de notre session de travail sous X, c'est la toute première chose à faire le matin en selogguant :). On constatera ainsi que cela fonctionne pour les autres xterms ouverts par la suite, et qu'on a plus ainsiqu'à saisir une seule fois sa passphrase en début de journée pour administrer toutes les machines. Le revers de lamédaille consiste bien entendu à bloquer son écran dès qu'on s'éloigne de l'ordinateur pour empêcher quiconque depasser root à notre place sur toutes les machines qui connaissent notre clef.

Le lecteur attentif et exigeant aura remarqué qu'il est impossible de passer de machine en machine en conservantl'agent, il faut toujours se delogguer puis se relogguer pour que cela fonctionne. De manière à se promener sur leréseau en emportant son agent avec soi, il su�t de déclarer cette ligne dans /etc/ssh/ssh_con�g (attention, �chier decon�guration du client, ssh_con�g, et non du serveur, sshd_con�g) :

ForwardAgent yes

10.3 Dupliquer la première machine : adapter le script de réplication - premiers testsRsync est un logiciel très puissant qui synchronise des �chiers ou répertoires de la machine locale sur une machine

distante, en envoyant uniquement les di�érences. Typiquement, si on a rajouté une virgule dans un �chier, rsync estcapable d'envoyer uniquement la virgule, compressée et chi�rée. On trouvera des détails dans la documentation dersync ainsi que sur cette page84.

Nous allons utiliser rsync pour déployer un ensemble de �chiers sur l'ensemble du réseau au moyen d'un script,pour répliquer l'installation de la première station de travail que nous avons passé tant de temps à �gnoler. Notrescript va interroger le serveur DNS par ssh pour rapatrier le �chier de zone et proposer la liste des machines connues.On saisit le numéro de chaque machine dans la liste, pour l'ajouter ou la retirer si elle a été sélectionnée par erreur. Lerésultat est a�ché, on sort de cette interface avec Control-D, et rsync commence son travail : synchroniser le contenude ce qu'on lui a passé en paramètre en l'invoquant.

Le script de réplication85 86 demande une adaptation à la structure du réseau. Il suppose également que les �chiersde zone aient une certaine structure en colonnes que va aller lire awk. Si le nombre de colonnes n'est pas le même, lescript ne peut pas fonctionner.

#Paramètres réseau et serveurRESEAU="192.168.28"SERVEUR="andromede"REP_DNS="/var/named"DNS="db.mp-soa"

Les paramètres concernent ici le serveur DNS du réseau, en particulier le répertoire où se trouvent les �chiers dezone et le nom du �chier lui même.

84http ://logiciels-libres-cndp.ac-versailles.fr/article.php3 ?id_article=2185http ://logiciels-libres-cndp.ac-versailles.fr/debianinstall/�chiers/rsync_mediapole86Ce script a été écrit par Serge Sauton que nous tenons à remercier particulièrement.

47

Page 48: UnréseauDebianGNU/Linux pouruncentredeformationploug22.free.fr/doc/debian-install-reseaux-potin.pdf · 2005. 10. 12. · Samba),serveurdetemps,sauvegardes(Amandaetpartimage). Pour

#Paramètres machine localeREP_COPIE="/tmp"COPIE_DNS="db.mp-soa"IP_LOCALE="192.168.28.7"\#contiendra l'adresse IP de la machine source

Le répertoire de la copie locale du �chier de zone et l'adresse ip de la machine source où nous nous trouvons, quisera exclue de la liste des cibles.

#Trois groupes de destinations...laisser un espace à la finENS_POSTES="Tous Packards Zéniths "

#Caractéristiques des groupesFIRST_PACKARD="11"LAST_PACKARD="21"FIRST_ZENITH="30"LAST_ZENITH="42"

On dispose de deux groupes de machines, par exemple pour deux salles ; on précise le début et la �n de chaqueplage d'adresses ip de ces deux groupes, � Packard � et � Zenith �. La contrainte est que ces postes soient situés surde telles plages et disposent évidemment d'une adresse �xe.

#Les postes à exclure de la liste de choixSAUF_POSTES="remote soleil stargate HP4050 HP4200 andromede\abraracourcix detritus rincewind weatherwax arrakis arcturus"

On pourra éditer cette liste de manière à rajouter ou exclure certains ordinateurs de la liste proposée, dans unpremier temps les serveurs et les imprimantes constituent un choix évident des noms à exclure.

#C'est clair :)OPTION_RSYNC="-e ssh -avzR"

Les options passées à la commande rsync qui va di�user les �chiers :� -e ssh pour authenti�er à travers ssh et utiliser l'agent dans lequel nous rentrons notre clef.� -avzR pour compresser (z), expliquer ce qui se passe de manière détaillée (v) et synchroniser en mode archive

a et R), en préservant les permissions sur les �chiers et l'arborescence. On ajoutera un � n � pour simplementtester sans que rien ne soit e�ectué.

Quelques précautions à prendre avec ce script :1. Indiquer toujours le chemin entier des �chiers sinon ils seront placés à la racine du disque distant2. � ./rsync_mediapole bidule � synchronisera le répertoire bidule tandis que � ./rsync_mediapole bidule/ �

synchronisera le contenu de ce répertoire.3. Ce script cherchera une authenti�cation root sur les machines indiquées, potentiellement sur tout le réseau. Si

on s'y prend bien :), en particulier en modi�ant les options de rsync pour e�acer les �chiers �gurant sur la cibleet pas sur la source, il est tout à fait possible de casser très rapidement toutes les machines sans aucun mot depasse ni demande de con�rmation.

4. Avec rsync comme avec scp, il faut faire attention à ne pas se tromper de sens dans la syntaxe de la commandepour ne pas e�acer tout le travail de la journée en pensant en faire une sauvegarde sur le serveur : rsync <source><destination> et non le contraire :).

On pourra commencer à faire quelques tests avec ce script, pour ensuite déployer simplement quelques �chierspertinents, par exemple /etc/apt/sources.list. L'avantage est tout de suite évident : une nouvelle source de packagesse retrouve instantanément sur tout le réseau sans passer sur chaque ordinateur pour le déclarer puisque le script lefait pour nous (outre le confort du proxy de packages).

10.4 Extraire la liste des logiciels installés et la reproduireNous voulons des machines identiques, possédant toutes rigoureusement les mêmes logiciels installés. Le principe

est extrêmement simple :1. Extraire la liste des packages installés sur la machine � modèle � :

48

Page 49: UnréseauDebianGNU/Linux pouruncentredeformationploug22.free.fr/doc/debian-install-reseaux-potin.pdf · 2005. 10. 12. · Samba),serveurdetemps,sauvegardes(Amandaetpartimage). Pour

dpkg --get-selections > packages.sel

2. Copier le �chier packages.sel (le nom n'a aucune importance) sur les machines � cibles � avec le script.3. Déclarer, sur ces machines, la liste des packages devant être installés :

dpkg --set-selections < packages.sel

4. Procéder à un dist-upgrade de cette manière :apt-get --yes dselect-upgrade

(par sécurité, on passera deux fois cette commande).Et voila ! :)Mais comme les machines � cibles � sont par hypothèse � brutes d'installation �, on doit les intégrer au réseau

(con�guration cliente de NIS et NFS), paramétrer leur carte son, régler éventuellement la locale, etc..., le plus simpleest de mettre l'ensemble des taches à exécuter dans un script qu'on déploiera sur le réseau avec la procédure que nousconnaissons maintenant.

Voici un script de ce type87. Attention, il ajoute des lignes dans des �chiers du système et n'est à utiliser qu'uneseule fois en l'état.

11 Jouer avec le réseauEn conclusion, voici quelques applications qui permettent de découvrir de manière amusante les fonctionnalités de

notre réseau.

11.1 Déporter l'a�chageLe protocole X Window est d'emblée conçu pour fonctionner en réseau. On peut alors totalement distinguer la

machine sur laquelle on tape des commandes, celle sur laquelle elles sont exécutées et en�n l'écran où s'a�che lerésultat.

Déporter l'a�chage est amusant, pratique dans certains contextes mais aussi peu souhaitable dans d'autres carouvrir son écran permet à d'autres d'a�cher des fenêtres dessus, mais aussi de capturer ce qu'on est en train de faire.On en usera donc avec discernement.

Il faut commencer par lancer X Window de manière à ce qu'il écoute sur le réseau, ce qui n'est pas le cas pardéfaut sous Debian (voir �n de la section 9.4). Un utilisateur peut alors ouvrir son a�chage à une machine donnéepar la commande � xhost +hostname � (ou xhost + pour l'ouvrir à tous). Sur une autre machine, dans un xterm, lacommande � export DISPLAY=hostname :0.0 � permet de déporter l'a�chage graphique sur le premier ordinateur.La commande � xcalc � a�chera alors la calculatrice sur l'écran distant, et la commande � xmessage � remplit lafonction que son nom indique :).

11.2 Déporter le sonPourquoi ne pas écouter de la musique sur la machine pourvue des meilleures enceintes ? Déporter le son d'une

application est très simple, et de nombreux logiciels multimédia permettent de le faire (mplayer, xine, xmms, etc...). Ilfaut commencer, sur la machine hôte (qui reçoit le son), par lancer un daemon qui écoute sur le réseau ; EnlightenmentSound Daemon est installé avec Gnome et permet de tester rapidement cette possibilité, en le lançant de cette manière :� esd -tcp -public �. Esd émet alors un son sur les enceintes.

Mpg321 fonctionne en mode texte ; malgré son absence d'interface utilisateur, il est doté de très nombreusesfonctionnalités et nous permet de tester facilement l'écoute d'un �chier sur un autre ordinateur, au moyen de cettesimple commande : � mpg321 -o esd -a nom_de_la_machine Mon_�chier.mp3.

11.3 WimsWWW Interactive Mathemactics server est un serveur d'applications pédagogiques fonctionnant dans une interface

web en mode client / serveur, le client consiste donc en un simple navigateur et un paquet Debian existe pourl'installation du serveur. Une base conséquente d'exercices est disponible, à laquelle on peut contribuer.

Wims s'interface sur un certain nombre de logiciels scienti�ques pour le calcul, le tracé, le rendu, etc... : pari-GP, Gnuplot, Octave, LATEXet bien d'autres, tous présentés ici même. Une section spéciale88 de ce site est consacréeentièrement à Wims.

87http ://logiciels-libres-cndp.ac-versailles.fr/debianinstall/�chiers/installpc.sh88http ://logiciels-libres-cndp.ac-versailles.fr/rubrique.php3 ?id_rubrique=24

49

Page 50: UnréseauDebianGNU/Linux pouruncentredeformationploug22.free.fr/doc/debian-install-reseaux-potin.pdf · 2005. 10. 12. · Samba),serveurdetemps,sauvegardes(Amandaetpartimage). Pour

11.4 La di�usion vidéo : vlcVideoLAN89 constitue un vaste projet de di�usion vidéo sur réseau. Le client vlc sait lire nombre de codecs vidéo

et des DVDs, mais il est également capable de di�user un �lm en broadcast sur un réseau local, ce qui permet d'égayersensiblement nos salles multimédia :).

Un certain nombre d'adresses sont réservées pour ce type d'usage que vlc sait exploiter : Fichier -> Ouvrir un�chier (avancé), après avoir choisi un �chier cliquer sur le bouton � �ux de sortie � dans l'onglet � réseau �, unefenêtre s'ouvre avec le bouton � paramètres �. Cliquer sur le bouton � UDP �, entrer une de ces adresses spéciales,comprises entre 224.0.0.0 et 239.255.255.255, par exemple 224.42.42.42. Il su�t alors de valider pour voir le switch semettre à clignoter de manière assez intensive :).

On accède au �lm depuis une machine quelconque en ouvrant simplement un �ux réseau (menu � �chier �) et enindiquant l'adresse de broadcast sur laquelle le �lm est di�usé.

Vlc intègre des paramètres indispensables, par exemple la possibilité de di�user sur un mur d'écrans :). Ouvrir lespréférences (menu � paramètres �), puis Vidéo - Filters - Image Wall pour dé�nir le nombre de rangées et de colonnesd'écrans.

Ces manipulations sont décrites sur le site de vlc, en particulier la procédure de di�usion sur le réseau local90(format PDF, en anglais).

11.5 Partager un scannerUn scanner partagé sur un réseau permettant de numériser depuis n'importe quel ordinateur reste un matériel

rare et coûteux dans le monde de l'informatique propriétaire. On peut cependant faire cela avec n'importe quelscanner au moyen d'un composant de Sane fonctionnant en mode client serveur, sans aucune dépense ni installationsupplémentaire.

Sur le poste � serveur � où est connecté le scanner, on placera la liste des machines autorisées à numériser dans le�chier /etc/sane.d/saned.conf :

# saned.conflocalhostlunahyperionmercureneptune

Et sur ces machines autorisées, on indiquera tout simplement la ou les machines faisant fonction de � serveur descanner � dans le �chier /etc/sane.d/net.conf :

# This is the net config file. Each line names a host to attach to.mars.mp-soa.netluna.mp-soa.net

Le démon saned se mettra en fonction en tant que service d'inetd dès son appel, si cette ligne �gure dans/etc/inetd.conf :

sane stream tcp nowait saned.saned /usr/sbin/saned saned

Et on aura le plaisir d'avoir le choix du scanner à utiliser au lancement de xsane sur n'importe quelle machine :89http ://www.videolan.org/90http ://www.videolan.org/doc/misc/VLC Streaming.pdf

50

Page 51: UnréseauDebianGNU/Linux pouruncentredeformationploug22.free.fr/doc/debian-install-reseaux-potin.pdf · 2005. 10. 12. · Samba),serveurdetemps,sauvegardes(Amandaetpartimage). Pour

Il faudra tout de même encore se déplacer pour mettre le document à numériser dans le scanner :).

11.6 Un cluster de calculUne des applications les plus fascinantes d'un réseau de machines Unix est la construction d'un calculateur per-

mettant d'additionner la puissance de tous ces microprocesseurs qui la plupart du temps ne font �nalement pas grandchose.

Une application amusante permet déjà de tester le débit et la solidité du réseau avec la connectivité au serveurNFS : l'encodage de vidéo depuis un DVD. Transcode est un peu le couteau suisse en matière de codage vidéo ; lelogiciel DVD Rip est bien plus qu'une simple interface graphique à transcode, car il intègre un mode � cluster �permettant de découper de gros �chiers vidéo, de coder chaque morceau sur une machine et de rassembler le tout aufur et à mesure de l'avancement du travail au moyen d'un serveur NFS.

Il su�t d'installer transcode et les librairies appropriées sur chaque ordinateur, et DVD Rip sur la machine quipilotera le � cluster �. La limite de cette application est qu'il ne s'agit pas de véritable clustering puisqu'il n'y a pas deparallélisation des taches entre microprocesseurs : ainsi, les pistes audio ne pouvant être découpées comme la vidéo, onregardera une seule machine encoder laborieusement le son alors que toutes les autres sont inutilisées puisque la vidéoest encodée depuis longtemps. L'idée serait alors de leur faire encoder d'autres vidéos, et de les faire toutes travailleren même temps sur de nombreux projets.

C'est là un excellent moyen de totalement surcharger le réseau mais aussi de tester la solidité de l'interconnexiondes machines entre elles. NFS. A partir de là, on pourra s'intéresser à de véritables applications de calcul distribué sile câblage et les éléments actifs le permettent. Une des solutions les plus adaptées pour cela semble être Open Mosix91,à propos duquel on lira un très bon article92 sur LinuxFrench.net.

91http ://openmosix.sourceforge.net/92http ://www.linuxfrench.net/article.php3 ?id_article=1177

51

Page 52: UnréseauDebianGNU/Linux pouruncentredeformationploug22.free.fr/doc/debian-install-reseaux-potin.pdf · 2005. 10. 12. · Samba),serveurdetemps,sauvegardes(Amandaetpartimage). Pour

11.7 Quelques jeux en réseauDevant un réseau sous Linux, on se demandera probablement tout de suite s'il est possible de jouer à Quake :). La

réponse est oui, mais on trouve un certain nombre de jeux que les mordus de l'informatique connaissent depuis bellelurette, à commencer par Civilisation. Ce jeu légendaire est activement développé dans une version libre qui permet d'yjouer en réseau, cela s'appelle Freeciv, fonctionne en mode client / serveur sur un réseau local mais aussi sur Internetet s'installe tout aussi simplement que le reste avec apt-get.

D'autres jeux en réseau sont disponibles : échecs, Monopoly r©, bataille navale... c'est le cas de nombre de ceuxfournis avec Gnome et KDE. Mentionnons encore quelque chose de simple et rapide à prendre en main ; il n'y a pas de3D ni d'armes sophistiquées (quoique...) mais l'intérêt ludique demeure majeur pour tous les âges : le célèbre XBlast93.

En�n, un des jeux les plus amusants demeure le réseau lui même :). On ne manquera pas de l'indiquer à chaqueutilisateur lors de son login, en plaçant cette simple phrase dans le �chier /etc/motd de chaque machine :

Amusez vous bien, et soyez libres ! :)

[email protected]

93http ://xblast.sourceforge.net/

52

Page 53: UnréseauDebianGNU/Linux pouruncentredeformationploug22.free.fr/doc/debian-install-reseaux-potin.pdf · 2005. 10. 12. · Samba),serveurdetemps,sauvegardes(Amandaetpartimage). Pour

12 RemerciementsJe tiens particulièrement à remercier pour leur aide :� Stéphane Marzlo�, qui m'a appris ce que sont Internet et le logiciel libre� Stéphane Marchau, qui m'a appris comment faire marcher un réseau� L'école ouverte de l'Internet et l'AFUL, pour leur motivation et leur aide au moment de véritablement démarrer,

en 1998.� Fabrice Lemoine et Éric Mercier pour la relecture de ce document

53