Kategória: Linux a sieť

Zmenené: 6. január 2011

Správa používateľov LDAP

V nedávnom článku (Prihlasovanie a LDAP) som písal ako nainštalovať server LDAP a sprevádzkovať účty uložené na centrálnom serveri. Okrajovo som spomenul aj ako vytvárať používateľov, či skupiny, ale ak má byť server naozaj využívaný, je treba správu účtov nejako zjednodušiť, napríklad pomocou skriptov, či webového rozhrania…

V článku predstavím dva nástroje, ktoré ma na správu používateľských účtov oslovili najviac, ale poskytnem aj krátky popis, ako ich používať, a najmä ako ich používať spoločne. Prvý nástroj je vlastne sada nástrojov z balíka ldapscripts. Tieto ma nadchli najmä preto, že to sú shellové skripty, ktoré si dokážem aj sam upraviť, prispôsobiť, či rozšíriť. Svojimi možnosťami ma nadchli, ale chýba im jedna vec, ktorá je pre konzolové nástroje príznačná. Touto jedinou chybou je, že najmä pre menej skúseného, či začínajúceho používateľa neposkytujú žiadnu barličku, ktorá by ho naviedla. To však plne nahradí webový nástroj LDAP account manager z balíka ldap-account-manager.

Schéma Samba3

Začnem trochu z iného konca. Keď si pripravujete adresár LDAP, je dobré si vopred premyslieť, čo do neho chcete ukladať (na čo ho chcete využívať). Nie je to preto, že by ste organizáciu nemohli neskôr zmeniť, ale preto, že neskoršia zmena použitých objektov v adresárovom strome môže mať za následok prerobenie celého obsahu adresára, prípadne dopĺňanie informácií do existujúcich účtov.

Aj preto celý článok začnem importom schémy na správu účtov Samba, len ako ukážku, že do LDAP možno importovať schému, ktorú nebudete zatiaľ využívať, ale máte to v pláne niekedy v budúcnosti. Nebudem tu popisovať nastavenie Samby samotnej, ani import schémy, len spomeniem ako schému Samby, ktorá nie je súčasťou štandardnej inštalácie, získať. Je však dostupná v balíku samba-doc:

aptitude install samba-doc

Samotná schéma je komprimovaná, takže ju pred akýmikoľvek pokusmi treba najprv rozbaliť, napríklad do adresára /etc/ldap/schema:

zcat /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz > /etc/ldap/schema/samba3.schema

Po prekopírovaní ju už možno importovať postupom, ktorý som popísal v článku Prihlasovanie a LDAP. Na rozdiel od spomínaného článku však má schéma samby trochu viac závislostí:

include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/inetorgperson.schema

include /etc/ldap/schema/samba3.schema

Zvyšok postupu je rovnaký…

LAM

Najprv LDAP Account Manager, skrátene LAM. Je to webové rozhranie, ktoré si dovolím označiť za veľmi podarené, ktoré je dostupné v dvoch verziách, základná verzia je GPL, verzia Pro je platená a nie je GPL . Na základné úlohy však GPL verzia plne postačí, vzhľadom k tomu, že pomocou tohoto rozhrania je možné spravovať:

  • štandardné účty;
  • štandardné skupiny;
  • účty strojov;
  • účty Samba;
  • domény Samba
  • a niektoré ďalšie.

Inštalácia

Samotná inštalácia nevyžaduje žiadne špeciálne kroky a možno nainštalovať verziu zo systému APT:

aptitude install ldap-account-manager

Ak sa pozriete na dostupné balíky lepšie, iste nájdete aj balík ldap-account-manager-lamdaemon, ktorý využijete najmä ak budú mať používatelia domovské adresáre (HOME) na serveri, kde beží LAM. Samotná inštalácia nevyžaduje žiadne ďalšie kroky a, v prípade webového servera apache, je prakticky ihneď pripravený na použitie pomocou adresy http://meno_servera/lam.

Nastavenie

Pred prvým použitím je dobré urobiť niektoré nastavenia, ku ktorým sa môžete dosť pomocou odkazu LAM configuration, ktorý v sebe skrýva ďalšie dve možnosti, z ktorých teraz treba nasledovať Edit server profiles . Pred úpravou profilov servera je možná ich úprava (premenovanie, pridanie a podobne) alebo priame prihlásenie do zvoleného profilu.

Nastavenia profilu servera

Predvolené prihlasovacie heslo profilu lam je lam a po jeho zadaní sú sprístupnené voľby nastavenia servera. Za najzaujímavejšie voľby považujem nastavenie:

  • adresy servera;
  • prípony stromu (dc=skk);
  • predvoleného jazyka (čeština je dobrá voľba);
  • zoznamu platných používateľov
  • a nové heslo.

Pri dvoch posledných sa trochu zastavím. Môžete si zvoliť hľadanie v LDAP, ale to je pri prázdnom strome dosť nepraktické alebo môžete použiť statický zoznam a do zoznamu platných používateľov pridať predvolený administrátorský účet:

