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
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
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