Dovecot lehnt eingelieferte Mails ab

Debian macht sich hervorragend als Web- und Mailserver. Schau auch in den " Tipps und Tricks"-Bereich.
Antworten
Benutzeravatar
Enthusiast
Beiträge: 36
Registriert: 13.06.2024 18:37:46

Dovecot lehnt eingelieferte Mails ab

Beitrag von Enthusiast » 28.12.2024 17:36:47

Hallo,

ich baue gerade ein Mailsystem mit einem Postfix-Server (192.168.1.70) und einem Dovecot-Server (192.168.1.72).

Die Zustellung eingehender Mails habe ich in der main.cf mit

Code: Alles auswählen

virtual_transport = lmtp:inet:192.168.1.72:24
geregelt. Und auf dem IMAP-Server lauscht der LMTP auf

Code: Alles auswählen

# lsof  -i | grep :24
dovecot    1412       root   33u  IPv4  25432      0t0  TCP 192.168.1.72:24 (LISTEN)
lmtp      10050    dovecot    8u  IPv4  25432      0t0  TCP 192.168.1.72:24 (LISTEN)
Hier stört auch keine Firewall, das heißt der Traffic auf Port 24 ist möglich.
Dennoch werden auf dem SMTP-Server eingehende Mails nicht vom Dovecot-Server akzeptiert.
Log auf Postfix-Server:

Code: Alles auswählen

2024-12-28T17:22:34.673693+01:00 mx2 postfix/lmtp[172933]: D8CC36E083F: to=<systemmails@example.tld>, relay=192.168.1.72[192.168.1.72]:24, delay=0.8, delays=0.76/0.01/0/0.02, dsn=4.3.0, status=deferred (host 192.168.1.72[192.168.1.72] said: 451 4.3.0 <systemmails@example.tld> Temporary internal error (in reply to RCPT TO command))

Log auf dem Dovecot-Server:

Code: Alles auswählen

2024-12-28 17:22:34 lmtp(systemmails@example.tld)<10020><YKDJJsolcGckJwAAcziVww>: Error: auth-master: userdb lookup(systemmails@example.tld): connect(/var/run/dovecot/auth-master) failed: Permission denied (euid=106(dovecot) egid=112(dovecot) missing +r perm: /var/run/dovecot/auth-master, dir owned by 0:0 mode=0755)
2024-12-28 17:22:34 lmtp(10020): Error: lmtp-server: conn 192.168.1.70:50314 [2]: rcpt systemmails@example.tld: Failed to lookup user systemmails@example.tld: Internal error occurred. Refer to server log for more information.
Der betreffende Mailaccount ist Dovecot auch bekannT:

Code: Alles auswählen

# doveadm user systemmails@example.tld
field   value
uid     5000
gid     5000
home    /var/vmail/example.tld/systemmails
mail    maildir:/var/vmail/example.tld/systemmails/
quota_rule      *:bytes=1048576000
Weiß jemand hierzu Rat und kann Vorschläge machen?

Viele Grüße

Enthusiast

Benutzeravatar
TRex
Moderator
Beiträge: 8370
Registriert: 23.11.2006 12:23:54
Wohnort: KA

Re: Dovecot lehnt eingelieferte Mails ab

Beitrag von TRex » 28.12.2024 18:54:33

Steht doch in der ersten Zeile des logs, was genau falsch ist.
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nichtDon't break debian!Wie man widerspricht

Benutzeravatar
Enthusiast
Beiträge: 36
Registriert: 13.06.2024 18:37:46

Re: Dovecot lehnt eingelieferte Mails ab

Beitrag von Enthusiast » 29.12.2024 09:48:02

TRex hat geschrieben: ↑ zum Beitrag ↑
28.12.2024 18:54:33
Steht doch in der ersten Zeile des logs, was genau falsch ist.
Richtig, darauf zielt ja auch meine Frage. Hätte ich eine Idee, würde ich doch nicht fragen, oder?

michaa7
Beiträge: 5027
Registriert: 12.12.2004 00:46:49
Lizenz eigener Beiträge: MIT Lizenz

Re: Dovecot lehnt eingelieferte Mails ab

Beitrag von michaa7 » 29.12.2024 12:54:38

Ich weiß die Fehlerzeile auch nicht zu interpretieren, aber bei mir schaut das so aus (verwende aber exim4, dovecot-imap, fetchmail) :

Code: Alles auswählen

$ ls  -la /var/run/dovecot/auth-master
srw------- 1 root root 0 29. Dez 10:26 /var/run/dovecot/auth-master
gruß

michaa7

-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)

Benutzeravatar
Enthusiast
Beiträge: 36
Registriert: 13.06.2024 18:37:46

