Konfigurace LDAP serveru se nachází v souboru
/etc/openldap/slapd.conf. Zde jsou popsány jednotlivé
položky konfigurace. Položky začínající znakem # jsou zakomentované a tedy
neaktivní. Pokud je chcete aktivovat, musíte znak smazat.
Příklad 25.2. slapd.conf: Include příkaz pro schéma
include /etc/openldap/schema/core.schema include /etc/openldap/schema/inetorgperson.schema
První příkazy slapd.conf zobrazené v příkladu
25.2 – „slapd.conf: Include příkaz pro schéma“ určují schéma LDAP adresáře.
K základnímu povinnému schématu (zde core.schema)
lze přidávat i dodatečná schémata (v našem případě
inetorgperson.schema). Další schémata naleznete
v adresáři /etc/openldap/schema. Pro nahrazení
služby NIS službou LDAP budete potřebovat dvě schémata –
rfc2307.schema a cosine.schema.
Informace o této problematice najdete v dokumentaci OpenLDAP.
Příklad 25.3. slapd.conf: pidfile a argsfile
pidfile /var/run/slapd/slapd.pid argsfile /var/run/slapd/slapd.args
Tyto dva soubory obsahují PID (process ID) a některé argumenty, se kterými je spouštěn slapd. Žádné změny zde nejsou potřeba.
Příklad 25.4. slapd.conf: Kontrola přístupu
# 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!
Příklad 25.4 – „slapd.conf: Kontrola přístupu“ ukazuje část souboru
slapd.conf, která se týká nastavení přístupu
k adresáři LDAP na serveru. Nastavení uvedená zde v globální sekci souboru
slapd.conf jsou platná až do okamžiku vytvoření
nastavení v části specifické pro databázi. Ta mají přednost před
globálními nastaveními. V našem příkladě mají všichni uživatelé práva pro
čtení, ale pouze administrátor (rootdn) může do této
databáze zapisovat. Nastavení přístupových práv v LDAP je poměrně složité
téma, nabízíme proto několik tipů:
Každé pravidlo pro přístup má následující strukturu:
access to <what> by <who> <access>
what nahraďte objektem nebo atributem, ke
kterému se má přistupovat. Jednotlivé větve adresáře mohou být chráněny
vlastními pravidly. Pokud chcete, můžete chránit části adresáře pomocí
regulárních výrazů. Program slapd vyhodnocuje
všechna pravidla v pořadí, v jakém jsou uvedena v konfiguračním souboru.
Obecnější pravidla by měla být uvedena později – uplatněno je první
platné pravidlo, ostatní jsou ignorována.
who určuje, komu bude přiznán přístup do
oblastí určených pomocí what. Lze použít i
regulární výrazy. slapd opět ukončí vyhodnocování
who po nalezení první shody, proto by obecnější
pravidla měla být uvedena později. Možná jsou nastavení uvedená
v tabulce 25.2 – „Uživatelské skupiny a jejich přístupová práva“
access určuje typ přístupu.
Možná nastavení najdete v tabulce 25.3 – „Typy přístupu“.
Tabulka 25.3. Typy přístupu
Tag | Význam |
|---|---|
| bez přístupu |
| spojení se serverem |
| porovnávání |
| vyhledávání pomocí filtrů |
| čtení |
| zápis |
slapd porovnává požadavky klientů s nastavením
přístupových práv v souboru slapd.conf. Klientovi
je přístup povolen jen v případě, že splňuje požadavky pro přístup (má
požadovaná nebo vyšší práva). Pokud klient vyžaduje vyšší práva, než
mu jsou přiřazena, je mu odmítnut přístup.
Příklad 25.5 – „slapd.conf: Příklad nastavení přístupových práv“ ukazuje jednoduché nastavení přístupových práv pomocí regulárního výrazu:
Příklad 25.5. slapd.conf: Příklad nastavení přístupových práv
access to dn.regex="ou=([^,]+),dc=suse,dc=de" by dn.regex="cn=administrator,ou=$1,dc=suse,dc=de" write by user read by * none
V tomto příkladu má práva zápisu do záznamu ou pouze
administrátor. Všichni ostatní autentizovaní uživatelé mají práva ke
čtení. Ostatní uživatelé nemají žádný přístup.
![]() | Vytvoření přístupových pravidel |
|---|---|
Pokud chybí pravidlo | |
Podrobné informace a příklady nastavení přístupových práv k LDAP naleznete
v dokumentaci balíčku openldap2.
Kromě nastavení přístupových práv v centrálním konfiguračním
souboru (slapd.conf) je k dispozici také
ACI (Access Control Information). ACI umožňuje ukládání
informací o jednotlivých objektech LDAP stromu. Tento způsob
kontroly přístupu je však stále ještě považován za experimentální.
Viz http://www.openldap.org/faq/data/cache/758.html.
Příklad 25.6. slapd.conf: Nastavení specifická pro databázi
database ldbm suffix "dc=suse,dc=de" rootdn "cn=admin,dc=suse,dc=de" # 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
Na prvním řádku této sekce (viz 25.6 – „slapd.conf: Nastavení specifická pro databázi“) je
určen typ databáze (v našem případě LDBM). Na druhé řádce
(suffix) je určeno, za jakou část LDAP stromu server
zodpovídá. Následující rootdn určuje administrátora
serveru. Zde nastavený uživatel nepotřebuje mít LDAP záznam nebo existovat
jako běžný uživatel. Heslo administrátora je nastaveno v položce
rootpw. Místo secret můžete použít
hash administrátorského hesla vytvořený pomocí programu slappasswd.
Položka directory určuje adresář (v souborovém
systému), ve kterém je uložena databáze. Poslední část,
index objectClass eq, určuje, že index bude udržován
pro všechny objektové třídy. Podle zkušeností zde lze nastavit atributy,
které uživatelé nejčastěji vyhledávají. Access pravidla
nastavená v této sekci se použijí místo pravidel globálních.
Je-li server plně nakonfigurovaný a jsou-li vytvořeny všechny požadované
záznamy, jak je popsáno v sekci 25.4 – „Správa dat v LDAP adresáři“,
spusťte server jako uživatel root
příkazem rcldap start. Ručně server
zastavíte příkazem rcldap stop. Stav
běžícího LDAP serveru zjistíte příkazem rcldap
status.
Pokud chcete LDAP server spouštět automaticky při startu systému, použijte k nastavení editor úrovní běhu systému nástroje YaST (viz 8.6 – „Editor úrovní běhu“). Automatické spouštění při startu systému můžete zajistit také pomocí příkazu insserv (viz 8.5 – „Init skripty“).