Dovecot seltsame Userordern im Hauptverzeichnis

Moin,

bei einem Kunden mit ca. 500 Postfächern tauchen jetzt, kurz nach der Cyrus2Dovect Migration im Ordner:
/var/spool/dovecot/private zusätzliche Ordern mit Usernamen auf. Wir würden da nur einen Ordner mit der Domain des Kunden erwarten. Die Ordner sind nur mir Dovecot Dateien gefüllt.

Hier ein anoymisiertes ls -al /var/spool/dovecot/private

drwx--S---   12 dovemail dovemail  4096 Sep 27 12:41 .
drwx--S---    5 dovemail dovemail  4096 Sep 14 17:09 ..
drwx--S---    3 dovemail dovemail  4096 Sep 26 11:59 maier
drwx--S---    3 dovemail dovemail  4096 Sep 21 12:47 mueller
drwx--S---    3 dovemail dovemail  4096 Sep 20 14:55 schulze
drwx--S---    3 dovemail dovemail  4096 Sep 24 14:22 krankmeldung
drwx--S---    3 dovemail dovemail  4096 Sep 27 12:41 root
drwx--S---    3 dovemail dovemail  4096 Sep 19 15:20 meiser
drwx--S---    3 dovemail dovemail  4096 Sep 25 13:25 univention1
drwx--S--- 1266 dovemail dovemail 45056 Sep 24 13:15 kundendomain.de

find /var/spool/dovecot/private/univention1
/var/spool/dovecot/private/univention1
/var/spool/dovecot/private/univention1/Maildir
/var/spool/dovecot/private/univention1/Maildir/maildirsize
/var/spool/dovecot/private/univention1/Maildir/dovecot-acl-list
/var/spool/dovecot/private/univention1/Maildir/dovecot.list.index.log

(univention1) ist ein testuser.

Wir hatten zwischenzeitlich einen Fehler in der Migration der dazu führte, das ein paar Verzeichnisse falsche Permissions hatten. Eine Vermutung ist, das das damit zusammen hängt. Ist das so? Wie räumt man das auf?

UCS 4.2.5-517

Huhu,

normal ist das so nicht. Bei meinen zwei betreuten Installationen werden die Benutzerordner nur unterhalb der Domäne angelegt.

Befinden sich in den direkt unterhalb von private liegenden Benutzerordnern auch Mails?

Wurden eventuell manuelle Änderungen an der Dovecot- oder der PAM-Konfiguration vorgenommen? Was sagt ein Aufruf von univention-check-templates?

Gruß
mosu

Hallo Moritz,

wir haben das soweit nachvollzogen und folgendes Fehlerbild:

Vorgehen:

  1. Es loggen sich 3. Menschen am Dovecot mit (der selben Funktions-) E-Mailaddresse als Login ein. Alles funktioniert.
  2. Dann loggt sich einer mit der UID des (Funktions-) Postfachs ein.

Ergebnis:

  1. Die vier Personen sehen keine E-Mails mehr.
  2. Können aber welche verschicken, die dann im Ordner auf dieser Ebene abgelegt werden.

Hintergrund-Analyse

Vermutlich (ungetestet) mismatch der Einstellungen:

user_filter = (&(|(objectClass=univentionMail)(objectClass=univentionMailSharedFolder))(|(!(univentionMailHomeServer=*))(univentionMailHomeServer=mail.domain.de))(|(mailPrimaryAddress=%Lu)(uid=%u)))

iterate_filter = (&(objectClass=univentionMail)(|(!(univentionMailHomeServer=*))(univentionMailHomeServer=mail.domain.de))(mailPrimaryAddress=*))

Wir würden erwarten, dass im user_filter der (uid=%u) Teil entfernt würde oder er im iterate_filter auftaucht.

Gruß

Sven

Hallo in die Runde,

wir beobachten bei uns ebenfalls Benutzerordner im Dovecot Tree, wo sie nicht sein sollten. Die eigentlichen Mails sind nicht enthalten, wohl aber die gesamte Maildir Struktur. Bei uns liegt die Cyrus2Dovecot Migration allerdings 6 Monate zurück.

