UCS 4.1 - dovecot master-user nach Update kein Zugriff mehr

mail
german

#1

Hallo,
ich habe einen UCS 4.1 von 4.1-2 errata191 auf 4.1.2 errata 220 aktualisiert und habe danach mit der Mailstore Archivierung das Problem, dass der vorher genutzte “master-user” sich zwar am dovecot IMAP-Server ohne Fehler anmelden kann (dass Passwort habe ich kontrolliert), aber danach hat er in den einzelnen Mailboxen keine Rechte. Daher kann der Archivjob auch nichts mehr archivieren. Dies hat monatelang einwandfrei funktioniert.
Ich habe jetzt in /etc/dovecot/conf.d nach verdächtigen Änderungen gesucht und werde nicht fündig.
Was kann ich tun?

  • Philipp

#2

Hallo,

bei den Updates von 4.1-2 errata191 auf 4.1.2 errata 220 wurde nichts Mail-relevantes angefasst: errata.software-univention.de/ucs/4.1/

Das Debuggen von Dovecot-Problemen ist zum Glück gut konfigurierbar. Auskunft bekommen Sie mit:

ucr search --verbose mail/dovecot/logging/

Ich schlage vor:

ucr set mail/dovecot/logging/auth_debug=yes mail/dovecot/logging/auth_verbose=yes mail/dovecot/logging/mail_debug=yes invoke-rc.d dovecot restart

Das Logfile mit den Debug-Informationen ist: /var/log/dovecot.log

Um zu sehen was der der master-user als User eingeloggt sieht, können Sie diesen einfach in einem E-Mail-Client benutzen (zB Thunderbird).
Username "daniel@univention.de*dovecotadmin"
Passwort: Das was in /etc/dovecot/master-users zwischen {PLAIN} und :::::: steht.

Angehängt ist ein kleines Test-Skript, dass Sie mit einem Mail-Account als Argument ausführen können:

chmod +x imaptest.py ./imaptest.py daniel@univention.de

imaptest.py (512 Bytes)

Grüße
Daniel Tröder


#3

Hallo Herr Tröder,
ich kann mich am IMAP-Dienst per IMAP-SSL offenbar erfoglreich anmelden als Benutzer username@domainname.de, bis auf “Posteingang” sind aber alle kursiv gesetzt.
Beim Zugriff auf die einzelnen Folder erhalte ich die Fehlermeldung “[SERVERBUG] internal sever error. Refer to server log for more information.”
Wo muss ich jetzt auf dem Server nachsehen?

Gruß, Philipp Rusch

P.S.: Ich bestehe nicht darauf, dass das Ganze mit dem jüngsten Update zusammenhängt, der Kunde hat das vermutet. Es kann durchaus sein, dass das Archiv schon länger nicht mehr “versorgt” wird, weil der dovecotadmin nicht so funktioniert, wie er soll.


#4

Logging gesetzt, wie vorgeschlagen.
Der dovecot meckert über /var/spool/dovecot/private/domainname.de/username/Maildir/dovecot-acl not found
Kann das sein, dass die ACLs in den Verzeichnissen nicht (mehr) stimmen?

Gruß, Philipp


#5

[quote=“prusch”]Der dovecot meckert über /var/spool/dovecot/private/domainname.de/username/Maildir/dovecot-acl not found
Kann das sein, dass die ACLs in den Verzeichnissen nicht (mehr) stimmen?[/quote]
Das ist i.O. Dovecot meckert über alles was er nicht findet, auch wenn es kein Fehler ist. Im Logfile sollte die Meldung als “Debug:” gekennzeichnet sein.

Thunderbird zeigt die Ordner kursiv an, weil sie ihm leer erscheinen. Wenn die Mailbox auf dem Server tatsächlich Mails enthält, könnte es sein, dass sie die falschen Dateiberechtigungen haben. Alle Dateien und Verzeichnisse sollte User dovemail und Gruppe dovemail gehören.

Das klingt nach einem Problem. Die entsprechende Nachricht sollte mit “Error” gekennzeichnet sein, und daher auch in /var/log/dovecot.warn auftauchen (auch in .log, aber dort ist sie schwieriger zu finden).


