Installation et configuration d'un relais SMTP
Prérequis
Les prérequis sont assez simple il suffit de disposer:
- machine sous Debian en version 13
- accès réseau permettant de joindre le domaine du relais SMTP
- dépots à jour permettant la récupération des divers paquets.
Installation
1. Postfix : Le moteur d'envoi (MTA)
Explication
Postfix est un MTA (Mail Transfer Agent), c'est-à-dire l'agent de transfert de courrier. Son rôle est de gérer toute la logistique technique de l'envoi.
- Sa mission : Il réceptionne les messages envoyés par le système et les transporte vers un serveur distant appelé "Relayhost".
- Sécurité : Il s'occupe de l'authentification sécurisée (via SASL) pour prouver votre identité au serveur de sortie.
- Conformité : Il réécrit les adresses d'expédition pour s'assurer qu'elles sont valides et éviter que vos mails ne soient bloqués ou marqués comme SPAM.
Installation
Pas de grande complexité il suffit d'aller chercher le paquets dans le dépots définis après ou pendant l'installation de Debian :
sudo apt install postfix sasl2-bin libsasl2-modules
2. Mailutils : L'outil de rédaction (MUA)
Explication
Mailutils est un MUA (Mail User Agent), soit l'agent utilisateur. C'est l'interface qui permet à l'humain ou aux scripts de "parler" à Postfix.
- Sa mission : Il fournit les commandes nécessaires pour rédiger, envoyer et lire des courriels en ligne de commande.
- Utilisation : On utilise principalement sa commande
mailpour tester la configuration en envoyant un message de test vers une adresse externe. - Outils inclus : Il comprend divers utilitaires pour lister les messages ou manipuler les boîtes aux lettres.
Installation
sudo apt install mailutils
Dans la phase d'installation ces trois demandes seront formulés, je ne vais pas trop m'y attarder car je vais repasser sur la configuration dans la partie de la documentation correspondante :
- L'installateur propose plusieurs types de serveurs. Bien que la documentation préconise d'être vigilant si le système propose "Système satellite", c'est ce que je vais choisir dans ce cas.
Selon wiki ubuntu-fr, Un système satellite pour Postfix signifie simplement que les mails du système seront envoyés automatiquement à un serveur SMTP. Ceci vous permettra d'utiliser la commande mail (du package mailx) directement pour envoyer des emails.
Il pourra par la suite être utilisé pour envoyer des emails automatiquement comme par exemple des fichiers de logs grâce à cron.
- Cette seconde demande concerne le nom de domaine qui servira à qualifier les adresses sortantes sans domaine précis. Par défaut, l'installateur suggère le nom d'hôte de la machine
- Pour finir, l'installateur demande l'adresse du sserveur qui transmettra vos messages. On peut saisir une valeur temporaire, car nous configurerons précisement le relais avec une authentification dans les étapes suivantes
Une fois l'installation terminée, nous procédons au remplacement de cette configuration automatique pour appliquer nos paramètres spécifiques
Configuration
Pour la configuration il peut être plus simple de passer par le SSH !
Préparation des fichiers
Avant de commencer quoique ce soit il va falloir arrêter le service postfix.service :
systemctl stop postfix
Puis sauvegarder la configuration originale en cas de problème dans les prochaines étapes.
mv /etc/postfix/main.cf /etc/postfix/main.cf.bck
Prérequis
- Une machine sous Debian (version 13 testée).
- Un accès réseau vers le port du relais SMTP (généralement 465 ou 587).
- Les privilèges
sudoou un accèsroot.
1. Installation des paquets
Postfix (MTA) et SASL
Objectif : Installer le moteur de transfert et les modules nécessaires à l'authentification sécurisée.
sudo apt update
sudo apt install postfix sasl2-bin libsasl2-modules
2. Configuration du Relais (main.cf)
Paramétrage générique
Objectif : Configurer Postfix pour utiliser un hôte distant avec chiffrement fort.
# Sauvegarde de la configuration par défaut
mv /etc/postfix/main.cf /etc/postfix/main.cf.orig
Contenu suggéré pour /etc/postfix/main.cf
# Configuration du relais distant
relayhost = [<RELAY_HOST>]:<PORT>
# Sécurité TLS Client
smtp_tls_wrappermode = yes
smtp_tls_security_level = encrypt
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
# Authentification SASL
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/smtp_sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_mechanism_filter = plain, login
# Réécriture d'identité
sender_canonical_maps = regexp:/etc/postfix/sender_canonical_maps
smtp_header_checks = regexp:/etc/postfix/smtp_header_check
3. Gestion de l'authentification et de l'identité
Création des tables de hachage
Objectif : Stocker les identifiants et définir les règles de réécriture d'adresses.
- Identifiants du relais :
echo "[<RELAY_HOST>]:<PORT> <USER_AUTH>:<PASSWORD>" > /etc/postfix/smtp_sasl_passwd
chmod 600 /etc/postfix/smtp_sasl_passwd
postmap /etc/postfix/smtp_sasl_passwd
- Réécriture Canonique (Enveloppe):
echo '/.+/ <EMAIL_VALIDE>' > /etc/postfix/sender_canonical_maps
postmap /etc/postfix/sender_canonical_maps
- Nettoyage des entêtes (Headers):
Création de
/etc/postfix/smtp_header_check:
/^From:/ REPLACE From: "<NOM_AFFICHAGE>" <<EMAIL_VALIDE>>
/^Sender:/ IGNORE
/^Resent-Sender:/ IGNORE
Incident : Caractères non-ASCII (Espaces insécables)
Problématique : Erreur fatale au démarrage suite à un copier-coller depuis une documentation web.
Action de correction :
# Détection et remplacement des octets UTF-8 invisibles (\xc2\xa0) par des espaces standards
sed -i 's/\xc2\xa0/ /g' /etc/postfix/main.cf
# Vérification de la syntaxe
postfix check
postconf -n
Test final
echo "Corps du message" | mail -s "Sujet du Test" -a "From: <EMAIL_VALIDE>" <DESTINATAIRE>
tail -f /var/log/mail/mail.log


