A telepített rendszerben található egy teljes konfigurációs fájl az LDAP-kiszolgáló számára, amely az /etc/openldap/slapd.conf. Az alábbiakban röviden leírjuk az egyes bejegyzéseket és elmagyarázzuk az esetleg szükséges módosításokat. A kettoskereszt (#) karakter után írt bejegyzések nem aktívak. Az aktiválásukhoz törölni kell ezt a megjegyzés karaktert.
Példa 26-2 slapd.conf: Beágyazási direktíva sémákhoz
include /etc/openldap/schema/core.schema include /etc/openldap/schema/cosine.schema include /etc/openldap/schema/inetorgperson.schema include /etc/openldap/schema/rfc2307bis.schema include /etc/openldap/schema/yast.schema
Az slapd.conf elso direktívája (Példa 26-2) azt a sémát adja meg, amelynek alapján az LDAP-címtár szervezodik. A core.schema bejegyzés kötelezo. A további szükséges sémákat ehhez a direktívához kell fuzni. Ezzel kapcsolatos információ a mellékelt OpenLDAP-dokumentációban található.
Példa 26-3 slapd.conf: pidfile és argsfile
pidfile /var/run/slapd/slapd.pid argsfile /var/run/slapd/slapd.args
Ez a két fájl tartalmazza az slapd folyamat PID-jét (folyamatazonosítóját) és egyes paramétereit, amelyekkel el lett indítva. Itt nincs szükség módosításra.
Példa 26-4 slapd.conf: Hozzáférés-vezérlés
# Sample Access Control
# Allow read access of root DSE
# Allow self write access
# Allow authenticated users read access
# Allow anonymous users to authenticate
# access to dn="" by * read
access to * by self write
by users read
by anonymous auth
#
# if no access controls are present, the default is:
# Allow read by all
#
# rootdn can always write!
A Példa 26-4 ábrán látható az slapd.conf azon részlete, amely a kiszolgáló LDAP-címtárának hozzáférési jogosultságait szabályozza. Az slapd.conf általános részében megadott beállítások addig érvényesek, amíg az adatbázis-specifikus részben egy egyéni hozzáférési szabály felül nem írja oket. Ezek felülírják az általános deklarációkat. Az itt látható módon, minden felhasználó jogosult olvasni a címtárat, de csak a rendszergazda (rootdn) jogosult írni bele. Az LDAP hozzáférés-vezérlése meglehetosen összetett folyamat. Az alábbi tanácsok talán segítenek:
Minden hozzáférési szabály az alábbi módon épül fel:
access to <what> by <who> <access>
A what helyére kell írni azt az objektumot vagy attribútumot, amelyhez a hozzáférést engedélyezi. A független címtárágakat külön szabályokkal kell védeni, explicit módon. Reguláris kifejezések használatával a címtárfa több része is feldolgozható egyetlen szabállyal. Az slapd a szabályokat abban a sorrendben értékeli ki, ahogy azok a konfigurációs fájlban szerepelnek. Az általánosabb szabályokat a speciálisabbak után kell venni – az slapd az elso illeszkedo szabályt fogja alkalmazni és a többit figyelmen kívül hagyja.
A who helyére kerül az, hogy ki kap hozzáférést a what részhez. Itt is használhatók reguláris kifejezések. Megint csak, az slapd megszakítja a who rész kiértékelését az elso illeszkedésnél, tehát a specifikusabb szabályokat az általánosabbak elé kell venni. A Táblázat 26-2 táblázatban felsorolt lehetoségek használhatók.
Táblázat 26-2 Felhasználói csoportok és hozzáférési jogaik
|
Címke |
Hatókör |
|---|---|
|
* |
Minden felhasználó, kivétel nélkül |
|
anonymous |
A nem hitelesített, ( |
|
users |
A hitelesített felhasználók |
|
self |
A célobjektumhoz csatlakozó felhasználók |
|
dn.regex=<regex> |
A reguláris kifejezésnek megfelelo felhasználók |
Az access helyére a hozzáférés típusa kerül. 2A Táblázat 26-3 táblázatban felsorolt lehetoségek használhatók.
Táblázat 26-3 Hozzáférés típusa
|
Címke |
Hozzáférési kör |
|---|---|
|
none |
Nincs hozzáférés |
|
auth |
A kiszolgálóhoz kapcsolódás |
|
compare |
Összehasonlítási hozzáférés |
|
search |
Jogosultság keresési szurok használatára |
|
read |
Olvasási hozzáférés |
|
write |
Írási hozzáférés |
Az slapd összehasonlítja a kliens által kért hozzáférési jogokat az slapd.conf fájlban megadottakkal. A kliens akkor kap hozzáférést, ha a szabályok a kértnél magasabb vagy azzal egyenlo hozzáférést engedélyeznek. Ha a kliens magasabb szintu hozzáférést kér, mint amit a szabályok engedélyeznek, akkor a kiszolgáló megtagadja a hozzáférést.
A Példa 26-5 ábrán egy egyszeru hozzáférés-vezérlési beállítás látható, amely önkényesen alakítható reguláris kifejezések használatával.
Példa 26-5 slapd.conf: Példa hozzáférés-vezérlésre
access to dn.regex="ou=([^,]+),dc=example,dc=com" by dn.regex="cn=Administrator,ou=$1,dc=example,dc=com" write by user read by * none
Ez a szabály azt jelenti, hogy csak a megfelelo rendszergazdának van írási joga egy ou (szervezeti egység) bejegyzéshez. A többi hitelesített felhasználó olvasási jogot kap, mindenki más pedig semmilyet.
TANÁCS: Hozzáférési szabályok kialakítása
Ha nincs access to szabály, vagy illeszkedo by direktíva, akkor a hozzáférés meg lesz tagadva. Csak a kifejezetten megadott hozzáférési jogok lesznek megadva. Ha egyáltalán nincsenek szabályok megadva, akkor az alapelv az, hogy a rendszergazda kap írási jogot, és mindenki más olvasásit.
Részletes információ és az LDAP hozzáférési jogok példakonfigurációja a telepített openldap2 csomag online dokumentációjában található.
Azon túl, hogy a központi kiszolgálókonfigurációs fájl (az slapd.conf) segítségével beállíthatók hozzáférési jogok, létezik az úgynevezett hozzáférés-vezérlési információ (access control information, ACI) funkció is. Az ACI lehetové teszi az egyes objektumok hozzáférési adatainak tárolását magában az LDAP-címtárfában. Ez a fajta hozzáférés-vezérlés még nem nagyon elterjedt, és még maguk a fejlesztok is kísérletinek tekintik. További információ: http://www.openldap.org/faq/data/cache/758.html.
Példa 26-6 slapd.conf: adatbázis-specifikus direktívák
database bdbsuffix "dc=example,dc=com"
checkpoint 1024 5
cachesize 10000
rootdn "cn=Administrator,dc=example,dc=com"
# Cleartext passwords, especially for the rootdn, should # be avoided. See slappasswd(8) and slapd.conf(5) for details. # Use of strong authentication encouraged. rootpw secret
# The database directory MUST exist prior to running slapd AND # should only be accessible by the slapd/tools. Mode 700 recommended. directory /var/lib/ldap
# Indices to maintain index objectClass eq
overlay ppolicy
ppolicy_default "cn=Default Password Policy,dc=example,dc=com" ppolicy_hash_cleartext ppolicy_use_lockout
|
Az adatbázis típusa (a jelen esetben egy Berkeley adatbázis) a szakasz elso sorában van beállítva (lásd: Példa 26-6). |
|
A suffix (utótag) rész határozza meg, hogy ez a kiszolgáló az LDAP-címtárfa mely részéért felelos. |
|
A checkpoint (ellenorzopont) határozza meg azt az adatmennyiséget (kilobájtban), amelyik a tranzakciós naplóban marad, mielott az a tényleges adatbázisba íródna, illetve a két írási muvelet közötti idot (percben). |
|
A cachesize (gyorsítótár mérete) paraméter adja meg, hogy hány objektum tárolódik az adatbázis gyorsítótárában. |
|
A rootdn adja meg, hogy ki rendelkezik rendszergazdai jogokkal a kiszolgálót illetoen. Az itt megadott felhasználónak nem kell LDAP-bejegyzéssel rendelkeznie, és nem is kell léteznie normál felhasználóként. |
|
A rootpw paraméter adja meg a rendszergazda jelszavát. A secret használata helyett megadható a slappasswd által a rendszergazdai jelszóból készített kivonat is. |
|
A directory direktíva adja meg a fájlrendszer azon könyvtárát, amelyben a kiszolgálón az adatbázis könyvtárai tárolódnak. |
|
Az utolsó direktíva, az index objectClass eq azt jelenti, hogy index készül minden objektumosztályról. A tapasztalat szerint a felhasználók által leggyakrabban keresett attribútumok is felvehetok ide. |
|
Az overlay ppolicy jelszókezelési mechanizmusok egy rétegével bovíti a rendszert. A ppolicy_default adja meg a használandó pwdPolicy objektum DN-jét, ha egy adott felhasználói bejegyzésre semmilyen más irányelv nem vonatkozik. Ha nincs specifikus irányelv egy adott bejegyzéshez, és nincs alapértelmezés sem, akkor semmilyen irányelv nem lesz érvényesítve. A ppolicy_hash_cleartext azt adja meg, hogy a hozzáadási és módosítási kérések nyílt szövegu jelszavaiból eloször kivonat készül, mielott az adatbázisban tárolódnának. E paraméter használata esetén célszeru letiltani az összehasonlítási, keresési és olvasási hozzáférést a userPassword attribútumhoz a címtár összes felhasználója számára, mivel a ppolicy_hash_cleartext sérti az X.500/LDAP információs modellt. A ppolicy_use_lockout meghatározott hibakódot küld, amikor egy kliens egy zárolt fiókhoz próbál csatlakozni. Kiemelt biztonságú rendszerekben érdemes letiltani ezt a funkciót, mivel a hibakódból a támadók esetleg értékes információt nyerhetnek ki. |
Az adatbázisra vonatkozóan itt megadott egyéni Access szabályok felülírják az általános Access szabályokat.
Az LDAP-kiszolgálót a teljes beállítása, és a Szakasz 26.8, LDAP-adatok kézi adminisztrációja részben leírtak szerint az összes szükséges bejegyzés felvétele után a root tudja elindítani az rcldap start paranccsal. A kiszolgáló kézi leállításához írja be, hogy rcldap stop. A futó LDAP-kiszolgáló állapotáról információ az rcldap status paranccsal kérheto.
A YaST futásiszint-szerkesztoje (Szakasz 14.2.3, Rendszerszolgáltatások (futási szintek) beállítása a YaST segítségével) is használható a kiszolgáló automatikus elindításához és leállításához a rendszer indításakor és leállításakor. Lehet továbbá megfelelo hivatkozásokat készíteni az indító és leállító parancsfájlokra az insserv paranccsal egy konzolból (ennek leírása: Szakasz 14.2.2, Init parancsfájlok).