#6

in den verschiedenen dovecot.warn Dateien finde ich immer wieder bei allen Usern:
Aug 4 08:16:18 mail dovecot: imap(username@domainname.de): Error: Failed to autocreate mailbox INBOX: Permission denied

Das Maildir-Verzeichnis gehört dovemail/dovemail.
Kurioserweise funktioniert der OpenXchange “obendrauf” problemlos.

Gruß, Philipp


#7

Bitte schauen Sie auch weiter oben nach. Der gesamte Verzeichnisbaum unter /var/spool/dovecot sollte dovemail/dovemail gehören.

Könnte sich die Fehlermeldung auf das Ziel des backups richten? (Ich weiß nicht wie Sie das Backup durchführen.)

Hilfreich wäre die Konfiguration:

doveconf -n

Gruß
Daniel


#8

Ausgabe von doveconf -n:

2.2.13: /etc/dovecot/dovecot.conf

OS: Linux 4.1.0-ucs190-amd64 x86_64 Univention Corporate Server 4.1-2 errata220 (Vahr) ext4

auth_cache_negative_ttl = 1 mins
auth_cache_size = 100 k
auth_cache_ttl = 5 mins
auth_debug = yes
auth_master_user_separator = *
auth_mechanisms = plain login
auth_verbose = yes
debug_log_path = syslog
default_client_limit = 400
default_process_limit = 400
first_valid_gid = 122
first_valid_uid = 118
info_log_path = syslog
last_valid_gid = 122
last_valid_uid = 118
mail_debug = yes
mail_gid = dovemail
mail_home = /var/spool/dovecot/private/%Ld/%Ln
mail_location = maildir:/var/spool/dovecot/private/%Ld/%Ln/Maildir
mail_plugins = " acl quota"
mail_privileged_group = dovemail
mail_uid = dovemail
mailbox_list_index = yes
managesieve_notify_capability = mailto
managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date ihave imapflags notify
namespace {
list = children
location = maildir:%%h/Maildir:INDEXPVT=~/Maildir/shared/%%u
prefix = shared/%%u/
separator = /
subscriptions = no
type = shared
}
namespace inbox {
inbox = yes
location =
mailbox Drafts {
special_use = \Drafts
}
mailbox Entwürfe {
auto = subscribe
special_use = \Drafts
}
mailbox “Gesendete Objekte” {
auto = subscribe
special_use = \Sent
}
mailbox Ham {
auto = no
}
mailbox Junk {
special_use = \Junk
}
mailbox Papierkorb {
auto = subscribe
special_use = \Trash
}
mailbox Sent {
special_use = \Sent
}
mailbox “Sent Messages” {
special_use = \Sent
}
mailbox Spam {
auto = no
special_use = \Junk
}
mailbox Trash {
special_use = \Trash
}
mailbox confirmed-spam {
special_use = \Junk
}
prefix =
separator = /
type = private
}
passdb {
args = /etc/dovecot/master-users
driver = passwd-file
master = yes
}
passdb {
args = cache_key=%Lu dovecot
driver = pam
}
plugin {
acl = vfile
acl_anyone = allow
acl_shared_dict = file:/var/lib/dovecot/shared-mailboxes
quota = maildir:User quota
quota_grace = 10%%
quota_rule = *:storage=0
quota_rule2 = Trash:storage=+100M
quota_status_nouser = DUNNO
quota_status_overquota = 552 5.2.2 Mailbox is full
quota_status_success = DUNNO
quota_warning = storage=95%% quota-warning 95 %Lu
quota_warning2 = storage=80%% quota-warning 80 %Lu
sieve = ~/.dovecot.sieve
sieve_dir = ~/sieve
sieve_extensions = +notify +imapflags
sieve_global_dir = /var/lib/dovecot/sieve
}
pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
protocols = " imap lmtp sieve pop3"
service anvil {
client_limit = 1603
}
service auth {
client_limit = 2000
unix_listener /var/spool/postfix/private/auth {
group = postfix
mode = 0666
user = postfix
}
}
service imap-login {
client_limit = 400
process_min_avail = 0
service_count = 1
vsz_limit = 256 M
}
service imap-postlogin {
executable = script-login /usr/lib/dovecot/dovecot-postlogin.py
user = $default_internal_user
}
service imap {
executable = imap imap-postlogin
process_limit = 400
vsz_limit = 256 M
}
service lmtp {
unix_listener /var/spool/postfix/private/dovecot-lmtp {
group = postfix
mode = 0600
user = postfix
}
}
service managesieve-login {
inet_listener sieve {
address =
port = 4190
}
process_min_avail = 0
service_count = 1
vsz_limit = 256 M
}
service managesieve {
process_limit = 400
}
service pop3-login {
client_limit = 400
process_min_avail = 0
service_count = 1
vsz_limit = 256 M
}
service pop3 {
executable = pop3 imap-postlogin
process_limit = 400
vsz_limit = 256 M
}
service quota-status {
client_limit = 1
executable = quota-status -p postfix
inet_listener {
address = 127.0.0.1
port = 12340
}
}
service quota-warning {
executable = script /usr/lib/dovecot/quota-warning.sh
unix_listener quota-warning {
user = dovemail
}
user = dovemail
}
ssl_cert = </etc/univention/ssl/mail.heyco.local/cert.pem
ssl_cipher_list = EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH:+CAMELLIA256:+AES256:+CAMELLIA128:+AES128:+SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!ECDSA:CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA
ssl_client_ca_dir = /etc/ssl/certs
ssl_dh_parameters_length = 2048
ssl_key = </etc/univention/ssl/mail.heyco.local/private.key
ssl_parameters_regenerate = 1 weeks
ssl_prefer_server_ciphers = yes
ssl_protocols = !SSLv2 !SSLv3
syslog_facility = local5
userdb {
args = /etc/dovecot/dovecot-ldap.conf.ext
driver = ldap
}
protocol lmtp {
mail_plugins = " acl quota quota sieve"
}
protocol lda {
mail_plugins = " acl quota sieve"
}
protocol imap {
mail_plugins = " acl quota imap_acl imap_quota"
}
protocol sieve {
mail_max_userip_connections = 10
}


