expertenaustausch > comp.os.* > comp.os.unix.networking.misc

Paul Muster (24.02.2013, 14:50)
Guten Tag,

ich hätte da gerne mal ein Problem mit Exim4 und SMTP-Auth über LDAP.
Gegeben ist ein LDAP-Server namens "ldap", der mit
folgendem authenticator abgefragt werden soll:

# bei PLAIN sind Username in $auth2 und Passwort in $auth3
plain_server:
driver = plaintext
public_name = PLAIN
server_prompts = Username:: : Password::
server_condition = ${if and{{ \
!eq{}{$auth2} }{ \
ldapauth{user="uid=${quote_ldap_dn:$auth2},ou=User s,dc=BASIS"\
pass=${quote:$auth3} \
ldap://ldap/} }} }
server_set_id = $auth2

Ich bekomme aber nur dies hier:

2013-02-20 23:04:58 plain_server authenticator failed for <client>: 435
Unable to authenticate at present (set_id=uid=paul):
failed to bind the LDAP connection to server ldap:389 - ldap_bind()
returned -1 inside "and{...}" condition

Am LDAP-Server sieht diese Anfrage so aus:

Feb 20 23:04:46 ldap slapd[26191]: conn=1282 op=1848 BIND anonymous
mech=implicit ssf=0
Feb 20 23:04:46 ldap slapd[26191]: conn=1282 op=1848 BIND dn="" method=128
Feb 20 23:04:46 ldap slapd[26191]: conn=1282 op=1848 RESULT tag=97 err=0
text=
Feb 20 23:04:46 ldap slapd[26191]: conn=1282 op=1849 SRCH
base="ou=Users,dc=BASIS" scope=2 deref=0
filter="(&(objectClass=posixAccount)(uid=paul))"
Feb 20 23:04:46 ldap slapd[26191]: conn=1282 op=1849 SRCH attr=uid
Feb 20 23:04:46 ldap slapd[26191]: conn=1282 op=1849 SEARCH RESULT
tag=101 err=0 nentries=1 text=
Feb 20 23:04:46 ldap slapd[26191]: conn=1282 op=1850 BIND
dn="uid=paul,ou=Users,dc=BASIS" method=128
Feb 20 23:04:46 ldap slapd[26191]: conn=1282 op=1850 BIND
dn="uid=paul,ou=Users,dc=BASIS" mech=SIMPLE ssf=0
Feb 20 23:04:46 ldap slapd[26191]: conn=1282 op=1850 RESULT tag=97 err=0
text=
Feb 20 23:04:46 ldap slapd[26191]: conn=1283 op=616 SRCH
base="ou=Users,dc=BASIS" scope=2 deref=0
filter="(&(objectClass=posixAccount)(uid=paul))"
Feb 20 23:04:46 ldap slapd[26191]: conn=1283 op=616 SRCH
attr=homeDirectory uidNumber gidNumber
Feb 20 23:04:46 ldap slapd[26191]: conn=1283 op=616 SEARCH RESULT
tag=101 err=0 nentries=1 text=

Und das, finde ich, sieht eigentlich gut aus, denn "nentries" (Number of
entries, Anzahl der Treffer?) ist 1 und "err" ist
0.

Um die Exim-Logik zu vereinfachen habe ich mal den Teil "and{{
!eq{}{$auth2}" (zzgl. ein paar Klammern) weggelassen, dann
ändert sich die Fehlermeldung von Exim:

2013-02-20 23:10:00 plain_server authenticator failed for <client>: 435
Unable to authenticate at present (set_id=paul):
failed to bind the LDAP connection to server ldap:389 - ldap_bind()
returned -1

OpenLDAP meldet das gleiche wie oben (sollte es auch, denn für den
LDAP-Server unterscheiden sich ja die Anfragen nicht).

*Was läuft hier falsch? Wieso versteht Exim die positive Antwort vom
LDAP-Server nicht?*

Danke & viele Grüße

Paul
Paul Muster (25.02.2013, 20:20)
On 24.02.2013 13:50, Paul 'Ingrid' Muster wrote:

> ich hätte da gerne mal ein Problem mit Exim4 und SMTP-Auth über LDAP.


...keiner 'ne Idee? Alle im Urlaub? Oder ist das Problem völlig banal
und unter eurem Niveau? ;-)

Danke & viele Grüße

Paul
Christian Winter (26.02.2013, 08:40)
Am 24.02.2013 13:50, schrieb Paul Muster:
> ich hätte da gerne mal ein Problem mit Exim4 und SMTP-Auth über LDAP.
> Gegeben ist ein LDAP-Server namens "ldap", der mit
> folgendem authenticator abgefragt werden soll:
> # bei PLAIN sind Username in $auth2 und Passwort in $auth3
> server_condition = ${if and{{ \
> !eq{}{$auth2} }{ \
> ldapauth{user="uid=${quote_ldap_dn:$auth2},ou=User s,dc=BASIS" \
> pass=${quote:$auth3} \
> ldap://ldap/} }} }


Sollte die letzte Zeile hier nicht auch einen Rückgabecode enthalten?
Etwas wie
ldap://ldap/} }} {yes} {no} }
?

Ich stochere hier aber nur im Trüben, nachdem ich schon 5+ Jahre
keinen Exim mehr angefasst habe.

-Christian
Paul Muster (26.02.2013, 08:54)
On 26.02.2013 07:40, Christian Winter wrote:
> Am 24.02.2013 13:50, schrieb Paul Muster:


> Sollte die letzte Zeile hier nicht auch einen Rückgabecode enthalten?
> Etwas wie
> ldap://ldap/} }} {yes} {no} }
> ?


Auf

(zweiter Kasten) ist das nicht drin. Werde es heute abend ausprobieren.

> Ich stochere hier aber nur im Trüben, nachdem ich schon 5+ Jahre
> keinen Exim mehr angefasst habe.


Egal. Ich bin dankbar für jede Hilfe. :-)

Viele Grüße

Paul
Paul Muster (03.03.2013, 21:34)
On 24.02.2013 13:50, Paul 'Ingrid' Muster wrote:

[..]
> failed to bind the LDAP connection to server ldap:389 - ldap_bind()
> returned -1 inside "and{...}" condition
> Am LDAP-Server sieht diese Anfrage so aus:


Unsinn. Am LDAP-Server ist _keinerlei_ Anfrage vom Mailserver zu sehen.

Durchaus erreichen kann ich den LDAP-Server vom Mailserver (192.168.1.4)
aus per telnet, das loggt der LDAP-Server auch:

> Mar 2 21:20:03 ldap slapd[9942]: conn=1113 fd=43 ACCEPT from IP=192.168.1.4:60401 (IP=0.0.0.0:389)
> Mar 2 21:21:25 ldap slapd[9942]: conn=1113 fd=43 closed (connection lost)


*Was mache ich mit Exim falsch?*

Danke & viele Grüße

Paul
Paul Muster (06.03.2013, 20:08)
On 24.02.2013 13:50, Paul 'Ingrid' Muster wrote:

> ich hätte da gerne mal ein Problem mit Exim4 und SMTP-Auth über LDAP.


..., das weiterhin besteht. Daher habe ich am Samstag einen Debian-Bug
geöffnet ( ) und
soeben auf Exim-users nachgefragt.

Schauen wir mal, ob dort oder dort eine Lösung gefunden wird.

Natürlich bin ich auch weiterhin für Hinweise _hier_ dankbar und würde
die auch in die anderen Medien rüberreichen.

Viele Grüße

Paul
Paul Muster (07.03.2013, 22:05)
On 07.03.2013 20:36, Paul Muster wrote:
> On 07.03.2013 18:29, Christian Winter wrote:
>> Am 07.03.2013 07:14, schrieb Paul Muster:


[..]
> \h:\w$ host ldap
> ldap.domain.tld has address 192.168.1.8
> \h:\w$


Naja:

# su Debian-exim
\h:\w$ dig ldap

; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> ldap
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 51789
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;ldap. IN A

;; AUTHORITY SECTION:
. 4051 IN SOA a.root-servers.net.
nstld.verisign-grs.com. 2013030701 1800 900 604800 86400

;; Query time: 0 msec
;; SERVER: 192.168.101.254#53(192.168.101.254)
;; WHEN: Thu Mar 7 21:01:44 2013
;; MSG SIZE rcvd: 97

\h:\w$

Dementsprechend funktioniert es auch, wenn ich den LDAP-Server als FQDN
eintrage.

# cat /etc/resolv.conf
domain domain.tld
search domain.tld
nameserver 192.168.1.1

Ganz toll.

Viele Grüße

Paul
Paul Muster (07.03.2013, 22:10)
On 07.03.2013 20:36, Paul Muster wrote:
> On 07.03.2013 18:29, Christian Winter wrote:
>> Am 07.03.2013 07:14, schrieb Paul Muster:


[..]
> \h:\w$ host ldap
> ldap.domain.tld has address 192.168.1.8
> \h:\w$


Naja:

# su Debian-exim
\h:\w$ dig ldap

; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> ldap
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 51789
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;ldap. IN A

;; AUTHORITY SECTION:
. 4051 IN SOA a.root-servers.net.
nstld.verisign-grs.com. 2013030701 1800 900 604800 86400

;; Query time: 0 msec
;; SERVER: 192.168.1.254#53(192.168.1.254)
;; WHEN: Thu Mar 7 21:01:44 2013
;; MSG SIZE rcvd: 97

\h:\w$

Dementsprechend funktioniert es auch, wenn ich den LDAP-Server als FQDN
eintrage.

# cat /etc/resolv.conf
domain domain.tld
search domain.tld
nameserver 192.168.1.1

Ganz toll.

Viele Grüße

Paul
Christian Winter (07.03.2013, 22:21)
Am 07.03.2013 21:05, schrieb Paul Muster:
[..]
> nstld.verisign-grs.com. 2013030701 1800 900 604800 86400 [...]
> Dementsprechend funktioniert es auch, wenn ich den LDAP-Server als FQDN
> eintrage.


Das wollte ich auch grade vorschlagen.

> # cat /etc/resolv.conf
> domain domain.tld
> search domain.tld
> nameserver 192.168.1.1
> Ganz toll.


Kann Debian-exim die resolv.conf und nsswitch.conf lesen?
Paul Muster (07.03.2013, 22:30)
On 07.03.2013 21:21, Christian Winter wrote:
> Am 07.03.2013 21:05, schrieb Paul Muster:


>> # cat /etc/resolv.conf
>> domain domain.tld
>> search domain.tld
>> nameserver 192.168.1.1
>> Ganz toll.

> Kann Debian-exim die resolv.conf und nsswitch.conf lesen?


mailserver# la /etc/resolv.conf /etc/nsswitch.conf
-rw-r--r-- 1 root root 560 Mai 4 2010 /etc/nsswitch.conf
-rw-r--r-- 1 root root 79 Sep 4 2010 /etc/resolv.conf

Meiner Einschätzung nach: ja.

Nächster Schritt wäre nun wohl, strace loszuschicken, um das zu prüfen.
Das allerdings würde ich gerne den Exim-Entwicklern oder den
Debian-Exim-Paketmanagern überlassen. Die können das besser.

JFTR:

mailserver# cat /etc/nsswitch.conf

passwd: files ldap
group: files ldap
shadow: files ldap

hosts: files dns
networks: files

protocols: db files
services: db files
ethers: db files
rpc: db files

netgroup: nis

Viele Grüße

Paul
Paul Muster (08.03.2013, 06:34)
On 07.03.2013 21:30, Paul Muster wrote:

> Nächster Schritt wäre nun wohl, strace loszuschicken, um das zu prüfen.
> Das allerdings würde ich gerne den Exim-Entwicklern oder den
> Debian-Exim-Paketmanagern überlassen. Die können das besser.


In seiner Mail

beschreibt Phil Pennock, was innerhalb von Exim passiert - und dass er
keine Möglichkeit sieht, das zu ändern ohne anderen Leuten Probleme zu
bauen.

Meinerseits Thema erledigt. Es ist unschön, hier nicht einfach mit dem
DNS-hostname "ldap" arbeiten zu können, aber auch kein ernsthaftes Problem.

Schauen wir mal, was die Debian-Entwickler mit dem Bug
machen,
vielleicht ändern sie ja etwas an dem Verhalten.

Vielen Dank für die tolle Unterstützung allerseits!

Viele Grüße

Paul
Ähnliche Themen