Re: Dovecot lehnt eingelieferte Mails ab

Beitrag von Enthusiast » 29.12.2024 15:17:53

michaa7 hat geschrieben: ↑ zum Beitrag ↑
29.12.2024 12:54:38
Ich weiß die Fehlerzeile auch nicht zu interpretieren, aber bei mir schaut das so aus (verwende aber exim4, dovecot-imap, fetchmail) :

Code: Alles auswählen

$ ls  -la /var/run/dovecot/auth-master
srw------- 1 root root 0 29. Dez 10:26 /var/run/dovecot/auth-master
So weit war ich auch bereits bei meinen anderen - funktionierenden - Mailserver (alle Postfix, Dovecot, MySQL), überall exakt die gleiche Datei mit denselben Berechtigungen. Auch auf dem besagten Dovecot-Server sieht das exakt genauso aus.

Nur zum Hintergrundverständnis, ich versuche gerade ein Mailserver-System mit getrennten Server (jeweils eigene IP-Adressen) zu realisieren. Also Postfix/RSpamd ist ein Server, die Datenbank mit den Mailbenutzern liegt auf einem anderen Server mit MariaDB. Und Dovecot-IMAP ist eben besagter Server mit der IP 192.168.1.72. Alle haben eine UFW-Firewall, aber das ist vorrangig das Problem, denn die Porst sind in die jeweiligen Richtungen offen.
Ich bin gerade am Überlegen, ob die Authenfizierung von Postfix bzw. Dovecot bei dieser Lösung leidet, was sie nicht tut, wenn alles auf einer Maschine zusammengepackt liegt.

michaa7
Beiträge: 5027
Registriert: 12.12.2004 00:46:49
Lizenz eigener Beiträge: MIT Lizenz

Re: Dovecot lehnt eingelieferte Mails ab

Beitrag von michaa7 » 29.12.2024 16:00:39

Die numerischen IDs *gleicher* Nutzer sind auf unterschiedlichen Servern (= unterschiedlichen Systemen) nicht zwingend die gleichen. Und wenn ich das richtig in Erinnerung habe funktioniert die Nutzerverwaltung systemintern über IDs (also über Nummern), nicht über Namen.
gruß

michaa7

-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)

Benutzeravatar
Enthusiast
Beiträge: 36
Registriert: 13.06.2024 18:37:46

Re: Dovecot lehnt eingelieferte Mails ab

Beitrag von Enthusiast » 29.12.2024 16:49:09

michaa7 hat geschrieben: ↑ zum Beitrag ↑
29.12.2024 16:00:39
Die numerischen IDs *gleicher* Nutzer sind auf unterschiedlichen Servern (= unterschiedlichen Systemen) nicht zwingend die gleichen. Und wenn ich das richtig in Erinnerung habe funktioniert die Nutzerverwaltung systemintern über IDs (also über Nummern), nicht über Namen.
Die Mailbenutzer stecken ja in einer DB "postfix", die wiederum zentral den Servern zur Verfügung steht.

Benutzeravatar
Enthusiast
Beiträge: 36
Registriert: 13.06.2024 18:37:46

Re: Dovecot lehnt eingelieferte Mails ab

Beitrag von Enthusiast » 29.12.2024 17:02:07

michaa7 hat geschrieben: ↑ zum Beitrag ↑
29.12.2024 16:00:39
Die numerischen IDs *gleicher* Nutzer sind auf unterschiedlichen Servern (= unterschiedlichen Systemen) nicht zwingend die gleichen. Und wenn ich das richtig in Erinnerung habe funktioniert die Nutzerverwaltung systemintern über IDs (also über Nummern), nicht über Namen.
Ausserdem, wenn du bidirektionale Replication zwischen den Dovecot-Servern anstrebst, funktioniert das ja auch, ohne dass die Benutzer auf den Systemen numerisch identisch ist.

michaa7
Beiträge: 5027
Registriert: 12.12.2004 00:46:49
Lizenz eigener Beiträge: MIT Lizenz

Re: Dovecot lehnt eingelieferte Mails ab

Beitrag von michaa7 » 29.12.2024 17:20:06

Enthusiast hat geschrieben: ↑ zum Beitrag ↑
29.12.2024 15:17:53
...
So weit war ich auch bereits bei meinen anderen - funktionierenden - Mailserver (alle Postfix, Dovecot, MySQL), überall exakt die gleiche Datei mit denselben Berechtigungen. Auch auf dem besagten Dovecot-Server sieht das exakt genauso aus.

Code: Alles auswählen

srw------- 1 root root
ist doch nicht das gleiche wie

Code: Alles auswählen

