[Postfixbuch-users] Cyrus mit saslauthd und ldap

Andreas Winkelmann ml at awinkelmann.de
Mo Jun 16 10:19:36 CEST 2008


> wir haben einen Cyrus, welcher die Authentisierung mittels saslauthd
> realisiert. Der saslauthd kommuniziert mit unseren ldap-Servern.
>
> [andreas at x607 etc]$ grep sasl /etc/imapd.conf
> sasl_pwcheck_method: saslauthd
> sasl_mech_list: PLAIN
>
> [andreas at x607 etc]$ cat saslauthd.conf
> ldap_servers: ldap://ldap-2.example.com
> ldap_filter: (|(uid=%u)(cn=%u))
>
> Bei einem Problem mit einem unserer ldap-Server habe ich letztens eine
> sehr hohe Anzahl von Verbindungen zw. unserem imap-Server und dem
> ldap-Server beobachtet. Eigentlich dachte ich, der imap-Server würde mit
> dem nscd kommunizieren. Ein strace auf einen der lmtpd-Prozesse belehrte
> mich eines besseren.
>
> Für jede Mail, die der lmtpd an den Cyrus zustellt führt er scheinbar
> einen kompletten Treescan des ldaps durch. In jedem Fall fand ich im
> strace jede Menge Einträge folgender Art:

saslauthd ist ein eigenständiger Prozess. Über einen strace auf den lmtpd
wirst Du keine ldap Zugriffe wegen Authentifizierungskram sehen.

Der Cyrus-Imapd hat selbst eine Möglichkeit auf ldap zuzugreifen. Und zwar
wenn Du Zugriffskontrollen auf basis von Gruppen realisieren möchtest.
Thema ptloader.

Zeig doch mal die komplette imapd.conf und nicht nur den sasl Teil. Möchte
fast wetten, dort befinden sich auch noch ldap Optionen. Wenn Du das nicht
brauchst/willst, lösch sie raus.

> reastat("/etc/ldap.conf", {st_mode=S_IFREG|0644, st_size=694, ...}) = 0
> geteuid()                               = 76
> stat("/etc/ldap.conf", {st_mode=S_IFREG|0644, st_size=694, ...}) = 0
> geteuid()                               = 76
> write(14, "0y\2\1$ct\4\16dc=yyyyy,dc=de\n\1\2\n\1\0\2\1\0"..., 123) = 123
> poll([{fd=14, events=POLLIN|POLLPRI|POLLERR|POLLHUP, revents=POLLIN}],
> 1, -1) = 1
> read(14, "0m\2\1$dh\4", 8)             = 8
> read(14, "#cn=aexxxxxx,ou=Group,dc=yyyyy,d"..., 114) = 114
> rt_sigaction(SIGPIPE, {SIG_IGN}, NULL, 8) = 0
> rt_sigaction(SIGPIPE, {SIG_IGN}, {SIG_IGN}, 8) = 0
> poll([{fd=14, events=POLLIN|POLLPRI|POLLERR|POLLHUP, revents=POLLIN}],
> 1, -1) = 1
> read(14, "0x\2\1$ds\4", 8)
> read(14, "#cn=afxxxxxx,ou=Group,dc=yyyyy,d"..., 77) = 77
> ...
> read(14, "#cn=alxxxxxx,ou=Group,dc=yyyyy,d"..., 76) = 76
> ...
> read(14, "#cn=anxxxxxx,ou=Group,dc=yyyyy,d"..., 77) = 77
> ...
> read(14, "#cn=anxxxxxx,ou=Group,dc=yyyyy,d"..., 77) = 77
> ...
> read(14, "#cn=anxxxxxx,ou=Group,dc=yyyyy,d"..., 77) = 77
> ...
> read(14, "#cn=brxxxxxx,ou=Group,dc=yyyyy,d"..., 77) = 77
> ...
> read(14, "#cn=clxxxxxx,ou=Group,dc=yyyyy,d"..., 77) = 77
>
> Weiss jemand, ob man das dem lmtpd abgewöhnen kann? Immerhin weiss der
> lmtpd, an welches Postfach er die Mail zustellen soll. Nämlich an den
> localpart der Mailadresse.

--
Andreas




Mehr Informationen über die Mailingliste Postfixbuch-users