Académique Documents
Professionnel Documents
Culture Documents
Résumé :
Mise en place rapide d'un serveur de messagerie Postfix.
Pas trop de détails, mais un article rapide, à compléter au besoin.
Préambule
Je viens de faire dans ce titre un abus de language très courant.
Postfix n'est pas un serveur de messagerie complet, mais un serveur SMTP. SMTP est le protocole
de transport des messages sur Internet, mais ne permet pas aux clients messagerie (comme outlook
express ou thunderbird) de lire les emails.
Il faut pour cela un service POP3 ou IMAP.
Ce qui implique qu'il faut installer un logiciel complémentaire à Postfix, comme Dovecot, Cyrus IMAP,
ou Courier IMAP.
Ici j'utiliserai Dovecot, le serveur qui est choisi en standard par RedHat dans ses installations.
Introduction
Par défaut les distributions Redhat ou CentOS utilisent le serveur de messagerie sendmail.
Ce serveur est très fiable, mais a rencontré dans son histoire une quantité de bugs de sécurité
impressionnante.
Ceci est dû au fait que lors de sa conception, Internet était limité et la délinquance informatique
quasiment nulle.
Ce logiciel est donc souvent abandonné et remplacé par un autre logiciel plus fiable.
Dans la liste des serveurs SMTP, les plus courants sont postfix et qmail.
Je vais traiter ici de l'installation et la configuration de base de postfix, le serveur de mail qui
progresse le plus actuellement.
C'est lui que j'utilise pour installer postfix et system-switch-mail un utilitaire de changement de
service SMTP.
validation du choix
Validez le message.
rpm -e sendmail
System-swicth-mail ayant fait son travail, c'est maintenant postfix qui fonctionne sur votre serveur.
Installation de Dovecot
Comme pour postfix, on utilise yum.
chkconfig dovecot on
chkconfig postfix on # Inutile, mais on ne sait jamais...
Paramétrage de POSTFIX
Postfix étant un serveur SMTP, il va "écouter" sur le port standard 25.
Ceci est configuré dans le fichier master.cf, mais on va conserver ce paramètre.
Il faut donc, éditer le fichier /etc/postfix/main.cf pour modifier les valeurs par défaut importantes.
main.cf possède une pléthore de paramètres qu'il serait trop long de détailler.
Je vous conseille de lire le livre "Postfix La Référence - Auteur Kyle DENT - ed O'Reilly" qui comme
son nom l'indique est LA REFERENCE sur ce serveur SMTP.
Vous trouverez ce livre sur le site de la librairie EYROLLES
Ceci dit, seuls quelques uns doivent être adaptés pour correspondre à ses besoins.
myhostname = monserveur.mondomaine.fr
# Comme son intitulé l'indique, c'est le nom canonique du serveur de mail.
# Son nom complet en fait.
# Penser à renseigner ce nom avec la concordance avec son adresse ip dans le
# fichier /etc/hosts, sinon, postfix peut se comporter bizarrement.
mydomain = mondomaine.fr
# Le nom de domaine que va gérer postfix
myorigin = $mydomain
relayhost = [mailserver.isp.tld]
# Cette variable est très utile dans le cas où vous avez un serveur interne de
# messagerie inconnu d'Internet. Entrez entre crochets le nom du serveur
# sortant SMTP de votre Fournisseur d'accès, par exemple [smtp.wanadoo.fr].
# Les messages sortant sur Internet seront expédiés à ce serveur au lieu
# d'être émis en direct par votre serveur. Cela contourne les filtres antispam
# de certains serveurs de messagerie.
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
# Valeurs par défaut du fichier aliases.
# Pour avoir plus d'informations, jettez un oeil au "man aliases"
# Ce fichier sert à créer des comptes virtuels et à indiquer au système qui
# est l'administrateur de messagerie qui recevra les messages d'erreur du
# serveur.
Lorsqu'un serveur de mail veut envoyer un email, il doit savoir avec quel serveur il doit parler et où
se trouve ce serveur.
Pour cela il fait comme nous pour la poste il consulte un annuaire Internet nommé DNS.
DNS est un annuaire "éclaté". 13 serveurs "racines" servent la zone "." et interrogent ensuite d'autres
serveurs DNS gérant un domaine en particulier.
Un nom DNS "complet" s'écrit comme ceci mail.caplaser.fr. et un serveur DNS fait sa recherche de
droite à gauche comme ceci :
"." # Interrogation des serveurs "racine" pour connaître les serveurs gérant la zone fr
"fr" # Interrogation des serveurs de zone fr afin de savoir quel serveur gère la zone caplaser.fr
"caplaser.fr" # Interrogation du serveur DNS de Caplaser afin de savoir quelle est l'adresse IP de la
machine mail.caplaser.fr
Ceci est la façon de chercher une machine avec son nom sur Internet, mais qu'en est-il des serveurs
de messagerie en particulier ?
DNS fourni un enregistrement particulier nommé MX pour Mail eXchanger qui référence le(s) nom(s)
du(des) serveur(s) de messagerie pour le domaine en question.
On peut voir quels serveurs gèrent un domaine avec la commande linux host.
[root@centOS ~]# host -t mx caplaser.com
caplaser.com mail is handled by 20 mx2.caplaser.fr.
caplaser.com mail is handled by 10 mail.caplaser.com.
host fait une requête DNS qui renvoie uniquement les champs MX pour le domaine demandé,
caplaser.com dans ce cas.
passwd toto
Il vous sera demandé son mot de passe, puis une confirmation de ce dernier.
userdel -r toto
passwd -l toto
passwd -u toto
passwd le_nom_du_compte
Test de la messagerie
Vous pouvez envoyer un email de test en ligne de commande comme ceci ( exemple pour un email
à toto ) :
Il ne vous reste plus qu'à faire du POP avec les paramètres du compte toto pour lire votre mail.
Débug de postfix
En cas de problèmes de messagerie, pensez à lire les logs ! C'est standard sur Linux, mais on oublie
souvent.
Faites un "tail -f /var/log/maillog" pour voir les messages en temps réel, ou utilisez grep pour
rechercher une chaîne de caractères.
Une fois que vous avez le message d'erreur, essayez de le comprendre, et en désespoir de cause,
jetez un oeil sur www.google.fr
Ce moteur de recherche est phénoménal, et vous permet de faire des recherches sur des forums,
qui sont souvent très bien renseignés sur le sujet.
Ne vous inquiétez pas, si vous avez une erreur, il y a peu de chances que d'autres personnes ne les
aient pas eu.