Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
installer_postfix_avec_le_serveur_de_messagerie_sur_internet [Le 27/08/2020, 14:09]
sefran Correction expression
installer_postfix_avec_le_serveur_de_messagerie_sur_internet [Le 11/09/2022, 11:34] (Version actuelle)
moths-art Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892)
Ligne 1: Ligne 1:
-{{tag>​messagerie courriel postfix MTA serveur ​BROUILLON}}+{{tag>​messagerie courriel postfix MTA serveur}}
  
-====== Installer Postfix ​avec le serveur de messagerie du réseau local ou sur internet ====== +====== Installer Postfix ​pour l'​envoie des courriels vers un serveur de messagerie du réseau local ou d'internet ====== 
-Pour communiquer ​directement ​avec un serveur de messagerie internet ou du [[https://​fr.wikipedia.org/​wiki/​R%C3%A9seau_local|LAN]]. C'est la configuration «système satellite».+Pour expédier ​directement ​sur un serveur de messagerie internet ou du [[https://​fr.wikipedia.org/​wiki/​R%C3%A9seau_local|LAN]] ​vos courriels. C'est la configuration «système satellite», ou ce que l'on appelle dans le cas que nous allons voir ici, un client Postfix sans rôle avec un relaie internet.
  
 Pour plus d'​informations sur la messagerie lire [[:​comment_fonctionne_le_courriel_sous_linux|Comment fonctionne le courriel sous Linux ?]], et sur les principes du serveur Postfix lire [[:​comment_configurer_sa_distribution_de_courriels_systemes_mta|Comment configurer sa distribution de courriels systèmes MTA avec Postfix ?]] Pour plus d'​informations sur la messagerie lire [[:​comment_fonctionne_le_courriel_sous_linux|Comment fonctionne le courriel sous Linux ?]], et sur les principes du serveur Postfix lire [[:​comment_configurer_sa_distribution_de_courriels_systemes_mta|Comment configurer sa distribution de courriels systèmes MTA avec Postfix ?]]
Ligne 13: Ligne 13:
  
 Pour la partie sécurité du serveur [[:​tutoriel:​comment_installer_un_paquet|installez les paquets]] **[[apt>​libsasl2-modules,​libauthen-sasl-cyrus-perl,​ |libsasl2-modules libauthen-sasl-cyrus-perl]]**. Pour la partie sécurité du serveur [[:​tutoriel:​comment_installer_un_paquet|installez les paquets]] **[[apt>​libsasl2-modules,​libauthen-sasl-cyrus-perl,​ |libsasl2-modules libauthen-sasl-cyrus-perl]]**.
- 
-Installer le client [[mutt|Mutt]] de messagerie MUA **[[apt>​mutt|mutt]]** (les clients MUA de mailutils et de bsd-mailx ne supportent que le format mbox pour la gestion locale, vous pouvez aussi utiliser [[https://​neomutt.org|Neomutt]] avec plus de fonctionnalités en remplacement de Mutt **[[apt>​neomutt|Neomutt]]**). 
- 
- 
- 
  
 ===== Définir le gestionnaire de messagerie ===== ===== Définir le gestionnaire de messagerie =====
Ligne 64: Ligne 59:
 {{ :​doc:​10_protocoles.png?​nolink&​600 |}} {{ :​doc:​10_protocoles.png?​nolink&​600 |}}
  
-===== Configurer le client mail MUA système ===== 
-Testez la lecture de la boîte aux lettres : 
-<code bash>​mutt</​code>​ 
- 
-Si vous avez un message du genre : 
-<​code>/​home/​utidisateur/​Mail n'​existe pas. Le créer ? ([oui]/​non):</​code>​ 
-C'est que votre client mail est mal configuré. 
- 
-Tapez : <​code>​n</​code>​ puis pour quitter Mutt <​code>​q</​code>​ 
- 
-==== Configuration du client de courriels ==== 
- 
-Éditer le fichier .muttrc dans votre dossier /​home/​utilisateur (''​kate ~/​.muttrc''​) 
-Et ajouter ou modifier ces lignes : 
-<​file>#​ Configuration de base 
-set realname="​{Prénom NOM}" 
-set header_cache=~/​.mutt/​cache/​headers 
-set certificate_file=~/​.mutt/​certificates 
-set message_cachedir=~/​.mutt/​cache/​bodies 
-set beep 
-set use_from = yes 
- 
-# Boite de réception 
-set spoolfile=~/​.local/​share/​courriels/​arrivées/​ 
-# Boite aux lettres de Mutt 
-set folder=~/​.local/​share/​courriels 
- 
-# Autres dossiers 
-set postponed=+brouillons 
-set record=+envoyés 
- 
-# Encodage à utiliser 
-set charset=utf-8 
-set send_charset=utf-8 
-# Format de la date à afficher avant les citations lors d'une réponse 
-set date_format="​%A %d %B %Y à %I:​%M:​%S%p"​ 
-set index_format="​%4C %Z %{%b %d} %-15.15F (%4l) %s" 
-set fast_reply 
-set include=yes 
- 
-# Configuration SMTP 
-set sendmail="/​usr/​sbin/​sendmail"​ 
-</​file>​ 
  
 ===== Emplacement des boîtes aux lettres des utilisateurs du système ===== ===== Emplacement des boîtes aux lettres des utilisateurs du système =====
-Nous remarquons que le «configurateur» de Postfix n'a pas demandé de préciser où les boîtes aux lettres des utilisateurs sont situées. ​+Nous remarquons que le «configurateur» de Postfix n'a pas demandé de préciser où les boîtes aux lettres des utilisateurs sont situées.
  
 La commande de la file d'​attente : La commande de la file d'​attente :
Ligne 266: Ligne 218:
 Tester la connexion telnet : Tester la connexion telnet :
 <code bash>​telnet localhost 587</​code>​ <code bash>​telnet localhost 587</​code>​
-retourne ​                               +retourne
 <​code>​Trying 127.0.0.1... <​code>​Trying 127.0.0.1...
 Connected to localhost. Connected to localhost.
Ligne 336: Ligne 288:
 <​code>​221 2.0.0 Bye <​code>​221 2.0.0 Bye
 Connection closed by foreign host.</​code>​ Connection closed by foreign host.</​code>​
-Vos échanges de courriels sont maintenant cryptés lors du transport en SMTP. +Vos échanges de courriels sont maintenant cryptés lors du transport en SMTP.
 ===== Mettre en place l'​authentification SASL ===== ===== Mettre en place l'​authentification SASL =====
 Pour vous connecter sur votre serveur distant relaie avec SASL il vous faut disposer d'un compte et d'un mot de passe. Pour vous connecter sur votre serveur distant relaie avec SASL il vous faut disposer d'un compte et d'un mot de passe.
Ligne 366: Ligne 318:
 {{ :​doc:​12_resultat.png?​nolink |}} {{ :​doc:​12_resultat.png?​nolink |}}
 Vous avez créé votre mot de passe sécurité Google pour votre application Postfix. Vous avez créé votre mot de passe sécurité Google pour votre application Postfix.
-==== Configuration ​des identifiants ​du serveur ====+==== Configuration ​de l'​identifiant ​du serveur ​de messagerie ​====
 Éditez le fichier /​etc/​postfix/​sasl/​sasl_passwd (''​kate /​etc/​postfix/​sasl/​sasl_passwd''​) : Éditez le fichier /​etc/​postfix/​sasl/​sasl_passwd (''​kate /​etc/​postfix/​sasl/​sasl_passwd''​) :
-<​file>​[smtp.gmail.com]:587    ​mon_compte_gmail:mdp_applicatif_google</​file>​+<​file>​[smtp.fm.fr]:587    ​mon_compte_messagerie:mdp_messagerie</​file>​
  
 Passez la commande pour valider le mot de passe avec Postfix : Passez la commande pour valider le mot de passe avec Postfix :
Ligne 376: Ligne 328:
 <​file>​[smtp.gmail.com]:​587 ​   utilisateur@gmail.com:​ygvpyhldoiqujhth</​file>​ <​file>​[smtp.gmail.com]:​587 ​   utilisateur@gmail.com:​ygvpyhldoiqujhth</​file>​
  
-==== Configuration de Postfix ====+==== Configuration ​du client SASL de Postfix ====
 Modifiez /​etc/​postfix/​main.cf (''​kate /​etc/​postfix/​main.cf''​):​ Modifiez /​etc/​postfix/​main.cf (''​kate /​etc/​postfix/​main.cf''​):​
 <​file>#​ Les interfaces réseau par lesquelles le système de messagerie reçoit les messages. <​file>#​ Les interfaces réseau par lesquelles le système de messagerie reçoit les messages.
 inet_interfaces = loopback-only inet_interfaces = loopback-only
 # La machine par défaut où livrer le courrier au départ lorsqu'​il n'y a aucune destination locale d'​arrivée (mydestination). # La machine par défaut où livrer le courrier au départ lorsqu'​il n'y a aucune destination locale d'​arrivée (mydestination).
-relayhost = [smtp.fai.fr]:587+relayhost = [smtp.fm.fr]:587
 # Active l'​authentification SASL # Active l'​authentification SASL
 smtp_sasl_auth_enable = yes smtp_sasl_auth_enable = yes
Ligne 390: Ligne 342:
  
 === Exemple avec Gmail === === Exemple avec Gmail ===
 +Modifier en plus de la configuration ci-dessus :
 <​file>#​ La machine par défaut où livrer le courrier au départ lorsqu'​il n'y a aucune destination locale d'​arrivée (mydestination). <​file>#​ La machine par défaut où livrer le courrier au départ lorsqu'​il n'y a aucune destination locale d'​arrivée (mydestination).
 relayhost = [smtp.gmail.com]:​587 relayhost = [smtp.gmail.com]:​587
 +
 +# Modifications pour SASL
 # Pour corriger des erreurs d'​authentification SASL avec GMAIL # Pour corriger des erreurs d'​authentification SASL avec GMAIL
 smtp_sasl_mechanism_filter = plain smtp_sasl_mechanism_filter = plain
 +
 +# Modifications pour TLS
 # Niveau de sécurité dans la négociation du protocole # Niveau de sécurité dans la négociation du protocole
 smtp_tls_security_level = encrypt smtp_tls_security_level = encrypt
Ligne 402: Ligne 359:
 <code bash>​systemctl restart postfix</​code>​ <code bash>​systemctl restart postfix</​code>​
  
 +=== Vérifier l’authentification au serveur SMTP ===
 +Créer un Hash (code crypté de connexion) pour votre identifiant et votre mot de passe messagerie.
 +<code bash>​python3 -c '​import sys; from base64 import b64encode; print(b64encode(bytes(f"​\000mon_compte_courriel\000mdp_applicatif",​ encoding="​ascii"​)).decode("​ascii"​))'</​code>​
 +
 +ou en perl:
 +<code bash>​perl -MMIME::​Base64 -le 'print encode_base64("​\000mon_compte_courriel\000mdp_applicatif"​);'</​code>​
 +
 +Soit pour notre exemple :
 +<code bash>​python3 -c '​import sys; from base64 import b64encode; print(b64encode(bytes(f"​\000utilisateur@gmail.com\000ygvpyhldoiqujhth",​ encoding="​ascii"​)).decode("​ascii"​))'</​code>​
 +
 +Ce qui donne en sortie :
 +<​code>​AHV0aWxpc2F0ZXVyQGdtYWlsLmNvbQB5Z3ZweWhsZG9pcXVqaHRo</​code>​
 +
 +Pour vérifier qu'il n'y a pas d'​erreurs :
 +<code bash>​python3 -c '​import sys; from base64 import b64decode; print(b64decode("​AHV0aWxpc2F0ZXVyQGdtYWlsLmNvbQB5Z3ZweWhsZG9pcXVqaHRo"​).decode("​ascii"​))'</​code>​
 +
 +ou en perl :
 +<code bash>​perl -MMIME::​Base64 -le 'print decode_base64("​AHV0aWxpc2F0ZXVyQGdtYWlsLmNvbQB5Z3ZweWhsZG9pcXVqaHRo"​);'</​code>​
 +
 +Pour vous connecter avec cet identifiant crypté :
 +<code bash>​openssl s_client -starttls smtp -connect smtp.gmail.com:​587</​code>​
 +
 +Puis saisissez :
 +<​code>​ehlo domain
 +250-localpart.domain.part
 +250-PIPELINING
 +250-SIZE 31457280
 +250-VRFY
 +250-ETRN
 +250-AUTH PLAIN LOGIN
 +250-ENHANCEDSTATUSCODES
 +250-8BITMIME
 +250 DSN</​code>​
 +
 +Maintenant c'est le code de Hash de l'​identifiant mot de passe applicatif Google qu'il faut saisir :
 +<​code>​AUTH PLAIN AHV0aWxpc2F0ZXVyQGdtYWlsLmNvbQB5Z3ZweWhsZG9pcXVqaHRo</​code>​
 +
 +Vérifiez alors que vous avez la ligne :
 +<​code>​235 2.7.0 Accepted</​code>​
 ==== Correction sur l'​expéditeur ==== ==== Correction sur l'​expéditeur ====
-À ce stade, si on redémarre le service Postfix, l'​envoie de messages fonctionnent. ​+À ce stade, si on redémarre le service Postfix, l'​envoie de messages fonctionnent.
  
 Mais nous allons obtenir un message d'​erreur sur l'​expéditeur dans notre client de messagerie MUA à la réception du message. Mais nous allons obtenir un message d'​erreur sur l'​expéditeur dans notre client de messagerie MUA à la réception du message.
 +
 +Par exemple dans Gmail :
 {{ ::​adresseexpincorrecte.png?​nolink&​600 |}} {{ ::​adresseexpincorrecte.png?​nolink&​600 |}}
  
 Il faut, pour éviter cela, substituer le nom d'​expéditeur avec le nom de l'​adresse de messagerie du serveur de messagerie pour lequel on envoie le courriel. Il faut, pour éviter cela, substituer le nom d'​expéditeur avec le nom de l'​adresse de messagerie du serveur de messagerie pour lequel on envoie le courriel.
  
-=== Substitution des comptes locaux avec l'​adresse du compte de connexion ​du fournisseur de messagerie ===+=== Substitution des comptes locaux avec les adresses ​du fournisseur de messagerie ===
 Éditez le fichier generic (''​kate /​etc/​postfix/​generic''​) et modifiez le comme suivant : Éditez le fichier generic (''​kate /​etc/​postfix/​generic''​) et modifiez le comme suivant :
 <​file>​utilisateur@mon_nom_machine ​            ​username@mon_fm.fr <​file>​utilisateur@mon_nom_machine ​            ​username@mon_fm.fr
-utilisateur@mondomainemessagerie.fr ​    ​username@mon_fm.fr ​+utilisateur@mondomainemessagerie.fr ​    ​username@mon_fm.fr
 root@mondomainemessagerie.fr ​           admin@mon_fm.fr root@mondomainemessagerie.fr ​           admin@mon_fm.fr
 sudoer@mondomainemessagerie.fr ​         admin@mon_fm.fr</​file>​ sudoer@mondomainemessagerie.fr ​         admin@mon_fm.fr</​file>​
Ligne 420: Ligne 418:
 <​file>​utilisateur@mon_nom_machine ​            ​username@gmail.com <​file>​utilisateur@mon_nom_machine ​            ​username@gmail.com
 utilisateur@localhost ​                  ​username@gmail.com utilisateur@localhost ​                  ​username@gmail.com
-utilisateur@mondomainemessagerie.fr ​    ​username@gmail.com ​+utilisateur@mondomainemessagerie.fr ​    ​username@gmail.com
 root@mondomainemessagerie.fr ​           username@gmail.com root@mondomainemessagerie.fr ​           username@gmail.com
 sudoer@mondomainemessagerie.fr ​         username@gmail.com</​file>​ sudoer@mondomainemessagerie.fr ​         username@gmail.com</​file>​
Ligne 433: Ligne 431:
 <code bash>​systemctl restart postfix</​code>​ <code bash>​systemctl restart postfix</​code>​
  
-==== Débogage en cas de problèmes ==== +Vous pouvez maintenant envoyer vos messages vers votre serveur ​distantMais pour les lire il vous faudra [[:comment_configurer_sa_distribution_de_courriels_locale_MDA|installer un MDA local]], ou vous connecter ​sur le MDA de votre serveur ​de messagerie distant pour les rapatrier dans votre client local de messagerie MUA (Mutt).
-=== Vérifier l'​autentification au serveur ​SMTP de Gmail === +
-Creer un Hash (code crypté de connexion) pour votre identifiant Gmail et votre mot de passe applicatif. +
-<code bash>​python3 -c '​import sys; from base64 import b64encode; print(b64encode(bytes(f"​mon_compte_gmail:​mdp_applicatif_google",​ encoding="​ascii"​)).decode("​ascii"​))'</​code>​ +
-Soit pour notre exemple ​: +
-<code bash>​python3 -c '​import sys; from base64 import b64encode; print(b64encode(bytes(f"​utilisateur@gmail.com:​ygvpyhldoiqujhth"​encoding="​ascii"​)).decode("​ascii"​))'</​code>​ +
- +
-ou en perl: +
-<code bash>​perl -MMIME::​Base64 -le 'print encode_base64("​utilisateur\@gmail.com:​ygvpyhldoiqujhth"​);'</​code>​ +
- +
-Ce qui donne en sortie : +
-<​code>​dXPpbGlzYXRldXJAZ21haWwuY29tOnlndnB5aGxkb2lxdWpodGg=</​code>​ +
- +
-Pour vérifier qu'il n'y a pas d'​erreurs : +
-<code bash>​python3 -c '​import sys; from base64 import b64decode; print(b64decode("​dXPpbGlzYXRldXJAZ21haWwuY29tOnlndnB5aGxkb2lxdWpodGg="​).decode("​ascii"​))'</​code>​ +
- +
-ou en perl +
-<code bash>​perl -MMIME::​Base64 -le 'print decode_base64("​dXPpbGlzYXRldXJAZ21haWwuY29tOnlndnB5aGxkb2lxdWpodGg="​);'</​code>​ +
- +
-Pour vous connecter ​avec cet identifiant crypté : +
-<code bash>​openssl s_client -starttls smtp -connect smtp.gmail.com:​587</​code>​ +
- +
-Puis saisissez :  +
-<​code>​ehlo domain +
-250-localpart.domain.part +
-250-PIPELINING +
-250-SIZE 31457280 +
-250-VRFY +
-250-ETRN +
-250-AUTH PLAIN LOGIN +
-250-ENHANCEDSTATUSCODES +
-250-8BITMIME +
-250 DSN</​code>​ +
- +
-Maintenant c'​est ​le code de Hash de l'​identifiant mot de passe applicatif Google qu'il faut saisir : +
-<​code>​AUTH PLAIN dXPpbGlzYXRldXJAZ21haWwuY29tOnlndnB5aGxkb2lxdWpodGg=</​code>​ +
- +
-Vérifiez alors que vous avez la ligne : +
-<​code>​235 2.7.0 Authentication successful</​code>​ +
  • installer_postfix_avec_le_serveur_de_messagerie_sur_internet.1598530157.txt.gz
  • Dernière modification: Le 27/08/2020, 14:09
  • par sefran