In der History tauchen die leeren Verzeichnisse seit 4. Oktober auf. An diesem Tag haben wir auf unserem UCS 4.2-4 Slave ein Update der OX-Appsuite installiert.

open-xchange-admin (7.8.4-43) wird eingerichtet ...
open-xchange-oauth (7.8.4-43) wird eingerichtet ...
open-xchange-halo (7.8.4-43) wird eingerichtet ...
open-xchange-l10n-en-us (7.8.4-43) wird eingerichtet ...
open-xchange-appsuite-l10n-en-us (7.8.4-42) wird eingerichtet ...
open-xchange-l10n-zh-tw (7.8.4-43) wird eingerichtet ...
open-xchange-appsuite-l10n-zh-tw (7.8.4-42) wird eingerichtet ...
open-xchange-l10n-zh-cn (7.8.4-43) wird eingerichtet ...
open-xchange-appsuite-l10n-zh-cn (7.8.4-42) wird eingerichtet ...
open-xchange-l10n-sv-se (7.8.4-43) wird eingerichtet ...
open-xchange-appsuite-l10n-sv-se (7.8.4-42) wird eingerichtet ...
open-xchange-l10n-sk-sk (7.8.4-43) wird eingerichtet ...
open-xchange-appsuite-l10n-sk-sk (7.8.4-42) wird eingerichtet ...
open-xchange-l10n-ru-ru (7.8.4-43) wird eingerichtet ...
open-xchange-appsuite-l10n-ru-ru (7.8.4-42) wird eingerichtet ...
open-xchange-l10n-ro-ro (7.8.4-43) wird eingerichtet ...
open-xchange-appsuite-l10n-ro-ro (7.8.4-42) wird eingerichtet ...
open-xchange-l10n-pt-br (7.8.4-43) wird eingerichtet ...
open-xchange-appsuite-l10n-pt-br (7.8.4-42) wird eingerichtet ...
open-xchange-l10n-pl-pl (7.8.4-43) wird eingerichtet ...
open-xchange-appsuite-l10n-pl-pl (7.8.4-42) wird eingerichtet ...
open-xchange-l10n-nl-nl (7.8.4-43) wird eingerichtet ...
open-xchange-appsuite-l10n-nl-nl (7.8.4-42) wird eingerichtet ...
open-xchange-l10n-nb-no (7.8.4-43) wird eingerichtet ...
open-xchange-appsuite-l10n-nb-no (7.8.4-42) wird eingerichtet ...
open-xchange-l10n-lv-lv (7.8.4-43) wird eingerichtet ...
open-xchange-appsuite-l10n-lv-lv (7.8.4-42) wird eingerichtet ...
open-xchange-l10n-ja-jp (7.8.4-43) wird eingerichtet ...
open-xchange-appsuite-l10n-ja-jp (7.8.4-42) wird eingerichtet ...
open-xchange-l10n-it-it (7.8.4-43) wird eingerichtet ...
open-xchange-appsuite-l10n-it-it (7.8.4-42) wird eingerichtet ...
open-xchange-l10n-hu-hu (7.8.4-43) wird eingerichtet ...
open-xchange-appsuite-l10n-hu-hu (7.8.4-42) wird eingerichtet ...
open-xchange-l10n-fr-fr (7.8.4-43) wird eingerichtet ...
open-xchange-appsuite-l10n-fr-fr (7.8.4-42) wird eingerichtet ...
open-xchange-l10n-fr-ca (7.8.4-43) wird eingerichtet ...
open-xchange-appsuite-l10n-fr-ca (7.8.4-42) wird eingerichtet ...
open-xchange-l10n-fi-fi (7.8.4-43) wird eingerichtet ...
open-xchange-appsuite-l10n-fi-fi (7.8.4-42) wird eingerichtet ...
open-xchange-l10n-et-ee (7.8.4-43) wird eingerichtet ...
open-xchange-appsuite-l10n-et-ee (7.8.4-42) wird eingerichtet ...
open-xchange-l10n-es-mx (7.8.4-43) wird eingerichtet ...
open-xchange-appsuite-l10n-es-mx (7.8.4-42) wird eingerichtet ...
open-xchange-l10n-es-es (7.8.4-43) wird eingerichtet ...
open-xchange-appsuite-l10n-es-es (7.8.4-42) wird eingerichtet ...
open-xchange-l10n-en-gb (7.8.4-43) wird eingerichtet ...
open-xchange-appsuite-l10n-en-gb (7.8.4-42) wird eingerichtet ...
open-xchange-l10n-de-de (7.8.4-43) wird eingerichtet ...
open-xchange-appsuite-l10n-de-de (7.8.4-42) wird eingerichtet ...
open-xchange-l10n-da-dk (7.8.4-43) wird eingerichtet ...
open-xchange-appsuite-l10n-da-dk (7.8.4-42) wird eingerichtet ...
open-xchange-l10n-cs-cz (7.8.4-43) wird eingerichtet ...
open-xchange-appsuite-l10n-cs-cz (7.8.4-42) wird eingerichtet ...
open-xchange-l10n-ca-es (7.8.4-43) wird eingerichtet ...
open-xchange-appsuite-l10n-ca-es (7.8.4-42) wird eingerichtet ...
open-xchange-appsuite-manifest (7.8.4-42) wird eingerichtet ...
Run update-themes with --if-needed option to update themes later
open-xchange-appsuite-backend (7.8.4-43) wird eingerichtet ...
open-xchange-authentication-ucs (7.8.4-43) wird eingerichtet ...
open-xchange-authorization-standard (7.8.4-43) wird eingerichtet ...
open-xchange-calendar-printing (7.8.4-43) wird eingerichtet ...
open-xchange-configjump-generic (7.8.4-43) wird eingerichtet ...
open-xchange-contact-storage-ldap (7.8.4-43) wird eingerichtet ...
open-xchange-freebusy (7.8.4-43) wird eingerichtet ...
open-xchange-pns-impl (7.8.4-43) wird eingerichtet ...
open-xchange-dav (7.8.4-43) wird eingerichtet ...
open-xchange-drive (7.8.4-43) wird eingerichtet ...
open-xchange-drive-client-windows (7.8.4-43) wird eingerichtet ...
open-xchange-grizzly (7.8.4-43) wird eingerichtet ...
open-xchange-drive-comet (7.8.4-43) wird eingerichtet ...
open-xchange-eas-provisioning-core (7.8.4-43) wird eingerichtet ...
open-xchange-file-distribution (7.8.4-43) wird eingerichtet ...
open-xchange-mailfilter (7.8.4-43) wird eingerichtet ...
open-xchange-manage-group-resource (7.8.4-43) wird eingerichtet ...
open-xchange-passwordchange-database (7.8.4-43) wird eingerichtet ...
open-xchange-pop3 (7.8.4-43) wird eingerichtet ...
open-xchange-publish (7.8.4-43) wird eingerichtet ...
open-xchange-rest (7.8.4-43) wird eingerichtet ...
open-xchange-sessionstorage-hazelcast (7.8.4-43) wird eingerichtet ...
open-xchange-smtp (7.8.4-43) wird eingerichtet ...
open-xchange-soap-cxf (7.8.4-43) wird eingerichtet ...
open-xchange-spamhandler-spamassassin (7.8.4-43) wird eingerichtet ...
open-xchange-unifiedmail (7.8.4-43) wird eingerichtet ...
open-xchange-imap (7.8.4-43) wird eingerichtet ...
open-xchange (7.8.4-43) wird eingerichtet ...
open-xchange-admin-soap (7.8.4-43) wird eingerichtet ...
open-xchange-admin-user-copy (7.8.4-43) wird eingerichtet ...
open-xchange-admin-soap-usercopy (7.8.4-43) wird eingerichtet ...
open-xchange-appsuite (7.8.4-42) wird eingerichtet ...
open-xchange-appsuite-help-common (7.8.4-42) wird eingerichtet ...
open-xchange-appsuite-help-de-de (7.8.4-42) wird eingerichtet ...
open-xchange-appsuite-help-en-gb (7.8.4-42) wird eingerichtet ...
open-xchange-appsuite-help-en-us (7.8.4-42) wird eingerichtet ...
open-xchange-appsuite-help-es-es (7.8.4-42) wird eingerichtet ...
open-xchange-appsuite-help-es-mx (7.8.4-42) wird eingerichtet ...
open-xchange-appsuite-help-fr-fr (7.8.4-42) wird eingerichtet ...
open-xchange-appsuite-help-it-it (7.8.4-42) wird eingerichtet ...
open-xchange-appsuite-help-ja-jp (7.8.4-42) wird eingerichtet ...
open-xchange-appsuite-help-nl-nl (7.8.4-42) wird eingerichtet ...
open-xchange-appsuite-help-pl-pl (7.8.4-42) wird eingerichtet ...
open-xchange-appsuite-help-zh-cn (7.8.4-42) wird eingerichtet ...
open-xchange-l10n-el-gr (7.8.4-43) wird eingerichtet ...
open-xchange-l10n-eu-es (7.8.4-43) wird eingerichtet ...
open-xchange-l10n-gl-es (7.8.4-43) wird eingerichtet ...
open-xchange-l10n-he-he (7.8.4-43) wird eingerichtet ...
open-xchange-l10n-hi-in (7.8.4-43) wird eingerichtet ...
open-xchange-l10n-ko-ko (7.8.4-43) wird eingerichtet ...
open-xchange-l10n-pt-pt (7.8.4-43) wird eingerichtet ...
open-xchange-l10n-tr-tr (7.8.4-43) wird eingerichtet ...
open-xchange-messaging (7.8.4-43) wird eingerichtet ...
open-xchange-report-client (7.8.4-43) wird eingerichtet ...
open-xchange-meta-backend-ox6 (7.8.4-43) wird eingerichtet ...
open-xchange-meta-messaging (7.8.4-43) wird eingerichtet ...
open-xchange-meta-ui-appsuite (7.8.4-43) wird eingerichtet ...
open-xchange-meta-mobility (7.8.4-43) wird eingerichtet ...
open-xchange-meta-outlook (7.8.4-43) wird eingerichtet ...
open-xchange-subscribe (7.8.4-43) wird eingerichtet ...
open-xchange-meta-pubsub (7.8.4-43) wird eingerichtet ...
open-xchange-push-imapidle (7.8.4-43) wird eingerichtet ...
open-xchange-meta-ui-ox6 (7.8.4-43) wird eingerichtet ...
open-xchange-meta-oxucs (7.8.4-43) wird eingerichtet ...
open-xchange-meta-server (7.8.4-43) wird eingerichtet ...
open-xchange-mobile-config (7.8.4-43) wird eingerichtet ...
open-xchange-mobile-configuration-generator (7.8.4-43) wird eingerichtet ...
open-xchange-mobile-configuration-json (7.8.4-43) wird eingerichtet ...
open-xchange-mobile-configuration-json-action-email (7.8.4-43) wird eingerichtet ...
open-xchange-realtime-core (7.8.4-43) wird eingerichtet ...
open-xchange-realtime-json (7.8.4-43) wird eingerichtet ...
open-xchange-themes-default (7.8.4-43) wird eingerichtet ...
open-xchange-unifiedinbox (7.8.4-43) wird eingerichtet ...
open-xchange-webdav-acl (7.8.4-43) wird eingerichtet ...
open-xchange-webdav-directory (7.8.4-43) wird eingerichtet ...
Log ended: 2018-10-04  09:46:49

