Le but de ce tutoriel est de faire le premier pas vers la configuration d’un serveur de mail. Il est fortement conseillé de lire l’article sur Amavis et Clamav pour la partie antivirus, puis l’article sur Spamassassin pour l’anti-spam. La sécurisation d’un serveur de mail est une question complexe, et il vous faudra de longues heures pour arriver au résultat que vous attendez. Cette série de 3 articles vous proposera la méthode que j’utilise sur mon serveur de mail, compromis difficile entre la simplicité de configuration et la sécurisation maximale.
Notez que ce tutoriel ne correspond qu’à mes besoins, qui sont de lire mes mails générés par le serveur pour surveiller ce que me raconte la machine. J’indiquerai autant que possible ce qu’il vous faudra modifier pour avoir un serveur complet, et essaierai de vous expliquer au maximum les paramètres manipulés (très nombreux).
Cet article va s’attacher à la configuration d’un serveur de mail Postfix pour la gestion et l’envoi de mail, et d’un serveur de récupération de mail Dovecot.
Un serveur de cache DNS - optionnel
Un serveur de mail utilise beaucoup de requêtes DNS. Il est donc judicieux de mettre en place un serveur de cache DNS pour stocker en local les réponses et ainsi minimiser le traffic réseau. Je vous invite donc à lire cet article sur la configuration d’un cache DNS local.
Installation de Postfix
L’installation de Postfix va supprimer Exim, un autre serveur de mail, ce qui n’est pas très grave.
Note : En désinstallant Postfix pour les besoin de ce tutoriel, je me suis aperçu qu’il supprimant également le paquet « mysql-server » ! Sachez toutefois qu’il suffit de réinstaller ce paquet pour que tout rentre dans l’ordre.
fichier de configuration “/etc/postfix/main.cf”
Vous devez renseigner quelques éléments importants comme le nom d’hôte :
myhostname = sd-10602.dedibox.fr
Le nom de domaine utilisé pour l’envoi des mail depuis cette machine :
#domain to use when this machine send a mail :
myorigin = $myhostname
Les domaines autorisés pour l’envoi de mail par ce serveur. Ici je met seulement des domaines locaux :
#This machine will accept mail from those domains
mydestination = sd-10602.dedibox.fr, localhost.dedibox.fr, localhost
La manière d’envoyer les mail, soit directement sur le net (on ne met rien), ou via le SMTP de votre FAI :
#deliver mail directly (none) or via isp (smtp.isp.tld)
relayhost =
Domaines source autorisés pour le relai de mail par ce serveur (ici, seulement les mail locaux) :
#networks that this machine will relay mail :
mynetworks = 127.0.0.0/8
Idem pour les domaines de destination (ici, pas de restriction, ce serveur va relayer tout mail partant de localhost et allant vers n’importe quelle destination) :
#destination domains filter for relaying mail :
relay_domains =
La structure de stockage des mail sur la machine. J’utilise "Maildir" pour avoir un fichier unique par mail (pour cela, on ajoute un ’/’) :
#Structure of local mail directory :
# '/' means maildir format (1mail = 1file)
home_mailbox = Courriel/
Voila, maintenant testons cette configuration en utilisant l’utililaire "mail" :
# /etc/init.d/postfix reload
Reloading Postfix configuration...done.
# mail root
Subject: testit
This is a test mail
<ctrl-D>
Cc:
# ls /home/<user>/Courriel/
cur new tmp
Postfix a bien créé l’arborescence "Maildir/".
Vous pourrez vérifier les traces de postfix facilement :
# tail -f /var/log/mail.{err,log,info}
Installation de Dovecot
# apt-get install dovecot
Paramétrage
Nous allons configurer Dovecot pour fournir les mail via IMAP aux clients. IMAP permet de conserver les mail sur le serveur, qui seront ainsi lisibles depuis n’importe où contrairement à POP. Editez le fichier "/etc/dovecot/dovecot.conf" :
imaps_listen = *
Le serveur va écouter les demandes de connexions IMAP de partout. Il faut également informer Dovecot où trouver les mails :
default_mail_env = maildir:/home/%u/Courriel
Profitez en pour personnaliser les logs :
log_path = /var/log/dovecot.err
info_log_path = /var/log/dovecot.info
Enfin, rechargez Dovecot :
# /etc/init.d/dovecot reload
Tester sa configuration :
Maintenant, installer sur un poste distant un client mail, configurez le pour aller chercher les mails sur votre serveur. Vérifiez que vous recevez bien le mail que vous avez écrit tout à l’heure.