Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Lokale Mails weiterleiten

210 views
Skip to first unread message

Sebastian Suchanek

unread,
Feb 13, 2016, 6:00:03 AM2/13/16
to
Hallo Liste!

Bislang hatten meine sämtlichen Debian-Kisten immer Server-Funktionen,
sodass auch immer ein "richtiger" MTA wie exim darauf lief. Der hat dann
auch weiterleiten und verteilen lokal entstandener Mails gleich mit
übernommen. Soweit, so gut.
Kürzlich habe ich mir allerdings noch einen Raspberry Pi mit Raspbian
aufgesetzt, der ein paar Kleinigkeiten im LAN übernimmt, bei dem
"großer" MTA aber Overkill wäre. Trotzdem wäre es aber schön, wenn auf
dem Pi lokal erzeugte Mails (z.B. von apticron und logwatch) irgendwie
weitergeleitet werden würden - vorzugsweise zum im LAN ohnehin
arbeitenden Exim auf einer anderen Kiste.

Ein wenig Googeln hat mich zu nullmailer geführt, der eigentlich recht
vielversprechend klang. Dessen Installation via aptitude lief glatt
durch, während der Installation habe ich die Fragen nach dem lokalen
FQDN und dem Smarthost beantwortet. Danach tut sich allerdings nicht
mehr viel:

Wenn ich den Dienst mit "service nullmailer start" starte, taucht er
zwar in der Prozessliste auf...

| root@raspberrypi:~# ps -aux | grep mail
| mail 979 0.0 0.4 3384 1920 ? S 11:33 0:00
/usr/sbin/nullmailer-send -s
| root 1067 0.0 0.4 4268 2020 pts/1 S+ 11:36 0:00 grep mail
| root@raspberrypi:~#

...laut netstat ist aber kein entsprechender Port geöffnet.
Einträge in /var/log/mail.log deuten zumindest auf /irgendeine/
Aktivität hin:

| root@raspberrypi:~# tail /var/log/mail.log
| Feb 13 11:33:01 raspberrypi nullmailer[979]: Rescanning queue.
| root@raspberrypi:~#

Wenn ich versuche, mittels mailx vom Pi aus eine E-Mail zu versenden
(egal, ob an root@localhost oder an root@$MAILSERVER.lan), kann ich zwar
die Mail auf der Konsole eingeben, nach Abschluss (einzelner Punkt in
einer Zeile) tut sich aber gar nichts mehr. Weder mailx noch nullmailer
zeigen irgendwelche erkennbaren Aktivitäten.

Eine entsprechende Weiterleitungsregel ist übrigens auch schon angelegt:

| root@raspberrypi:~# cat /etc/aliases
| root: sebastian...@gmx.de
| root@raspberrypi:~#


Meine Fragen dazu wären jetzt:
Wo könnte das Problem mit nullmailer liegen? Gibt es evtl. einen anderen
(besseren) "Debian-Weg", um die lokalen Mails des Pis irgendwie auf den
LAN-Mailserver zu bekommen?


TIA,

Sebastian

Michelle Konzack

unread,
Feb 13, 2016, 7:30:03 AM2/13/16
to
On 2016-02-13 11:50:19 Sebastian Suchanek hacked into the keyboard:
> Gibt es evtl. einen anderen
> (besseren) "Debian-Weg", um die lokalen Mails des Pis irgendwie auf den
> LAN-Mailserver zu bekommen?

Ich habe auf meinen ARM Microcontrollern SSMTP installiert. Einfach
eine Textdateim mit einem Editor erstellen und dann in SSMTP pipen.

Funktioniert einwandfrei zusammen mit meinem Intranet Server (Courier).

> TIA,
> Sebastian

Schoenes Wochenende
Michelle

--
Michelle Konzack ITSystems
GNU/Linux Developer 0033-6-61925193

Sven Hartge

unread,
Feb 13, 2016, 9:50:03 AM2/13/16
to
Sebastian Suchanek <sebastian...@gmx.de> wrote:

> Wenn ich den Dienst mit "service nullmailer start" starte, taucht er
> zwar in der Prozessliste auf...