Tatsächlich hatten wir bereits Nutzer Nachfrage, weshalb Mails scheinbar “verschwinden”.

Viele Grüße
Sebastian

Moin,
wir haben vom Univention-Support folgenden Workaround erhalten:

echo auth_default_realm = gibt-es-nicht.domain.de >/etc/dovecot/conf.d/10-disable-plain-login.conf

systemctl dovecot restart

Dieser verhindert die Anmeldung mit dem Benutzernamen (statt Mailaddresse) als IMAP-Login.

1 Like

Hi
Problem besteht hier auch bei einigen Kunden.
Lösung von digitec-san funktioniert bestens!
Da kommt aber noch ein genereller Fix seitens Univention, oder?

Danke
Sascha

Moin,

das ursächliche Problem hier ist der Fall, dass sich die Benutzer uneinheitlich anmelden. Einige nutzen “benutzername”, andere “benutzername@domain”.

Dovecot kennt das Domänenkonzept nicht, d.h. für Dovecot sind die beiden völlig unterschiedliche Benutzer. Daraus resultieren die Probleme der “verwürfelten” Maildirs.

Der genannte Parameter bringt einfach alle Benutzer, die sich nur mit ihrem Benutzernamen anmelden auf “benutzername@gibt-es-nicht.domain.de”. Den Realm “gibt-es-nicht.domain.de” wiederum gibt es nicht (Ach! :wink: ). Der Benutzer wird also abgelehnt. Dadurch werden die Benutzer dazu gezwungen, vollständige Benutzernamen inkl. korrekter Domain zur Authentifizierung zu verwenden.
Dann klappt auch alles.

