Active Directory + Exim4

Csak reménykedni tudok, hogy lesz valaki aki használ ilyen vagy hasonló felállást. A klasszikus SMTP proxyt szeretném felkonfolni az Exchange elé, ami levélfogadáskor megnézi s leellenőrzi, hogy az Exchange-en létezik-e a címzett.

Address verification using Active Directory -- Summary

Ezzel próbálkozok, de egyfolytában 49 invalid credentialst kapok vissza. Viszont megelégednék egy olyan scripttel is, amit percenként le tudok futtani cronból, s csinál nekem egy db4-es fájlt -- az exim pedig ebben keresne.

Debian Sarge, exim-4.50, libldap2-2.1.30-8, Win2k3 SBS

Thx.

Hozzászólások

az AD nem enged anonymous lekérdezést, de valahogy így mehetne:
-a host:
ldap://ad1.domain.com:389%20ad2.domen.com:389/OU=UsersAndGroups,OU=Valami,OU=Meginvalami,OU=Mameegin%20Valami,dc=domain,dc=com?sAMAccountName?sub?(objectClass=*)
-a binddn (mert nincs anonymous):
'cn=LDAP Search User,cn=Users,dc=domain,dc=com'
-a bindpw (mert nincs anonymous):
'EztNekedKellTudni'

aztán lehet metacímtárat csinálni (talán ez az egyszerűbb(?)):
slapd.conf:
....
database meta
lastmod off
suffix "dc=meta,dc=domain,dc=com"
...
uri "ldap://ad1.domain.com/dc=ad1,dc=meta,dc=domain,dc=com"
suffixmassage "dc=ad1,dc=meta,dc=domain,dc=com" "dc=eredeti,dc=ad1,dc=domain,dc=com"
pseudoroot-bind-defer yes
pseudorootdn "cn=LDAP Search User,cn=Users,dc=ad1,dc=meta,dc=domain,dc=com"
acl-authcDN "cn=LDAP Search User,cn=Users,dc=ad1,dc=meta,dc=domain,dc=com"
pseudorootpw "EztNekedKellTudni"
acl-password "EztNekedKellTudni"
map attribute uid sAMAccountName
map attribute userPassword
....

Na most így minden keresés esetén, ami az ad1.meta.domain.com-ra megy az AD-ból fog lekérdezni és felmappolja a megfelelő attributumokat. Viszont így is az AD userrel passwd-vel kell bind-olni.
ldapsearch -h localhost -b "dc=ad1,dc=meta,dc=domain,dc=com" -w EztNekedKellTudnod -D "cn=LDAP Search User,cn=Users,dc=ad1,dc=meta,dc=domain,dc=com" uid

Na valahogy így :)

Uhh hát megvallom őszintén ebből max. a magyar szavakat értem, de összességében káosz. :(
Ilyen lookup megy MTA-ból az Exchange ldap felé:

database lookup required for user="cn=misel,ou=Users,dc=realkvanta,dc=hu" pass="erosjelszo" ldap:///"dc=realkvanta,dc=hu"?mail?sub?(&(|(objectClass=user)(objectClass=publicFolder)(objectClass=group))(proxyAddresses=SMTP:misel%40realkvanta.hu))

LDAP parameters: user=cn=misel,ou=Users,dc=realkvanta,dc=hu pass=erosjelszo size=0 time=0 connect=0 dereference=0

lookup deferred: failed to bind the LDAP connection to server 10.67.0.1:3268 - LDAP error 49: Invalid credentials

Esetleg kicsit szájbarágósabban? :) Thx.

Na csak leirom, hatha meg valakit erdekelni fog es idetalal guglival. Eximbol nem erdemes kerdezni az Exchanget mert ha epp nem megy a DC szerver akkor Exim azonnal visszapattintja a levelet. Fent leirtak szerint (na abban en sem ertettem par dolgot, de lehet egyszerubben is) slapd-vel local adatbazist kell csinalni, vagy egyszeruen cronbol egy "ldapsearch -h exchange blablabla|grep -i smtp|cut valami > lista", ami kivalogatja a Proxy addresses SMTP: mezoket a cimtarbol. Nem kell hozza semmi extra, csak legyen egy /etc/ldap/ldap.conf -od, ebben ket sor eleg:
BASE dc=domainname,dc=intra
URI ldap://exchange_vagy_DC_servname
Az invalid credentials-t en is beszoptam, azt hittem hogy nincs eleg jogom lekerdezni AD-t. De nem az a baj. Bonyolult AD eseteben el lehet tevedni a cn-ek es uo-k tengereben... Gyorsmegoldas: adsiedit.msc. AD-ben a query juzertol minden jogot el kell venni csak epp legyen joga belepni, es/vagy tls-el, ldaps-el kell nyomni.

Koszi h megosztottad! (Nekem vegul nem kellett megcsinalnom, mert elvetettek a windowos gazdak az otletet, de soha nem lehet tudni mikor kinek jon jol.)

Egyetlen megjegyzes csak:

ha epp nem megy a DC szerver akkor Exim azonnal visszapattintja a levelet

Ez igy ebben a formaban maximum default eseten igaz. :) Ha jol sejtem temporary local problem 451, tehat nem fatal error -- a kuldo ujra fog probalkozni. Ellenben a rcpt checknel gyonyoruen meg lehet adni, hogy ha a lookup deferred akkor mi tortenjen. El is tudod vele fogadtatni a bejovo mailt, tehat level veszteseg nem keletkezik.