> | root@raspberrypi:~# ps -aux | grep mail
> | mail 979 0.0 0.4 3384 1920 ? S 11:33 0:00
> /usr/sbin/nullmailer-send -s
> | root 1067 0.0 0.4 4268 2020 pts/1 S+ 11:36 0:00 grep mail
> | root@raspberrypi:~#

> ...laut netstat ist aber kein entsprechender Port geöffnet.

Das ist richtig. nullmailer bietet nur /usr/bin/sendmail als Interface,
aber _keinen_ TCP-Service.

> Wenn ich versuche, mittels mailx vom Pi aus eine E-Mail zu versenden
> (egal, ob an root@localhost oder an root@$MAILSERVER.lan), kann ich zwar
> die Mail auf der Konsole eingeben, nach Abschluss (einzelner Punkt in
> einer Zeile) tut sich aber gar nichts mehr. Weder mailx noch nullmailer
> zeigen irgendwelche erkennbaren Aktivitäten.

Ich habe nullmailer auf allen meinen Leaf-Systemen und das funktioniert
ohne Probleme. Mails von cron oder logcheck werden an den zentralen
Mailhub ausgeliefert und von dort verteilt.

> Eine entsprechende Weiterleitungsregel ist übrigens auch schon angelegt:

> | root@raspberrypi:~# cat /etc/aliases
> | root: sebastian...@gmx.de
> | root@raspberrypi:~#

/etc/aliases wird von nullmailer nicht beachtet.

Wie genau sieht denn deine nullmailer-Config aus? Zeige bitte mal die
Ausgabe von "grep . /etc/nullmailer/*" (Passworte ggfls. redigieren).



--
Sigmentation fault. Core dumped.

Marc Haber

unread,
Feb 13, 2016, 10:20:02 AM2/13/16
to
On Sat, 13 Feb 2016 11:50:19 +0100, Sebastian Suchanek
<sebastian...@gmx.de> wrote:
>Kürzlich habe ich mir allerdings noch einen Raspberry Pi mit Raspbian
>aufgesetzt, der ein paar Kleinigkeiten im LAN übernimmt, bei dem
>"großer" MTA aber Overkill wäre.

Overkill sicher, aber trotzdem eine ernstzunehmende Option. Die
benötigte Funktionalität lässt sich in exim in Debian per debconf
konfigurieren, und wenn man keinen TCP-Service braucht, braucht's auch
keinen dauernd laufenden Daemon.

Grüße
Marc
--
-------------------------------------- !! No courtesy copies, please !! -----
Marc Haber | " Questions are the | Mailadresse im Header
Mannheim, Germany | Beginning of Wisdom " | http://www.zugschlus.de/
Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fon: *49 621 72739834

Sebastian Suchanek

unread,
Feb 13, 2016, 10:40:02 AM2/13/16
to
Am 13.02.2016 um 15:41 schrieb Sven Hartge:

> [...]
>> Eine entsprechende Weiterleitungsregel ist übrigens auch schon angelegt:
>
>> | root@raspberrypi:~# cat /etc/aliases
>> | root: sebastian...@gmx.de
>> | root@raspberrypi:~#
>
> /etc/aliases wird von nullmailer nicht beachtet.

OK.

> Wie genau sieht denn deine nullmailer-Config aus? Zeige bitte mal die
> Ausgabe von "grep . /etc/nullmailer/*" (Passworte ggfls. redigieren).

| root@raspberrypi:~# grep . /etc/nullmailer/*
| /etc/nullmailer/defaultdomain:bt.suchanek.lan
| /etc/nullmailer/remotes:10.1.0.1
| root@raspberrypi:~#

Wobei ich den Eintrag in /etc/nullmailer/defaultdomain so nicht selbst
angelegt habe. Den wird sich wohl dpkg aus dem von mir angegebenen
Hostnamen "pi.bt.suchanek.lan" abgeleitet haben.

Könnte der Fehler daran liegen? Im Netzsegment, in dem der Pi steht
(10.2.0.0/16), läuft nämlich aktuell (noch) kein Nameserver, der meine
lokale Domain "suchanek.lan" auflösen könnte.

