"Envoyer des mails de notification depuis un serveur Debian"

publié le 02/11/2020 dans Linux | tags : [linux, postfix, gmail]

Il arrive régulièrement que nous ayons besoin d'envoyer des mails depuis un serveur Linux. Par exemple pour envoyer des notifications à l'administrateur.

Dans ce tuto nous allons installer postfix afin d'envoyer des mails depuis notre serveur DEBIAN 10.

Nous allons utiliser le service GMAIL pour relayer nos mails.

Installation de Postfix

On commence par mettre à jour le système et installer Postfix

~# apt-get update && apt-get upgrade
~# apt-get install libsasl2-modules postfix

Postfix va lancer l'assistant d'installation:

assistant1

Ensuite postfix va vous demander de choisir un type d'installation. Vous allez choisir site internet

assistant2

Entrez ensuite votre nom de domaine:

assistant3

Création d'un mot de passe application pour GMAIL

Si vous avez activé l'authentification à deux facteurs (2FA), vous devez créer un mot de passe Application. Vous pouvez consulter la documentation google à cette adresse

Paramétrage de postfix

il faut ensuite modifier le fichier /etc/postfix/main.cf afin de modifier la valeur myhostname avec notre nom d'hôte pleinement qualifié (fqdn)

myhostname = mail.exemple.fr

Nous allons maintenant ajouter le mot de passe du compte gmail (Attention, si vous avez activé l'authentification à deux facteurs de bien utilisé le mot de passe généré plus haut...). Nous allons pour cela modifier le fichier /etc/postfix/sasl/sasl_passwd

~# vi /etc/postfix/sasl/sasl_passwd

insérez ici l'authentification de cette manière (vous pouvez faire un copier-coller et remplacer le login/mdp avec les bonnes valeurs):

[smtp.gmail.com]:587 username@gmail.com:password

On peut maintenant utiliser la commande postmappour générer un fichier de bdd de hash:

~# postmap /etc/postfix/sasl/sasl_passwd

Nous allons sécuriser un peu l'accès aux fichiers:

~# chown root:root /etc/postfix/sasl/sasl_passwd /etc/postfix/sasl/sasl_passwd.db 
~# chmod 0600 /etc/postfix/sasl/sasl_passwd /etc/postfix/sasl/sasl_passwd.db

Configurer le relay postfix

Nous allons modifier le fichier main.cf afin de relayer le courrier vers le smtp de gmail:

~# vi /etc/postfix/main.cf

On modifie la valeur relayhost:

relayhost = [smtp.gmail.com]:587

Ensuite on ajoute ces lignes pour activer l'authentification:

smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/sasl/sasl_passwd
smtp_tls_security_level = encrypt
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt

Configurer l'adresse mail de root

on edite le fichier /etc/aliases

vi /etc/aliases

le fichier doit ressembler à

# See man 5 aliases for format
postmaster: root
root: username@domaine.com # On ajoute cette ligne avec l'adresse mail de l'admin du serveur

On compile les alias:

newaliases

on redémarre ensuite postfix

service postfix restart

Test d'envoi de mail

On peut utiliser sendmail pour tester l'envoi d'un mail (attention le point . à la fin est important):

# sendmail root
From: monserveur
Subject: Mail test
Ceci est un test
.

Vous pouvez vérifier que tout s'est bien passé en consultant les logs:

tail -f /var/log/mail.log