ldap nem indul

Fórumok

Sziasztok!

Próbálok életre kelteni 1 openldap szervert, de valahányszor bekonfigurálom a dokumentációk alapján, indításkor mindig hibát kapok:
"The operation failed but no operation produced. ..."
Két parancsot ajánl segítségképpen:
slapd -d 16383
slapd -h 'ldap://127.0.0.1 ldaps:/// ldapi:///' -g openldap -u openldap -f /etc/ldap/slapd.conf

Az elsőre kapok egy rakás infó, a második visszatér mindenféle üzenet nélkül.

A syslogban mindig a következő hibát látom:
main: TLS init def ctx failed: -1

Van valakinek valami ötlete?
Én a tanúsítványokra gondolok, nem pedig ldap hibára. De a tanúsítványokat hiába csinálom meg újra, nem javul a helyzet...

Sanyi

Hozzászólások

Annyit már sikerült összegugliznom, hogy a 2.4-es OpenLDAP-ok már nem OpenSSL-t használnak, hanem gnutls-t.
Készített már valaki gnutls-sel certeket?
Ha van ilyen, kérem: ne habozzon!

Egyébként amikor kivettem a titkosítós részeket az ldap konfokból, csont nélkül indult...

Üdv!
Fent hibaüzenet okozója megvan, előző hozzászólásomban írtan róla.

Most egy újabb hibába ütköztem slapd indításkor. A képernyőn megjelenő hibaüzi ugyanaz, mint a bejelentésemben olvasható, a syslogban viszont más hiba jelenik meg:
daemon. bind(9) failed errno=98 (Address already in use)

Ez mit jelenthet, illetve hogy tudom az egész ldapot szőrőstől-bőröstől leszedni.
apt-get remove --purge slapd
nem elég, hiszen ha utána újra felrakom, akkor már ismer olyan beállításokat, amiket még az eltávolítás előtt adtam meg.
Pl.: slapindex futtatásakor kiírja, hogy a "dc=ize,dc=hoze,dc=hu" már létezik.
Szóval minden korábbi beállításomat el akarom távolítani, és utána újra felépíteni az egészet. Ebben a formában elég sok baja van már, és mivel új, üres db van készülőben, ezért nyugodtan lerombolhatom az előzményeket!

Sanyi

Örök hála!
Valami miatt volt egy bentragadt slapd processz...
A fenti parancs kimenetében még akkor is volt egy slapd, amikor az ldap nem futott. Az nmap localhost is nyitottnak mutatta a 389-es portot ekkor.
A ps -A kimenetében találtam egy elég magas processzID-vel rendelkező slapd-ot, és mikor azt kinyírtam, utána már elindult a slapd!

Azóta nem volt szerver újraindítás.
Viszont most, ha a slapindexet akarom futtatni, akkor a /var/lib/ldap-ban minden file-t újraindexel, kivéve a cn.bdb-t!
Ennek a módosítás időpontja nem változik, pedig slapd leállítva, cn.bdb openldap/openldap tulajdonossal, 600 jogosultsággal szerepel.

Pedig ha jól sejtem újraindexeléskor a cn.bdb-nek is frissülnie kellene...

Üdv!

Az ldap mostmár elindul, tudtam is felvenni benne bejegyzéseket, telepítettem a libpam-ldap, libnss-ldap csomagokat, szerkesztettem az nsswitch.conf-ot, és a
getent
parancs újraindítás után sem látja sajnos az LDAPban lévő neveket, csoportokat (csak a unix neveket/csoportokat).
Samba szintén nem fogadja el az ldapban felvett usert csatlakozáskor...

Merre keressem a hibát, mit ronthattam el???

1. netstat -antp (nyitva a sima port, nem az ssl-es tls-es)

2. ldapsearch -x '(objectclass=*)' (add vissza értéket?, akkor megy az ldap tls nélkük, hokés)

2.1. mi van az ldap.conf.ban, hova akar konnektálni? ldap://, vagy ldaps://?

3.

id ldaposfelhasználó

Az összes előtt állítsd le az ldap-ot (/etc/init.d/slapd stop)....add ki a "slapd -d 5" ....egy másik terminálon add ki a fenti parancsokat és utána mindig nézd meg a slapd-s terminált.

ha ezek után semmi, akkor pastebin-re az nssswitch.conf-al, az ldap.conf-al és a pam.d/{common-{auth,account,session},login}-nal

1. netstat -antp | grep 389-ra
tcp 0 0 127.0.0.1:389 0.0.0.0:* LISTEN 3385/slapd

