Serveur mail postfix / postfix-mysql / Dovecot / RoundCube / spamassassin sous CentOS 5
Par llaumgui le lundi 6 août 2007, 21:24 - Linux - Lien permanent
Après le passage de Scenario-PaintBall sur un serveur dédié (spb-box), je me suis lancé dans la configuration du serveur mail. Pour rappel, le serveur est une dedibox sous CentOS 5.
Afin de pouvoir gérer plusieurs domaines et plusieurs comptes facilement, postfix est configuré en multi-domaines et virtual-user et afin d'ajouter facilement des comptes, les informations sont stockées en base MySQL via postfix-mysql.
Architecture du serveur mail
Connaissant bien postfix (personnellement et professionnellement, bien que nos derniers serveurs au taf soient sous Exim) et ayant déjà configuré postfix pour l'envoi de mail via php, c'est donc tout naturellement que j'ai retenu cette solution couplée à un Dovecot, un spamassassin et un webmail sous le très prometteur RoundCube.
postfix
Bien que pour le moment il n'y ai qu'un seul domaine géré par le serveur, j'ai choisis de faire une configuration multi-domaines et virtual-user (sans passer par des comptes unix).
Les mails sont donc dans un compte Unix unique : vbox; et ils sont stockés dans un arborescence du type : /home/vbox/domain/compte.
Je mets mon fichier main.cf en annexe.
postfix-mysql et CentOS
Alors là j'ai perdu pas mal de temps. Le postfix de CentOS n'est pas compilé avec l'option MySQL et il n'y a pas de paquet postfix-mysql pour CentOS ! Heureusement Google est mon ami et j'ai trouvé la solution : prendre le postfix de centosplus (présent de base dans CentOS mais pas activé par défaut) :
yum -–enablerepo=centosplus update postfix
Pour éviter de mettre à jour postfix à partir de updates j'ai juste rajouté postfix* dans la liste des paquets exclus (fichier .repo en annexe). Comme j'ai activé centosplus par défaut, j'ai aussi exclus le kernel de centosplus pour privilégier celui d'updates et ainsi éviter les problèmes.
Postfix-mysql
Ce qui est génial avec postfix-mysql, c'est qu'on construit ses requêtes ! On peu donc attaquer n'importe quel structure de base existante ou en faire une soit même. J'ai mis en annexe mes fichiers de conf' ainsi que la structure de ma base.
Dovecot
Maintenant que les mails sont sur le serveur, faudrait pouvoir les lire ! J'ai donc utilisé l'excellent Dovecot pour me faire un serveur IMAP.
Sa configuration est simple, je me suis basé sur ce tutoriel.
Afin de pouvoir attaquer le serveur mail avec un client du type ThunderBird, ne pas oublier d'ouvrir le port IMAP, le 143 (perso, je passe par le tui system-config-securitylevel-tui).
RoundCube
Excellent et très prometteur projet encore au stade de la O.1 RC1 et disponible dans le dépot EPEL. Ça configuration passe comme une lettre à la poste !
Spamassassin
Pour installer spamassassin rien de tel qu'un petit yum install spamassassin (installation), suivi d'un service spamassassin start (démarrage du service) ainsi que d'un chkconfig spamassassin on (lancer au démarrage) et surtout une lecture de la doc.
Script de création de comptes mail
Histoire de créer facilement des comptes mails, je me suis fait 3 petits scripts tout simples que je vous livre en tant que démo.
Remarque : Ces script sont appelés en root et j'ai un fichier /root/.my.cf contenant le mot de passe MySQL du root, ce mot de pase ne m'est donc plus demandé.

Commentaires
par joserivas
Juste pour vous prévenir que le répértoire
http://www.llaumgui.com/public/file... censé contenir des fichiers de config postfix, est vide.
A+
par LLaumgui
C'est réparé
par falcon
une petite note pour signaler qu'il faut ajouter l'option -p dans la commande mkdir du fichier de script mailadd_mailbox. En effet si seul le répertoire vbox est créé à l'origine, il va y avoir un problème.
J'en profite pour remercier l'auteur de tout ce travail mis à disposition.
par djoni
salut, est ce que tu a plus de detail sur roundcube car je ne trouve rien pour faire une bon config de roundcube .
je ne trouve pas de tuto ? pourrai tu me detaillé roundcube ?
merci
par LLaumgui
Le fichier de conf' est assez bien détaillé... Ensuite il y a le wiki sur le site. Mais faut quand même savoir qu'on est en présence d'une version 0.1 RC2...