Das ist in dem Sinne also kein Fehler/ Bug, weshalb auch kein Fix erforderlich ist. Auch die Option wird es voraussichtlich nicht in ein UCS Release schaffen, da die Email-Optionen bereits jetzt kaum überschaubar sind.

Ansonsten hier der dazu passende Artikel.

/CV

Hi Christian,
in unserem Fall tauchte das problem beim Hinzufügen von additional Mails im OX auf.
Der an OX angemeldete Benutzer möchte per “add Mailaccount” eine Mailadresse hinzufügen. Dafür gab er die vollständige mailadresse (also inkl.@domain.de) und das Passwort an. Dovecot legt den entsprechenden Ordner dann aber nicht wie erwartet im Domain-Ordner an sondern eben direkt unter private an, obwohl es den entsprechenden Ordner bereits unter /var/spool/dovecot/private/domain.de/ gab.
Insofern wurde ja hier die vollständige Mailadresse benutzt.
Keine Ahnung, ob das jetzt klar geworden ist, ist auch schon spät…:slight_smile:

1 Like

Moin Sascha,

das war bei uns auch der Fall. Die Benutzer haben keinen einfachen Benutzernamen angegeben, weil sie bei solchen Dingen die Admins rufen :slight_smile: Und wir haben es gemäß user@domain.de eingestellt. Trotzdem waren später laut doveadm who reine Benutzernamen ohne Domain Teil angemeldet.
lG
Sebastian