BTW, der Server ist vom Pi aus aber definitiv via VPN erreichbar:

| root@raspberrypi:~# ping 10.1.0.1
| PING 10.1.0.1 (10.1.0.1) 56(84) bytes of data.
| 64 bytes from 10.1.0.1: icmp_seq=1 ttl=64 time=59.9 ms
| 64 bytes from 10.1.0.1: icmp_seq=2 ttl=64 time=56.9 ms
| 64 bytes from 10.1.0.1: icmp_seq=3 ttl=64 time=55.9 ms
| ^C
| --- 10.1.0.1 ping statistics ---
| 3 packets transmitted, 3 received, 0% packet loss, time 2002ms
| rtt min/avg/max/mdev = 55.958/57.618/59.930/1.697 ms
| root@raspberrypi:~#

Und er ist auch für Relaying aus 10.1.0.0/16 und 10.2.0.0/16 ohne
Anmeldung konfiguriert, d.h., er sollte Mails, die vom Pi kommen, auf
jeden Fall zumindest annehmen.


Tschüs,

Sebastian

Sven Hartge

unread,
Feb 13, 2016, 1:30:02 PM2/13/16
to
Sebastian Suchanek <sebastian...@gmx.de> wrote:
> Am 13.02.2016 um 15:41 schrieb Sven Hartge:

>> [...]
>>> Eine entsprechende Weiterleitungsregel ist übrigens auch schon angelegt:
>>
>>> | root@raspberrypi:~# cat /etc/aliases
>>> | root: sebastian...@gmx.de
>>> | root@raspberrypi:~#
>>
>> /etc/aliases wird von nullmailer nicht beachtet.

> OK.

>> Wie genau sieht denn deine nullmailer-Config aus? Zeige bitte mal die
>> Ausgabe von "grep . /etc/nullmailer/*" (Passworte ggfls. redigieren).

> | root@raspberrypi:~# grep . /etc/nullmailer/*
> | /etc/nullmailer/defaultdomain:bt.suchanek.lan
> | /etc/nullmailer/remotes:10.1.0.1
> | root@raspberrypi:~#

> Wobei ich den Eintrag in /etc/nullmailer/defaultdomain so nicht selbst
> angelegt habe. Den wird sich wohl dpkg aus dem von mir angegebenen
> Hostnamen "pi.bt.suchanek.lan" abgeleitet haben.

Richtig.

> Könnte der Fehler daran liegen? Im Netzsegment, in dem der Pi steht
> (10.2.0.0/16), läuft nämlich aktuell (noch) kein Nameserver, der meine
> lokale Domain "suchanek.lan" auflösen könnte.

Nein, die defaultdomain ist nur dafür da, um Mails wie "root@pi" zu
einem FQDN zu erweitern.

Interessant wäre, was du genau beim Test mit "mail" machst und was wo in
welchen Logs steht.

Beispiel:

,----
| root@ntp-gps:~ # grep . /etc/nullmailer/*
| /etc/nullmailer/defaultdomain:feds.ath.cx
| /etc/nullmailer/remotes:ds9.feds.ath.cx
`----

,----
| oweh@ntp-gps:~ $ mail -s "test mail 2" sv...@svenhartge.de<CR>
| Test 2<CR>
| .<CR>
| Cc: <CR>
`----

