System-Mails von Linux über XMPP empfangen (v2)

2017 beschrieb ich wie man System-Mails von Linux über XMPP empfangen kann. Da ich mittlerweile sendxmpp nicht mehr nutze, weil ich damit viele Probleme hatte und mir selbst die Alternative go-sendxmpp geschrieben habe möchte ich mein neues Setup vorstellen.

⚠️ Warnung ⚠️
Auch 2023 gilt: Es könnte sein, dass wichtige oder sensible Informationen in den Systemmails enthalten sind. Deshalb würde ich davon abraten diese über fremde Server zu senden.
Außerdem speichere ich das Passwort des XMPP-Kontos im Script, weshalb ich dazu rate einen dezidierten XMPP account dafür zu nutzen und nicht etwa den eigenen privaten account.

Diese Anleitung geht von einem Debiansystem aus, kann aber sicherlich auch für andere Distributionen adaptiert werden. Ich selbst habe dieses Setup mit Debian bookworm eingerichtet.

Go-sendxmpp kann man entweder selbst bauen, als binary herunterladen oder aus den repos einiger distros installieren. Ich habe es aus den Debian repos installiert, da go-sendxmpp ab bookworm in den Debian repos vorhanden ist.

Nun wird das script /usr/local/bin/mail2xmpp mit folgendem Inhalt angelegt:

#!/bin/bash                   
|go-sendxmpp -u $user -p $password recipient@example.org

Dabei sind $user und $password durch Benutzer und Passwort des Kontos, das zum Versand verwendet wird, zu ersetzen und recipient@example.org durch die eigene Adresse, auf der man die Nachrichten erhalten will. Es ist natürlich auch möglich mehrere Zieladressen anzugeben.

Danach wird exim zum Eigentümer der Datei gemacht:

# chown Debian-exim:Debian-exim /usr/local/bin/mail2xmpp

Ebenso werden die Berechtigungen angepasst:

# chmod 700 /usr/local/bin/mail2xmpp

Um zu definieren wie die Mails zugestellt werden muss die Datei /etc/aliases bearbeitet werden, wobei $user natürlich anzupassen ist (ich nutze dafür meinen Hauptbenutzer, man kann aber natürlich auch extra einen Benutzer für diesen Zweck anlegen):

# /etc/aliases
mailer-daemon: postmaster
postmaster: root
nobody: root
hostmaster: root
usenet: root
news: root
webmaster: root
www: root
ftp: root
abuse: root
noc: root
security: root
root: $user
$user:,|/usr/local/bin/mail2xmpp

Damit die Systemmails per pipe weitergereicht werden können muss die Datei /etc/exim4/exim4.conf.localmacros ngelegt und diese Zeile eingetragen werden:

SYSTEM_ALIASES_PIPE_TRANSPORT = address_pipe

Anschließend werden die neuen Aliase eingelesen und exim4 neu gestartet:

# newaliases
# systemctl restart exim4.service

Abschließend wird noch getestet ob der Mailtransport über XMPP funktioniert:

$ echo "Das ist ein Test" | mail -s testmail root

Update 2023-05-06

Ein anonymer Kommentator (der Kommentar ist mittlerweile verschwunden. Wo ist er hin? Ich habe ihn wissentlich nicht gelöscht…) hat mich darauf hingewiesen, dass der Teil vor der pipe im script unnötig war und ich habe es dementsprechend angepasst.

Inhalt

Teilen: E-Mail

Hinterlasse einen Kommentar oder diskutiere im OSBN-Chat.


In den Kommentaren können folgende Formatierungen genutzt werden.