abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
dnes 18:11 | Komunita

Project Trident je desktopový operační systém aktuálně postavený na TrueOS, což je operační systém vycházející z FreeBSD, s grafickým prostředím Lumina. Vývojáři Tridentu oznámili, že přechází z TrueOS na Void Linux. Výhody ale i nevýhody přechodu v oficiálním oznámení.

Ladislav Hagara | Komentářů: 0
včera 13:22 | IT novinky

Samsung oznámil, že program Linux on DeX končí. Android 10 už nebude podporován. Linux on DeX umožňuje spouštět linuxový desktop a aplikace z vybraných telefonů od Samsungu připojených pomocí Samsung DeX.

Ladislav Hagara | Komentářů: 18
včera 12:00 | Komunita

Ubuntu slaví 15 let od vydání první verze. Přesně před patnácti lety, 20. října 2004, byla vydána první verze 4.10 s kódovým názvem Warty Warthog.

Ladislav Hagara | Komentářů: 1
19.10. 20:20 | Pozvánky

Ve středu 23. října 2019 se od 16.00 koná akce na téma Oracle Labs - Live for the Code. Představí projekty Oracle Labs, na kterých se pracuje i v České republice: Oracle Labs Data Studio a GraalVM. Místo konání: budova Oracle v Praze–Jinonicích. Vstup po registraci zdarma. Občerstvení zajištěno.

Ladislav Dobiáš | Komentářů: 1
18.10. 09:44 | Upozornění

Byly zveřejněny videozáznamy přednášek z konference LinuxDays 2019, která proběhla 5. a 6. října v Praze. Odkazy na videa společně s prezentacemi naleznete v programu, případně můžete jít rovnou na stránku video. Záznamy pořizovalo Audiovizuální centrum SiliconHill.

Petr Krčmář | Komentářů: 18
17.10. 18:55 | Nová verze

Bylo vydáno OpenBSD 6.6. Opět bez oficiální písně. Z novinek lze zmínit například sysupgrade(8).

Ladislav Hagara | Komentářů: 5
17.10. 08:36 | Nová verze

Vyšla nová verze monitorovacího řešení Centreon 19.10.0. Novinek je spousta (realtime API, podpora JIRA, vylepšený systém notifikací...), ale těmi nejdůležitějšími je pro mnohé uživatele podpora nové verze rrdtool 1.7.x a php 7.2. Systém tak půjde bez problémů provozovat na jiných distribucích než CentOS 7. Kompletní přehled novinek v seznamu změn. Předpřipravená appliance i samotné části jsou k dispozici na oficiálních stránkách.

Max | Komentářů: 0
17.10. 01:00 | Komunita

Dnes vyjde Ubuntu 19.10 s kódovým názvem Eoan Ermine. Přehled novinek v poznámkách k vydání. Ubuntu 20.04 LTS bude Focal Fossa.

Ladislav Hagara | Komentářů: 14
16.10. 22:11 | Zajímavý projekt

Padesátiny Unixu lze oslavit také hrou The Unix Game aneb na unixové roury pomocí Scratche.

Ladislav Hagara | Komentářů: 2
16.10. 21:44 | Komunita

Vývojáři svobodného 3D softwaru Blender oznámili, že nejnovějším firemním sponzorem Blenderu je společnost Adidas. Jedná se o úroveň Corporate Silver, tj. 12 tisíc eur ročně.

Ladislav Hagara | Komentářů: 37
Kdy jste naposledy viděli počítač s připojeným běžícím CRT monitorem?
 (20%)
 (4%)
 (11%)
 (39%)
 (24%)
 (2%)
Celkem 442 hlasů
 Komentářů: 23, poslední včera 18:52
Rozcestník

Autentifikace pomocí LDAPu

24.5.2006 19:20 | Přečteno: 2910× | linux, počítače a tak vůbec | poslední úprava: 25.5.2006 00:25