,----
| root@ntp-gps:~ # grep nullmailer /var/log/syslog
| Feb 13 19:17:51 ntp-gps nullmailer[727]: Trigger pulled.
| Feb 13 19:17:51 ntp-gps nullmailer[727]: Rescanning queue.
| Feb 13 19:17:51 ntp-gps nullmailer[727]: Starting delivery: protocol: smtp host: ds9.feds.ath.cx file: 1455387471.24576
| Feb 13 19:17:51 ntp-gps nullmailer[727]: Starting delivery, 1 message(s) in queue.
| Feb 13 19:17:51 ntp-gps nullmailer[24577]: smtp: Succeeded: 250 OK id=1aUelT-0000UW-7p
| Feb 13 19:17:51 ntp-gps nullmailer[727]: Sent file.
| Feb 13 19:17:51 ntp-gps nullmailer[727]: Delivery complete, 0 message(s) remain.
| Feb 13 19:17:51 ntp-gps nullmailer[727]: Trigger pulled.
| Feb 13 19:17:51 ntp-gps nullmailer[727]: Rescanning queue.
`----

Und aus "ds9" dann:

,----
| ds9:~# exigrep 1aUelT-0000UW-7p /var/log/exim4/mainlog
| 2016-02-13 19:17:51 [1892] 1aUelT-0000UW-7p <= ow...@ntp-gps.feds.ath.cx H=ntp-gps.feds.ath.cx [2001:470:7403:1::10]:47612 I=[2001:470:7403:1::1]:25 P=smtp S=510 id=1455387471.167768...@ntp-gps.feds.ath.cx for sv...@svenhartge.de
| 2016-02-13 19:17:52 [1895] 1aUelT-0000UW-7p => sv...@svenhartge.de I=[2001:470:7403:1::1] F=<ow...@ntp-gps.feds.ath.cx> P=<ow...@ntp-gps.feds.ath.cx> R=to_ext_route T=sh6_smtp H=mail.svenhartge.de [2a01:238:42b4:5300::25] X=TLS1.0:RSA_AES_128_CBC_SHA1:128 CV=no DN="description=8tflye6a4LDgHKw9,C=DE,CN=mail.svenhartge.de,EMAIL=postm...@svenhartge.de" C="250 OK id=1aUelU-0004Sb-76" QT=1s DT=1s
| 2016-02-13 19:17:52 [1895] 1aUelT-0000UW-7p Completed QT=1s
`----

Funktioniert also einwandfrei, wie man sehen kann.

Sebastian Suchanek

unread,
Feb 15, 2016, 2:00:04 PM2/15/16
to
Am 13.02.2016 um 19:21 schrieb Sven Hartge:
> Sebastian Suchanek <sebastian...@gmx.de> wrote:
>
>> [...]
>> Könnte der Fehler daran liegen? Im Netzsegment, in dem der Pi steht
>> (10.2.0.0/16), läuft nämlich aktuell (noch) kein Nameserver, der meine
>> lokale Domain "suchanek.lan" auflösen könnte.
>
> Nein, die defaultdomain ist nur dafür da, um Mails wie "root@pi" zu
> einem FQDN zu erweitern.

OK.

> Interessant wäre, was du genau beim Test mit "mail" machst und was wo in
> welchen Logs steht.
> [...]

Kein Problem...

> ,----
> | oweh@ntp-gps:~ $ mail -s "test mail 2" sv...@svenhartge.de<CR>
> | Test 2<CR>
> | .<CR>
> | Cc: <CR>
> `----

| root@raspberrypi:~# mail -s "Testmail" sebastian...@gmx.de<CR>
| Cc:<CR>
| Noch ein Test.<CR>
| .<CR>

An dieser Stelle passiert dann gar nichts mehr, auch wenn ich mehrere
Minuten warte. Ich kann mail dann zwar mit "^C <CR> ^C <CR>" beenden,
aber die Mail wird nicht gesendet.

> ,----
> | root@ntp-gps:~ # grep nullmailer /var/log/syslog
> | Feb 13 19:17:51 ntp-gps nullmailer[727]: Trigger pulled.
> | Feb 13 19:17:51 ntp-gps nullmailer[727]: Rescanning queue.
> | Feb 13 19:17:51 ntp-gps nullmailer[727]: Starting delivery: protocol: smtp host: ds9.feds.ath.cx file: 1455387471.24576
> | Feb 13 19:17:51 ntp-gps nullmailer[727]: Starting delivery, 1 message(s) in queue.
> | Feb 13 19:17:51 ntp-gps nullmailer[24577]: smtp: Succeeded: 250 OK id=1aUelT-0000UW-7p
> | Feb 13 19:17:51 ntp-gps nullmailer[727]: Sent file.
> | Feb 13 19:17:51 ntp-gps nullmailer[727]: Delivery complete, 0 message(s) remain.
> | Feb 13 19:17:51 ntp-gps nullmailer[727]: Trigger pulled.
> | Feb 13 19:17:51 ntp-gps nullmailer[727]: Rescanning queue.
> `----
> [...]

