Ce billet n’a pas pour vocation de remplacer la doc ou de couvrir les différents cas d’utilisation qu’il est possible de rencontrer avec Postfix et Dovecot. Cela couvre une utilisation relativement simple permettant de mettre en place le minimum requis par un serveur smtp. L’installation est faite sur une OpenSuse 10.2 et n’utilise pas de base de données pour gérer les utilisateurs.
Voici dans un premier temps le paramétrage de Postfix. Le paramétrage de dovecot viendra dans un second temps…
Tout d’abord, spécifiquement pour la Suse, il faut demander à Yast de ne plus gérer lui-même Postfix.
Système / Editeur pour fichier /etc/sysconfig / Network / Mail / General / MAIL_CREATE_CONFIG = no
Voici ensuite les différents paramètres à renseigner dans le fichier /etc/postfix/main.cf
myhostname = <Nom du serveur>
par exemple : smtp.mondomaine.fr
mydomain = <domaine principal>
par exemple : mondomaine.fr
mydestination = $myhostname, localhost.$mydomain, localhost, <nomserveurinterne>
Dans mon cas, je veux pouvoir router certains mails via une adresse précise correspondant à un alias de smtp.mondomaine.fr. Par exemple, smtp.domaineinterne.com
virtual_mailbox_domains = <liste de domaines>
Par exemple, mondomaine.fr, seconddomaine.com, serveurmail.mondomaine.fr
Dans mon cas, je renseigne cette liste en utilisant virtual_mailbox_domains et non pas virtual_alias_domains car j’utilise la possibilité de gérer des utilisateurs virtuels (qui ne sont pas des utilisateurs déclarés sur mon serveur linux).
virtual_alias_maps = hash:/etc/postfix/virtual
Le fichier virtual contient la liste de mes redirections vers d’autres emails ou vers des utilisateurs système
virtual_mailbox_maps = hash:/etc/postfix/vmailbox
Le fichier vmailbox contient la liste de mes redirections vers mes utilisateurs virtuels
virtual_mailbox_base = /home/vmail
Définit le répertoire contenant les boites des utilisateurs virtuels
virtual_minimum_uid = 500
virtual_uid_maps = static:3000
virtual_gid_maps = static:3000
Les boites mails virtuelles doivent appartenir à un compte et un groupe ayant l’id 3000 (par exemple vmail)
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_sasl_security_options = noanonymous
Le smtp autorise l’accès sasl pour les utilisateurs non anonymes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
Cet accès sasl est géré par dovecot
smtpd_recipient_restrictions = permit_mynetworks, reject_non_fqdn_recipient, permit_sasl_authenticated, reject_unauth_destination
On utilise les utilisateurs du réseau interne et les utilisateurs authentifiés
mynetworks = 192.168.1.0/24
Définition du réseau local interne
home_mailbox = Maildir/
Les boites sont gérés en format Maildir (un répertoire par boite et non pas un fichier). Le / est important…
Exemple de fichier virtual
nom@mondomaine.fr userlinux
autre@mondomaine.fr autre@hotmail.f
Exemple de fichier vmailbox
user1@mondomaine.fr user1/
Cela signifie que les mails reçus par user1@mondomaine.fr seront stocké dans la boit user1 au format Maildir (grâce à la présence du / ) dans le répertoire user1 (qui sera lui-même situé sous /home/vmail).
Important : Ces deux fichiers doivent être « recompilés » avec l’outil postmap après chaque modification afin de mettre à jour les .db respectifs.
Voilà, le postfix doit en principe être fonctionnel, et les règles d’anti-relaying en place si les domaines et noms de serveurs correctement renseignés. Il est important de bien tester cette partie sous peine de rapidement avoir un serveur qui croulera sous le trafic de spams :-/
Prochain épisode, le paramétrage de Dovecot permettant de relever le courrier mais également d’authentifier nos utilisateurs pour l’envoi des mails.