Serveur de mail · 3 min read · Oct 05, 2025

Solution complète de serveur de messagerie avec domaines et utilisateurs virtuels (Debian Etch, Postfix, Mysql, Dovecot, DSpam, ClamAV, Postgrey, RBL) - Page 6

V. Serveur de livraison de mail

Le serveur de livraison de mail est le serveur qui vérifie les SPAM à l’aide d’un algorithme bayésien via un service connu sous le nom de DSPAM. DSPAM est incroyablement capable et est accompagné d’une bonne documentation concernant ses différentes configurations. Notre configuration particulière est plutôt simple. MX-1 et MX-2 livrent le mail à postman.internal.example.com via LMTP. LMTP est le protocole de transfert de mail local, vous pouvez trouver quelques informations de base ici. DSPAM reçoit le mail, vérifie selon ses propres algorithmes et passe le mail à ClamAV pour la détection de virus. En supposant que tout va bien, le mail est ensuite remis à Dovecot pour la livraison finale.

Nous allons passer en revue les sections une par une. Alors, mettons les choses en route sur postman.internal.example.com.

A. Paramètres NFS

Puisque Dovecot va livrer notre mail pour nous, nous allons vouloir mapper le répertoire vmail sur le serveur de livraison de mail.

Allez-y et créez l’utilisateur et le répertoire vmail comme ceci :

# useradd -r -u 150 -g mail -d /var/vmail -s /sbin/nologin -c "Boîte aux lettres virtuelle" vmail  
# mkdir /var/vmail  
# chmod 770 /var/vmail/  
# chown vmail:mail /var/vmail/

Maintenant, nous devons installer les outils client NFS :

# apt-get install nfs-common portmap

Le répertoire doit ensuite être monté sur le partage NFS. Pour faire un test simple, exécutez ce qui suit :

# mount files-1.internal.example.com:/vmail /vmail

Vous devriez maintenant avoir accès au partage /vmail depuis files-1. Essayez d’écrire un fichier :

# cd /vmail  
# touch tmp

Cela devrait fonctionner correctement cette fois (postman a un accès en lecture-écriture au montage NFS… les serveurs MX n’avaient qu’un accès en lecture).

En supposant que tout fonctionne, allez-y et démontez le NFS :

# cd /  
umount /vmail

Et puis rendez le montage permanent en mettant ce qui suit dans votre /etc/fstab :

[...]  
files-1.internal.example.com:/vmail /vmail nfs rw,rsize=4096,wsize=4096,hard,intr,tcp,noatime,nodev,async 0 0

Allez-y et montez le système de fichiers une dernière fois :

# mount /vmail

… et vous êtes prêt à partir !

B. Installer DSPAM

Encore une fois, debian rend cela ridiculement simple :

# apt-get install dspam dspam-doc libdspam7-drv-mysql

On vous demandera si vous souhaitez configurer la base de données pour libdspam7-drv-mysql avec dbconfig-common, choisissez ‘Non’. Honnêtement, si vous vouliez utiliser dbconfig, rien ne vous en empêche, mais pour les besoins de la documentation, je vais énoncer les paramètres.

C. Configurer la base de données MySQL

Vous allez devoir configurer quelques tables dans la base de données MySQL, alors connectez-vous à sql-1.internal.example.com et lancez le client mysql en tant que root :

# mysql -u root -p

Ensuite, allez-y et créez la nouvelle base de données DSPAM et l’utilisateur :

MYSQL> CREATE DATABASE dspam_db;  
MYSQL> GRANT ALL PRIVILEGES ON dspam_db.* TO 'dspam_user'@'postman.internal.example.com' IDENTIFIED BY 'dspam_user_password';

NOTE : Changez le dspam_user_password pour un mot de passe sécurisé !

D. Configurer DSPAM pour MySQL

Maintenant que MySQL a une base de données DSPAM et un compte utilisateur, nous pouvons importer les tables du pilote MySQL de DSPAM. Celles-ci sont stockées dans /usr/share/doc/libdspam7-drv-mysql sur le serveur de livraison de mail (postman.internal.example.com). Il existe deux versions différentes des schémas, l’une construite pour la vitesse, l’autre pour économiser de l’espace disque. Nous allons utiliser celle pour la vitesse, mais vous pouvez choisir celle que vous voulez. N’oubliez pas, lisez la documentation, c’est pourquoi elle est là !

Installez le schéma principal :

# mysql -u dspam_user -h sql-1.internal.example.com -p dspam_db < /usr/share/doc/libdspam7-drv-mysql/mysql_objects-speed.sql

Si vous obtenez des erreurs de permission, retournez sur le serveur mysql et vérifiez que vous avez correctement créé l’utilisateur.

En supposant que tout s’est bien passé, nous allons également vouloir alimenter les tables pour les utilisateurs virtuels :

# mysql -u dspam_user -h sql-1.internal.example.com -p dspam_db < /usr/share/doc/libdspam7-drv-mysql/virtual_users.sql

Maintenant, nous devons juste dire à DSPAM comment communiquer avec notre base de données MySQL. Cela se fait via le fichier /etc/dspam/dspam.d/mysql.conf. Modifiez-le en conséquence :

[...]  
MySQLServer sql-1.internal.example.com  
MySQLPort 3306  
MySQLUser dspam_user  
MySQLPass dspam_user_password  
MysqLDb dspam_db  
[...]  
MySQLVirtualTable dspam_virtual_uids  
MySQLVirtualUIDField uid  
MySQLVirtualUsernameField username  
[...]  

Maintenant, DSPAM stockera toutes ses informations dans la base de données MySQL.

NOTE : Il s’agit d’une configuration temporaire, juste parce que nous n’avions pas terminé l’installation de l’utilisateur virtuel DSPAM avant d’écrire ce guide. Idéalement, vous voudriez que DSPAM regarde la même table d’utilisateurs virtuels que Postfix afin d’obtenir toutes les informations de jeton stockées correctement. Je mettrai à jour le guide dès que nous aurons terminé ce changement.

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.