Yannik.relaymail
Description
Ce rôle configure un hôte pour qu'il envoie des e-mails sortants via un smarthost et, en option, redirige les e-mails adressés aux utilisateurs locaux du système. C'est une alternative sécurisée à ssmtp.
Pourquoi ne devrais-je pas utiliser ssmtp, n'est-ce pas plus facile à configurer ?
Je pense en fait que ce rôle rend la configuration de postfix même plus simple que celle de ssmtp.
Voici ce que j'ai découvert lorsque j'ai installé ssmtp moi-même :
Je voulais aussi utiliser ssmtp aujourd'hui, mais j'ai remarqué qu'il ne vérifie PAS le certificat SSL/TLS du serveur distant sur les versions actuelles de debian et ubuntu et ne vérifie également PAS le nom d’hôte du certificat. C'est un problème majeur, car cela rend effectivement le chiffrement inutile et votre mot de passe est transmis comme s'il était en texte clair, et n'importe qui peut l'intercepter. Cela a aussi été signalé dans un bug debian, mais il n'y a pas eu de progrès depuis des années : https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=662960
La version de ssmtp dans les paquets Redhat a été corrigée pour vérifier au moins le certificat, mais le nom d'hôte n'est toujours PAS vérifié et le chiffrement est donc tout aussi peu sécurisé que sur debian/ubuntu. Il existe un bug à ce sujet, mais il n'y a pas non plus eu de progrès depuis des années : https://bugzilla.redhat.com/show_bug.cgi?id=864894
Donc, si vous tenez à la sécurité du compte e-mail que vous utilisez pour les e-mails sortants de vos serveurs, NE utilisez PAS ssmtp.
ssmtp n'a pas eu de développement actif depuis au moins 2009 : https://anonscm.debian.org/gitweb/?p=ssmtp/ssmtp.git
En plus de ces points, tout utilisateur qui peut envoyer des e-mails via ssmtp a besoin d'un accès en lecture au fichier de configuration ssmtp qui contient le nom d'utilisateur et le mot de passe utilisés pour l'authentification smtp. Dans des conditions normales, vous donneriez probablement la permission de lecture à "autres", ce qui signifierait que chaque utilisateur/service sur ce système pourrait lire vos informations d'identification smtp.
Ce n'est pas le cas avec la conception axée sur la sécurité de postfix.
Exigences
Ce rôle fonctionne sur toutes les distributions basées sur debian et peut facilement être modifié pour fonctionner sur n'importe quelle distribution qui fournit postfix.
La version d'Ansible 2.4 ou supérieure est requise pour ce rôle.
Variables du rôle
relaymail_smtp_host
: nom d'hôte du serveur smtp utilisé pour relayer les e-mails (requis)- Exemple :
smtp.example.org
- Exemple :
relaymail_smtp_port
: port du serveur smtp utilisé pour relayer les e-mails- Par défaut :
587
- Par défaut :
relaymail_smtp_user
: nom d'utilisateur pour s'authentifier auprès du serveur de courrier relayé (requis)- Exemple :
[email protected]
- Exemple :
relaymail_smtp_password
: mot de passe pour s'authentifier auprès du serveur de courrier relayé (requis)relaymail_force_from_address
: remplacer l'adresse d'expédition parrelaymail_smtp_user
(ourelaymail_from_address
si défini).all
remplace l'adresse d'expédition pour tous les e-mails,local
la remplace pour tous les courriels envoyés par un utilisateur local,none
ne remplace jamais l'adresse d'expédition- Par défaut :
all
- Par défaut :
relaymail_from_address
: adresse d'expéditeur optionnelle à utiliser parrelaymail_force_from_address
au lieu derelaymail_smtp_user
- Exemple :
user
ou[email protected]
- Exemple :
relaymail_overwrite_to
:all
remplace l'adresse d'expédition pour tous les e-mails,local
remplace l'adresse d'expédition pour les e-mails adressés aux utilisateurs locaux,none
ne remplace jamais l'adresse d'expédition- Par défaut :
all
- Par défaut :
relaymail_overwrite_to_target
: adresse e-mail à laquelle les e-mails avec l'adresse d'expédition modifiée doivent être envoyés (requis lorsquerelaymail_overwrite_to
n'est pasnone
)- Exemple :
[email protected]
- Exemple :
relaymail_smtp_tls_security_level
: Voir http://www.postfix.org/postconf.5.html#smtp_tls_security_level- Exemple :
dane-only
- Par défaut :
secure
- Exemple :
relaymail_smtp_tls_wrappermode
: Se connecter utilisant le mode explicite SSL/TLS (au lieu de STARTSSL). Requis lors de l'envoi de mail sur le port 465 (SMTPS).- Exemple :
"yes"
- Par défaut :
"no"
- Exemple :
relaymail_authorized_submit_users
: Autoriser uniquement les utilisateurs spécifiés à soumettre des mails via la commande sendmail (voir http://www.postfix.org/postconf.5.html#authorized_submit_users)- Exemple :
root
- Par défaut :
static:anyone
- Exemple :
relaymail_restrict_port_25
: Restreindre le trafic sortant sur le port 25 à l’utilisateur postfix (via iptables).- Exemple :
false
- Par défaut :
true
- Exemple :
relaymail_enable_smtpd
: Activer smtpd sur le port 25 pour la soumission de mail via smtp- Exemple :
true
- Par défaut :
false
- Exemple :
relaymail_inet_interfaces
: Interfaces à écouter lorsque smtpd est activé- Exemple :
all
- Par défaut :
loopback-only
- Exemple :
relaymail_mynetworks
: Réseaux à partir desquels accepter et relayer les e-mails (uniquement applicable lorsque smtpd est activé)- Exemple :
127.0.0.0/8 172.30.0.0/16
- Par défaut :
127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
- Exemple :
relaymail_authorized_smtp_users
: Utilisateurs autorisés à soumettre des e-mails via smtp local- Exemple :
['keepalived']
- Par défaut :
[]
- Exemple :
relaymail_install_rsyslog
: Installe rsyslog qui est responsable de l'écriture des messages de log de postfix dans/var/log/mail.log
- Exemple :
false
- Par défaut :
true
- Exemple :
relaymail_additional_options
: dictionnaire de paires clé/valeur à ajouter àmain.cf
.- Par défaut :
{}
- Par défaut :
relaymail_additional_master_config
: configuration supplémentaire qui est ajoutée àmaster.cf
- Par défaut : ``
Remarque : Les options définies à l'aide de relaymail_additional_options
remplaceront les paramètres précédents. Selon le manuel de postfix, "Lorsque le même paramètre est défini plusieurs fois, seule la dernière instance est retenue." Donc, bien que les remplacements soient valides, postfix générera un message d'avertissement.
Exemple de Playbook
- hosts: all
roles:
- role: Yannik.relaymail
relaymail_smtp_host: smtp.example.org
relaymail_smtp_user: [email protected]
relaymail_smtp_password: secret
relaymail_overwrite_to: local
relaymail_overwrite_to_target: [email protected]
relaymail_additional_options:
smtp_tls_wrappermode: "yes"
Licence
GPLv2
Informations sur l'auteur
Yannik Sembritzki
This role setups up a host so that it sends outgoing mails over a smarthost and optionally forwards email addressed to local system users. A secure alternative to ssmtp.
ansible-galaxy install Yannik.relaymail