#9

Das mit dem Backup-Ziel verstehe ich nicht.
Zur Situation: der UCS befindet sich in einer VM auf einem VMware ESXi 5.5 Cluster.
Das Backup machen wir mit VMware Dataprotection, indem wir die gesamte VM und die beiden virtuellen Platten sichern.
Ändern sich dabei die Rechte der Verzeichnisse? Das glaube ich ehrlich gesagt nicht!
Die Rechte sind wie folgt auf

/var/spool/dovecot : 40755 dovemail/dovemail
/var/spool/dovecot/private/domainname.de : 42750 dovemail/dovemail

Die einzelnen Benutzer haben dann:
/var/spool/dovecot/private/domainname.de/username : 42700 dovemail/dovemail

und ich glaube, das ist das Problem: dann müssten ja alle Mail-Benutzer Mitglieder dieser Gruppe sein, um Schreibrechte zu besitzen.
Die Userkonten kommen bei diesem Kunden aber aus der ADS und werden auf der UCS nicht mit der Hand angelegt.
Die Gruppe dovemail ist aber leer. jetzt bin ich mit meinem Latein am Ende.

Gruß, Philipp


#10

Achso, das mit den Backup-Ziel bezog sich auf den Archivierungsjob ?!?
Nein, das kann nicht sein, die Meldung erhalte ich ja auch schon beim Zugriff mit dem Thunderbird.

  • Philipp

#11

[quote=“prusch”]und ich glaube, das ist das Problem: dann müssten ja alle Mail-Benutzer Mitglieder dieser Gruppe sein, um Schreibrechte zu besitzen.
Die Userkonten kommen bei diesem Kunden aber aus der ADS und werden auf der UCS nicht mit der Hand angelegt.
Die Gruppe dovemail ist aber leer. jetzt bin ich mit meinem Latein am Ende.[/quote]Dovecot ist für “virtual users” konfiguriert. Der Dovecot server läuft mit den als dovemail/dovemail und regelt die Berechtigungen für die Benutzer selbst (nicht das Dateisystem).

