LDAP znamená Lightweight Directory Access Protocol.
LDAP je řešení pro přístup k centrálně uloženým informacím přes síť. Tyto centrálně uložené informace jsou organizovány v adresáři, který odpovídá standardu X.500.
Informace jsou uloženy a organizovány hierarchickým způsobem a výhodou tohoto přístupu je, že informace lze seskupit do kontejnerů a klienti k těmto kontejnerům mohou přistupovat kdykoli je potřeba.
Hierarchie OpenLDAP je téměř podobná hierarchii DNS.
Následují dva nejčastěji používané objekty v OpenLDAP:
- cn (běžný název) – odkazuje na položky listu, což jsou koncové objekty (například:uživatelé a skupiny)
- dc (komponenta domény) – odkazuje na jednu z položek kontejneru v hierarchii LDAP. Pokud je v nastavení hierarchie LDAP mapována na hierarchii DNS, obvykle se všechny domény DNS označují jako objekty DC.
Pokud je například uživatel v hierarchii sam.thegeekstuff.com, je plně rozlišující jméno tohoto uživatele označováno jako cn=sam, dc=thegeekstuff, dc=com. Pokud jste si všimli v FDN (úplně rozlišující název), čárka se používá jako oddělovač a ne tečka, což je běžné v DNS.
Pomocí různých typů položek LDAP můžete nastavit hierarchickou strukturu adresářů. To je důvod, proč je openLDAP tak široce používán. Můžete snadno vytvořit hierarchii openLDAP, kde lze snadno odkazovat na objekty v jiných umístěních, aniž byste je ukládali na místní servery. Díky tomu je OpenLDAP odlehčený adresář, zejména ve srovnání s jinými adresářovými servery, jako je Microsoft Active directory.
Nyní se podíváme, jak nastavit jednu instanci serveru LDAP, kterou může k ověřování používat více klientů ve vaší síti.
Nainstalujte balíčky OpenLDAP
Na CentOS a RedHat použijte yum install, jak je uvedeno níže, k instalaci balíčků souvisejících s openldap.
yum install -y openldap openldap-clients openldap-servers
Měli byste nainstalovat následující tři balíčky:
- openldap-servers – Toto je hlavní server LDAP
- openldap-clients – Obsahuje všechny požadované klientské nástroje LDAP
- openldap – Tento balíček obsahuje knihovny podpory LDAP
Konfigurační soubory LDAP
- config.ldif – Výchozí konfigurace LDAP je uložena v souboru /etc/openldap/slapd.d/cn=config.ldif, který je vytvořen ve formátu LDIF. Toto je vstupní formát LDAP (LDIF), specifický formát, který umožňuje zadávat informace do adresáře LDAP.
- olcDatabase{2}bdb.ldif – Můžete také upravit nastavení, jako je počet připojení, která může server podporovat, časové limity a další nastavení databáze v souboru /etc/openldap/slapd.d/cn=config/olcDatabase{2 }bdb.ldif. Toto je soubor, který také obsahuje parametry, jako je uživatel root LDAP a základní DN.
Vytvořte účet olcRootDN jako správce
Vždy se doporučuje nejprve vytvořit vyhrazený uživatelský účet s plnými oprávněními ke změně informací v databázi LDAP.
Upravte soubor olcDatabase={2}bdb.ldif a změňte položku olcRootDN. Následující je výchozí položka.
# grep olcRootDN /etc/openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif olcRootDN: cn=Manager,dc=my-domain,dc=com
Změňte výše uvedený řádek na administrátora. V tomto příkladu bude uživatel „ramesh“ olcRootDN.
olcRootDN: cn=ramesh,dc=thegeekstuff,dc=com
Vytvořte kořenové heslo olcRootPW
Nyní pomocí příkazu slappasswd vytvořte hash pro heslo uživatele root, které chcete použít. Jakmile je heslo vygenerováno, otevřete soubor cn=config.ldif, zahrňte parametr olcRootPW a zkopírujte hashované heslo, jak je uvedeno níže.
Proveďte následující příkaz a zadejte heslo. Tím se vygeneruje hash pro dané heslo.
# slappasswd New password: SecretLDAPRootPass2015 Re-enter new password: SecretLDAPRootPass2015 {SSHA}1pgok6qWn24lpBkVreTDboTr81rg4QC6
Vezměte výstup hash z výše uvedeného příkazu a přidejte jej do parametru oclRootPW v souboru config.ldif, jak je znázorněno níže.
# vi /etc/openldap/slapd.d/cn=config.ldif olcRootPW: {SSHA}1pgok6qWn24lpBkVreTDboTr81rg4QC6
Vytvořte název domény olcSuffix
Nyní nastavte olcSuffix a nastavte doménu, kterou chcete. Jednoduše upravte řádek, který začíná příponou olcSuffix v souboru olcDatabase={2}bdb.ldif, jak je znázorněno níže.
# vi /etc/openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif olcSuffix: dc=thegeekstuff,dc=com
Ověřte konfigurační soubory
Použijte příkaz slaptest k ověření konfiguračního souboru, jak je uvedeno níže. To by mělo zobrazit zprávu „testování bylo úspěšné“, jak je uvedeno níže.
# slaptest -u config file testing succeeded
Během výše uvedeného příkazu se mohou zobrazit následující zprávy, které můžete prozatím ignorovat.
54a39508 ldif_read_file: checksum error on "/etc/openldap/slapd.d/cn=config/olcDatabase={1}monitor.ldif" 54a39508 ldif_read_file: checksum error on "/etc/openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif"
Spusťte server LDAP
Spusťte server ldap, jak je znázorněno níže.
# service slapd start Checking configuration files for slapd: [WARNING] config file testing succeeded Starting slapd: [ OK ]
Ověřte vyhledávání LDAP
Chcete-li ověřit, zda je server ldap úspěšně nakonfigurován, můžete použít níže uvedený příkaz a ověřit, zda je přítomen záznam domény.
# ldapsearch -x -b "dc=thegeekstuff,dc=com" # extended LDIF # # LDAPv3 # base <dc=thegeekstuff,dc=com> with scope subtree # filter: (objectclass=*) # requesting: ALL # # search result search: 2 result: 32 No such object # numResponses: 1
Základní struktura LDAP v base.ldif
Použití objektů OU (organizační jednotky) vám může pomoci při poskytování další struktury do databáze LDAP. Pokud plánujete přidání různých typů položek, jako jsou uživatelé, skupiny, počítače, tiskárny a další, do adresáře LDAP, usnadníte si umístění každého typu položky do vlastního kontejneru.
Chcete-li vytvořit tyto organizační jednotky, můžete vytvořit počáteční soubor LDIF, jak je znázorněno v níže uvedeném příkladu. V tomto příkladu vám tento soubor umožňuje vytvořit základní kontejner, který je dc=thegeekstuff,dc=com, a vytvoří dvě organizační jednotky se jmény uživatelů a skupin v tomto kontejneru.
# cat base.ldif dn: dc=thegeekstuff,dc=com objectClass: dcObject objectClass: organization o: thegeekstuff.com dc: thegeekstuff dn: ou=users,dc=thegeekstuff,dc=com objectClass: organizationalUnit objectClass: top ou: users dn: ou=groups,dc=thegeekstuff,dc=com objectClass: organizationalUnit objectClass: top ou: groups
Import základní struktury pomocí ldapadd
Nyní můžeme importovat základní strukturu do adresáře LDAP pomocí příkazu ldapadd, jak je ukázáno níže.
# ldapadd -x -W -D "cn=ramesh,dc=thegeekstuff,dc=com" -f base.ldif Enter LDAP Password: adding new entry "dc=thegeekstuff,dc=com" adding new entry "ou=users,dc=thegeekstuff,dc=com" adding new entry "ou=groups,dc=thegeekstuff,dc=com"
Ověřte základní strukturu pomocí ldapsearch
Chcete-li ověřit, zda jsou organizační jednotky úspěšně vytvořeny, použijte následující příkaz ldapsearch.
# ldapsearch -x -W -D "cn=ramesh,dc=thegeekstuff,dc=com" -b "dc=thegeekstuff,dc=com" "(objectclass=*)" Enter LDAP Password:
Výstup výše uvedeného příkazu zobrazí všechny objekty v adresářové struktuře LDAP.
# extended LDIF # # LDAPv3 # base <dc=thegeekstuff,dc=com> with scope subtree # filter: (objectclass=*) # requesting: ALL # # thegeekstuff.com dn: dc=thegeekstuff,dc=com objectClass: dcObject objectClass: organization o: thegeekstuff.com dc: thegeekstuff # users, thegeekstuff.com dn: ou=users,dc=thegeekstuff,dc=com objectClass: organizationalUnit objectClass: top ou: users # groups, thegeekstuff.com dn: ou=groups,dc=thegeekstuff,dc=com objectClass: organizationalUnit objectClass: top ou: groups # search result search: 2 result: 0 Success # numResponses: 4 # numEntries: 3
V příštím článku OpenLDAP vysvětlíme, jak přidat nové uživatele a skupiny do adresáře LDAP.