Compilation Maildrop 2.0.4
Maildrop
Nous avons besoin d’un MDA (mail delivery agent) pour livrer les mails dans les boîtes.
Le service de livraison Virtual de Postfix ne convient pas totalement pour notre usage.
En effet nous allons avoir besoin de capacité de filtrage sur le MDA ainsi que la possibilité de gérer les quotas, ce que ne sait pas faire Virtual.
Procmail est très bien pour le filtrage, mais ne supporte pas les users/domaines virtuels car il ne sait pas communiquer avec une base de données.
Une méthode répandue pour les quotas est l’application du patch VDA sur Postfix, option que nous ne choisirons pas pour des raisons de fiabilité.
Maildrop répond lui à nos besoins :
Il s’occupera donc de la livraison des mails dans les home.
On installe d’abord les outils pour la compilation :
aptitude install bzip2 gcc libpcre3-dev libpcre++-dev courier-authlib-dev g++ libtool libmysqlclient15-dev make libssl-devOn télécharge les sources :
cd ~
wget http://switch.dl.sourceforge.net/sourceforge/courier/maildrop-2.0.4.tar.bz2
tar jxf maildrop-2.0.4.tar.bz2
cd maildrop-2.0.4
./configure -prefix=/usr/local/courier --with-etcdir=directory=/etc/courier --enable-maildrop-uid=20001 --enable-maildrop-gid=20001 --enable-maildirquota --without-db
make && make installNotes :
Pour Etch, le paquet libpcre++-dev n’existe pas et aptitude le signale : Ne pas en tenir compte
Le ./configure est particulièrement long et donne l’impression de tourner en boucle. Ceci est normal, il faut attendre la fin du processus.
A la fin du make install avec la version 2.0.4, il se peut que l’on obtienne un message d’erreur sur un des composants. Meme si cela n’empèchera pas Maildrop de fonctionner on peut régler le problème comme ceci :
cd makedat
ln -s makedatprog.c makedatprog
cd ..
make installOn applique les permissions correctement sur les exécutables et sur /var/run/courier/authdaemaon :
chown vmail: /usr/local/courier/bin/*
chown vmail:daemon /var/run/courier/authdaemon/
chmod 750 /var/run/courier/authdaemon/Note : Pour Ubuntu il faut modifier en plus le fichier /etc/init.d/courier-authdaemon et remplacer chown daemon:daemon ${run_dir} /var/run/courier par chown vmail:daemon ${run_dir}
On vérifie si maildrop est correctement installé (modules activés) :
/usr/local/courier/bin/maildrop -vdevrait donner :
maildrop 2.0.4 Copyright 1998-2005 Double Precision, Inc.
Courier Authentication Library extension enabled.
Maildir quota extension enabled.
This program is distributed under the terms of the GNU General Public
License. See COPYING for additional information.On voit que l’authentification est activée, ainsi que la gestion des quotas que nous configurerons plus tard.
On édite le fichier /etc/courier/authdaemonrc pour remplacer authmodulelist="authpam" par authmodulelist="authpam authmysql" :
cd /etc/courier
mv authdaemonrc authdaemonrc-orig
wget http://www.starbridge.org/spip/doc/Procmail/courier/authdaemonrc
chown daemon: authdaemonrc
chmod 660 authdaemonrcOn exécute les commandes suivantes pour créer le fichier authmysqlrc (toto étant votre password) :
cd /etc/courier
mv authmysqlrc authmysqlrc-orig
wget http://www.starbridge.org/spip/doc/Procmail/courier/authmysqlrc
chown daemon: authmysqlrc
chmod 660 authmysqlrc
sed -i 's/\*\*\*\*\*/toto/g' authmysqlrcNote : Il faut faire très attention à la syntaxe de ce fichier et bien mettre un tab entre le paramètre et sa valeur. Il ne doit y avoir aucun espace à la fin d’un paramètre. La moindre erreur entraînera le non fonctionnement de l’authentification. C’est pour cela que le fichier est directement fourni ici et ne necessite donc aucune modification autre que celle du mot de passe de votre base.
On sécurise :
chmod 640 /etc/courier/authmysqlrc
Maildrop est appelé par Postfix au moment de la livraison. Pour que Postfix utilise Maildrop, on ajoute au main.cf :
et au master.cf (on efface les ligne maildrop existantes et on les remplace par celles ci) :
On crée /home/virtual/.mailfilter pour activer les logs et la création automatique des maildir à la livraison (postfix ne sait pas le faire comme avec le transport par défaut "virtual", car ce n’est pas lui qui livre directement dans les répertoires) :
vi /home/virtual/.mailfilter
et on colle :
On sécurise ce fichier :
chown vmail: /home/virtual/.mailfilter
chmod 600 /home/virtual/.mailfilter
on redémarre le daemon d’authentification et Postfix
/etc/init.d/courier-authdaemon restart
/etc/init.d/postfix restartOn teste cette première configuration de base :
authtest user@starbridge.org
doit donner :
Authentication succeeded.
Authenticated: user@starbridge.org (uid 20001, gid 20001)
Home Directory: /home/virtual
Maildir: user@starbridge.org/
Quota: 0S
Encrypted Password: $1$caea3837$gPafod/Do/8Jj5M9HehhM.
Cleartext Password: (none)
Options: (none)En cas d’erreur, il est fort probable que le fichier authmysqlrc soit en cause.
Regarder les logs : /var/log/mail.log.
puis :
/usr/local/courier/bin/maildrop -V 7 -d user@starbridge.org
cela devrait donner :
maildrop: authlib: groupid=20001
maildrop: authlib: userid=20001
maildrop: authlib: logname=user@starbridge.org, home=/home/virtual, mail=user@starbridge.org/
maildrop: Changing to /home/virtualCTRL + C pour sortir
On vérifie que l’on peut envoyer un mail à user@starbridge.org :
mail user@starbridge.org
note : il faut taper un . (un point seul sur la ligne) pour terminer le message.
On regarde les logs pour les erreurs. Si tout a fonctionné on devrait trouver dans une ligne :
...status=sent (delivered via maildrop service)...note : si la commande mail n’existe pas sur le système (Ubuntu par exemple) l’installer avec aptitude install mailx
Puis on teste en direct sur le port 25 :
(ce qu’il faut taper est précédé de --->, le reste c’est le retour du serveur) :
On regarde les logs pour vérifier.
- NOTE : Le fichier .mailfilter crée plus haut est commun à tous les comptes et sera appliqué à chaque mail. Si l’on veut appliquer des règles spécifiques à un utilisateur, il suffit de créer un autre fichier .mailfilter dans son Maildir. On pourra par exemple rediriger des emails dans des répertoires spécifiques de cette façon.
Exemple de fichier .mailfilter personnel :
Note : Pour la création assistée et autonome (par les utilisateurs eux-mêmes) des fichiers mailfilter personnels on pourra utiliser un module du Webmail horde.
L’article sur l’installation du Webmail traite en détail de ce point .
Bien sur on appliquera les mêmes droits que pour le fichier .mailfilter général à ce fichier personnel :
chown vmail: /home/virtual/user@starbridge.org/.mailfilter
chmod 600 /home/virtual/user@starbridge.org/.mailfilter
