====== Installer et configurer Postfix ====== * Ressource : [[https://www.linode.com/docs/email/postfix/configure-postfix-to-send-mail-using-gmail-and-google-apps-on-debian-or-ubuntu/|Utilisation avec un compte Gmail et le SMTP de Google]] ===== 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 / * En prod, utiliser le SMTP d'OVH : * //Hôte// : ssl0.ovh.net * //Port// : 587 * //Username// : mailer@ (si possible, sinon admin@) [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 '''' par le mot de passe du compte email mailer@ d'**OVH** et par le domaine du SINP, ex. //silene.eu//): [ssl0.ovh.net]:587 mailer@: * 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, '''' peut valoir ''web-paca-sinp'' par exemple : smtpd_banner = $myhostname ESMTP relayhost = [ssl0.ovh.net]:587 myhostname = 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ètre ''smtp_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: "" > * Exemple : /^From:\s+.*/ REPLACE From: "Silene web" * 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@ * É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@ * Vérifier en parallèle les logs : tail -f /var/log/syslog