Sendmail macht mich wahnsinnig...

Rosendoktor

Well-Known Member
Hi,

ich hab hier einen FreeBSD 12.2 Server, auf dem u.a. Postfix als MTA installiert ist für zwei Maildomains. Daneben laufen noch ein paar andere Dienste.

Diverse Statusmeldungen der anderen lokalen Dienste / Cron Jobs sollen wie üblich lokal an das root Postfach geliefert werden, also in ein mbox File /var/mail/root. Da kommt aber seit 11.11.2020 nichts mehr an.

Also mal ein Testskript gebastelt, mit dem die lokale Zustellung mal funktioniert hat:
Code:
#!/usr/bin/env bash

cat -v << EOF | /usr/sbin/sendmail -t -i
From: root@polaris.meinedomain.de
To: root@polaris.meinedomain.de
Subject: [IRGENDWAS] polaris: Something happened

Something happened.

EOF

Wenn ich das aufrufe kommt keine mail in /var/mail/root an. Aber in den Postfix Logs sehe ich das hier:

Code:
Nov 30 17:17:10 polaris sendmail[21187]: 0AUGHAHD021187: from=root, size=294, class=0, nrcpts=1, msgid=<202011301617.0AUGHAHD021187@polaris.meinedomain.de>, relay=root@localhost
Nov 30 17:17:10 polaris sendmail[21187]: STARTTLS=client, relay=[127.0.0.1], version=TLSv1.3, verify=FAIL, cipher=TLS_AES_256_GCM_SHA384, bits=256/256
Nov 30 17:17:10 polaris sendmail[21187]: 0AUGHAHD021187: to=root@polaris.meinedomain.de, ctladdr=root (0/0), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30294, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (0AUGHA2Y021188 Message accepted for delivery)
Nov 30 17:17:10 polaris postfix/smtpd[21191]: connect from polaris.meinedomain.de[2a02:a00:e1234:60::2]
Nov 30 17:17:10 polaris postfix/smtpd[21191]: Anonymous TLS connection established from polaris.meinedomain.de[2a02:a00:e1234:60::2]: TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest SHA256
Nov 30 17:17:10 polaris spamass-milter[2338]: queueid=unknown
Nov 30 17:17:10 polaris postfix/smtpd[21191]: NOQUEUE: reject: RCPT from polaris.meinedomain.de[2a02:a00:e1234:60::2]: 504 5.5.2 <minecraft-server-1>: Helo command rejected: need fully-qualified hostname; from=<root@polaris.meinedomain.de> to=<root@polaris.meinedomain.de> proto=ESMTP helo=<minecraft-server-1>
Nov 30 17:17:10 polaris spamass-milter[2338]: queueid=unknown
Nov 30 17:17:10 polaris postfix/smtpd[21191]: NOQUEUE: reject: RCPT from polaris.meinedomain.de[2a02:a00:e1234:60::2]: 504 5.5.2 <minecraft-server-1>: Helo command rejected: need fully-qualified hostname; from=<> to=<root@polaris.meinedomain.de> proto=ESMTP helo=<minecraft-server-1>
Nov 30 17:17:10 polaris postfix/smtpd[21191]: disconnect from polaris.meinedomain.de[2a02:a00:e1234:60::2] ehlo=2 starttls=1 mail=2 rcpt=0/2 data=0/2 rset=3 quit=1 commands=9/13

WTF???

So wie ich das interpretiere versucht Sendmail eine Zustellung per smtp, anstatt lokal ins /var/mail/root Postfach zuzustellen. Ob das immer schon so war kann ich nicht sagen, bis zum 11.11.2020 hat es wohl auch funktioniert, an dem Datum kam die letzte Mail im root Postfach an.

Seit wann der Postfix Mailserver da läuft kann ich nicht genau sagen, jedenfalls Monate vor dem 11.11.2020. Ob vor der Installation des Postfix bereits lokale Mails im root Postfach eingeliefert wurden (von Cron Jobs z.B.) kann ich auch nicht sagen.

Jedenfalls ist wohl am 11.11.2020 etwas passiert, das die Mailzustellung verhindert. Und das war die Einrichtung eines Jails, in dem ein Minecraft Server zum zocken für die Kids läuft (eine vollständige FreeBSD Installation, zum Starten wird im Jail /etc/rc ausgeführt).

