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 portmapLe 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 /vmailVous devriez maintenant avoir accès au partage /vmail depuis files-1. Essayez d’écrire un fichier :
# cd /vmail
# touch tmpCela 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 /vmailEt 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 0Allez-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-mysqlOn 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 -pEnsuite, 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.sqlSi 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.sqlMaintenant, 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.
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.