Pro sjednocení uživatelských účtů na více počítačích je ldap jednou ze zajímavých možností. Pokud v googlu zadáte vyhledávat "pam + ldap + Linux", dostanete mnoho návodů. Proto nebudu psát delší, a spíše se zaměřím na to, co v těchto návodech nenašel.

K LDAPu jsem se dostal před týdnem kdy jsem přišel na schůzku Audivizuálního centra Silicon Hill. Jediné co jsem tehdy o ldapu věděl bylo, že se jedná o jakýsi systém uchovávání údajů v databázi. Nakonec jsem si na sebe upletl bič v podobě úkolu zajistit, aby uživatelé měli na co nejvíce místech stejná hesla a změna provedená na jednom počítači se přenesla i na ostatní. Jedním z hesel AVC je "Nikdo vás za to neplatí, tak to můžete i zkazit". To mi dodalo odvahy, abych se do toho pustil.

Zadal jsem tedy do Googlu požadované vědomosti, a dostal kupu výsledků a návodů. Bohužel když o ldapu nic nevíte, tak se můžete dopustit mnoha chyb, které vám zkomplikují život. První věc je pohled na samotný ldap. Na ldap je třeba dívat se ne jako na databázi, ale jako na protokol. Stejně jako přes ftp nemůžet poslat co vás napadne, ani v ldapu to nejde. Když máte zakázáno tvořit adresáře, tak ho prostě nevytvoříte, ačkoli to samotný systém umožňuje.

Stručně tedy o ldapu. Ldap je protokol, který umožňuje přistupovat k databázím. Databáze má uspořádání stromu, kde nahoře je jakási kořenová položka, od které všechno začíná. Do databáze nemůžete nacpat všechno co vás napadne. Ldap používá schémata. Tyto schémata definují jednotlivé typy položek. Od základních položek jako "organizace, organizační jednotka, ...", které umožňují jednoduše třídit do stromu, přes addres, která vám umožní přiřazovat adresy, telefony,... až po shadowAccount, sambaSamAccount, které vám umožní skladovat přihlašovací informace. V jednotlivých schématech je definováno, co uživatel může zadat a co musí zadat. například u addres to je položka příjmení. Pokud povinné položky nezadáte, pak prostě nový záznam nevytvoříte. Každý záznam má svoje distinguished name, (dn) což je jeho jedinečný identifikátor. V jedné databázi nemůžou být dbě položky se stejným dn. dn obsahuje "jméno položky" (například cn, nebo uid, záleží na typu), a její pozici ve stromu. Tedy například dn: uid=guest,ou=users,ou=accounts,dc=avc", je položka která se jmenuje guest, ve "složce" /avc/accounts/users. Další vlastností je, že ldap nerozlišuje záznamy a složky. Každému záznamu můžet vytvořit kolik potomků chcete. To by jako základ stačilo, teď ke konkrátním problémům.

OpenLdap. Jen tak pro pořádek. OpenLdap je projekt, který vyvíjí ldap servr. Jenže server se nejmenuje v distribucích vždy openldap, ale spíš slapd. Nejspíš proto, že součástí openldapu, jsou i knihovny, které využívají i jiné aplikace.

Dobře si rozmyslete strukturu. Mnoh příkladů volí jako vršek dc=firma,dc=com. To má samozřejmě opodstatnění u velkých databází. Normálně ale bohatě stačí dc=něcokrátkého, ušetříte si spoustu psaní.

Práva. Hned na začátku se dozvíte, že existuje něco jako root, který smí v databázi všechno. To je fajn, ale je lepší si s právy trochu pohrát. Pak můžete docílit toho, že každému se zobrzují jen určité typy položek u záznamu. Cizinci tedy třeba jen jméno příjmení, zatímco zaměstanec firmy vidí i email, a pam pak třeba vidí jen uid a userPassword.

Rootpw a rootdn v konfiguraci slapd.conf. To je heslo super uživatele. Jelikož ldap si klienty ověřuje na základě položek v databázi, tak je třeba mu zadat počátečního uživatele, který smí všechno, tedy například vytvořit tyto položky. Jelikož toto rootovské heslo se uchováv v konfiguračním souboru, je jaksi nepřípustná, aby bylo úplně nechráněné. K jeho vytvoření slouží

