LINUX:Client Submission et SSL/TLS

De WIKI sur Linux (ADB)
Aller à la navigation Aller à la recherche

retour au menu de Postfix-Configuration redirection des mails vers Internet


But

Dans ce second cas, nous allons envoyer des mails vers un serveur de messagerie Internet. On utilise le protocole "Submission" avec authentification et cryptage sans la fonctionnalité STARTTLS mais SSL/TLS seul qui demande un cryptage total comme pour SMTPS.

Attention, la configuration qui suit, prend la place de celle du chapitre précédent. Les deux sont incompatibles ensemble en l'état. Ce sera le sujet de l'article suivant.


Caractéristiques

Nous abordons le cas de connexion vers un serveur messagerie d'une société privée. Par un soucis de confidentialité, nous avons installé le logiciel de messagerie en interne ainsi que sa configuration. Il s'agit du logiciel MailEnable, version Standard gratuite. Le serveur aura comme adresse IP 192.168.1.35 pour le domaine "central.dom" et le port 3587. L'authentification est nécessaire et l'adresse mail doit correspondre à celle associée à l'utilisateur. Le serveur de messagerie original travaille alors en tant que relais. Donc en tant qu'utilisateur authentifié, on peut envoyer des mails à tout le monde mais on en est responsable car ils sont envoyés en notre nom. En parallèle, le service de messagerie de Google, Gmail, entre également dans cette catégorie. Pour ce serveur, le port est 465 (SSL/TLS) et le serveur smtp se nomme "smtp.gmail.com". Les deux seront paramétrés ensemble.


Configuration des options

Le processus qui envoie des mails est "smtp" et les options qui y correspondent commencent par "smtp_".

La première partie correspond à des options concernant le cryptage et aux options d'authentification. La seconde partie définit diverses tables nécessaires au bon fonctionnement. Ces tables vont être expliquées par la suite.

On ajoute les lignes suivantes aux options avancées au chapitre précédent des options de base "/etc/postix/main.cf":


smtp_sasl_security_options = noanonymous
smtp_sasl_auth_enable = yes
smtp_use_tls = yes
smtp_tls_security_level = encrypt
smtp_enforce_tls = yes
smtp_sasl_mechanism_filter = PLAIN, LOGIN, CRAM-MD5
smtp_tls_wrappermode = yes
# tables 
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
transport_maps = hash:/etc/postfix/transport
smtp_generic_maps = hash:/etc/postfix/generic

Les options "smtp_" sont parlantes. A noter quelques unes:

  • "smtp_enforce_tls" force le cryptage après l'authentification.
  • "smtp_sasl_mechanism_filter" correspond aux options proposées par le serveur distant suite au test avec le programme "openssl" (l'article Tester l'envoi de mails).
  • "smtp_tls_wrappermode" permet d'avoir un échange complètement crypté comme le protocole SMTPS.

Cette dernière option ("smtp_tls_wrappermode") est la seule qui change dans cette configuration par rapport à la précédente. Ce qui rend les deux configurations incompatibles.

Le fichier "/etc/postfix/master.cf" ne change pas.


Table Utilisateur-Mot de passe

La première étape consiste à stocker le nom d'utilisateur et son mot de passe lié à un nom serveur de messagerie en fonction du port utilisé.

Chaque ligne du fichier a la forme: HOST:PORT USER:PASSWORD Nous nommerons le fichier: "/etc/postfix/sasl_passwd":


[192.168.1.35]:3587 pdupont@CENTRAL:Bateau23Ivre
smtp.gmail.com:465  pdupont@gmail.com:Barbe99Noire

Il faut compiler le fichier avec la commande:

postmap /etc/postfix/sasl_passwd


Table TRANSPORT

Maintenant nous allons amender la table TRANSPORT que nous avons vu au chapitre précédent. Nous ajoutons la ligne suivante au fichier "/etc/postfix/transport":


pdupont@central.dom   smtp:[192.168.1.35]:3587
pdupont@gmail.com     smtp:smtp.gmail.com:465

Au contraire des autres configurations, en première partie, l'adresse mail cible est spécifiée. Ceci veut dire qu'on ne peut envoyer qu'à cette adresse. Il se fait que dans ce cas, le nom d'utilisateur "pdupont@CENTRAL" correspond à l'adresse mail: "pdupont@central.dom"; de même pour le compte Gmail.

