Yannik.relaymail

Description

Statut de la construction

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
  • relaymail_smtp_port : port du serveur smtp utilisé pour relayer les e-mails
    • Par défaut : 587
  • relaymail_smtp_user : nom d'utilisateur pour s'authentifier auprès du serveur de courrier relayé (requis)
  • 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 par relaymail_smtp_user (ou relaymail_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
  • relaymail_from_address : adresse d'expéditeur optionnelle à utiliser par relaymail_force_from_address au lieu de relaymail_smtp_user
  • 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
  • relaymail_overwrite_to_target : adresse e-mail à laquelle les e-mails avec l'adresse d'expédition modifiée doivent être envoyés (requis lorsque relaymail_overwrite_to n'est pas none)
  • relaymail_smtp_tls_security_level : Voir http://www.postfix.org/postconf.5.html#smtp_tls_security_level
    • Exemple : dane-only
    • Par défaut : secure
  • 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"
  • 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
  • relaymail_restrict_port_25 : Restreindre le trafic sortant sur le port 25 à l’utilisateur postfix (via iptables).
    • Exemple : false
    • Par défaut : true
  • relaymail_enable_smtpd : Activer smtpd sur le port 25 pour la soumission de mail via smtp
    • Exemple : true
    • Par défaut : false
  • relaymail_inet_interfaces : Interfaces à écouter lorsque smtpd est activé
    • Exemple : all
    • Par défaut : loopback-only
  • 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
  • relaymail_authorized_smtp_users : Utilisateurs autorisés à soumettre des e-mails via smtp local
    • Exemple : ['keepalived']
    • Par défaut : []
  • 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
  • relaymail_additional_options : dictionnaire de paires clé/valeur à ajouter à main.cf.
    • 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

À propos du projet

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.

Installer
ansible-galaxy install Yannik.relaymail
Licence
gpl-2.0
Téléchargements
499
Propriétaire