Serveur de messagerie · 5 min read · Jan 06, 2026
Utilisateurs et domaines virtuels avec Postfix, Courier, MySQL et SquirrelMail (Mandriva 2008.1)
Utilisateurs et domaines virtuels avec Postfix, Courier, MySQL et SquirrelMail (Mandriva 2008.1)
Version 1.0
Auteur : Falko Timme
Ce tutoriel est Copyright (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é à 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 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 2008.1 (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.1. Veuillez omettre le chapitre 6.3 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 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-devel rpm-build2 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
mkdir rpm
wget ftp://wftp.tu-chemnitz.de/pub/linux/mandrakelinux/official/2008.1/SRPMS/main/release/postfix-2.5.1-2mdv2008.1.src.rpm
rpm -ivh postfix-2.5.1-2mdv2008.1.src.rpmLa dernière commande affichera quelques avertissements que vous pouvez ignorer :
warning: user mandrake does not exist - using root
warning: group mandrake does not exist - using rootMaintenant, nous patchons les sources de Postfix avec le patch postfix-2.5.1-vda-ng (de http://vda.sourceforge.net/) :
cd /usr/src/rpm/SOURCES
tar xvfz postfix-2.5.1.tar.gz
wget http://vda.sourceforge.net/VDA/postfix-2.5.1-vda-ng.patch.gz
gunzip postfix-2.5.1-vda-ng.patch.gz
cd postfix-2.5.1
patch -p1 < ../postfix-2.5.1-vda-ng.patch
cd ..
mv postfix-2.5.1.tar.gz postfix-2.5.1.tar.gz_orig
tar -pczf postfix-2.5.1.tar.gz postfix-2.5.1/
rm -fr postfix-2.5.1/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 4712
-rw-r--r-- 1 root root 275303 2008-04-11 16:22 libpostfix1-2.5.1-2mdv2008.1.i586.rpm
-rw-r--r-- 1 root root 1822571 2008-04-11 16:22 postfix-2.5.1-2mdv2008.1.i586.rpm
-rw-r--r-- 1 root root 2608569 2008-04-11 16:22 postfix-debug-2.5.1-2mdv2008.1.i586.rpm
-rw-r--r-- 1 root root 27341 2008-04-11 16:22 postfix-ldap-2.5.1-2mdv2008.1.i586.rpm
-rw-r--r-- 1 root root 22208 2008-04-11 16:22 postfix-mysql-2.5.1-2mdv2008.1.i586.rpm
-rw-r--r-- 1 root root 22150 2008-04-11 16:22 postfix-pcre-2.5.1-2mdv2008.1.i586.rpm
-rw-r--r-- 1 root root 22266 2008-04-11 16:22 postfix-pgsql-2.5.1-2mdv2008.1.i586.rpm
[root@server1 i586]#D’abord désinstallez votre paquet Postfix actuel…
urpme postfix…puis sélectionnez les paquets postfix et postfix-mysql et installez-les comme ceci :
rpm -ivh postfix-2.5.1-2mdv2008.1.i586.rpm postfix-mysql-2.5.1-2mdv2008.1.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.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 inutilisable ! # #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 startMaintenant, vérifiez que le réseau est activé. Exécutez
netstat -tap | grep mysqlLa sortie devrait ressembler à ceci :
[root@server1 i586]# netstat -tap | grep mysql
tcp 0 0 *:mysql-im *:* LISTEN 13537/mysqlmanager
tcp 0 0 *:mysql *:* LISTEN 13545/mysqld
[root@server1 i586]#Ensuite, 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.