Mise à jour : Sur les conseils d'un ami informaticien, j'exécute postfix sur tous mes serveurs, plutôt que de créer un serveur de messagerie cloud unique. Voici ma solution jusqu'à présent :
/etc/postfix/main.cf
# résultat de hostname -f - le courrier des utilisateurs locaux semble provenir d'ici
myhostname = domU-01-02-03-04-05-06.compute-1.internal
# Livraison locale - inclure tous les alias 127.0.0.1 de /etc/hosts
mydestination = $myhostname, $mydomain, rest_of_entries_from_hosts
# Nécessaire pour que la traduction d'adresse fonctionne
myorigin = $mydomain
# Communication avec MS Online
# :submission = port 587
relayhost = [smtp.mail.microsoftonline.com]:submission
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = # Oui, laisser vide
smtp_tls_security_level = encrypt
smtp_generic_maps = hash:/etc/postfix/generic
# Activer si vous avez besoin de débogage, mais cela expose les identifiants dans les journaux
#debug_peer_level = 2
#debug_peer_list = smtp.mail.microsoftonline.com
# Écouter uniquement sur les interfaces locales (pas sur le réseau public)
inet_interfaces = localhost
# J'ai omis un tas de paramètres par défaut de CentOS. postconf -n est votre ami.
# Ceux-ci sont inclus
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
/etc/postfix/sasl_passwd
# Exécutez postmap /etc/postfix/sasl_passwd après avoir modifié
# Aussi, chown root:root; chmod 600
smtp.mail.microsoftonline.com relayer@hosteddomain.com:VotreMdp@ssw0rd
/etc/postfix/generic
# Exécutez postmap /etc/postfix/generic
# J'ai vu du courrier local provenant de l'une ou l'autre source
# résultat de dnsdomainname
@compute-1.internal relayer@hosteddomain.com
# résultat de hostname -f
@domU-01-02-03-04-05-06.compute-1.internal relayer@hosteddomain.com
/etc/aliases
# Exécutez newaliases après modification
# Beaucoup de choses ici. En grande partie, assurez-vous simplement que le graphique pointe vers root, comme par exemple
mailer-daemon: postmaster
postmaster: root
# Et la partie importante - votre email ou groupe de distribution
root: awsadmins@hosteddomain.com
/etc/passwd
# Parfois, il est utile d'étendre le nom, de sorte que le courrier émane de 'root at aws host 5'
# plutôt que simplement 'root'
# Était
#root:x:0:0:root:/root:/bin/bash
# Est
root:x:0:0:root on aws host 5:/root:/bin/bash
Choses qui me réjouissent :
- Beaucoup de courriers sont envoyés à root, et la seule ligne dans
alias
indique qui les reçoit.
- Tout le courrier des utilisateurs locaux est traduit comme provenant de
relayer@hosteddomain.com
, donc il passe par le serveur SMTP MS Online.
- postfix a une documentation bien meilleure que sendmail.
Choses qui ne me réjouissent pas :
- Des modifications personnalisées sont nécessaires pour chaque hôte, et plusieurs étapes. J'ai écrit un script bash pour aider.
- Le truc du nom
passwd
ne fonctionne pas toujours, et il peut être difficile de déterminer de quel serveur provient un courrier.
- Chaque courrier envoyé génère trois avertissements dans le journal :
Avertissement : smtp.mail.microsoftonline.com[65.55.171.153] a proposé une liste de mécanismes d'authentification nulle
(Le serveur SMTP envoie une liste AUTH
nulle avant STARTTLS
, mais AUTH LOGIN
après).
Échec de la vérification du certificat pour smtp.mail.microsoftonline.com : num=20:impossible de récupérer le certificat de l'émetteur local
(Il y a quelques options de configuration concernant les certificats, mais je ne suis pas sûr si la livraison de courrier échoue lorsque le certificat est renouvelé)
Échec de la vérification du certificat pour smtp.mail.microsoftonline.com : num=27:certificat non approuvé
(Identique à #2)
Merci à la communauté de serverfault pour avoir partagé des opinions fortes sur les serveurs de messagerie.