Vous êtes sur la page 1sur 63

Savoir programmer son serveur Linux avec PostFix, DNS, Samba et Amanda

CHAPITRE 1 POSTER ET RECEVOIR DU COURRIER AVEC POSTFIX ......................................... 4 INTRODUCTION .................................................................................................................................................. 4 INSTALLATION DE POSTFIX ............................................................................................................................... 5 PREMIERE CONFIGURATION ............................................................................................................................... 7 POUR ALLER UN PEU PLUS LOIN....................................................................................................................... 12 LA REECRITURE DE L'ADRESSE DE L'EXPEDITEUR ........................................................................................... 15 GESTION DES ADRESSES LOCALES ................................................................................................................... 16 CONCLUSION ET REMERCIEMENTS .................................................................................................................. 17 CHAPITRE 2 POSTFIX............................................................................................................................... 18 POSTFIX ........................................................................................................................................................... 18 SPAMASSASSIN ................................................................................................................................................ 19 ANOMY SANITIZER .......................................................................................................................................... 20 FILTRAGE AVEC POSTFIX :............................................................................................................................... 20 CLAMAV ......................................................................................................................................................... 21 OPTIMISATION DES PERFORMANCES (FACULTATIF) ........................................................................................ 22 UW-IMAP (POP3 ET IMAP AVEC SSL).............................................................................................................. 22 CHAPITRE 3 DNS BIND 1ERE PARTIE : SERVEUR "CACHE DNS"............................................... 24 INTRODUCTION ................................................................................................................................................ 24 THEORIE : FONCTIONNEMENT DU SERVICE DNS. ............................................................................................ 24 UN SERVEUR DNS QUI FAIT CACHE ................................................................................................................. 25 LES FICHIERS DE ZONES ................................................................................................................................... 27 CONFIGURATION DE L'UTILITAIRE DE CONTROLE RNDC.................................................................................. 28 CONFIGURATION DES FICHIERS SYSTEMES ...................................................................................................... 28 TEST DE LA CONFIGURATION ........................................................................................................................... 29 CA MARCHE PAS! ............................................................................................................................................. 29 REMARQUES SUR UN SERVEUR DNS CACHE ................................................................................................... 29 CHAPITRE 4 DNS BIND 2EME PARTIE : SERVEUR DE ZONE........................................................ 30 UN SERVEUR DNS POUR MON DOMAINE. ........................................................................................................ 30 LE FICHIER /ETC/NAMED .................................................................................................................................. 31 LE FICHIER DE ZONE DE MON DOMAINE........................................................................................................... 32 DETAIL DE L'EN-TETE. ..................................................................................................................................... 33 ENREGISTREMENT DE LA ZONE........................................................................................................................ 34 SERVEUR SECONDAIRE. ................................................................................................................................... 35 ET SI A MARCHE PAS? .................................................................................................................................... 35

CHAPITRE 5 LE PROJET SAMBA........................................................................................................... 36 INSTALLER SAMBA ......................................................................................................................................... 36 RECUPERATION ET INSTALLATION DES PAQUETAGES SAMBA. ....................................................................... 36 PREMIER TEST DE VOTRE INSTALLATION ........................................................................................................ 37 AUTOMATISER LE LANCEMENT DE SAMBA ..................................................................................................... 37 INSTALLATION DU SERVEUR D'IMPRESSION..................................................................................................... 38 LE FICHIER DE CONFIGURATION PRINCIPAL ................................................................................................ 38 SECTION DE CONFIGURATION GENERALE ........................................................................................................ 39 SECTION DE CONFIGURATION DES PARTAGES DE FICHIERS ............................................................................. 39 CONFIGURATION DES PARTAGES D'IMPRIMANTES ........................................................................................... 40 COMMANDES UTILES...................................................................................................................................... 42 MONTER DES RESSOURCES DU SERVEUR DANS UN SYSTEME DE FICHIERS LINUX .......................................... 42 TESTER LA SYNTAXE DE SMB.CONF : TESTPARM ............................................................................................. 42 PARCOURIR LE RESEAU : SMBCLIENT .............................................................................................................. 42 MACHINES VISIBLES SUR LE RESEAU NETBIOS : FINDSMB ............................................................................... 42 RESOUDRE LES NOMS NETBIOS : NMBLOOKUP ................................................................................................ 43 LISTER LES CONNEXIONS AU SERVEUR : SMBSTATUS ...................................................................................... 43 EXEMPLE DE CONFIGURATION ...................................................................................................................... 43 TEST DE VOTRE INSTALLATION DEPUIS WINDOWS .................................................................................. 44 GESTION DES UTILISATEURS ET DES GROUPES ............................................................................................ 44 LES DIFFERENTS TYPES D'UTILISATEURS SAMBA ............................................................................................ 45 SYNCHRONISER LES UTILISATEURS ................................................................................................................. 45 GESTION DES GROUPES .................................................................................................................................... 45 OUTILS GRAPHIQUES DE CONFIGURATION D'UN SERVEUR SAMBA ............................................................ 45 KSAMBAPLUGIN .............................................................................................................................................. 46 MODULE SAMBA POUR WEBMIN ..................................................................................................................... 47 OUTIL GRAPHIQUE DE PARCOURS DES RESSOURCES SAMBA........................................................................... 49 CONCLUSION .................................................................................................................................................. 49 QUELQUES ADRESSES UTILES .......................................................................................................................... 49 LE SITE OFFICIEL DE CUPS ............................................................................................................................. 49

CHAPITRE 6 AMANDA.............................................................................................................................. 50 ERIC DOUTRELEAU, ERIC.DOUTRELEAU@INT-EVRY.FR ............................................................................... 50 1. AVERTISSEMENT .......................................................................................................................................... 50 2. INTRODUCTION ............................................................................................................................................ 50 3. POURQUOI UNE SAUVEGARDE EN RESEAU ................................................................................................... 50 3.1 NECESSITE DE LA SAUVEGARDE. ............................................................................................................... 50 3.2 L'ORGANISATION DES ORDINATEURS......................................................................................................... 50 3.3 L'UTILISATEUR DE LA MACHINE. ............................................................................................................... 50 3.4 LA SAUVEGARDE INCREMENTALE. ............................................................................................................ 50 3.5 CONCLUSION .............................................................................................................................................. 50 4. STRUCTURE D'AMANDA ........................................................................................................................... 51 4.1 PRESENTATION........................................................................................................................................... 51 4.2 LES POINTS FORTS D'AMANDA ................................................................................................................ 51 4.3 STRATEGIE MAITRE-ESCLAVE .................................................................................................................... 51 5. LE MECANISME. ........................................................................................................................................... 52 5.1 SUR LE SERVEUR. ....................................................................................................................................... 52 5.2 SUR LES CLIENTS........................................................................................................................................ 52 5.3 L'ORDONNANCEMENT. ............................................................................................................................... 52 6. QUELQUES REMARQUES SUR L'INSTALLATION. ........................................................................................... 53 6.1 DEPARTEMENTS CONCERNES..................................................................................................................... 53 6.2 GENERALITES............................................................................................................................................. 53 6.3 COMMENT INSTALLER AMANDA............................................................................................................. 54 6.4 CONFIGURATION DU CHANGEUR DE BANDE. ............................................................................................. 56 7. LA CONFIGURATION D'AMANDA ............................................................................................................... 57 7.1 AMANDA.CONF ........................................................................................................................................... 57 7.2 DISKLIST ..................................................................................................................................................... 58 8. COMMENT SAUVEGARDER. .......................................................................................................................... 58 8.1 CHOISIR LA BANDE. ................................................................................................................................... 58 8.2 VERIFICATIONS .......................................................................................................................................... 58 8.3 LANCEMENT DE LA SAUVEGARDE. ............................................................................................................ 58 8.4 REPRISE APRES INCIDENT. ......................................................................................................................... 58 9. COMMENT RECUPERER SES FICHIERS DANS UNE SAUVEGARDE. ................................................................. 59 9.1 PROBLEMATIQUE. ...................................................................................................................................... 59 9.2 PROCEDURE RETENUE ................................................................................................................................ 59 9.3 DESCRIPTION. ............................................................................................................................................ 59 9.4 EXEMPLE .................................................................................................................................................... 59 10. LISTE DES COMMANDES DISPONIBLES. ...................................................................................................... 62 11. CONCLUSION .............................................................................................................................................. 63

Chapitre 2 Poster et recevoir du courrier avec Postfix


Version 0.7 -- 29 octobre 2000d

ric Jacoboni
<jaco@linux-france.org> Copyright 2000 par ric Jacoboni

Introduction
propos de ce document
Ce document, comme d'habitude, ne se veut pas tre un guide de rfrence ou une adaptation franaise de la documentation de postfix, trs bien faite au demeurant. Il se borne relater les manipulations que j'ai t amen faire pour configurer le logiciel afin que je puisse recevoir et poster du courrier avec lui. Toutes critiques, positives ou ngatives sont videmment les bienvenues. Le site de rfrence de cette documentation est Linux-France qui contiendra toujours la version la plus rcente. partir de cette page, vous pouvez tlcharger les sources DocBook/XML, la version au format PostScript et la version au format PDF de ce document.

Prsentation
La configuration dcrite ici a t teste avec les systmes d'exploitation Debian GNU/Linux, et FreeBSD. En fait, le systme utilis a peu d'importance du moment qu'il est reconnu par Postfix. Ce qui est dcrit ci-aprs devrait donc s'appliquer dans tous les cas, le cas chant quelques modifications mineures prs. Notons que, pour Linux, des paquetages prcompils existent : la Debian, notamment, permet d'installer directement le programme via dpkg ou aptget et j'imagine qu'il existe galement des paquetages rpm. Le problme, avec ces paquetages binaires, est qu'ils ne permettent pas de suivre les frquents changements du logiciel ; or, celui-ci tant en phase de dveloppement, les nouvelles versions ajoutent de nouvelles fonctionnalits souvent fort intressantes... Concernant les autres Unix, il n'y a aucune raison pour que le fonctionnement soit diffrent : la documentation cite d'ailleurs une liste de tous les systmes pris en charge. Je n'ai personnellement vu aucune diffrence entre l'installation sous Linux et sous FreeBSD (dont les scripts d'initialisation sont bien distincts). La distribution officielle de Postfix peut tre rcupre sur son site officiel, ou sur l'un des sites miroirs franais. La distribution actuelle est postfix-19991231.08. Il ne sera pas trait ici de la rcupration du courrier venant de l'extrieur (du serveur de courrier de son fournisseur d'accs si l'on est, comme moi, reli via une connexion tlphonique). Pour cela, d'autres documentations existent, consultez notamment le site Linux-France.

Installation de Postfix
Installation partir de la distribution source
Compilation
Le logiciel se rcupre sous la forme d'un fichier .tar.gz que l'on dcompresse dans un rpertoire d'installation : # tar xvzf postfix-19991231-pl08.tar.gz -C /tmp # cd /tmp/postfix-19991231-pl08/

Dans ce rpertoire se trouve un fichier INSTALL fort clair (mais en anglais) qu'il suffit de suivre pas pas pour installer et configurer postfix. La premire tape consiste gnrer les excutables : # make

Il faut ensuite dplacer les fichiers binaires, de configuration et les pages de manuel dans les rpertoires adquats de votre systme. Sous le rpertoire d'installation, vous devez normalement avoir les rpertoires conf, bin, libexec, html et man (les autres rpertoires sont ceux contenant les sources, des exemples et les fichiers objets gnrs par la compilation).

Installation de la documentation
Pour installer les pages de manuel, il suffit de dplacer le contenu des rpertoires /tmp/postfix-19991231pl08/man/man* dans les rpertoires correspondants sur votre systme (/usr/man/man* sur une machine Linux, /usr/local/man/man*) sur une machine FreeBSD). Puis, vous pouvez installer le reste de la documentation. Pour rester compatible avec les documentations des autres logiciels de mon systme Linux, vous pouvez crer un rpertoire /usr/doc/postfix dans lequel vous dplacerez tous les fichiers de documentation du rpertoire d'installation (leurs noms sont en majuscules). Crez galement le rpertoire /usr/doc/postfix/html et dplacez-y le contenu du rpertoire html de l'installation (pour FreeBSD, on fait de mme et on cre l'arborescence /usr/local/share/doc/postfix).

Installation des fichiers de configuration


Sous Linux, tous ces fichiers vont dans un seul emplacement : /etc/postfix, sous FreeBSD, ils iront dans /usr/local/etc/postfix. Je me bornerai ici suivre ce qui est indiqu dans INSTALL (adaptez le chemin des fichiers de configuration votre systme) : # mkdir /etc/postfix # chmod 0755 /etc/postfix # mv /tmp/postfix-19991231-pl08/conf/* /etc/postfix # chmod 0644 /etc/postfix/* # chmod 0755 /etc/postfix/postfix-script*

Cration des files d'attente


Postfix utilise une arborescence beaucoup plus labore que celle de ses prdcesseurs pour placer les messages en attente de dlivrance. Il suffit ici d'en indiquer la racine (/var/spool/postfix/, gnralement) car tous les autres sous-rpertoires y seront crs lors du premier dmarrage de postfix : # mkdir /var/spool/postfix # chmod 0755 /var/spool/postfix

Vous pouvez choisir un autre emplacement : celui-ci devra tre indiqu lors de la configuration que nous tudions plus loin.

Installation des excutables


L encore, vous tes libres de choisir l'emplacement qui vous convient car il suffira ensuite de l'indiquer lors de la configuration. La mthode gnralement pratique consiste sparer les commandes des dmons : les premires sont initialement dans le rpertoire bin et iront dans /usr/local/sbin avec des liens de /usr/sbin vers eux), les seconds sont initialement dans libexec et iront dans /usr/local/libexec/postfix) : # cd /tmp/postfix-19991231-pl08/bin # cp post* sendmail /usr/local/sbin # mkdir /usr/local/libexec/postfix # cp `ls | egrep -v 'post|fsstone|smtp|sendmail'`/usr/local/libexec/postfix

Droits d'accs la file d'attente


Il s'agit ici de permettre l'accs des utilisateurs locaux au rpertoire /var/spool/postfix/maildrop. Par dfaut, tous les sous-rpertoires de /var/spool/postfix appartiennent au groupe root. Or, lorsque les utilisateurs postent un courrier, celui-ci transite d'abord par le rpertoire maildrop. Avec les droits actuels, ces courriers seraient donc refuss. Plusieurs possibilits, dcrites dans le fichier INSTALL, sont possibles : rendre le rpertoire maildrop accessible tout le monde, ou utiliser la commande postdrop en sgid. Nous avons retenu la premire solution. Pour ce faire, il suffit de modifier les droits d'accs du rpertoire maildrop : # chmod 1733 /var/spool/postfix/maildrop

Cette solution suppose que vous ayez confiance en vos utilisateurs locaux... Si ce n'est pas le cas, prfrez-lui la solution du postdrop en sgid (dcrite dans le fichier INSTALL). L'invocation de la commande postdrop lors de l'envoi d'un message est ralise automatiquement via l'appel du script postfix-script qu'il s'agit donc de rendre accessible tout le monde : # cp /etc/postfix/postfix-script-nosgid /etc/postfix/postfix-script

Utilisation de paquetages pr-compils


Si vous prfrez utiliser des paquetages rpm ou deb, vrifiez les emplacements des diffrents fichiers et adaptez les chemins utiliss ici votre configuration.

Premire configuration
Oublier sendmail !
Pour que postfix devienne votre agent de transport de courrier, vous devrez probablement dsactiver sendmail. Mme si vous ne l'avez jamais activ ou configur, il y a fort parier que ce dernier ait t install par votre distribution Linux ! Pour cela, il suffit, encore une fois, de suivre ce que propose le fichier INSTALL : # cd /usr/sbin # mv sendmail sendmail.OFF # ./sendmail.OFF -q # mv /usr/bin/newaliases /usr/bin/newaliases.OFF # mv /usr/bin/mailq /usr/bin/mailq.OFF # chmod 0 /usr/sbin/sendmail.OFF /usr/bin/newaliases.OFF \ /usr/bin/mailq.OFF # ln -s /usr/local/sbin/sendmail /usr/sbin/sendmail # ln -s /usr/local/sbin/sendmail /usr/bin/mailq # ln -s /usr/local/sbin/sendmail /usr/bin/newaliases Et c'est fini... Ces quelques lignes sauvegardent les excutables originaux de sendmail, vident sa file d'attente, tent toutes les permissions pour les protger, et crent des liens symboliques ayant les mmes noms que les originaux vers la commande sendmail de postfix.

Small is beautiful...
La premire chose qui frappe, quand on se plonge dans la documentation fournie avec postfix est son apparente simplicit... Finie la syntaxe sotrique du sendmail.cf, finie la ncessit de passer par un ensemble de macros pour oser esprer comprendre un tant soit peu ce que l'on est en train de configurer : avec postfix tout se passe par l'adaptation d'un seul fichier, main.cf, normalement plac, comme tous ses autres fichiers de configuration, dans le rpertoire /etc/postfix/ (ou /usr/local/etc/postfix/). Enfin, presque... nous verrons plus tard que d'autres fichiers doivent tre adapts, mais tous sont humainement lisibles et richement comments. la diffrence de sendmail, programme monolithique par excellence, postfix est compos de nombreux petits programmes ralisant chacun une tche bien dfinie. Pour la plupart, ces programmes ne sont pas vus de l'utilisateur mais appels directement par le programme serveur /usr/sbin/postfix. Le lancement de celui-ci au dmarrage du systme dpend de l'Unix utilis : avec un System V (Linux en fait partie, sauf la distribution Slackware), il est lanc via le script /etc/init.d/postfix selon la mthode habituelle des runlevels ; sur FreeBSD, il est lanc via la ligne sendmail_enable="YES" dans le fichier /etc/rc.conf (vous comprendrez plus loin ce que sendmail vient faire ici...). Sur les systmes BSD, on peut galement utiliser le fichier /etc/rc.local : % cat /etc/rc.local postfix start

Dmarrage de postfix
Ainsi que nous venons de le dire, quel que soit le systme utilis, c'est un script qui lance le serveur /usr/sbin/postfix en lui passant le paramtre start. Celui-ci lance son tour le serveur principal, /usr/libexec/postfix/master qui prend alors les choses en main et lancera les autres dmons lorsque cela sera ncessaire. Ces derniers se termineront aprs avoir accompli leurs tches ou aprs une certaine priode d'inactivit. Seul, le dmon de gestion de la file d'attente, /usr/libexec/postfix/qmgr reste en permanence en activit. Tout ceci peut se vrifier par une simple commande ps (ici sous FreeBSD, d'o la prsence de ces serveurs sous /usr/local/) : % ps axf ... 583 584 585 ...

? ? ?

S S S

