Hallo,
wie versprochen die Auflösung: Und hoffentlich finde ich das auch, wenn ich in zwei Jahren wieder das Problem habe und es mir nicht mal bekannt vorkommt. (@Google: I meant you ;))
Heiko Schlittermann hs@schlittermann.de (Do 08 Okt 2015 17:12:57 CEST):
ich habe hier einen Dovecot 2.2.9, der hat seine userdb und passdb gegen
Wie es aussieht, ist das auch in 2.2.13 noch kaputt. Ein einfcher schneller Fix kann sein:
--- dovecot-2.2.9/src/auth/db-ldap.c 2013-11-24 14:37:39.000000000 +0100 +++ dovecot-2.2.9.hs12/src/auth/db-ldap.c 2015-10-08 21:24:47.051446465 +0200 @@ -1043,7 +1043,7 @@
static void db_ldap_set_tls_options(struct ldap_connection *conn) { - if (!conn->set.tls) + if (!(conn->set.tls || strncmp(conn->set.uris, "ldaps:", 6) == 0)) return;
#ifdef OPENLDAP_TLS_OPTIONS
Dann werden die tls_* settings auch bei einer ldaps:// URI aktiv.
Dann müssen nur noch die Files mit Key und Cert lesbar sein. Dass Dovecot in der Gruppe ssl-cert ist, hilft nicht weiter. (Der Key ist nur für root:ssl-cert zugänglich). Denn Dovecot liest als Root die *CONFIG* Files, und weiss also, dann, wie das Key- und Cert-File heissen.
Diese Parameter übergibt er an die LDAP-Client-Bibliothek (die im übrigen gegen GnuTLS gelinkt ist, Dovecot für seinen Teil gegen OpenSSL), und wenn der die Verbindung zum LDAP-Server aufbaut (also wenn die Library die Verbindung aufbaut), dann ist er nicht mehr Root. Und um initgroups() kümmert er sich nicht, also läuft der Prozess als dovecot:dovecot. Und kann dann natürlich die Files nicht lesen.
Aber in der dovecot.conf kann man im auth-service
extra_groups = ssl-cert
eintragen.
Gibt es eigentlich sowas wie eine Referenz-Dokumentation für Dovecot, oder sind das Wiki und unvollständige Manpages wirklich alles?
Best regards from Dresden/Germany Viele Grüße aus Dresden Heiko Schlittermann