0:0 mode=0755
Die Frage ist doch was "missing +r perm:" bedeutet? missing read permission? Richtig? Von welchem file denn? Soll 0755 die (warum auch immer) notwendigen, aber nicht vorhandenen Rechte zeigen?

Vllt erbarmt sich ja das Reptil noch und läßt dich (uns) an seinem Wissen teilhaben .... ;-)
gruß

michaa7

-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)

Benutzeravatar
TRex
Moderator
Beiträge: 8370
Registriert: 23.11.2006 12:23:54
Wohnort: KA

Re: Dovecot lehnt eingelieferte Mails ab

Beitrag von TRex » 29.12.2024 18:47:31

Ich formatier es mal mit quote, sodass es ohne horizontales Scrollen funktioniert und ich das relevante highlighten kann:
2024-12-28 17:22:34 lmtp(systemmails@example.tld)<10020><YKDJJsolcGckJwAAcziVww>: Error: auth-master: userdb lookup(systemmails@example.tld): connect(/var/run/dovecot/auth-master) failed: Permission denied (euid=106(dovecot) egid=112(dovecot) missing +r perm: /var/run/dovecot/auth-master, dir owned by 0:0 mode=0755)
auth-master ist ein Teil von postfix. Dovecot legt diesen socket hier an und erlaubt postfix darüber, user aufzulösen. Es gibt einen Konfigurationsschnipsel dazu bei dovecot, der auf der Datei die notwendigen Rechte definiert. Ich hätte erwartet, dass wenn die Zeile gelesen wurde, jemand prüft, welche Rechte auf dieser Datei gesetzt sind - michaa7 hat die von seinen gepostet. Die 0755 der Meldung beziehen sich (so wie das 0:0 davor) auf das Verzeichnis ("dir owned by 0:0 mode=0755"), deswegen ist da auch exec-bit gesetzt.

Also glaskugle ich mal, dass dieser socket auth-master nicht von postfix lesbar ist.

Korrekt wäre in der dovecot-config sowas wie das hier:

Code: Alles auswählen

service auth {
  # auth_socket_path points to this userdb socket by default. It's typically
  # used by dovecot-lda, doveadm, possibly imap process, etc. Its default
  # permissions make it readable only by root, but you may need to relax these
  # permissions. Users that have access to this socket are able to get a list
  # of all usernames and get results of everyone's userdb lookups.

  # Postfix smtp-auth
  unix_listener /var/spool/postfix/private/auth {
    mode = 0660
    user = postfix
    group = postfix
  }

  # Auth process is run as this user.
  #user = $default_internal_user
}
(geklaut von https://forum.ubuntuusers.de/topic/prob ... ilempfang/, verlinkt von hier viewtopic.php?t=131043 - was eine der ersten Suchergebnisse nach der Fehlermeldung war)

Das sorgt dafür, dass dovecot das so anlegt, dass postfix das auch lesen kann. Siehe auch der Kommentar in der config.

Falls du dovecot und postfix auf verschiedenen Hosts hast, hab ich keine Musterlösung für dich.
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nichtDon't break debian!Wie man widerspricht

Benutzeravatar
Enthusiast
Beiträge: 36
Registriert: 13.06.2024 18:37:46

Re: Dovecot lehnt eingelieferte Mails ab

Beitrag von Enthusiast » 29.12.2024 19:14:43

Danke für die Diskussion bis hier hin. Ich checke das morgen früh mal. Denn jetzt dröhnt mir der Kopf.

michaa7
Beiträge: 5027
Registriert: 12.12.2004 00:46:49
Lizenz eigener Beiträge: MIT Lizenz

Re: Dovecot lehnt eingelieferte Mails ab

Beitrag von michaa7 » 29.12.2024 21:24:53

Nachdem ich mich nun ein bisschen kundiger gemacht habe weiß ich wie ich die verschiedenen Repräsentationen der permissions angezeigt bekomme:

Code: Alles auswählen

$ ls  -la /var/run/dovecot/auth-master
srw------- 1 root root 0 29. Dez 10:26 /var/run/dovecot/auth-master
entspricht (abgesehen von der "1" sowie Datum und Zeit)

Code: Alles auswählen

$ stat -c '%a %u %g %n' /var/run/dovecot/auth-master
600 0 0 /var/run/dovecot/auth-master
... somit eben nicht 755.

Insoweit ist die Fehlermeldung IMO recht nachlässig formuliert weil nicht klar ist dass das "missing" sich auch auf den per Komma abgetrennten Teil der Zeile bezieht, dieser Teil also beschreibt was man vorfinden *möchte* aber eben nicht tatsächlich vorfindet.
Ist es das was TREX in seiner Glaskugel sieht?

Oder sehe ich hier etwas falsch?

(BTW, ich habe zumindest in meiner halbstündigen Recherche nicht ein Beispiel gefunden welches das "s" (von ls -la) für die Verzeichnisrechte erklärt. Es handelt sich wohl um das sticky bit ...
https://www.redhat.com/en/blog/linux-fi ... -explained
https://www.redhat.com/en/blog/suid-sgid-sticky-bit ...
aber selbst hier wird das "s" nicht für das Verzeichnis erklärt, da gibt es nur "d"

... das nur am Rande)
gruß

michaa7

-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)

