wiki.debian-fr.xyz Open in urlscan Pro
95.216.2.96  Public Scan

URL: https://wiki.debian-fr.xyz/Configuration_d%27un_serveur_mail_avec_Postfix
Submission: On October 21 via manual from FR — Scanned from DE

Form analysis 1 forms found in the DOM

/index.php

<form action="/index.php" id="searchform">
  <div id="simpleSearch">
    <input type="search" name="search" placeholder="Le Wiki de debian-fr.xyz durchsuchen" title="Le Wiki de debian-fr.xyz durchsuchen [alt-shift-f]" accesskey="f" id="searchInput" autocomplete="off" class="webfonts-changed"><input type="hidden"
      value="Spécial:Recherche" name="title" class="webfonts-changed"><input type="submit" name="go" value="Seite" title="Gehe direkt zu der Seite mit genau diesem Namen, falls sie vorhanden ist." id="searchButton"
      class="searchButton webfonts-changed">
  </div>
</form>

Text Content

CONFIGURATION D'UN SERVEUR MAIL AVEC POSTFIX

Aus Le Wiki de debian-fr.xyz


Zur Navigation springen Zur Suche springen


INHALTSVERZEICHNIS

 * 1 Configuration d'un serveur mail avec postfix
 * 2 Une adresse mail, c'est quoi ?
   * 2.1 kevin@wanadoo.fr
   * 2.2 Identifier le serveur mail de wanadoo.fr
 * 3 Prérequis
   * 3.1 Configurer le serveur DNS
     * 3.1.1 Le champ A
     * 3.1.2 Le champ MX
     * 3.1.3 Un exemple de configuration de DNS chez gandi.net
     * 3.1.4 Configuration chez OVH
   * 3.2 Vérifications
     * 3.2.1 Vérification si vous disposez d'un DNS local
 * 4 Ouverture des ports
 * 5 Installation de postfix
 * 6 Configuration
 * 7 Création d'un nouveau mail
 * 8 Tester l'adresse en local
 * 9 Kevin veut lire ses mails !!
 * 10 Kevin veut envoyer des mails !!
   * 10.1 Utiliser le SMTP de son FAI
   * 10.2 Utiliser le SMTP de Postfix
   * 10.3 Login... Passwd...
     * 10.3.1 Sous Debian Squeeze (6.0) avec Dovecot 1.x
     * 10.3.2 Sous Debian Wheezy (7.0) avec Dovecot 2.x
   * 10.4 Chiffrement STARTTLS
 * 11 Ressources


CONFIGURATION D'UN SERVEUR MAIL AVEC POSTFIX

Vous ne voulez plus confier vos mails à Gmail, Yahoo ou Hotmail ?

Vous aimeriez héberger vos mails chez vous mais vous pensez que c'est trop dur,
trop compliqué ?

Vous pensez qu'il faut être ingénieur pour monter un serveur mail ?

Que nenni !! Nous allons voir dans ce tuto la mise en place d'un serveur mail
avec Postfix dans le cadre d'une utilisation personnelle.

Il ne s'agit pas ici de concurrencer Gmail ou Yahoo mais bien d'avoir notre
petite boîte mail bien à nous. Faite avec amour. Et qui marche !!

Ici, pas de gestion par base SQL ou annuaire LDAP, je vais tâcher de faire le
plus simple possible.

C'est parti !!


UNE ADRESSE MAIL, C'EST QUOI ?


KEVIN@WANADOO.FR

Une adresse mail, c'est un peu comme une adresse postale. Elle se divise en 2
parties :

 * un domaine : wanadoo.fr
 * un utilisateur : kevin

Dans mon exemple, lorsque l'on écrit à Kevin via l'adresse kevin@wanadoo.fr,
cela signifie que l'on écrit à l'utilisateur kevin du domaine wanadoo.fr.

Plus précisément, le mail arrive sur la machine sur laquelle se trouve le
serveur mail de wanadoo.fr, pour être ensuite remis dans la boîte mail de
l'utilisateur kevin.


IDENTIFIER LE SERVEUR MAIL DE WANADOO.FR

Wanadoo.fr, c'est le domaine. Le service mail se trouve quant à lui sur une
machine bien precise. Pour l'identifier, une commande bien pratique :