slapdpasswd -h {SHA}
místo SHA si dosaďte vaší oblíbenou hashovací funkci.

Jak cpát věci do databáze. na začátek se dá používat

slapadd
nebo
ldapadd
. Slapadd cpe věci přímo do databáze a obchází smotného daémona. Proto funguje jen na počítači, kde démon běží a ještě musíte mít práva na zápis do databáze. Do celé databáze (jako do toho "fajlu"). Ldapp add funguje hezky po síti. Musíte mít v databázi nadefinována patřičná přístupová práva pro to co chcete dělat. Oba dva programy očekávají na vstupu formát ldif. Ldif je takový hezký texťák, který bude nacházet na všech stránkách s návodama. Pozorně si ho však prohlédňete, nebo se budete snažit cpát do databáze blbosti, a to jak už jsem psal samozřejmě nepůjde.

Jak tam nacpu uživ. účty. Stáhnu si příklad ldifu a upravím patřičná pole a pak to naimportuju. pomocí výše uvedených utulit (hashovaná hesla generuji v klidu pomocí slapdpasswd. Dále existují MigrationTools, což je sada skriptů, která vezme na vstupu například /etc/groups a vyplivne ldif se skupinama, které byly v /etc/groups. Nebo použiji program DirectoryAdministrator, ten se tváří docela přítulně, ale bohužel díky tomu, že si moc nerozumí se schémátky, tak se vám často stane, že prostě nevytvoří korektní položku a uživatele nepřidá. Naprosto bezkonkurenční nástroj je Php Ldap Administrator. Můžete nenávidět webová rozhraní, php, cokoli, ale tohle se vám prostě bude líbit. Je to jediný nástroj, který mi byl schopen korektně tvořit uživ. účty. Jako jeden z mála nemá problémy s přesouváním položek. Jako jeden z mála píše při importu, kopírování, úpravě kde došlo k chybě. Prostě rozchodit Apache a phpko kvůli tomu stojí zato. Teda pokud si nevystačíte jen s konzolovými utulitkami.

Doporučení pro testování. Vytvořte si ve vaší hlavní složce položku, která se stane hlavní "složkou" pro finální provoz. Třeba já používám dn: dc=avc,ou=accounts. To je nastavené pro pam-ldap a libnss-ldap ajko vršek stromu. Pokud pak vytváříte testovací položky, například pro rozcházení sambaAccountů, máte je pak hezky oddělené a nepletou se vám do hlavního provozu, a navíce se pak dají jednoduše smazat.

A co skupiny. Správně, v linuxu nemáme jen uživatele a skupiny. Pro skupiny nám slouží schématko posixGroup.

Jak tedy nastavit používání pamu. Stáhnout si pam-ldap. A potom prozkoumat /etc/pam.d/ kde najdete položky například jako common-auth, které obsahují postup provádění jednotlivých činností. (auth - kdo jsi,account-máš účet, passwd-smíš měnit heslo, session-nastavení proměných prostředí). Zajímavé jsou všechny. Doporučuji nastavit, tak aby první bylo suficent pam_unix, potom sufficient pam_ldap a potom required pam_deny. Prostě systém se pak podívá nejdřív do /etc/passwd, když uspěje prohlásí se za ok a jede na další sekci. Když ne tak se podívá na ldap server. A když ani tam nic nenajde, tak s pam_deny máte jistotu, že vás opravdu nepřihlásí.

Fajn vypadát, že se přihlásím, ale shell nedostanu.

To jste zapoměl na /etc/nsswitch.conf. Pam vás ověřil, ale systém vám těžko dá účet, když neví vaše uid. takže buď si přidáte záznam do /etc/passwd, což je naprd. Nebo si upravíte nsswitch.conf. Tady bych rád upozornil na malou zradu. Není dobré napsat k jednotlivým věcem files ldap (ldap files se vyhodnocuje stejně). Zkuste si rebootovat, a možná se vám nenamounmtuje filesystém. Bezpečnější je použít (tak jak to stojí v ukázce z Gentoo)
passwd:      files [NOTFOUND=continue] ldap
shadow:      files [NOTFOUND=continue] ldap
group:       files [NOTFOUND=continue] ldap
Pozor měl jsem tu místo =continue =return. To samozřejmě funguje úplně obráceně.

Furt to nejde. Poohlédněte se po tom, kde se nastavuje ve vaší distribuci cesta k ldap servru, a vršek stromu. Je to dost distro dependant. Debian to má například v /etc pro pam i nss zvlášť, zatímco Gentoo stčí jen jeden soubor.

Čtěte logy

slapd -d 4
píše dost zajímavých věcí, ale na zas tolik aby se v tom člověk ztratil. Pam sype dost informací do syslogu (/var/log/messages).

Všechno vyzkoušejte! Opravdu všechno. U nás se například objevil problém s proftpd, kterému se migrace moc nelíbila (ano bylo by lepší ho nastavit aby nativně umělo ldap, ale stejně všichno kterým se má ftp zpřístupnit potřebují i shell). Naštěstí to řešilo odkomentování jednoho řádku.

Samba je brazilský tanec, a doufejte, že u toho zůstane.

Doufám, že věci, které jsem zde napsal třeba jednou někomu pomohou s řešenícm chyb, nebo lépe, že se těch chyb ani nedopustí. Momentální výsledek mého snažení je, že to "docela" funguje, ale ješte zbývají "drobné" resty.

Teď jsem si všiml, že jsem zapoměl zmínit TLS. Tak tedy pokud ldap server posílá klientovi heslo, pak je heslo většinou hashované. Ale kdo má sniffer,Johna a rychlý stroj, tak ho hash moc netrápí. Proto je dobré rozjet si i tls.

       

Hodnocení: 100 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Vložit další komentář

24.5.2006 20:07 Filip Jirsák | skóre: 67 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Autentifikace pomocí LDAPu
Přidám jednu radu k updatům OpenLDAP: atributy v LDAP adresáři mají určený nějaký typ, každá třída (className) má navíc některé atributy povinné a některé volitelné – podle toho, kterých tříd je nějaký objekt, podle toho pak má soubor povinných a nepovinných atributů. OpenLDAP býval poměrně "tolerantní" k některým prohřeškům proti těmto pravidlům, ale postupně přitvrzuje. Takže někdy databáze funkční se starou verzí s novou již nenaběhne, protože jsou v ní prohřešky proti těmto pravidlům. Je tedy nutné adresář ze staré verze vyexportovat do LDIF a do nové naimportovat zpět. O takové změně je zpravidla zmínka v changelogu, ale kdo čte chanlegoly před emerge -u world, že…
24.5.2006 20:13 Honza "tux" Friesse | skóre: 15 | blog: Tuxův blog | Vyškov
Rozbalit Rozbalit vše Re: Autentifikace pomocí LDAPu
Když jsem se snažil LDAP nakonfigurovat, hodně mi pomohl dokument od Zdenka Burdy na jeho stránkách http://ldap.zdenda.com/.

Škoda, že jste tenhle zápisek nenapsal v době kdy jsem dělal bakalářku.
xxx avatar 24.5.2006 20:15 xxx | skóre: 42 | blog: Na Kafíčko
Rozbalit Rozbalit vše Re: Autentifikace pomocí LDAPu
Sakra, že jsem tuhle adresu neznal před týdnem.
Please rise for the Futurama theme song.
24.5.2006 20:32 Zdeněk Burda | skóre: 61 | blog: Zdendův blog | Praha
Rozbalit Rozbalit vše Re: Autentifikace pomocí LDAPu
Jestli chceš, poskytnu ti zdroják dokumentu v docbooku ať tam doplníš své texty. Nemám na to teď čas a moc by se mi hodilo kdyby v tom někdo pokračoval. To samé kerberos.zdenda.com :-) V případě spolupráce samozřejmě přidám k dokumentu dalšího autora abych si nenechával zásluhy sám pro sebe.
-- Nezdar není hanbou, hanbou je strach z pokusu.
24.5.2006 20:33 Zdeněk Burda | skóre: 61 | blog: Zdendův blog | Praha
Rozbalit Rozbalit vše Re: Autentifikace pomocí LDAPu
Taky by se hodilo kdyby to po mě někdo prošel, protože jsem většinu těch textů psal ve vlaku bez přístupu k netu, jen tak z toho na co jsem si zrovna vzpoměl :-)
-- Nezdar není hanbou, hanbou je strach z pokusu.
24.5.2006 23:54 Dan Ohnesorg | skóre: 29 | blog: Danuv patentovy blog | Rudná u Prahy
Rozbalit Rozbalit vše Re: Autentifikace pomocí LDAPu
Ona ta rada s usporou pismenek pres kratke dn neni az tak uplne koser.