Das sehe ich anders: Das es beim Dovecot beim Anmelden von user (ohne Domain) Auswirkungen auf user@domain.de hat, darf nicht sein. Und UCS ist für mich eine Distribution die richtig konfiguriert daher kommt. Das ist für mich gerade die Särke zu z.B. Debian. User machen Fehler, auch das sie statt user@domain.de nur user schreiben. Dieser Fehler hatte unter dem Cyrus keine Auswirkung.

Unter Dovecot mit UCS führt sie jetzt zu einem sehr dramatischen Fehler: “Meine E-Mails sind weg”.

Wenn es wenigstens nur für den Mailclient wäre, der falsch konfiguriert ist. Dann könnte ich damit leben. Da kann ich dem User dann sagen: Du hast dich nicht an die Regeln gehalten, deshalb siehst du das falsche Postfach. Aber es hat halt Auswirkungen auf das OX, wenn der User seinen Handy-Mailclient falsch konfiguriert hat. Das ist ja schon für uns Admins kompliziert, bei welchen Dienst man sich wie anmelden soll (in der UCS Oberfläche als Administrator, im SSH als root, beim OX mit dem Usernamen, beim Mailserver mit der E-Mailaddresse im Active-Sync vom OX mit uid@domain.de …), ich behaupte bei einer Organisation mit mehr als 300 Usern und OX wird es irgendwann dazu kommen, dass sich jemand am Mail-Server falsch anmeldet.

Ich wünsche mir hier einen Bugfix, der das Problem beseitigt. Ob es dafür eine UCR Variable geben muss, ist mir egal, aber es sollte Defaultmäßig nicht auftreten. D.H. wenn ich mir ein UCS neu installiere (oder den letzten Bugfix eingespielt hat) sollte man nicht in die Situation kommen, dass ein richtig konfigurierter Mailclient auf einmal keine Mails mehr anzeigt, weil man wo anders etwas falsch gemacht hat.

1 Like

Vollkommen Deiner Meinung Sven!
Glaube auch, dass das hier zu unerwünschten und massiven Rückmeldungen seitens der Kunden kommen würde.
Liebe Grüße
Sascha

