MTA für System-Mails einrichten (ubuntu/debian)

MTA für System-Mails einrichten (ubuntu/debian)

Diese Anleitung wurde getestet für einen Host, der sich hinter einem NAT befindet und Mails per SMTP an einen "echten" Mailserver weiterleiten soll.

MTA installieren:

sudo apt-get install exim4sudo dpkg-reconfigure exim4-config

Internet-Server auswählen:

E-Mail-Name des Systems: Hier den Hostname des Zielrechners angeben! z.B. example.com

IP-Adressen für eingehende Verbindungen: 127.0.0.1 ; ::1

Weitere Ziele, für die E-Mails angenommen werden sollen: leer

Domänen, für dieser Rechner E-Mails weiterleitet (Relay): leer

Rechner, für die E-Mails weitergeleitet werden (Relay): leer

DNS-Anfragen minimieren: Nein

Versandart bei lokaler E-Mail-Zustellung: Maildir-Format

Einstellungen auf kleine Dateien aufteilen: Ja

sudo vim etc/aliases

root: youruser

sudo newaliases
cd ~
vim .forward

example@example.com

Test: echo "hallo2"|mail root

Leichtgewichtiger MTA zum Verschicken von Systemmeldungen

Ein MTA leitet zu versendende E-Mails typischerweise per (E)SMTP an den Mailserver des Empfängers weiter. Zur Spam-Vermeidung prüft der Mailserver des Empfängers typischerweise manche Eigenschaften durch, die von einem korrekt eingerichteten Mailserver üblicherweise zu erwarten sein sollten. Insbesondere sollte der Mailserver der Absenderdomain mittels DNS über das Internet erreichbar sein.

Diese und vergleichbare Anforderungen aus der Spam-Vermeidung treffen nicht unbedingt auf das System zu, auf dem der MTA installiert ist. Dieser ist ggf. hinter einem NAT und nicht aus dem Internet erreichbar. Ggf. möchte man nur ein paar System-Meldungen per E-Mail verschicken und nicht einen vollumfänglichen Mailserver inklusive DNS-Eintrag und Erreichbarkeit aus dem Internet einrichten. Eigentlich benötigt man nur die Funktionalität eines gewöhnlichen Mail-Clients, der Mails über ein gewöhnliches Mail-Konto verschickt. Aus diesem Grund kann es sinnvoll sein, ein bestehendes E-Mail-Konto von einem etablierten Mailserver zu verwenden und Systemnachrichten an diesen per SMTP mit Authentifizierung weiterzuleiten.

Ein extrem schlanker Ersatz für einen vollwertigen MTA ist ssmtp. ssmtp läuft nicht als Dienst und wird nur gestartet, wenn eine E-Mail an root (oder einen anderen Systembenutzer) vorliegt.

Installation von ssmtp:

sudo apt-get install ssmtp

Konfiguration:

sudo vim /etc/ssmtp/revaliases

Zeile einfügen (hier verschlüsselter Mailversand über Port 465, alternativ 587 oder 25):

root:theadmin@example.com:mail.example.com:465

Im Folgenden wird ein gewöhnliches E-Mail-Konto bei irgend einem beliebigen Provider verwendet. Da das zugehörige Passwort im Klartext in der ssmtp.conf steht, muss man dringend darauf achten, dass nur root diese Datei lesen darf:

sudo touch /etc/ssmtp/ssmtp.conf
sudo chown root:root /etc/ssmtp/ssmtp.conf
sudo chmod 600 /etc/ssmtp/ssmtp.conf

sudo vim /etc/ssmtp/ssmtp.conf

Zeilen einfügen:

root=theadmin@example.com
mailhub=mail.example.com:465
hostname=server.example.com
UseTLS=YES
AuthUser=theadmin
AuthPass=theadminpassword

Optional: Einen Namen verwenden, der im E-Mail-Client angezeigt wird. Diese Änderung ist jedoch auf Systemebene gültig, da sie in der /etc/passwd hinterlegt wird.

chfn -f "root on somehost" root

Der Mailversand erfolgt nun wie bei einem gewöhnlichen Mail-Client (wie z. b. Thunderbird) verschlüsselt und mit Authentifizierung. Entsprechend kann nahezu jeder Mailserver und jede Zieladresse verwendet werden, genau wie bei einem gewöhnlichen Mail-Client.