Das Log bleibt zum o.g. Mailversuch komplett stummt.

Allerdings wird es noch mysteriöser: Ich habe zwischenzeitlich aufs
Geratewohl auf dem Pi logwatch und apticron installiert und *deren*
Mails kommen ohne erkennbare Probleme an und tauchen logischerweise auch
im Log auf dem Pi auf:

| root@raspberrypi:~# tail -n7 /var/log/mail.log
| Feb 15 06:26:41 raspberrypi nullmailer[979]: Trigger pulled.
| Feb 15 06:26:41 raspberrypi nullmailer[979]: Rescanning queue.
| Feb 15 06:26:41 raspberrypi nullmailer[979]: Starting delivery:
protocol: smtp host: 10.1.0.1 file: 1455514001.19460
| Feb 15 06:26:41 raspberrypi nullmailer[979]: Starting delivery, 1
message(s) in queue.
| Feb 15 06:26:42 raspberrypi nullmailer[19461]: smtp: Succeeded: 250 OK
id=1aVBgI-00016V-9p
| Feb 15 06:26:42 raspberrypi nullmailer[979]: Sent file.
| Feb 15 06:26:42 raspberrypi nullmailer[979]: Delivery complete, 0
message(s) remain.
| root@raspberrypi:~#


Tschüs,

Sebastian

Sven Hartge

unread,
Feb 15, 2016, 2:50:04 PM2/15/16
to
Sebastian Suchanek <sebastian...@gmx.de> wrote:
> Am 13.02.2016 um 19:21 schrieb Sven Hartge:

>> Interessant wäre, was du genau beim Test mit "mail" machst und was wo in
>> welchen Logs steht.

> | root@raspberrypi:~# mail -s "Testmail" sebastian...@gmx.de<CR>
> | Cc:<CR>
> | Noch ein Test.<CR>
> | .<CR>

> An dieser Stelle passiert dann gar nichts mehr, auch wenn ich mehrere
> Minuten warte. Ich kann mail dann zwar mit "^C <CR> ^C <CR>" beenden,
> aber die Mail wird nicht gesendet.

Welches mail ist denn das?

In meinem Fall ist es bsd-mailx.

> Das Log bleibt zum o.g. Mailversuch komplett stummt.

Hm. Vielleicht will dein mail SMTP sprechen, anstelle /usr/bin/sendmail
aufzurufen?

Sebastian Suchanek

unread,
Feb 15, 2016, 4:30:03 PM2/15/16
to
Am 15.02.2016 um 20:46 schrieb Sven Hartge:
> Sebastian Suchanek <sebastian...@gmx.de> wrote:
>> Am 13.02.2016 um 19:21 schrieb Sven Hartge:
>
>>> Interessant wäre, was du genau beim Test mit "mail" machst und was wo in
>>> welchen Logs steht.
>
>> | root@raspberrypi:~# mail -s "Testmail" sebastian...@gmx.de<CR>
>> | Cc:<CR>
>> | Noch ein Test.<CR>
>> | .<CR>
>
>> An dieser Stelle passiert dann gar nichts mehr, auch wenn ich mehrere
>> Minuten warte. Ich kann mail dann zwar mit "^C <CR> ^C <CR>" beenden,
>> aber die Mail wird nicht gesendet.
>
> Welches mail ist denn das?

Das war das mail aus mailutils.

> In meinem Fall ist es bsd-mailx.
>
>> Das Log bleibt zum o.g. Mailversuch komplett stummt.
>
> Hm. Vielleicht will dein mail SMTP sprechen, anstelle /usr/bin/sendmail
> aufzurufen?


Scheint fast so. Mit dem mail aus bsd-mailx funktioniert's auch bei mir.
Danke für die Hilfe.


Tschüs,

Sebastian

Stefan Baur