[quote=“prusch”]Achso, das mit den Backup-Ziel bezog sich auf den Archivierungsjob ?!?
Nein, das kann nicht sein, die Meldung erhalte ich ja auch schon beim Zugriff mit dem Thunderbird.[/quote]Ach so OK.

Es ist nicht unüblich einen Backup-Job mit dsync o.ä. zu machen, bei dem die Mails per IMAP von den Konten abgerufen und zu einem entfernten IMAP-Server übertragen werden. Der könnte theoretisch auch “lokal” sein, mit einer remote-Platte. Deswegen fragte ich nach dem Backup-Ziel :slight_smile:


#12

Ja - ok. Das mit den virtual users ist mit jetzt klar.

Aber das Verhalten ist doch ein Bug? Wie bekomme ich das gefixt?

  • Philipp

#13

Bei mir funktioniert das Login als ein anderer User mit dem dovecotadmin und ich sehe dann auch Mails. Wenn bei Ihnen das Login klappt, aber danach das Sehen der Mails nicht, stattdessen die INBOX angelegt werden soll, ist etwas seltsam.

Im Logfile steht welche Pfade Dovecot liest.

  • Sind die korrekt?
  • Gibt es Unterschiede zu den Pfaden die beim Login des Users (ohne dovecotadmin) gelesen werden?

Wenn eh die ganze Platte gesichert wird - wozu wird sich per IMAP eingeloggt?


#14

Also nochmal von vorne:
Wir setzen eine Archivierungs-Software für Emails ein: Mailstore. Dies ist kein Backup, sondern ein Archivserver mit einer eigenen Datenbank, in die die User jederzeit mit einem Outlook-Plugin online zugreifen können.
Der Mailstore-Server liest die Daten aus den Mailboxen mit dem Dovecot Master-User aus, damit er nicht von jeder einzelnen Mailbox das Passwort benötigt (das wir auch gar nicht kennen).
Dies hat monatelang einwandfrei funktioniert. Irgendwann brachen die Archivjobs in der Nacht mit Fehlern ab. Wir haben auf dem Mailstore-Server nichts geändert, wohl aber in der Zwischenzeit den UCS von 4.0 auf 4.1 gezogen und weitere Updates gefahren, wann immer von Univention welche anstanden. Das Passwort des Dovecot “master-user” habe ich überprüft, es ist korrekt. Wenn ich es auf dem Mailstore ändere, dann kann ich gar nicht auf den IMAP-Dienst zugreifen. (Fehlermeldung sinngemäß “Login fehlgeschlagen”). Ich suche jetzt also nach dem Fehler, der mir den weiteren Zugang auf die Inhalte der einzelnen Benutzer-Postfächer verhindert.

  • Philipp

#15

Hallo,
ich bräuchte da schon noch weitere Hilfe, weil ich mit dem dovecot nicht weiterkomme.
Die Fehlermeldungen kommen in ALLEN Benutzerkonten, die Pfade sind effektiv vorhanden.
OX 7.8.1 ist offenbar mit den Rechten zufrieden, Thunderbird und Mailstore dagegen nicht.
Der OXtender2 für die Outlook Clients läuft aber einwandfrei.

  • Philipp

#16

Die Archivsoftware kann dies auf jeden Fall noch nicht mit UCS 4.0 gemacht haben, denn da gab es noch kein Dovecot.

Zur genaueren Analyse könnten Sie im Mailarchiv (Logs / letzte kopierte Mails) nachschauen, ab wann das Problem genau auftrat und dann im UCS in /var/log/univention/updater.log schauen welche Pakete an diesem und den vorherigen Tag geupdaten wurden und in /var/log/univention/replog (oder so ähnlich) welche UCRs.

Ich habe mit den vorhandenen Informationen keine weitere Idee. Wenn Sie den Support von Univention in Anspruch nehmen, kann dieser auch direkt auf das System schauen und das Problem evtl. schneller lösen als wir hier im Forum. Wenn Sie wünschen, können Sie diesen hier kontaktieren: univention.de/produkte/supp … taktieren/

Beste Grüße
Daniel