Fehler „Kann nicht in Warteschlangenverzeichnis schreiben“ und andere Sendmail-Probleme nach der Aktualisierung von Linode von Debian 8 auf Stable

Fehler „Kann nicht in Warteschlangenverzeichnis schreiben“ und andere Sendmail-Probleme nach der Aktualisierung von Linode von Debian 8 auf Stable

ich folgtedieses Tutorialum meine Linode-Instanz von Debian 8 auf Stable zu aktualisieren. Im Zuge dieser Aktualisierung traten bei mir mehrere Fehler/Probleme mit Sendmail auf.

  1. $ which sendmailgibt nichts zurück. IchTunhabe sendmail installiert. Es befindet sich unter /usr/sbin/sendmail.

  2. Die Berechtigungen von Sendmail lauten wie folgt:

    $ ls -la /usr/sbin/sendmail lrwxrwxrwx 1 root root 26 Jul 17 12:41 /usr/sbin/sendmail -> /etc/alternatives/sendmail

    Der Link ( /etc/alternatives/sendmail) ist rot hervorgehoben.

  3. Beim Versuch, eine Test-E-Mail zu senden, erhalte ich die folgende Fehlermeldung:sudo echo "Subject: sendmail test" | /usr/sbin/sendmail -v [email protected]

    can not write to queue directory /var/spool/mqueue-client/ (RunAsGid=115, required=0): Permission denied

    DasDie Berechtigungen des Verzeichnisses sind:

    $ ls -la /var/spool/mqueue-client drwxrwxr-x 2 root root 4096 Sep 15 2018 mqueue-client

Ich habe also offensichtlich ein Problem mit Berechtigungen/Eigentümerschaft, aber ich denke auch, dass bei Punkt 1 und 2 noch etwas anderes im Gange ist. Ich muss in der Lage sein, E-Mails von OSSEC und Fail2ban des Systems zu empfangen, also kann ich nicht wirklich ohne einen funktionierenden E-Mail-Client/-Server auskommen. Ich bin mir nur nicht sicher, wie ich diese Probleme beheben kann.

Mein Sendmail wurde einfach mit installiert $ sudo apt-get install sendmail sendmail-bin, es kam also direkt aus den Debian-Repos, weshalb mich diese Probleme ein wenig verwirren ... Ich ging davon aus, dass die erforderliche Konfiguration vom Installationsprozess übernommen würde.

EDIT: die Ausgabe vonls -l /etc/alternatives/sendmail*

lrwxrwxrwx 1 root root 24 Jul 17 12:41 /etc/alternatives/sendmail -> /usr/lib/sm.bin/sendmail
lrwxrwxrwx 1 root root 42 Jul 17 12:41 /etc/alternatives/sendmail.8.gz -> /usr/share/man/man8/sendmail.sendmail.8.gz

lrwxrwxrwx 1 root root 24 Jul 17 12:41 /etc/alternatives/sendmail-msp -> /usr/lib/sm.bin/sendmail
lrwxrwxrwx 1 root root 42 Jul 17 12:41 /etc/alternatives/sendmail-msp.8.gz -> /usr/share/man/man8/sendmail.sendmail.8.gz

lrwxrwxrwx 1 root root 24 Jul 17 12:41 /etc/alternatives/sendmail-mta -> /usr/lib/sm.bin/sendmail
lrwxrwxrwx 1 root root 42 Jul 17 12:41 /etc/alternatives/sendmail-mta.8.gz -> /usr/share/man/man8/sendmail.sendmail.8.gz

Jedes Paar endet in einer anderen Farbe, z. B. /usr/lib/sm.bin/sendmailist gelb hervorgehoben, während /usr/share/man/man8/sendmail.sendmail.8.gzrot hervorgehoben ist. Es sind die gleichen Farben – Gelb und Rot – für jedes Paar.

EDIT2: Die Ausgabe von (echo subject: test; echo ; echo test) | /usr/sbin/sendmail -d44.4 -i -v username(ich habe meinen echten Benutzernamen verwendet, aber die resultierende Ausgabe aus Sicherheitsgründen angepasst):

$ (echo subject: test; echo ; echo test) | /usr/sbin/sendmail -d44.4 -i -v username
safefile(/etc/mail/submit.cf, uid=1000, gid=0, flags=6000, mode=400):
safedirpath(/etc/mail, uid=1000, gid=0, flags=6000, level=0, offset=0):
    [dir /etc/mail] OK
    [uid 0, nlink 1, stat 100644, mode 4]   OK
safefile(/etc/mail/relay-domains, uid=1000, gid=0, flags=6580, mode=400):
safedirpath(/etc/mail, uid=1000, gid=0, flags=6580, level=0, offset=0):
    [dir /etc/mail] OK
    No such file or directory