0:00 /usr/local/libexec/postfix/master 0:00 \_ pickup -t fifo -c 0:00 \_ qmgr -t fifo -u -c

qui met en vidence la prsence du dmon master et le fait qu'il a lui-mme lanc les dmons pickup et qmgr (la commande ps utilise ici est celle de GNU, l'option -f n'a pas la mme signification avec un ps BSD). pickup est responsable de la rcupration des courriers locaux : comme nous l'crivions plus haut, pour des raisons de compatibilit, postfix utilise un programme nomm /usr/sbin/sendmail (qui n'est pas le programme sendmail bien connu, mais un homonyme). Ce programme est utilis pour dposer les courriers locaux dans la file d'attente maildrop : tous les courriers qui sont posts par tous les utilisateurs sont dposs dans cette file. pickup les rcupre alors et les passe au dmon cleanup qui remplira les en-ttes manquants, grera les enveloppes des messages et les dposera enfin dans une autre file d'attente, nomme incoming. Puis cleanup avertira le gestionnaire de file d'attente, qmgr, qu'un nouveau courrier est arriv. qmgr s'occupera alors de dlivrer le courrier dans les botes aux lettres de leurs destinataires et de grer les erreurs. Nous verrons plus loin les autres dmons entrant en jeu dans la dlivrance du courrier. Passons maintenant une configuration minimum pour tester localement postfix.

Configuration minimale
Notre but, ici, est d'arriver poster et recevoir du courrier en local : par exemple, root doit pouvoir poster un message l'utilisateur babe. Ce dernier doit pouvoir rcuprer le message, le lire et rpondre root. Pour simplifier, nous utiliserons le programme canonique mail. Nous supposerons que notre machine s'appelle alex et que notre domaine s'appelle linux-france.org. Vrifions tout de suite que c'est le cas : % hostname alex.linux-france.org

Ainsi que nous l'avons dj dit, la majeure partie du travail de configuration consiste adapter le fichier /etc/postfix/main.cf (ou /usr/local/etc/postfix/main.cf) nos besoins. Bien entendu, tout cela doit se faire sous le compte root. La premire chose faire est de sauvegarder le fichier original : # cp /etc/postfix/main.cf /etc/postfix/main.cf.0

Puis, chargez main.cf dans votre diteur de texte favori. Normalement, un certain nombre d'options sont dj en place. Certaines conviennent, d'autres non. Voici les lignes qui nous intressent (les commentaires et les lignes non modifies ont t supprims) : # INFORMATIONS SUR LES REPERTOIRES LOCAUX queue_directory = /var/spool/postfix command_directory = /usr/local/sbin daemon_directory = /usr/local/libexec/postfix # POSSESSION DES FILES D'ATTENTE ET DES PROCESSUS mail_owner = postfix # NOMS DE LA MACHINE ET DU DOMAINE myhostname = alex.linux-france.org # POUR L'ENVOI DU COURRIER myorigin = $myhostname # MODE DE TRANSPORT default_transport = smtp # GESTION DES ALIAS alias_maps = hash:/etc/postfix/aliases alias_database = hash:/etc/postfix/aliases # DELIVRANCE DU COURRIER mailbox_command = /usr/local/bin/procmail

Assurez-vous que toutes les autres possibilits pour ces lignes soient considres comme des commentaires en les faisant prcder du caractre dise (#) et ne modifiez pas les autres. Avant de tester tout cela, dtaillons rapidement les options choisies (pour des renseignements plus prcis, reportez-vous aux pages de manuel et la documentation fournie avec le programme). La premire section sert spcifier les emplacements :

/var/spool/postfix est le rpertoire de base pour toutes les files d'attente de postfix, Lors de son premier lancement, postfix crera tous les sous-rpertoires pour ses files sous ce rpertoire ; /usr/local/sbin est le rpertoire o se trouvent les commandes de postfix (les excutables dont le nom commence par post, et sa version de sendmail) ; /usr/local/libexec/postfix est le rpertoire contenant les dmons de postfix : c'est l que se trouvent tous les programmes serveurs qu'il utilise.

La deuxime section prcise qui est le propritaire de la file d'attente et de la plupart des processus serveurs de postfix. Ici, nous avons conserv la proposition, aprs avoir cr l'utilisateur postfix. Voici son entre dans notre fichier /etc/passwd : postfix:x:101:101::/var/spool/postfix:/bin/false

Le 'x' dans la partie mot de passe vient du fait que nous utilisons les shadow passwords . Le groupe 101 correspond au groupe postfix, lui aussi cr pour l'occasion : # grep 101 /etc/group postfix:x:101:

La troisime section sert indiquer le nom complet de notre machine. La section suivante concerne l'envoi du courrier : elle permet de renseigner postfix sur la machine qui a post. Pour le moment, nous considrerons que c'est ce que contient la variable $myhostname. Nous prcisons ensuite le protocole utilis pour l'acheminement du courrier. Pour l'instant, postfix ne reconnat que smtp et uucp (en ralit, on peut crer des transports dans /etc/postfix/master.cf, ce qui permet de changer des paramtres en fonction de multiples critres. On peut ainsi dupliquer le transport smtp et en changer les caractristiques en fonction des courriers entrants ou sortants ce qui est trs souple. Toutefois, ne l'ayant pas pratiqu, je n'en dirais pas plus... ). La gestion des alias peut faire appel au fichier /etc/aliases utilis par ses prdcesseurs mais nous prfrons en utiliser un autre : /etc/postfix/aliases (ou /usr/local/etc/postfix/aliases). La commande man aliases vous renseignera en dtail sur le format de ce fichier. Disons simplement que, comme son nom l'indique, il permet de dfinir des alias entre des noms de destinataires. Ainsi, par exemple, un serveur de news poste quotidiennement un rapport sur ses activits l'utilisateur news (ou usenet). Supposons que babe soit l'administrateur des news sur alex : pour qu'il puisse recevoir ces messages, et si root est d'accord, bien entendu, il suffit d'indiquer que les destinataires news et usenet ont pour alias babe. Ceci est ralis par l'ajout de la ligne suivante dans /etc/postfix/aliases : news: babe usenet: babe

Pour des raisons d'optimisation, postfix, comme ses prdcesseurs, demande ce que ce fichier soit trait comme une base de donnes au format DBM ou DB. Pour gnrer ces formats, on utilise l'utilitaire /usr/sbin/postalias (qui, rappelons-le, est un lien vers /usr/local/sbin/postalias). Ma machine ne reconnaissant pas le format DBM, j'ai donc opt pour le second et produit la base l'aide de la commande : # postalias hash:/etc/postfix/aliases qui a engendr le fichier /etc/postfix/aliases.db. La section concernant la dlivrance du courrier local indique ici que nous souhaitons utiliser procmail pour cette tche. Tout autre programme ayant la mme fonction peut convenir (deliver, par exemple), mais procmail est le plus connu dans le monde Linux et FreeBSD. Cette section ne concerne que l'acheminement local du courrier, ie. son criture dans les botes aux lettres des destinataires.

Test de la configuration locale


Aprs toute modification de l'un des fichiers que nous venons d'tudier, il faut demander postfix de relire sa configuration : # postfix reload

l'aide de la commande ps ax, vrifiez la prsence des dmons master, pickup et qmgr. Si vous ne les voyez pas, c'est qu'il y a eu un problme : consultez les fichiers /var/log/mail.* pour tenter d'en rechercher la cause. Si tout s'est bien pass, root va pouvoir envoyer un courrier babe : # mail babe -s test premier test local . Cc: #

Immdiatement, babe a d recevoir ce courrier : % mail Mail version 8.1 6/6/93. Type ? for help. "/var/spool/mail/babe": 1 message 1 new >N 1 root@alex.linux-france.org. Wed Jan 20 01:46 12/424 & 1 Message 1: From root@alex.linux-france.org Wed Jan 20 01:46:10 1999 Delivered-To: babe@alex.linux-france.org To: babe@alex.linux-france.org Subject: test Date: Wed, 20 Jan 1999 01:46:10 +0100 (CET) From: root@alex.linux-france.org premier test local & d & q

"test"

On notera la prsence d'un champ Delivered-To: : il est ajout par postfix afin d'viter les boucles dans la dlivrance du courrier et ne sera pas affich par dfaut avec la plupart des logiciels de lecture du courrier (en tous cas, avec Gnus et Netscape...). Essayons encore : maintenant postez sous le compte babe un message root et vite, trs vite, faites ps axf. Sous Linux, vous devriez voir les lignes suivantes : 1271 ? S 0:00 /usr/local/libexec/postfix/master 1272 ? S 0:00 \_ pickup -t fifo -c 1273 ? S 0:00 \_ qmgr -t fifo -u -c 1286 ? S 0:00 \_ cleanup -t unix -u -c 1287 ? S 0:00 \_ trivial-rewrite -n rewrite -t unix -u -c 1288 ? S 0:00 \_ local -t unix

Assez rapidement, vous remarquerez, si vous faites la mme commande, que cleanup et local se sont termins, tandis que trivial-rewrite survit plus longtemps, puis se termine. Tout ceci correspond ce que nous disions plus haut : pickup a rcupr le message et l'a pass cleanup. trivialrewrite s'est charg de rcrire l'adresse en rajoutant le nom de la machine locale derrire le nom de l'utilisateur. local est le dmon responsable de la dlivrance locale du message dans la bote aux lettres du destinataire. C'est ce moment que le fichier des alias est pris en compte et, si le destinataire utilise un fichier ~/.forward, local le fait suivre l'adresse indique. C'est local qui ajoute le champ Delivered-To: pour viter un bouclage intempestif et c'est lui qui remplit le champ From de l'enveloppe ( ne pas confondre avec le champ From:...). Pour finir cette partie, il ne vous reste plus qu' essayer de faire la mme chose avec vos logiciels de lecture de courrier favoris : cela ne devrait pas poser de problme puisque local dlivre les messages l'endroit o la plupart des logiciels s'attendent les trouver.

Pour aller un peu plus loin...


Les files d'attente
Lorsqu'on a l'habitude d'utiliser sendmail, la multiplicit des files d'attente de postfix a tendance drouter. En effet, en lieu et place du classique et unique /var/spool/mqueue/ on se retrouve avec l'arborescence suivante : # tree /var/spool/postfix/ /var/spool/postfix/ |-- active ... |-| | | | | | | | | | ... deferred |-- 048ED779D1 |-- 09085779E0 |-- 17101779D6 |-- 31DE0779DA |-- 3D15D779D4 |-- 4D2BD779D7 |-- 7BFA6779D3 |-- 7C65D779CF |-- B10C3779D0 `-- C3272779D2

|-- incoming ... |-- maildrop ...

Nous avons abrg la sortie de cette commande pour ne retenir que les noms de rpertoires qui nous intressent ici. postfix utilise quatre files d'attentes : maildrop

contient les messages locaux ;


incoming

contient les messages qui ont t prlevs dans maildrop par le dmon pickup, puis qui ont t traits par le dmon cleanup. Cette file contient aussi les messages venant de l'extrieur. En bref, elle contient les messages qui n'ont pas encore t traits par le gestionnaire de file d'attente qmgr ;
active

est une file contenant les messages en cours de dlivrance par qmgr ;
deferred

contient les messages qui n'ont pas pu tre dlivrs (il y en a 10 dans notre exemple).

De plus, le rpertoire /var/spool/postfix/defer contient les mails en attente plus longue et des rpertoires qui sont hachs afin de ne pas avoir des rpertoires contenant trop de fichiers : ainsi, le fichier 7B345AC0B1, par exemple, sera dans defer/7/B/7B345AC0B1. La documentation HTML de la distribution postfix dispose d'un schma prsentant clairement les interactions entre les diffrentes files d'attente et les diffrents dmons. C'est d'ailleurs de lui que je me suis inspir... Le contenu de la file d'attente peut tre consult avec la commande mailq (les habitus de sendmail ne seront pas dpayss...) : normalement celle-ci ne doit produire que les messages dont la dlivrance n'a pas encore eu lieu (dans notre cas, les 10 messages contenus dans la file deferred).

Les commandes de postfix


Nous avons dj vu que postfix s'invoquait en lui passant un paramtre qui prcisait l'action entreprendre. Ainsi, les paramtres stop et start arrtent et dmarrent le serveur, respectivement. D'autres commandes existent :

reload force postfix relire ses fichiers de configuration (en fait, il s'agit de deux appels conscutifs postfix : l'un avec le paramtre stop, l'autre avec le paramtre start) : cette commande s'avre donc ncessaire aprs la modification du fichier main.cf, par exemple ; check permet de vrifier la configuration du systme de courrier. Ce paramtre permet aussi de surveiller les diffrentes permissions des rpertoires utiliss par postfix, et de crer ces rpertoires s'ils n'existent pas. Si la configuration est correcte, et si l'option -v n'a pas t utilise, cette commande ne produit aucune sortie ; flush force postfix tenter de vider la file deferred, donc envoyer les messages en attente de dlivrance.

Enfin, last but not least, la distribution postfix fournit le programme postconf pour afficher les paramtres modifis par notre configuration (postconf -n), les valeurs par dfaut du logiciel (postconf -d) et l'ensemble des valeurs courantes des paramtres (postconf). Voici, titre d'exemple, ce que donne la premire commande sur ma configuration personnelle actuelle : # postconf -n alias_database = hash:/etc/postfix/aliases alias_maps = hash:/etc/postfix/aliases command_directory = /usr/local/sbin daemon_directory = /usr/local/libexec/postfix debug_peer_level = 2 default_destination_concurrency_limit = 10 default_transport = smtp defer_transports = smtp local_destination_concurrency_limit = 2 mail_owner = postfix mailbox_command = /usr/local/bin/procmail myhostname = alex.linux-france.org myorigin = $myhostname program_directory = /usr/local/libexec/postfix queue_directory = /var/spool/postfix relayhost = [smtp.mon.fai] sender_canonical_maps = hash:/etc/postfix/canonical

Nous n'avons pas encore vu certains de ces paramtres ? C'est normal. Nous allons maintenant nous en occuper...

Envoyer du courrier non local


Bien, nous savons maintenant que postfix fonctionne correctement avec les adresses locales notre machine (si ce n'est pas le cas, n'allez pas plus loin et revenez ici lorsque le problme sera rgl...). Allons maintenant la conqute du monde... La meilleure chose faire, tant que tous nos tests n'ont pas donn satisfaction, est d'utiliser un cho : ie. une adresse o nous pourrons envoyer un courrier qui nous sera retourn tel qu'il a t reu. Ceci nous permettra de vrifier au moins deux choses : que notre message a bien t achemin cette adresse ; que les enttes de notre message sont corrects (c'est important car certains sites refusent les messages provenant de sites non connus : voir la section sur le masquage des adresses).

<echo@cnam.fr> est une adresse de ce type, et nous l'utiliserons ici. Tout le courrier sortant de notre machine est d'abord envoy au serveur de courrier de notre fournisseur d'accs qui se chargera ensuite de l'envoyer sur l'Internet. Dans la terminologie classique, cela s'appelle un hte relais (ou relayhost, en anglais). Il faut donc indiquer postfix le nom de cet hte relais. Si l'on suppose que nous sommes abonns au fournisseur d'accs bien connu mon.fai et que la machine s'occupant du courrier chez ce fournisseur s'appelle smtp.mon.fai, il faut modifier le fichier main.cf, rechercher les lignes contenant relayhost, en dcommenter une et mettre : relayhost = [smtp.mon.fai]

Le format indiqu ici suppose que nous utilisons SMTP (spcifi par la variable default_transport) pour transporter notre courrier. En ralit, le format de relayhost permet aussi d'indiquer une machine UUCP bien que le transport par dfaut reste SMTP pour un intranet local, par exemple (voir les commentaires associs cette variable dans main.cf pour connatre toutes les possibilits). Puis, comme chaque modification de ce fichier, il faut faire postfix reload. Essayons maintenant la commande suivante : % mail echo@cnam.fr -s test essai d'envoi de courrier via postfix . Cc: %

Puis, examinons la file d'attente : % mailq -Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient------9C26D779D0 351 Wed Jan 20 21:23:55 babe@alex.linux-france.org (Name service error for domain cnam.fr: Host not found, try again)

N'tant reli l'Internet qu'pisodiquement, via une connexion PPP un fournisseur d'accs (F.A.I.), le domaine cnam.fr ne pourra tre connu que lorsque nous serons connects, par consultation du serveur de noms de notre F.A.I. Ce n'tait pas le cas ici, et ce ne le sera pas souvent : pour conomiser sur la facture tlphonique, on a tout intrt composer son courrier en tant dconnect et tout expdier d'un seul coup lors de la connexion suivante. postfix nous prvient de cet tat de fait grce au message Name service error for domain cnam.fr de la commande mailq. Lors de notre prochaine connexion, il suffira simplement d'appeler la commande postfix flush (ou sendmail -q pour les nostalgiques...) pour que le courrier en attente soit nouveau dlivr.

Attention
sur ma machine, par exemple, seul root a le droit de faire postfix flush, un utilisateur normal devra utiliser /usr/sbin/sendmail -q pour envoyer les messages. La documentation de postfix vous expliquera pourquoi.

Lorsque l'on est, comme moi, connect pisodiquement, le mieux est donc d'indiquer postfix de dfrer la dlivrance des courriers. Ceux-ci seront alors placs dans la file d'attente et il ne tentera plus de les envoyer sauf si on le lui demande explicitement via un sendmail -q. Ce type de fonctionnement est tout fait adapt aux connexions pisodiques (on peut mettre le sendmail -q dans un script de post-connexion) et est pilot par la variable defer_transports du fichier main.cf : defer_transports = smtp

Ceux qui se sont longtemps battu pour contourner ce problme avec sendmail, le vrai, apprcieront cette simplicit...

Nous pouvons aussi aller directement inspecter le contenu des files d'attente de postfix : vous noterez alors que le numro 9C26D779D0 apparat en deux endroits : dans le rpertoire /var/spool/postfix/defer/9/C/ : si vous regardez le contenu de ce fichier, vous noterez qu'il contient simplement le message indiquant le problme de rsolution de l'adresse de destination. dans le rpertoire /var/spool/postix/deferred : l'dition du contenu du fichier vous permettra de constater que toutes les informations y sont, mais formates d'une faon peu lisible...

Il existe une commande, assez primitive pour l'instant, appele postcat qui permet d'afficher sous une forme plus lisible les messages dans les files de postfix.

La rcriture de l'adresse de l'expditeur


nonc du problme
Vous avez passez probablement pass beaucoup de temps trouver un nom pour votre chre machine, et vous tes sr d'avoir fait preuve d'imagination en l'ayant appel warlordz.kill.windows : je doute que ce soit original, mais cela change de localhost.localdomain... Quoi qu'il en soit, un problme va maintenant se poser : avec cette configuration, et un tel nom de machine, le champ From: de vos courriers sera, par exemple bugs@warlordz.kill.windows, ou lamer@warlordz.kill.windows. Cela ne posera pas de problme quand l'utilisateur bugs postera un courrier lamer puisqu'il s'agira d'une dlivrance locale, mais cela risque d'en poser lorsque bugs enverra un courrier postmaster@site.serieux... En effet, pour viter les courriers indsirables (aka SPAM ou UCE) posts par de tristes sires, le systme de courrier de site.serieux a srement mis en place une protection toute simple : tout message dont l'adresse d'expditeur n'appartient pas un domaine connu sera directement mis au panier (il y a mme des sites qui vont plus loin en bannissant les messages venant de domaines connus... pour tre assez laxistes quant l'mission de ces fameux SPAMs). Qu'est-ce qu'un domaine connu ? Un domaine dment enregistr auprs des instances de l'Internet et je suppose que vous n'avez pas pay le NIC pour dposer le domaine warlordz.kill.windows, non ? En consquence, site.serieux, lorsqu'il recevra un message venant de votre domaine, recherchera dans ses tablettes s'il connat ce nom et, comme ce ne sera pas le cas, votre prcieuse missive ira se perdre dans les oubliettes de l'histoire, sans mme que vous en soyez averti.. Un autre problme est que, mme si le message n'tait pas rejet et que postmaster@site.serieux lui rpondait, le message de rponse serait donc envoy bugs@warlordz.kill.windows. L encore, le site n'tant pas connu, pas mme de votre fournisseur d'accs, la rponse se perdra dans la nature (ou plutt non, elle reviendra postmaster@site.serieux, ce qui ne manquera pas de l'agacer...). Pour corriger ces deux problmes, il faut donc faire en sorte que l'adresse bugs@warlordz.kill.windows soit remplace, lors de l'expdition du message par une adresse valide au sens de l'Internet, donc dment dclare. Pour ce faire, nous supposerons que vous tes abonn au fournisseur d'accs fai.fr (qui, lui, est enregistr et donc connu de tous les sites Internet). Lorsque vous vous tes abonn, le fournisseur vous a octroy un nom pour votre bote aux lettres (selon les cas, c'est vous qui proposez le nom, ou bien lui qui vous l'impose). Admettons que cette adresse soit jdupont@fai.fr (ce qui, je vous l'accorde, est bien moins fun que bugs@warlordz.kill.windows... que les Dupont me pardonnent, mais ce n'est qu'un exemple). Nous avons trois mthodes pour rgler le problme : la premire consiste se plier aux exigences et, la mort dans l'me, rebaptiser sa machine fai.fr et renommer l'utilisateur bugs en jdupont : ainsi, l'adresse d'expdition sera correcte. Pas terrible... et adieu la rebellion against ze oueurlde ! (il manque des fautes d'orthographe pour faire vrai...) ; la deuxime consiste tout simplement faire enregistrer son domaine auprs d'un organisme dment accrdit, et donc dpenser les conomies que l'on rservait l'achat de la prochaine cartouche pour sa Gomme Baille Color (il existe galement des possibilits pour enregistrer gratuitement un nom de domaine, si l'on dispose des ressources matrielles et des comptences ncessaires : voir le site www.eu.org). Cette solution implique galement d'autres contraintes purement techniques et nous ne la dtaillerons donc pas ici. la troisime, celle qui sera tudie ici, consiste configurer postfix pour qu'il rcrive l'adresse de l'expditeur, qu'il maquille l'adresse bugs@warlordz.kill.windows en jdupont@fai.fr.

La rcriture et le masquage du champ From:


postfix, comme son prdecesseur, permet de modifier le champ From:, qui contient l'adresse de l'expditeur. Par dfaut, cette option n'est pas active et il va donc falloir modifier notre configuration pour l'utiliser. Le principe est trs simple : on indique postfix qu'il doit utiliser une table de rcriture des adresses des expditeurs. Cette table s'appelle canonical et sera place dans /etc/postfix/ (ou /usr/local/etc/postfix/), son format est dcrit par la commande man 5 canonical. Dans notre cas, le fichier canonical devrait donc contenir : bugs jdupont@fai.fr partir de ce fichier, on gnre un fichier au format DB avec la commande postmap /etc/postfix/canonical, comme on l'a fait pour le fichier des alias ; dans la section ADDRESS REWRITING (Rcriture des adresses), prvue cet effet dans main.cf (et initialement vide), on ajoute la ligne suivante : sender_canonical_maps = hash:/etc/postfix/canonical on force postfix relire ce fichier en faisant postfix reload.

Et c'est tout... Il reste notre ami Jean Dupont, euh... pardon, bugs envoyer un message de test (local ou une adresse cho) afin de vrifier si la rcriture s'est bien effectue.

Gestion des adresses locales


La gestion des adresses locales s'effectue trs simplement par postfix. Dans la plupart des cas, vous n'aurez rien faire. Ce qui suit ne doit donc tre fait que dans certains cas bien prcis. Supposons que votre machine reoive des courriers destination de gus@machin.uucp.fr (ce qui peut tre le cas si vous utilisez galement UUCP pour recevoir du courrier). Le problme consiste maintenant faire comprendre postfix que les messages destination des adresses machin.uucp.fr doivent tre considres comme locales votre machine, sinon il essaiera de les renvoyer... Pour ce faire, on utilisera un autre fichier de configuration : transport un peu comme on l'a fait pour aliases. La syntaxe de ce fichier est trs simple et dcrite par sa page de manuel (man transport). Dans notre cas, voici quel serait son contenu : alex.linux-france.org local: localhost local: machin.uucp.fr local:

Toutes les adresses destination de alex.linux-france.org, de machin.uucp.fr, ainsi, bien sr, que les adresses locales seront alors considres comme du courrier local la machine. Comme aliases, le fichier transport doit tre trait pour produire un fichier au format db : # postmap /usr/local/etc/postfix/transport

Il reste maintenant indiquer postfix qu'il doit utiliser cette table pour acheminer le courrier. Pour cela, on rajoute dans main.cf la ligne suivante : transport_maps = hash:/usr/local/etc/postfix/transport qui aura priorit sur le contenu de la variable $mydestination (c'est pour a que le contenu de celle-ci doit apparatre dans le fichier dcrivant les adresses locales). La lecture de la page de manuel vous donnera toutes les autres informations ncessaires pour, par exemple, prciser pour une entre donne un type de transport particulier : si, par exemple, vous dsirez utiliser UUCP pour expdier vos courriers destination de truc.uucp.fr, il suffira d'ajouter l'entre truc.uucp.fr uucp:

