MAIL : 3ème Etape - Installation de Maildrop

DEBIANLINUXMAILDROP

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 qu’il ne sait pas faire en 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é.

La solution Maildrop réponds, elle, à nos besoins.

Maildrop s’occupera donc de la livraison des mails dans les /home/virtual.

MAILDROP - Installation

Nous installons maildrop :

apt-get install maildrop

Nous appliquons les permissions correctement en mettant comme utilisateur VMAIL sur les exécutables et sur /var/run/courier/authdaemaon :

chown vmail : /usr/bin/maildrop

chown vmail:daemon /var/run/courier/authdaemon/

chmod 750 /var/run/courier/authdaemon/

On vérifie si maildrop est correctement installé (modules activés) :

/usr/bin/maildrop -v

qui doit nous renvoyer :

On voit que l’authentification est activée, ainsi que la gestion des quotas que nous configurerons plus tard.

MAILDROP - Configuration

Nous éditons le fichier /etc/courier/authdaemonrc pour remplacer authmodulelist="authpam" par authmodulelist="authpam authmysql", comme décrit dans le cadre suivant (un petit copier-coller d’un coup fonctionne) :

Nous exécutons ensuite les commandes suivantes pour créer le fichier authmysqlrc (toto étant votre mot de passe) :

Puis lancer la commande suivante en ayant préalablement remplacé "toto" par votre mot de passe postfix que vous avez déjà défini.

sed -i ’s/*****/toto/g’ authmysqlrc

(Toujours la commande sed pour modifier les fichiers par lots).

Note : Il faut faire très attention à la syntaxe de ce fichier (/etc/courrier/authmysqlrc) et bien mettre un tab (tabulation) 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 nécessite donc aucune modification autre que celle du mot de passe de notre base.

Maildrop est appelé par Postfix au moment de la livraison du mail. Pour que Postfix utilise Maildrop, nous ajoutons au fichier/etc/postfix/main.cf en fin de fichier :

nano /etc/postfix/main.cf

et au fichier /etc/postfix/master.cf

nano /etc/postfix/master.cf

(on efface les lignes maildrop existantes (qu’une instruction) et on les remplace par celles ci) :

Ensuite, il faut créer le fichier /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 et il faut dire à maildrop, de venir livrer les mails dans /home/virtual) :

nano /home/virtual/.mailfilter (fichier vide au départ)

Et nous le remplissons avec :

Enfin, il faut sécuriser le fichier.mailfilter :

chown vmail : /home/virtual/.mailfilter

chmod 600 /home/virtual/.mailfilter

Nous redémarrons le processus d’authentification et Postfix :

/etc/init.d/courier-authdaemon restart

/etc/init.d/postfix restart

MAILDROP - Test de la configuration

Nous testons cette configuration de base avec la commande :

authtest user@mondomaine.com

Qui nous donne :

Note : En cas d’erreur, il est fort probable que le fichier authmysqlrc soit en cause.

Regarder les logs :

tail -f /var/log/mail.log

Ensuite nous tapons la commande :

/usr/bin/maildrop -V 7 -d user@mondomaine.com

qui devrait nous répondre les termes suivants, montrant que le mail est bien livré à /home/virtual :

CTRL+C pour sortir du fichier.

Nous allons ensuite tester l’envoi de mail à user@mondomaine.com :

mail user@mondomaine.com

Remplir tous les champs avec des informations vraies ou fausses cela est votre choix et terminer votre mail en tapant un point (.) sur une seul ligne.

On regarde les logs pour les erreurs :

tail -f /var/log/mail.log

Si tout a fonctionné on devrait trouver dans une ligne, vers la fin :

Nous allons ensuite tester le port 25 (SMTP) du serveur mail avec telnet :

apt-get install telnet

Puis nous testons avec la commande suivante :

On regarde les logs pour vérifier.

MAILDROP - Filtre Message

Le fichier /home/virtual/.mailfilter que nous avons créé plus haut est commun à tous les comptes et sera appliqué à chaque mail. Si nous voulions appliquer des règles spécifiques à un utilisateur, il nous suffirait de créer un autre fichier .mailfilter dans le répertoire de l’utilisateur.
Nous pourrions par exemple rediriger des emails dans des répertoires spécifiques de cette façon.

Par exemple, pour que temporairement, les mails de Pierre arrivent à Paul, pendant que Pierre est en vacances.
Par exemple, je ne veux plus voir les mails provenant de Jacques.

Exemple de fichier .mailfilter personnel :

Note : Pour éviter que l’administrateur postfix ait à créer manuellement toutes ces règles de gestion de mail, nous utiliserons eGroupware qui permettra à chaque utilisateur de gérer ses propres filtres.

Bien sûr nous devons appliquer les mêmes droits que pour le fichier .mailfilter général à ces fichiers personnels si nous les créons manuellement :

Vous êtes excellent ! Votre MDA est installé.

A ce stade, votre SMTP et votre MDA sur actifs sur le serveur Mail.

Votre serveur sait livrer correctement les mails qu’il reçoit (les ranger dans le bon dossier quand il les reçoit), il sait les envoyer (smtp), la partie serveur (host) est faite.

Cependant, le client ne peut pas encore communiquer avec le serveur pour visualiser ses mails (à part d’aller sur la console).

Nous allons dans l’article suivant installer Courrier-IMAP.