Serveur de messagerie · 5 min read · Jan 26, 2026
Utilisateurs et domaines virtuels avec Postfix, Courier et MySQL (Mandriva 2008.0)
Utilisateurs et domaines virtuels avec Postfix, Courier et MySQL (Mandriva 2008.0)
Version 1.0
Auteur : Falko Timme
Ce tutoriel est protégé par le droit d’auteur (c) 2008 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 est 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.
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 2008.0 (i386). 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_2008.0.
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 adresse IP dans ce tutoriel et server1.example.com comme nom d’hôte.
1 Installer Apache, MySQL, phpMyAdmin
Tout cela peut être installé avec une seule commande :
urpmi MySQL MySQL-client libmysql15-devel phpmyadmin db4-devel html2text libsasl-devel openssl-devel openldap-devel pcre-devel postgresql-devel2 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 libsasl2 libsasl2-devel libsasl2-plug-plain libsasl2-plug-anonymous libsasl2-plug-crammd5 libsasl2-plug-digestmd5 libsasl2-plug-gssapi libsasl2-plug-login3 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://ftp.uni-bayreuth.de/pub/linux/Mandrakelinux/official/2008.0/SRPMS/main/release/postfix-2.4.5-2mdv2008.0.src.rpm
rpm -ivh postfix-2.4.5-2mdv2008.0.src.rpmLa 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 rootMaintenant, nous patchons les sources de Postfix avec le patch postfix-2.4.5-vda-ng (de http://vda.sourceforge.net/) :
cd /usr/src/rpm/SOURCES
tar xvfz postfix-2.4.5.tar.gz
wget http://vda.sourceforge.net/VDA/postfix-2.4.5-vda-ng.patch.gz
gunzip postfix-2.4.5-vda-ng.patch.gz
cd postfix-2.4.5
patch -p1 < ../postfix-2.4.5-vda-ng.patch
cd ..
mv postfix-2.4.5.tar.gz postfix-2.4.5.tar.gz_orig
tar -pczf postfix-2.4.5.tar.gz postfix-2.4.5/
rm -fr postfix-2.4.5/Ensuite, nous construisons notre nouveau paquet rpm Postfix avec support de quota et MySQL :
cd /usr/src/rpm/SPECS/
rpmbuild -ba postfix.specNotre paquet rpm Postfix est créé dans /usr/src/rpm/RPMS/i586, donc nous y allons :
cd /usr/src/rpm/RPMS/i586La commande
ls -lvous montre les paquets disponibles :
[root@server1 i586]# ls -l
total 4552
-rw-r--r-- 1 root root 264550 2008-01-04 19:36 libpostfix1-2.4.5-2mdv2008.0.i586.rpm
-rw-r--r-- 1 root root 1746569 2008-01-04 19:36 postfix-2.4.5-2mdv2008.0.i586.rpm
-rw-r--r-- 1 root root 2540076 2008-01-04 19:36 postfix-debug-2.4.5-2mdv2008.0.i586.rpm
-rw-r--r-- 1 root root 24970 2008-01-04 19:36 postfix-ldap-2.4.5-2mdv2008.0.i586.rpm
-rw-r--r-- 1 root root 20132 2008-01-04 19:36 postfix-mysql-2.4.5-2mdv2008.0.i586.rpm
-rw-r--r-- 1 root root 20154 2008-01-04 19:36 postfix-pcre-2.4.5-2mdv2008.0.i586.rpm
-rw-r--r-- 1 root root 20196 2008-01-04 19:36 postfix-pgsql-2.4.5-2mdv2008.0.i586.rpm
[root@server1 i586]#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.4.5-2mdv2008.0.i586.rpm postfix-mysql-2.4.5-2mdv2008.0.i586.rpm4 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 2008, 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 qu'utiliser 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 démarrons MySQL :
/etc/init.d/mysqld startVérifiez maintenant que le réseau est activé. Exécutez
netstat -tap | grep mysqlLa sortie devrait ressembler à ceci :
[root@server1 var]# netstat -tap | grep mysql
tcp 0 0 *:mysql-im *:* LISTEN 5697/mysqlmanager
tcp 0 0 *:mysql *:* LISTEN 5705/mysqldEnsuite, exécutez
mysqladmin -u root password yourrootsqlpassword
mysqladmin -h server1.example.com -u root password yourrootsqlpasswordpour 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.
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.