Serveur de messagerie · 5 min read · Oct 29, 2025
Utilisateurs et domaines virtuels avec Postfix, Courier, MySQL et SquirrelMail (Mandriva 2010.0 x86_64)
Utilisateurs et domaines virtuels avec Postfix, Courier, MySQL et SquirrelMail (Mandriva 2010.0 x86_64)
Version 1.0
Auteur : Falko Timme
Suivez-moi sur Twitter
Ce tutoriel est protégé par le droit d’auteur (c) 2010 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 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 2010.0 (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-2010.0-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 -aNous 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.4-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 lib64sasl2 lib64sasl2-devel lib64sasl2-plug-plain lib64sasl2-plug-anonymous lib64sasl2-plug-crammd5 lib64sasl2-plug-digestmd5 lib64sasl2-plug-gssapi lib64sasl2-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://wftp.tu-chemnitz.de/pub/linux/mandrakelinux/official/2010.0/SRPMS/main/release/postfix-2.6.5-2mdv2010.0.src.rpm
rpm -ivh postfix-2.6.5-2mdv2010.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.6.5-vda-ng (de http://vda.sourceforge.net/) :
cd /root/rpmbuild/SOURCES
tar xvfz postfix-2.6.5.tar.gz
gunzip postfix-2.6.5-vda-ng.patch.gz
cd postfix-2.6.5
patch -p1 < ../postfix-2.6.5-vda-ng.patch
cd ..
mv postfix-2.6.5.tar.gz postfix-2.6.5.tar.gz_orig
tar -pczf postfix-2.6.5.tar.gz postfix-2.6.5/
rm -fr postfix-2.6.5/
gzip postfix-2.6.5-vda-ng.patchEnsuite, nous construisons notre nouveau paquet rpm Postfix avec support de quota et MySQL :
cd /root/rpmbuild/SPECS/
rpmbuild -ba postfix.specNotre paquet rpm Postfix est créé dans /root/rpmbuild/RPMS/x86_64, donc nous y allons :
cd /root/rpmbuild/RPMS/x86_64La commande
ls -lvous montre les paquets disponibles :
[root@server1 x86_64]# ls -l
total 3388
-rw-r--r-- 1 root root 230449 2010-03-08 17:29 lib64postfix1-2.6.5-2mdv2010.0.x86_64.rpm
-rw-r--r-- 1 root root 1351340 2010-03-08 17:29 postfix-2.6.5-2mdv2010.0.x86_64.rpm
-rw-r--r-- 1 root root 1763590 2010-03-08 17:29 postfix-debug-2.6.5-2mdv2010.0.x86_64.rpm
-rw-r--r-- 1 root root 30266 2010-03-08 17:29 postfix-ldap-2.6.5-2mdv2010.0.x86_64.rpm
-rw-r--r-- 1 root root 25460 2010-03-08 17:29 postfix-mysql-2.6.5-2mdv2010.0.x86_64.rpm
-rw-r--r-- 1 root root 25617 2010-03-08 17:29 postfix-pcre-2.6.5-2mdv2010.0.x86_64.rpm
-rw-r--r-- 1 root root 25476 2010-03-08 17:29 postfix-pgsql-2.6.5-2mdv2010.0.x86_64.rpm
[root@server1 x86_64]#Tout 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.6.5-2mdv2010.0.x86_64.rpm postfix-mysql-2.6.5-2mdv2010.0.x86_64.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 2010.0, 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 doivent 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 sur Windows # (via l'option "enable-named-pipe") rendra mysqld inutile ! # #skip-networking [...] |
Ensuite, 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 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 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.