Conclusion et remerciements
Ceux que sendmail rebutait peuvent essayer postfix pour le transport de leur courrier : sa syntaxe est claire et l'ensemble est richement comment. De plus, ses concepteurs ont pris soin de garder une compatibilit avec son gant de prdcesseur : sur ma machine, tous les programmes qui utilisaient sendmail pour lire et envoyer le courrier n'ont eu besoin d'aucune modification pour continuer fonctionner, car cette compatibilit est un critre important pour les concepteurs de postfix (et essentielle pour esprer le remplacer). Je ne suis pas suffisamment expert pour comparer les fonctionnalits avances des deux programmes mais, dans le cadre d'une utilisation personnelle, en machine isole, aucune fonctionnalit de sendmail ne m'a manqu. Il faudrait voir ce que cela donne sur une configuration lourde (gestion du courrier sur un rseau dcoup en sous-rseaux, gestion des listes de diffusion, etc.). La lecture du forum de discussion fr.comp.mail vous en apprendra plus sur ce sujet. Parmi ce qui manque -- bien que peu de particuliers en aient besoin -- ce sont les rcritures via des expressions rationnelles, par exemple. Ce sera probablement implant dans une future version. Cet article est videmment incomplet, imprcis et contient probablement des erreurs grossires... Je remercie donc d'avance tous ceux et celles qui prendront la peine de lire ce document, de le corriger et de l'annoter. J'essaierai de faire en sorte qu'il suive les volutions futures de postfix (et celle de ma connaissance du transport de courrier) et toute aide est la bienvenue dans le contexte de cet article qui se veut simplement un guide d'initiation. La version actuelle de ce document t soumise la sagacit d'Ollivier Robert, de Nat Makarvitch et d' Olivier Tharan. Je les remercie particulirement de leur aide en n'oubliant pas les contributeurs zls de fr.comp.mail.

Chapitre 3 Postfix
par Nicolas Agius Ce document va vous permettre d'installer un serveur mail complet (smtp, pop3, imap) avec filtrage anti-spams et antivirus. Vous pourrez ensuite y ajouter apache avec Squirrelmail, par exemple, pour un accs webmail. Pour raliser ceci, vous aurez besoin des logiciels suivants : Postfix (serveur smtp) SpamAssassin (filtrage spam) Anomy Sanitizer (filtrage mails errons et douteux) ClamAV (antivirus) UW-IMAP (serveur pop3 et imap) Ainsi que l'ensemble des scripts et fichiers que j'ai utiliss pour cette configuration : fichiers.tgz Cette documentation a t crite avec les versions suivantes (du 04/2004) : postfix-2.0.19.tar.gz Mail-SpamAssassin-2.63.tar.gz anomy-sanitizer-1.66.tar.gz clamav-0.65.tar.gz imap-2004.RC7.tar.Z Copiez ces fichiers dans /usr/src/ par exemple, vous en aurez besoins par la suite.

Postfix
Postfix est un serveur smtp performant, simple configurer et scuris. C'est un quivalent Qmail, mais il est plus facile mettre en place.

Installation
Excutez les commandes suivantes : # tar -xvzf postfix-2.0.19.tar.gz # cd postfix-2.0.19/ # make # groupadd postdrop # useradd postfix -d /dev/null -s /bin/false -c postfix # echo "postfix: root" >>/etc/aliases # make install Cette dernire commande va vous demander des informations : donnez les rponses par dfaut. Si vous utilisez Mandrake, tapez simplement : # urpmi postfix Postfix est install et les alias sont crs par dfaut dans /etc/postfix/aliases. diter le fichier /etc/postfix/main.cf et modifier les lignes suivantes afin de mettre des paramtres adapts : myhostname = mail.chezmoi.fr mydomain = chezmoi.fr myorigin = $mydomain mynetworks = 192.168.1.0/24, 127.0.0.0/8 #inet_interfaces = 192.168.1.1 mydestination = $myhostname, localhost.$mydomain, $mydomain Rq: le serveur DNS de votre domaine devra contenir l'enregistrement de mail.chezmoi.frPour dfinir des alias, ajouter la fin du fichier /etc/aliases des lignes de la forme : nom_alias: destinataire Exemple : operateur: root N'oubliez pas de faire postalias /etc/aliases pour mettre jour les modifications.