$ host -t MX wanadoo.fr
wanadoo.fr mail is handled by 10 smtp.wanadoo.fr.


smtp est un sous-domaine de wanadoo.fr, et la machine sur laquelle se trouve le
serveur mail se nomme justement smtp.wanadoo.fr…

$ ping smtp.wanadoo.fr
PING smtp.wanadoo.fr (80.12.242.142) 56(84) bytes of data.


… et son adresse IP est 80.12.242.142.

Dans la réalité, l'architecture mail de Wanadoo (Orange maintenant…) est je
pense un peu plus compliquée que ça mais ça donne une bonne image de ce que nous
allons reproduire pour notre serveur mail.


PRÉREQUIS

Pour avoir son serveur mail, il faut donc :

 * un nom de domaine
 * une IP fixe
 * un PC allumé si possible 24h/24

Pourquoi une IP fixe ? Les mails doivent pouvoir toujours trouver le serveur
mail, c'est pourquoi l'IP doit être fixe.

L'association nom de domaine ⇔ adresse IP se règle au niveau du serveur DNS.
C'est celui-ci que nous allons régler en premier.


CONFIGURER LE SERVEUR DNS

Cette partie se révèle souvent être une prise de tête pour les apprentis
auto-hébergés.

On doit spécifier dans le serveur DNS sur quelle IP on peut joindre le serveur
mail.

La plupart des registrars (les marchands de noms de domaine) fournissent une
interface simplifiée pour le serveur DNS.

Un exemple de configuration pour un domaine acheté chez Gandi.net


LE CHAMP A

Il faut tout d'abord configurer le champ A qui fait le lien entre nom de domaine
et l'adresse IP du serveur :

@       IN    A    12.34.56.78 
smtp    IN    A    12.34.56.78


@ : signifie que monDomaine.com est lié à l'IP 12.34.56.78

smtp : signifie que le sous-domaine smtp.monDomaine.com est lui aussi lié à l'IP
12.34.56.78

Vous pouvez indiquer des adresses IP différentes si vous possédez plusieurs
serveurs et plusieurs IP.


LE CHAMP MX

Une fois que le champ A est complété, il faut pour définir le serveur mail
s'occuper du champ MX (Mail eXchange).

Nous allons convenir que le serveur mail correspond au serveur
smtp.monDomaine.com. Son adresse IP ayant déjà été définie par le champ A, le
champ MX s'écrit sous cette forme :

monDomaine.com.    IN    MX    10    smtp


Ce qui signifie que smtp du champ A sera le serveur MX de monDomaine.com.

Vous suivez toujours ??

Lorsque vous enverrez des mails sur le domaine monDomaine.com, ils seront
automatiquement acheminés vers le serveur smtp.monDomaine.com.

Important :

 * Un champ MX se définit toujours sur un champ A, pas sur un CNAME (non abordé
   ici)
 * Ne pas oublier le point après monDomaine.com.


UN EXEMPLE DE CONFIGURATION DE DNS CHEZ GANDI.NET



Ce qui donne en mode "expert"

smtp 300 IN A 41.188.26.122 
@ 28800 IN MX 10 smtp 
www 10800 IN A 41.188.26.122



CONFIGURATION CHEZ OVH

Rendez-vous sur votre "manager" puis cliquez sur "Domaines & DNS". Dans la
rubrique "Zone DNS" du domaine concerné, effacez les champs MX existants puis
cliquez sur 'Type A" et ajoutez un champ comme ci-dessous :

sous-domaine: mail2.votre_domaine.com


Sélectionner une IP : adresse_IP_du_serveur_de_mail

Cliquez sur "Validez" pour confirmer l'operation. Ensuite, choisissez 'Type MX"
et ajoutez un champ comme ci-dessous :

Sous-domaine : votre_domaine.com


Destination: mail2.votre_domaine.com


Cliquez sur "Validez" pour confirmer l'operation. Si la création du champ MX ne
passe pas, recommencez en cochant la case "forcer l'opération". Les changements
sont pris en compte le lendemain matin et vos mails seront redirigés vers votre
serveur mail.

Source


VÉRIFICATIONS

