Dans un article récent, j’ai décrit la configuration de Postfix sur une machine publique dans le but de recevoir les notifications du système ainsi que les mails générés par les applications locales. Aujourd’hui, nous allons essayer d’obtenir un résultat semblable avec un serveur installé dans un réseau local, autrement dit une machine qui n’a pas d’ouverture frontale sur Internet. Pour ce faire, nous allons configurer Postfix comme relais SMTP authentifié.
Installation
Tout comme sur une machine publique, nous avons besoin des paquets postfix
et mailx
.
$ rpm -q postfix mailx postfix-2.10.1-7.el7.x86_64 mailx-12.5-19.el7.x86_64
Pour l’authentification, nous utiliserons Cyrus SASL (Simple Authentication and Security Layer, c’est-à-dire « couche d’authentification et de sécurité simple »).
$ rpm -qa | grep cyrus-sasl cyrus-sasl-lib-2.1.26-23.el7.x86_64 cyrus-sasl-plain-2.1.26-23.el7.x86_64
Configuration initiale
Nous avons abordé la configuration de base du fichier /etc/postfix/main.cf
dans notre précédent article sur Postfix. Cette configuration sera adaptée à notre machine locale.
Pour commencer, les directives myhostname
et mydomain
seront adaptées en fonction du FQDN du serveur.
# Host myhostname = amandine.microlinux.lan # Domain mydomain = microlinux.lan
La directive relayhost
permettra de définir un relais SMTP.
# Deliver via provider mailhub
relayhost = mail.isp.com
Pour la connexion au serveur SMTP, on ajoutera les directives suivantes.
smtp_sasl_auth_enable = yes smtpd_sasl_auth_enable = yes smtp_sasl_security_options = noanonymous smtp_sasl_tls_security_options = noanonymous smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_use_tls = yes smtp_tls_note_starttls_offer = yes smtp_sasl_mechanism_filter = login, plain
Le fichier /etc/postfix/sasl_passwd
contiendra les paramètres de connexion.
mail.isp.com username:password
Générer le fichier sasl_passwd.db
avec la commande postmap
.
$ sudo postmap sasl_passwd
Pour sécuriser l’installation, il faut impérativement supprimer le fichier sasl_passwd
et restreindre les permissions du fichier sasl_passwd.db
.
$ sudo rm sasl_passwd $ sudo chmod 0400 sasl_passwd.db
Prendre en compte les modifications.
$ sudo systemctl restart postfix
Premier test
Envoyer un mail sur un compte externe.
$ mail info@microlinux.fr Subject: Test Postfix LAN Ceci est un test. . EOT
Vérifier si le mail est bien arrivé à destination.
À partir de là, on pourra recevoir toutes les notifications système de la machine par mail.
Utiliser Gmail comme relais SMTP
En temps normal, Gmail fait partie des services qu’il faut éviter au quotidien. En revanche, on peut très bien s’en servir comme relais SMTP pour les alertes des serveurs. Voilà la ligne correspondante pour /etc/postfix/main.cf
.
relayhost = smtp.gmail.com:587
Quant aux indications fournies dans /etc/postfix/sasl_passwd
, elles ressembleront à ceci.
smtp.gmail.com:587 username@gmail.com:password
Le premier envoi de mail échouera probablement, parce que Google envoie une alerte de sécurité au compte mail. Dans ce cas, il suffit de cliquer sur le bouton de confirmation pour débloquer l’envoi.
La rédaction de cette documentation demande du temps et des quantités significatives de café espresso. Vous appréciez ce blog ? Offrez un café au rédacteur en cliquant sur la tasse.
0 commentaire