Yannik.relaymail
Beschreibung
Diese Rolle richtet einen Host so ein, dass er ausgehende E-Mails über einen Smarthost sendet und optional E-Mails, die an lokale Benutzer des Systems gerichtet sind, weiterleitet. Eine sichere Alternative zu ssmtp.
Warum sollte ich ssmtp nicht verwenden, ist es nicht einfacher einzurichten?
Ich glaube tatsächlich, dass diese Rolle die Einrichtung von Postfix einfacher macht als ssmtp.
Das habe ich herausgefunden, als ich ssmtp selbst installiert habe:
Ich wollte heute auch ssmtp verwenden, stellte aber fest, dass es das SSL/TLS-Zertifikat des entfernten Servers in den aktuellen Debian- und Ubuntu-Versionen NICHT überprüft und auch den Hostnamen des Zertifikats NICHT verifiziert. Das ist ein großes Problem, denn das macht die Verschlüsselung nutzlos und dein Passwort wird wie im Klartext übertragen, sodass es jeder abfangen kann. Dies wurde auch als Debian-Fehler gemeldet, aber es gab seit Jahren keinen Fortschritt: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=662960
Die ssmtp-Version in den Redhat-Paketen wurde so gepatcht, dass das Zertifikat zumindest überprüft wird, aber der Hostname wird immer noch NICHT verifiziert, und die Verschlüsselung ist daher ebenso unsicher wie bei Debian/Ubuntu. Es gibt einen Fehler dafür, aber auch hier gibt es seit Jahren keinen Fortschritt: https://bugzilla.redhat.com/show_bug.cgi?id=864894
Wenn dir die Sicherheit des E-Mail-Kontos, das du für die ausgehenden E-Mails deiner Server verwendest, wichtig ist, verwende NICHT ssmtp.
ssmtp hat seit mindestens 2009 keine aktive Entwicklung mehr: https://anonscm.debian.org/gitweb/?p=ssmtp/ssmtp.git
Zusätzlich zu diesen Punkten benötigt jeder Benutzer, der E-Mails über ssmtp senden kann, Lesezugriff auf die ssmtp-Konfigurationsdatei, die den Benutzernamen und das Passwort für die SMTP-Authentifizierung enthält. Unter normalen Bedingungen würdest du wahrscheinlich 'andere' Leserechte gewähren, was bedeutet, dass jeder einzelne Benutzer/Dienst auf diesem System deine SMTP-Anmeldeinformationen lesen könnte.
Das ist nicht der Fall mit dem sicherheitsfokussierten Design von Postfix.
Anforderungen
Diese Rolle funktioniert auf allen Debian-basierten Distributionen und kann leicht angepasst werden, um auf jeder Distribution zu funktionieren, die Postfix bereitstellt.
Ansible Version 2.4 oder höher ist für diese Rolle erforderlich.
Rollenvariablen
relaymail_smtp_host
: Hostname des SMTP-Servers, der zum Weiterleiten von E-Mails verwendet wird (erforderlich)- Beispiel:
smtp.example.org
- Beispiel:
relaymail_smtp_port
: Port des SMTP-Servers, der zum Weiterleiten von E-Mails verwendet wird- Standard:
587
- Standard:
relaymail_smtp_user
: Benutzername zur Authentifizierung beim weiterleitenden Mailserver (erforderlich)- Beispiel:
[email protected]
- Beispiel:
relaymail_smtp_password
: Passwort zur Authentifizierung beim weiterleitenden Mailserver (erforderlich)relaymail_force_from_address
: Überschreibe die Absenderadresse mitrelaymail_smtp_user
(oderrelaymail_from_address
, wenn definiert).all
überschreibt die Absenderadresse für alle E-Mails,local
überschreibt sie für alle E-Mails, die von einem lokalen Benutzer gesendet werden,none
überschreibt die Absenderadresse nie- Standard:
all
- Standard:
relaymail_from_address
: Optionale Absenderadresse, die vonrelaymail_force_from_address
anstelle vonrelaymail_smtp_user
verwendet wird- Beispiel:
user
oder[email protected]
- Beispiel:
relaymail_overwrite_to
:all
überschreibt die Empfängeradresse für alle E-Mails,local
überschreibt die Empfängeradresse für E-Mails, die an lokale Benutzer gerichtet sind,none
überschreibt die Empfängeradresse nie- Standard:
all
- Standard:
relaymail_overwrite_to_target
: E-Mail-Adresse, an die E-Mails mit überschriebenem Empfänger gesendet werden sollen (erforderlich, wennrelaymail_overwrite_to
nichtnone
ist)- Beispiel:
[email protected]
- Beispiel:
relaymail_smtp_tls_security_level
: Siehe http://www.postfix.org/postconf.5.html#smtp_tls_security_level- Beispiel:
dane-only
- Standard:
secure
- Beispiel:
relaymail_smtp_tls_wrappermode
: Verbindung mit explizitem SSL/TLS-Modus (statt STARTSSL). Erforderlich, wenn E-Mails über Port 465 (SMTPS) gesendet werden.- Beispiel:
"yes"
- Standard:
"no"
- Beispiel:
relaymail_authorized_submit_users
: Nur bestimmten Benutzern erlauben, E-Mails über den Sendmail-Befehl zu submitten (siehe http://www.postfix.org/postconf.5.html#authorized_submit_users)- Beispiel:
root
- Standard:
static:anyone
- Beispiel:
relaymail_restrict_port_25
: Beschränke den ausgehenden Verkehr auf Port 25 auf den Postfix-Benutzer (über iptables).- Beispiel:
false
- Standard:
true
- Beispiel:
relaymail_enable_smtpd
: Aktivieren Sie smtpd auf Port 25 für die smtp-basierte E-Mail-Übermittlung- Beispiel:
true
- Standard:
false
- Beispiel:
relaymail_inet_interfaces
: Schnittstellen, auf denen zu hören ist, wenn smtpd aktiviert ist- Beispiel:
all
- Standard:
loopback-only
- Beispiel:
relaymail_mynetworks
: Netzwerke, aus denen E-Mails akzeptiert und weitergeleitet werden (nur anwendbar, wenn smtpd aktiviert ist)- Beispiel:
127.0.0.0/8 172.30.0.0/16
- Standard:
127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
- Beispiel:
relaymail_authorized_smtp_users
: Benutzer, die erlaubt sind, E-Mails über das lokale SMTP zu senden- Beispiel:
['keepalived']
- Standard:
[]
- Beispiel:
relaymail_install_rsyslog
: Installiert rsyslog, das für das Schreiben von Postfix-Protokollnachrichten in/var/log/mail.log
verantwortlich ist- Beispiel:
false
- Standard:
true
- Beispiel:
relaymail_additional_options
: Wörterbuch von Schlüssel/Wert-Paaren, die zumain.cf
hinzugefügt werden.- Standard:
{}
- Standard:
relaymail_additional_master_config
: Zusätzliche Konfiguration, die zumaster.cf
hinzugefügt wird- Standard: ``
Hinweis: Optionen, die mit relaymail_additional_options
festgelegt werden, überschreiben vorherige Einstellungen. Laut der Postfix-Anleitung "Wenn dasselbe Parameter mehrfach definiert wird, wird nur die letzte Instanz erinnert."
Daher sind Überschreibungen gültig, Postfix wird jedoch eine Warnmeldung generieren.
Beispiel-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"
Lizenz
GPLv2
Autor Informationen
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