Que vous souhaitiez fournir un service de messagerie juste pour vos démons systèmes, un simple serveur, un domaine ou bien plusieurs domaines, qmail peut facilement être mis en place pour satisfaire tous vos besoins. Ce guide vous aidera à installer qmail pour chacun de ces scénarios en se concentrant sur l'accès à distance et les communications entièrement chiffrées.
Ce guide vous aidera particulièrement à installer les paquets qmail, courier-imap, vpopmail et horde/imp. Ces paquets de base auront également besoin de daemontools, ucspi-tcp, mysql, apache et mod_php. Qmail fournit les fonctions de base du MTA (agent de transfert de messages), courier-imap fournit les services de rapatriement à distance, vpopmail fournit la gestion des domaines virtuels et horde/imp fournit un webmail (consultation du courrier électronique via un navigateur).
Avant d'installer quoi que ce soit, vous devez avoir les options suivantes dans
votre variable USE. Si vous avez déjà installé certains de ces paquets, il est
possible que vous deviez les réinstaller. Utilisez
La dernière étape est évidemment de vous impliquer dans le système qmail. Il
existe bien sûr plusieurs autres paquets avec lesquels vous pourriez monter
votre système de messagerie. Il est maintenant temps pour vous de faire des
recherches et de décider si c'est bien qmail que vous voulez. Nous avons un
autre
# emerge qmail
Emerge va installer ucspi-tcp et daemontools en tant que dépendances de qmail.
Vous pouvez vous documenter sur
D'abord, peaufinons l'installation de qmail.
(Adaptez les paramètres selon vos besoins.) # nano /var/qmail/control/servercert.cnf # ebuild /var/db/pkg/net-mail/qmail-1.03-r*/qmail-1.03-r*.ebuild config
La conception de qmail est complètement focalisée sur la sécurité. Ainsi, aucun
message n'est jamais envoyé à l'utilisateur
# cd /var/qmail/alias # echo vapier > .qmail-root # echo vapier > .qmail-postmaster # echo vapier > .qmail-mailer-daemon
Maintenant, lançons le service de distribution de qmail.
# rc-update add svscan default # /etc/init.d/svscan start # cd /service # ln -s /var/qmail/supervise/qmail-send qmail-send
Pour vérifier que qmail fonctionne correctement, faisons un petit test.
# ssh vapier@localhost # qmail-inject root << EOF test de la messagerie root ! EOF # qmail-inject postmaster << EOF test de la messagerie postmaster ! EOF # qmail-inject vapier << EOF test de la messagerie vapier ! EOF # mutt(Vous devriez avoir trois messages dans votre boîte aux lettres.)
Et voilà ! Vous avez maintenant un système de messagerie opérationnel qui gère les messages locaux de votre machine et des démons ou utilisateurs qui s'en servent.
# hostname --fqdn wh0rd.org # cat me wh0rd.org # cat defaultdomain wh0rd.org # cat plusdomain wh0rd.org # cat locals wh0rd.org # cat rcpthosts wh0rd.org
# hostname --fqdn mail.wh0rd.org # cat me mail.wh0rd.org # cat defaultdomain wh0rd.org # cat plusdomain wh0rd.org # cat locals mail.wh0rd.org # cat rcpthosts mail.wh0rd.org
# emerge vpopmail
Vpopmail est un peu plus difficile à mettre en place que les paquets précédents. Comme vpopmail s'appuie sur MySQL, nous devons d'abord nous assurez que mysql est opérationnel. Ensuite, nous pourrons configurer la base de données vpopmail. Notez que j'utiliserai le mot de passe 'vpoppw' pour la base de données vpopmail, vous devez bien sûr en choisir un autre.
# rc-update add mysql default # /etc/init.d/mysql start # nano /etc/vpopmail.conf(Changez le mot de passe 'secret' en 'vpoppw'.) # mysql -p << EOF create database vpopmail; use mysql; grant select, insert, update, delete, create, drop on vpopmail.* to vpopmail@localhost identified by 'vpoppw'; flush privileges; EOF(Les commandes suivantes ne sont pas forcément nécessaires, mais lançons-les quand même pour être sûr.) # chown root:vpopmail /etc/vpopmail.conf # chmod 640 /etc/vpopmail.conf # chown root:vpopmail /var/vpopmail/bin/vchkpw # chmod 4711 /var/vpopmail/bin/vchkpw
À ce moment précis, vpopmail est prêt. Dans ce guide, nous allons fournir un
hébergement multidomaine pour le domaine 'wh0rd.org'. Cela signifie que nous
devons dire à vpopmail que nous voulons qu'il le gère pour nous. Nous allons
aussi ajouter rapidement un compte utilisateur pour
# vadddomain wh0rd.org postpass(Vérifions rapidement que le domaine est correctement installé :) # printf "postmaster@wh0rd.org\0postpass\0blah\0" | vchkpw `which id` 3<&0 uid=89(vpopmail) gid=89(vpopmail) groups=0(root)(Si vous ne voyez pas quelque chose de similaire, alors les permissions sont incorrectes.) # vadduser vapier@wh0rd.org vappw
Chaque domaine créé par vpopmail possède un compte
# emerge net-mail/courier-imap
Allons-y pour la configuration post-installation. Ces étapes ne sont requises que si vous souhaitez utiliser des communications chiffrées avec SSL (vous devriez). Sinon, vous pouvez vous contenter des deux dernières lignes de chacun des deux blocs de commandes suivants, en enlevant '-ssl' au nom du script à chaque fois.
# cd /etc/courier-imap # nano authdaemonrc(La variable authmodulelist ne doit contenir que "authvchkpw".) # nano pop3d.cnf(Éditez la section [ req_dn ].) # mkpop3dcert # rc-update add courier-pop3d-ssl default # /etc/init.d/courier-pop3d-ssl start
# cd /etc/courier-imap # nano imapd.cnf(Éditez la section [ req_dn ].) # mkimapdcert # rc-update add courier-imapd-ssl default # /etc/init.d/courier-imapd-ssl start
Votre client de messagerie devrait maintenant pouvoir s'identifier sur la machine qui héberge courier et devrait pouvoir ainsi récupérer les messages pour le domaine virtuel. Dans mon cas, je suis maintenant capable de me connecter avec le nom d'utilisateur « vapier@wh0rd.org » et le mot de passe « vappw ».
Allons-y pour activer SMTP sans que des personnes mal intentionnées puissent l'utiliser pour envoyer du spam (des courriers non sollicités, aussi appelés pourriels).
# cd /var/qmail/control/ # nano conf-smtpd(Décommentez les variables SMTP-AUTH et mettez QMAIL_SMTP_CHECKPASSWORD à /var/vpopmail/bin/vchkpw.) # nano servercert.cnf(Éditez la section [ req_dn ].) # mkservercert # cd /service # ln -s /var/qmail/supervise/qmail-smtpd qmail-smtpd # /etc/init.d/svscan restart
Si vous n'avez pas modifié les fichiers
Bien qu'il existe plusieurs clients webmail (vous êtes libre d'utiliser celui
que vous voulez), je préfère
Installons IMP.
# emerge horde-imp
Horde n'est vraiment pas le plus facile à configurer, sauf si vous savez exactement ce qu'il faut faire. Heureusement pour vous, je sais exactement ce qu'il faut faire.
# cd /var/www/localhost/htdocs/horde/config/ # for f in *.dist ; do mv ${f} ${f/.dist} ; done # nano horde.php(Dans la partie 'Horde Authentication' :) $conf['auth']['driver'] = 'imap'; $conf['auth']['params']['dsn'] = '{localhost:993/imap/ssl}';(Dans la partie 'Horde Logging' :) $conf['log']['name'] = '/var/log/apache2/horde.log';(Dans la partie 'Problem Reporting' :) $conf['problems']['enabled'] = true; $conf['problems']['email'] = 'webmaster@wh0rd.org'; # nano registry.php(Dans la partie 'Handlers' :) $this->registry['auth']['login'] = 'imp'; $this->registry['auth']['logout'] = 'imp';(Dans la partie 'Application registry' :) Changez l'élément 'status' de applications['imp'] de 'inactive' à 'active'. # touch /var/log/apache2/horde.log
On passe rapidement à la configuration de IMP.
# cd /var/www/localhost/htdocs/horde/imp/config/ # for f in *.dist ; do mv ${f} ${f/.dist} ; done # nano servers.php(Éditez le tableau $servers['imap'] :) $servers['imap'] = array( 'name' => 'wh0rd.org', 'server' => 'localhost', 'protocol' => 'imap/ssl/novalidate-cert', 'port' => 993, 'folders' => 'mail/', 'namespace' => '', 'maildomain' => 'wh0rd.org', 'smtphost' => 'localhost', 'realm' => '', 'preferred' => '' );
Enfin, nous lançons apache pour pouvoir utiliser le webmail.
# nano /etc/conf.d/apache(Décommentez APACHE2_OPTS="-D SSL -D PHP4".) # rc-update add apache2 default # /etc/init.d/apache2 start
Pour tester notre nouveau IMP, lancez un navigateur web et allez sur
Horde et IMP sont maintenant en place. Vous pouvez (devez) retourner voir les fichiers de configuration pour ajuster chacun des réglages selon ce que bon vous semblera.
Le premier paquet que je vous suggère de considérer est
Si vous rencontrez des problèmes avec les queues de qmail et si vous avez du
mal à déboguer la situation, jetez un œil à
Je vous recommande fortement de voir si les autres applications Horde vous
intéressent. En effet,
Qmail utilise ucspi-tcp pour gérer les connexions entrantes qui lui sont
destinées. Si vous souhaitez personnaliser ses règles de filtrage, voyez les
fichiers de configuration dans
Si vous comptez faire du filtrage de contenu sur votre serveur de messagerie
(anti-virus ou anti-spam par exemple), vous aurez besoin d'utiliser un
gestionnaire de queue différent de celui par défaut. Un bon programme pour faire
ça est
# cd /etc/tcprules.d/ # nano tcp.qmail-smtp(Ajoutez QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue" à la règle 'allow' du 'catchall'.) # tcprules tcp.qmail-smtp.cdb tcp.qmail-smtp.tmp < tcp.qmail-smtp
Lisez la section suivante pour la mise en place d'une solution de filtrage de
spam et virus. Vous pouvez peaufiner quelques réglages en éditant le fichier
Un des meilleurs filtres anti-spam open source est
# nano /etc/mail/spamassassin/local.cf(Ajoutez au moins ces options :) required_hits 6 skip_rbl_checks 1 # rc-update add spamd default # /etc/init.d/spamd start # nano /var/qmail/bin/qmail-scanner-queue.pl(Assurez-vous que la variable $spamc_binary est à '/usr/bin/spamc'.) (Si elle est à '', lisez la note ci-dessous.)
Maintenant, les messages entrants devraient être envoyés à qmail-scanner qui lancera SpamAssassin à votre place.
Comme SpamAssassin,
# nano /etc/conf.d/clamd(Mettez START_CLAMD=yes.) # rc-update add clamd default # /etc/init.d/clamd start # nano /var/qmail/bin/qmail-scanner-queue.pl(Assurez-vous que la variable $clamscan_binary soit à '/usr/bin/clamscan'.) (Si elle est à '', lisez la note ci-dessous.)
Maintenant, les messages entrants devraient être envoyés à qmail-scanner qui lancera Clam AntiVirus à votre place.
Je n'ai pas de conclusion particulière, excepté que si vous ressentez un
problème quelconque avec ce guide, veuillez