Réseau - Web - GNU/Linux

2012 15 février

L'utilité des connexions SMTP avec authentification - Debian 6.0 Squeeze

Rédigé par Marc GUILLAUME | Aucun commentaire
Article précédent Mail façon FAI - Debian 6.0 Squeeze Article suivant

Configurer l'envoi de mail avec une identification SMTP.

Le relayage

Avant de nous plonger dans l'authentification SMTP je voudrais que vous compreniez ce que signifie exactement un « relais ». A chaque fois que Postfix reçoit un mail et doit le renvoyer à un autre serveur cette action est appelée relayage. Voici les quelques types existants :

Email entrant

Lorsque quelqu'un sur Internet envoit un email à john@example.org un autre serveur de courrier va acheminer celui-ci vers votre propre serveur de courrier en utilisant SMTP. Postfix va vérifier qu'il est responsable des adresses mail dans le domaine example.org et accepter le courrier. John peut allors récupérer son mail sur votre serveur en utilisant POP ou IMAP.

réception régulière d'un mail pour un domaine virtuel

Email sortant (sans authentification)

John est quelque part connecté à Internet et veut envoyer un mail à lisa@example.com. Comme votre serveur de courrier n'est pas responsable du domaine example.com il devrait transmettre celui-ci au serveur compétant. Votre serveur reçevant le mail de John doit simplement le transmettre (le relayer) au serveur s'occupant des adresses mail de la forme ...@example.com. Cela peut sembler tout à fait innocent, pourtant votre serveur de courrier va refuser le relais :

Refus d'un utilisateur non authentifié

Pourquoi ? Parce que n'importe qui peut prétendre être John et demander à votre serveur de relayer du courrier. Si un attaquant (comme un spammeur) envoyait ainsi des millions de spams à travers votre serveur, les gestionnaires des domaines destinataires vous accuseraient vous d'être un sapmmeur. Votre serveur de courrier serait ce qu'on appelle un « open relay » (un relais ouvert). Ce n'est pas ce que vous voulez car ainsi l'adresse IP de votre serveur de courrier serait inscrite dans des listes noires et vous auriez de sérieux problèmes pour envoyer d'autres mails (même réguliers). Donc sans preuve que John est bien réellement John, votre serveur rejetera le mail.

Email sortant (avec authentification)

Alors comment John va-t-il pouvoir envoyer son mail ? Il doit utiliser l'authentification (authentification en anglais) SMTP. Le processus est le même que précdemment à la différence près que le programme d'envoi du courrier enverra préalablement son nom d'utilisateur et son mot de passe.

Relayage d'un email pour un client authentifié

L'option de configuration mynetworks

En parallèle à l'usage de l'authentification SMTP vous pouvez configurer Postfix pour qu'il relaie toutjours les mails envoyés depuis certaines adresses IP. L'option de configuration mynetworks contient une liste de sous-réseaux ou d'addresses IP de confiance. Généralement vous y placez votre propre réseau local. La raison pour laquelle John doit s'identifier dans l'exemple précédent est parce qu'il n'envoit pas son mail depuis votre réseau local (c'est le cas le plus courant)

Activation de l'authentification SMTP dans Postfix

Pendant longtemps l'authentification SMTP avec Postfix a été très pénible à réaliser. Elle était effectuée à travers la bibliothèque SASL (Simple Authentication and Security Layer) qui faisait partie du serveur de mail Cyrus. C'était presque impossible à déboguer et renvoyait des messages d'erreur écrits en charabia qui induisaient très facilement en erreur. Heureusement de nos jours il est possible de faire en sorte que Postfix demande au serveur Dovecot de vérifier le nom d'un utilisateur et son mot de passe. Et comme vous avez déjà configuré l'aspect authentification de Dovecot pour la récupération du courrier tout va être maintenant très facile. Postfix a juste besoin d'une petite configuration supplémentaire :

postconf -e smtpd_sasl_type=dovecot
postconf -e smtpd_sasl_path=private/auth
postconf -e smtpd_sasl_auth_enable=yes
postconf -e smtpd_recipient_restrictions=" \
  permit_mynetworks \
  permit_sasl_authenticated \
  reject_unauth_destination"

smtpd_sasl_auth_enable active l'authentification SMTP de manière générale. Et smtpd_recipient_restrictions définit les règles à appliquer après que l'utilisateur distant ait envoyé la ligne RCPT TO: pendant le dialogue SMTP. Dans ce cas le relais est autorisé si :

  • permit_mynetworks : l'utilisateur se connecte depuis le réseau local (mynetworks) ou si
  • permit_sasl_authenticated : l'utilisateur est authentifié ou si
  • reject_unauth_destination : le courrier est destiné à un utilisateur d'un domaine local ou d'un domaine virtuel sur le serveur (mydestination, virtual_alias_domains ou virtual_mailbox_domains).

Il y a de nouvelles restrictions :

  • smtpd_client_restrictions
  • smtpd_helo_restrictions
  • smtpd_sender_restrictions

qui font l'objet de vérifications pendant les différentes étapes du dialogue SMTP (connexion IP, commande HELO/EHLO, commande MAIL FROM) mais pour l'instant vous devriez mettre toutes les restrictions dans smtpd_recipient_restrictions.

Si vous désirez voir comment fonctionne une session SMTP avec authentification au niveau TCP le guide pour Lenny contient des informations sur ce sujet : Connexion SMTP authentifiée.

Écrire un commentaire

Quelle est la deuxième lettre du mot klmn ?

Fil RSS des commentaires de cet article

À propos

Yakati.com - Réseau - Web - GNU/Linux © 2017

Généré par PluXml en 0.046s  - Administration

Mes coordonnées

Marc Guillaume
contact[at]yakati.com
79150 ÉTUSSON

Crédits

Pour la gestion du contenu

Généré par PluXml, le Blog ou Cms sans base de données

Pour le contenu

Licence Creative Commons
Ce(tte) œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International.

Pour le thème

Thème SOLID de blacktie.co adapté pour PluXml