Na dn je pozadavek, aby bylo celosvetove unikatni. Proto se jej doporucuje pro domenu example.com vytvaret ve formatu dc=example,dc=com (drive se pouzivalo o=example,c=com). Obecne duvody proc to tak delat jsou dva, jednak kdyz se budete spojovat s jinou organizaci a nebo uzivatele budou migrovat mezi vice instalacemi, budou mit stale svoje jmeno a nebude s nicim duplicitni. Druhy duvod je kvuli propojovani LDAP stromu. Jednu z moznych odpovedi serveru je, hele ja sice to na co se ptas nevim, ale zeptej se tady. A zjistit kde je tady je prave snazsi, kdyz koren ldapu je stejny jako domena.
I'm an Igor, thur. We don't athk quethtionth. Really? Why not? I don't know, thur. I didn't athk. TP -- Making Money
xxx avatar 25.5.2006 00:30 xxx | skóre: 42 | blog: Na Kafíčko
Rozbalit Rozbalit vše Re: Autentifikace pomocí LDAPu
Tak tokhle jsou přesně věci, které se člověk přesně z webových tutoriálů nedoví :(. možnosti spojování stromů jsem si přečetl a... ignoroval. To že by nás mohl pohltit nějaký větší strom mě nenapadlo. O té doméně jsem samozřejmě uvažoval, ale nevěděl jsem o tom proč by tam měla být, tak jsem ji prostě oříznul z dc=avc,dc=sh,dc=cvut,dc=com, což se bude dát, v případě potřeby, změnit ještě docela pohodlně.
Please rise for the Futurama theme song.
25.5.2006 02:00 Jan Kundrát (jkt) | skóre: 27 | blog: jkt | Praha - Bohnice
Rozbalit Rozbalit vše Re: Autentifikace pomocí LDAPu
Obecne cim driv to zmenis, tim min s tim budes mit prace. A teda nevim, mozna jsem jenom cet vic, ale IIRC byl podobny pozadavek v The LDAP HOWTO zminen celkem citelne :)
25.5.2006 12:56 zde | skóre: 9 | blog: Linuch | Brno
Rozbalit Rozbalit vše Re: Autentifikace pomocí LDAPu
Není občasný rsync /etc/(passwd|group)* jednodušší a hlavně výrazně spolehlivější? Alespoň dokud nebude k dispozici něco trochu stabilnějšího než je OpenLdap, který leakuje, při častých updatech mrší indexy, má nesmyslný systém ACLek, a když náhodou zrovna běží tak je pomalej jak šnek?
Táto, ty de byl? V práci, já debil.
25.5.2006 13:04 Jan Kundrát (jkt) | skóre: 27 | blog: jkt | Praha - Bohnice
Rozbalit Rozbalit vše Re: Autentifikace pomocí LDAPu
Neni. Par systemu mi ted takhle funguje (+ navic blesmrt kontrola navic, aby se nesynchronizovalo rootovo heslo), nicmene je to zlo. Clovek musi cekat na propagaci hesla a navic je to proste fuj.
25.5.2006 16:29 Jiří (BoodOk) Kadeřávek | skóre: 19 | blog: BoodOk | Brno
Rozbalit Rozbalit vše Re: Autentifikace pomocí LDAPu
Souhasim. Ja bych ale spise videl potiz v tom, co odkud a kam synchronizovat. Pokud si je admin jist, ze upravuje ucty na jednom centralnim serveru, je to OK reseni. V opacnem pripade ma docela komplikovany problem a jeho reseni se jmenuje OpenLDAP, obecneji pak Directory Server.
Věda má v sobě určitou zpupnost, že čím dokonalejší techniku vyvineme, čím více se dozvíme, tím lepší budou naše životy.
25.5.2006 13:48 Honza "tux" Friesse | skóre: 15 | blog: Tuxův blog | Vyškov
Rozbalit Rozbalit vše Re: Autentifikace pomocí LDAPu
On není jen OpenLDAP. Fedora Open Directory Server je free, SUN Directory Server je free, a Apache má taky jakýsi svůj LDAP server.