safefile(/etc/mail/service.switch, uid=1000, gid=115, flags=6480, mode=400):
safedirpath(/etc/mail, uid=1000, gid=115, flags=6580, level=0, offset=0):
    [dir /etc/mail] OK
    [uid 0, nlink 1, stat 100644, mode 4]   OK
safefile(/etc/mail/service.switch, uid=1000, gid=115, flags=6480, mode=400):
safedirpath(/etc/mail, uid=1000, gid=115, flags=6580, level=0, offset=0):
    [dir /etc/mail] OK
    [uid 0, nlink 1, stat 100644, mode 4]   OK
safefile( , uid=1000, gid=115, flags=40, mode=660):
safedirpath(., uid=1000, gid=115, flags=40, level=0, offset=0):
    [dir .] OK
    No such file or directory
    [final dir . uid 111 mode 42770] Success
safedirpath(/var/spool/mqueue-client, uid=1000, gid=115, flags=0, level=0, offset=0):
    [dir /var/spool/mqueue-client] OK
safefile(./dfx6MIGnM5005502, uid=1000, gid=115, flags=2040, mode=600):
safedirpath(., uid=1000, gid=115, flags=2040, level=0, offset=0):
    [dir .] OK
    No such file or directory
    [final dir . uid 111 mode 42770] Success
