Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 20724 Details for
Bug 33443
[fr] New translation: /doc/fr/virt-mail-howto.xml
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
/doc/fr/virt-mail-howto.xml
virt-mail-howto.xml (text/plain), 41.22 KB, created by
Camille Huot (RETIRED)
on 2003-11-13 23:13:44 UTC
(
hide
)
Description:
/doc/fr/virt-mail-howto.xml
Filename:
MIME Type:
Creator:
Camille Huot (RETIRED)
Created:
2003-11-13 23:13:44 UTC
Size:
41.22 KB
patch
obsolete
><?xml version="1.0" encoding="UTF-8"?> ><!DOCTYPE guide SYSTEM "/dtd/guide.dtd"> > ><!-- > Translation based on English doc rev. 1.18 > $Header$ >--> > ><!-- >Camille Huot <cam@cameuh.net> le 14/11/2003 > Je me suis permis de mettre des commentaires *avant* le code dans les <pre> > quand je l'ai jugé utile pour être conforme au coding style. >--> > ><guide link="/doc/fr/virt-mail-howto.xml"> ><title>Mise en place d'un système de messagerie multidomaine</title> > ><author title="Auteur"> > <mail link="antifa@gentoo.org">Ken Nowack</mail> ></author> ><author title="Auteur"> > <mail link="ezra@revoltltd.org">Ezra Gorman</mail> ></author> ><author title="Traducteur"> > <mail link="cam@cameuh.net">Camille Huot</mail> ></author> > ><abstract> >Ce document décrit en détails comment créer un système de messagerie en se >basant sur postfix, mysql, courier-imap et cyrus-sasl. ></abstract> > ><version>1.0.3</version> ><date>23 octobre 2003</date> > ><!-- > >Contents > >I. Introduction >II. Postfix Basics >III. Courier-imap >IV. Cyrus-sasl >V. SSL Certificates for Postfix and Apache >VI. Adding SSL and SASL support to Postfix >VII. MySQL >VIII. Apache and phpMyAdmin >IX. The vmail user >X. Configuring MySQL Authentication and vhosts >XI. Squirrelmail >XII. Mailman >XIII. Content Filtering and Anti-Virus >XIV. Wrap Up >XV. Troubleshooting > >--> > ><chapter> ><title>Introduction</title> ><body> > ><p> >Pour la plupart des utilisateurs Gentoo, un client mail et fethmail feront >l'affaire. Cependant, si vous hébergez un nom de domaine sur votre système, vous >aurez besoin d'un MTA (Agent de Transfer de Mails) complet. Et si vous hébergez >plusieurs domaines, alors vous avez certainement besoin de quelque chose d'assez >robuste pour prendre en charge tous les emails de vos utilisateurs. Le système >décrit dans cet article propose une solution élégante à ce problème. ></p> > ><p> >Un système de messagerie multidomaine doit être capable de prendre en charge >les emails de nombreux utilisateurs répartis sur de nombreux domaines, via >plusieurs interfaces. Nous allons présenter quelques problèmes qui doivent être >résolus. Par exemple, que faire si vous avez deux utilisateurs sur des domaines >différents qui veulent le même nom ? Si vous fournissez un accès IMAP et >SMTP-auth, comment combiner les divers systèmes d'authentification vers un >seul ? Comment allez-vous sécuriser les différents composants du >système ? Comment allez-vous tout gérer ? ></p> > ><p> >Il existe vraiment beaucoup de façons différentes de mettre en place un système >de messagerie multidomaine. Selon vos besoins, il existe peut-être une >meilleure solution pour vous. Documentez-vous sur ><uri>http://www.qmail.org/</uri> et <uri>http://www.exim.org/</uri> qui sont >des solutions alternatives. ></p> > ><p> >Dans notre configuration, nous utiliserons les paquets suivants : apache, >courier-imap, pam_mysql, postfix, mod_php, phpmyadmin, squirrelmail, cyrus-sasl, >mysql, php et mailman. ></p> > ><p> >Avant d'installer ces paquets, assurez-vous que les options suivantes de USE se >trouvent dans votre fichier <path>/etc/make.conf</path> : <c>USE="mysql >imap libwww maildir sasl ssl"</c>. Sinon vous risquez de devoir recompiler >certains paquets pour activer le support de ces protocoles. Il est également >recommandé de désactiver les autres options liées aux mails et au réseau, comme >ipv6. ></p> > ><impo> >Ce guide a été écrit pour postfix-2.0.x. Si vous utilisez un postfix < 2 >certaines des variables présentées dans ce document seront différentes. Il est >vivement recommandé que vous mettiez à jour votre système. Quelques autres >paquets figurant dans ce guide sont également sensibles au changement de >version. Je vous conseille de lire la documentation incluse dans les paquets >si vous vous trouvez en face de ce genre de problème. ></impo> > ><impo> >Ce document utilise apache-1.3.x. Apache-2 a été marqué stable dans Portage, >pourtant il y a encore quelques problèmes avec l'intégration de PHP. Ce guide >continuera d'utiliser la version 1.3.x jusqu'à ce que le support PHP >d'apache-2.0.x soit marqué stable. ></impo> > ><impo> >Vous devez avoir un nom de domaine pour pouvoir faire un serveur public de >messagerie, ou au moins un enregistrement de type MX pour un domaine. Pour >utiliser pleinement votre serveur multidomaine, vous devrez gérer au moins deux >domaines. ></impo> > ><impo> >Assurez-vous que le fichier <path>/etc/hostname</path> contient bien le bon nom >pour votre serveur de messagerie. Vérifiez également que votre nom de domaine >est réglé correctement avec la commande <c>hostname</c>. Enfin, assurez-vous >que le fichier <path>/etc/hosts</path> ne contient pas d'entrée pouvant créer >des conflits. ></impo> > ><note> >Je vous recommande de lire ce document dans son intégralité et de vous >familiariser avec la marche à suivre avant de vous lancer dans l'installation. >Si vous avez des problèmes pendant une étape, consultez la <uri >link="#doc_chap15">section dépannage</uri> à la fin de ce document. Notez >également que tous les paquets ne sont pas requis, cette installation est très >flexible. Par exemple si vous ne voulez pas d'interface web vous pouvez sauter >la section squirrelmail. ></note> > ></body> ></chapter> > ><chapter> ><title>Postfix, la base</title> ><body> > ><pre caption="Installation de postfix"> ># <i>emerge postfix</i> ></pre> > ><warn> >Assurez-vous de ne pas avoir installé d'autre MTA, comme ssmtp, exim ou qmail, >car sinon vous allez à l'encontre de gros problèmes. ></warn> > ><p> >Une fois postfix installé, il est temps de le configurer. Changez les options >suivantes dans <path>/etc/postfix/main.cf</path> : ></p> > ><pre caption="/etc/postfix/main.cf"> >myhostname = $host.domain.name >mydomain = $domain.name >inet_interfaces = all >mydestination = $myhostname, localhost.$mydomain $mydomain >mynetworks = my.ip.net.work/24, 127.0.0.0/8 >home_mailbox = .maildir/ >local_destination_concurrency_limit = 2 >default_destination_concurrency_limit = 10 ></pre> > ><p> >Ensuite modifiez <path>/etc/postfix/master.cf</path> de la façon suivante. Cela >activera le mode verbal pour faciliter le débogage : ></p> > ><pre caption="/etc/postfix/master.cf"> ># service type private unpriv chroot wakeup maxproc command + args ># (yes) (yes) (yes) (never) (50) ># >========================================================================== >smtp inet n - n - - smtpd -v > ><codenote>Ajoutez juste le <c>-v</c> après <c>smtpd</c> dans la ligne ci-dessus</codenote> ></pre> > ><p> >Ensuite, éditez <path>/etc/mail/aliases</path> pour ajouter vos alias locaux. >Il devrait au moins y avoir un alias pour le root : ><c>root: votre@adresse.ici</c>. ></p> > ><pre caption="Lancement de postfix pour la première fois"> ><codenote>Reconstruit la base des alias. à ne faire qu'en cas de mise à jour des alias.</codenote> ># <i>/usr/bin/newaliases</i> > ># <i>/etc/init.d/postfix start</i> ></pre> > ><p> >Maintenant que postfix tourne, lancez votre client mail préféré et envoyez-vous >un courrier. Vérifiez que postfix délivre les mails aux utilisateurs système, >une fois fait nous pouvons passer à l'étape suivante. ></p> > ><note> >Je vous recommande vivement de vérifier que cette configuration postfix de base >fonctionne correctement avant de continuer. ></note> > ></body> ></chapter> > ><chapter> ><title>Courier-imap</title> ><body> > ><pre caption="Installation de courier-imap"> ># <i>emerge courier-imap</i> ></pre> > ><pre caption="Configuration de courier-imap"> ># <i>cd /etc/courier-imap</i> ><codenote>Si vous voulez utiliser ssl avec courier-imap ou pop3, vous devez créer des</codenote> ><codenote>certificats. Cette étape est recommandée. Si vous ne voulez pas utiliser ssl,</codenote> ><codenote>passer cette étape.</codenote> > ><codenote>Modifiez les paramètres C, ST, L, CN et email</codenote> ><codenote>pour qu'ils correspondent à votre serveur.</codenote> ># <i>nano -w pop3d.cnf</i> ># <i>nano -w imapd.cnf</i> > ># <i>mkpop3dcert</i> ># <i>mkimapdcert</i> ></pre> > ><pre caption="Lancement des services de courier"> ># <i>/etc/init.d/courier-imapd start</i> ># <i>/etc/init.d/courier-imapd-ssl start</i> ># <i>/etc/init.d/courier-pop3d start</i> ># <i>/etc/init.d/courier-pop3d-ssl start</i> ></pre> > ><p> >Lancez votre client mail favori et vérifiez que toutes les services que vous >avez lancées répondent en envoyant et réceptionnant des mails. Maintenant >que le système de base fonctionne, nous allons procéder à plusieurs étapes d'un >seul coup pour installer le reste du système. Encore une fois, soyez certain >que ce que nous avons déjà installé fonctionne correctement avant de continuer. ></p> > ></body> ></chapter> > ><chapter> ><title>Cyrus-sasl</title> ><body> > ><p> >Installons à présent cyrus-sasl. Sasl sert à passer vos variables >d'authentification à pam, qui va à son tour les passer à mysql pour vérifier >l'authentification des utilisateurs smtp. Dans ce guide, nous ne testerons pas >sasl tant que mysql n'est pas installé et ne contient pas un utilisateur de >test. Ce n'est pas grave car de toute façon nous utiliserons mysql pour >l'authentification à la fin. ></p> > ><note> >Pour une raison assez obscure, sasl n'utilise pas le fichier de mots de passe >système avec pam. Je me suis cogné la tête contre ce problème pendant, disons, >assez longtemps. Si quelqu'un sait pourquoi sasl n'utilise pas le fichier de >mots de passe du système pour l'authentification dans la version actuelle de >Gentoo, qu'il <mail link="ken@kickasskungfu.com">m'envoie un email</mail> (Ndt: >en anglais) car j'aimerais vraiment avoir une solution à ce problème. ></note> > ><pre caption="Installer et configurer cyrus-sasl"> ><codenote>Nous n'avons pas ldap et n'utilisons pas le support mysql de sasl,</codenote> ><codenote>donc on les désactive pour cet ebuild.</codenote> ># <i>USE="-ldap -mysql" emerge cyrus-sasl</i> ></pre> > ><p> >Ensuite éditez <path>/usr/lib/sasl2/smtp.conf</path>. ></p> > ><pre caption="Lancement de sasl"> ><codenote>Il est important de désactiver les méthodes d'authentification que nous</codenote> ><codenote>n'utilisons pas. Elles peuvent poser problème avec certains clients mail.</codenote> ># <i>nano -w /usr/lib/sasl2/smtp.conf</i> >pwcheck_method: saslauthd >mech_list: LOGIN PLAIN > ># <i>/etc/init.d/saslauthd start</i> ></pre> > ></body> ></chapter> > ><chapter> ><title>Certificats SSL pour Postfix et Apache</title> ><body> > ><p> >Nous allons à présent créer un jeu de certificats pour postfix et apache. ></p> > ><pre> ># <i>cd /etc/ssl/</i> ># <i>nano -w openssl.cnf</i> > ><codenote>Modifiez les valeurs par défaut suivantes pour votre domaine :</codenote> >countryName_default >stateOrProvinceName_default >localityName_default >0.organizationName_default >commonName_default >emailAddress_default. > ><codenote>Si les variables n'existent pas, créez-les.</codenote> > > ># <i>cd misc</i> ># <i>nano -w CA.pl</i> ><codenote>Nous devons ajouter -nodes aux codes commentés par "# create a certificate" et</codenote> ><codenote>"#create a certificate request" afin de laisser nos nouveaux certificats ssl se</codenote> ><codenote>charger sans demander de mot de passe. Sinon, quand vous redémarrerez, vos</codenote> ><codenote>certificats ssl ne seront pas disponibles.</codenote> > ># create a certificate >system ("$REQ -new -nodes -x509 -keyout newreq.pem -out newreq.pem $DAYS"); > ># create a certificate request >system ("$REQ -new -nodes -keyout newreq.pem -out newreq.pem $DAYS"); > ># <i>./CA.pl -newca</i> ># <i>./CA.pl -newreq</i> ># <i>./CA.pl -sign</i> ># <i>cp newcert.pem /etc/postfix</i> ># <i>cp newreq.pem /etc/postfix</i> ># <i>cp demoCA/cacert.pem /etc/postfix</i> ><codenote>à présent faire de même pour Apache.</codenote> > ># <i>openssl req -new > new.cert.csr</i> ># <i>openssl rsa -in privkey.pem -out new.cert.key</i> ># <i>openssl x509 -in new.cert.csr -out new.cert.cert -req -signkey new.cert.key -days 365</i> ><codenote>Laissez les certificats ici pour le moment, nous les installerons</codenote> ><codenote>une fois Apache lui-même installé.</codenote> ></pre> > ></body> ></chapter> > ><chapter> ><title>Ajouter le support SSL et SASL à Postfix</title> ><body> > ><p> >Maintenant éditez la configuration de postfix pour l'informer de votre >volonté d'utiliser sasl et ssl. Ajoutez les paramètres suivants à la fin du >fichier où ils seront faciles à trouver. ></p> > ><pre caption="/etc/postfix/main.cf"> ># <i>nano -w /etc/postfix/main.cf</i> > >smtpd_sasl_auth_enable = yes >smtpd_sasl2_auth_enable = yes >smtpd_sasl_security_options = noanonymous >broken_sasl_auth_clients = yes >smtpd_sasl_local_domain = > ><codenote>L'option broken_sasl_auth_clients et la méthode d'authentification de login sont</codenote> ><codenote>pour outlook et outlook express uniquement et ne sont pas documentées. N'est-ce</codenote> ><codenote>pas super de devoir trafiquer un bon logiciel pour pallier la stupidité de ceux</codenote> ><codenote>de Micromou ? smtpd_sasl_local_domain ajoute un nom de domaine aux clients</codenote> ><codenote>qui utilisent smtp-auth. Soyez sûr que c'est vide ou sinon vos utilisateurs se</codenote> ><codenote>feront virer par postfix et ne pourrons pas s'identifier.</codenote> > >smtpd_recipient_restrictions = > permit_sasl_authenticated, > permit_mynetworks, > reject_unauth_destination > > >smtpd_use_tls = yes >#smtpd_tls_auth_only = yes >smtpd_tls_key_file = /etc/postfix/newreq.pem >smtpd_tls_cert_file = /etc/postfix/newcert.pem >smtpd_tls_CAfile = /etc/postfix/cacert.pem >smtpd_tls_loglevel = 3 >smtpd_tls_received_header = yes >smtpd_tls_session_cache_timeout = 3600s >tls_random_source = dev:/dev/urandom > ><codenote>smtpd_tls_auth_only est commenté pour faciliter le test du système.</codenote> ><codenote>Vous pourrez l'activer plus tard si vous le désirez.</codenote> > ># <i>postfix reload</i> ></pre> > ><p> >Maintenant vérifions que nos modifications ont été prises en compte par postfix. ></p> > ><pre caption="Vérification du support sasl et ssl"> ># <i>telnet localhost 25</i> > >Trying 127.0.0.1... >Connected to localhost. >Escape character is '^]'. >220 mail.domain.com ESMTP Postfix ><i>EHLO domain.com</i> >250-mail.domain.com >250-PIPELINING >250-SIZE 10240000 >250-VRFY >250-ETRN >250-STARTTLS >250-AUTH LOGIN PLAIN >250-AUTH=LOGIN PLAIN >250-XVERP >250 8BITMIME ><i>^]</i> >telnet> <i>quit</i> ></pre> > ><p> >Vérifiez que les lignes AUTH et STARTTLS sont maintenant bien présentes. Comme >je l'ai déjà dit, actuellement AUTH ne marchera pas. C'est à cause du fait que >sasl utilise sa base sasldb (que nous n'avons pas encore configurée) au lieu du >fichier de mots de passe du système pour procéder à l'identification, pour une >raison inconnue. Nous allons donc continuer et installer mysql qui contiendra >toutes les informations d'authentification et de domaine virtuel. ></p> > ></body> ></chapter> > ><chapter> ><title>MySQL</title> ><body> > ><p> >Il est temps d'installer et de configurer MySQL. Vous aurez besoin du fichier ><uri link="http://kickasskungfu.com/~ken/genericmailsql.sql" >>genericmailsql.sql</uri> pour cette étape. ></p> > ><pre caption="Installation et configuration de MySQL"> ># <i>emerge mysql</i> > ># <i>/usr/bin/mysql_install_db</i> ><codenote>Après avoir lancé cette commande, suivez les instructions affichées à l'écran</codenote> ><codenote>pour ajouter un mot de passe root à mysql, pas mysqladmin, sinon votre base de</codenote> ><codenote>données sera grande ouverte.</codenote> > ># <i>/etc/init.d/mysql start</i> ># <i>mysqladmin -u root -p create mailsql</i> ># <i>mysql -u root -p mailsql < genericmailsql.sql</i> > ># <i>mysql -u root -p mysql</i> >mysql> <i>GRANT SELECT,INSERT,UPDATE,DELETE</i> >-> <i>ON mailsql.*</i> >-> <i>TO mailsql@localhost</i> >-> <i>IDENTIFIED BY '$password';</i> > >-> <i>quit</i> ><codenote>Assurez-vous que l'utilisateur mailsql puisse se connecter au serveur mysql.</codenote> > ># <i>mysql -u mailsql -p mailsql</i> ></pre> > ><p> >Votre nouvelle base de données a des valeurs par défaut et des tables >configurées pour deux domaines. Les tables suivantes sont incluses : > ><ul> ><li>alias - alias locaux et alias pour mailman.</li> ><li>relocated - liste des adresses déplacées.</li> ><li>transport - méthode de transport par défaut pour chaque domaine hébergé.</li> ><li>users - les comptes utilisateurs.</li> ><li>virtual - liste des alias pour les domaines virtuels.</li> ></ul> ></p> > ><pre caption="Exemple de table alias"> >id alias destination >1 root foo@bar.com >2 postmaster foo@bar.com ></pre> > ><pre caption="Exemple de table user"> ><codenote>Lignes coupées pour améliorer la lisibilité.</codenote> >id email clear name uid gid homedir \ > maildir quota postfix >10 foo@virt-bar.org $password realname virtid virtid /home/vmail \ > /home/vmail/virt-bar.org/foo/.maildir/ y >13 foo@bar.com $password realname localid localid /home/foo \ > /home/foo/.maildir/ y ></pre> > ><pre caption="Exemple de table transport"> >id domain destination >1 bar.com local: >2 virt-bar.org virtual: ></pre> > ><pre caption="Exemple de table virtual"> >id email destination >3 root@virt-bar.org other@email.address ></pre> > ></body> ></chapter> > ><chapter> ><title>Apache et phpMyAdmin</title> ><body> > ><p> >Nous allons à présent mettre en place apache afin d'installer une interface >pour agir plus facilement sur la base de données. ></p> > ><pre caption="Installation d'apache et phpmyadmin"> ># <i>emerge apache mod_php phpmyadmin</i> ></pre> > ><p> >Il existe une ribambelle de guides qui expliquent comment installer apache avec >php. Celui-ci par exemple : ><uri>http://www.linuxguruz.org/z.php?id=31</uri>. Il y a aussi de nombreux posts >sur <uri>http://forums.gentoo.org/</uri> qui détaillent comment résoudre les >problèmes d'installation (faites une recherche de 'apache php'). Ceci étant dit, >je ne vais pas en parler dans ce guide. Installez apache et php, puis continuez >à suivre ce guide. En fait juste un mot : mettez un .htaccess pour protéger >le répertoire où réside phpmyadmin. Si vous ne le faites pas, les moteurs de >recherche vont y accéder et indexer vos pages, ce qui veux dire que n'importe >qui pourra venir modifier les données de votre base de données, ce qui est à >proscrire. Il existe de nombreux guides sur le sujet, notamment : ><uri>http://docs.csoft.net/micro/black-htaccess.html</uri>. ></p> > ><p> >Nous allons à présent installer les certificats créés auparavant. Voici les >directives Apache-SSL que vous aurez besoin pour utiliser les certificats : > ><ul> ><li>SSLCertificateFile /path/to/certs/new.cert.cert</li> ><li>SSLCertificateKeyFile /path/to/certs/new.cert.key</li> ></ul> ></p> > ><pre caption="Installation des certificats pour Apache SSL"> ># <i>cp /etc/ssl/misc/new.cert.cert /etc/apache/conf/ssl/</i> ># <i>cp /etc/ssl/misc/new.cert.key /etc/apache/conf/ssl/</i> ># <i>nano -w /etc/apache/conf/vhosts/ssl.default-vhost.conf</i> ><codenote>Modifiez les paramètres suivants :</codenote> > >ServerName host.domain.name >ServerAdmin your@email.address >SSLCertificateFile /etc/apache/conf/ssl/new.cert.cert >SSLCertificateKeyFile /etc/apache/conf/ssl/new.cert.key > ># <i>/etc/init.d/apache restart</i> ></pre> > ><note> >Si vous aviez déjà installé apache, vous devrez effectuer un redémarrage de la >machine pour installer les nouveaux certificats. Vérifiez vos journaux système >pour vous assurer qu'apache a redémarré correctement. ></note> > ><p> >Ensuite, configurez phpMyAdmin. ></p> > ><pre caption="Configuration de phpMyAdmin"> ># <i>nano -w /home/httpd/htdocs/phpmyadmin/config.inc.php</i> ><codenote>Modifiez les paramètres suivants</codenote> > >$cfg['Servers'][$i]['host'] = 'localhost'; // MySQL hostname >$cfg['Servers'][$i]['controluser'] = 'mailsql'; // MySQL control user settings > // (this user must have read-only >$cfg['Servers'][$i]['controlpass'] = '$password'; // access to the "mysql/user" > // and "mysql/db" tables) >$cfg['Servers'][$i]['user'] = 'mailsql'; // MySQL user >$cfg['Servers'][$i]['password'] = '$password'; // MySQL password ></pre> > ><p> >Maintenant entrez sur la page de phpmyadmin et naviguez dans les tables. Vous >devez ajouter vos alias locaux, éditer la table 'user' pour ajouter un >utilisateur de test et modifier la table 'transport' pour ajouter des >informations sur vos domaines. Les valeurs par défaut fournies devraient être >suffisantes pour vous guider vers les bonnes valeurs à mettre. Assurez-vous de >mettre des informations correctes dans la base de données. Par exemple si vous >ajoutez un utilisateur, il faut que son répertoire existe, ainsi que ses >uid/gid. Les répertoires pour les mails devraient être automatiquement créés >par postfix quand l'utilisateur recevra son premier mail. C'est d'ailleurs une >bonne idée d'envoyer un mail de bienvenue à tous vos utilisateurs pour vous >assurer que son .maildir s'est créé correctement. ></p> > ></body> ></chapter> > ><chapter> ><title>L'utilisateur vmail</title> ><body> > ><p> >Vous vous êtes peut-être demandé quel utilisateur et quel répertoire mettre pour >les utilisateurs virtuels, c'est une bonne question. Occupons-nous en. ></p> > ><pre caption="Ajout de l'utilisateur vmail"> ># <i>adduser -d /home/vmail -s /bin/false vmail</i> ># <i>uid=`cat /etc/passwd | grep vmail | cut -f 3 -d :`</i> ># <i>groupadd -g $uid vmail</i> ># <i>mkdir /home/vmail</i> ># <i>chown vmail. /home/vmail</i> ></pre> > ><p> >Alors maintenant quand vous créez des comptes virtuels, utilisez les uid, gid et >répertoire de l'utilisateur vmail. Nous pensions créer une page d'administration >en PHP pour faciliter l'ajout d'utilisateurs mais comme phpmyadmin marche assez >bien on s'en passera. ></p> > ></body> ></chapter> > ><chapter> ><title>Configuration de l'authentification avec MySQL et les domaines >virtuels</title> ><body> > ><p> >Nous devons à présent reconfigurer le système d'authentification pour utiliser >la base de données mailsql dans courier-imap et postfix. Dans tous les exemples >ci-dessous, remplacez $password par le mot de passe que vous avez assigné à >l'utilisateur mysql 'mailsql'. ></p> > ><pre> ># <i>emerge /usr/portage/sys-libs/pam_mysql/pam_mysql-$currentversion.ebuild</i> ><codenote>Ce paquet est actuellement masqué, vous devez donner le chemin complet ou</codenote> ><codenote>démasquer le paquet. Cela changera quand le paquet ne sera plus masqué dans</codenote> ><codenote>l'arborescence de Portage.</codenote> > ># <i>nano -w /etc/pam.d/imap</i> ><codenote>Commentez les lignes existantes et ajoutez les nouvelles comme indiqué.</codenote> > >#auth required pam_nologin.so >#auth required pam_stack.so service=system-auth >#account required pam_stack.so service=system-auth >#session required pam_stack.so service=system-auth > >auth optional pam_mysql.so server=localhost db=mailsql user=mailsql \ > passwd=$password table=users usercolumn=email passwdcolumn=clear crypt=0 >account required pam_mysql.so server=localhost db=mailsql user=mailsql \ > passwd=$password table=users usercolumn=email passwdcolumn=clear crypt=0 > ># <i>nano -w /etc/pam.d/pop3</i> ># <i>nano -w /etc/pam.d/smtp</i> ><codenote>Faites les mêmes modifications aux fichiers pop3 et smtp.</codenote> ></pre> > ><p> >Ensuite nous devons éditer la configuration d'authentification de courier. ></p> > ><pre> ># <i>nano -w /etc/courier-imap/authdaemonrc</i> >authmodulelist="authmysql authpam" > ># <i>nano -w /etc/courier-imap/authdaemond.conf</i> >AUTHDAEMOND="authdaemond.mysql" > ># <i>nano -w /etc/courier-imap/authmysqlrc</i> >MYSQL_SERVER localhost >MYSQL_USERNAME mailsql >MYSQL_PASSWORD $password >MYSQL_DATABASE mailsql >MYSQL_USER_TABLE users >#MYSQL_CRYPT_PWFIELD crypt (<comment>celle-ci doit être commentée car les</comment> ># <comment>mots de passes ne sont pas cryptés</comment>) >MYSQL_CLEAR_PWFIELD clear >MYSQL_UID_FIELD uid >MYSQL_GID_FIELD gid >MYSQL_LOGIN_FIELD email >MYSQL_HOME_FIELD homedir >MYSQL_NAME_FIELD name >MYSQL_MAILDIR_FIELD maildir > ># <i>/etc/init.d/authdaemond restart</i> ># <i>/etc/init.d/saslauthd restart</i> ></pre> > ><p> >On y est presque, je le promets ! Ensuite, réglez le reste de la >configuration pour que postfix puisse interagir avec la base de données. ></p> > ><pre caption="/etc/postfix/mysql-aliases.cf"> ># <i>nano -w /etc/postfix/mysql-aliases.cf</i> ># mysql-aliases.cf > >user = mailsql >password = $password >dbname = mailsql >table = alias >select_field = destination >where_field = alias >hosts = unix:/var/run/mysqld/mysqld.sock ></pre> > ><pre caption="/etc/postfix/mysql-relocated.cf"> ># <i>nano -w /etc/postfix/mysql-relocated.cf</i> ># mysql-relocated.cf > >user = mailsql >password = $password >dbname = mailsql >table = relocated >select_field = destination >where_field = email >hosts = unix:/var/run/mysqld/mysqld.sock ></pre> > ><pre caption="/etc/postfix/mysql-transport.cf (facultatif)"> ># <i>nano -w /etc/postfix/mysql-transport.cf</i> ># mysql-transport.cf > >user = mailsql >password = $password >dbname = mailsql >table = transport >select_field = destination >where_field = domain >hosts = unix:/var/run/mysqld/mysqld.sock ></pre> > ><pre caption="/etc/postfix/mysql-virtual-gid.cf (facultatif)"> ># <i>nano -w /etc/postfix/mysql-virtual-gid.cf</i> >#myql-virtual-gid.cf > >user = mailsql >password = $password >dbname = mailsql >table = users >select_field = gid >where_field = email >additional_conditions = and postfix = 'y' >hosts = unix:/var/run/mysqld/mysqld.sock ></pre> > ><pre caption="/etc/postfix/mysql-virtual-maps.cf"> ># <i>nano -w /etc/postfix/mysql-virtual-maps.cf</i> >#myql-virtual-maps.cf > >user = mailsql >password = $password >dbname = mailsql >table = users >select_field = maildir >where_field = email >additional_conditions = and postfix = 'y' >hosts = unix:/var/run/mysqld/mysqld.sock ></pre> > ><pre caption="/etc/postfix/mysql-virtual-uid.cf (facultatif)"> ># <i>nano -w /etc/postfix/mysql-virtual-uid.cf</i> ># mysql-virtual-uid.cf > >user = mailsql >password = $password >dbname = mailsql >table = users >select_field = uid >where_field = email >additional_conditions = and postfix = 'y' >hosts = unix:/var/run/mysqld/mysqld.sock ></pre> > ><pre caption="/etc/postfix/mysql-virtual.cf"> ># <i>nano -w /etc/postfix/mysql-virtual.cf</i> ># mysql-virtual.cf > >user = mailsql >password = $password >dbname = mailsql >table = virtual >select_field = destination >where_field = email >hosts = unix:/var/run/mysqld/mysqld.sock ></pre> > ><p> >Enfin, éditez <path>/etc/postfix/main.cf</path> une fois de plus. ></p> > ><pre caption="/etc/postfix/main.cf"> ># <i>nano -w /etc/postfix/main.cf</i> >alias_maps = mysql:/etc/postfix/mysql-aliases.cf >relocated_maps = mysql:/etc/postfix/mysql-relocated.cf > >local_transport = local >local_recipient_maps = $alias_maps $virtual_mailbox_maps unix:passwd.byname > >virtual_transport = virtual >virtual_mailbox_domains = > virt-bar.com, > $other-virtual-domain.com > >virtual_minimum_uid = 1000 >virtual_gid_maps = static:$vmail-gid >virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-maps.cf >virtual_alias_maps = mysql:/etc/postfix/mysql-virtual.cf >virtual_uid_maps = static:$vmail-uid >virtual_mailbox_base = / >#virtual_mailbox_limit = ></pre> > ><p> >à partir de Postfix 2.0.x, il y a eu un bon nombre de modifications par rapport >aux versions 1.1.x. Notamment les tables 'transport', 'virtual-gid' et >'virtual-uid' ne sont plus nécessaires. Les tables sont toujours incluses au >cas où vous voudriez les utiliser. ></p> > ><note> >Il est recommandé de lire le fichier <path>VIRTUAL_README</path> inclus avec >postfix pour plus d'informations. ></note> > ><pre> ># <i>postfix reload</i> ></pre> > ><p> >Maintenant, si tout s'est bien passé, vous devriez avoir un système de >messagerie fonctionnel. Les utilisateurs devraient pouvoir d'identifier en >attaquant la base de données sql et en utilisant leur adresse email complète >avec pop3, imap et smtp. Je vous recommande très fortement de vérifier que tout >fonctionne à présent. Si vous avez un quelconque problème (avec tout ce >qu'on a fait, c'est probable que vous en ayez), consultez la <uri >link="#doc_chap15">section dépannage</uri> de ce guide. ></p> > ></body> ></chapter> > ><chapter> ><title>Squirrelmail</title> ><body> > ><pre> ># <i>emerge squirrelmail</i> ><codenote>J'aime bien ajouter un lien dans htdocs pour raccourcir l'URL.</codenote> > ># <i>ln -s /home/httpd/htdocs/squirrelmail/ /home/httpd/htdocs/mail</i> ># <i>cd /home/httpd/htdocs/mail/conf</i> ># <i>./conf.pl</i> ><codenote>Modifiez votre Organization, Server et Folder settings pour squirrelmail.</codenote> ><codenote>Vous devriez maintenant pouvoir vous loguer sur squirrelmail (avec votre</codenote> ><codenote>adresse email complète) et utiliser votre nouvelle interface webmail.</codenote> ></pre> > ></body> ></chapter> > ><chapter> ><title>Mailman</title> ><body> > ><p> >Dernière étape : mailman. La nouvelle version de mailman possède un >excellent support multidomaine, c'est pourquoi je l'utilise, inutile donc de >préciser que c'est un très bon programme. Pour arriver à installer ce paquet et >à le faire marcher correctement avec les domaines virtuels, il va falloir >faire un peu de bidouillage. Je vous recommande vraiment de lire toute la >documentation sur mailman, surtout README.POSTFIX.gz, pour comprendre ce que >nous allons faire. ></p> > ><p> >Une petite note supplémentaire : les versions actuelles de mailman >s'installent dans <path>/usr/local/mailman</path>. Si vous êtes comme moi et >voulez changer le chemin d'installation par défaut, on peut le faire en >changeant la variable INSTALLDIR du fichier ebuild. ></p> > ><pre caption="/usr/portage/net-mail/mailman/mailman-$ver.ebuild"> ># <i>nano -w /usr/portage/net-mail/mailman/mailman-$ver.ebuild</i> >MAILGID="280" ><codenote>Mettez MAILGID au groupe mailman au lieu de nobody.</codenote> ><codenote>C'est nécessaire pour l'intégration à postfix.</codenote> ></pre> > ><pre> ># <i>emerge mailman</i> ><codenote>Ce paquet est également masqué, vous devez donc le démasquer ou donner à </codenote> ><codenote>emerge le nom de fichier complet de l'ebuild. Une fois installé, suivez les</codenote> ><codenote>instructions du README.gentoo.gz *sauf* qu'il ne faut pas ajouter vos alias</codenote> ><codenote>à /etc/mail/aliases. à la place nous allons nous lier à la table d'alias</codenote> ><codenote>complète de postfix.</codenote> > ># <i>zless /usr/share/doc/mailman-$ver/README.gentoo.gz</i> ></pre> > ><pre caption="Réglages de mailman : Mailman/Defaults.py"> ># <i> nano -w /var/mailman/Mailman/Defaults.py</i> ><codenote>Modifiez les valeurs ci-dessous pour qu'elles correspondent à votre domaine</codenote> ><codenote>principal, les domaines virtuels seront listés plus tard.</codenote> >DEFAULT_EMAIL_HOST = 'domain.com' >DEFAULT_URL_HOST = 'www.domain.com' ></pre> > ><pre caption="Réglages de mailman : Mailman/mm_cfg.py"> ># <i>nano -w /var/mailman/Mailman/mm_cfg.py</i> >MTA = "Postfix" >POSTFIX_STYLE_VIRTUAL_DOMAINS = ['virt-domain.com', 'virt.domain2.com'] >add_virtualhost('www.virt.domain.com', 'virt.domain.com') >add_virtualhost('www.virt.domain2.com', 'virt.domain2.com') ><codenote>C'est obligatoire pour que mailman fonctionne avec vos domaines virtuels.</codenote> ></pre> > ><pre> ><codenote>Une fois que c'est fait, ajoutez votre première liste de diffusion.</codenote> > ># <i>su mailman</i> ># <i>cd ~</i> ># <i>bin/newlist test</i> >Enter the email of the person running the list: your@email.address >Initial test password: >Hit enter to continue with test owner notification... ><codenote>Les listes qui utilisent un domaine virtuel peuvent être spécifiées en</codenote> ><codenote>utilisant le style liste@domaine.com.</codenote> ># <i>bin/genaliases</i> ><codenote>Maintenant que vos alias ont été générés, vérifiez qu'ils ont été</codenote> ><codenote>correctement ajoutés.</codenote> > ># <i>nano -w data/aliases</i> ># STANZA START: test ># CREATED: >test: "|/var/mailman/mail/mailman post test" >test-admin: "|/var/mailman/mail/mailman admin test" >test-bounces: "|/var/mailman/mail/mailman bounces test" >test-confirm: "|/var/mailman/mail/mailman confirm test" >test-join: "|/var/mailman/mail/mailman join test" >test-leave: "|/var/mailman/mail/mailman leave test" >test-owner: "|/var/mailman/mail/mailman owner test" >test-request: "|/var/mailman/mail/mailman request test" >test-subscribe: "|/var/mailman/mail/mailman subscribe test" >test-unsubscribe: "|/var/mailman/mail/mailman unsubscribe test" ># STANZA END: test > ><codenote>Pour lancer mailman une fois et à chaque démarrage :</codenote> ># <i>/etc/init.d/mailman start</i> ># <i>rc-update add mailman default</i> ></pre> > ><pre caption="Ajout du support des alias mailman à postfix"> ># <i>nano -w /etc/postfix/main.cf</i> >owner_request_special = no >recipient_delimiter = + ><codenote>Lisez README.POSTFIX.gz pour plus de détails.</codenote> > >alias_maps = > hash:/var/mailman/data/aliases, > mysql:/etc/postfix/mysql-aliases.cf > >virtual_alias_maps = > hash:/var/mailman/data/virtual-mailman, > mysql:/etc/postfix/mysql-virtual.cf ><codenote>Postfix supporte maintenant le fichier d'alias de mailman.</codenote> ><codenote>Vous pouvez bien sûr utiliser les tables mysql pour cela,</codenote> ><codenote>mais j'ai horreur de le faire à la main. Aussi, si vous n'utilisez</codenote> ><codenote>pas les domaines virtuels, l'ajout d'une liste d'alias virtuels à </codenote> ><codenote>postfix peut poser des problèmes, vous êtes prévenu.</codenote> ></pre> > ><p> >Vous devrez maintenant pouvoir installer une liste de diffusion pour n'importe >quel domaine de votre système. Une dernière note : assurez-vous de lancer >les commandes mailman en tant qu'utilisateur mailman (<c>su mailman</c>) car >sinon les permissions seront mauvaises et vous devrez les corriger. Lisez la >documentation de mailman pour plus d'information sur la mise en place et la >gestion des listes mailman. ></p> > ></body> ></chapter> > ><chapter> ><title>Filtre de contenu et anti-virus</title> ><body> > ><p> >à venir prochainement ... cela aurait déjà du être fait mais j'ai besoin d'un >peu d'aide en perl et pour les tests. Si vous êtes volontaire, veuillez >m'envoyez un email. ></p> > ></body> ></chapter> > ><chapter> ><title>Finalisation</title> ><body> > ><p> >Ok c'est terminé, éditez <path>/etc/postfix/master.cf</path> et désactiver le >mode verbal pour un usage en production. Vous voudrez probablement que vos >services se lancent au prochain redémarrage. Assurez-vous d'ajouter tous les >services que vous voulez utiliser parmi la liste de ceux qu'on a >installés : apache, mysql, saslauthd, postfix, courier-imapd, courier-imapd-ssl, courier-pop3d et courier-pop3d-ssl. Personnellement j'ai tous ces services >qui tournent. ></p> > ><pre caption="Finalisation"> ># <i>postfix reload</i> ># <i>rc-update add $service default</i> ></pre> > ><p> ><e>Amusez-vous bien !</e> ></p> > ></body> ></chapter> > ><chapter> ><title>Dépannage</title> ><section> ><title>Introduction</title> ><body> > ><p> >Dépannage : voici un petit guide de dépannage pour l'installation que nous >venons de détailler dans ce guide. Il n'est pas exhaustif mais est là pour vous >aider à trouver la solution à vos problèmes. Avec un système aussi complexe que >celui-ci, il est impératif que vous puissiez cerner la partie exacte qui ne >fonctionne pas. En général je procède en suivant quelques étapes. Commencez par >la base du système et passez en revue chaque composant jusqu'à ce que vous >découvriez celui qui pose problème. ></p> > ></body> ></section> > ><section> ><title>Ãtape 1 : Vérifiez vos fichiers de configuration.</title> ><body> > ><p> >Les erreurs de frappes ne pardonnent pas, surtout au niveau du système >d'authentification. Cherchez des erreurs de frappes dans vos fichiers de >configuration et dans la base de données. Vous pourrez déboguer autant que vous >voulez, si vous n'envoyez pas une information correcte cela ne marchera jamais. >Si vous faites une modification dans un fichier de configuration pour un >certain service, assure-vous de relancer le service concerné pour que les >changements puissent être pris en compte. ></p> > ><pre> ># <i>/etc/init.d/service restart</i> ></pre> > ></body> ></section> > ><section> ><title>Ãtape 2 : Est-ce que tous les services requis sont lancés ?</title> ><body> > ><p> >S'il n'est pas lancé, lancez-le. C'est super dur de déboguer un service qui ne >tourne pas. Parfois un service fera semblant de s'être lancé mais ne >fonctionnera pas. Parfois, quand une mauvaise configuration est utilisée ou >qu'une mauvaise transmission arrive dans un composant du système de mail, le >service peut planter et empecher le port d'être utilisé par un autre processus. >Parfois vous pouvez le détecter avec netstat. Ou bien des fois un petit >redémarrage peut remettre les processus plantés à leur place et résoudre bien >des problèmes. ></p> > ><pre> ># <i>/etc/init.d/$service status</i> ># <i>netstat -a | grep $service (or $port)</i> ></pre> > ></body> ></section> > ><section> ><title>Ãtape 3 : Est-ce que les services utilisent mes configs ?</title> ><body> > ><p> >Si vous avez récemment modifié un fichier de configuration, relancez le service >pour vous assurez qu'il utilise la bonne version. Certains composants vous >montrent leur configuration actuelle, comme Postfix. ></p> > ><pre> ># <i>apachectl fullstatus</i> (requiert lynx) ># <i>apachectl configtest</i> (vérifie la configuration) ># <i>postconf -n</i> (vous dit exactement ce qu'utilise postfix comme config) ># <i>/etc/init.d/$service restart</i> ></pre> > ></body> ></section> > ><section> ><title>Ãtape 4 : Vérifiez les journaux système.</title> ><body> > ><p> >Répétez après moi : les journaux systèmes sont mes amis. Mes dépannages >s'arrêtent tout le temps sur la consultation des journaux système. Parfois >c'est utile de répéter une opération qui a échoué puis de consulter les >journaux système afin de voir si le message d'erreur apparait bien à la fin (ou >au début, ça dépend de votre logger). Voyez s'il n'y a pas une information dans >les journaux système qui pourrait vous aider à comprendre le problème, ou au >moins, à vous indiquer de quel composant l'erreur provient. ></p> > ><pre> ># <i>kill -USR1 `ps -C metalog -o pid=`</i>(désactive le cache de metalog) ># <i>nano -w /var/log/mail/current</i> ># <i>cat /var/log/mysql/mysql.log</i> ># <i>tail /var/log/apache/error_log</i> ></pre> > ><p> >Un paramètre de postfix est très utile ; debug_peer permet d'augmenter >le niveau de verbosité dans les journaux système. ></p> > ><pre caption="Ajout de debug_peer"> ># <i>nano -w /etc/postfix/main.cf</i> >debug_peer_level = 5 >debug_peer_list = $host.domain.name ><codenote>Décommentez une des commandes suggérées.</codenote> ></pre> > ></body> ></section> > ><section> ><title>Ãtape 5 : Utilisez le service vous-même.</title> ><body> > ><p> >SMTP, IMAP et POP3 répondent aux sessions telnet, comme nous l'avons déjà vu >pour vérifier la configuration de postfix. Cela peut parfois être utile d'ouvrir >une session telnet vers le service lui-même et de voir ce qu'il se passe. ></p> > ><pre> ># <i>telnet localhost $port</i> ><codenote>Pour SMTP c'est 25, IMAP c'est 143 et POP3 c'est 110. Vous devriez au moins</codenote> ><codenote>recevoir une chaine OK qui vous informe que le service fonctionne et est prêt</codenote> ><codenote>à répondre à une requête.</codenote> > >Trying 127.0.0.1... >Connected to localhost. >Escape character is '^]'. >* OK Courier-IMAP ready. Copyright 1998-2002 Double Precision, Inc. ></pre> > ></body> ></section> > ><section> ><title>Ãtape 6 : Il faut parfois sortir l'artillerie lourde pour lui faire >cracher le morceau : strace.</title> ><body> > ><p> >Vous auriez de toute façon du l'installer. C'est un outil hors du commun pour >déboguer les programmes. You pouvez lancer des commandes en ligne de commande >avec strace et observer tous les appels système qui arrivent. Il affiche souvent >une énorme quantité d'information, vous devez donc le regarder en temps réel >quand vous essayer de refaire une transaction qui échoue ou envoyer la sortie >dans un fichier pour la lire plus calmement. ></p> > ><pre> ># <i>emerge strace</i> ># <i>strace $command</i> ># <i>strace -p `ps -C $service -o pid=`</i> ></pre> > ></body> ></section> > ><section> ><title>Ãtape 7 : Recherche</title> ><body> > ><p> >Une fois que vous avez l'information, si vous pouvez trouver et réparer le >problème c'est bien. Sinon vous devrez probablement fouiller sur le net à la >recherche d'informations qui vous aideront. Voici une liste de sites à visiter >pour voir si votre erreur a déjà été résolue quelque part. Il y a aussi un >guide vraiment bon sur la mise en place de smtp-auth qui contient de bonnes >idées de débogage. ></p> > ><ul> ><li><uri>http://forums.gentoo.org/</uri> - Super forums pour les utilisateurs de >Gentoo.</li> ><li><uri>http://bugs.gentoo.org/</uri> - Base de données des bugs liés à Gentoo, >bon endroit pour chercher des erreurs particulières.</li> ><li><uri>http://postfix.state-of-mind.de/</uri> - Guide pour smtp-auth.</li> ><li><uri>http://marc.theaimsgroup.com/?l=postfix-users</uri> - Liste de >diffusion de Postfix - recherches possibles.</li> ><li><uri>http://sourceforge.net/mailarchive/forum.php?forum_id=6705</uri> - >Archives de la liste de diffusion de Courier-imap - pas de recherche >possible.</li> ><li><uri>http://www.google.com/</uri> - Si tout le reste échoue, il reste >toujours Google, qui n'a jamais échoué pour moi.</li> ><li>Je passe également beaucoup de temps sur #gentoo irc.freenode.net. IRC est >un très bon endroit pour chercher de l'aide.</li> ></ul> > ></body> ></section> ></chapter> ></guide>
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 33443
: 20724 |
20735