Serveur de messagerie · 5 min read · Sep 27, 2025

Utilisateurs et domaines virtuels avec Postfix, Courier, MySQL et SquirrelMail (Mandriva 2009.1 x86_64)

Utilisateurs et domaines virtuels avec Postfix, Courier, MySQL et SquirrelMail (Mandriva 2009.1 x86_64)

Version 1.0
Auteur : Falko Timme

Ce tutoriel est Copyright (c) 2009 par Falko Timme. Il est dérivé d’un tutoriel de Christoph Haas que vous pouvez trouver sur http://workaround.org. Vous êtes libre d’utiliser ce tutoriel sous la licence Creative Commons 2.5 ou toute version ultérieure.

Ce document décrit comment installer un serveur de messagerie Postfix basé sur des utilisateurs et des domaines virtuels, c’est-à-dire des utilisateurs et des domaines qui se trouvent dans une base de données MySQL. Je vais également démontrer l’installation et la configuration de Courier (Courier-POP3, Courier-IMAP), afin que Courier puisse s’authentifier contre la même base de données MySQL utilisée par Postfix.

Le serveur Postfix résultant est capable de SMTP-AUTH et TLS et quota (le quota n’est pas intégré dans Postfix par défaut, je vais montrer comment patcher votre Postfix en conséquence). Les mots de passe sont stockés sous forme chiffrée dans la base de données (la plupart des documents que j’ai trouvés traitaient des mots de passe en texte clair, ce qui représente un risque de sécurité). En plus de cela, ce tutoriel couvre l’installation de Amavisd, SpamAssassin et ClamAV afin que les e-mails soient scannés pour le spam et les virus. Je vais également montrer comment installer SquirrelMail comme interface de webmail afin que les utilisateurs puissent lire et envoyer des e-mails et changer leurs mots de passe.

L’avantage d’une telle configuration “virtuelle” (utilisateurs et domaines virtuels dans une base de données MySQL) est qu’elle est beaucoup plus performante qu’une configuration basée sur de “vrais” utilisateurs système. Avec cette configuration virtuelle, votre serveur de messagerie peut gérer des milliers de domaines et d’utilisateurs. De plus, il est plus facile à administrer car vous n’avez qu’à vous occuper de la base de données MySQL lorsque vous ajoutez de nouveaux utilisateurs/domaines ou modifiez des existants. Plus besoin de commandes postmap pour créer des fichiers db, plus besoin de recharger Postfix, etc. Pour l’administration de la base de données MySQL, vous pouvez utiliser des outils basés sur le web comme phpMyAdmin qui seront également installés dans ce guide. Le troisième avantage est que les utilisateurs ont une adresse e-mail comme nom d’utilisateur (au lieu d’un nom d’utilisateur + une adresse e-mail) ce qui est plus facile à comprendre et à retenir.

Ce tutoriel est basé sur Mandriva 2009.1 (x86_64). Vous devriez déjà avoir configuré un système Mandriva de base, comme décrit dans les chapitres 1 à 7 de ce tutoriel : https://www.howtoforge.com/perfect-server-mandriva-2009.1-free-x86_64-ispconfig-2. Veuillez omettre le chapitre 6.1 Création d’un script de mise à jour automatique, car s’il y a une mise à jour de Postfix, cela remplacera notre Postfix personnalisé que nous allons construire dans le chapitre 3 !

Ce guide est destiné à être un guide pratique ; il ne couvre pas les bases théoriques. Elles sont traitées dans de nombreux autres documents sur le web.

Ce document est fourni sans garantie d’aucune sorte ! Je tiens à dire que ce n’est pas la seule façon de configurer un tel système. Il existe de nombreuses façons d’atteindre cet objectif, mais c’est la méthode que je choisis. Je ne donne aucune garantie que cela fonctionnera pour vous !

Remarque préliminaire

Le système doit avoir une adresse IP statique. J’utilise 192.168.0.100 comme mon adresse IP dans ce tutoriel et server1.example.com comme nom d’hôte.

1 Installer Apache, MySQL, phpMyAdmin

Tout d’abord, nous mettons à jour notre base de données de paquets :

urpmi.update -a

Nous pouvons installer les paquets avec une seule commande :

urpmi MySQL MySQL-client lib64mysql-devel phpmyadmin db4-devel html2text lib64sasl-devel openssl-devel openldap-devel pcre-devel postgresql8.3-devel rpm-build

2 Installer Courier et Saslauthd

Pour installer Courier et saslauthd, nous exécutons simplement :

urpmi courier-authlib courier-authlib-mysql courier-imap courier-pop cyrus-sasl lib64sasl2 lib64sasl2-devel lib64sasl2-plug-plain lib64sasl2-plug-anonymous lib64sasl2-plug-crammd5 lib64sasl2-plug-digestmd5 lib64sasl2-plug-gssapi lib64sasl2-plug-login

3 Appliquer le patch de quota à Postfix

Nous devons obtenir le rpm source de Postfix, le patcher avec le patch de quota, construire un nouveau paquet rpm Postfix et l’installer.

