Serveur de messagerie · 3 min read · Sep 28, 2025
Utilisateurs et domaines virtuels avec Postfix, Courier et MySQL (Debian Etch)
Utilisateurs et domaines virtuels avec Postfix, Courier et MySQL (Debian Etch)
Version 1.0
Auteur : Falko Timme
Ce tutoriel est Copyright (c) 2007 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 basé sur Postfix qui repose 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 constitue 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 détecter les spams 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 des utilisateurs système “réels”. 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 à traiter que 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 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 aucune garantie ! 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 !
1 Remarque préliminaire
Ce tutoriel est basé sur Debian Etch, vous devez donc configurer une installation de base de Debian Etch avant de continuer avec ce tutoriel. 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.
2 Installer Postfix, Courier, Saslauthd, MySQL, phpMyAdmin
Pour installer Postfix, Courier, Saslauthd, MySQL et phpMyAdmin, nous exécutons simplement
apt-get install postfix postfix-mysql postfix-doc mysql-client mysql-server courier-authdaemon courier-authlib-mysql courier-pop courier-pop-ssl courier-imap courier-imap-ssl postfix-tls libsasl2 libsasl2-modules libsasl2-modules-sql sasl2-bin libpam-mysql openssl phpmyadmin apache2 libapache2-mod-php5 php5 php5-mysqlVous serez invité à répondre à quelques questions :
Créer des répertoires pour l’administration basée sur le web ? <– Non
Type général de configuration ? <– Site Internet
Nom de messagerie ? <– server1.example.com
Certificat SSL requis <– Ok
3 Appliquer le patch de quota à Postfix
Nous devons obtenir les sources de Postfix, les patcher avec le patch de quota, construire de nouveaux paquets Postfix.deb et installer ces paquets .deb :
apt-get install build-essential dpkg-dev fakeroot debhelper libgdbm-dev libldap2-dev libpcre3-dev libssl-dev libsasl2-dev postgresql-dev po-debconf dpatch libdb4.3-dev libmysqlclient15-dev lsb-release libcdb-devcd /usr/src
apt-get source postfix(Veuillez vous assurer d’utiliser la version correcte de Postfix dans les commandes suivantes. J’ai installé Postfix 2.3.8. Vous pouvez découvrir votre version de Postfix en exécutant
postconf -d | grep mail_versionLa sortie devrait ressembler à ceci :
server1:~# postconf -d | grep mail_version
mail_version = 2.3.8
milter_macro_v = $mail_name $mail_version)
wget http://vda.sourceforge.net/VDA/postfix-2.3.8-vda.patch.gz
gunzip postfix-2.3.8-vda.patch.gz
cd postfix-2.3.8
patch -p1 < ../postfix-2.3.8-vda.patch
dpkg-buildpackageVous pourriez voir un avertissement comme celui-ci à la fin de la commande dpkg-buildpackage :
(WARNING: Failed to sign .dsc and .changes file)Vous pouvez ignorer ce message.
Pour installer notre nouveau paquet Postfix, nous exécutons
cd ..
dpkg -i postfix_2.3.8-2_i386.deb
dpkg -i postfix-mysql_2.3.8-2_i386.debRecevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.