2. ad vissza, az összes korábban felvett ou, uid, stb. benne van

3.
HOST 127.0.0.1
BASE dc=mydomain,dc=hu
URI ldap://127.0.0.1/

tehát titkosítás nélkül

4. A csak_az_ldapban lévő felhasználókat nem találja!

És ennek megfelelően hiába próbálok sambához is kapcsolódni xp-vel, nem fogadja el az ldapban lévő júzereket.

Merre lehet a baj?

Akkor az elejéről mindent:
/etc/nsswitch.conf:

passwd: compat ldap
group: compat ldap
shadow: compat ldap
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis

common-account:
account sufficient pam_ldap.so
account required pam_unix.so try_first_pass

commn-auth:
auth sufficient pam_ldap.so
auth required pam_unix.so nullok_secure try_first_pass

common-password:
password sufficient pam_ldap.so
password required pam_unix.so nullok obscure min=4 max=8 md5 try_first_pass

common-session:
session sufficient pam_ldap.so
session required pam_unix.so

[lame]Ezt a pastebin dolgot pedig még nem használtam, hogy csináljam? [/lame]

hmmm....ez jónak tűnik....mondjuk hiányolom a pam_deny.so-kat...

most meg mán arra lennék kíváncsi hogy hogy vannak az acl-ek a slapd.conf-ban

egyébbként nem írt semmit a slapd -d 5 esetén a konzolra, mikor az id ldapuser-t próbáltad?

ja még valami...nem mintha nem bíznék benned, de egy dpkg -l |grep ldap is jövetne (tudod libnss-ldap, libpam-ldap van e?) :)

akkor most má csak a jó öreg logfigyelés, debug opció és tcpdump szetnháromságban bízok.

slapd -d 5
tail -f /var/log/messages
tcpdump host localhost (először ne nézzünk portot, de aztán mehet a 389 ellenőrzése is)

ja +1 a ráadás a 3 mellé az strace:

strace id ldapfelhasználó

...ha ez sem jön be, akkor kernelt debuggolunk :D

Oké

akkor kell a tartalma a
/etc/libnss-ldap.conf
/etc/libnss-ldap.secret
/etc/ldap/ldap.conf

természetesen a szenzitív adatok kihagyásával :)

egyetlen nagyon érdekes:
socket(PF_FILE, SOCK_STREAM, 0) = 3
fcntl(3, F_SETFD, FD_CLOEXEC) = 0
fcntl(3, F_GETFL) = 0x2 (flags O_RDWR)
fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK) = 0
connect(3, {sa_family=AF_FILE, path="127.0.0.1:389"...}, 110) = -1 ENOENT (No such file or directory)
shutdown(3, 2 /* send and receive */) = 0

ezek szerint rohadtul nem konnektál a megnyitott socket-en keresztül a 127.0.0.1:389-ra (man 2 connect)

illetve ezek szerint
connect(3, {sa_family=AF_FILE, path="/dev/log"...}, 110) = 0
sendto(3, "<83>May 4 11:21:56 id: nss_ldap:"..., 136, MSG_NOSIGNAL, NULL, 0) = 136
az nss_ldap logol a syslogra, azt is érdemes akkor megnézni, hogy mit....vagy a pam_ldap.so-nak megadni a debug opciót.

libnss-ldap.conf:
base dc=mydomain,dc=hu
uri ldapi://127.0.0.1:389/
ldap_version 3
rootbinddn cn=admin,dc=mydomain,dc=hu

Ebben a fileban van 1 csomó komment pl.: nss_base_xxx-ként, lehet, hogy ezeket kellene a konfig számára láthatóvá tenni? De miket, és hogyan?

libnss-ldap.secret:
a_jelszavam_mindenféle_kódolás_nélkül_olvashatóan

ldap.conf:
host 127.0.0.1
base dc=mydomain,dc=hu
uri ldap://127.0.0.1/

azé nincsen benne, mert ilyenkor az nscd socket-jére olvas rá, mint az strace-ban is látható.
ami viszont látszik, hogy szépen küldi meg fogadja az üzeneteket a socketen keresztül...küldi a csonkasanyi nevet, aztán vissza is jön 36 byte válasz, amiből viszont az id azt a következtetést vonja le, hogy nincs ilyen felhasználó