Lancement
Copier ce script postfix dans /etc/rc.d/init.d (sans l'extension .txt) Lancement : /etc/rc.d/init.d/postfix start Pour lancer Postfix chaque dmarrage faites : # chkconfig --add postfix # chkconfig --level 345 postfix on Quelques commandes d'administration : Rechargement de la config : postfix reload Forcer l'envoi des messages en attente : sendmail -q Supprimer tous les messages en attente : postsuper -d aLL Plus d'info : man postfix

SpamAssassin
SpamAssassin est un filtre anti-spam performant avec des fonctionnalits d'auto-apprentissage.

Installation
SpamAssassin a besoin d'un certain nombre de modules Perl (certains sont sans doute dj installs sur votre machine) que l'on peut rcuprer en utilisant la mise jour par Internet CPAN (rsolution des dpendances entre les modules). Si vous ne disposez pas de la mise jour par internet, vous pouvez tlcharger les modules manuellement sur http://www.cpan.org/ . # perl -MCPAN -e shell o conf prerequisites_policy ask install MIME::Base64 install MIME::QuotedPrint install HTML::Parser install Net::DNS install DB_File install Digest::SHA1 install Mail::SpamAssassin quit Vous pouvez aussi installer SpamAssassin partir du tarball (Mail-SpamAssassin-2.63.tar.gz) , mais les modules perl devront tre installs auparavant. Ensuite, copiez ce script de dmarrage (sans l'extension .txt) spamd (prsent dans les sources) dans le rpertoire /etc/rc.d/init.d

Configuration
La configuration se fait dans le fichier /etc/mail/spamassassin/local.cf, ajoutez-y les lignes suivantes : rewrite_subject 1 subject_tag [***SPAM***] Avec cette configuration, les messages dtects comme spam (avec un score suprieur 5) auront leur champ Subject commenant par [***SPAM***] et un tag X-Spam-Level indiquant le score du message. Pour ne pas filter les messages des personnes que vous savez sres, vous pouvez constituer une "liste blanche" en ajoutant la fin de ce fichier (local.cf) des lignes de la forme : whitelist_from monpote@chezlui.fr Plus d'infos : perldoc Mail::SpamAssassin::Conf

Lancement
La commande classique : /etc/rc.d/init.d/spamd start Pour lancer spamassassin chaque dmarrage : # chkconfig --add spamd # chkconfig --level 345 spamd on

Anomy Sanitizer
Anomy Sanitizer est un filtre mail qui corrige les messages dfectueux et bloque les pices jointes suspectes. Il se charge aussi d'appeler l'antivirus. Copiez le tarball dans /usr/local # cd /usr/local/ # tar -xzvf anomy-sanitizer-1.66.tar.gz # chown -R root:filter /usr/local/anomy # chmod 0750 /usr/local/anomy La configuration se fait dans le fichier /etc/sanitizer.cfg Voici un exemple de configuration : sanitizer.cfg copier dans /etc. Pour tester si cela fonctionne bien, faites : # cd /usr/local/anomy/testcases/ # ./testall.sh Plus d'informations : /usr/local/anomy/sanitizer.html

Filtrage avec Postfix :


La technique de filtrage utilise ici est celle propose par la documentation de Postfix. Nous aurions pu utiliser maildrop, qui permet de mettre des rgles de filtrages diffrentes pour chaque utilisateur mais la "mthode postfix" est plus simple et plus flexible. La mthode choisie ici est le filtrage par script, idale pour les petits et moyens serveurs. Si vous avez besoin de plus de performances, vous pouvez utiliser un filtrage par daemon, avec amavisd-new (http://www.ijs.si/software/amavisd/) . # groupadd filter # useradd filter -s /bin/false -d /var/spool/filter -g filter # rm -f /var/spool/filter/.* Voici le script dont a besoin Postfix pour effectuer le filtrage : filter.sh Cette mthode offre aussi la possibilit de filtrer les mails en mission ( cela peut tre intressant si vous ne voulez pas qu'un de vos utilisateurs envoie des spams ou des virus ... ) Copier le script dans /usr/local/anomy/ et ensuite : # cd /usr/local/anomy/ # chown root:filter filter.sh # chmod 750 filter.sh ajoutez la fin de /etc/postfix/master.cf : filter unix - n n - - pipe flags=Rq user=filter argv=/usr/local/anomy/filter.sh -f ${sender} -- ${recipient} Pour un filtrage entrant et sortant : toujours dans master.cf, aprs la ligne : smtp inet n - n - - smtpd ajouter : -o content_filter=filter:dummy Pour filtrage entrant seulement : il faut spcifier une liste d'adresses de destination filtrer. Crez le fichier /etc/postfix/filtered_domains contenant : chezmoi.fr FILTER filter:dummy (videmment, remplacer chezmoi.fr par votre nom de domaine) Faites : postmap filtered_domains pour gnrer la map correspondante. Ensuite, ajoutez la fin de /etc/postfix/main.cf : smtpd_recipient_restrictions = permit_mynetworks check_recipient_access hash:/etc/postfix/filtered_domains reject_unauth_destination Rq : remplacer hash si besoin par la valeur donne par la commande : postconf default_database_type Pour prendre en compte les modifications : postfix reload Plus d'info : postfix-2.0.19/README_FILES/FILTER_README (dans les sources)

ClamAV
ClamAV est un antivirus Unix sous licence GPL bas sur le projet OpenAntivirus.

Installation
Excutez les commandes suivantes : # tar -xzvf clamav-0.65.tar.gz # cd clamav-0.65 # groupadd clamav # useradd -g clamav -s /bin/false -c "Clam AntiVirus" -d /dev/null clamav # ./configure --sysconfdir=/etc # make # make install # cp contrib/init/RedHat/clamd /etc/rc.d/init.d La configuration du daemon clamd se fait dans le fichier /etc/clamav.conf Editez-le et supprimez la ligne "Example", enlevez aussi le # devant la ligne ScanMail Plus d'informations : man clamav.conf

Lancement
Pour dmarrer le daemon, faites : /etc/rc.d/init.d/clamd start Et pour le lancer chaque dmarrage : # chkconfig --add clamd # chkconfig --level 345 clamd on Rq: La vrification manuelle d'un ficher se fait avec la commande clamdscan

Configuration de la mise jour automatique :


La mise jour automatique permet de tlcharger les dernires dfinitions de virus. # touch /var/log/clam-update # chmod 600 /var/log/clam-update # chown clamav /var/log/clam-update Ajoutez la ligne suivante dans /etc/crontab pour tlcharger la mise jour tous les jours 12h00 : 00 12 * * * root /usr/local/bin/freshclam --quiet -l /var/log/clam-update Plus d'informations : man freshclam

Intgration de l'antivirus dans Anomy Sanitizer


Voici un patch qui permet d'intgrer ClamAV dans anomy : anomy-clamav.patch Copiez le dans /usr/local/anomy/contrib : # cd /usr/local/anomy/contrib # patch <anomy-clamav.patch # cp check_for_virus ../chk_virus.sh # cd .. # chown root:filter chk_virus.sh # chmod 750 chk_virus.sh Il faut ensuite modifier la configuration dans le fichier /etc/sanitizer.cfg : Modifier les lignes : file_list_1_policy = drop file_list_1_scanner = 0 en : file_list_1_policy = accept:accept:drop:save file_list_1_scanner = 0:1:3:/usr/local/anomy/chk_virus.sh %FILENAME %REPLY_TO Avec cette configuration, les pices jointes susceptibles de contenir des virus seront scannes. Plus d'informations sur les actions et les stratgies de scurit mener avec l'antivirus : /usr/local/anomy/sanitizer.html

Optimisation des performances (facultatif)


Les fichiers temporaires utiliss par ce filtrage sont crs dans le rpertoire /var/spool/filter. En montant ce rpertoire en mmoire vive (grce tmpfs), nous gagnons du temps sur les oprations de cration/lecture/criture. Rq : en cas de traitement de mail trs volumineux, tmpfs n'utilisera au maximum que la moiti de la ram de la machine. Pour ceci faites : mount -t tmpfs tmpfs /var/spool/filter/ -o mode=700,gid=filter,uid=filter,noexec Pour que le montage s'effectue chaque dmarage, ajoutez la ligne suivante dans le fichier /etc/fstab : tmpfs /var/spool/filter tmpfs mode=700,gid=filter,uid=filter,noexec 0 0 Les fichiers de ce rpertoire tant stocks dans la ram, il sont perdus chaque arrt de la machine. Pour ne pas recrer les prfrences utilisateurs de Spamassassin chaque dmarrage (enregistres dans ce rpertoire) , il faut modifier les paramtre du daemon spamd : Crez le fichier /etc/sysconfig/spamassassin contenant : SPAMDOPTIONS="-d -m5 -H" Plus d'informations : man spamd Faites /etc/rc.d/init.d/spamd restart pour prendre en compte les modifications.

UW-IMAP (pop3 et imap avec ssl)


UW-IMAP est le serveur imap/pop3 de l'Universit de Washington, plus facile mettre en place que Courrier-Imap. Il utilise le super daemon xinetd.

Installation
Pour bnficier des fonctionnalits de chiffrement, OpenSSL doit tre dj install. Vous pouvez modifier ci-dessous les valeurs de SSLINCLUDE, SSLLIB et SSLDIR pour correspondre votre installation. (les chemins utiliss ici sont ceux d'une RedHat 7.3) # tar -xzvf imap-2004.RC7.tar.Z # cd imap-2004.RC7 # make slx SSLINCLUDE=/usr/include/openssl SSLLIB=/usr/lib SSLDIR=/usr/share/ssl EXtraDRIVERS= SSLTYPE=unix # cp ipopd/ipop3d /usr/sbin # cp imapd/imapd /usr/sbin # chmod 1777 /var/spool/mail Avec cette configuration, la fois les connections normales (pop3) et les connecions scurises (pop3s) sont possibles.

Cration des certificats


Ces certificats sont ncssaires l'authentification SSL. # cd /usr/share/ssl/certs # openssl req -new -x509 -nodes -out imapd.pem -keyout imapd.pem -days 365 # openssl req -new -x509 -nodes -out ipop3d.pem -keyout ipop3d.pem -days 365 # chmod 600 ipop3d.pem # chmod 600 imapd.pem Plus d'informations : man openssl

Configuration
UW-IMAP utilise le super-daemon xinetd, qui doit tre configur pour faire appel ipop3d et imapd. Vrifiez que les entres suivantes sont prsentes dans /etc/services (si besoin est, ajoutez-les) : pop3 110/tcp imap 143/tcp imaps 993/tcp pop3s 995/tcp Crez les 4 fichiers suivants dans /etc/xinetd.d (supprimez l'extension .txt) : pop3, pop3s, imap, imaps . Ajouter ensuite dans le fichier /etc/hosts.allow les lignes (en adaptant votre rseau) : ipop3d : 192.168.1.0/255.255.255.0 imapd : 192.168.1.0/255.255.255.0 Ces deux lignes permettent de dfinir les permissions d'accs rseaux aux services fournis par xinetd. Plus d'informations : man hosts.allow Faites /etc/rc.d/init.d/xinetd restart pour prendre en compte les modifications. Voila, c'est termin. Si tout s'est bien pass, votre serveur mail fonctionne. N'oubliez pas de vrifier que votre firewall et votre service DNS sont bien configurs (notamment l'enregistrement MX de votre nom de domaine, pour que votre serveur smtp soit connu du monde extrieur) . Voir les commentaires de cette page

Chapitre 4 DNS BIND 1re partie : serveur "cache DNS"


Par Serge Pour cette rubrique, des connaissances sur TCP/IP sont ncessaires, ainsi qu'un minimum de savoir-faire sur la configuration des paramtres TCP/IP d'une machine Linux/Unix (bien que j'essaye d'expliquer au maximum toutes les tapes).

Introduction
Qu'est-ce donc qu'un serveur DNS?
C'est tout simplement ce qui sert convertir des adresses noms en adresses IP. Par exemple, quand vous tapez dans votre navigateur prfr l'adresse : http://lea-linux.org celui-ci va tout d'abord faire une requte un serveur DNS (gnralement le serveur DNS que vous avez configur pour votre connexion l'Internet, donc les serveurs DNS de votre fournisseur d'accs) en lui demandant : C'est quoi l'adresse IP de lea-linux.org ? Et le serveur DNS lui donne l'adresse IP et le navigateur va alors se connecter cette adresse IP et afficher le site. Ceci est valable pour toute autre application qui manipule des noms DNS (ftp, telnet, mail, ....).

Dans quel cas installer un serveur DNS qui fait cache?


Tout d'abord, il faut savoir que l'on peut remplir la main un fichier, qui s'appelle /etc/host, avec les correspondances "adresse IP et nom DNS des machines". Donc si l'on a un petit rseau local de quelques machines, on peut remplir ce fichier la main. Mais dans le cas d'un rseau beaucoup plus consquent, il vaut mieux installer un serveur DNS. L o un serveur DNS peut tre utile aussi, c'est si vous partagez une connexion internet sur votre rseau local. Vous installez sur la machine qui partage la connexion internet un serveur DNS qui fait cache. De ce fait, toutes les machines qui vont se connecter via ce serveur l'internet vont demander la rsolution d'adresse votre serveur en interne plutt qu'aux serveurs DNS externes, ce qui va permettre de rduire le traffic rseau sortant. Bon, en fait pour les premires connexions cela ne va servir rien, car comme votre serveur DNS sera presque vide, celui-ci va demander aux serveurs externes les rponses afin de remplir sa base DNS. Mais comme votre serveur va stocker les rponses, au bout d'un moment, cela va acclrer les rponses DNS, car c'est votre serveur local et non pas les serveurs externes qui vont rpondre ces requtes DNS. Mme dans le cas o vous n'avez qu'une machine "poste de travail" sous linux et que vous vous connectez trs souvent l'internet, le fait d'installer l aussi un serveur DNS sur votre poste va acclrer votre connexion, ce qui est assez agrable, surtout si vous tes en RTC (connexion via le tlphone). De plus, mon FAI avait frquemment des problmes de serveurs DNS, ce qui m'empchait rgulirement d'atteindre certains sites, alors je me suis dcid installer un serveur DNS qui fait cache des serveurs DNS de rfrence de l'internet. Depuis je n'ai plus aucun problme.

Pr-requis
Bon, avant de configurer le tout, il faut vrifier que vous avez sur votre machine ce qu'il faut pour faire votre serveur DNS, c'est--dire le package bind. Vrifiez donc que ce package est install sur la machine qui va faire serveur DNS, dans le cas d'une Mandrake ou Red Hat, vrifiez avec un utilitaire pour les RPM, dans le cas d'une Slackware, vrifiez avec pkgtool, ou dans tous les cas rechercher un fichier nommer "named" qui se trouve dans la plupart des cas dans /usr/sbin/named. Si vous ne trouvez pas de package "Bind...." ou si vous ne trouvez aucun fichier "named", installez alors le package "Bind....", qui doit srement se trouver sur le CD d'install de votre distribution.

Thorie : fonctionnement du service DNS.


Pour comprendre la configuration d'un serveur DNS, un minimum de thorie sur le fonctionnement de celui-ci est ncessaire. Tout d'abord, il faut savoir que les noms DNS sont organiss de faon hirarchique. Le haut de la hirarchie est le root (la racine), dsign par ".", puis viennent les "Top Level Domains" (TLD) que vous connaissez : .com, .net, .fr, .org, .... En fait, quand un nom est recherch, par exemple lea-linux.org, la "question" est pos dans l'ordre hirarchique, tout d'abord on demande un serveur racine (un serveur connu sur internet et dclar comme tant un serveur racine) la liste des serveurs pouvant rpondre au TLD ".org", puis on descend d'une hirarchie et on recommence. Donc partir de la liste de serveurs obtenue, on demande ceux qui rpondent "lea-linux.org", puis de mme pour lea-linux.org. C'est en gros le fonctionnement du service DNS.

Un serveur DNS qui fait cache


Le fichier /etc/named
On va voir ici une premire configuration possible, un serveur DNS qui fait cache. Vous avez besoin de ce type de serveur si votre serveur DNS ne vous sert que pour acclrer votre connexion internet (trs utile si vous tes connect via un modem RTC), ou si vous partagez une connexion internet via votre machine. Tout d'abord, ditons le fichier /etc/named.conf (crez ce fichier s'il n'existe pas) : // Fichier /etc/named.conf // pour serveur DNS cache options { // Rpertoire des fichiers de configuration directory "/var/named"; // Si vous traversez un firewall // et que vous avez des problmes DNS // dcommentez la ligne ci-dessous // query-source port 53; version "SECRET"; //permet de masquer la version de Bind - voir prcisions cidessous }; controls { inet 127.0.0.1 allow { localhost; } keys { rndc_key; }; };

key "rndc_key" { algorithm hmac-md5; secret "c3Ryb25nIGVub3VnaCBmb3IgYSBtYW4gYnV0IG1hZGUgZm9yIGEgd29tYW4K"; };

//Zone racine (root) zone "." { type hint; file "root"; }; //Zone locale zone "0.0.127.in-adr.arpa" { type master; file "zone/127.0.0"; };

Explication de ce fichier : Toutes les lignes qui dbutent par "//" sont des lignes de commentaires, elles ne sont l que pour documenter le fichier. La ligne "directory" indique named o il doit trouver tous ses fichiers de configurations. Tous les autres fichiers auront donc un chemin relatif celui-ci. On a ensuite la dclaration de la zone ".", la zone racine (root en anglais), avec son fichier de description que l'on va voir plus bas. Ensuite, on a la zone qui peut vous paratre bizarre, la zone "0.0.127.in-adr.arpa". En fait la zone "in.adr.arpa" est une zone "spciale" qui nous permet de faire des recherches inverses, c'est--dire trouver le nom d'une machine partir de son adresse IP cette fois-ci. Ce fonctionnement est identique celui qui permet de trouver les noms. Pour trouver une machine d'adresse IP 192.168.1.1 par exemple, la requte va tre de trouver en premier in-adr.arpa (en quelque sorte le root) , puis 192.in-adr.arpa, puis 168.192.inadr.arpa, etc... En fait, dans notre fichier, on dclare ici la zone de recherche inverse sur le domaine 127.0.0 qui est la zone de notre domaine local (rappelez-vous que les adresses IP 127.0.0.x sont des adresses IP spciales, 127.0.0.1 est l'adresse de loopback d'une machine), ce fichier est dtaill aussi plus bas. version "SECRET" : permet de masquer la version de Bind utilise et de limiter ainsi l'exploitation de failles e scurit. Exemple : [root admin]# dig @digital-connexion.info version.bind txt chaos ; <<>> DiG X.x <<>> @digital-connexion.info version.bind txt chaos ; (1 server found) ;; res options: init recurs defnam dnsrch ;; got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; QUERY SECTION: ;; version.bind, type = TXT, class = CHAOS ;; ANSWER SECTION: VERSION.BIND. 0S CHAOS TXT "SECURED" ;; Total query time: 1 msec ;; FROM: ns1.cfdpublications.com to SERVER: digital-connexion.info 213.186.35.124 ;; WHEN: Sun Mar 2 20:12:56 2003 ;; MSG SIZE sent: 30 rcvd: 62

Les fichiers de zones


Comme nous avons vu au-dessus, il nous faut d'autres fichiers, qui sont /var/named/root et /var/named/zone/127.0.0 /var/named/root : ; Fichier de zone des serveurs root ; A vrifier et maintenir rgulirement

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

6D 6D 6D 6D 6D 6D 6D 6D 6D 6D 6D 6D 6D

IN IN IN IN IN IN IN IN IN IN IN IN IN

NS NS NS NS NS NS NS NS NS NS NS NS NS

A.ROOT-SERVERS.NET. B.ROOT-SERVERS.NET. C.ROOT.SERVERS.NET. D.ROOT-SERVERS.NET. E.ROOT-SERVERS.NET. F.ROOT.SERVERS.NET. G.ROOT-SERVERS.NET. H.ROOT-SERVERS.NET. I.ROOT.SERVERS.NET. J.ROOT-SERVERS.NET. K.ROOT-SERVERS.NET. L.ROOT.SERVERS.NET. M.ROOT.SERVERS.NET.

A.ROOT-SERVERS.NET. 5w6d16h IN A 198.41.0.4 B.ROOT-SERVERS.NET. 5w6d16h IN A 128.9.0.107 C.ROOT-SERVERS.NET. 5w6d16h IN A 192.33.4.12 D.ROOT-SERVERS.NET. 5w6d16h IN A 128.8.10.90 E.ROOT-SERVERS.NET. 5w6d16h IN A 192.203.230.10 F.ROOT-SERVERS.NET. 5w6d16h IN A 192.5.5.241 G.ROOT-SERVERS.NET. 5w6d16h IN A 192.112.36.4 H.ROOT-SERVERS.NET. 5w6d16h IN A 128.63.2.53 I.ROOT-SERVERS.NET. 5w6d16h IN A 192.36.148.17 J.ROOT-SERVERS.NET. 5w6d16h IN A 198.41.0.10 K.ROOT-SERVERS.NET. 5w6d16h IN A 193.0.14.129 L.ROOT-SERVERS.NET. 5w6d16h IN A 198.32.64.12 M.ROOT-SERVERS.NET. 5w6d16h IN A 202.12.27.33 Comme dcrit prcdemment, ce fichier contient la liste des serveurs DNS root (racine). /var/named/zone/127.0.0: $TTL 3D @ IN SOA nom_machine.votre_domaine.votre_TLD. ( 1 ; Serial 8H ; Refresh 2H ; Retry 1W ; Expire 1D) ; Minimum TTL NS nom_machine.votre_domaine.votre_TLD. 1 PTR localhost. Remplacez bien sur "nom_machine.votre_domaine.votre_TLD" par les valeurs rlles de votre machine (par exemple azizlinux.icebox.org). Les "." aprs les noms de domaines ne sont pas une erreur et doivent tre prsents. J'insiste bien sur ce fait, car l'erreur typique du dbutant et de ne pas mettre le "." (j'avoue que ca m'arrive encore parfois).

Configuration de l'utilitaire de controle rndc


Si vous regardez a nouveau le fichier named.conf que l'on a fait prcdement, vous avez vu deux sections appeles "controls" et "key". Ces deux directives permettent le controlle de votre serveur de nom via le programme "rndc". La ligne "controls" dfinit les adresses IP des machines autorises contrler le serveur de nom (dans notre exemple il s'agit de la machine 127.0.0.1), et la ligne "keys" dfinit un couple algorythme/clef qui est en fait une sorte de mot de passe pour autoris l aussi le contrle distance. Pour que la machine puisse alors s'identifier, il faut qu'elle envoie ce mot de passe. Pour cela, il faut crer un fichier /etc/rndc.conf contenant la clef : /etc/rndc.conf: key rndc_key { algorithm "hmac-md5"; secret "c3Ryb25nIGVub3VnaCBmb3IgYSBtYW4gYnV0IG1hZGUgZm9yIGEgd29tYW4K"; }; options { default-server localhost; default-key rndc_key; }; Faite bien attention ce que les informations entres les fichiers named.conf et rncd.conf soient cohrents, c'est dire que "algorithm", "secret", "default-key" aient exactement les mme valeurs, autrement l'identification entre le serveur et rndc echouera. Pour la valeur de "default-server" dans le fichier rndc.conf, vous mettez l l'adresse ou le nom de la machine que vous voulez controler distance (dans notre exemple c'est la mme machine). Changez au moins la valeur de la key que je donne ici, elle est issue du fichier exemple de BIND, c'est dire que tout le monde possde cette clef par dfaut, donc si vous ne voulez pas que quelqu'un contrle votre serveur votre insu, modifiez la! rndc permet de stopper, dmarrer, recharger la configuration du serveur BIND distance. Voir la documentation de rndc, ou les autres parties de ce document.

Configuration des fichiers systmes


Bon maintenant que votre DNS est configur en tant que serveur cache, il reste encore deux fichiers systmes configurer pour indiquer notre machine que nous avons un serveur DNS et que nous pouvons nous en servir. Commenons par /etc/resolv.conf : search votre_domaine.votre_TLD nameserver 127.0.0.1 Remplacez votre_domaine.votre_TLD par les valeurs de votre machine bien sr (par exemple icebox.org). Ne pas mettre que votre TLD sans spcifier le domaine. En fait, quoi sert ce fichier ? Lorsqu'une application va lancer une requte DNS, elle ne fait pas appel directement votre serveur DNS mais au "rsolveur". Celui-ci lit ce fichier et regarde la ligne search pour savoir dans quel domaine chercher en premier. Cela peut paratre stupide, mais quand vous lancez une requte sur "www.netscape.com", via le rsolveur vous allez chercher en premier "www.netscape.com.votre_domaine.votre_TLD". Pourquoi ? me demanderezvous. Tout simplement parce que les personnes qui ont invent cela pensaient que la plupart des requtes de noms seraient en interne sur un rseau et rarement vers l'extrieur, donc par dfaut, il cherche en premier dans votre nom de domaine. La ligne nameserver indique l'adresse laquelle on peut contacter un serveur de nom. Aussi bien pour search que pour nameserver, on peut spcifier plusieurs entres de cette faon : search domaine1.tld1 domaine2.tld2 .... nameserver adresse1 nameserver adresse 2 nameserver adresse 3 ... Attention tout de mme ne pas surcharger en nombre d'entres dans la ligne search car ca va prendre du temps chercher dans tous les domaines spcifis. Diffrentes entres sur cette ligne ne servent que si vous tes sur un rseau local avec plusieurs noms de domaines et que vous avez l'habitude d'appeler les machines juste par leurs noms d'hte. Dans le cas d'une machine relie au net, mettre juste le nom de domaine de votre machine et rien de plus. Il reste encore un fichier configurer, le fichier /etc/host.conf, ditez ce fichier et vrifiez que la premire ligne de ce fichier comporte : order hosts,bind Cette ligne oblige le rsolveur regarder en premier les entres du fichier /etc/hosts puis de faire appel au serveur de nom qui est spcifi dans /etc/resolv.conf.

Test de la configuration
Nous allons tester maintenant que la configuration fonctionne. Lancez votre connexion l'internet. Vrifiez que le serveur DNS n'est pas dj dmarr par un : ps -aux | grep named Si la seule ligne que vous renvoie cette commande est "grep named", c'est que named n'est pas lanc. Sinon relevez le numro de PID de named et killez-le (kill numro_du_PID). Relancez ou lancez named par la commande : /usr/sbin/ndc start (remplacez /usr/sbin par le rpertoire ou ndc est install, si vous ne le trouvez pas, lancez alors named la commande "named&" ). Excutez alors la commande "nslookup" et vous devriez voir apparatre: olio@azizlinux:~$ nslookup Default Server: localhost Address: 127.0.0.1 Ca veut dire que tout marche bien, du moins que le serveur named est lanc et est prt rpondre aux requtes DNS (allez voir plus bas si ce que vous obtenez n'est pas la mme chose que ce qui est affich ci-dessus). On va tester que le cache marche vraiment en tapant maintenant: > lea-linux.org et vous devez voir apparaitre quelque chose comme: Server: localhost Address: 127.0.0.1 Name: lea-linux.org Address: 212.73.209.252 Puis retapez exactement la mme commande et cette fois ci, le rsultat devrait tre : > lea-linux.org Server: localhost Address: 127.0.0.1 Non-authoritative answer: Name: lea-linux.org Address: 212.73.209.252 > La ligne "Non-authoritative answer" signale justement que l'information a t rcupre via le cache du serveur DNS, et nous avertit donc que cette adresse peut tre fausse si l'adresse a chang depuis, ce qui est trs improbable. Quittez alors l'utilitaire nslookup par "exit". Voil, votre serveur "DNS cache" est oprationnel. Il ne vous reste qu' ajouter le "/usr/sbin/ndc start" dans un script de dmarrage (par exemple /etc/rc.local).

Ca marche pas!
Bon, soit c'est votre serveur DNS qui n'est pas lanc, soit vos fichiers systmes sont mal configurs. Pour le savoir, lancez la commande suivant pour voir si named tourne en tche de fond : ps -aux | grep named Si named ne tourne pas en tche de fond, ditez alors le fichier /var/log/messages et reprez les lignes qui comporte named[xxxx]: ...... , elles devraient vous indiquez les erreurs de configuration que vous avez faites (fichier de zone non trouv, etc...). Si named tourne, vrifiez alors que le rsolveur se connecte bien votre serveur DNS et pas sur un autre. Pour cela, quand vous lancez nslookup, celui-ci doit vous rpondre que le serveur par dfaut est bien localhost, avec comme adresse "127.0.0.1". Si ce n'est pas le cas, revrifiez les fichiers /etc/resolv.conf et /etc/host.conf. Vrifiez aussi le fichier de zone 127.0.0.

Remarques sur un serveur DNS cache


Un serveur DNS cache n'crit pas dans un fichier les diffrentes adresses qu'il rcupre, il les stocke en mmoire, ce qui veut dire qu' partir du moment o vous teignez votre machine (ou que vous stoppez le service named), vous perdez toutes les adresses en mmoire. Donc si vous utilisez votre serveur DNS juste pour acclrer votre connexion internet, ne stoppez pas votre serveur DNS et ne rebootez pas votre machine, o vous n'utiliserez en fait jamais votre cache. Le seul bnfice dans ce cas est que vous utilisez votre serveur DNS qui fait cache avec les serveurs "root" d'internet, ce qui vous garantit des rponses fiables. Dans le cas o vous partagez votre connexion internet (modem cable, adsl, ou mme simple modem) il est trs utile d'utiliser un serveur DNS cache. Par contre, pour que vos stations qui utilisent cette connexion partage se servent de ce serveur cache DNS, n'oubliez surtout pas de configurer toutes les stations pour qu'elles utilisent comme serveur DNS votre serveur et pas un autre. Pour cela, donnez comme adresse de serveur DNS l'adresse interne (ct LAN donc) de votre serveur.

Chapitre 5 DNS BIND 2me partie : serveur de Zone


Par Serge Pour cet article, je considre que vous avez lu la 1re partie, sur les serveurs DNS cache, qui permet dj de comprendre les fichiers de zones et donne la configuration minimale d'un serveur DNS. Sans cette configuration minimale votre serveur DNS ne fonctionnera pas. J'explique dans cet article comment configurer une zone personnelle pour un serveur primaire et secondaire. Je n'explique pas les zones inverses ni la scurit que l'on peut ajouter sur les zones que notre serveur va contenir. Ces parties seront vu dans un 3me article configuration avance.

Un serveur DNS pour mon domaine.


Nous prenons ici un exemple de configuration pour le domaine .org. Remplacez bien sr avec votre propre domaine. Attention: Votre serveur DNS doit, pour pouvoir fonctionner, avoir une adresse IP fixe sur l'Internet. De plus votre domaine doit tre enregistr chez un registar (Gandi, Namebay, ou tout autre registar) et lors de l'enregistrement du domaine vous devez fournir l'IP du serveur de nom en serveur primaire et l'IP du serveur secondaire. Nous dtaillons en 1er la configuration du serveur primaire, celle du secondaire tant triviale (voir plus bas dans l'article).

Le fichier /etc/named
On reprend le fichier dj cr dans l'article dns cache. Pour rappel, voici ce qu'il doit donc dj contenir: // Fichier /etc/named.conf // pour serveur DNS cache options { // Rpertoire des fichiers de configuration directory "/var/named"; // Si vous traversez un firewall // et que vous avez des problmes DNS // dcommentez la ligne ci-dessous // query-source port 53; version "SECRET"; //permet de masquer la version de Bind - voir prcisions ci-dessous }; controls { inet 127.0.0.1 allow { localhost; } keys { rndc_key; }; };

key "rndc_key" { algorithm hmac-md5; secret "c3Ryb25nIGVub3VnaCBmb3IgYSBtYW4gYnV0IG1hZGUgZm9yIGEgd29tYW4K"; }; //Zone racine (root) zone "." { type hint; file "root"; }; //Zone locale zone "0.0.127.in-adr.arpa" { type master; file "zone/127.0.0"; }; On ajoute alors dans ce fichier l'entre pour notre fichier de zone lea-linux.org: zone lea-linux.org { type master file zone/lea-linux.org } L'ajout de zone est trs simple comme vous pouvez le voir. Il suffit de dire quelle zone ce serveur va servir, mot clef zone , d'indiquer si nous si sommes le serveur d'autorit pour cette zone, mot clef type master et d'indiquer le fichier contenant les informations de la zone, mot clef file. Voyons maintenant ce que doit contenir ce fichier de zone.

Le fichier de zone de mon domaine.


Nous devons donc crer le fichier de zone de notre domaine lea-linux.org. Voyons le fichier, puis expliquons le: $TTL 3D @ IN SOA ns1.kilio.com. serge.kilio.net. ( 2003091801; serial 86400 ; refresh 3600 ; retry 3600000 ; expire 604800 ; default_ttl ) @ IN NS ns1.kilio.com. @ IN NS ns2.kilio.com. @ IN MX 50 ns1.kilio.net. @ IN MX 10 nice.kilio.net. IN A 80.245.32.131 irc IN A 80.245.32.129 www IN CNAME linuxmutuel.kilio.fr. wiki IN A 80.67.179.10 vizu IN A 195.202.0.21 devel IN A 80.67.179.10 sniper IN A 62.212.100.216 ftp IN A 80.245.32.131 beta IN CNAME linuxmutuel.kilio.fr Cela peut vous paratre trs barbare mais en fait rien n'est trs compliqu. On peut dcouper ce fichier en deux parties: L'en-tte: qui commence au dbut du fichier $TTL et se finit la ) Les enregistrements de la zone: le reste du fichier.

Dtail de l'en-tte.
Nous l'avons dj vu dans l'article prcdent mais voici ce qu'elle doit contenir obligatoirement: $TTL : l'indication du TTL (Time To Live) ou la dure de vie de la zone, exprime en secondes par dfaut, ou dans une autre unit si on la spcifie comme dans l'exemple, ici le D spcifiant que l'unit est en jours, donc 3 jours pour notre exemple. Le bloc suivant dfini tous les autres paramtres techniques et administratifs de la zone de la forme: @ IN SOA dns_primaire. adresse_mail. ( xxxxxxxx; serial xxxxx; refresh xxxxx; retry xxxxx; expire xxxxx; default_ttl ) dns_primaire: mettre ici le nom du serveur faisant autorit pour la zone adresse email: email du responsable technique de la zone en remplaant le @ de l'email par un . Le reste, encadr par des parenthses renseigne les donnes techniques de la zone avec: serial: le numro de version de la zone. Ce chiffre est particulirement important. A chaque fois que vous modifiez quoi que ce soit dans un fichier de zone, vous devez imprativement incrmenter ce numro, autrement les changements ne seront pas pris en compte par le reste du monde et particulirement par le serveur secondaire. C'est ce numro, s'il est incrment, qui indique au reste du monde que votre zone a subit un changement et que donc les autres serveurs DNS doivent redemander la zone votre serveur pour prendre en compte ces changements. On a l'habitude de suivre une rgle simple pour tre sr d'incrmenter ce numro de version, on le compose par la suite des chiffres de l'anne en cours, mois, jour et le nombre de changements effectus ce jour l: AAAAMMJJNN Donc par exemple si je modifie la zone le 10 juillet 2003 , je vais mettre 2003071001, puis je m'aperois que je me suis tromp donc je la modifie nouveau le mme jour, donc ce serial devient 2003071002, et si je la modifie ensuite le 15 aot de la mme anne le serial devient alors 2003081501. Cette rgle n'est pas du tout obligatoire, vous pouvez utiliser votre propre rgle du moment que le nombre soit incrment et que ce nombre ne comporte pas plus de 10 chiffres. Refresh: Temps en secondes d'attente du serveur secondaire avant de contrler si le serveur primaire a subi une modification au niveau de sa zone. Sur 8 chiffres max. Retry: Temps d'attente du serveur secondaire avant de faire nouveau une demande si le serveur primaire n'a pas rpondu une requte. Sur 8 chiffres max. Expire: Temps pendant lequel le serveur secondaire va conserver les donnes en cache. Si ce dlai est dpasse et que le serveur secondaire n'a pas pu contacter le serveur primaire, il va alors considrer que les donnes qu'il a en cache ne sont plus fiable et ne pourra plus servir de serveur secondaire pour la zone tant qu'il n'aura pas russi contacter le serveur primaire. Sur 8 chiffres max. Ttl: Valeur par dfaut de ttl des enregistrements. On peut spcifier les ttls au niveau de chaque enregistrement, mais d'une manire gnrale on dfini ici un ttl qui vaut pour tous les enregistrements.

Enregistrement de la zone.
Tout les enregistrements d'une zone suivent cette syntaxe: hte_ou_wildcard (ttl) classe type (priorit_si_besoin) valeur

Voici les explications de ces champs, puis en dessous quelques exemples pour mieux comprendre. Par dfaut nous n'utilisons pas de ttl pour les enregistrements (voir la remarque au dessus pour le ttl dans l'en-tte de zone). Hte ou wildcard: indique si on dfini une machine ou un ensemble de machine. Classe: type de classe, a comme valeur IN pour l'Internet. Nous ne dtaillerons pas ce champ, vous utiliserez toujours la classe IN pour vos besoins. Type: Indique quel type d'enregistrement nous sommes en train de dfinir. Les types les plus utiliss sont A pour une adresse, CNAME pour un alias de nom, NS pour un serveur de nom, MX pour un serveur de Mail, TXT pour des commentaires. Priorit: Si le type besoin d'une priorit, nous l'indiquons ici. Valeur: la valeur ou la donne de l'enregistrement que nous dfinissons. Dtaillons alors les exemples de notre zone pour mieux comprendre: @ IN NS ns1.kilio.com. @ IN NS ns2.kilio.com. Nous indiquons ici que les deux serveurs DNS (type NS) de la zone (wildcard @) lea-linux.org sont ns1.kilio.com et ns2.kilio.com @ IN MX 50 ns1.kilio.net. @ IN MX 10 nice.kilio.net. Nous indiquons ici que les deux serveurs de Mail (type MX) de la zone (wildcard @) lea-linux.org sont : nice.kilio.net avec la priorit 10 ns1.kilio.net avec la priorit 50. Cela veut dire que tout mail du type xxxxxx@lea-linux.org doit tre envoy en priorit sur nice.kilio.net et que si ce serveur ne rpond pas on l'envoie alors sur le serveur ns1.kilio.net. Faites attention, c'est la priorit la plus basse qui indique le premier serveur contacter. irc IN A 80.245.32.129 Nous indiquons ici que l'hte irc.lea-linux.org correspond l'adresse 80.245.32.129 www IN CNAME linuxmutuel.kilio.fr. Nous indiquons ici que l'hte lea-linux.org correspond l'hte linuxmutuel.kilio.fr . On aurait pu aussi le dfinir en type A et mettre l'adresse ip correspond linuxmutuel.kilio.fr comme valeur. Mais dans ce cas, si la machine linuxmutuel.kilio.fr change d'adresse IP on doit modifier la valeur de www pour la zone lealinux.org. De plus, comme cette machine hberge environ 200 sites web diffrents, il y aurait 200 fichiers de zones modifier avec la nouvelle IP. Pour viter cela, on dfinit alors lea-linux.org comme CNAME de linuxmutuel.kilio.fr. IN A 80.245.32.131 Vous remarquerez que le 1er champ est vide. Cela indique tout simplement que si l'on demande lea-linux.org directement (sans spcifier d'hte) on aura l'IP 80.245.32.131. Ce qui permet de taper dans votre navigateur http://lealinux.org sans le "www".. Voici un autre exemple qui n'est pas dans notre zone mais qui dfinit le type TXT: info IN TXT Zone du fabuleux site linux entre amis Indique que info comme valeur Zone du fabuleux site Linux entre amis. Aucune application n'a besoin de ce type d'enregistrement, mais il peut tre utile pour donner des infos sur une zone, etc.. Il existe d'autres types d'enregistrements que ceux vu ci-dessus, mais ils sont trs rarement utiliss sur l'Internet. Consultez les RFC sur les DNS si vous souhaitez les connatre.

Serveur secondaire.
Tout ce que nous avons vu au dessus concerne la configuration du serveur primaire de votre zone. Il faut gnralement dclarer lors de l'enregistrement de votre domaine chez un registar un serveur secondaire (et parfois des tertiaires etc.. mais la configuration est exactement identique celle d'un serveur secondaire, et seul le secondaire et obligatoire). Il faut donc, vous vous en doutez, le configurer lui aussi. Le serveur secondaire sert tout simplement rpondre aux requtes la place du primaire pour ne pas surcharger le serveur primaire ou si le serveur primaire est hors service temporairement. Il doit contenir tout d'abord la configuration de base vue dans l'article serveur cache comme n'importe quel serveur DNS qu'il soit primaire ou secondaire. Et il doit aussi contenir dans son fichier named.conf les zones pour lesquelles il est serveur secondaire sous la forme: zone lea-linux.org { type slave file zone/lea-linux.org masters {ip_serveur_primaire;} } et rien d'autre. Pas de fichier de zone ni rien. Les fichiers de zones seront crs automatiquement en interrogeant le serveur primaire directement via la directive masters.

Et si a marche pas?
Vous pouvez alors faire exactement les mmes vrifications que celles donnes dans l'article serveur cache. La seule diffrence est que si vous faites les tests nslookup sur le serveur primaire vous ne devez pas avoir de rponse Nonauthoritative.

Chapitre 6 Le projet Samba


Partager ses fichiers et imprimantes avec Samba Par Anne Vous disposez la maison ou dans votre entreprise de machines sous Linux et d'autres sous Windows. Comment faire en sorte de faire communiquer tout ce petit monde ? Samba va vous permettre de centraliser et rendre accessibles vos fichiers et imprimantes partir de toutes ces machines. L'article se propose de donner les lments ncessaires pour configurer ce partage dans un contexte de groupe de travail (le plus simple) mais en scurisant un minimum l'accs ces ressources, et donc une authentification des utilisateurs. Nous verrons dans un premier temps la configuration en mode texte, qui a l'avantage de vous expliquer les arcanes du fonctionnement du serveur. Vous pourrez galement utiliser les interfaces graphiques, ce qui vous permettra d'obtenir le mme rsultat. Le projet dmarre en 1992, grce Andrew TRIDGELL. Etudiant en physique, il dveloppe un protocole de partage de fichiers qui mulait les systmes Digital. 18 mois plus tard, il apprendra que ce protocole fonctionne galement avec Windows. Depuis le projet compte des dveloppeurs dans le monde entier et bnficie galement de financements d'entreprise pour l'implmentation de fonctionnalits compatibles Windows.

Installer Samba
Nous allons travailler partir d'une distribution Mandrake 10.0. Les postes clients peuvent tre indiffremment sous Windows 95/98 et/ou Windows 2000/XP/2003.

Rcupration et installation des paquetages Samba.


Lors de l'installation de votre distribution, vous avez pu choisir d'installer un certain nombre de serveurs, dont Samba. Nous allons donc commencer par vfifier la prsence des paquetages ncessaires. # rpm -qa | grep samba samba-server-3.0.2a-3mdk samba-common-3.0.2a-3mdk samba-client-3.0.2a-3mdk Si vous obtenez quelque chose de similaire, c'est que tout est dj prt. Vous pouvez alors passer la section suivante. Dans le cas contraire, nous allons installer les paquetages depuis le CD de votre distribution (ou tout autre support contenant votre distribution) : # urpmi samba Un des paquetages suivants est ncessaire : 1- samba-server-3.0.2a-3mdk.i586 2- samba2-server-2.2.8a-14mdk.i586 Que choisissez-vous ? (1-2)1 Pour satisfaire les dpendances, les paquetages suivants vont tre installs (14 Mo): samba-common-3.0.2a-3mdk.i586 samba-server-3.0.2a-3mdk.i586 Est-ce correct ? (O/n) o Prparation... ################################################## 1:samba-common ################################################## 2:samba-server ################################################## L'installation propose un choix entre Samba2 et Samba3. La dernire version apporte des amliorations considrables et des fonctionnalits supplmentaires, comme la gestion des groupes. Ces fonctionnalits sont surtout utilises dans une configuration oriente entreprise mais aprs tout, ne nous refusons rien ! Nous allons galement installer la partie cliente. Elle contient tous les outils qui permettent notamment le montage et le parcours des ressources Samba. # urpmi samba-client Prparation... ################################################## 1:samba-client ##################################################

Premier test de votre installation


Maintenant que Samba est install, dmarrons le serveur : # /etc/rc.d/init.d/smb start Lancement du service SaMBa : [ OK ] Lancement du service NMB : [ OK ] Deux dmons sont lancs, ncessaires au fonctionnement du serveur Samba : smbd et nmbd. smbd permet le partage des fichiers et imprimantes nmbd permet quant lui le parcours du rseau et la rsolution de noms Netbios... # /etc/rc.d/init.d/smb status smbd (pid 970) is running... nmbd (pid 972) is running... La commande ci-dessus permet de vrifier que Samba fonctionne correctement. Vous devez voir apparaitre les deux dernires lignes.

Automatiser le lancement de Samba


La dernire phase de l'installation consiste pour nous vrifier que Samba sera bien lanc automatiquement chaque dmarrage de la machine (ce qui vite bien des surprises !). Pour le vrifier, excutons la commande ci-dessous : # chkconfig --list smb smb 0:Arrt 1:Arrt 2:Arrt 3:Arrt 4:Arrt 5:Arrt 6:Arrt Elle indique les niveaux de fonctionnement auxquels le serveur est dmarr. Dans le cas o Samba n'est pas dmarr aux niveaux souhaits, ici il n'est jamais dmarr, il suffit de reconfigurer l'initialisation du serveur : # chkconfig --level 345 smb on Dans ce cas, Samba est dmarr aux niveaux 3, 4 et 5, ce qui correspond aux niveaux standards de fonctionnement des services rseau. Si la ligne de commande vous insupporte, vous pouvez utiliser, en root, la commande drakxservices :

Schema1 : configurer le dmarrage de Samba Cliquez sur la case cocher "Au dmarrage" sur la ligne smb pour dmarrer le service ds le dmarrage.

Installation du serveur d'impression


Pour terminer la phase d'installation, nous allons voir comment installer et configurer rapidement le serveur d'impression cups. Encore une fois, l'installation des paquetages est ralise grce la commande urpmi, suivie du dmarrage du serveur : # urpmi cups cups-drivers installation de /var/cache/urpmi/rpms/cups-1.1.20-5mdk.i586.rpm /var/cache/urpmi/rpms/cups-drivers-1.1-133mdk.i586.rpm Prparation... ################################################## 1:cups ################################################## 2:cups-drivers ################################################## # service cups start Lancement du service d'impression CUPS : [ OK ] Ci-dessous la configuration et la gestion d'une imprimante : Schema2 : interface d'administration de cups

La configuration est relativement simple. Sur votre machine, tapez l'url : http://localhost:631. Cliquez sur "Administrer les imprimantes" et laissez-vous guider pour ajouter votre ou vos imprimantes :).

Le fichier de configuration principal


Le fichier de configuration connaitre pour Samba est /etc/samba/smb.conf. Nous allons en dtailler les grandes rubriques. Celui-ci, on le verra, est modifiable soit l'aide d'un diteur de texte soit d'une interface graphique. Le fichier est dcoup en grandes sections indiques de cette manire : [section]. Les diffrents paramtres sont ensuite inscrits de la manire suivante : paramtre = valeur. Toute ligne commence par un "#" ou ";" est considre comme un commentaire. Par convention, le ";" est utilis pour commenter les lignes de configuration. Nous allons passer en revue les diffrentes sections en nonant les paramtres les plus courants. Les outils graphiques proposs pour paramtrer Samba que nous verrons par la suite, ne font que mettre jour ce fichier de configuration.

Section de configuration gnrale


La premire section est annonce par [global]. Elle contient les lments gnraux de la configuration du serveur Samba : nom du groupe de travail, rseaux autoriss, utilisateurs administrateurs... workgroup : nom du groupe de travail ou du domaine netbios name : nom netbios du serveur Samba, par dfaut gal au nom de la machine (hostname) server string : description affiche lors du parcours rseau, il s'agit d'un commentaire. printing : systme d'impression utilis pour le serveur d'impression : sous Linux on trouvera lprng et de plus en plus, cups (le choix ralis dans cet article). log file / max log size / log level : configuration des logs du serveur : respectivement le nom du fichier de log, sa taille maximum et le niveau des logs (plus le niveau est lev, plus la quantit d'informations est importante) hosts allow (deny) : entrer ici la liste des adresses IP des machines (ex : 192.168.0.3) ou rseaux ( ex : 192.168.0.) autoriss se connecter au serveur Samba (et inversement si on utilise le paramtre hosts deny). Le paramtre est important surtout si votre machine est accessible de l'extrieur. Le protocole Netbios fait l'objet de nombreuses attaques. Pensez galement configurer votre firewall pour bloquer les ports 137, 138 et 139 de l'extrieur. security : c'est une des options les plus importantes du fichier, qui pourra tre bloquante si elle est mal renseigne. Elle indique le mode de discussion du client Windows avec le serveur Samba. Dans les versions 3.x de Samba, le dfaut est user, et share pour Samba 2.x. Dans la version qui nous intresse, on utilisera le mode user si les noms de comptes utiliss pour se connecter au serveur ont un compte quivalent sur la machine Linux (existence d'une entre dans /etc/passwd). Dans le cas contraire, on prfrera share. Il existe galement 2 autres types possibles : domain et server que nous n'aborderons pas ici et qui sont rservs dans un fonctionnement de Samba en tant que contrleur de domaine. Ci-dessous quelques explications sur les implications de ce choix : share : ce mode ne ncessite pas d'authentification par un compte valide. Si le paramtre guest only est renseign, alors tout nouvel utilisateur sera identifi par le biais de cet utilisateur invit. user : dans ce cas de figure, l'utilisateur doit s'authentifier systmatiquement. Son compte windows devra disposer d'un compte correspondant sur le serveur (on parle aussi en bon franais de mapping) encrypt passwords / unix password sync / passwd program / passwd chat : configuration des mots de passe. On aura recours aux mots de passes encrypts. La synchronisation des mots de passe permet la synchronisation entre le mot de passe de l'utilisateur Samba et son compte sur le systme Linux. En l'autorisant, on permet l'utilisateur de modifier son mot de passe partir de la machine cliente et donc d'un poste client sous Windows. Enfin passwd program et passwd chat indiquent le programme utilis pour raliser cette modification ainsi que le dialogue qui s'tablira avec le serveur. Les paramtres par dfaut conviennent parfaitement. character set / client code page : permettent de faire correspondre un code page Windows avec un character set UNIX, pour utiliser notamment les caractres accentus. Par dfaut, on utilisera : client code page = 850 character set = ISO8859-1

Section de configuration des partages de fichiers


Nous allons maintenant passer aux sections de partages de fichiers. Nous aurons une section par partage dfini. A l'intrieur de chacune de ces sections, nous trouverons les options qui dfinissent le dit partage. Nous allons donner un nom chaque partage. Attention il existe un nom de partage de fichiers spcifique : [homes]. Il dfinit le partage des rpertoires personnels des utilisateurs, sans avoir spcifier le chemin dans les options. De manire gnrale, on aura donc [monpartage]. Ci-dessous le dtail des options les plus courantes utilises : path : chemin d'accs du partage - il n'est pas spcifier pour le partage [homes] comment : commentaire dcrivant le partage qui apparait lors du parcours du rseau Samba (voisinage rseau sous Windows), il s'agit uniquement d'un commentaire browseable : le partage sera visible lors du parcours du rseau read only : limite l'accs en lecture uniquement write list : limite l'accs en criture aux donnes du partage aux utilisateurs et/ou groupes d'utilisateurs spcifis. Un groupe sera mentionn de cette faon : @nom_du_groupe.

Configuration des partages d'imprimantes


Votre serveur Samba peut galement vous servir partager des imprimantes. Nous traiterons ici du cas o ces imprimantes sont gres par cups. Le partage d'imprimante peut se faire plusieurs niveaux : partage de la ressource (partage intitul [printers]), mais qui ncessite d'avoir install les drivers sur le poste client, partage des drivers, dans ce dernier cas vous n'avez plus besoin d'installer de driver sur le client Windows, le partage est intitul [print$]. Vous pouvez dcider de partager uniquement la ressource ou bien les drivers et la ressource. [global] ... # systme d'impression utilis printing = cups # administrateur des imprimantes printer admin = root ... # partage des ressources d'impression [printers] comment = All Printers path = /var/spool/samba create mask = 0700 guest ok = Yes printable = Yes browseable = Yes # partage des drivers des imprimantes [print$] path = /var/lib/samba/printers browseable = yes read only = yes write list = root Pour mettre les drivers disposition sur le serveur Samba, il vous faut vous procurer les drivers Postcript Adobe. Pour les tlcharger : http://www.adobe.com/support/downloads. Une fois extraits, nous allons les copier dans /usr/share/cups/drivers. Nous allons ensuite procder la cration effective du partage des imprimantes cups par Samba grce la commande cupsaddsmb : # cupsaddsmb -a ... passwd: ... # Pour vrifier que le lien a bien t ralis, vous avez plusieurs possibilits. la commande smbclient va vous lister, entre autres, les imprimantes partages : # smbclient -L localhost Password: Anonymous login successful Domain=[MONGROUPE] OS=[Unix] Server=[Samba 3.0.2a] Sharename Type Comment -----------------print$ Disk public Disk Public Stuff IPC$ IPC IPC Service (Samba Server 3.0.2a) ADMIN$ IPC IPC Service (Samba Server 3.0.2a) hp4050n Printer hplaser4000 Printer hplaser4000 Anonymous login successful Domain=[MONGROUPE] OS=[Unix] Server=[Samba 3.0.2a] ... la commande rpcclient permet, selon l'option choisie, d'numrer les imprimantes et drivers partags : # rpcclient -d=0 -U root -c 'enumprinters' localhost Password: flags:[0x800000] name:[\\pingu\hp4050n]

description:[\\pingu\hp4050n,hp4050n,] comment:[] flags:[0x800000] name:[\\pingu\hplaser4000] description:[\\pingu\hplaser4000,hplaser4000,hplaser4000] comment:[hplaser4000] # rpcclient -d=0 -U root -c 'enumdrivers' localhost Password: [Windows 4.0] Printer Driver Info 1: Driver Name: [hplaser4000] Printer Driver Info 1: Driver Name: [hp4050n]

[Windows NT x86] Printer Driver Info 1: Driver Name: [hplaser4000] Printer Driver Info 1: Driver Name: [hp4050n]

[Windows NT x86] Printer Driver Info 1: Driver Name: [hplaser4000] Printer Driver Info 1: Driver Name: [hp4050n] enfin la commande testprns permet de vrifier qu'un nom d'imprimante est valide c'est--dire utilisable car correctement reconnu sur le systme. # testprns hp4050n Looking for printer hp4050n in printcap file /etc/printcap Printer name hp4050n is valid. # testprns bidule Looking for printer bidule in printcap file /etc/printcap Printer name bidule is not valid.

Commandes utiles
Monter des ressources du serveur dans un systme de fichiers Linux
Il est possible d'utiliser une un partage de fichiers smb (Samba, Windows) comme faisant partie du systme de fichiers Linux local : il suffit de monter la ressource. Pour que cela fonctionne, il faut que le noyau de Linux ainsi que Samba aient t compils avec le support du systme de fichiers smbfs (ce qui est le cas du noyau et des paquetages Samba de Mandrake ainsi que de nombreuses autres distributions). L'opration peut tre ralise avec la commande classique mount mais uniquement en tant que root. Exemple : # mount -t smbfs \\\\pingu\\homes /mnt/samba -o username=anne Cet exemple permet de monter le rpertoire personnel de l'utilisateur anne partag par le serveur samba sur le rpertoire /mnt/samba. Le montage ncessite de spcifier le type de systme de fichiers (-t smbfs) et l'identit utilise pour accder au partage (-o username=anne). Ce systme de fichiers peut tre dmont grce la commande umount. # umount /mnt/samba Ce montage peut tre effectu en "non root" grce la commande smbmount, condition que le rpertoire de montage soit accessible en criture pour l'utilisateur, ainsi que le partage lui-mme.. Exemple : $ smbmount \\\\pingu\\homes /home/anne/samba Le systme de fichiers sera dmont toujours en utilisateur grce la commande smbumount. $ smbumount home/anne/samba

Tester la syntaxe de smb.conf : testparm


La commande testparm permet de tester les options utilises dans le fichier ainsi que la syntaxe. Elle spcifie galement, aprs parcours du fichier, les partages effectifs, le status du serveur. Testons la validit de notre fichier de configuration : # testparm Load smb config files from /etc/samba/smb.conf Processing section "[homes]" Processing section "[printers]" Processing section "[public]" Loaded services file OK. Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions

Parcourir le rseau : smbclient


smbclient est une commande qui permet d'accder aux ressources partages par le serveur. Elle est notamment trs utile pour tester le bon fonctionnement des partages avec votre serveur Samba. # smbclient \\\\pingu\\homes -U anne Password: Domain=[PINGU] OS=[Unix] Server=[Samba 3.0.2a] smb: \> La commande ci-dessus est un accs au rpertoire personnel sur le serveur en tant qu'utilisateur anne.

Machines visibles sur le rseau netbios : findsmb


La commande findsmb va vous permettre de lister les machines visibles grce aux requtes smb de votre serveur (script effectuant une combinaison de commandes nmblookup et smbclient). Exemple : # findsmb IP ADDR NETBIOS NAME WORKGROUP/OS/VERSION --------------------------------------------------------------------Domain=[LINUXERIES] OS=[Unix] Server=[Samba 3.0.2a] Domain=[LINUXERIES] OS=[Unix] Server=[Samba 3.0.2a] 192.168.0.3 PINGU +[ LINUXERIES ] Domain=[WORKGROUP] OS=[Windows 5.0] Server=[Windows 2000 LAN Manager] Domain=[WORKGROUP] OS=[Windows 5.0] Server=[Windows 2000 LAN Manager] 192.168.0.100 PLOPLAND-OAAHXLR+[ WORKGROUP ] Nous pouvons voir ci-dessus 2 machines : PINGU et PLOPLAND-OAAHXLR.

Rsoudre les noms netbios : nmblookup


La commande nmblookup permet de rsoudre les noms netbios en IP. La commande peut permettre de vrifier le bon fonctionnement de la configuration de votre serveur ou de vos machines clientes. Exemple : # nmblookup pingu 192.168.10.52 pingu<00> Au nom netbios pingu correspond l'adresse IP 192.168.10.52. indique que la machine est simple station de travail.

Lister les connexions au serveur : smbstatus


La commande smbstatus permet de gnrer une liste des connexions au serveur au moment prcis o vous tapez la commande. # smbstatus Samba version 3.0.2a PID Username Group Machine ------------------------------------------------------------------6909 lealinux lealinux pingu (192.168.0.3) 6916 bidule bidule pingu (192.168.0.3) Service pid machine Connected at ------------------------------------------------------lealinux 6909 pingu Sun Jun 27 16:50:06 2004 bidule 6916 pingu Sun Jun 27 16:50:20 2004 No locked files Ci-dessus, on peut voir 2 connexions actives au serveur Samba provenant des utilisateurs lealinux et bidule, effectues en local.

Exemple de configuration
Pour terminer sur la configuration texte de votre serveur Samba, ci-dessous un exemple type de fichier /etc/samba/smb.conf pour une utilisation courante : authentification par utilisateur utilisation de cups en tant que serveur d'impression, root tant administrateur partage des imprimantes et de leurs drivers partage des rpertoires maison dont l'accs est rserv leur propritaire partage public accessible tous [global] # nom de l'espace de travail workgroup = LINUXERIES # commentaire sur l'espace de travail server string = Samba Server %v # Configuration du partage des ressources d'impression printcap name = cups load printers = yes printing = cups printer admin = root # Configuration des logs du serveur log file = /var/log/samba/log.%m max log size = 50 # Configuration de l'authentification # type utilis security = user # mots de passe encrypts - pour permettre de modifier le mot de passe partir de la machine cliente encrypt passwords = yes smb passwd file = /etc/samba/smbpasswd unix password sync = Yes pam password change = yes socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 # Partage des repertoires personnels [homes] comment = Home Directories browseable = no writable = yes # Partage des ressources d'impression [printers] comment = All Printers path = /var/spool/samba browseable = no

# to allow user 'guest account' to print. guest ok = yes writable = no printable = yes create mode = 0700 # Partage des drivers d'impression [print$] path = /var/lib/samba/printers browseable = yes write list = @adm root guest ok = yes inherit permissions = yes # Partage accessible tous [public] path = /home/public public = yes only guest = yes writable = yes printable = no

Test de votre installation depuis Windows


Passons maintenant la phase de test partir d'un de vos clients Windows. Cliquez sur le voisinage rseau de votre poste Windows. Schema3 : visualisation des partages sur un poste client Windows

Cliquez ensuite sur le nom du workgroup correspondant au nom de votre serveur Samba. Vous allez alors pouvoir visualiser l'ensemble des partages configurs, condition que ces ressources soient "browseable" et que vous ayez les droits ncessaires. Attention tout changement intervenant sur ces ressources peut mettre un certain temps avant mise jour de l'affichage. Netbios est en effet un protocole extremement bavard et bas sur ce qu'on appelle le broadcast. Il interpelle tout le reseau des moments dtermins pour la mise jour des ressources.

Gestion des utilisateurs et des groupes


Cette notion va permettre de scuriser l'accs aux donnes. Toute la problmatique repose sur la ncessit de disposer de comptes sur le systme Linux qui vont correspondre aux utilisateurs sur les machines Windows. On parle aussi de synchronisationde ces deux types de comptes. Il en s era de mme pour les groupes.

Les diffrents types d'utilisateurs Samba


Il existe plusieurs types d'utilisateurs et donc de droits. Nous distinguerons l'administrateur, les utilisateurs et les invits (guest) : l'administrateur dispose de tous les droits et notamment celui de grer les imprimantes. l'utilisateur classique dispose des droits qui lui sont attribus par l'administrateur et les caractristiques mmes des ressources. l'utilisateur guest qui correspond un utilisateur dcid par l'administrateur sur le systme Linux (souvent nobody, utilisateur disposant de trs peu d'accs sur le systme et donc limitant les risques). Il peut accder aux ressources dfinies l aussi par l'administrateur, sans entrer de mot de passe. Ce cas de figure ncessite de spcifier dans le partage concern, l'option guest ok. L'utilisateur invit sera spcifi dans la section globale par l'option guest account. Exemple : [global] ... guest account = nobody ... [monpartage] comment = mon joli partage path = /home/public guest ok = yes

Synchroniser les utilisateurs


Pour synchroniser les utilisateurs Windows / Linux, on utilisera la commande smbpasswd. Dans un premier temps, on ajoute l'utilisateur au fichier /etc/samba/smbpasswd ainsi que son mot de passe qui sera le mme pour Linux et Windows. Pour ce faire, utilisez l'option -a. Exemple : # smbpasswd-a anne New SMB password: Retype new SMB password: Added user anne. Vous pouvez vrifier le contenu de /etc/samba/smbpasswd : # cat /etc/samba/smbpasswd anne:500:C4315DF197EED860C2265B23734E0DAC:9C08AB50A2F8864881B0418E3A63B77B:[U ]:LCT40DC451B: Renouvelez l'opration pour chaque utilisateur devant accder au serveur Samba. Dans le cas de figure ci-dessus, la mthode utilise implique que l'utilisateur porte le mme nom sur les 2 systmes, anne dans notre cas. Il est toutefois possible de conserver un nom d'utilisateur sur Windows diffrent. On aura alors recours un fichier supplmentaire : /etc/samba/smbusers. Exemple : # cat /etc/samba/smbusers # Unix_name = SMB_name1 SMB_name2 ... root = administrator admin anne = leanne Il est ensuite possible de changer le mot de passe de l'utilisateur, partir de Windows ou bien du serveur Samba grce la commande smbpasswd : # smbpasswd anne New SMB password: Retype new SMB password: #

Gestion des groupes


Depuis la version 3.x de Samba, les groupes sont maintenant entirement grs. L encore nous allons devoir synchroniser les groupes UNIX et Windows grce la commande net : # net groupmap add unixgroup=nom_unix ntgroup=nom_windows Ainsi si je dispose d'un groupe utilisateurs sur Linux, et que ce groupe se nomme utilisateurs ordinaires sur Windows, on procdera de la manire suivante : # net groupmap add unixgroup=utilisateurs ntgroup='utilisateurs ordinaires' No rid or sid specified, choosing algorithmic mapping Successully added group utilisateurs ordinaires to the mapping db Pour lister les correspondances existantes : # net groupmap list utilisateurs ordinaires (S-1-5-21-567158280-4275195276-2466317430-2001) -> utilisateurs Pour supprimer une correspondance : # net groupmap delete ntgroup='utilisateurs ordinaires' Sucessfully removed utilisateurs ordinaires from the mapping db

Outils graphiques de configuration d'un serveur Samba


Il existe de nombreux outils graphiques qui vont vous permettre de procder aux mmes manipulations mais sans utiliser d'diteur de texte. Les intituls des actions raliser reprennent gnralement les mmes dnominations que les paramtres utiliss dans le fichier smb.conf dcrit ci-dessus.

KSambaPlugin
KsambaPlugin est un outil graphique crit en GTK pour KDE. Il permet de configurer entirement un serveur Samba. Il s'agit d'un module supplmentaire pour le centre de contrle de KDE. Il procure galement des proprits supplmentaires Konqueror, qui lui permettent d'en faire un outil de parcours rseau Samba (voir section suivante de l'article). Pour l'installer : # urpmi ksambaplugin Prparation... ################################################## 1:ksambaplugin ################################################## Pour l'utiliser, allez dans le menu KDE "Systme >> Configuration >> Configurez votre bureau". Cliquez alors sur le menu "Rseau >> Configuration de Samba". Passez ensuite en mode superutilisateur. Vous avez alors accs la configuration de votre serveur Samba sous forme de 5 onglets : Schema4 : Ksamba - interface de configuration

configuration de base : c'est la section [global] configuration des partages de fichiers : nous retrouvons la section [homes] et tout autre partage de fichiers configuration des imprimantes partages : cet onglet permet la configuration des partages [print$] et [printers] configuration des comptes utilisateurs : crer, modifier supprimer des utilisateurs et des groupes tout en assurant la synchronisation paramtres de configuration avance : paramtrage avanc du serveur

Schema5 : Ksamba - configuration des utilisateurs

Module Samba pour Webmin


Webmin est un utilitaire accessible par interface web qui va vous permettre de configurer l'ensemble de votre machine (systme et rseau). Il est constitu d'un ensemble de modules dont celui consacr au serveur Samba. Pour installer Webmin, rutilisons urpmi puis dmarrons webmin : # urpmi webmin Prparation... ################################################## 1:webmin ################################################## # service webmin start Lancement de Webmin [ OK ] Pour accder webmin, tapez dans la barre d'URL de votre navigateur : https://localhost:10000 Authentifiez-vous alors en tant que root avec votre mot de passe. Cliquez sur l'onglet "serveurs" puis "Samba Windows File Sharing"

Schema6 : Webmin - liste des partages du serveur

Vous avez alors dcrit rapidement l'ensemble des ressources partages, avec la possibilit de modifier cette configuration. Comme pour KsambaPlugin, l'ensemble du serveur est paramtrable. Schema7 : Webmin - menu principal de configuration de samba

Remarque : l'ide n'est pas ici de dcourager l'utilisation de tels outils. Mais ceux-ci proposent l'accs relativement simple des paramtrages avancs de Samba. Mal matriss, vous pouvez rapidement mettre votre serveur hors d'usage. Alors attention aux clics intempestifs et gardez un oeil sur la configuration texte.

Outil graphique de parcours des ressources Samba


Konqueror est maintenant un bon moyen d'accder un serveur Samba, il suffit pour cela de taper dans la zone URL smb://user@serveur/ ou smb://user:password@serveur/ pour accder au serveur "serveur" en tant que "user". Schema8 : parcours des ressources Samba avec Konqueror

L'utilisation est relativement aise, il vous suffit de cliquer sur les fichiers et/ou rpertoires, comme pour un systme de fichiers local.

Conclusion
Voil donc votre serveur Samba fonctionnel. Nous n'avons abord ici qu'une infime partie des possibilits offertes. Sachez que les dernires versions permettent d'apporter les mmes fonctionnalits qu'un serveur NT, voire 2000 : contrleur de domaine (PDC, BDC), serveur de netlogon (authentification centralise), serveur de rsolution de noms netbios (WINS)... Bref de quoi passer de votre configuration personnelle une vritable architecture d'entreprise !

Quelques adresses utiles


Le site officiel de Samba La documentation officielle de Samba (une mine d'or !) : Samba-HOWTO-Collection sur la section documentation du site

Le site officiel de cups

Chapitre 7 AMANDA Eric Doutreleau, Eric.Doutreleau@int-evry.fr


v0.95, 05/08/1998 AMANDA ou "Advanced Maryland Automated Network Disk Archiver" est un logiciel de sauvegarde utilis dans un certain de nombre de sites dans le monde qui permet de faire des "sauvegardes en rseau".

1. Avertissement
Ce document dcrit le logiciel AMANDA. Mme si la prsentation est gnrale, elle est plus spcialement oriente sur les plate formes installes l'INT.

2. Introduction
Comme tout le monde le sait, ou devrait le savoir, l'erreur est humaine. Donc toutes constructions humaines peut tre victime d'une erreur. Les ordinateurs et l'informatique en gnral n'chappent pas cette rgle. Il convient donc de grer la "possibilit" d'erreurs humaines ou de dfaillances techniques. En ce qui concerne l'intgrit des donnes informatiques, la sauvegarde est une rponse adquate. AMANDA ou "Advanced Maryland Automated Network Disk Archiver" est un logiciel de sauvegarde utilis dans un certain de nombre de sites dans le monde qui permet de faire des "sauvegardes en rseau". Une machine avec un priphrique de sauvegarde attach peut sauvegarder plus d'une centaine de machines. Cela est obtenu en utilisant le mcanisme de sauvegarde incrmentale.

3. Pourquoi une sauvegarde en rseau


La sauvegarde en rseau est rendue ncessaire par diffrents facteurs que nous allons dtailler ci-aprs.

3.1 Ncessit de la sauvegarde.


Les machines informatiques traitent des donnes. Il leur faut donc stocker ces donnes d'entre et les rsultats produits. De plus on doit galement veiller l'intgrit de ces donnes pour viter d'obtenir des rsultats errones. On se trouve alors confront a deux menaces: La dfaillance du matriel (disque dur, disquette,etc..) l'erreur humaine (effacement intempestif d'un fichier)

3.2 L'organisation des ordinateurs.


En quelques dizaines d'annes seulement l'informatique a subi beaucoup de bouleversements. Nous sommes passs d'une architecture de "mainframe" une architecture distribue. Un des rsultats de cette volution est que les "donnes" sauvegarder se sont trouves dissmines sur une multitude de postes multipliant ainsi le nombre de postes sauvegarder.

3.3 L'utilisateur de la machine.


Une rponse a cette dissmination des donnes a t dans un premier temps de demander chaque utilisateur de faire lui mme ses sauvegardes des donnes "importantes". Ainsi non seulement il faut multiplier les priphriques de sauvegarde mais de plus l'utilisateur doit s'astreindre une discipline trs rigoureuse. Dans les faits ces sauvegardes ne sont jamais faites rgulirement car il y a toujours quelque chose de plus important faire. Le recours des personnes ddies cette tache devient obligatoire. La sauvegarde en rseau permet d'avoir une personne qui effectue les sauvegardes pour tous les utilisateurs.

3.4 La sauvegarde incrmentale.


La quantit de donnes qu'on peut stocker sur une bande a beaucoup volu ces dernires annes. Ainsi on est pass typiquement de bandes de 150 Mo des bandes de 5 Go ou plus. Nanmoins si on sauvegarde un certain nombres de machines on constate que tout ne peut pas tenir sur une seule bande. De plus une journe ne suffit pas sauvegarder toutes les machines. Pour pallier ces difficults on va utiliser le fait que les donnes varient en fait trs peu sur les machines informatiques. Ainsi la premire sauvegarde on sauvegarde la totalit des donnes (on l'appelle le niveau 0) et la sauvegarde suivante on ne sauvegarde que les modifications par rapport ce niveau 0 (le niveau 1) et ainsi de suite. Cela permet donc de rduire le volume des donnes sauvegardes.

3.5 Conclusion
La sauvegarde en rseau est donc la solution idale pour satisfaire les besoins suivants: Rationalisation et conomie sur les priphriques Garantie que la sauvegarde est effectivement faite.

4. Structure D'AMANDA 4.1 Prsentation.


AMANDA ( ou Advanced etc.. ) est un outil de sauvegarde dvelopp par l'universit du Maryland. Jaime Da Silva, le concepteur originel d'AMANDA, avait comme tout bon administrateur systme qui se respecte une collection de script pour faire des sauvegardes des machines qu'il administrait. Devant le nombre croissant de machines sauvegarder il dcida de crer AMANDA.

4.2 Les points forts d'AMANDA


en C, distribuable gratuitement. Est bas sur les standards de logiciels de sauvegarde. Unix dump et restore Gnu tar Possibilit d'intgrer d'autres logiciels. Sauvegarde plusieurs machines en parallle sur un disque tampon, crit les sauvegardes termines une par une sur la bande aussi rapidement que l'on puisse crire un fichier sur une bande. Par exemple, une bande DAT de 12 Go avec une vitesse d'criture de 1Mo/s pour le lecteur sera remplie en 3 heures. Implmente une gestion de bande simple: On ne risque pas d'effacer une mauvaise bande par erreur. Supporte des "tape changer" au travers d'une interface gnrique. ainsi on peut trs facilement adapter l'interface tous type de "stackers" changeur ou caroussel. Inclue le support pour une scurit Kerberos 4 ainsi que des sauvegardes encryptes. Pour rcuprer les fichiers, indique les bandes dont vous avez besoin, et trouve la bonne image de sauvegarde sur la bande pour vous. Inclue une reprise sur incident performante. Produit un rapport incluant toutes les erreurs et l'envoit aux oprateurs de la sauvegarde. Ajuste automatiquement l'ordonnancement des sauvegardes et le niveau des sauvegardes tout en restant dans le cadre prdfini. Il n'est plus ncessaire de jongler avec l'organisation des sauvegardes lorsque l'on rajoute de nouveaux disques. Inclue un programme de vrification de la configuration sur le serveur ainsi que sur les clients et envoie ventuellement les rsultats par courrier lectronique. Utilise la compression sur les clients ou sur le serveur. Possdes beaucoup d'autres options. > Nous allons maintenant dtailler la structure d'AMANDA et en expliciter certains points forts.

4.3 Stratgie matre-esclave


AMANDA est bas sur une logique matre-esclave. Le matre possde le priphrique de sauvegarde et donne des ordres aux esclaves pour qu'ils sauvegardent les disques. Il rcupre ces sauvegardes et les copie sur le priphrique de sauvegarde.

Le serveur (ou matre)


Le serveur doit possder un gros disque et un lecteur de bande ainsi qu'une bonne connectivit rseau. Le disque sert de disque tampon durant la sauvegarde et stocke galement des index des diffrentes sauvegardes.

Les clients (ou esclaves).


Les esclaves sont une varits de machine UNIX sur lesquelles on peut compiler la partie client d'AMANDA. Actuellement seules les machines UNIX sont "nativement" supportes. Des possibilits d'utiliser Samba pour sauvegarder des machines "Windosiennes" sont possibles.

Le serveur d'index.
Pour chaque partition UNIX sauvegard AMANDA offre la possibilit de gnrer un index des fichiers sauvegards. Ainsi la rcupration des fichiers sur les bandes en est grandement simplifi. Le mcanisme permettant de rcuprer les fichiers sera tudi ultrieurement.

Les serveurs de bande annexes.


On peut galement installer des serveurs de bande annexe qui seront utilis lors de la rcupration des fichiers. Ainsi on peut rcuprer en parallle des fichiers de diffrentes sauvegardes.

5. Le mcanisme.
Nous allons maintenant dcrire les mcanismes et l'ordonnancement du processus de sauvegarde.

5.1 Sur le serveur.


Le serveur lance cinq groupes de processus.

Le planner. Ce programme "demande" des estimations de la taille de la sauvegarde pour les diffrents niveaux ncessaires aux diffrents clients. Avec ces informations il gnre un ordonnancement de la sauvegarde. Le driver. Ce programme rcupre l'ordonnancement produits par le planner et lance effectivement la sauvegarde en lanant les deux programmes dumper et taper et en les contrlant tout au long de la sauvegarde. Le dumper. Ce programme gre l'interaction avec un client pour une partition. Un certain nombre de dumper sont lances en parallle. Le taper. le taper est le programme qui contrle le lecteur de bande. L'indexeur. L'indexeur est charg de rcuprer les tables d'index des sauvegardes si celles-ci ont t demandes.

5.2 Sur les clients.


Sur le client il y a galement plusieurs programmes qui sont installs. Le plus important est amandad qui se comporte comme un super serveur l'instar de l'inetd. En effet c'est lui qui rcupre tous les ordres du serveur et lance les programmes appropris.

5.3 L'ordonnancement.
L'ordonnancement des tches est donc le suivant. Sur le serveur le planner est lanc. Celui contacte les amandad qui tournent sur chaque client. Une fois qu'il a rcupr toutes les estimations (russies ou non) il gnre un ordonnancement de sauvegarde qu'il transmet au driver. La phase d'estimation de la sauvegarde est termine et on peut passer aux choses srieuses. Le driver rcupre l'ordonnancement et lance un certains nombres de dumpers et un taper. Il affecte chaque dumper une partition sur une machine sauvegarder. Le dumper va donc contacter l'amandad qui se trouve sur la machine cliente. Il lui ordonne de commencer la sauvegarde et de lui envoyer le rsultat. En mme temps que la sauvegarde est effectue sur le client une liste des fichiers qui sont sauvegards est gnre sur le client. Le dumper recopie la sauvegarde dans le disque tampon au fur et mesure qu'elle est effectue. La sauvegarde de la partition termine le dumper va s'occuper ventuellement de rcuprer l'index de la sauvegarde et il se suicide le sentiment du devoir accompli. Le driver donne alors l'ordre au taper de copier sur bande la sauvegarde. Si le taper est dj occup la sauvegarde est place dans une file d'attente. Et tout ce petit monde effectue son travail jusqu' ce que toutes les sauvegardes soient sur bande. L'indexeur intervient alors pour rcuprer sur les clients les indexs c'est dire la liste des fichiers qui ont t sauvegards. Pour cela il contacte le dmon amandad de chaque client qui lui envoie les indexs. Cette opration est effectue pour plus de sret. En effet si tout fonctionne bien il n'y a plus d'index rcuprer ce moment l.

6. Quelques remarques sur l'installation.


Je dcris ici quelques remarques sur l'installation. Il est clair qu'il faut d'abord consulter la documentation d'AMANDA avant de pouvoir tirer parti de ces remarques. Un serveur Web concernant AMANDA se trouve cette adresse: http://www.amanda.org Actuellement les versions installes sont les versions 2.4.0 et 2.3.0.4.

6.1 Dpartements concerns.


Il existe actuellement une configuration.

La configuration INT.
Cette configuration regroupe huit entits. SIM Quinze Sun sous Solaris2.X Deux SGI sous IRIX 6.X EPH Six SUN sous solaris2.X Un PC sous Linux Une HP sous HP/UX 10.X MCI sept SUN sous solaris2.x. Trois Alpha sous OSF1. Cinq PC sous Linux. LOR Vingt cinq SUN sous Solaris2.X Neuf SUN sous SUNOS. 3 PC sous Linux. 1 HP sous HP-UX/10.X 1 PC sous Solaris. RST Quatorze Sun sous SUNOS. Douze Sun sous solaris. INF Une SUN sous Solaris. INT-DIPLOMES Un PC sous Linux. Atelier d'dition. Une Sun sous solaris. Voici un classement des systmes sauvegardes. Soixante sept clients SUN sous Solaris2.X. Vingt trois SUN sous Sunos4.1.x Dix clients PC Linux. Trois clients ALPHA sous OSF Deux clients HP sous HP/UX 10.x Deux clients SGI sous IRIX 6.X. Un client PC Solaris. Ces statistiques sont ralises avec le programme remotesysteme qui se trouve dans le rpertoire /usr/local/bin/ de backup. Les chiffres que l'on doit donc retenir sur cette configuration sont les suivants: 108 machines sauvegardes. 401 systmes de fichiers. 108 Go de disque.

Dpartement LOR/RST.

6.2 Gnralits.
Le logiciel AMANDA possde les caractristiques suivantes l'INT par rapport une installation que l'on pourrait qualifier de standard. l'utilisateur pour les sauvegardes est dumpy. le port pour le programme amandad utilis est le port 10080. le port pour le programme amandaidx utilis est le port 10082. le port pour le programme amidxtape utilis est le port 10083. Pour le reste il faut se reporter aux documentations d'installation d'AMANDA.

6.3 Comment installer AMANDA


Avertissement.
Tous les chemins qui sont donns dans ce chapitre sont donns par dfaut. Si vous installez amanda dans d'autre rpertoires il vous faudra modifiez les chemins de faons adquates.

Tches communes sur le client et le serveur.


Crer le compte dumpy. Ce compte doit avoir accs aux raw devices des disques en lecture. Voici quelques exemples de groupes sur diffrentes plates-formes.

Solaris. sys. SunOS. operator. Linux. disk. IRIX. sys. HP-UX. sys.
Il faut nanmoins remarquer qu'on doit changer les droits sur le raw device pour les machines Silicon et donner le droit de lecture au groupe sys. Mettre jour le fichier /etc/services si celui-ci n'est pas gr par les NIS. Il faut ajouter les lignes suivantes. amidxtape 10083/tcp amandaidx 10082/tcp amanda 10080/udp

Sur les clients Compiler le source d'AMANDA.


La compilation D'AMANDA est grandement favorise par un script d'auto-configuration. Celui ci gnre automatiquement les Makefiles correspondant votre systme. Voici la ligne de commande du configure.

./configure --with-amandahosts --with-user=dumpy --with-group=disk --with-gnutarlistdir=/var/adm/amanda --with-index-server=backup --with-config=mci --with-tapeserver=backup --with-tape-device=/dev/rmt/0n --with-gnutar=/usr/local/bin/tar --withsmbclient=/usr/local/samba/bin/smbclient --without-server
Il convient d'adapter les paramtres suivants dans la ligne de commande prcdente:

--with-group Il faut mettre le groupe correspondant ayant le droit de lire les raw devices pour chaque systme. --with-gnutar-listdir Il faut indiquer dans quels rpertoires le client AMANDA va stocker des donnes pour pouvoir grer des sauvegardes incrmentales avec la commande tar. --with-gnutar Il faut indiquer le chemin de la commande gnu tar. Il est possible de ne pas renseigner ce paramtre si l'on ne souhaite pas utiliser la commande GNU tar pour faire les sauvegardes. --with-smbclient

Il faut indiquer le chemin de la commande smbclient. Il est recommand de ne pas renseigner ce paramtre si l'on ne fait pas de sauvegarde de partages SAMBA sur cette machine.

Cas particuliers
SunOS On doit rajouter le paramtre --with-shared=no.

Autres manipulations
Crer le fichier .amandahosts dans le rpertoire racine du compte dumpy avec comme valeur le nom du serveur de sauvegarde correspondant. Suivant les machines on doit mettre le nom qualifi ou pas. On peut donc mettre les deux pour tre plus tranquille. backup dumpy backup.int-evry.fr dumpy Crer le rpertoire /var/adm/amanda et transfrer la proprit du rpertoire dumpy. Crer le fichier /etc/amandates et veiller ce que l'utilisateur dumpy puisse crire dans ces fichiers. Cela se fait gnralement en donnant des droits d'criture au groupe auquel appartient dumpy. La dernire version de GNU tar est le version 1.1.12. Nanmoins il subsiste quelques petits problmes quand tar essaye de sauvegarder des fichiers avec pleins de zro l'intrieur. Un patch est fourni avec la distribution d'AMANDA. Modifier le ficher inetd.conf. Il faut ajouter la ligne suivante. amanda dgram udp wait dumpy /usr/local/libexec/amandad amandad

Manipulation spcifique pour chaque systme. Linux


Pour Linux il faut installer AVANT de compiler les sources les packages suivant: dump-0.3-10.i386.rpm rmt-0.3-10.i386.rpm De plus il faut veiller ce que les droits sur l'excutable dump soit 755. En effet La Redhat met par dfaut ce fichier dans un mode diffrent.

Silicon IRIX.
Il faut donner au groupe de dumpy un droit en lecture sur les raw devices des disques.

Sur le serveur de sauvegarde.


En gnral le serveur est aussi un client. Je ne traiterai que la partie spcifique du serveur

Compilation.
Voici la ligne de commande du configure.

./configure --with-amandahosts --with-user=dumpy --with-gnutar-listdir=/var/adm /amanda --with-group=disk --sysconfdir=/amanda/etc --localstatedir=/amanda/var


Quelques commentaires. Le paramtre --with-group varie de la mme faon que pour les clients. Le paramtre --sysconfdir dfinie le rpertoire o la configuration 'AMANDA est stocke. Cela concerne les fichiers de configuration amanda.conf , disklist et tapelist. Le paramtre --localstatedir dfinit l'endroit o AMANDA stocke ses fichiers gnrs par son fonctionnement en particulier sa base de donnes ou ses fichiers de log.

Modification de l inetd.conf
Il faut donc configurer le serveur pour autoriser les connexions au serveur d'index. Il suffit de rajouter la ligne suivante dans l inetd.conf amandaidx stream tcp nowait dumpy /usr/local/etc/tcpd amindexd On remarque qu'on contrle l'accs au serveur d'index par tcp-wrapper. Le mcanisme de "restoration" sera amplement explicit plus loin.

Sur les serveur de bande annexes


Il est possible de configurer d'autres machines n'intervenant pas dans la sauvegarde mais qui possdent des lecteurs de bandes compatibles pour en faire des serveurs de lecteurs de bande. Ainsi elles pourront intervenir dans le processus de rcupration des fichiers.

Compilation.
Voici la ligne de commande du configure.

./configure --with-amandahosts --with-user=dumpy --without-server --without-client -without-amrecover


Le paramtre with-group varie de la mme faon que pour les clients.

Modification de l inetd.conf
Il faut donc configurer le serveur pour autoriser les connexions au serveur d'index. Il suffit de rajouter la ligne suivante dans l inetd.conf amidxtape stream tcp nowait dumpy /usr/local/etc/tcpd amidxtaped On remarque qu'on contrle galement l'accs au serveur de bandes par tcp-wrapper. videment tout ceci s'applique aussi au serveur de sauvegarde qui sert de serveur de "restoration".

6.4 Configuration du changeur de bande.


Matriel.
L'INT a achet dans le courant du mois de juillet 1998 un "Autoloader" DDS3 de marque HP. Le modle est le C1557A. Il gre un magasin de 6 cartouches de 12 Go chacune. Nous avons donc en ligne une capacit de 72 Go. Sa vitesse d'criture annonce est de 1Mo par seconde. A l'heure actuelle ces valeurs n'ont pas t vrifies mais des tests sont en cours.

Logiciels utilises. mtx


Ce matriel n'est pas livr avec des logiciels capable de le piloter. Ainsi on dit en thorie l'utiliser en "gravity stacker". On ne peut que passer la bande suivante dans ce mode. Heureusement il existe sur Internet des programmes pour piloter ces chargeurs. Ainsi avec ces programmes on peut charger et dcharger n'importe quelle bande du changeur. Pour ce modle il en existe deux avec le mme nom mtx. Une version qui tait fourni par HP Une version de Zubkoff/Dandelion qu'on peut trouver l'url suivante: ftp://ftp.dandelion.com/mtx-1.0.tar.gz. Il semblerait qu'HP ait interrompu la mise la disposition de mtx au public. Nanmoins comme la version de zubkoff/Dandelion fonctionne bien mieux cela n'est pas trs grave. Celui se trouve donc l'emplacement suivant: /usr/local/bin/mtx/

chg-mtx.
Installer le logiciel mtx ne suffit pas. En effet mtx ne rpond pas l'API des changeurs de bande pour AMANDA. Il faut donc crire un script pour obir cette API. . Il y a plusieurs scripts "installs". On les trouve dans le rpertoire /usr/local/libexec/.

chg-mtx.oldest Le script fourni dans la distribution d'AMANDA chg-mtx correspond au mtx de HP. Il ne convient donc pas. chg-mtx.old C'est une version patche de ce mme script pour utiliser avec la version de Zubkoff/Dandelion. Hlas ce script a un bug mineur qui ne lui fait pas adhrer pleinement l'API. chg-mtx C'est la version utilise. Elle a t modestement patche par mes soins.

Problmes rencontrs. Compression hardware et software.


AMANDA, lors des sauvegardes, comprime les donnes sur les clients. C'est tout du moins la majorit des configurations l'INT. De ce fait il est inutile voire nuisible de comprimer les donnes sur le lecteur de bande. En principe on peut contrler le type de compression en slectionnant les devices utiliss sur les machines SUN. Hlas l'exprience dmontre que cela ne fonctionne pas trs bien. Le fait le plus grave est que la compression hardware est active par dfaut. Heureusement le programme /usr/local/bin/setcompression nous tire d'affaire en dsactivant la compression hardware.

Quelques recommandations.
l'API d'AMANDA tant un peu "spciale" l'tat du changeur et ce que doit en percevoir AMANDA n'est pas forcement la mme chose. Ainsi lorsque l'on charge une bande il vaut mieux resetter l'tat du changeur avec la commande amtape. La commande exacte est amtape mci reset

7. La configuration d'AMANDA
Je serai volontairement succinct sur la configuration d'AMANDA. En effet ce logiciel offre tellement de possibilit qu'il est difficile de les dcrire exhaustivement sans crire un roman. Je me limiterai donc aux considration les plus gnrales. On trouvera les fichier de configuration dans le rpertoire amandaetc/amanda/conf/ o conf est le nom de la configuration.

7.1 amanda.conf
C'est le fichier le plus important. Je vais dtailler ci dessous les principaux paramtres.

org Le nom de la configuration mailto Le compte qui reoit le courrier letronique concernant la sauvegarde. dumpuser L'identit du compte de sauvegarde. inparallel Le nombre maximum de sauvegardes en parallle. netusage La bande passante maximale alloue la sauvegarde. dumpcycle La dure d'un cycle de sauvegarde. tapecycle Le nombre de bandes dans la rotation. tapetype Dfinit le type de lecteur de bande utilise. Il faut que ce type soit dfini plus loin dans le fichier. runtapes Le nombre de bande utilise pendant une sauvegarde. holdingdisk

Dcrit le disque tampon.


Puis vient une partie descriptive dans le fichier. On y dcrit: Le type de lecteurs de bande. Les diffrentes types de sauvegarde possible. Ces types seront utiliss dans le fichier disklist.

7.2 disklist
Le fichier disklist indique quel disque de quelle machine on sauvegarde. Chaque ligne est constitue du tripl: machine disque type o

machine est le nom de la machine disque est le nom d'une partition ou d'un rpertoire. type est le type de sauvegarde effectuer.

8. Comment sauvegarder.
Toutes les oprations dcrites ci dessous doivent tre effectues sous le compte dumpy.

8.1 Choisir la bande.


Le choix de la bande sa fait avec la commande amadmin. Voici un exemple. amadmin conf tape o conf est le nom de la configuration que l'on sauvegarde. En l'occurence cela est soit sim ou eph. amadmin eph tape The next Amanda run should go onto tape EPH05 or a new tape.

8.2 Vrifications
Une commande existe afin de vrifier que tout est prt pour effectuer la sauvegarde. Cette commande est amcheck. Voici un exemple amcheck eph Amanda Tape Server Host Check ----------------------------/holddisk: 806385 KB disk space available, that's plenty. NOTE: skipping tape-writable test. Tape EPH05 label ok. Server check took 6.858 seconds. Amanda Backup Client Hosts Check -------------------------------WARNING: berlioz: selfcheck request timed out. Host down? Client check: 9 hosts checked in 29.558 seconds, 1 problems found. (brought to you by Amanda 2.4.0b6p3) On voit dans l'exemple prcdent que la bande est OK mais qu'il y a un problme avec la machine berlioz.

8.3 Lancement de la sauvegarde.


Le lancement de la sauvegarde se fait avec la commande amdump. Voici un exemple. /usr/local/sbin/amdump conf Cette commande est en pratique place dans la crontab de dumpy.

8.4 Reprise aprs incident.


Si un problme survient lors de la sauvegarde il peut subsister des sauvegardes sur le disque tampon. L'oprateur de la sauvegarde peut donc les sauvegarder sur bande. La commande utiliser est amflush. Voici un exemple amflush conf

9. Comment rcuprer ses fichiers dans une sauvegarde. 9.1 Problmatique.


Nous avons dcrit pour l'instant le mcanisme de la sauvegarde. Mais pour que celle-ci soit utile il faut tre capable de pouvoir rcuprer facilement des fichiers qui ont t sauvegards. On se heurte alors plusieurs problmes. Il y a un problme d'authentification. En effet il faut tre sr que la personne qui demande rcuprer un fichier ait le droit de le faire. Il y a galement un problme d'accs physique la bande qui contient le fichier que l'on souhaite rcuprer. L'utilisateur sait en gnral quand il a effac son fichier mais il sait rarement quand il a travaill pour la dernire fois sur son fichiers. La recherche de la bande contenant ce fichier peut s'avrer fastidieuse.

9.2 Procdure retenue


AMANDA rpond partiellement ces problmes. En effet l'accs au serveur d'index et au serveur de sauvegarde se fait sur un port privilgi ce qui impose d'tre super utilisateur sur les clients. En combinant cette protection avec tcpwrapper on peut limiter de faon satisfaisante l'accs aux sauvegardes. Enfin la recherche de la "bonne" bande est grandement facilite grce au serveur d'index.

9.3 Description.
On lance la commande amrecover. On se trouve alors dans un sorte de systme de fichier virtuel dans lequel on va slectionner les fichiers rcuprer. Trois paramtres dfinissent de manire unique ce systme de fichier. La machine La partition La date de sauvegarde. Par dfaut ces paramtres sont La machine est la machine locale La partition est calcule avec le rpertoire local la date est celle d'aujourd'hui. Un bon exemple valant tous les grands discours, voici un exemple.

9.4 Exemple
/usr/local/sbin/amrecove 220 poseidon AMANDA index server (1.1) ready. 200 Access OK Setting restore date to today (1998-02-14) 200 Working date set to 1998-02-14. 200 Config set to eph. 200 Dump host set to poseidon. Can't determine disk and mount point from $CWD amrecover> On voit donc que le rpertoire ne peut tre dtermin. En effet on ne se met pas ncessairement l'endroit exact on l'on veut rcuprer les fichiers. Nous allons donc maintenant rentrer ces valeurs. amrecover>sethost olympe 200 Dump host set to olympe. amrecover>200 Dump host set to olympe. amrecover>setdisk / 200 Disk set to /. amrecover> On possde alors un certain nombre de commandes. En particulier les commandes cd et ls. amrecover> ls 1998-02-13 . 1998-02-13 TT_DB/ 1998-02-13 cdrom/ 1998-02-13 devices/ 1998-02-13 etc/ 1998-02-13 var/ 1998-02-12 . 1998-02-12 .OWdefaults 1998-02-12 .Toolboxes 1998-02-12 .Xauthority 1998-02-12 .ab_library 1998-02-12 .cshrc 1998-02-12 .cshrc~ 1998-02-12 .desksetdefaults 1998-02-12 .doomrc 1998-02-12 .dt/

1998-02-12 .dtprofile 1998-02-12 .exrc 1998-02-12 .fm/ 1998-02-12 .khoros1998-02-12 .mosaicpid 1998-02-12 .netscape/ 1998-02-12 .news_time 1998-02-12 .newsrc 1998-02-12 .openwin-init 1998-02-12 .pine-debug1 1998-02-12 .pinerc 1998-02-12 .profile 1998-02-12 .rhosts 1998-02-12 .sh_history 1998-02-12 .sunsolverc 1998-02-12 .wastebasket/ 1998-02-12 .xsun.olympe:0 1998-02-12 Mail/ 1998-02-12 TT_DB/ 1998-02-12 amandaconf/ 1998-02-12 bin 1998-02-12 cdrom/ 1998-02-12 cdrom2/ 1998-02-12 core 1998-02-12 data/ 1998-02-12 dead_letter/ 1998-02-12 dev/ 1998-02-12 devices/ 1998-02-12 eph/ 1998-02-12 essai 1998-02-12 essai.ps 1998-02-12 etc/ 1998-02-12 export/ 1998-02-12 home/ 1998-02-12 home2/ 1998-02-12 lost+found/ 1998-02-12 sbin/ 1998-02-12 sim/ 1998-02-12 svg_data 1998-02-12 tftpboot/ 1998-02-12 tmp/ 1998-02-12 usr/ 1998-02-12 var/ 1998-02-12 vol/ 1998-02-12 xfn/ 1998-02-12 net/ 1998-02-12 nsmail/ 1998-02-12 opt/ 1998-02-12 platform/ 1998-02-12 proc/ On voit que le rsultat de la commande ls est divis en deux parties. La premire est la date de la dernire sauvegarde du fichier ou du rpertoire. La deuxime est le nom de ce fichier ou de ce rpertoire. Il est remarquer que compte tenu des sauvegardes incrmentales le fichier n'a pas t modifi entre la date indique et la date que l'on a ventuellement rentr avec le commande setdate ou la date d'aujourd'hui. Dplaons nous dans le systme de fichiers pour aller slectionner les fichiers qui nous intressent. amrecover> cd /var/adm amrecover> ls1998-02-13 . 1998-02-13 lastlog 1998-02-13 messages 1998-02-13 sulog 1998-02-13 utmp 1998-02-13 utmpx 1998-02-13 wtmp 1998-02-13 wtmpx 1998-02-12 . 1998-02-12 acct/ 1998-02-12 aculog 1998-02-12 amanda/ 1998-02-12 lastlog 1998-02-12 log/ 1998-02-12 messages

1998-02-12 messages.0 1998-02-12 messages.1 1998-02-12 messages.2 1998-02-12 messages.3 1998-02-12 passwd/ 1998-02-12 sa/ 1998-02-12 spellhist 1998-02-12 sulog 1998-02-12 utmp 1998-02-12 utmpx 1998-02-12 vold.log 1998-02-12 wtmp 1998-02-12 wtmpx amrecover> Choisissons maintenant nos fichiers. amrecover> add messages Added /var/adm/messages amrecover> add sulog Added /var/adm/sulog amrecover> Passons maintenant la phase d'extraction des fichiers. amrecover> extract Extracting files using tape drive /dev/rmt/0bn on host poseidon. The following tapes are needed: EPH04 Restoring files into directory /tmp Continue? [Y/n]: Y Load tape EPH04 now Continue? [Y/n]: Y set owner/mode for '.'? [yn]y amrecover> la commande extract permet de lancer l'extraction des fichiers. Le programme nous indique alors le rpertoire o l'on va placer les fichiers et le numro de bande que l'on doit placer dans le lecteur. Aprs une demande de confirmation l'opration d'extraction est effectue. Enfin le programme demande si l'on veut rcuprer galement les droits initiaux sur les fichiers. Et voila nous avons rcupr deux fichiers /var/adm/messages et /var/adm/sulog.

10. Liste des commandes disponibles.


Voici une liste des commandes disponibles. Pour des renseignement plus approfondis on se reportera avantageusement aux pages de manuel correspondantes.

amadmin C'est la commande d'administration pour contrler les sauvegardes. amcheck Lance la procdure de vrification. amcheckdb Vrifie la consistance de la base de donnes. amcleanup Effectue du "nettoyage" aprs un "plantage" du serveur de sauvegarde. amdump Lance la sauvegarde. amflush Sauvegarde les fichiers laisss sur le disque tampon aprs un problme sur la bande de sauvegarde. amlabel Formatte la bande. amoverview Produit une vue synthtique des machines sauvegardes au cours du temps. amplot Visualise le comportement d'AMANDA lors d'une sauvegarde. amrecover Butineur de la base d'index produit par AMANDA. amrestore Extrait des fichiers des bandes de sauvegarde AMANDA. amrmtape Efface une bande de la base de donnes d'AMANDA. amtape Interface utilisateur pour piloter les changeurs de bande. amtoc Gnre une table des matires pour une sauvegarde AMANDA. amverify Vrifie une bande AMANDA.

11. Conclusion
AMANDA est donc un logiciel de sauvegarde trs performant pour effectuer la sauvegarde en rseau d'un parc de station de travail UNIX. Il n'a pas rougir de la comparaison avec d'autres logiciels de sauvegarde beaucoup plus onreux.