Etwas technisches: Anscheinend sollte der Bug https://forge.univention.org/bugzilla/show_bug.cgi?id=47642 beziehungsweise das Update 228 und 229 dazu führen, dass man sich beim Dovecot mit dem Benutzernamen anmelden können soll:

* The PAM stack has been fixed to allow the login via username (Bug #47642)

Das klingt zunächst einmal so, dass es egal sein muss, ob der Benutzer sich mit der E-Mail Adresse oder seinem Benutzernamen anmeldet, die Mails sollten die gleichen sein.

Weiterhin war doch bislang libpam-univentionmailcyrus dafür zuständig Benutzernamen zu Mail Adressen umzusetzen, oder? Wurde das möglicherweise in den hier fehlerhaften Konfigurationen entfernt oder funktioniert OX anders?

Hallo,
bei einem Kunden, der den Workaround nutzt, gibt es jetzt Fehler beim Anlegen von Shared-Foldern. Wir haben das soweit analysiert: Der Lisener loggt sich beim IMAP Server als dovecotadmin ein (um ACLs zu setzen), das schlägt fehl, weil den User dovecotadmin@gibt-esnicht.domain.de nicht gibt.

Macht man den Workaround rückgängig, funktioniert das wieder.

Ich habe das beschriebene Problem nun in 4.2-3 nachvollziehen können. In 4.3 besteht es definitiv nicht.
Es handelt sich um einen Bug in Dovecots userdb cache.
Beim ersten Zugriff (userdb cache miss) auf einen IMAP-Ordner wird der username change erkannt und vollzogen, bei darauf folgenden (userdb cache hit) nicht mehr.

Auth-logging einschalten:

$ ucr set mail/dovecot/logging/auth_debug=yes mail/dovecot/logging/auth_verbose=yes mail/dovecot/logging/mail_debug=yes mail/dovecot/logging/auth_debug_passwords=yes
$ service dovecot restart

Beim Testen hat stand im log (stark gekürzt), beim ersten Zugriff:

auth: Debug: client passdb out: OK#0111#011user=test2
auth: Debug: ldap(test2,10.205.2.33,<SYPexHOEQgAKzQIh>): userdb cache miss
auth: Debug: ldap(test2,10.205.2.33,<SYPexHOEQgAKzQIh>): user search: ...
auth: Debug: ldap(test2,10.205.2.33,<SYPexHOEQgAKzQIh>): result: uid=test2 ...
auth: Debug: ldap(test2,10.205.2.33,<SYPexHOEQgAKzQIh>): username changed test2 -> test2m@uni.dtr
imap-login: Login: user=<test2>, ...
imap(test2m@uni.dtr): Debug: Effective uid=125, gid=133, home=/var/spool/dovecot/private/uni.dtr/test2m

Beim zweiten Zugriff mit der gleichen Verbindung (klick auf einen anderen Ordner):

auth: Debug: client passdb out: OK#0111#011user=test2
auth: Debug: ldap(test2,10.205.2.33,<ak59xXOESAAKzQIh>): userdb cache hit: uid=125#011gid=133#011system_groups_user=test2#011quota_rule=*:bytes=0M
imap-login: Login: user=&lt;test2&gt;,...
imap(test2): Debug: Effective uid=125, gid=133, home=/var/spool/dovecot/private//test2

In der letzten Zeile steht jetzt das falsche home.

Auf einem 4.3er System sieht die userdb cache hit Zeile so aus:

auth: Debug: ldap(test2,10.205.2.33,<2bl+Y3CEUOUKzQIh>): userdb cache hit: uid=126#011gid=132#011system_groups_user=test2#011quota_rule=*:bytes=0M#011user=test2m@uni.dtr

Hier liefert der cache also user=test2m@uni.dtr aus (das kommt von den user_attrs aus /etc/dovecot/dovecot-ldap.conf.ext, welche in 4.2 und 4.3 identisch sind).

Das Deaktivieren des caches hat das Problem bei mir unter 4.2 beseitigt:

$ ucr set mail/dovecot/auth/cache_size=0
$ service dovecot restart

Bitte nicht vergessen, wenn alles funktioniert, das auth-logging wieder zu deaktivieren.

2 Likes
Mastodon