Postfix als Send-Only MTA

Postfix ist eine beliebte freie und quelloffene Software, die als Mail Transfer Agent (MTA) fungiert. Die Aufgabe von Postfix ist die Weiterleitung und Zustellung von E-Mails. Neben der klassischen Verwendung kann Postfix auch so konfiguriert werden, dass E-Mails nur von lokalen Anwendungen versendet werden.

Die Verwendung von Postfix als Send-Only MTA ist nützlich um Statusmeldungen des Servers an die Server-Administratoren weiterzuleiten oder für Webseiten Formulare bzw. Passwort Reset Anfragen.

Diese Anleitung beschreibt die Installation und Konfiguration von Postfix als Send-Only MTA auf einem Debian 11 System.

Hostname Einstellungen

Damit Postfix E-Mails im definierten Format benötigt der Server einen Full Qualified Host Name (FQDN). Wenn Ihr Server bereits über einen solchen verfügt, können Sie diesen Schritt überspringen, andernfalls müssen Sie einen einrichten.

Um die Hostname Einstellungen Ihres Systems zu überprüfen, führen Sie folgendes Kommando aus:

# hostname
kb

Wird hier nur ein einzelner Name ohne Domain und Toplevel-Domain angezeigt, setzen Sie mit dem hostnamectl-Kommando einen FQDN:

# hostnamectl set-hostname kb.prontosystems.de

Jetzt sollte bei der Abfrage des Hostnamens ein FQDN angezeigt werden. Dieser wird später von Postfix als Absender Domain verwendet:

# hostname
kb.prontosystems.de

Postfix Installation und Grundeinstellungen

# apt update && apt upgrade

Postfix besteht aus dem gleichnamigen Paket und kann über das Debian Repository installiert werden. Zusätzlich sollte noch das Paket mailutils installiert werden, welches allerhand nützlicher Werkzeuge beinhaltet.

# apt install mailutils -y

Bei der Installation von Postfix wird ein Wizard gestartet, der grundsätzliche Informationen abfragt. Stand heute können für unseren Verwendungszweck die Standardeinstellungen beibehalten werden:

# apt install postfix -y
Klicken zum Vergrößern

Damit ist die Installation von Postfix und mailutils abgeschlossen. Der Status kann mit dem systemctl-Kommando abgerufen werden:

# systemctl status postfix
● postfix.service - Postfix Mail Transport Agent
     Loaded: loaded (/lib/systemd/system/postfix.service; enabled; vendor preset: enabled)
     Active: active (exited) since Thu 2022-08-11 13:51:02 CEST; 13s ago
   Main PID: 20496 (code=exited, status=0/SUCCESS)
      Tasks: 0 (limit: 1093)
     Memory: 0B
        CPU: 0
     CGroup: /system.slice/postfix.service

Aug 11 13:51:02 kb.mail.kastner.de systemd[1]: Starting Postfix Mail Transport Agent...
Aug 11 13:51:02 kb.mail.kastner.de systemd[1]: Finished Postfix Mail Transport Agent.

Postfix Konfiguration

Damit Postfix nur auf dem Loopback Device lauscht und keine E-Mails von außen annimmt (Send-Only) wird in der Postfix Konfigurationsdatei /etc/postfix/main.cf der Parameter inet_interface auf loopback-only gesetzt:

# cat /etc/postfix/main.cf | grep inet_interface
inet_interfaces = loopback-only

Überprüfen Sie die Ausgabe von postconf mydomain, ob die korrekte Domain angezeigt wird:

# postconf mydomain
mydomain = prontosystems.de

Starten Sie Postfix um die Konfiguration einzulesen:

# systemctl restart postfix

Konfiguration testen

Jetzt sollte der Postfix Mailserver als Send-Only MTA fertig eingerichtet sein. Sie können sich aus der Konsole heraus eine Testmail senden:

# echo "Testmail from Prontosystems KB Server" | mail -s "Betreff Test 15:05 Uhr" alias@destination.com

Überprüfen Sie ggf. Ihren Spamfilter. Dieser Mailserver ist sehr rudimentär gehalten und wird uU vom empfangenden Mailserver als verdächtig eingestuft. Ggf. müssen Sie den Absender whitelisten.

Systemmeldungen weiterleiten

Linux versendet Statusbenachrichtigungen an root per E-Mail. Mit dieser Postfix Konfiguration können Sie diese Statusmeldungen per E-Mail an eine Administrator Adresse weiterleiten. Verknüpfen Sie dazu root mit der gewünschten Zieladresse in der Datei /etc/aliases:

# cat /etc/aliases | grep root:
root: alias@domain.de

Lesen Sie im Anschluss die Änderung an der Datei /etc/aliases in die Konfiguration von Postfix ein:

# newaliases

Testen Sie das System Notification System:

# echo "Test E-Mail System Status Notification" | mail -s "root notification test" root

Überprüfen Sie ggf. Ihren Spam-Filter.

Logging

Standardmäßig schreibt Postfix seine Logdateien nach /var/log/mail.[log|err|info]. Um eine lesbare Zusammenfassung der wichtigsten Informationen zu erhalten, kann das Kommandozeilentool pflogsumm (Postfix Log Summarizer) verwendet werden.

Pflogsumm erstellt Berichte, die Statistiken über verschiedene Aspekte der Mailserveraktivität enthalten, wie z. B. die Anzahl der gesendeten, empfangenen, verzögerten (deferred), zurückgewiesenen (bounced) und abgelehnten (rejected) Nachrichten.

Pflogsumm muss in der Regel nachträglich installiert werden:

# apt install pflogsumm

Pflogsumm bezieht seine Informationen aus den Logdateien des Mailservers Postfix. Postfix erzeugt bei der Verarbeitung von E-Mails detaillierte Log-Einträge, die verschiedene Aspekte des E-Mail-Verkehrs und der Serveraktivitäten dokumentieren. Pflogsumm verarbeitet diese Logdateien, filtert die relevanten Informationen heraus und fasst sie in einem Bericht zusammen:

# pflogsumm -d yesterday /var/log/mail.log | more

Log-Monitoring

Um regelmäßig eine Zusammenfassung von pflogsumm zu erhalten, kann die Ausgabe in regelmäßigen Abständen an eine bestimmte E-Mail-Adresse gesendet werden. Wie oft Sie die Statistiken auswerten möchten, hängt von Ihren Bedürfnissen ab.

Standardmäßig rotiert Postfix seine Logfiles wöchentlich, wobei jeweils am Samstag die neuesten Meldungen in das Logfile geschrieben werden. Die Standardkonfigurationsdatei für Logrotate /etc/logrotate.conf wird verwendet.

Die folgende Prozedur basiert auf den Standardeinstellungen und sendet einmal pro Woche (Sonntag) eine Statistik, die durch pflogsumm summiert wird. Falls ein anderes Intervall gewünscht wird, kann für Postfix eine eigene Logrotate-Konfigurationsdatei in /etc/logrotate.d/ angelegt werden, in der die geänderten Vorgaben enthalten sind.

Statistik per E-Mail senden

Der folgende Befehl in der crontab für root sendet jeden Sonntag um 18:00 Uhr eine wöchentliche Zusammenfassung des Postfix-Log an root, die an einen wie oben definierten Alias weitergeleitet wird:

0 18 * * 0 /usr/sbin/pflogsumm /var/log/mail.log.1 | mail -s "Postfix-Zusammenfassung" root

Loading

Updated on 3. September 2024
Was this article helpful?