cn=admin,dc=skk
Nastavenie prístupu LAM

Tip

Nastavené heslo ale nie je heslom pre vybraný účet, je heslom do tohto rozhrania nastavení daného profilu servera. Na prihlásenie do rozhrania správy účtov bude použité skutočné heslo zadaného účtu LDAP.

lam_03.png

Nastavenie modulov LAM

Po uložení nastavení je zobrazenie presmerované späť na prihlasovaciu obrazovku, kde už možno zadať administrátorské heslo účtu admin, nastavené pri inštalácii servera LDAP. Považujem za dobré ešte nič nemeniť, rovno sa odhlásiť a vrátiť sa do nastavenia profilov servera. Kde je možné na záložke Typy účtov zvoliť, ktoré typy účtov budú spravované pomocou LAM.

Pokojne môžete ponechať východzie nastavenie, ale nezabudnite na správne nastavenie prípon stromu, teda všade zmeniť dc=my-domain,dc=com na dc=skk. A prípadne aj premenovať položky ou na niečo slovenskejšie (bez diakritiky), ale to nie je nutné a často ani dobré. Ak vás zaujme zoznam atribútov, tak sa jedná o stĺpce zoznamu, ktoré budú zobrazené v LAM.

Navštívte aj záložku Moduly, kde treba skontrolovať/pridať v časti Používatelia modul Stroje (hostObject). Nemusíte sa báť a pokojne pridávajte a odoberajte moduly podľa vlastnej úvahy, platí len jedna podmienka modul označený hviezdičkou musí byť vždy práve jeden. Ak váš výber nejakým spôsobom nebude vyhovovať, LAM vás na to upozorní.

Určite nezabudnite nastaviť aj možnosti vo Všeobecných nastaveniach, napríklad obmedziž IP adresy strojov, z ktorých sa možno k LAM prihlásiť, či nastaviť si nové heslo…

Po vyladení nastavení nastal čas na opätovné prihlásenie do LAM a vytvorenie chýbajúcich častí stromu, na ktoré LAM upozorňuje pomocou tlačidla Vytvoriť. No a konečne otestovanie vytvoreného nastavenia pomocou menu Nástroje ‣ Testy ‣ Test schémy.

lam_04.png

Testy modulov LAM

Používanie

Myslím si, že používanie je natoľko intuitívne, že ho popisovať netreba, ale pre istotu popíšem ako vytvoriť účet:

Upozornenie

Platí len jedno pravidlo, pred vytváraním položiek pre stroje a používateľov musíte mať vytvorenú aspoň jednu položku, na ktorej účet závisí (systémovú skupinu, doménu Samba, …)

  1. vyberte záložku Skupiny;
  2. vyplňte políčka (povinné je len meno skupiny);
  3. uložte

Prípadne zopakujte pre doménu/skupinu Samba a po ich vytvorení skupiny/skupín možno vytvoriť nový účet:

  1. vyberte záložku Používatelia;
  2. kliknite na tlačidlo Nový používateľ;
  3. vyplňte príslušné políčka na záložke Osobné (povinné je len priezvisko);
  4. prípadne vyplňte políčka na ďalších záložkách;
  5. vytvorte používateľovi heslo pomocou tlačidla Nastaviť heslo;
  6. uložte

Postupným preskúmavaním možností zistíte, že si môžete pripraviť profily položiek, ktoré budú mať niektoré hodnoty prednastavené, čím si môžete výrazne uľahčiť prácu. A to ani nehovorím o možnosti importovať viacero položiek naraz, pomocou importu súboru vo formáte CVS.

Pridávané účty sa pomerne prehľadne zobrazujú v tabuľke v jednotlivých záložkách. Zobrazené položky možno jednoducho filtrovať, pričom filter neberie do ohľadu veľkosť písmen a umožňuje použiť ako zástupný znak hviezdičku, napr. f* vo filtre ID zobrazí všetky účty, ktorých ID začína na f. Pre istotu spomeniem, nepokúšajte sa takto filtrovať UID ani GID, tam treba zadať presné číslo.

ldapsripts

Práca pomocou grafického, či webového rozhrania je iste pohodlná, ale kto raz vyskúšal shell vie, že je neoceniteľný, najmä svojou možnosťou skriptovania. Práve na tento účel sú vhodné nástroje balíka ldapscripts.

Jedná sa o sadu skriptov napísaných v BASH (čo oceňujem najviac), ktoré poskytujú správu položiek v LDAP pre:

  • účty;
  • skupiny;
  • stroje.

Inštalácia

Na rozdiel od LAM, neposkytuje možnosť správy domén/skupín Samby, ale vzhľadom k mojim potrebám to nie je problém (do Samby má u mňa prístup len malá skupina používateľov). Inštalácia je jednoduchá, z APT:

aptitude install ldapscripts sharutils

Nastavenie

Ak balík inštalujete na stroji, kde máte nastavené NSS cez LDAP, nepotrebujete ani nič nastavovať, pretože všetky základné nastavenia preberá z /etc/libnss-ldap.conf a z /etc/ldap/ldap.conf, a tak skoro všetko funguje bez zásahu tak, ako má. Jediná vec, ktorá mi robila problémy, bolo generovanie hesla nového používateľa a jeho následné zistenie. Prvý problém bol spôsobený nedostatkom náhodnosti (entropie) pre /dev/random, tak som nastavil v /etc/ldapscripts/ldapscripts.conf predvolený generátor na pwgen:

PASSWORDGEN="pwgen -s"

Samozrejme, pwgen musí byť nainštalovaný. Druhý problém, teda že som nevedel vygenerované heslo je odstrániteľný rovnako jednoducho, pomocou:

RECORDPASSWORDS="yes"
PASSWORDFILE="/root/ldapscripts_passwd.log"

Všimnite si, že záznam s heslami ukladám do adresára /root, aby bol chránený pred nepovolanými osobami, pretože inak by som ho musel vždy zmazať, na čo sa ľahko zabúda.

Použitie

Použitie týchto skriptov je rovnako ľahké, ako ich inštalácia. Pre každý typ položky (user, group, machine) balík poskytuje štyri nástroje, ktorých názov je myslím samo-vysvetľujúci:

  • ldapadd*
  • ldapdelete*
  • ldaprename*
  • ldapmodify*

Okrem nich sú k dispozícii ešte špecifické nástroje:

  • ldapfinger, ldapinit, ldapgid, ldapid a lsldap

Nástroj ldapinit vytvorí východziu štruktúru adresára, lsldap vypíše obsah adresára a zvyšné tri robia to čo ich unixové náprotivky, len to robia nad LDAP. Použitie nástrojov je dobre zdokumentované v manuálových stránkach a ich používanie je priamočiare, vytvorenie skupiny a používateľa zaistia tieto dva príkazy:

ldapaddgroup meno_skupiny
ldapadduser meno_požívateľa meno_skupiny

Šablóny

Skutočná sila nástroj ldapscripts sa ukáže, keď spoznáte šablóny. Šablóny sú vzory vytváraných položiek a možno si ich prispôsobiť vlastným potrebám. Vzorové šablóny sú nainštalované v adresári /usr/share/doc/ldapscripts/examples/, takže stačí príslušné šablóny prekopírovať, napr. do /etc/ldapscripts/, prispôsobiť a zapnúť jej použitie. Príklad šablóny používateľského LDAP účtu môže vyzerať takto:

dn: uid=<user>,<usuffix>,<suffix>
uid: <user>
objectClass: top
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
objectClass: hostObject
cn: <ask>
uidNumber: <uid>
gidNumber: <gid>
homeDirectory: <home>
loginShell: <shell>
gecos: <user>
description: User account
 host: *

Myslím, že také vytvorenie šablóny je jasné. Hodnoty v špicatých zátvorkách sú nahradené príslušnými hodnotami. Za zmienku stojí hodnota <ask>, ktorá udáva aby sa nástroj pri vytváraní účtu na hodnotu tohoto atribútu spýtal. Ja však dávam prednosť tomu, aby sa na nič nepýtal a radšej použil nejaké predvolené hodnoty, tie sú bez špicatých zátvoriek. Ktoré šablóny majú byť použité možno nastaviť v /etc/ldapscripts/ldapscripts.conf:

GTEMPLATE=""
UTEMPLATE="/etc/ldapscripts/ldapadduser.template"
MTEMPLATE=""

Toto nastavenie má za následok, že na vytvorenie skupín a strojov sú použité predvolené šablóny, ale na používateľský účet je použitá šablóna v zadanom súbore.

Spojenie

Oba tieto nástroje (lam i ldapscripts) sa stanú ešte užitočnejšie, ak ich spojíte. Jasne, nedokážete vytvárať/meniť domény Samby, ale dokážete všetko ostatné. Jednoducho si vytvorte v LAM aspoň jeden účet z každého typu. Vyplňte všetky údaje, ktorá chcete mať predvolene vyplnené a potom si ich vypíšte pomocou lsldap.

V tomto výpise uvidíte všetky atribúty (a prípadné hodnoty), ktoré LAM očakáva, a tak si stačí prispôsobiť šablóny. Pri tomto iste oceníte výpisy vo /var/log/ldapscripts.log, ktoré pomôžu pri odstraňovaní prípadných nedostatkov šablóny. Pri všetkom som narazil vlastne len jeden problém, ktorý spočíval v rozdielnom pomenovaní stromu strojov (ou=Hosts,dc=skk).

Dobrým nápadom je aj zosúladenie hodnôt rozsahu ID používateľov, skupín i strojov.