Le blog-notes de Mickaël

/var/log/mickaël

Configurer Postfix pour le smtp authentifié Orange

Rédigé par Mickaël Aucun commentaire
Classé dans : Messagerie Mots clés : postfix, smtp, orange, smarthost, authentification

Je souhaitais envoyer des mails de mes différents équipements situés dans mon réseau local avec une adresse du type xxx.tux.lan

Une des solutions aurait été d'installer un serveur de mails complet, mais j'ai préféré configurer Postfix comme relais SMTP avec le fournisseur Orange qui se charge de relayer mes mails vers l’extérieur.

Sous Centos7, nous avons besoin de postfix, mutt et cyrus-sasl

[root@srvcentos ~]# rpm -qa | grep 'postfix\|mutt\|cyrus-sasl'
postfix-2.10.1-7.el7.x86_64
mutt-1.5.21-28.el7_5.x86_64
cyrus-sasl-plain-2.1.26-23.el7.x86_64
cyrus-sasl-2.1.26-23.el7.x86_64
cyrus-sasl-lib-2.1.26-23.el7.x86_64

Sous Debian10, nous avons besoin de postfix, postfix-pcre, mutt et libsasl2-2.

root@srvdebian:~# dpkg -l | grep 'postfix\|mutt\|libsasl' | awk {'print $2" "$3'}
libsasl2-2:amd64 2.1.27+dfsg-1
libsasl2-modules:amd64 2.1.27+dfsg-1
libsasl2-modules-db:amd64 2.1.27+dfsg-1
mutt 1.10.1-2.1
postfix 3.4.5-1
postfix-pcre 3.4.5-1

Lors de l'installation, il vous sera demandé quel type de configuration vous souhaitez mettre en place. 

  • Site Internet pour que postfix soit un serveur de mail.
  • Internet avec un « smarthost » pour un serveur de mail qui utilisera un relais SMTP pour envoyer des courriels à l’extérieur.
  • Système satellite afin que postfix soit un relayhost qui enverra le courrier à une autre machine.
  • Local uniquement pour un serveur de mail fonctionnant uniquement dans votre réseau local.

Ici, je choisis Internet avec un « smarthost ».

Je configure d'abord le fichier de configuration postfix situé dans /etc/postfix.

J'insère les directives et j'enregistre le fichier.

PS : si vous utilisez les DNS d'orange, vous pourrez utiliser la directive :

relayhost = [smtp.orange.fr]:587 au lieu de relayhost = [80.12.242.10]:587

# Nom de la machine.
myhostname = srvcentos.tux.lan

# Domaine qui apparaît dans le courrier envoyé à partir de cette machine.
myorigin = $mydomain

# Domaine
mydomain = tux.lan

# Tous les emails à destination de ces domaines seront conservés en local
mydestination = $myhostname localhost.$mydomain localhost

# On utilise le SMTP de orange comme passerelle pour relayer les mails.
relayhost = [80.12.242.10]:587

# On autorise uniquement la machine locale à relayer le courrier
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128

# Ne pas accepter de courrier en dehors de la boucle locale
inet_interfaces = 127.0.0.1

# Activation du suport SASL dans Postfix
smtp_sasl_auth_enable = yes

# Fichier contenant les informations d'authentification
smtp_sasl_password_maps = hash:/etc/postfix/.orange.conf

# Permet ce controler les mécanismes de mot de passe qui seront présentés lorsque les clients se connecteront au serveur smtp
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous

# Définition du domaine d'authentification de l'utilisateur
smtpd_sasl_local_domain = $myhostname

# On permet à Postfix d'annoncer son support d'authentification SMTP de facon standard et non-standard
broken_sasl_auth_clients = yes

# Permet à Postfix d'autoriser le relais des utilisateurs authentifiés
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination

# Fichier contenant la réécriture de l'adresse d’expéditeur
sender_canonical_maps = hash:/etc/postfix/sender_canonical

# Fichier contenant les règles à utiliser sur les en-têtes de mails avant qu'ils ne soient envoyés
smtp_header_checks = regexp:/etc/postfix/smtp_header_checks

# Pour éviter les erreurs : "Too many connections, slow down", on insère des directives dans le fichier transport
slow_destination_recipient_limit = 20
slow_destination_concurrency_limit = 2
slow_destination_rate_delay = 2s
default_destination_concurrency_limit = 10
transport_maps = hash:/etc/postfix/transport

J'édite ensuite le fichier .orange.conf qui contient les informations d'authentification.

On insère les informations sous la forme :

[80.12.242.10]:587 mail@orange.fr:mot_de_passe

