Üdv!
PAM + LDAP autentikációt akarok csinálni. A http://wiki.debian.org/LDAP/PAM oldalon írtak alapján rém egyszerűen meg is lehet csinálni. A gond az, hogy nem működik, mert persze nekem úgy nem jó, ahogy le van írva, mivel az ldap adatbázis már tartalmaz accountokat a levelezéshez, és ezeket az adatokat akarom használni, nem külön usereket létrehozni. Így próbálom:
uid=fisher,dc=customer.hu,ou=domains,dc=company,dc=hu
Azaz a customer.hu alatt lévő userrel akarok bejelentkezni, ám "pam_ldap: error trying to bind as user ... (Invalid credentials)" üzenetet kapok a fenti adatokkal. Az ACL:
olcSuffix: dc=company,dc=hu
olcAccess: {0}to attrs=userPassword,shadowLastChange
by self write
by anonymous auth
by dn="cn=admin,dc=company,dc=hu" write
by dn="uid=dovecot,dc=company,dc=hu" read
by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by self write
by dn="cn=admin,dc=company,dc=hu" read
by * read
by dn="uid=exim,dc=company,dc=hu" read
by dn="uid=dovecot,dc=company,dc=hu" read
by anonymous none
alapján (by anonymous auth,by * read) elvileg tudna bindelni is az user. De nem tud. Nyilván valamit rosszul csinálok, de mit?
Ja igen, próbáltam az ldapsearch-al is bindelni, azzal se ment, alighanem valami alapvető dolgot nézek be.
Update: a /etc/pam_ldap.conf -ban a base dc=customer.hu,ou=domains,dc=company,dc=hu -ra van állítva (ezért is próbálkozik a fenti userrel) az nss_base_passwd és nss_base_shadow átállítása se segített)
- 4341 megtekintés
Hozzászólások
Sztem nem acl gond lesz, hanem alapertelmezetten loginokat a ou=People,base amit megadtal helyen keresi, tehat pl ha base-nek megadtad a dc=company,dc=hu -t akkor ou=People,dc=company,dc=hu alatt keresi a usereket, hacsak nem irod at pam_ldap.conf-ban nss_base reszeknel, mert te inkabb sajat logika szerint hoztad letre az ldap strukturat.
--
Don't Panic if you see me laughing,
that's not a bug, just a feature.
- A hozzászóláshoz be kell jelentkezni
A base nálam dc=customer.hu,ou=domains,dc=company,dc=hu -ra van állítva. Azt tippeltem, hogy így jó.
- A hozzászóláshoz be kell jelentkezni
Hát, ettől nem lettem okosabb :(
- A hozzászóláshoz be kell jelentkezni
pam_ldap es nss_ldap config file tartalmat ird mar le.
Kerdes az,hogy admin userrel bindelsz, vagy az aktualis userrel, amivel azonositast vegzel.
- A hozzászóláshoz be kell jelentkezni
Van egy user, ldapauth, amivel bindel. Utána viszont valamiért a fisher userrel is bindelni akar.
pam_ldap.conf, commentek nélkül:
base dc=company,dc=hu
uri ldap://ldap0.vz0.company.hu
ldap_version 3
binddn userid=ldapauth,dc=company,dc=hu
bindpw ***********
pam_password md5
nss_base_passwd dc=customer.hu,ou=domains,dc=company,dc=hu?one
nss_base_shadow dc=customer.hu,ou=domains,dc=company,dc=hu?one
nss_ldap konfigom nincs, mert nem NSS-en keresztül megy a auth. hanem PAM(_ldap)-on át.
Eredetileg a base az dc=customer.hu,ou=domains,dc=company,dc=hu volt és nem volt nss_base_ megadva.
- A hozzászóláshoz be kell jelentkezni
binddn userid=ldapauth,dc=company,dc=hu biztos jo uesr? Igazabol base dn sem az igazi, mivel sokkal lejebb van ami neked kell, azt nem tudom, hogy default milyen scope van.
Szerintem base-nek dc=customer.hu,ou=domains,dc=company,dc=hu adjal meg, mivel aclekben ez a userid=ldapauth.... nem szerepel,valszeg elirhattad, megoldas lehet, hogy nem adsz meg binddn-t es bindpw-t, user ugyis ra fog autholni, csak a basedn legyen jo (ha mas nem,akkor scope legyen sub)
Elobb utobb nss-ldap is kell, mivel user nem letezik, akkor pam sem fog raprobalni.
- A hozzászóláshoz be kell jelentkezni
Átírtam, ha be akarok jelentkezni ilyen üzenetet kapok (binddn nélkül):
pam_ldap: error trying to bind (Invalid credentials)
A megadott jelszó jó. Az ldapauth user is, azzal rá is bindel az ldapra (és az működik ldapsearch-al is). A dc=customer.hu,ou=domains,dc=company,dc=hu -s userekkel nem tudok bejelentkezni ldapsearch-al sem. Nekem ez továbbra is ldap acl problémának tűnik, csak sík hülye vagyok az ldap-hoz :(
- A hozzászóláshoz be kell jelentkezni
mi az,hogy nem tudsz userekkel belepni? Nem posixaccount objectclassod van? Hogy nez ki egy user?
- A hozzászóláshoz be kell jelentkezni
A dc=customer.hu,ou=domains,dc=company,dc=hu -s userekkel nem tudok bejelentkezni ldapsearch-al sem. Nekem ez továbbra is ldap acl problémának tűnik, csak sík hülye vagyok az ldap-hoz :(
az nem acl probléma, ha az ldap szerverre egy user, aki benne van az ldap adatbázisban, nem tud kapcsolódni.
az leginkább valamilyen password probléma szokott lenni.
dumpold ki légyszíves az ominózus user ldap entryjét directory managerként, de mielőtt kiírod ide, randomizáld a benne levő kényes adatokat, meg a jelszót is.
- A hozzászóláshoz be kell jelentkezni
Imé:
# Entry 1: uid=fisher,dc=customer.hu,ou=domains,dc=company,dc=hu
dn: uid=fisher,dc=customer.hu,ou=domains,dc=company,dc=hu
cn: user Fisher from LDAP
displayname: Fisher
gidnumber: 1000
givenname: Fisher
homedirectory: /vmail/customer.hu/fisher
mail: fisher@customer.hu
mailhost: 172.16.123.111
maillocaladdress: fisher@customer.hu
mailquota: 1000
objectclass: inetLocalMailRecipient
objectclass: inetOrgPerson
objectclass: posixAccount
objectclass: top
sn: Fisher
uid: fisher
uidnumber: 1001
userpassword: {CRYPT}zhamWCqjtfU6k
- A hozzászóláshoz be kell jelentkezni
mit mond az ldap szerver a logjába, amikor ezzel a userrel próbálsz bejelentkezni az ldapba (mondjuk nyomsz egy ldapsearch-öt)?
mit mond az ldap szerver a logjába, amikor az imapon keresztül jelentkezel be?
- A hozzászóláshoz be kell jelentkezni
Bocs, este már az imap se ment, ezért inkább aludni mentem :D
Annak az oka annyi volt, hogy az nem szerette a cryptelt jelszót, mert md5 van beállítva a dovecot-nak, ezért visszaírtam a jelszót md5-ösre (ha jól sejtem egy ldap bind-nél ennek nincs jelentősége). A logba nem ír semmit (na jó, annyit, hogy az uid nincs felindexelve). Még úgy se, hogy -s 4095-el futtatom a slapd-t.
- A hozzászóláshoz be kell jelentkezni
(ha jól sejtem egy ldap bind-nél ennek nincs jelentősége)
ebben ne légy biztos.
másrészt azért szerettem volna látni a logot, mert abból kiderül, hogy a dovecot egy fix admin userral bindol, majd kiolvassa az enkriptált jelszót (ez esetben nem hasonlítható a pamhoz), vagy ő is a cleartext jelszóval próbál az adott user nevében bindolni az ldaphoz.
nálam pl. ilyenek vannak a syslogban:
slapd[3966]: conn=5930 fd=9 ACCEPT from IP=127.0.0.1:48794 (IP=127.0.0.1:389)
slapd[3966]: conn=5930 op=0 BIND dn="uid=mancika,ou=People,dc=valami,dc=hu" method=128
slapd[3966]: conn=5930 op=0 RESULT tag=97 err=49 text=
slapd[3966]: conn=5930 op=1 UNBIND
slapd[3966]: conn=5930 fd=9 closed
slapd[3966]: conn=5931 fd=9 fd=9 ACCEPT from IP=127.0.0.1:48798 (IP=127.0.0.1:389)
slapd[3966]: conn=5931 fd=9 op=0 BIND dn="uid=mancika,ou=People,dc=valami,dc=hu" method=128
slapd[3966]: conn=5931 fd=9 op=0 BIND dn="uid=mancika,ou=People,dc=valami,dc=hu" mech=SIMPLE ssf=0
slapd[3966]: conn=5931 fd=9 op=0 RESULT tag=97 err=0 text=
ez első verzió (err=49) a hibás jelszó volt, a második (err=0) a jó bejelentkezés.
- A hozzászóláshoz be kell jelentkezni
A slapd valamiért nem akar logolni a syslogba, viszont a -d működik. Végre látom, hogy mi a baja, és valóban, nekem is err=49-es hiba jön a bejelentkezésre. A dovecot viszont bebindel egy dovecot userrel, és az md5 hash-t keresi, amit meg is talál.
Valamiért viszont most már az ldapsearch tud bindelni az ldaphoz. Csak a pam nem találja el, hogy. Ez már sok segítség, legalább látom, hogy merre keresgéljek még.
- A hozzászóláshoz be kell jelentkezni
az lehet a gond, hogy esetleg a dovecot megeszi, ha a password mezőben egy darab md5 hash van (pl. d41d8cd98f00b204e9800998ecf8427e), mert a dovecot szénné konfigurálható, míg az 'igazi' authentikációhoz ez nem jó. oda valami {MD5}$1$volc6oQc$4a26nio2m32q3ol4s56J1. -szerű string kell.
- A hozzászóláshoz be kell jelentkezni
Azt még hozzáírtam, hogy "invalid credentials"-ra panaszkodik, de a jelszó jó, az user jó(?) mert ezzel használja az imap szerver, és az meg működik.
- A hozzászóláshoz be kell jelentkezni
No, működik. A pontos okát nem tudom. A megoldás annyi volt, hogy kidobtam a libnss-ldap-ot és helyette libnss-ldapd van fent. Az alapvető probléma az volt - ha jól nyomtam a tcpdump-ot -, hogy az sshd(?) jelszó helyett az "INCORRECT" stringet küldte el, ami persze igen nem jó.
- A hozzászóláshoz be kell jelentkezni