Nochmal: WTF???

Was zum ... hat denn ein Jail, dessen Hostname minecraft-server-1 lautet, jetzt mit dem Sendmail des Hosts zu tun? Wieso verwendet Sendmail diesen Hostnamen als HELO, was ja totaler Blödsinn hoch drei ist? Klar dass Postfix das ablehnt.

Und wieso verwendet Sendmail überhaupt smtp für die Zustellung an eine lokale Adresse?

Und wie kann ich Sendmail dieses bescheuerte HELO ausreden? Alles was ich in den ganzen /etc/mail/*.cf Dateien versuche wird ignoriert.

Und welches "Sendmail" ist das überhaupt, irgendwie ist das ja überall nur noch ein Wrapper für irgendwas anderes, je nach System und installierten MTA usw....

Sorry, lokale Mailzustellung war mir schon immer ein Gräuel und ein Rätsel, besonders bei Debian mit seinem fürchterlichen Exim... dachte FreeBSD wär da logischer... :confused:

Grüße,

Robert
 

Rosendoktor

Well-Known Member
Okay...

Das was da schiefging ist sowas von bescheuert, das traut man sich gar nicht zu erzählen... :ugly:

Hier mal ein Auszug aus /etc/rc.d/sendmail
Code:
# XXX - Get together with sendmail mantainer to figure out how to
#       better handle SENDMAIL_ENABLE and 3rd party MTAs.
#

Wie wahr...

Also, auf dem Host ist Postfix installiert und konfiguriert. Es läuft dort, erwartungsgemäß, kein Sendmail Daemon.

Im ersten startenden Jail aber, da volle FreeBSD Installation, läuft der Sendmail Daemon, und zwar auch ohne ein sendmail_enable="YES" in der rc.conf. Da die Jails ihre Netzwerkkonfiguration erben, lauscht also dieser Sendmail Daemon auf dem Loopback Interface des Hosts. Nun nimmt dieser Sendmail Daemon die vom Skript zu verschickende Mail entgegen, und versucht sie zuzustellen, verwendet seinen Jail Hostnamen als HELO und Peng, wird geblockt...

So was blödes...

Man muss Sendmail offenbar explizit mit sendmail_enable="NO" abschalten, wenn es nicht laufen soll. Es sei denn, ein anderer MTA ist installiert. Hat mir niemand gesagt. :grumble:

Na ja, Problem gelöst. :rolleyes:

EDIT: Es muss sendmail_submit_enable="NO" heissen. Des Rätsels Lösung findet sich in der /etc/default/rc.conf...
 

cabriofahrer

Well-Known Member
Sorry, lokale Mailzustellung war mir schon immer ein Gräuel und ein Rätsel, besonders bei Debian mit seinem fürchterlichen Exim... dachte FreeBSD wär da logischer...

Und warum möchte man nicht, wenn man schon FreeBSD und nicht Debian nutzt, dann nicht auch den schon out-of-the-box funktionierenden sendmail als MTA benutzen?
 

Andy_m4

Well-Known Member
Ich weiß nicht, was die Gründe von Rosendoktor sind. Aber ich bin auch kein übergroßer Freund von sendmail und ersetze in auch häufig. Ein großes Problem von sendmail ist Security. Da hat sich sendmail in der Vergangenheit nicht sehr hervorgetan. Ist aber auch kein Wunder. sendmail ist schon sehr alt und damals war noch vieles anders und viele Probleme konnte man auch noch gar nicht abschätzen. Und das zieht sich eben bis heute durch und ist auch kaum nachhaltig zu beheben.
Das zweite Problem ist, das er relativ schwer zu konfigurieren ist. Klar. Man kann ihn auch gut out-of-box einsetzen. Aber sobald man von den defaults abweichen möchte, wirds sehr schnell hässlich.

Nicht umsonst ist sendmail schon bei vielen Linux-Distributionen rausgeflogen. Aber FreeBSD ist da halt etwas .... ähm ... traditioneller. :-)
 

KobRheTilla

used register
OpenBSD hat ja nichtganz ohne Grund den eigenen smtpd als sendmail nachfolger.

Es gibt auf FreeBSD im Basissystem bereits den DMA (Dragonfly Mail Agent), der kann alles außer eingehendes SMTP.
Warum dieser nicht schon als Standard etabliert wurde, statt das unnötig komplizierte Sendmail mitzuschleppen, kann wohl niemand so richtig beantworten.

Rob
 

Yamagi

Possessed With Psi Powers
Teammitglied
Warum dieser nicht schon als Standard etabliert wurde, statt das unnötig komplizierte Sendmail mitzuschleppen, kann wohl niemand so richtig beantworten.

Ich finde den Bikeshed jetzt auf schnelle nicht, aber als das letzte Mal vorgeschlagen wurde Sendmail zu eliminieren, war es ein Aufstand epischer Dimensionen.
 

medV2

Well-Known Member
Wenn ich was anderes als die standard Einstellung brauche kommt Sendmail auch immer weg und wird durch Postfix ersetzt. Sendmail ist einfach Cancer.

Es hat schon einen Grund wieso keine relevante Linuxdistro mehr auf Sendmail setzt, wobei ich auch das Exim von Debian schrecklich finde.

Zum Glück geht auf Linux der Trend dahin, dass dieser lokale MTA abgeschafft wird, auf den eher edgy aufgestellten Distros ist das schon weg. Ist ein Relikt aus alten Tagen das eigentlich niemand mehr braucht.
 

serie300

Well-Known Member
Nachdem ich auch als Anwender noch was lernen will - 'mail' sollte ja auf einem unixoiden System laufen ("vi saved ...", hatte aber schon lange keinen vi Absturz mehr). Wenn der MTA (sendmail) rausfliegt, dann geht doch die Rechner interne Mail auch nicht mehr (oder sehe ich das falsch) und man bräuchte auch auf Maschinen, auf denen die Nutzer auf ihre weltweite Mail per IMAP / POP zugreifen einen "Mini-MTA"?
 

medV2

Well-Known Member
Auch wenn der MTA rausfliegt ist es egal, es nutzt doch niemand den internen MTA um seine persönlichen/geschäftlichen Mails zu empfangen/senden. Da gibts einen Client für SMTP/IMAP. Und alles was mir ein Rechner per mail an den lokalen root mitteilen will, kann er auch und besser über den Syslogdienst.
 

cabriofahrer

Well-Known Member
Sendmail hat angeblich gerade auf FreeBSD eine sehr gute Performance. Und wenn ich hier sehe, dass unterschiedliche Linux-Distros unterschiedliche Wege gehen und dann sagt Ihr teilweise, der eine oder der andere ist dann doch nicht so gut, hört sich das letztendlich auch nicht viel besser an. Daher vermute ich mal, dass diese Äußerung hier

Ich finde den Bikeshed jetzt auf schnelle nicht, aber als das letzte Mal vorgeschlagen wurde Sendmail zu eliminieren, war es ein Aufstand epischer Dimensionen.

etwas damit zu tun haben könnte. Dazu würde ich gerne mehr erfahren.

Das zweite Problem ist, das er relativ schwer zu konfigurieren ist. Klar. Man kann ihn auch gut out-of-box einsetzen. Aber sobald man von den defaults abweichen möchte, wirds sehr schnell hässlich.

Mein Eindruck ist, dass das Thema sendmail nicht gut dokumentiert ist. Das Handbook beschreibt zwar, wie die verschiedenen Unix-User sich mit dem Programm "mail" in einem Terminal direkt, bzw. out-of-the-box gegenseiting Mails schreiben können, doch was ich vermisse, ist mal ein gutes Tutorial das beschreibt, wie man sendmail auf einer FreeBSD-Maschine als zentralen Server so einsetzt, dass in einem kleineren oder mittleren Netzwerk sämtliche Clients/Workstations z.B. mit Thunderbird (oder auch Outlook) Mails senden und empfangen können, nicht nur intern, sondern auch mit der Außenwelt.
Und ich vermisse da auch eine GUI. Angeblich ist webmin u.a. auch eine GUI für sendmail, aber wenn ich das richtig verstehe, kommt man um gewisse Schritte mit der Kommandozeile nicht herum.
 

Rosendoktor

Well-Known Member
Ich bin ehrlich gesagt gar nicht auf die Idee gekommen, das vorhandene Sendmail für einen Full-Featured Mail Server überhaupt in Betracht zu ziehen. Für mich war Sendmail schon immer ein Überbleibsel aus grauer Urzeit, dem ich nicht mehr als ein bisschen lokale Zustellung zugetraut habe. Vielleicht ja zu Unrecht.

Postfix und die ganzen Helferlein wie Postgrey, OpenDKIM, OpenDMARC (+SPF), SpamAssassin, Clamav usw. hab ich schon seit vielen Jahren auf Debian im Einsatz, und einfach deswegen auch auf dem FreeBSD Server eingerichtet. Kenne ich, vertraue ich, hab ich für gut befunden und damit fertig.

Wenn ich was anderes nehme müsste ich von vorne anfangen, alles einzurichten und auf Sicherheit abzuklopfen. Nein, danke. ;) Und einen Anlass, von Postfix wegzugehen gibt's momentan nicht. Was ich an Postfix sehr schätze ist auch, dass die Hauptentwickler, besonders Wietse Venema, auf den Mailinglisten sehr aktiv sind und auch auf Anfängerfragen antworten.
 

Azazyel

Well-Known Member
Sendmail hat angeblich gerade auf FreeBSD eine sehr gute Performance.

Globuli helfen angeblich gegen COVID-19. ;)

Postfix schlägt sendmail in jeder Kategorie (inklusive Performance).

Dazu würde ich gerne mehr erfahren.

OpenBSD hat sendmail schon 2014 aufgrund seiner katastrophalen und nicht behebbaren Security-Schwächen rausgeschmissen. Warum sendmail als Default-MTA eine einzige Katastrophe ist, ist hier präzise beschrieben: FreeBSD - Mailer Daemon

Hier gibt es noch einen ausführlichen Vergleich der unterschiedlichen MTAs: Postfix vs. Sendmail vs. Exim
sendmail verliert in jeder relevanten Disziplin.

Kurzfassung: sendmail ist ein einziger Security-Clusterfuck, beschissen zu administrieren und völlig veraltet. Es gibt keinen einzigen guten Grund für seine Verwendung als Default-MTA.

Das man tatsächlich an sendmail als Default-MTA festhält, ist ein (muss man leider so hart sagen) Armutszeugnis für die leider sehr lautstarke Fraktion, die gegen jeglichen Fortschritt in FreeBSD ist und sich leider oftmals durchsetzt. Dieselben Zeitgenossen sind leider auch einer der Hauptgründe, warum viele progressive User und Entwickler FreeBSD den Rücken kehren. :ugly:

Das Handbook beschreibt zwar, wie die verschiedenen Unix-User sich mit dem Programm "mail" in einem Terminal direkt, bzw. out-of-the-box gegenseiting Mails schreiben können, doch was ich vermisse, ist mal ein gutes Tutorial das beschreibt, wie man sendmail auf einer FreeBSD-Maschine als zentralen Server so einsetzt, dass in einem kleineren oder mittleren Netzwerk sämtliche Clients/Workstations z.B. mit Thunderbird (oder auch Outlook) Mails senden und empfangen können, nicht nur intern, sondern auch mit der Außenwelt.

Die Nichtexistenz eines solchen Tutorials hat einen guten Grund. Niemand bei klarem Verstand setzt im Jahr 2020 einen Mail-Server auf der grünen Wiese mit sendmail auf. So fernab der Vernunft ist niemand - zumindest niemand, der genug Ahnung von der Materie hat, um dafür ein Tutorial zu schreiben. :o
 

cabriofahrer

Well-Known Member
Vielen Dank für diese Ausführungen, ich wußte wirklich nicht, dass es um sendmail so schlecht bestellt ist. Dann ist es also doch ratsam, sendmail zu deaktivieren und stattdessen postfix oder exim zu nutzen? Und gibt es da diesbezüglich Tutorials und ggf. GUI's? Und wo ist genaueres zum Dragonfly Mail Agent erwähnt, wenn der schon im Basissystem ist?
 

medV2

Well-Known Member
Vielen Dank für diese Ausführungen, ich wußte wirklich nicht, dass es um sendmail so schlecht bestellt ist. Dann ist es also doch ratsam, sendmail zu deaktivieren und stattdessen postfix oder exim zu nutzen? Und gibt es da diesbezüglich Tutorials und ggf. GUI's? Und wo ist genaueres zum Dragonfly Mail Agent erwähnt, wenn der schon im Basissystem ist?

Wenn du Sendmail nur als lokalen MTA verwendest sollte es egal sein, wenn du tatsächlich einen Mailserver betreiben willst kann ich wie schon @Rosendoktor postifx/dovecot/opendkim/sa/... empfehlen. Da gibts viele Tutorials die auch für alle Betriebssysteme so halbwegs passen sollten, bis auf die Pfade ist ja eigentlich nicht wirklich ein Unterschied.
Generell sollte man aber wissen was man tut, wenn man einen Mailserver ins Internet lässt.
 

Andy_m4

Well-Known Member
Und gibt es da diesbezüglich Tutorials und ggf. GUI's? Und wo ist genaueres zum Dragonfly Mail Agent erwähnt, wenn der schon im Basissystem ist?
sendmail zu deaktivieren, um zum Beispiel den DragonFlyMTA (dma) zu verwenden ist eigentlich nicht so schwer.
Im Handbuch steht beschrieben, wie man sendmail deaktiviert (und dafür einen anderen MTA einsetzt):
https://www.freebsd.org/doc/de/books/handbook/mail-changingmta.html

/etc/rc.conf:
Code:
sendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"

/etc/periodic.conf:
Code:
daily_clean_hoststat_enable="NO"
daily_status_mail_enable="NO"
daily_status_include_submit_mailq="NO"
daily_submit_queuerun="NO"

Dann musst Du noch dma als neuen Mailer einsetzen:

/etc/rc.conf:
Code:
dma_enable="YES"

/etc/mail/mailer.conf:
Code:
sendmail        /usr/libexec/dma
send-mail       /usr/libexec/dma
mailq           /usr/libexec/dma

So funktioniert dma schon mal als lokaler MTA. Wenn Du dma explizit noch konfigurieren möchtest, so findet man die Einstellungen in
/etc/dma/dma.conf
 

mr44er

moderater Moderator
Teammitglied
Wie ist das genau gemeint? Potentielles Sicherheitsrisiko für das eigene lokale Netzwerk oder etwas anderes?

Sowohl als auch. Ist a) generell ein unsinniges Vorhaben, wenn der eigene Anschluss dynamische IPs hat und b) holt man dich z.B. morgens früh ab, weil jemand unfreundliche Emails ins Kanzleramt von deinem Mailserver aus geschickt hat.
 

cabriofahrer

Well-Known Member
Warum sendmail als Default-MTA eine einzige Katastrophe ist, ist hier präzise beschrieben: FreeBSD - Mailer Daemon

Ich habe da mal reingelesen und finde den Artikel ehrlich gesagt etwas sonderbar: Es wird gesagt, dass sendmail in der Vergangenheit zahlreiche Sicherheitslücken hatte, die in FreeBSD aber behoben wurden. Dann wird weiterhin kritisiert, dass weiterhin ständig Verbesserungen zur Sicherheit einfließen, diese aber nicht genauer mitgeteilt werden. Dann wird auch noch kritisiert, dass sendmail ein kompletter Mailserver wäre, was man ja gar nicht bräuchte, weil ein lokaler völlig ausreichen würde??? Was sind das denn für Argumente?
Sorry, dass sich das Bild dann für mich nicht ganz so negativ gestaltet. Was den Performancevergleich im anderen Artikel anbelangt, wird nicht genau dargestellt, auf welchen Plattformen man da vergleicht. Vielleicht läuft sendmail auf Windows oder Linux ja wirklich nicht so schnell wie andere, möglicherweise auf FreeBSD aber viel bessser, weil nativ. Ich finde es also nicht schlecht, dass er weiterhin im Basissystem als Bordmittel vorhanden und aktiviert ist, wer etwas anderes auf FreeBSD will, kann das ja einfach erreichen.
 
Oben