Fórum Root.cz
Hlavní témata => Desktop => Téma založeno: PK 06. 06. 2017, 08:11:02
-
Bohužel jsem nikdy dřív s LDAPem nepracoval a nedávno jsme s kolegy narazily na problém - sice máme mnou nově nakonfigurovaný a funkční LDAP server, na který se dá z okolních linux serverů připojit a použít pro hlášení uživatelů, ale nedaří se nám žádným způsobem vypsat konfiguraci. Používáme nový způsob konfigurace LDAPu, tedy žádný slapd.conf ale v adresáři slapd.d je cn=config . Všechny příkazy typu
ldapsearch -b "cn=config" -h <server> -D "cn=manager,dc=neco,dc=neco2" -W
končí po zadání hesla s tímto výpisem:
# extended LDIF
#
# LDAPv3
# base <cn=config> with scope subtree
# filter: objectclass=*
# requesting: ALL
#
# search result
search: 2
result: 32 No such object
# numResponses: 1
Můžu manuálně procházet adresáře a ldif soubory v konfiguraci, ale nedostanu přímo od LDAPu žádnou odpověď na konfiguraci.
Napadlo mne, že hlavní účet může být založený špatně, je to cn=Manager,dc=neco,dc=neco2, ale ten "adresář" je v podstatě na nižší úrovni než cn=config . Nemůže to být tím?
-
Netrap se v shellu a pouzij klikatko na to urcene. Funguje. http://codingbee.net/tutorials/rhcsa/rhcsa-setting-up-ldap-client-using-authconfig-or-realmd
-
To není cesta kterou se chci ubírat. Potřebuji zjistit, jestli je LDAP od základu špatně nakonfigurovaný, rozhodně na server, který je navíc v pevně oddělené vnitřní síti, nechci nainstalovat další SW. Navíc nemá grafickou nádstavbu. Instaluji teď virtuální server ze kterého budu tvůj postup zkoušet, ale není to trvalé řešení. Jde mi hlavně o to, jestli jsem nezaložil hlavní účet špatně a prostě ani on nemá přístup k nastavení. Bohužel tady se jasně projevuje moje absolutní neznalost LDAPu, hrozně blbě se hledají chyby když nevíš, jak to má vypadat správně.
-
Napadlo mne, že hlavní účet může být založený špatně, je to cn=Manager,dc=neco,dc=neco2, ale ten "adresář" je v podstatě na nižší úrovni než cn=config . Nemůže to být tím?
S OpenLDAP som nerobil uz nejaku dobu, ale podla tohto citatu (http://www.zytrax.com/books/ldap/ch6/slapd-config.html#convert) pravdepodobne musi byt spravcovsky ucet pod cn=config:
The rootDn of cn=config can be anything but it MUST be UNDER cn=config, for example cn=manager,cn=config will work, but cn=manager,cn=admin will be accepted but will fail to allow cn=config access and slapd will subsequently fail to load
Dalsi priklad (https://gauvain.pocentek.net/docs/cn-config-admin/#enable-remote-access-using-a-root-dn) hovori, ze rootDn mimo cn=config DIT treba pridat pristupove ACL explicitne, co potvrdzuje citat vyssie.
-
config je samostatna databaze, rekl bych, ze pouzivas rootDN/rootPW z jine... podivej se, jakou hodnotu ma atribut olcRootDN (pripadne si nastav olcRootPW pokud nevis) v (asi v defaultu) olcDatabase={0}config.ldif a pouzij tento jako binddn
-
config je samostatna databaze, rekl bych, ze pouzivas rootDN/rootPW z jine... podivej se, jakou hodnotu ma atribut olcRootDN (pripadne si nastav olcRootPW pokud nevis) v (asi v defaultu) olcDatabase={0}config.ldif a pouzij tento jako binddn
Dívám se a v olcDatabase={0}config.ldif žádný olcRootDN není, je jen v olcDatabase={2}hdb, kde je výše zmíněný cn=Manager,dc=neco,dc=neco2 . Jestli to chápu správně, znamená to, že konfigurační databáze žádného superusera nemá a existuje jen správce databáze uživatelů?
-
skus z localhostu:
ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config
-
Dívám se a v olcDatabase={0}config.ldif žádný olcRootDN není, je jen v olcDatabase={2}hdb, kde je výše zmíněný cn=Manager,dc=neco,dc=neco2 . Jestli to chápu správně, znamená to, že konfigurační databáze žádného superusera nemá a existuje jen správce databáze uživatelů?
Netusim, jak a co je v sedmicce, mi tu bezi openldap 2.4.40 na centos 6... tak to tam zkus pridat, heslo si bud zkopiruj to stejny z {2}bdb, nebo pouzij slappaswd... samo by to melo jit i pres olcAccess jak psal kimec, ale do toho bych se poustel asi az by fungovalo tohle...
-
config je samostatna databaze, rekl bych, ze pouzivas rootDN/rootPW z jine... podivej se, jakou hodnotu ma atribut olcRootDN (pripadne si nastav olcRootPW pokud nevis) v (asi v defaultu) olcDatabase={0}config.ldif a pouzij tento jako binddn
Dívám se a v olcDatabase={0}config.ldif žádný olcRootDN není, je jen v olcDatabase={2}hdb, kde je výše zmíněný cn=Manager,dc=neco,dc=neco2 . Jestli to chápu správně, znamená to, že konfigurační databáze žádného superusera nemá a existuje jen správce databáze uživatelů?
nie, to je ok. co ti ale asi chyba, su prava na databazu config. cize nieco taketo v "olcDatabase={0}config.ldif":
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=extern
al,cn=auth" manage by dn="cn=Manager,dc=neco,dc=neco2" manage by * none
-
Asi to moc nepomůže v řešení chyby, ale já bych se nebál FreeIPA balíčku. Než konfigurovat samostatně LDAP server.
-
nie, to je ok. co ti ale asi chyba, su prava na databazu config. cize nieco taketo v "olcDatabase={0}config.ldif":
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=extern
al,cn=auth" manage by dn="cn=Manager,dc=neco,dc=neco2" manage by * none
OK, jediný problém jak to teď udělat. Snažil jsem se něco vyplodit sám, napadlo mě vytvořit ldif a ten nějak zavést, třeba přes ldapmodify
olcRootDN: cn=superuser,cn=config
olcRootPW: <hash hesla superuzivatele>
Bohužel moje mizerné znalosti ldapu se ukazují, podle mě tohle nestačí, ale nemůžu přijít na to jak to napsat správně.
-
OK, jediný problém jak to teď udělat. Snažil jsem se něco vyplodit sám, napadlo mě vytvořit ldif a ten nějak zavést, třeba přes ldapmodify
olcRootDN: cn=superuser,cn=config
olcRootPW: <hash hesla superuzivatele>
Bohužel moje mizerné znalosti ldapu se ukazují, podle mě tohle nestačí, ale nemůžu přijít na to jak to napsat správně.
je to proste, olcDatabase={0}config.ldif JE ldif, takze to dopis/prepis v nem a restartni. Tot vse. ;)
-
OK, jediný problém jak to teď udělat. Snažil jsem se něco vyplodit sám, napadlo mě vytvořit ldif a ten nějak zavést, třeba přes ldapmodify
olcRootDN: cn=superuser,cn=config
olcRootPW: <hash hesla superuzivatele>
Bohužel moje mizerné znalosti ldapu se ukazují, podle mě tohle nestačí, ale nemůžu přijít na to jak to napsat správně.
je to proste, olcDatabase={0}config.ldif JE ldif, takze to dopis/prepis v nem a restartni. Tot vse. ;)
tak urcite...
dn: olcDatabase={0}config,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage
by dn="cn=Manager,dc=...,dc=..." manage
by * none
-
OK, jediný problém jak to teď udělat. Snažil jsem se něco vyplodit sám, napadlo mě vytvořit ldif a ten nějak zavést, třeba přes ldapmodify
olcRootDN: cn=superuser,cn=config
olcRootPW: <hash hesla superuzivatele>
Bohužel moje mizerné znalosti ldapu se ukazují, podle mě tohle nestačí, ale nemůžu přijít na to jak to napsat správně.
je to proste, olcDatabase={0}config.ldif JE ldif, takze to dopis/prepis v nem a restartni. Tot vse. ;)
A v každém LDIFu je upozornění, že do něj nikdo nemá manuálně psát a kontrolní součet. Ano, napadlo mě že tohle je nejjednodušší způsob, ale fakt nevím jestli pak LDAP najede a nebude mít nějaké řeči.
-
OK, jediný problém jak to teď udělat. Snažil jsem se něco vyplodit sám, napadlo mě vytvořit ldif a ten nějak zavést, třeba přes ldapmodify
olcRootDN: cn=superuser,cn=config
olcRootPW: <hash hesla superuzivatele>
Bohužel moje mizerné znalosti ldapu se ukazují, podle mě tohle nestačí, ale nemůžu přijít na to jak to napsat správně.
je to proste, olcDatabase={0}config.ldif JE ldif, takze to dopis/prepis v nem a restartni. Tot vse. ;)
tak urcite...
dn: olcDatabase={0}config,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage
by dn="cn=Manager,dc=...,dc=..." manage
by * none
Pokud rozumím zápisu, tak to není přidání nového uživatele, ale přidání práv stávajícího (Manager) tak, aby měl práva superusera, chápu správně?
-
presnejsie "aby mal prava superusera nad databazou config"...
-
A v každém LDIFu je upozornění, že do něj nikdo nemá manuálně psát a kontrolní součet. Ano, napadlo mě že tohle je nejjednodušší způsob, ale fakt nevím jestli pak LDAP najede a nebude mít nějaké řeči.
IIRC tak OpenLDAP si bude stěžovat do logu, ale bude to fungovat.
Čisté řešení je použít slapadd a slapindex.