Yannik.relaymail

Beschreibung

Build-Status

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
  • relaymail_smtp_port: Port des SMTP-Servers, der zum Weiterleiten von E-Mails verwendet wird
    • Standard: 587
  • relaymail_smtp_user: Benutzername zur Authentifizierung beim weiterleitenden Mailserver (erforderlich)
  • relaymail_smtp_password: Passwort zur Authentifizierung beim weiterleitenden Mailserver (erforderlich)
  • relaymail_force_from_address: Überschreibe die Absenderadresse mit relaymail_smtp_user (oder relaymail_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
  • relaymail_from_address: Optionale Absenderadresse, die von relaymail_force_from_address anstelle von relaymail_smtp_user verwendet wird
  • 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
  • relaymail_overwrite_to_target: E-Mail-Adresse, an die E-Mails mit überschriebenem Empfänger gesendet werden sollen (erforderlich, wenn relaymail_overwrite_to nicht none ist)
  • relaymail_smtp_tls_security_level: Siehe http://www.postfix.org/postconf.5.html#smtp_tls_security_level
    • Beispiel: dane-only
    • Standard: secure
  • 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"
  • 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
  • relaymail_restrict_port_25: Beschränke den ausgehenden Verkehr auf Port 25 auf den Postfix-Benutzer (über iptables).
    • Beispiel: false
    • Standard: true
  • relaymail_enable_smtpd: Aktivieren Sie smtpd auf Port 25 für die smtp-basierte E-Mail-Übermittlung
    • Beispiel: true
    • Standard: false
  • relaymail_inet_interfaces: Schnittstellen, auf denen zu hören ist, wenn smtpd aktiviert ist
    • Beispiel: all
    • Standard: loopback-only
  • 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
  • relaymail_authorized_smtp_users: Benutzer, die erlaubt sind, E-Mails über das lokale SMTP zu senden
    • Beispiel: ['keepalived']
    • Standard: []
  • relaymail_install_rsyslog: Installiert rsyslog, das für das Schreiben von Postfix-Protokollnachrichten in /var/log/mail.log verantwortlich ist
    • Beispiel: false
    • Standard: true
  • relaymail_additional_options: Wörterbuch von Schlüssel/Wert-Paaren, die zu main.cf hinzugefügt werden.
    • Standard: {}
  • relaymail_additional_master_config: Zusätzliche Konfiguration, die zu master.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

Über das Projekt

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.

Installieren
ansible-galaxy install Yannik.relaymail
GitHub Repository
Lizenz
gpl-2.0
Downloads
499