Benutzeravatar
Enthusiast
Beiträge: 36
Registriert: 13.06.2024 18:37:46

Re: Dovecot lehnt eingelieferte Mails ab

Beitrag von Enthusiast » 30.12.2024 09:57:42

Das sieht bei mir ähnlich aus:

Code: Alles auswählen

root@imap2 /etc/dovecot/conf.d # ll -a /var/run/dovecot/auth-master 
srw------- 1 vmail root 0 30. Dez 08:23 /var/run/dovecot/auth-master
root@imap2 /etc/dovecot/conf.d # stat -c '%a %u %g %n' /var/run/dovecot/auth-master
600 5000 0 /var/run/dovecot/auth-master
Mal abgesehen davon, dass das dem Benutzer vmail gehört.

Mittlerweile bin ich den angebotenen Links von TRex gefolgt, die ich ebenfalls bereits kannte. Hier ist ja die Rede von der richtigen Syntax "smtp-aut" die Rede ist. Dieser Part in der 10-master.conf sieht bei mir so aus:

Code: Alles auswählen

service auth {
  # Postfix smtp-auth
  unix_listener /var/spool/postfix/private/auth {
    mode = 0660
    user = postfix
    group = postfix
  }

  # Auth process is run as this user.
  #user = $default_internal_user
}
Das betrifft aber diesen Part "/var/spool/postfix/private/auth", der bei mir auch richtigt angelegt wird:

Code: Alles auswählen

ll /var/spool/postfix/private/auth
srw-rw---- 1 postfix postfix 0 30. Dez 08:23 /var/spool/postfix/private/auth
Das sagt aber absolut nichts über die Bereitstellung von "/var/run/dovecot/auth-master" aus. Ich habe das manuell zu

Code: Alles auswählen

ll /var/run/dovecot/auth-master 
srw-rw---- 1 vmail postfix 0 30. Dez 08:23 /var/run/dovecot/auth-master
bzw.

Code: Alles auswählen

ll /var/run/dovecot/auth-master 
srw-rw---- 1 dovecot postfix 0 30. Dez 08:23 /var/run/dovecot/auth-master
modifiziert, ohne Erfolg.

Im Übrigen habe ich in der main.cf des Postfix-Hosts entgegen den beiden Links

Code: Alles auswählen

virtual_transport = lmtp:[192.168.1.72]:24
stehen. Das "private/dovecot-lmtp" will er mit IP-Adresse nicht akzeptieren.

Auch ich finde keine Konfigurationslösung für zwei getrennte Hosts für MTA und MDA. Offensichtlich geht das gar nicht.
Ergo muss ich den Dovecot komplett auf den MTA umziehen. Das wird wohl das Gescheiteste sein.

Vielen Dank für Euere Gedanken und Zeit!

michaa7
Beiträge: 5027
Registriert: 12.12.2004 00:46:49
Lizenz eigener Beiträge: MIT Lizenz

Re: Dovecot lehnt eingelieferte Mails ab

Beitrag von michaa7 » 30.12.2024 12:23:28

Warum setzt du die Dateirechte für /var/run/dovecot/auth-master nicht mal auf 0755? Und sei es nur um zu testen ob es tatsächlich allein das von der Fehlermeldung angesprochene Rechteproblem gibt?
gruß

michaa7

-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)

Benutzeravatar
TRex
Moderator
Beiträge: 8370
Registriert: 23.11.2006 12:23:54
Wohnort: KA

Re: Dovecot lehnt eingelieferte Mails ab

Beitrag von TRex » 30.12.2024 13:38:29

Weils nix bringt, wenn der dovecot und postfix auf zwei verschiedenen Hosts sind. Dann kann ein socket das Problem nicht lösen. Dann braucht man eine andere Lösung (über TCP oder so, hab ich aber noch nicht geschaut, ob/wie das geht).
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nichtDon't break debian!Wie man widerspricht

michaa7
Beiträge: 5027
Registriert: 12.12.2004 00:46:49
Lizenz eigener Beiträge: MIT Lizenz

Re: Dovecot lehnt eingelieferte Mails ab

Beitrag von michaa7 » 30.12.2024 14:20:11

ok, prinzipiell verstanden, danke.
gruß

michaa7

-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)

Antworten