unread,
Feb 16, 2016, 4:20:03 AM2/16/16
to
Am 16.02.2016 um 10:10 schrieb Martin Steigerwald:
>>> > >
>> > | root@raspberrypi:~# mail -s "Testmail" sebastian...@gmx.de<CR>
>> > | Cc:<CR>
>> > | Noch ein Test.<CR>
>> > | .<CR>
>> >
>> > An dieser Stelle passiert dann gar nichts mehr, auch wenn ich mehrere
>> > Minuten warte. Ich kann mail dann zwar mit "^C <CR> ^C <CR>" beenden,
>> > aber die Mail wird nicht gesendet.
> Klar, denn Strg-C bricht den Befehl ab. Wenn Du die Eingabe stattdessen mit
> Strg-D beendest, müsste der Befehl die Mail versenden.

Er beendet mit "Punkt auf einer neuen Zeile". Das kenne ich auch so als
"Mail ist komplett, bitte absenden". Gibt es da unterschiedliche
Implementierungen?

Gruß
Stefan

Martin Steigerwald

unread,
Feb 16, 2016, 4:20:04 AM2/16/16
to
Klar, denn Strg-C bricht den Befehl ab. Wenn Du die Eingabe stattdessen mit
Strg-D beendest, müsste der Befehl die Mail versenden.

Ciao,
--
Martin

Marc Haber

unread,
Feb 16, 2016, 6:10:04 AM2/16/16
to
Der Punkt auf einer neuen Zeile ist SMTP. mail(1) möchte eine Datei
auf Standard Input, da braucht es ein EOF. Das ist auch in der
Dokumentation von bsd-mailx klar so geschrieben.

Ich bin erstaunt dass es Leute gibt die das intuitiv anders sehen.

Sven Hartge

unread,
Feb 17, 2016, 2:20:04 PM2/17/16
to
Marc Haber <mh+debian-...@zugschlus.de> wrote:
> On Tue, 16 Feb 2016 10:12:57 +0100, Stefan Baur <newsgrou...@stefanbaur.de> wrote:
>> Am 16.02.2016 um 10:10 schrieb Martin Steigerwald:

>>>> > | root@raspberrypi:~# mail -s "Testmail" sebastian...@gmx.de<CR>
>>>> > | Cc:<CR>
>>>> > | Noch ein Test.<CR>
>>>> > | .<CR>
>>>> >
>>>> > An dieser Stelle passiert dann gar nichts mehr, auch wenn ich mehrere
>>>> > Minuten warte. Ich kann mail dann zwar mit "^C <CR> ^C <CR>" beenden,
>>>> > aber die Mail wird nicht gesendet.

>>> Klar, denn Strg-C bricht den Befehl ab. Wenn Du die Eingabe stattdessen mit
>>> Strg-D beendest, müsste der Befehl die Mail versenden.

>>Er beendet mit "Punkt auf einer neuen Zeile". Das kenne ich auch so als
>>"Mail ist komplett, bitte absenden". Gibt es da unterschiedliche
>>Implementierungen?

> Der Punkt auf einer neuen Zeile ist SMTP. mail(1) möchte eine Datei
> auf Standard Input, da braucht es ein EOF. Das ist auch in der
> Dokumentation von bsd-mailx klar so geschrieben.

Also das bsd-mailx (8.1.2-0.20141216cvs-2) hier erwartet kein EOF. Nach
dem Body-Text und dem einzelnen '.' auf einer Zeile kommt dann die
Abfrage von Cc:, welche man einfach mit Return bestätigen kann und dann
wird die Mail via /usr/bin/sendmail verschickt.

Martin Steigerwald

unread,
Feb 17, 2016, 2:50:02 PM2/17/16
to
Ich verwende den "mail"-Befehl aus den GNU mailutils:

martin@merkaba ~> ls -l /usr/bin/mail
lrwxrwxrwx 1 root root 22 Mai 22 2011 /usr/bin/mail -> /etc/alternatives/mail
martin@merkaba ~> ls -l /etc/alternatives/mail
lrwxrwxrwx 1 root root 23 Mai 22 2011 /etc/alternatives/mail -> /usr/bin/
mail.mailutils
martin@merkaba ~> dpkg -S /usr/bin/mail.mailutils
mailutils: /usr/bin/mail.mailutils

Vielleicht macht das ja diesen Unterschied.

Ciao,
--
Martin
0 new messages