Auth LDAP-ból

Fórumok

Hello,

SAMBA auth-ot szeretnék LDAP-ból. A talált leírások nem igazán segítettek - a lényeg: nem kell domain, nincs szükség csoport meg miegyéb kezelésre, annyit kellene megoldani, hogy egy share-hez a hozzáférést a SAMBA egy LDAP lekérdezés alapján dönti el, hogy mehet e.

Próbáltam kerülő úton: Samba -> PAM -> LDAP, de ez sem működik, pedig egyszerűnek tűnik.

/etc/pam_ldap.conf-ban bármit állítok (pl: ldap szerver IP címét), arra nem reagál.

A /etc/libnss-ldap.conf-ot használja, oda ezeket írtam - amik relevánsak:

host 10.2.1.243
uri ldap://10.2.1.243/
base o=Bigyo
pam_filter objectclass=organizationalPerson
pam_login_attribute uid

az LDAP-hoz anon hozzáférés van, és _nem_openldap_, hanem NDS (Novell).

Az ldap modul a szervertől az alábbi filterrel kérdez:

(&(uid=hegeduse)(objectClass=posixAccount))
(ezt a tcpdump alapján szedtem ki)

amire term. nincs találat, mivel nincs ilyen objectclass.

Mit kellene tennem, hogy működjön?
(objectClass=organizationalPerson lenne a helyes szűrő - de hová írjam, hogy legyen hatása?)

Köszi:

a.

Hozzászólások

a sambaban allitsd be
/etc/samba/smb.conf:
ldap admin dn = cn=admin,dc=domain,dc=hu
ldap delete dn = no
# ldap filter = (&(uid=%u)(objectClass=sambaSamAccount))
ldap group suffix = ou=groups
ldap machine suffix = ou=machines
ldap passwd sync = yes
# ldap replication sleep = 1000
# ldap ssl = off
ldap suffix = dc=domain,dc=hu
# ldap timeout = 5
ldap user suffix = ou=people

passdb backend = ldapsam:ldap://127.0.0.1

hello,

bocs, de ezeken már túl vagyok.
Azt írtam, h anon hozzáférés van, de ez azt jelenti, hogy nincs admin, tehát az admin dn nem játszik.
Amikor azt írtam, hogy nincs szükség csoport, meg miegyéb kezelésére, akkor arra gondoltam, hogy nem kell jelszó sync, sem user felvitel, törlés, csoport felvitel, törlés, stb...

Az is jó lenne, ha közvetlen a Samba auth-olna az LDAP-ból, de az összes példa azt feltételezi, hogy egyben DC lesz a gép, holott erre nincs szükség.

Amúgy így néz ki a konfig:



   workgroup = WORKGROUP
   server string = %h server (Samba %v)
   dns proxy = no
   log file = /var/log/samba/log.%m
   max log size = 1000
   syslog = 9
   panic action = /usr/share/samba/panic-action %d
   encrypt passwords = true
   passdb backend = ldapsam:ldap://10.2.1.243
   ldapsam:trusted = yes
   ldap suffix = o=IT
   ldap user suffix = ou=Group
   ldap group suffix = ou=Group
   obey pam restrictions = yes
   invalid users = root
   socket options = TCP_NODELAY

   domain logons = no
   enable privileges = yes

   local master = no
   domain master = no

   log level = 3 passdb:5 auth:10

Az LDAP fa adott, az attributumok miatt ua. a user és a group suffix. "dc" nincs a fában. Ha állítunk be admin cn-t, akkor annak admin jogok kellenek a fában is, és egyböl létrehozza ezt az objektumot: cn=$HOST,o=$SUFFIX, de ezt _sem_ akarjuk, nem csak hogy szükség nincs rá, hanem lehetőség sem.
Kicsit talán fura a helyzet, de ez van, ezt kellene megoldani valahogy, emiatt gondoltam arra, h PAM-on keresztül autholok LDAP-ból. De az meg tök más filter-attributummal kérdez, mint amit beállítok a konfigban.

Egyéb ötlet?

Köszi:
a.

Ez a lényeg:

"az LDAP-hoz anon hozzáférés van, és _nem_openldap_, hanem NDS (Novell)."

Milyen verziójú az NDS?
Milyen OS alatt fut? (netware vagy linux + verzió)

A felhasználók "UNIX profilja" létezik-e az NDS-ben?
( ha létrehozod akkor elméletileg a posixAccount entry-nek is létre kellene jönnie, ha úgy különben az NDS séma tartalmazza )

libnss-ldap:

nss_map_objectlass, nss_map_attribute :-)
( itt tudod megmondani neki hogy a "posixAccount" és társai helyett mit olvasson... )

Hello,

Milyen verziójú az NDS?
igazából nem NDS, hanem eDirectory :)
Annyira nem vágom, hétfőn megkérdem.

Milyen OS alatt fut?
Netware

A felhasználók "UNIX profilja" létezik-e az NDS-ben?
nem, de IMHO nem is kell, hogy létezzen.
Más auth-ok mennek annélkül is, pl apache-ldap (HTTP auth), vagy írtunk már alkalmazást is (PHP), ami LDAPból auth-ol - ott meg lehetett adni a filter-t, és úgy működik.

libnss-ldap:
nss_map_objectlass, nss_map_attribute :-)

ehh...

pedig ezt néztem, de most, h be akartam kopizni ide, akkor vettem észre, h bebénáztam, és elírtam a paramétert:

nss_map_objectclass organizatnioalPerson user

helyett ez lesz vszínüleg a helyes:

nss_map_objectclass organizationalPerson user

Nna, ezt kipróbálom,

köszi:

a.

hello,

bocs, közben rájöttem, h mgsem jó a libnss-ldap.conf ilyen jellegű beállítása, mivel ugyan hibás volt a string, de mágsem azt kérdezte az ldap "kliens" a szervertől, hanem maradt a Posix attributum.

Sőt:


# grep posixAccount libnss-ldap.conf
#

bár lehet, h default a posixAccount, és explicit meg kéne valamit adni. :)

Mindegy, késő van :))

Egyéb ötlet?

köszi:

a.

Miután az ldap-ot beállítottad, és működik is a kliensen (mondjuk felhasználói belépés - login), akkor a

samba ldap auth a következővel megy tökéletesen:

ldap admin dn = cn=Manager,dc=domain,dc=hu
ldap suffix = dc=valami, dc=domain,dc=hu
passdb backend = ldapsam:ldap://valami.domain.hu
idmap backend = ldap:ldap://valami.domain.hu
ldap group suffix = ou=Group
ldap user suffix = ou=People
ldap machine suffix = ou=People
ldap passwd sync = yes
security = user

A secrets.tdb-ben benne kell lennie a helyes Manager passwd-nek (!).

És persze a az objectclass : sambaSamAccount az ldapfában benne köll lenni!

(sambaLMpassword, sambaNTpassword, sambaSID, sambaAcctflags)

Kliens alatt értem azokat a gépeket, akik a samba-t igénybeveszik.
Mondjuk egy Windows.

Lehet samba-t külön ldap-ból, akkor csak a samba-t konfigurálod ldap-ra. Természetesen az alap ldap beállításokat (slapd.cfg, ldap.cfg) meg kell tenni a samba szerveres gépen, majd CSAK a samba-t ráálítani az előbb ismertetett módon.