Le fichier contenant les informations d’authentification, on va attribuer les droits 600 afin que root puisse être le seul à écrire et lire dans le fichier.

A partir du fichier, nous allons créer le fichier de base de données de hachage correspondant avec postmap et supprimer la version en clair.

[root@srvcentos ~]# chmod 600 /etc/postfix/.orange.conf
[root@srvcentos ~]# postmap hash:/etc/postfix/.orange.conf
[root@srvcentos ~]# rm -rf /etc/postfix/.orange.conf
[root@srvcentos ~]# ls -la /etc/postfix | grep .orange
-rw-------   1 root root 12288 11 nov.  10:20 .orange.conf.db

Ensuite nous allons éditer le fichier sender_canonical qui va permettre d'effectuer une réécriture de l'adresse d’expéditeur.

Comme le domaine tux.lan est un domaine local, je vais réécrire les adresses en @orange.fr

@tux.lan @orange.fr

On va attribuer les droits 600 afin que root puisse être le seul à écrire et lire dans le fichier.

A partir du fichier, nous allons créer le fichier de base de données de hachage correspondant avec postmap et supprimer la version en clair.

[root@srvcentos ~]# chmod 600 /etc/postfix/sender_canonical
[root@srvcentos ~]# postmap hash:/etc/postfix/sender_canonical
[root@srvcentos ~]# rm -rf /etc/postfix/sender_canonical
[root@srvcentos ~]# ls -l /etc/postfix/sender_canonical*
-rw------- 1 root root 12288 11 nov.  17:52 /etc/postfix/sender_canonical.db

Pour terminer nous allons éditer le fichier smtp_header_checks.

Celui-ci va contenir les règles à utiliser sur les en-têtes de mails avant qu'ils ne soient envoyés.

ici, je vais demander la réécriture de l'expéditeur de sorte que celui-ci soit SRVCentos<srvcentos.tux.lan>

/^(F|f)rom:.*/ REPLACE From: SRVCentos<srvcentos@tux.lan>

Une fois enregistré, on va attribuer les droits 600 afin que root puisse être le seul à écrire et lire dans le fichier.

[root@srvcentos ~]# chmod 600 /etc/postfix/smtp_header_checks
[root@srvcentos ~]# ls -l /etc/postfix/smtp_header_checks
-rw------- 1 root root 59 11 nov.  17:36 /etc/postfix/smtp_header_checks

Maintenant que notre configuration est terminée, nous allons recharger la configuration de Postfix.

[root@srvcentos ~]# postfix reload
postfix/postfix-script: refreshing the Postfix mail system

Pour finir, je teste l'envoi de mails et je vais vérifier dans mes logs que l'envoi se passe bien.

Vous pouvez voir qu'un message ayant pour identifiant 20191111171204.GA1768@srvcentos.tux.lan avec pour expéditeur root@orange.fr à destination d'un seul destinataire ( nrcpt=1 ) a été envoyé à laloce4402@3mailapp.net via le relais smtp 80.12.242.10

Vous pouvez voir que la réécriture de l'en-tête fonctionne.

[root@srvcentos ~]# echo "Test envoi mail" | mutt -s "Ceci est un test d'envoi de mail" laloce4402@3mailapp.net
[root@srvcentos ~]# tail -f /var/log/maillog
Nov 11 18:12:04 srvcentos postfix/pickup[1751]: 7AD06202B5C7: uid=0 from=<root>
Nov 11 18:12:04 srvcentos postfix/cleanup[1772]: 7AD06202B5C7: message-id=<20191111171204.GA1768@srvcentos.tux.lan>
Nov 11 18:12:04 srvcentos postfix/qmgr[1752]: 7AD06202B5C7: from=<root@orange.fr>, size=466, nrcpt=1 (queue active)
Nov 11 18:12:05 srvcentos postfix/smtp[1774]: 7AD06202B5C7: replace: header From: root <root@srvcentos.tux.lan>: From: SRVCentos<srvcentos@tux.lan>
Nov 11 18:12:05 srvcentos postfix/smtp[1774]: 7AD06202B5C7: to=<laloce4402@3mailapp.net>, relay=80.12.242.10[80.12.242.10]:587, delay=0.96, delays=0.04/0.01/0.52/0.39, dsn=2.0.0, status=sent (250 2.0.0 QhC42100p2WSsFL03hC5d9 mail accepted for delivery)
Nov 11 18:12:05 srvcentos postfix/qmgr[1752]: 7AD06202B5C7: removed

Enfin, je vais sur mon Mail User agent vérifier la bonne réception des mails...

 

Écrire un commentaire

Quelle est la troisième lettre du mot czvpa ?

Fil RSS des commentaires de cet article