Avant même d'installer et configurer son serveur, il faut faire quelques
vérifications (après avoir installé bind9-host).

$ host -t MX monDomaine.com


Cette commande doit retourner une ligne de ce genre :

monDomaine.com mail is handled by 10 smtp.monDomaine.com


Bien sûr, smtp.monDomaine.com doit être associé à votre IP fixe (ici
12.34.56.78) :

$ ping smtp.monDomaine.com
PING smtp.monDomaine.com (12.34.56.78) 56(84) bytes of data.


Si ces 2 vérifications ne fonctionnent pas, ce n'est pas la peine d'aller plus
loin, votre serveur DNS est mal configuré.


VÉRIFICATION SI VOUS DISPOSEZ D'UN DNS LOCAL

Au cas ou vous disposeriez d'un DNS sur votre réseau local, pensez à vérifier
sur un DNS externe...

$ host -t MX monDomaine.com DNS_Externe


C'est le seul moyen d'être certain que "le monde extérieur" saura ou vous
envoyer vos mails...


OUVERTURE DES PORTS

Si votre serveur se trouve derrière une *box, il ne pourra pas communiquer avec
le monde extérieur. Il nous faut ouvrir des ports.

Votre *box possède une IP fixe publique, c'est l'IP que vous avez normalement
renseignée dans votre serveur DNS.

Derrière votre *box, il y a votre serveur mail qui lui possède également une
adresse IP, privée. Les adresses privées sont en général 192.168.0.xxx ou
192.168.1.xxx.

Admettons que votre serveur ait comme IP 192.168.0.25 dans votre réseau privé.
Il faut alors que votre *box redirige toutes les requètes mail vers l'IP privée
192.168.0.25.

Les ports à ouvrir sont :

 * 25 : pour que le serveur réceptionne les mails
 * 110 : pour relever ses mails via POP
 * 143 : pour relever ses mails via IMAP

Tous ces ports sont à ouvrir en TCP.

Freebox : http://www.dslvalley.com/dossiers/freebox/freebox-nat.php

NeufBox : http://www.dslvalley.com/dossiers/9box4/neufbox-nat-emule.php (fin de
page)

LiveBox : http://www.dslvalley.com/dossiers/orange/livebox-emule.php (fin de
page)


INSTALLATION DE POSTFIX

Votre DNS est correctement configuré ? Les ports sont ouverts ? Bien. Vous avez
fait le plus dur.

Vérifiez le nom de votre machine :

$ hostname


Cette commande doit vous retourner smtp.monDomaine.com. Si ce n'est pas le cas,
éditez le fichier /etc/hosts et vérifiez que vous avez une ligne comme suit :

127.0.0.1 smtp.monDomaine.com smtp


Puis :

# hostname smtp.monDomaine.com


Normalement, le hostname est maintenant OK.

Il est important que le hostname de votre machine soit le même que celui
retourné par la commande host -t MX monDomaine.com, sinon Postfix posera des
problèmes.

Installons postfix :

# aptitude install postfix


Choisissez la configuration Internet Site. Indiquez ensuite le nom de votre
machine : smtp.monDomaine.com (correspond au hostname)

Au cas où vous voudriez recommencer :

# dpkg-reconfigure postfix



CONFIGURATION

Le fichier de configuration de postfix est /etc/postfix/main.cf. Il est par
défaut très bien sécurisé.

Nous allons dans un premier temps y ajouter cette ligne :

home_mailbox = Maildir/


Cette ligne dit à postfix que les mails des utilisateurs doivent aller dans un
répertoire nommé Maildir.