username... Connecting to [127.0.0.1] via relay...
220 major-productions.com ESMTP Sendmail 8.15.2/8.15.2/Debian-12; Mon, 22 Jul 2019 14:16:49 -0400; (No UCE/UBE) logging access from: localhost(OK)-localhost [127.0.0.1]
>>> EHLO major-productions.com
250-major-productions.com Hello localhost [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-EXPN
250-VERB
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH DIGEST-MD5 CRAM-MD5
250-DELIVERBY
250 HELP
>>> VERB
250 2.0.0 Verbose mode
>>> MAIL From:<[email protected]> SIZE=20 [email protected]
250 2.1.0 <[email protected]>... Sender ok
>>> RCPT To:<[email protected]>
>>> DATA
250 2.1.5 <[email protected]>... Recipient ok
354 Enter mail, end with "." on a line by itself
>>> .
421 4.3.0 collect: Cannot write ./dfx6MIGnHm005503 (bfcommit, uid=0, gid=115): No such file or directory
>>> QUIT
username... Deferred: 421 4.3.0 collect: Cannot write ./dfx6MIGnHm005503 (bfcommit, uid=0, gid=115): No such file or directory
safefile(/var/lib/sendmail/sm-client.st, uid=1000, gid=115, flags=2282, mode=600):
safedirpath(/var/lib/sendmail, uid=1000, gid=115, flags=2282, level=0, offset=0):
    [dir /var/lib/sendmail] OK
    No such file or directory
safefile(/var/lib/sendmail/sm-client.st, uid=1000, gid=115, flags=2282, mode=600):
safedirpath(/var/lib/sendmail, uid=1000, gid=115, flags=2282, level=0, offset=0):
    [dir /var/lib/sendmail] OK
    No such file or directory
Closing connection to [127.0.0.1]

BEARBEITEN 3: die Ausgabe (echo subject: test; echo ; echo test) | /usr/sbin/sendmail -Am -d44.4 -i -v usernamewährend der Anmeldung als Root (mit dem Benutzernamen wie zuvor verschleiert):

# (echo subject: test; echo ; echo test) | /usr/sbin/sendmail -Am -d44.4 -i -v username
safefile(/etc/mail/sendmail.cf, uid=0, gid=0, flags=6000, mode=400):
safedirpath(/etc/mail, uid=0, gid=0, flags=6000, level=0, offset=0):
    [dir /etc/mail] OK
    [uid 0, nlink 1, stat 100644, mode 400]     OK
safefile(/etc/mail/local-host-names, uid=0, gid=0, flags=6580, mode=400):
safedirpath(/etc/mail, uid=0, gid=0, flags=6580, level=0, offset=0):
    [dir /etc/mail] OK
    [uid 0, nlink 1, stat 100644, mode 400]     OK
safefile(/etc/mail/relay-domains, uid=0, gid=0, flags=6580, mode=400):
safedirpath(/etc/mail, uid=0, gid=0, flags=6580, level=0, offset=0):
    [dir /etc/mail] OK
    No such file or directory
safefile(/etc/mail/service.switch, uid=0, gid=0, flags=6480, mode=400):
safedirpath(/etc/mail, uid=0, gid=0, flags=6580, level=0, offset=0):
    [dir /etc/mail] OK
    [uid 0, nlink 1, stat 100644, mode 400]     OK
safefile(/etc/mail/service.switch, uid=0, gid=0, flags=6480, mode=400):
safedirpath(/etc/mail, uid=0, gid=0, flags=6580, level=0, offset=0):
    [dir /etc/mail] OK
    [uid 0, nlink 1, stat 100644, mode 400]     OK
safedirpath(/var/spool/mqueue, uid=0, gid=0, flags=4, level=0, offset=0):
    [dir /var/spool/mqueue] OK
safefile(/etc/mail/service.switch, uid=0, gid=0, flags=6480, mode=400):
safedirpath(/etc/mail, uid=0, gid=0, flags=6580, level=0, offset=0):
    [dir /etc/mail] OK
    [uid 0, nlink 1, stat 100644, mode 400]     OK
safefile(/etc/mail/aliases.db, uid=0, gid=0, flags=584, mode=400):
safedirpath(/etc/mail, uid=0, gid=0, flags=584, level=0, offset=0):
    [dir /etc/mail] OK
    [uid 110, nlink 1, stat 100640, mode 400]   OK
safedirpath(/home/username, uid=1000, gid=1000, flags=1985, level=0, offset=0):
    [dir /home/username] OK
safefile(/home/username/.forward.major-productions, uid=1000, gid=1000, flags=1895, mode=400):
    No such file or directory
safedirpath(/home/username, uid=1000, gid=1000, flags=1985, level=0, offset=0):
    [dir /home/username] OK
safefile(/home/username/.forward, uid=1000, gid=1000, flags=1895, mode=400):
    No such file or directory
safefile(./dfx6MKLN6r006080, uid=0, gid=0, flags=2040, mode=600):
safedirpath(., uid=0, gid=0, flags=2040, level=0, offset=0):
    [dir .] OK
    No such file or directory
    [final dir . uid 0 mode 40700] Success
username... Connecting to local...
safefile(/usr/sbin/sensible-mda, uid=0, gid=0, flags=41904, mode=0):
safedirpath(/usr/sbin, uid=0, gid=0, flags=41904, level=0, offset=0):
    [dir /usr/sbin] OK
    [uid 0, nlink 1, stat 104755, mode 0]   OK
username... Sent
safefile(/var/lib/sendmail/sendmail.st, uid=0, gid=0, flags=2282, mode=600):
safedirpath(/var/lib/sendmail, uid=0, gid=0, flags=2282, level=0, offset=0):
    [dir /var/lib/sendmail] OK
    No such file or directory
safefile(/var/lib/sendmail/sendmail.st, uid=0, gid=0, flags=2282, mode=600):
safedirpath(/var/lib/sendmail, uid=0, gid=0, flags=2282, level=0, offset=0):
    [dir /var/lib/sendmail] OK
    No such file or directory

Antwort1

  1. $ which sendmailgibt nichts zurück.

sendmail IST NICHT„in nicht privilegierten Benutzern installiert“ PATH=> Sie beobachten das erwartete/normale Ergebnis. sendmailWird voraussichtlich von anderen Programmen ausgeführt, wie mailz. B. die den vollständigen/absoluten Pfad verwenden.

  1. kann nicht in das Warteschlangenverzeichnis /var/spool/mqueue-client/ schreiben (RunAsGid=115, erforderlich=0): Berechtigung verweigert

/var/spool/mqueue-clientBerechtigungen und Eigentumsverhältnisse festlegen

chown smmsp:smmsp /var/spool/mqueue-client`   
chmod 02770 /var/spool/mqueue-client`

MODERN SENDMAIL MUSS NICHT INSTALLIERT WERDEN ALSSET ROOT ID

Ergebnisse siehe ls -l --dereference /usr/sbin/sendmailin den Kommentaren zur Frage:
-r-sr-sr-t 1 root smmsp 860672 Sep 15 2018 /usr/sbin/sendmail

Ändern Sie die Berechtigung des endgültigen Ziels /usr/sbin/sendmailund /etc/alternativesder Links in Debian:

chmod u-s /usr/lib/sm.bin/sendmail

Antwort2

Funktioniert es, wenn Sie Folgendes ausführen:

echo "Subject: sendmail test" | sudo sendmail /usr/sbin/sendmail -v [email protected]

Der Unterschied besteht darin, dass Sie echo als Root ausführen, nicht jedoch sendmail.

Daher die Meldung: "(RunAsGid=115, required=0): Permission denied"

Die „115“ ist die Gruppen-ID Ihres Benutzers und es wird „0“ erwartet (das sind die Wurzeln).

verwandte Informationen