connect(3, {sa_family=AF_FILE, path="/var/run/nscd/socket"...}, 110) = 0
sendto(3, "\2\0\0\0\0\0\0\0\f\0\0\0csonkasanyi\0"..., 24, MSG_NOSIGNAL, NULL, 0) = 24
poll([{fd=3, events=POLLIN|POLLERR|POLLHUP}], 1, 5000) = 1 ([{fd=3, revents=POLLIN|POLLHUP}])
read(3, "\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0"..., 36) = 36
close(3)
...
most már tényleg a slapd -d 5-öt kellene látnunk, hogy mit nyom ki egy id esetén

Szóval:
Beleteszem a pam_deny.so-kat, de újraindítani csak este tudom a szervert, ui.: élesben használják.

A slapd konzolon semmit nem ír mikor lekérdezem az ldapusert. Akkor sem ha létező usert keresek, akkor sem ha nem létezőt.
Ami még gyanús számomra:
ldapsearch kiadja a root felhasználót is és engem is, de a samba csak a root felhasználót engedi be, pedig az smb.conf-ban benne van, hogy
passdb backend = ldapsam:"ldap://localhost"

slapd.conf:
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/inetorgperson.schema
include /etc/ldap/schema/samba.schema
include /etc/ldap/schema/mail-alias.schema
pidfile /var/run/slapd/slapd.pid
argsfile /var/run/slapd/slapd.args
loglevel none
modulepath /usr/lib/ldap
moduleload back_hdb
sizelimit 500
backend hdb
database hdb
suffix "dc=mydomain,dc=hu"
directory "/var/lib/ldap"
dbconfig set_cachesize 0 2097152 0
dbconfig set_lk_max_objects 1500
dbconfig set_lk_max_locks 1500
dbconfig set_lk_max_lockers 1500
index objectClass eq
index cn pres,sub,eq
index sn pres,sub,eq
index uid pres,sub,eq
index displayName pres,sub,eq
index uidNumber eq
index gidNumber eq
index memberUid eq
index sambaSID eq
index sambaPrimaryGroupSID eq
index sambaDomainName eq
index givenname eq,sub
index default sub
lastmod on
checkpoint 512 30
access to attrs=userPassword,sambaNTPassword,sambaLMPassword,sambaPwdLastSet,sambaPwdCanChange
by dn="cn=admin,dc=mydomain,dc=hu" write
by anonymous auth
by self write
by * none
access to dn.base="" by * read
access to *
by dn="cn=admin,dc=mydomain,dc=hu" write
by self write
by * read

*szameg!!! Ha ez a baj...má megen nem tudok olvasni...multkor két napig vesződtem valamivel azért, mert akárhányszor végigolvastam mindig jónak tűnt...majd mikor már hazavittem a munkát, az asszony megkérdezte, hogy az miért nem az, mint a másik helyen..."azé bazzmeg, mer egy hülye állat vagyok, akinek elsőben ki kellett volna buknia...általánosban" :)

IGEN, EZAZ!!!
Kivettem az "i" betűt, nyomtam egy reboot-ot, és azóta már megy is.

Legalábbis a getent látja az ldapos usereket, id is válaszol!
DE: sajnos ssh/samba-n nem tudok ezekkel a userekkel belépni. Hiába módosítok jelszót, és írja is, hogy Changing UNIX and samba password, utána sem tudok belépni.
Ezt merre keressem?

Az ssh már megoldva.
Az sshd_config-ban egyetlen csoport volt engedélyezve, és abba nem tartozott bele az ldap-os userem.
Miután hozzáadtam, rögtön be tudok lépni ssh-n is!

Az újabb probléma: első belépéskor nem hozza létre számára a saját home könyvtárát.

Próbaképpen létrehoztam kézzel, de xp kliensről akkor sem enged be...

Sajnos a /lib/security-ben megvan minden pam modul, kivéve a pam_mkhomedir.so-t...
Ennek hiányában ha jól sejtem hiába is írom be a /etc/pam.d/login-ba a fenti sort...

De honnan tudom beszerezni? Kernelt kell forgatnom?

Sorry a sok láma kérdésért, de egyéb szolgáltatások élesben menneka gépen, így nem nagyon tudok kísérletezni rajta... :-(

:)
(Visszakacsintok, hogy én is olvastam, de ezek szerint nem ugyanazt)
EZ alapján úgy gondoltam, hogy a login-ba kell bekalapálni...

Betettem a common-account-ba is, és megcsinálja!

Köszi!!!

Ui.: "már csak" a samba kellene, hogy beengedjen, aztán vehetem fel a gépeket a tartományba...