Jinak pokud má člověk vysloveně odpor k LDAP,stačí mu pouze centralizace autentifikací a nevadí mu menší bezpečnost, tak je řešení NIS. Taky je řešení autentifikace proti Sambě.
25.5.2006 15:46 Filip Jirsák | skóre: 67 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Autentifikace pomocí LDAPu
Apache má taky jakýsi svůj LDAP server
Spíš bych řekl "bude mít", zatím to podle jejich webu vypadá tak na alfa verze…
25.5.2006 16:08 Honza Jaroš | skóre: 6 | blog: moje_strana_plotu | Bohnice
Rozbalit Rozbalit vše Notebooky
Zajímavý článek, díky za něj. Jakožto člověka, který o tom ví asi tak to co vy před týdnem ;-) by mě zajímalo: jde použít přihlašování přes LDAP i u notebooků, které nemusí být 100% času online? To jest je možno nějak nacachovat údaje o uživateli pro případ přihlašování v terénu?
25.5.2006 18:24 Honza Jaroš | skóre: 6 | blog: moje_strana_plotu | Bohnice
Rozbalit Rozbalit vše Re: Notebooky
Částečně si odpovím sám, popis nastavení LDAP ve spolupráci s Kerberem tak, aby fungovalo i offline přihlašování, je zde.
25.5.2006 18:30 Honza Jaroš | skóre: 6 | blog: moje_strana_plotu | Bohnice
Rozbalit Rozbalit vše Re: Notebooky
A jak tak koukám, problematika cachování je zmíněna na výše uvedeném http://ldap.zdenda.com/
25.5.2006 16:30 lefti | skóre: 18 | blog: OneAndOnlyTrueBlog
Rozbalit Rozbalit vše Re: Autentifikace pomocí LDAPu
Clanek se mi hodne libil asi si s tim taky zkusim pohrat. btw jaky je vztah Microsoft Active Directory a LDAP?
25.5.2006 17:55 Honza "tux" Friesse | skóre: 15 | blog: Tuxův blog | Vyškov
Rozbalit Rozbalit vše Re: Autentifikace pomocí LDAPu
Jen zběžně. Oba jsou to zjednodušenné implementace protokolu X.500, který je taková parní mlátička. LDAP je o trošku menší. Nicméně s X.500 jsou oba kompatibilní, takže jsou kompatibilní i mezi sebou.

Zjednodušeně a nepřesně řečeno. AD je komerční uzavřená implementace LDAPu.

Záleží hodně na schématech, které má LDAP k dispozici. Teoreticky by mělo být možné nahradit LDAPem celé AD, pokud by byla ta schémata. A přesně tohle má být v Sambě 4 (bude využívat OpenLDAP).

To je čistě o tom, co je AD v porovnání s LDAP. Jenže AD je ještě nabalenej Kerberos, PDC a bůhvíco ještě.

Založit nové vláknoNahoru

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.