cd /usr/src  
wget ftp://wftp.tu-chemnitz.de/pub/linux/mandrakelinux/official/2009.1/SRPMS/main/release/postfix-2.5.6-4mdv2009.1.src.rpm  
rpm -ivh postfix-2.5.6-4mdv2009.1.src.rpm

La dernière commande affichera quelques avertissements que vous pouvez ignorer :

warnings: user mandrake does not exist - using root  
warnings: group mandrake does not exist - using root

Maintenant, nous patchons les sources de Postfix avec le patch postfix-2.5.6-vda-ng (de http://vda.sourceforge.net/) :

cd /root/rpmbuild/SOURCES  
tar xvfz postfix-2.5.6.tar.gz  
wget http://vda.sourceforge.net/VDA/postfix-2.5.6-vda-ng.patch.gz  
gunzip postfix-2.5.6-vda-ng.patch.gz  
cd postfix-2.5.6  
patch -p1 < ../postfix-2.5.6-vda-ng.patch  
cd ..  
mv postfix-2.5.6.tar.gz postfix-2.5.6.tar.gz_orig  
tar -pczf postfix-2.5.6.tar.gz postfix-2.5.6/  
rm -fr postfix-2.5.6/

Ensuite, nous construisons notre nouveau paquet rpm Postfix avec support de quota et MySQL :

cd /root/rpmbuild/SPECS/  
rpmbuild -ba postfix.spec

Notre paquet rpm Postfix est créé dans /root/rpmbuild/RPMS/x86_64, donc nous y allons :

cd /root/rpmbuild/RPMS/x86_64

La commande

ls -l

vous montre les paquets disponibles :

[root@server1 x86_64]# ls -l  
total 3304  
-rw-r--r-- 1 root root  225752 2009-10-07 15:49 lib64postfix1-2.5.6-4mdv2009.1.x86_64.rpm  
-rw-r--r-- 1 root root 1273469 2009-10-07 15:49 postfix-2.5.6-4mdv2009.1.x86_64.rpm  
-rw-r--r-- 1 root root 1746832 2009-10-07 15:49 postfix-debug-2.5.6-4mdv2009.1.x86_64.rpm  
-rw-r--r-- 1 root root   29372 2009-10-07 15:49 postfix-ldap-2.5.6-4mdv2009.1.x86_64.rpm  
-rw-r--r-- 1 root root   24616 2009-10-07 15:49 postfix-mysql-2.5.6-4mdv2009.1.x86_64.rpm  
-rw-r--r-- 1 root root   24846 2009-10-07 15:49 postfix-pcre-2.5.6-4mdv2009.1.x86_64.rpm  
-rw-r--r-- 1 root root   24691 2009-10-07 15:49 postfix-pgsql-2.5.6-4mdv2009.1.x86_64.rpm  
[root@server1 x86_64]#

D’abord, désinstallez votre paquet Postfix actuel…

urpme postfix

…puis choisissez les paquets postfix et postfix-mysql et installez-les comme ceci :

rpm -ivh postfix-2.5.6-4mdv2009.1.x86_64.rpm postfix-mysql-2.5.6-4mdv2009.1.x86_64.rpm

4 Définir les mots de passe MySQL et configurer phpMyAdmin

Par défaut, le réseau n’est pas activé dans le paquet MySQL de Mandriva 2009.1, mais le réseau est requis par ISPConfig. Nous pouvons changer cela en commentant la ligne skip-networking dans /etc/my.cnf :

vi /etc/my.cnf

| [...] # Ne pas écouter sur un port TCP/IP du tout. Cela peut être une amélioration de la sécurité, # si tous les processus qui ont besoin de se connecter à mysqld s'exécutent sur le même hôte. # Toute interaction avec mysqld doit se faire via des sockets Unix ou des pipes nommés. # Notez que l'utilisation de cette option sans activer les pipes nommés sous Windows # (via l'option "enable-named-pipe") rendra mysqld inutile ! # #skip-networking [...] |

Après cela, nous créons les liens de démarrage système pour Apache et MySQL…

chkconfig mysqld on  
chkconfig httpd on

… et démarrons les deux services :

/etc/init.d/mysqld start  
/etc/init.d/httpd start

Maintenant, vérifiez que le réseau est activé. Exécutez

netstat -tap | grep mysql

La sortie devrait ressembler à ceci :

[root@server1 x86_64]# netstat -tap | grep mysql  
tcp        0      0 *:mysql-im                  *:*                         LISTEN      14395/mysqlmanager  
tcp        0      0 *:mysql                     *:*                         LISTEN      14403/mysqld  
[root@server1 x86_64]#

Ensuite, exécutez

mysqladmin -u root password yourrootsqlpassword  
mysqladmin -h server1.example.com -u root password yourrootsqlpassword

pour définir un mot de passe pour l’utilisateur root (sinon, n’importe qui peut accéder à votre base de données MySQL !).

Maintenant, vous pouvez diriger votre navigateur vers http://server1.example.com/phpmyadmin/ ou http://192.168.0.100/phpmyadmin/ et vous connecter avec le nom d’utilisateur root et votre nouveau mot de passe root MySQL.

Share: X/Twitter LinkedIn

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

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