System-Mails von Linux über XMPP empfangen

Heute stolperte ich im OSBN über den Beitrag Über fehlgeschlagenem Service per XMPP informieren von Fryboyter. Die Idee fand ich gut, aber ich würde mir lieber die Systemmails von Linux, die ich derzeit im Thunderbird abfrage, per XMPP zusenden lassen. HUGOMORE42

Nach kurzer Suche mit searx fand ich den englischen Blogpost SendXMPP mail forward on Debian Jessie. Ich bin ein klein wenig von der Anleitung abgewichen und möchte die Lösung auch für mich dokumentiert haben, falls der Blogeintrag mal verschwindet darum halte ich das Vorgehen hier auch noch mal fest.

Warnung

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.

Zuerst habe ich sendxmpp aus den Debian-Repositories installiert:

# apt install sendxmpp

Anschließend habe ich überprüft ob sendxmpp überhaupt Nachrichten zustellen kann. SENDER, SENDER_SERVER, EMPFAENGER, EMPFAENGER_SERVER, PASSWORT und PORT (wird nur benötigt, wenn nicht der Standardport 5222 verwendet wird) sind hier und im weiteren Verlauf natürlich an die eigene Konfiguration anzupassen.

$ echo 'Hallo Welt' | sendxmpp -t  -u SENDER -j SENDER_SERVER:PORT -p 'PASSWORT' EMPFAENGER@EMPFAENGER_SERVER
Invalid or unreadable path specified for ssl_ca_path. at /usr/share/perl5/Stream.pm line 641

Ich bekam die gleiche Fehlermeldung wie Fryboyter und konnte das Problem beheben indem ich wie in seinem Beitrag beschrieben in /usr/share/perl5/XML/Stream.pm Zeile 223 folgendermaßen abänderte:

    $self->{SIDS}->{default}->{ssl_ca_path} = '/etc/ssl/certs';

Als nächstes habe ich die Datei /etc/sendxmpp.conf mit folgendem Inhalt angelegt:

SENDER@SENDER_SERVER:PORT PASSWORT

Anschließend wurde die Datei ausschließlich für ihren Besitzer les- und beschreibbar gemacht und der Besitzer zu Debian-exim geändert:

# chmod 600 /etc/sendxmpp.conf
# chown Debian-exim:Debian-exim /etc/sendxmpp.conf

Nun habe ich die Datei /usr/local/bin/mail2xmpp angelegt und folgendes eingetragen:

1
2
#!/bin/bash 
echo "$(cat)" | sendxmpp -t  -f /etc/sendxmpp.conf EMPFAENGER@EMPFAENGER_SERVER

Die Datei wurde anschließend noch ausführbar gemacht:

# chmod 755 /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:

# /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
logcheck: root

Damit die Systemmails per pipe weitergereicht werden können muss die Datei /etc/exim4/exim4.conf.localmacros angelegt 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

An einem meiner Rechner bekam ich hier eine Fehlermeldung:

mail: Nachricht kann nicht gesendet werden: Prozess wurde mit einem von Null verschiedenen Status beendet

In den logs sah ich folgendes:

Sep 12 19:02:53 backup exim[446]: 2017-09-12 19:02:53 1droaL-00007C-Lt <= root@backup U=root P=local S=341
Sep 12 19:02:53 backup exim[446]: 2017-09-12 19:02:53 1droaL-00007C-Lt Cannot open main log file "/var/log/exim4/mainlog": Permission denied: euid=104 egid=109
Sep 12 19:02:53 backup exim[446]: exim: could not open panic log - aborting: see message(s) above

Das konnte ich ganz einfach beheben indem ich den Ordner /var/log/exim4/ angelegt und Debian-exim als Eigentümer festgelegt habe:

# mkdir /var/log/exim4
# chown Debian-exim:Debian-exim /var/log/exim4
[Update 2017-09-12]

An einem meiner Rechner gab es nach der Einrichtung noch eine Fehlermeldung beim Versuch Nachrichten über XMPP weiterzuleiten. Ich habe den Beitrag dementsprechend erweitert.

Teilen: E-Mail

Hinterlasse einen Kommentar oder diskutiere im OSBN-Chat.

In den Kommentaren können folgende Formatierungen genutzt werden.