Installer et configurer Postfix
Configuration SMTP à utiliser
- En test, si vous ne pouvez pas créer directement le compte email
mailer
sur le domaine du SINP, configurer le service de relai SMTP de Google comme indiqué ici : https://support.google.com/a/answer/2956491- Sélectionner :
- Expéditeurs autorisés : Uniquement les adresses de mes domaines
- Authentification : Accepter uniquement les messages provenant des adresses IP spécifiées
- Adresses/plages IP : mettre celles des 2 instances en IPv4
- Authentification SMTP requise : cocher la case
- Exiger le chiffrement TLS : cocher la case
- Cela permet ensuite d'utiliser les infos suivantes pour les tests :
- l'adresse SMTP : smtp-relay.gmail.com
- le port : 587
- Un utilisateur et son mot de passe : mailer@cbn-alpin.fr / <mot-de-passe-de-mailer>
- En prod, utiliser le SMTP d'OVH :
- Hôte : ssl0.ovh.net
- Port : 587
- Username : mailer@<domaine-sinp> (si possible, sinon admin@<domaine-sinp>) [mettre l'adresse du compte email et pas un alias]
- Password : le mot de passe du compte email ci-dessus
- TLS : true
Installer Postfix
- Reprise de l'installation de Postfix, la modification majeure est la réécriture du Sender, ce changement permet d envoyer un mail sans la réécriture -r dans la commande d'envoie.
- Installation de Postfix :
apt install libsasl2-modules postfix bsd-mailx
- Choisir :
site internet
- Indique le domaine du serveur comme nom de courrier. Ex. :
silene.eu
- Ajout des informations du mail permettant l'envoie du message. Dans notre cas l'adresse mail est hébergée sur OVH :
vi /etc/postfix/sasl/sasl_passwd
- Ajouter le contenu (remplacer
<mot-de-passe>
par le mot de passe du compte email mailer@<domaine-sinp> d'OVH et <domaine-sinp> par le domaine du SINP, ex. silene.eu):[ssl0.ovh.net]:587 mailer@<domaine-sinp>:<mot-de-passe>
- Créer le fichier de base de données sasl_passwd.db qui contiendra le mot de passe & vérifier qu'elle est bien présente :
postmap /etc/postfix/sasl/sasl_passwd ll /etc/postfix/sasl/
- Puis leurs attribuer les droits nécessaire :
chown root:root /etc/postfix/sasl/sasl_passwd* chmod 0600 /etc/postfix/sasl/sasl_passwd*
- Éditer le fichier de configuration de Postfix :
vi /etc/postfix/main.cf
- Remplacer le contenu suivant,
<server-name>
peut valoirweb-paca-sinp
par exemple :smtpd_banner = $myhostname ESMTP relayhost = [ssl0.ovh.net]:587 myhostname = <server-name> mydestination = $myhostname, localhost.$mydomain, localhost
- Commenter le contenu suivant :
smtp_tls_security_level=may smtpd_tls_security_level=may
- Ajouter le contenu suivant :
# Enable SASL authentication smtp_sasl_auth_enable = yes # Disallow methods that allow anonymous authentication smtp_sasl_security_options = noanonymous # Location of sasl_passwd smtp_sasl_password_maps = hash:/etc/postfix/sasl/sasl_passwd # Enable STARTTLS encryption smtp_tls_security_level = encrypt # Location of CA certificates smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt # Add Header rewrite (solution 1 🗑️) # smtp_header_checks = pcre:/etc/postfix/smtp_header_checks # Add Sender rewrite (solution 2) sender_canonical_classes = envelope_sender, header_sender sender_canonical_maps = regexp:/etc/postfix/sender_canonical_maps
Note concernant le service Systemd Postfix
- Il en existe plusieurs visible avec la commande :
systemctl status postfix*
- C'est le service nommé postfix@-.service qui correspond au daemon lancé par le service postfix.service
- Pour l'affichage dans Grafana, utiliser celui nommé : postfix@-.service
Définir un "sender" par défaut
Si l'on souhaite contrôler l'adresse email qui envoie les emails du serveur (le FROM:
), deux solutions :
- réécrire l'entête des emails envoyés à l'aide du paramètre
smtp_header_check
et mettre en place un fichier de remplacement à l'aide du paramètresmtp_generic_maps
. Cette solution semble poser problème si l'on souhaite installer OpenDkim. - réecrire avec le from à l'aide de
sender_canonical_maps
🗑️ Pour la solution 1 (voir aussi : https://superuser.com/a/695191):
- Installer le paquet supplémentaire suivant :
apt install postfix-pcre
- Vérifier la présence du paramètre suivant dans le fichier /etc/postfix/main.cf :
vi /etc/postfix/main.cf
# Add Header rewrite smtp_header_checks = pcre:/etc/postfix/smtp_header_checks
- Crééer le fichier /etc/postfix/smtp_header_checks avec le contenu suivant :
vi /etc/postfix/smtp_header_checks
/^From:\s+.*/ REPLACE From: "<nom-sinp>" <mailer@<domaine-sinp>>
- Exemple :
/^From:\s+.*/ REPLACE From: "Silene web" <mailer@silene.eu>
- Redémarrer Postfix :
systemctl restart postfix
Pour la solution 2, sender_canonical_maps
:
- Créer le fichier suivant :
vi /etc/postfix/sender_canonical_maps
- Ajouter le contenu :
/.+/ mailer@<domaine-sinp>
- Éditer le fichier de conf de Postfix :
vi /etc/postfix/main.cf
- Ajouter le contenu :
# Add Sender rewrite sender_canonical_classes = envelope_sender, header_sender sender_canonical_maps = regexp:/etc/postfix/sender_canonical_maps
- Redémarrer Postfix :
systemctl restart postfix
Tester l'envoie d'email
- Commande d'envoi d'email :
echo "THIS IS A TEST EMAIL sended at $(date "+%F %H:%M")" | mail -s "[${HOSTNAME}] Test email" adminsys@<domaine-sinp>
- Vérifier en parallèle les logs :
tail -f /var/log/syslog