Commentez (ajoutez un #) la ligne où se trouve mailbox_command pour que procmail
ne soit pas utilisé (en tout cas pas pour le moment):

#mailbox_command = procmail -a "$EXTENSION"


Pour que la modification soit prise en compte, redémarrez postfix :

# /etc/init.d/postfix restart



CRÉATION D'UN NOUVEAU MAIL

Bien. Vous avez votre domaine, votre serveur mail tourne. Créer une adresse mail
est très simple. Il suffit d'ajouter un utilisateur !!

Vous voulez créer une adresse kevin@monDomaine.com ? Ajoutez l'utilisateur kevin
sur votre machine :

# adduser kevin


Répondez aux questions, choisissez un mot de passe à kevin et c'est tout.


TESTER L'ADRESSE EN LOCAL

Nous allons envoyer un mail à Kevin, vérifions que le paquet mailx est
installé :

# aptitude install mailx


On envoie le mail :

# echo "Le contenu du mail" | mail -s "ceci est le sujet" kevin@monDomaine.com


Le mail sera automatiquement déposé dans le répertoire Maildir situé dans le
home de kevin. S'il n'existe pas, le répertoire Maildir sera automatiquement
créé.

# ls /home/kevin
Maildir


N'hésitez pas à consulter les logs pour voir tout ce qui se passe sur votre
serveur mail :

# cat /var/log/mail.log



KEVIN VEUT LIRE SES MAILS !!

Envoyer des mails, c'est bien mais pouvoir les lire, c'est mieux !! Pour que
Kevin puisse lire ses mails dans un client comme Mozilla Thunderbird, c'est tout
simple :

Kevin veut réceptionner ces mails via IMAP :

# aptitude install dovecot-imapd


Il préfère POP3 ? Pas de problèmes :

# aptitude install dovecot-pop3d


C'est tout, vous pouvez maintenant utiliser votre client mail favori pour
réceptionner vos mails.

Serveur : smtp.monDomaine.com

Login : kevin

Password : le password défini lors de la création de l'utilisateur kevin


KEVIN VEUT ENVOYER DES MAILS !!

Kevin est content, il peut lire ses mails. Seulement, il aimerait répondre à ses
amis mais il ne peut pas.


UTILISER LE SMTP DE SON FAI

Postfix possède son propre service SMTP, mais ce dernier sera généralement
bloqué. Pour limiter les envois de SPAMS, les FAI bloquent généralement l'envoi
de mails.

Pour que votre serveur mail puisse envoyer des mails, il faut lui dire
d'utiliser le SMTP de votre FAI. C'est le paramètre relayhost du fichier de
configuration /etc/postfix/main.cf qu'il faut modifier :

relayhost = smtp.votreFAI.com


Principaux SMTP français :

Orange : smtp.orange.fr
Free : smtp.free.fr
Neuf : smtp.neuf.fr



UTILISER LE SMTP DE POSTFIX

Cependant, certains FAI (comme Free) permettent de lever ce blocage via une
option dans leur panel de gestion.

Dans ce cas, plus besoin du relayhost. Vos mails ne passeront plus par votre
FAI, c'est VOTRE serveur qui enverra directement les mails.

Le problème est que les mails que vous enverrez vers les boîtes Yahoo seront
classées en tant que SPAM. AOL ne voudra pas de vos mails (ce sera explicitement
marqué dans les logs). Quant à Hotmail, les logs vous diront que les mails ont
bien été reçus, mais vos correspondants ne les recevront jamais. Gmail ne pose
quant à lui aucun souci.

Vous voulez utiliser le plus possible votre propre SMTP mais vous voulez quand
même pouvoir envoyer des mails vers vos potes restés chez Hotmail ?

Créez un fichier /etc/postfix/transport avec ce contenu :

hotmail.fr    smtp:smtp.free.fr
hotmail.com   smtp:smtp.free.fr
yahoo.fr      smtp:smtp.free.fr
yahoo.com     smtp:smtp.free.fr


Ce fichier dit à postfix que pour les domaines hotmail.fr, hotmail.com, yahoo,
etc., il utilisera le SMTP de free. Pour tous les autres domaine, il utilisera
le smtp local. A vous d'adapter ce fichier en fonction des domaines qui ne
veulent pas de vous.

Bien sûr, si vous n'êtes pas abonné Free, vous ne pourrez pas utiliser le SMTP
de Free.

Pour que Postfix prenne en compte ce fichier, exécutez cette commande :

# postmap /etc/postfix/transport


Puis relancez Postfix :

# /etc/init.d/postfix restart


A chaque fois que vous modifierez /etc/postfix/transport, n'oubliez pas
d'executer la commande précédente (postmap).


LOGIN... PASSWD...

Actuellement, postfix n'accepte d'envoyer les mails que s'ils sont envoyés
depuis le serveur mail. Vous avez sûrement l'habitude d'envoyer les mails depuis
un autre PC. Généralement, le SMTP demande un login, un password et envoie vos
mails.

C'est ce que nous allons régler maintenant.

Problème : Postfix seul ne fournit pas de service d'identification. Il doit
utiliser un serveur SASL externe.

Solution : Dovecot, que nous avons précédemment installé pour la réception de
mails (IMAP-POP3) peut faire office de serveur SASL.





SOUS DEBIAN SQUEEZE (6.0) AVEC DOVECOT 1.X

Pour activer ce service, dans le fichier de configuration
/etc/dovecot/dovecot.conf, ajoutez (ou décommentez) ceci dans la section auth
default { } :

auth default {
…
socket listen {
  client {
    path  = /var/spool/postfix/private/auth
   group = postfix
   mode  = 0660
 }
}
…



SOUS DEBIAN WHEEZY (7.0) AVEC DOVECOT 2.X

Les fichiers de configuration sont séparés. Lire la documentation (obligatoire
en cas de migration Squeeze -> Wheezy!) zless
/usr/share/doc/dovecot-core/README.Debian.gz

Voir aussi le wiki officiel de Dovecot 2.x :
http://wiki2.dovecot.org/HowTo/PostfixAndDovecotSASL


Le fichier de configuration à modifier est : /etc/dovecot/conf.d/10-master.conf

 service auth {
 ...
 # Postfix smtp-auth
 unix_listener /var/spool/postfix/private/auth {
   mode = 0660
       user=postfix
       group=postfix
 }
 
 # Auth process is run as this user.
 #user = $default_internal_user
}
...



Il s'agit pour Dovecot de créer un socket Unix, sur lequel il écoutera les
demandes d'identification provenant de Postfix. Comme le service SMTP de Postfix
est chrooté (emprisonné) dans le répertoire /var/spool/postfix/, il faut placer
ce socket sous ce répertoire, ce qui se fera automatiquement en relançant
Dovecot avec la commande :

# /etc/init.d/dovecot restart


Dovecot accepte l'identification mais Postfix ne le sait pas !! Il faut lui dire
(ajoutez dans /etc/postfix/main.cf) :

# Activer l'identification SASL
smtpd_sasl_auth_enable = yes


# Utiliser le service d'identification de Dovecot
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth


# Noter dans les en-tête des messages l'identifiant de l'utilisateur.
smtpd_sasl_authenticated_header = yes


Profitons-en pour peaufiner le fichier de configuration de postfix
/etc/postfix/main.cf :

# Règles pour accepter ou refuser une connexion :
# - on attend une seconde (pour piéger les zombies) ;
# - on interdit la parallélisation là où il n'est pas sensé y en avoir.
smtpd_client_restrictions =
   permit_mynetworks, permit_sasl_authenticated,
   sleep 1, reject_unauth_pipelining


# Règles pour accepter ou refuser un message, dès lors qu'on connaît le nom
# de l'hôte de l'expéditeur (par sa commande HELO ou EHLO) :
# - on refuse les noms d'hôte invalides.
smtpd_helo_restrictions = reject_invalid_helo_hostname


# Règles pour accepter ou refuser un message, dès lors qu'on connaît l'adresse
# de l'expéditeur :
# - s'il vient d'un expéditeur inexistant de notre domaine, on le rejette ;
# - si le domaine de l'expéditeur n'a pas d'IP ou de MX, on le refuse ;
# - s'il vient d'un client sûr ou d'un client authentifié, on l'accepte ;
# - si l'adresse de l'expéditeur n'est pas sous forme canonique, on le refuse.
smtpd_sender_restrictions =
   reject_unlisted_sender, reject_unknown_sender_domain,
   permit_mynetworks, permit_sasl_authenticated,
   reject_non_fqdn_sender


# Règles pour accepter ou refuser un message, dès lors qu'on connaît le
# destinataire (par la commande RCPT TO) :
# - s'il est destiné à un expéditeur forgé chez nous, on le rejette ;
# - s'il est destiné à un domaine forgé, on le rejette ;
# - s'il vient d'un hôte sûr ou d'un client authentifié, on l'accepte ;
# - si l'adresse de destination n'est pas sous forme canonique, on le refuse ;
# - finalement, s'il n'est pas destiné à un domaine que l'on gère ou pour
#   lequel on relaie, on le refuse.
smtpd_recipient_restrictions =
    reject_unlisted_recipient, reject_unknown_recipient_domain,
    permit_mynetworks, permit_sasl_authenticated,
    reject_non_fqdn_recipient,
    reject_unauth_destination


Allez, on relance postfix pour qu'il prenne en compte tout ça :

/etc/init.d/postfix restart



Important il faut vérifier que tout se passe bien dans les log de dovecot. tail
-f permet de voir les nouvelle entrées en "direct" donc dans une console lancer.

#tail -f /var/log/dovecot-info.log 


Relever le courier avec ce qui vous convient. Et si vous avez quelque chose qui
ressemble à ceci:

#Error: mail_location not set and autodetection failed: Mail storage autodetection failed with home=/home/votreutilisateur 


il faut modifier le fichier de configuration de Dovecot et vérifier que vous
avez bien:

mail_location = maildir:~/Maildir



CHIFFREMENT STARTTLS

Nous pouvons rajouter le support de STARTTLS, ce qui permet à un moment donné de
chiffrer la connexion avec Postfix. L'avantage est que l'on peut alors chiffrer
l'authentification SASL pour que le mot de passe n'apparaisse pas en clair. On
peut aussi chiffrer le contenu des messages, mais pour celà il est plus
intéressant de s'orienter vers GPG ou S/MIME, afin de s'assurer que le message
reste chiffré d'un bout à l'autre entre l'expéditeur et le destinataire.

Pour pouvoir utiliser STARTTLS, il nous faut un certificat SSL. Une fois le
certificat obtenu, il suffit de rajouter dans main.cf :

smtpd_tls_cert_file = /chemin/vers/certificat
smtpd_tls_key_file = /chemin/vers/cle
smtpd_use_tls = yes


Ceci suffit pour activer STARTTLS. Nous pouvons choisir le niveau de verbosité
des logs :

smtpd_tls_loglevel = 0


 * 0 : Désactive l'enregistrement de l'activité TLS.
 * 1 : Enregistre les informations de négociation TLS et des certificats.
 * 2 : Enregistre les niveaux durant la négociation TLS.
 * 3 : Retranscrit en hexadecimal et ASCII le processus de négotiation TLS
 * 4 : Retranscrit en hexadecimal et ASCII toute la transmission après STARTTLS

Enfin, il est possible d'interdire l'authentification SASL en clair avec :

smtpd_tls_auth_only = yes






RESSOURCES

 * (fr) Traduction française de la documentation de Postfix
 * (en) Documentation originale de Postfix
 * (en) Wiki officiel de Dovecot 2.x

Abgerufen von
„https://wiki.debian-fr.xyz/index.php?title=Configuration_d%27un_serveur_mail_avec_Postfix&oldid=6962“
Kategorie:
 * Serveurs




NAVIGATIONSMENÜ


MEINE WERKZEUGE

 * Deutsch
 * Anmelden
 * Benutzerkonto beantragen


NAMENSRÄUME

 * Seite
 * Diskussion


VARIANTEN


ANSICHTEN

 * Lesen
 * Quelltext anzeigen
 * Versionsgeschichte


MEHR


SUCHE




NAVIGATION

 * Hauptseite
 * Le Forum
 * Téléversements multiples
 * Actualités
 * Letzte Änderungen
 * Arborescence des catégories
 * Zufällige Seite
 * Hilfe


WERKZEUGE

 * Links auf diese Seite
 * Änderungen an verlinkten Seiten
 * Spezialseiten
 * Permanenter Link
 * Seiten­informationen
 * Seite zitieren
 * Attribute anzeigen


DRUCKEN/­EXPORTIEREN

 * Buch erstellen
 * Als PDF herunterladen
 * Druckversion

 * Diese Seite wurde zuletzt am 7. März 2017 um 15:06 Uhr bearbeitet.
 * Der Inhalt ist verfügbar unter der Lizenz Creative Commons licenses, sofern
   nicht anders angegeben.

 * Datenschutz
 * Über Le Wiki de debian-fr.xyz
 * Haftungsausschluss
 * Mobile Ansicht

 * 
 *