Cette configuration est sécuritaire. Car si vous aviez la configuration qui suit dans le fichier "/etc/postfix/transport":


*       smtp:[192.168.1.35]:3587
*       smtp:smtp.gmail.com:465

Il est possible de faire des configurations intermédiaires comme des filtres et les combiner. Avec cette seconde configuration, vous pouvez envoyer des mails à qui vous voulez mais si cet accès sert comme passerelle, par exemple, à un site WEB, vous vous exposez à être responsable de spamming ou à des mails hors de propos si pas désobligeants. La première solution est plus sécurisée; les messages vous sont directement adressés; vous pouvez alors réagir en fonction.


Ne pas oublier de la compiler le fichier avec la commande:

postmap /etc/postfix/transport

Remarquons que le nom de machine ou l'adresse IP, le numéro de port et ses éventuels crochets ("[]') doivent être identiques dans les deux fichiers "/etc/postfix/sasl_passwd" et "/etc/postfix/transport".


Table GENERIC

La table BENERIC sert à renommer les adresses mails, ou en partie, aussi bien de l'expéditeur et du récepteur lors de l'envoi de mail. Attention, ce traitement est récursif.

Cette table va nous servir car l'adresse mail de l'expéditeur doit correspondre au propriétaire du couple utilisateur/mot de passe. Dans notre cas, les adresses mail deviennent respectivement "pdupont@central.dom" si l'expéditeur est "root" et "pdupont@gmail.com" si l'expéditeur est "admin". Cette configuration groupée est un peu réductrice car souvent ce type de connexion vers un serveur de messagerie exige que l'expéditeur et l'utilisateur d'authentification doivent correspondre. Il faut dont utiliser comme expéditeur le compte "admin" pour l'envoi vers Gmail et l'autre pour l'autre serveur. Dans le chapitre suivant, nous sépareront les deux cas.

Nommons ce fichier "/etc/postfix/generic":


root   pdupont@central.dom
admin  pdupont@gmail.com

Il faut compiler le fichier avec la commande:

postmap /etc/postfix/generic


Envoi de mail

On peut envoyer un mail avec la commande "mail" à "pdupont@central.dom" à partir du compte "root", l'expéditeur sera transformé de "root" en "pdupont@central.dom".

De même, on peut envoyer un mail avec la commande "mail" à "pdupont@gmail.com" à partir du compte "admin", l'expéditeur sera transformé d'"admin" en "pdupont@gmail.com".


Table ALIASES

Si on désire envoyer les mails locaux destinés aux utilisateurs "root" ou "admin" aux comptes distants correspondants, on modifie le fichier "/etc/postfix/aliases":


root:  pdupont@central.dom
admin:  pdupont@gmail.com

Ne pas oublier de le "recompiler":

newaliases


Configuration du compte Gmail

La connexion au compte Gmail est par défaut plus complexe; elle ne fait pas un simple "login" mais utilise une validation via un script JavaScript nommé "oauth2". Ce protocole n'est pas supporté par Postfix-Sasl.

NOTE: CETTE POSSIBILITE A ETE DESACTIVEE PAR GOOGLE. LA DESCRIPTION CI-DESSOUS N'EST PLUS POSSIBLE !!!

Il faut changer cette contrainte configurée par défaut, directement dans les paramètres de votre compte via le site Web de Gmail.

En premier vous vous connectez à votre compte via l'URL du site de Google: https://accounts.google.com/signin/v2/identifier?continue=https%3A%2F%2Fmail.google.com%2Fmail%2F&service=mail&sacu=1&rip=1&flowName=GlifWebSignIn&flowEntry=ServiceLogin

Il faut ensuite entrer dans la fenêtre permettant de basculer vers une sécurité réduite. Je n'ai pas trouvé le moyen d'y arriver via les menus mais l'URL suivante le permet: https://myaccount.google.com/lesssecureapps Il suffit d'activer l'option de l'écran ci-dessous.


LINUX:Gmail.moins.securiser.jpg


La réactivation est plus simple. Il faut aller via le lien "Gérer votre compte Google" en haut à droite de votre avatar.

Vous arrivez sur une page où vous remarquez un cadenas ouvert signifiant votre sécurité réduite.


LINUX:Gmail.securiser.1.png


En cliquant sur ce cadenas, un écran vous permet de désactiver cette option.


LINUX:Gmail.securiser.2.png




retour au menu de Postfix-Configuration redirection des mails vers Internet