IT & Engineering

Zuverlässige Linux-Server-Warnungen mit Mailgun

Dieser Beitrag stammt von Major Hayden, Principal Architect bei Rackspace. Die heutige Multi-Cloud-Welt bietet viel Flexibilität, doch die zunehmende Infrastrukturkomplexität stellt die E-Mail-Zustellung vor ernsthafte Herausforderungen. Kunden von Mailgun wissen bereits, wie das Tool beim Versand wichtiger geschäftlicher E-Mails wie Belegen, Newslettern und Werbeangeboten hilft. Aber was ist mit all den anderen E-Mails, die Server versenden müssen, wenn etwas schiefgeht?
Bild für Zuverlässige Linux-Server-Warnungen mit Mailgun

Dieser Beitrag stammt von Major Hayden, Principal Architect bei Rackspace.

Die heutige Multi-Cloud-Welt bietet viel Flexibilität, doch die zunehmende Infrastrukturkomplexität stellt die E-Mail-Zustellung vor ernsthafte Herausforderungen. Mailgun Kunden wissen bereits, wie das Tool beim Versand wichtiger geschäftlicher E-Mails wie Belegen, Newslettern und Werbeangeboten hilft. Aber was ist mit all den anderen E-Mails, die Server versenden müssen, wenn etwas schiefgeht?

Server müssen oft eine Warnung per E-Mail versenden, wenn etwas schiefgeht oder die Systemverwaltung über eine Änderung informiert werden muss. Beispielsweise führen die meisten fehlgeschlagenen Cron-Jobs dazu, dass E-Mails generiert und an jemanden im System gesendet werden. Diese E-Mails landen oft im Postfach des root-Nutzers.

Bei manchen Servern ist das Postfach von root ein schwarzes Loch, da das Konto nicht so konfiguriert ist, dass es E-Mails an eine andere Adresse weiterleitet. In anderen Fällen konfiguriert die Systemverwaltung möglicherweise eine alternative Adresse, um die E-Mails des root-Nutzers zu empfangen. Diese E-Mails nach außerhalb des Servers zuzustellen, ist in Cloud-Umgebungen aus mehreren Gründen eine Herausforderung:

  • Viele IP-Adressen auf Cloud-Plattformen stehen bereits auf E-Mail-Blocklists 
  • Reverse DNS wird in Cloud-Umgebungen von der Systemverwaltung nicht immer richtig konfiguriert
  • Beibehalten SPF-Einträge für sich ständig verändernde Umgebungen ist schwierig
  • Das Verteilen von DomainKeys -Konfigurationen auf zuverlässige Weise ist ebenfalls schwierig
  • Einige Warn-E-Mails landen aufgrund ihres Inhalts möglicherweise in Spam-Ordnern, selbst wenn die Mailserver-Konfiguration fehlerfrei ist
  • Einige Cloud-Anbieter blockieren ausgehende Verbindungen über gängige SMTP-Ports (wie 25, 465 und 587)

Mailgun kann diese wichtigen E-Mails auf fast jedem System mit Internetzugang zuverlässig zustellen. Gängige MTAs wie Postfix oder Sendmail können sich mit Mailguns SMTP-Relay Dienst verbinden und E-Mails mit minimalem Konfigurationsaufwand versenden. Darüber hinaus können all diese E-Mails sicher über SSL/TLS zugestellt werden.

Ich habe diesen Prozess etwas vereinfacht, indem ich eine Ansible-Rolle namens ansible-mailgun erstellt habe. Diese installiert Postfix und konfiguriert es so, dass Mailgun als SMTP-Relay genutzt wird. Die Rolle lässt sich problemlos zu jedem bestehenden Ansible-Playbook hinzufügen:

Es müssen nur drei Variablen konfiguriert werden, damit die Rolle funktioniert. Zunächst finden sich mailgunusername und mailgunpassword im Mailgun-Dashboard für die jeweilige Domain unter der Überschrift Domain Information . Die Variable rootforward_ sollte auf eine E-Mail-Adresse gesetzt werden, die auf dem jeweiligen Server die E-Mails für den root-Nutzer empfangen kann.

So funktioniert es, wenn eine Warn-E-Mail auf einem der Server generiert wird, auf den die Rolle ansible_mailgun angewendet wurde:

  1. Die Warn-E-Mail landet in der Zustellungswarteschlange von Postfix für root
  2. Postfix verbindet sich über SMTP mit Mailgun, um die E-Mail weiterzuleiten (an die Adresse, die als rootforward_ in der Ansible-Rolle konfiguriert wurde)
  3. Mailgun stellt die E-Mail an den Nutzer zu, der für den Empfang der E-Mails von root konfiguriert ist

Dieser E-Mail-Zustellweg stellt sicher, dass Ihre Warnungen zuverlässig zugestellt werden, unabhängig davon, wo sie generiert werden.