abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 21:55 | Nová verze

    Byl vydán Fedora Asahi Remix 40, tj. linuxová distribuce pro Apple Silicon vycházející z Fedora Linuxu 40.

    Ladislav Hagara | Komentářů: 4
    včera 20:22 | IT novinky

    Představena byla služba Raspberry Pi Connect usnadňující vzdálený grafický přístup k vašim Raspberry Pi z webového prohlížeče. Odkudkoli. Zdarma. Zatím v beta verzi. Detaily v dokumentaci.

    Ladislav Hagara | Komentářů: 0
    včera 12:55 | Nová verze

    Byla vydána verze R14.1.2 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5). Přehled novinek v poznámkách k vydání, podrobnosti v seznamu změn.

    JZD | Komentářů: 0
    7.5. 18:55 | IT novinky

    Dnešním dnem lze již také v Česku nakupovat na Google Store (telefony a sluchátka Google Pixel).

    Ladislav Hagara | Komentářů: 10
    7.5. 18:33 | IT novinky

    Apple představil (keynote) iPad Pro s čipem Apple M4, předělaný iPad Air ve dvou velikostech a nový Apple Pencil Pro.

    Ladislav Hagara | Komentářů: 2
    7.5. 17:11 | Nová verze

    Richard Biener oznámil vydání verze 14.1 (14.1.0) kolekce kompilátorů pro různé programovací jazyky GCC (GNU Compiler Collection). Jedná se o první stabilní verzi řady 14. Přehled změn, nových vlastností a oprav a aktualizovaná dokumentace na stránkách projektu. Některé zdrojové kódy, které bylo možné přeložit s předchozími verzemi GCC, bude nutné upravit.

    Ladislav Hagara | Komentářů: 0
    7.5. 13:44 | Komunita

    Free Software Foundation zveřejnila ocenění Free Software Awards za rok 2023. Vybráni byli Bruno Haible za dlouhodobé příspěvky a správu knihovny Gnulib, nováček Nick Logozzo za front-end Parabolic pro yt-dlp a tým Mission logiciels libres francouzského státu za nasazování svobodného softwaru do praxe.

    Fluttershy, yay! | Komentářů: 0
    7.5. 13:11 | IT novinky

    Před 10 lety Microsoft dokončil akvizici divize mobilních telefonů společnosti Nokia a pod značkou Microsoft Mobile ji zanedlouho pohřbil.

    Ladislav Hagara | Komentářů: 2
    6.5. 21:33 | Komunita

    Fedora 40 release party v Praze proběhne v pátek 17. května od 18:30 v prostorách společnosti Etnetera Core na adrese Jankovcova 1037/49, Praha 7. Součástí bude program kratších přednášek o novinkách ve Fedoře.

    Ladislav Hagara | Komentářů: 5
    6.5. 21:11 | IT novinky

    Stack Overflow se dohodl s OpenAI o zpřístupnění obsahu Stack Overflow pro vylepšení OpenAI AI modelů.

    Ladislav Hagara | Komentářů: 1
    Podle hypotézy Mrtvý Internet mj. tvoří většinu online interakcí boti.
     (63%)
     (7%)
     (14%)
     (16%)
    Celkem 139 hlasů
     Komentářů: 10, poslední včera 17:35
    Rozcestník

    Kerberos a SSO: Jednotné účty v LDAP

    20. 5. 2008 | Jiří Mlíka | Bezpečnost | 15210×

    Další díl seriálu o centrální správě účtů popisuje jednoduchou konfiguraci LDAP (LDAP schema, Directory Information Tree), včetně vytvoření databáze, uživatelů a skupin a nastavení klienta.

    Obsah

    Úvod

    link

    Že lze sdílet informace o uživatelských účtech pomocí LDAPu není žádná novinka. Existuje spousta návodů, jak používat LDAP přímo pro autentizaci do systému pomocí PAM modulu pam_ldap nebo pro autentizaci na webu pomocí autentizačního modulu Apache auth_ldap. Další skupina návodů se soustředí na využítí LDAPu jako úložiště účtů pro Sambu. Tyto návody jsou fajn, zavádí však pro nás zbytečnou míru složitosti tím, že se odkazují na další technologie. Nakonfigurujeme si superjednoduše LDAP server, který nebude zatím sloužit k ničemu jinému než ke sdílení informací, které obvykle na samostatném systému najdeme v souborech /etc/passwd a /etc/group. Na straně serveru použijeme OpenLDAP.

    Oblíbenou součástí těchto návodů bývá vytvoření základní struktury Directory Information Tree importem dat ve formátu LDIF. Tak to my tedy rozhodně dělat nebudeme. My to (s)prostě "naklikáme". Existují nástroje, které přímo podporují vytváření uživatelských účtů v LDAPu (např. Directory Administrator, LUMA, phpLDAPadmin). Já však použiji obecný LDAP editor JXplorer tak, aby popisované postupy byly zcela nezávislé na konkrétním softwaru. Pokud by náhodou někdo nevěděl, co to ten LDAP vlastně je, doporučuji přečíst si článek Lukáše Cirkvy Adresářové služby, který vyšel na AbcLinuxu.cz.

    LDAP schema

    link

    Objekty, které budeme do LDAPu ukládat, budou představovat uživatelské účty a skupiny. Každý uživatelský účet má v /etc/passwd několik důležitých atributů (analogicky skupiny v /etc/group). V LDAPu je struktura objektů a formát jejich atributů popsán pomocí tzv. schema. Definice schemat jsou uloženy v záhadných souborech, na které se při konfiguraci serveru odkážeme. Definujeme tak možné typy objektů, které se v našem adresáři mohou objevit. Nemusíme jim příliš rozumět, stačí, když je budeme umět použít. Umět použít znamená vědět, na které z těchto souborů se musíme odkázat při konfiguraci našeho LDAP serveru. Definice všech užitečných schema se nainstalují spolu s OpenLDAP serverem.

    Schema definující objekty a atributy UNIXových účtů a skupin se jmenuje nis.schema. Toto schema je dále zavislé na core.schema a cosine.schema, proto je v naší konfiguraci použijeme také. Pro uložení uživatelských účtů použijeme objekty definované pomocí tříd posixAccount a inetOrgPerson (definováno v inetorgperson.schema). Objekty třídy posixGroup použijeme pro skupiny.

    Pozn.: Kdo zodpoví otázku, proč nemůžeme použít pro uživateský účet samotnou třídu possixAccount dostane jedničku! :-)

    Directory Information Tree

    link

    Před tím, než náš adresář budeme plnit uživatelskými účty a skupinami, musíme navrhnout jeho strukturu. Tzn. navrhnout Directory Information Tree (DIT). Vytvoříme jednoduchý DIT, který bude mít ve svém kořeni dvě organizační jednotky - jednotku ou=people,dc=firma,dc=local, kam budme ukládat uživatelské účty, a jednotku ou=groups,dc=firma,dc=local, kam budem ukládat skupiny.

    Konfigurace serveru

    link

    Instalace softwaru

    link

    Nainstalujeme tyto balíky (na Mandrivě):

    • openldap
    • openldap-clients
    • openldap-servers
    • libldap

    Já, protože jsem se rozhodl adresář spravovat pomocí grafického nástroje, jsem ještě nainstaloval LDAP editor JXplorer a samozřejmě Javu, bez které JXplorer neběží.

    Konfigurace

    link

    Konfigurace OpenLDAP serveru se nachází v souboru /etc/openldap/slapd.conf a může být i poměrně rozsáhlá a složitá. My však budeme tak zákeřní, že nenakonfigurujeme prakticky nic a ono to přesto poběží. Netvrdím, že ideálně, ale pro naše účely to stačit bude.

    # Soubor /etc/openldap/slapd.conf na stroji srv-infra1.firma.local
    
    include /usr/share/openldap/schema/core.schema
    include /usr/share/openldap/schema/cosine.schema
    include /usr/share/openldap/schema/inetorgperson.schema
    include /usr/share/openldap/schema/nis.schema
    
    pidfile         /var/run/ldap/slapd.pid
    argsfile        /var/run/ldap/slapd.args
    
    database        bdb
    suffix          "dc=firma,dc=local"
    rootdn          "uid=ldapadmin,dc=firma,dc=local"
    rootpw          MojeLdapAdminHeslo
    
    directory       /var/lib/ldap
    

    Na začátku souboru jsme pomocí direktivy include zahrnuli do konfigurace všechna potřebná schemata. Jako typ databáze (database) zvolíme doporučenou Berkeley DB (bdb). Přípona (suffix) identifikující naši databázi bude dc=firma,dc=lokal, což odpovídá, jak je zvykem, jménu naší DNS domény firma.local. Administrátor se bude k LDAP serveru přihlasovat jako "uid=ldapadmin,dc=firma,dc=local" s heslem MojeLdapAdminHeslo. Vlastní databázi pak najdeme v adresáři /var/lib/ldap.

    Server nastartujeme příkazem:

    [root@srv-infra1 ~]# service ldap start

    ...jeho automatické spuštění po startu počítače zajistíme příkazem:

    [root@srv-infra1 ~]# chkconfig ldap on

    ... a zkontrolujeme příkazem:

    [root@srv-infra1 ~]# chkconfig --list | grep ldap
    ldap    0:off   1:off   2:on    3:on    4:on    5:on    6:off

    Vytvoření databáze

    link

    V úvodu jsem slíbil, že obsah databáze vyrobíme klikáním, pojďme tedy na to.

    Spustíme LDAP editor (v mém případě JXplorer) a připojíme se k LDAP serveru.

    01 ldap server login

    JXplorer trošku nadává, protože v databázi nic není. Tím se nenecháme zastrašit a směle pokračujeme dál.

    02 error1

    Vytvoříme nový objekt přímo pod uzlem local. Bude jím objekt dc=firma,dc=local třídy Organization a třídy dcObject. Nenechte se zmást tím, že v předchozím screenshotu je již teď tento objekt vidět. Pojmenovali jsme tak náš adresář v konfiguračním souboru. Žádná data vztahující se k tomuto uzlu zatím v adresáři nejsou.

    04 organization

    Chytrý editor ještě automaticky přidá třídu top. Vyplníme povinný atribut o. Ostatní atributy můžeme ponechat prázdné.

    05 organization atributy

    Pod uzlem dc=firma,dc=local vytvoříme organizační jednotku ou=people,dc=firma,dc=local (objekt třídy organizationalUnit), kam budeme ukládat uživatelské účty. Žádné extra atributy vyplňovat nemusíme.

    06 ou people

    Analogicky vytvoříme organizační jednotku ou=groups,dc=firma,dc=local pro skupiny.

    Struktura našeho DIT je hotova. Můžeme začít vytvářet uživatele a skupiny.

    Vytvoření uživatelů a skupin

    link

    Pár pravidel

    link

    Před vlastním zakládáním účtů a skupin uděláme několik rozhodnutí ohledně designu naší databáze:

    • UID 1 až 1 000 rezervujeme pro lokální uživatelské účty.
    • GID 1 až 1 000 rezervujeme pro lokální skupiny.
    • Pro uživatelské účty vyhradíme UID a 10 001 až 19 999.
    • Pro skupiny uživatelů vyhradíme GID 20 001 až 29 999.
    • Uživatelská jména budeme psát ve formátu jmeno_prijmeni (bez diakritiky). Uživatelská jména musí být samozřejmě unikátní. Pokud by se nám náhodou sešli dva uživatelé stejného jména, můžeme je rozlišit třeba číslicí na konci uživatelského jména.
    • DN uživatelského účtu bude ve tvaru uid=*,ou=people,dc=firma,dc=local, kde atribut uid bude představovat uživatelské jméno.
    • DN skupiny bude ve tvaru cn=*,ou=groups,dc=firma,dc=local, kde atribut cn bude představovat jméno skupiny.
    • Do atributu cn uživatelského účtu budeme ukládat jméno a příjmení bez diakritiky.
    • Do atributu sn uživatelského účtu budeme ukládat příjmení s diakritikou.
    • Do atributu givenName uživatelského účtu budeme ukládat křestní jméno s diakritikou.
    • Do atributu displayName uživatelského účtu budeme ukládat křestní jméno a příjmení s diakritikou.
    • GID primární skupiny bude u všech uživatelů 20 0001 a bude patřit skupině firma_users, kterou za chvíli vytvoříme. Nepoužíváme koncept "user private group".

    Uživatelské účty

    link

    Vytvoříme uživatelský účet pro uživatele Františka Hnipírda. Použijeme k tomu zmíněné třídy posixAccount a inetOrgPerson.

    08 frantisek hnipirdo

    Vyplníme další povinné atributy cn, gidNumber, homeDirectory, uidNumber. Nepovinný atribut loginShell nastavíme na obligátní /bin/bash.

    08 frantisek hnipirdo atributy

    Aby mu v adresáři nebylo smutno, vytvoříme analogicky uživatelský účet i pro jeho kolegu Pepu Vosáhla.

    Skupiny

    link

    Vytvoříme skupinu firma_users, jejímiž členy budou všichni uživatelé.

    12 firma users

    12 firma users atributy

    Dále vytvoříme skupiny vyroba a finance; jejich členy budou pouze uživatelé z odpovídajících podnikových útvarů.

    Všiměte si, že členství ve skupině se zadává pomocí atributu memberUid. Tento atribut u objektu třídy posixGroup uvedeme tolikrát, kolik máme členů dané skupiny.

    Přeci jenom dojde na LDIF

    link

    Celá naše databáze ve formátu LDIF vypadá takto:

    # Organizace
    dn: dc=firma,dc=local
    objectClass: organization
    objectClass: dcObject
    objectClass: top
    dc: firma
    o: Firma

    # Organizační jednotky
    dn: ou=people,dc=firma,dc=local
    objectClass: organizationalUnit
    objectClass: top
    ou: people

    dn: ou=groups,dc=firma,dc=local
    objectClass: organizationalUnit
    objectClass: top
    ou: groups

    # Uživatelské účty
    dn: uid=frantisek_hnipirdo,ou=people,dc=firma,dc=local
    objectClass: inetOrgPerson
    objectClass: organizationalPerson
    objectClass: posixAccount
    objectClass: person
    objectClass: top
    cn: Frantisek Hnipirdo
    displayName:: RnJhbnRpxaFlayBIbmlww61yZG8=
    gidNumber: 20001
    givenName:: RnJhbnRpxaFlaw==
    homeDirectory: /home/frantisek_hnipirdo
    loginShell: /bin/bash
    sn:: SG5pcMOtcmRv
    uid: frantisek_hnipirdo
    uidNumber: 10001

    dn: uid=josef_vosahlo,ou=people,dc=firma,dc=local
    objectClass: inetOrgPerson
    objectClass: organizationalPerson
    objectClass: posixAccount
    objectClass: person
    objectClass: top
    cn: Josef Vosahlo
    displayName:: Sm9zZWYgVm9zw6FobG8=
    gidNumber: 20001
    givenName: Josef
    homeDirectory: /home/josef_vosahlo
    loginShell: /bin/bash
    sn:: Vm9zw6FobG8=
    uid: josef_vosahlo
    uidNumber: 10001

    # Skupiny
    dn: cn=firma_users,ou=groups,dc=firma,dc=local
    objectClass: posixGroup
    objectClass: top
    cn: firma_users
    gidNumber: 20001
    memberUid: frantisek_hnipirdo
    memberUid: josef_vosahlo

    dn: cn=vyroba,ou=groups,dc=firma,dc=local
    objectClass: posixGroup
    objectClass: top
    cn: vyroba
    gidNumber: 20003
    memberUid: frantisek_hnipirdo

    dn: cn=finance,ou=groups,dc=firma,dc=local
    objectClass: posixGroup
    objectClass: top
    cn: finance
    gidNumber: 20002
    memberUid: josef_vosahlo

    Odskok do Kerbera

    link

    Pro oba pány vytvoříme také Kerberos principal. Spustíme utilitu kadmin.

    [root@srv-infra1 ~]# kadmin -p krbadmin/admin@FIRMA.LOCAL
    Authenticating as principal krbadmin/admin@FIRMA.LOCAL with password.
    Password for krbadmin/admin@FIRMA.LOCAL:

    Nyní se nacházíme v příkazové řádce kadmin. Principaly vytvoříme nám již známým příkazem addprinc.

    kadmin: addprinc frantisek_hnipirdo
    WARNING: no policy specified for frantisek_hnipirdo@FIRMA.LOCAL; defaulting to no policy
    Enter password for principal "frantisek_hnipirdo@FIRMA.LOCAL":
    Re-enter password for principal "frantisek_hnipirdo@FIRMA.LOCAL":
    Principal "frantisek_hnipirdo@FIRMA.LOCAL" created.
    kadmin: addprinc josef_vosahlo
    WARNING: no policy specified for josef_vosahlo@FIRMA.LOCAL; defaulting to no policy
    Enter password for principal "josef_vosahlo@FIRMA.LOCAL":
    Re-enter password for principal "josef_vosahlo@FIRMA.LOCAL":
    Principal "josef_vosahlo@FIRMA.LOCAL" created.

    Obsah databáze si pro kontrolu vypíšeme.

    kadmin: listprincs
    K/M@FIRMA.LOCAL
    frantisek_hnipirdo@FIRMA.LOCAL
    josef_vosahlo@FIRMA.LOCAL
    kadmin/admin@FIRMA.LOCAL
    kadmin/changepw@FIRMA.LOCAL
    kadmin/history@FIRMA.LOCAL
    kadmin/srv-infra1.firma.local@FIRMA.LOCAL
    krbadmin/admin@FIRMA.LOCAL
    krbtgt/FIRMA.LOCAL@FIRMA.LOCAL
    user0@FIRMA.LOCAL

    Konfigurace klienta

    link

    Instalace softwaru

    link

    Nainstalujeme balíky:

    • openldap-clients
    • openldap
    • libldap
    • nss_ldap

    Konfigurace

    link

    Konfigurací Name Service Switch v souboru /etc/nsswitch.conf se Linux se dá snadno přesvědčit, aby hledal informace o uživateli kromě lokálních souborů také v adresáři LDAP. Seznam zdrojů u položek passwd: a group: obohatíme o zdroj ldap.

    # Soubor /etc/nsswitch.conf na stroji pc1.firma.local
    
    passwd:         files ldap
    shadow:         files
    group:          files ldap
    
    hosts:          files dns
    networks:       files
    
    services:       files
    protocols:      files
    rpc:            files
    ethers:         files
    netmasks:       files
    netgroup:       files
    publickey:      files
    
    bootparams:     files
    automount:      files
    aliases:        files
    

    Samozřejmě musíme říct, na kterém serveru se adresář nachází. To provedeme v souboru /etc/ldap.conf.

    # Soubor /etc/ldap.conf na stroji pc1.firma.local

    host srv-infra1.firma.local
    base dc=firma,dc=local

    Než se uživatel bude moci přihlásit, musíme zajistit, aby měl na stroji, ke kterému se přihlašuje, domácí adresář. Adresář vytvoříme automaticky při prvním přihlášení uživatele pomocí PAM modulu pam_mkhomedir. Upravíme konfigurační soubor /etc/pam.d/system-auth.

    # Soubor /etc/pam.d/system-auth na stroji pc1.firma.local
    
    auth        required      pam_env.so
    auth        sufficient    pam_unix.so likeauth nullok
    auth        sufficient    pam_krb5.so use_first_pass
    auth        required      pam_deny.so
    
    account     sufficient    pam_unix.so
    account     required      pam_deny.so
    
    password    sufficient    pam_unix.so nullok use_authtok md5 shadow
    password    sufficient    pam_krb5.so
    password    required      pam_deny.so
    
    session     required      pam_mkhomedir.so skel=/etc/skel/ umask=0022
    session     optional      pam_keyinit.so revoke
    session     required      pam_limits.so
    session     required      pam_unix.so
    

    Testování

    link

    Nyní můžeme vyzkoušet, zda náš klientský systém účty ze serveru vidí. Příkaz getent nám zobrazí v jednom výpisu jak lokální, tak síťové účty.

    [root@pc1 ~]# getent passwd
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/bin/sh
    ...
    user0:x:501:501::/home/user0:/bin/bash
    frantisek_hnipirdo:*:10001:10001:Frantisek Hnipirdo:/home/frantisek_hnipirdo:/bin/bash
    josef_vosahlo:*:10002:10002:Josef Vosahlo:/home/josef_vosahlo:/bin/bash

    To samé můžeme provést pro skupiny.

    [root@pc1 ~]# getent group
    root:x:0:
    bin:x:1:
    ...
    user0:x:501:
    firma_users:*:20001:frantisek_hnipirdo,josef_vosahlo
    finance:*:20002:josef_vosahlo
    vyroba:*:20003:frantisek_hnipirdo

    Nebude na škodu, když zkontrolujeme, zda klient správně rozumí členství ve skupinách.

    [root@pc1 ~]# groups frantisek_hnipirdo
    frantisek_hnipirdo : firma_users vyroba
    [root@pc1 ~]# groups josef_vosahlo
    josef_vosahlo : firma_users finance

    Nyní se můžeme přihlásit např. jako uživatel josef_vosahlo k pc1.firma.local. Pokud se nám to povede, zkontrolujeme, zda jsme při přihlášení obdrželi TGT.

    [josef_vosahlo@pc1 ~]$ klist
    Ticket cache: FILE:/tmp/krb5cc_10002_XuY3on
    Default principal: josef_vosahlo@FIRMA.LOCAL
    
    Valid starting     Expires            Service principal
    04/20/08 19:44:25  04/21/08 05:44:25  krbtgt/FIRMA.LOCAL@FIRMA.LOCAL
            renew until 04/21/08 19:42:59
    

    Závěr

    link

    Uživatel se přihlásil. TGT dostal. Vše nám funguje tak, jak má. Příště si ukážeme, jak se přihlášený uživatel bez dalšího obtěžování dostane na jiný stroj v síti pomocí SSH. Pomůže mu v tom samozřejmě Kerberos. V dílech o souborových serverech s výhodou využijeme jednotných UID a GID v naší síti, která jsme právě získali nasazením LDAPu.

    Nejčtenější články posledního měsíce

    Týden na ScienceMag.cz: V kvantovém materiálu objevili částici podobnou gravitonu
    Jarní výprodej s až 91% slevou: originální a permanentně aktivovaný OS Windows 10 jen za €14, Office za €24!
    Událo se v týdnu 15/2024

    Nejkomentovanější články posledního měsíce

    Týden na ScienceMag.cz: Kosmologové se opět zkouší vypořádat se s problémem Hubbleovy konstanty
    Týden na ScienceMag.cz: Upřesnili limity pro klidovou hmotnost neutrin
    Jaderné noviny – přehled za duben 2024
      všechny statistiky »

    Seriál Centrální správa účtů a Single Sign-On (dílů: 8)

    Centrální správa účtů a Single Sign-On v Linuxu (první díl)
    <—« Kerberos: přihlašování snadno a rychle
    »—> Kerberos a SSO: služby - SSH
    Kerberos a LDAP (poslední díl)

    Související články

    Integrace linuxového serveru do domény Windows 2003
    NFS+NIS+LTSP - přihlašování na server
    OpenSSH - bezpečně a pohodlně
    OpenSSH - více než jen Secure Shell
    SSL - je vaše bezpečné připojení opravdu zabezpečené?
    SSL - 1 (certifikáty)
    SSL - 2 (elektronický podpis)
    IPTraf - sledování sítě v reálném čase
    Podepisování a šifrování s GnuPG
    Samba - Linux jako server v sítích s Windows
    PEAR - III (Autentizace)
    Čo keď nechodí sieť?
    Mailserver s odvirováním pošty

    Odkazy a zdroje

    LDAP Linux HOWTO
    OpenLDAP Software 2.3 Administrator's Guide
    Replacing NIS with Kerberos and LDAP HOWTO

    Další články z této rubriky

    V sobotu se uskuteční konference CryptoFest
    Pozor na androidové aplikace
    Silent Circle představil bezpečný smartphone Blackphone 2
    Android je bezpečnější, řada hrozeb však stále přetrvává
    Avast varuje před nebezpečnými aplikacemi v Google Play
           

    Hodnocení: 100 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

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

    Komentáře

    Vložit další komentář

    20.5.2008 00:40 VSi | skóre: 28
    Rozbalit Rozbalit vše Re: Kerberos a SSO: Jednotné účty v LDAP
    Mám jen jeden dotaz:

    Oba uživatelelé mají primární skupinu firma_users (GID=20001), tj. v LDAPu mají gidNumber: 20001:

    # Uzivatele:
    
    dn: uid=frantisek_hnipirdo,ou=people,dc=firma,dc=local
    ...
    gidNumber: 20001
    
    dn: uid=josef_vosahlo,ou=people,dc=firma,dc=local
    ...
    gidNumber: 20001

    V definici skupiny jsou oba účty opět explicitně vypsány v atributu memberUid:

    # Skupina -- firma_users:
    
    dn: cn=firma_users,ou=groups,dc=firma,dc=local
    ...
    gidNumber: 20001
    memberUid: frantisek_hnipirdo
    memberUid: josef_vosahlo

    Mám vyzkoušeno, že do primární skupiny uživatele není nutné přiřazovat pomocí memberUid, ale stačí atribut gidNumber u uživatele. Tedy alespoň v Debianu přes NSS to funguje (tj. přes groups josef_vosahlo i všude jinde). Má uvedená metoda nějaké výhody? Přijde mi, že pokud mám v jedné primární skupině třeba 200 uživatelů, pak je duplicitní je všechny uvádět jako "memberUid".

    Jinak se těším na další díly seriálu. Bude zmíněna i integrace Kerbera s Windows?
    20.5.2008 02:03 Mudrc | skóre: 24 | Plzeň
    Rozbalit Rozbalit vše Re: Kerberos a SSO: Jednotné účty v LDAP
    Žádný zvláštní záměr v tom nehledejte - není tam. :-)

    Díl o integraci Kerbera a Windows zvažuji. Udělal jsem pár zajímavých pokusů. Pomocí lionuxového Kerberos serveru a lokálního účtu ve Windows se dá do Windows hezky přihlašovat. Je to analogické konfiguraci, kterou jsme popsal ve druhém díle. Otázkou zůstává, jak do těch Windows dostat informace o účtech z nějakého jiného zdroje, než je Active Directory. Moje naděje se upírají směrem k pGina, ale to jsme zatím blíže nezkoumal.
    20.5.2008 10:51 jdobry
    Rozbalit Rozbalit vše Re: Kerberos a SSO: Jednotné účty v LDAP
    Dostat ucty do Windows zcela urcite lze pomoci LDAP navazaneho na Sambu v rezimu PDC i bez Kerbera. Me to tak funguje.
    20.5.2008 11:03 Mudrc | skóre: 24 | Plzeň
    Rozbalit Rozbalit vše Re: Kerberos a SSO: Jednotné účty v LDAP
    Tento scénář je samozřejmě možný a funkční, ale trošku nezapadá do mojí koncepce. Nejsem si jist, zda uživatel při přihlášení na Windowsový stroj v doméně Samba v3 by dostal TGT. Vzhledem k tomu, že Samba v3 se jako DC chová spíše jako NT4, tak tipuji, že ne. Samba v4 je jiná věc.

    Líbilo by se mi řešení, kde se server nepřizpůsobuje klientovi. Zvlášť, když klient není tak úplně "open" a musí se používat reverzní inženýrství.
    20.5.2008 13:15 VSi | skóre: 28
    Rozbalit Rozbalit vše Re: Kerberos a SSO: Jednotné účty v LDAP
    Mám nasazenou Sambu v3 jako PDC pro cca 120 PC s Windows XP (funguje to naprosto bez problémů). Rád bych to rozšířil o Kerberos, hlavně kvůli SSO ověřování různých webových služeb nebo třeba IMAPu. Zatím to řeším přes NTLM a to není úplně ideální. Problém bude asi v tom, že Samba v3 je NT4-style doména u které s Kerberem není počítáno.

    Vím, že to řeší Active Directory, ale do toho se mi nechce, protože stávající řešení je spolehlivé a dostačující.

    Když jsem se díval na možnosti pGINA, tak se mi zdálo, že to řeší jen ověření hesla (analogie PAM v Linuxu), ale není to možné použít jako zdroj účtů (něco jako NSS). Jak jsem to pochopil, tak při úspěšném ověření hesla třeba na LDAPu se vytvoří lokální Windows účet, což se pro nějaké větší nasazení moc nehodí.
    20.5.2008 15:03 Mudrc | skóre: 24 | Plzeň
    Rozbalit Rozbalit vše Re: Kerberos a SSO: Jednotné účty v LDAP
    To jsem měl právě na mysli, že by se pGina mohla použít alespoň k automatickému vytvoření lokálního účtu, protože bez účtu se do Windows přihlásit nejde, přestože vás Windows úspěšně ověří proti MIT nebo Heimdal Kerberu, což ve Windows jde nakonfigurovat a dokonce to i funguje.
    20.5.2008 16:08 timeos | skóre: 32
    Rozbalit Rozbalit vše Re: Kerberos a SSO: Jednotné účty v LDAP
    Mohli by ste sen hodit aspon jeden link s howto, ktory sa prave tejto kombinacii venuje? (Win + MIT Krb)
    20.5.2008 20:15 Mudrc | skóre: 24 | Plzeň
    Rozbalit Rozbalit vše Re: Kerberos a SSO: Jednotné účty v LDAP
    21.5.2008 14:21 Ondar | skóre: 25 | blog: Linux_blog
    Rozbalit Rozbalit vše Re: Kerberos a SSO: Jednotné účty v LDAP

    Tedy já osobně nejsem příliš velký příznivce Windows, ale jedno se tomuto OS nedá upřít: Active Directory. Nic ani vzdáleně podobného zkrátka ve světe Unixu není. A přitom to není nic extra - jen LDAP databáze velmi elegantně provázaná s Kerberos a DNS. Bylo by škoda, kdybychom se tu zabývali takovými "vykopávkami" jako NTLM nebo NIS. Vždyť AD v nativním režimu 2007 již obsahuje Unixové atributy dle doporučení RFC2307! Co více si ještě přát?

    Já bych si spíše přál vidět (a jsem schopen i v tomto smyslu s autorem tohoto bezva článku spolupracovat) návod jak donutit Linux aby autentikoval pomocí AD a z tohoto zdroje čerpal i ostatní informace (ostatní NIS mapy, mapy pro automounter, Kerberos service tickety pro služby jako SSH, Apache nebo NFSv4).

    Přiznávám, že tohoto se nedá snadno dosáhnout jen za použití striktně opensource nástrojů, ale po letech zkušeností bych to ani nežádal - když to nebude extra drahé ale zato extrémně jednoduché na administraci a spolehlivé, tak proč ne.

    21.5.2008 20:27 hubitch | skóre: 1
    Rozbalit Rozbalit vše Re: Kerberos a SSO: Jednotné účty v LDAP
    To by bylo super takhle sladit naši firemní AD síť se zbytkem *nixových služeb a prostředků - moc prosím o nakopávač :-)
    22.5.2008 14:43 Ondar | skóre: 25 | blog: Linux_blog
    Rozbalit Rozbalit vše Re: Kerberos a SSO: Jednotné účty v LDAP
    Neco jsem vyplodil zde. Snad to bude nekomu k uzitku :-)
    22.5.2008 16:49 Kyosuke | skóre: 28 | blog: nalady_v_modre
    Rozbalit Rozbalit vše Re: Kerberos a SSO: Jednotné účty v LDAP
    Nic ani vzdáleně podobného zkrátka ve světe Unixu není. A přitom to není nic extra - jen LDAP databáze velmi elegantně provázaná s Kerberos a DNS. Bylo by škoda, kdybychom se tu zabývali takovými "vykopávkami" jako NTLM nebo NIS. Vždyť AD v nativním režimu 2007 již obsahuje Unixové atributy dle doporučení RFC2307! Co více si ještě přát?
    Možná mi něco uniká, ale LDAP, Kerberos i DNS na Linuxu koneckonců existují a viděl jsem pohromadě v síti, aniž by se do ní cpalo NTLM (nebyly tam žádné windowsí stroje), ani NIS (aneb k čemu NIS, když je LDAP). Tedy ne že by na nšco takového v tuhle chvíli bylo klikátko (to jo, k tomu by se někdo musel dokopat :-)), ale pořád ještě nevidím, proč by AD mělo tomu, co už (pravda - po kouskách :-)) máme, být tak strašně "vzdáleně nepodobné".
    22.5.2008 17:43 Ondar | skóre: 25 | blog: Linux_blog
    Rozbalit Rozbalit vše Re: Kerberos a SSO: Jednotné účty v LDAP
    Mno, to je sice pravda, že Linux si s DNS, Kerberosem i LDAP krásně rozumí, ale furt to bere jako na sobě nezávislé služby. Jinými slovy k tomu, abyste dostali něco podobného k AD, tak to musíte zvlášť nakonfigurovat a když třeba přidáváte uživatele, konfigurujete zvlášť Kerberos a zvlášť LDAP. K tomu je nutno hafo konfiguráků. AD si to pěkně drží v DNS takže koncové stanice už mnoho nepotřebují.
    Taky nepotřebuji extra klikátko, ale na něco zkrátka šikne. Ale jak říkám, to je maličkost. Mě šlo o princip jak se všechny tyto služby v AD krásně doplňují.
    22.5.2008 18:00 Kyosuke | skóre: 28 | blog: nalady_v_modre
    Rozbalit Rozbalit vše Re: Kerberos a SSO: Jednotné účty v LDAP
    Díky. Já se v tomhle musím vzdělat :-), ale už docela dlouho je mi jasné, že domácí síť na hraní budu řešit opravdu hodně "po svém". :-) Takže možná za pár měsíců budu mluvit jinak, až to poznám na vlastní kůži. :-D Ale zrovna teď mě to začalo zajímat, tak je možné, že z toho i něco vyleze. Hmm, update: Teď se koukám na to, co společného má AD s DNS a možná tak úplně bezbolestný nebude. :-D (Asi bych si měl v první řadě přečíst základní literaturu. :-))
    22.5.2008 19:03 Mudrc | skóre: 24 | Plzeň
    Rozbalit Rozbalit vše Re: Kerberos a SSO: Jednotné účty v LDAP
    Počkejte si na jeden z připravovaných dílů seriálu. Uvidíte, že ani pod Linuxem se klient příliš konfigurovat nemusí a vše potřebné o Kerberu a možná i o LDAPu si najde v DNS.
    25.5.2008 13:45 Raduz | skóre: 5
    Rozbalit Rozbalit vše Re: Kerberos a SSO: Jednotné účty v LDAP

    Tedy já osobně nejsem příliš velký příznivce Windows, ale jedno se tomuto OS nedá upřít: Active Directory. Nic ani vzdáleně podobného zkrátka ve světe Unixu není.

    eDirectory od Novellu potřebné nároky nesplňuje? To neni ironická otázka, ptám se z opravdového zájmu. Já ji teda používám přímo pod Netware pro běžné přihlašovaní uživatelů k fileserveru, takže to nejjednodušší možné nasazení, ale pokud vím, funguje i pro Linuxem (minimálně tedy pod Suse a Red Hatem), a co jsem zběžně viděl, podporuje i Kerberos. Ale mluvím jako člověk, který si jen přečetl seznam funkcí, a neměl zatím potřebu řešit to nějak do hloubky, tudíž nevím jak moc je to funkční.
    26.5.2008 10:12 Ondar | skóre: 25 | blog: Linux_blog
    Rozbalit Rozbalit vše Re: Kerberos a SSO: Jednotné účty v LDAP
    eDirectory od Novellu potřebné nároky nesplňuje?
    Vím, že jak Suse, tak RedHat mají svůj (snad už společný) projekt odvozený od bývalého iPlanet LDAP serveru od Sunu, ale do jaké míry se jedná o podobně elegantní záležitost jako AD, to opravdu neumím říci, ale pochybuji.
    26.5.2008 13:56 Raduz | skóre: 5
    Rozbalit Rozbalit vše Re: Kerberos a SSO: Jednotné účty v LDAP
    Pozor, eDirectory je něco jiného. Novell tomu původně říkal Novell Directory Services, a poprvé je uvedl s Netware 4.0, kde šlo o výrazný upgrade z klasické bindery uživatelské databáze v trojkovém Netware. Pak se z toho vyvinula značně komplexní záležitost pro identity management, který ale běžel primárně na Netware, a posléze i na Win. MS ve svě době vytvořil AD jako přímou odpověď právě na eDir. Poté co se Novell začal angažovat v OSS přeportoval eDir do Linuxu, a dnes je to pro něj primární platforma, a odvážil bych se tvrdit, že po stránce funkčnosti může eDirectory s Active Directory zdatně soutěžit, a to i na Linuxu, nebo tedy na podporovaných UNIX systémech obecně.
    27.5.2008 11:45 Ondar | skóre: 25 | blog: Linux_blog
    Rozbalit Rozbalit vše Re: Kerberos a SSO: Jednotné účty v LDAP
    Nevím, neznám. Rád se poučím :-)
    27.5.2008 13:13 Raduz | skóre: 5
    Rozbalit Rozbalit vše Re: Kerberos a SSO: Jednotné účty v LDAP
    http://www.novell.com/products/edirectory/

    http://www.novell.com/products/edirectory/whitepapers.html

    Ty whitepapers psal pochopitelně Novell, takže v porovnání s AD u nich vítězí eDir na celé čáře, ale co už by taky člověk měl čekat jiného :-) Nicméně bych řekl, že Linux v něm má produkt který snese příme srovnání s Active Directory. Samozřejmě se nebavíme o open source, ale o komerčním řešení, ale to už je zase jiná pohádka.
    20.5.2008 10:59 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: Kerberos a SSO: Jednotné účty v LDAP
    Uživatelská jména budeme psát ve formátu jmemo_prijmeni (bez diakritiky)
    ---

    Škoda, že tenhle seriál vychází až teď, nedávno jsem se trápil s rozběháním LDAPu a tohle by mi hodně ušetřilo práci. (Naštěstí to bylo jenom ve vritualboxu a jenom cvičně)
    Quando omni flunkus moritati
    20.5.2008 11:35 disorder | blog: weblog
    Rozbalit Rozbalit vše Re: Kerberos a SSO: Jednotné účty v LDAP
    mal si pogooglit, ja som nasiel pekne howto a bez preoblemov som sa v tom zorientoval
    20.5.2008 11:58 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: Kerberos a SSO: Jednotné účty v LDAP
    To já něco našel taky a dokonce něco i tady, akorát to nebylo tak srozumitelné, jednoduché a přehledné jako tenhle článek. (I když přiznávám, že se mi možná trochu změnil úhel pohledu, protože o LDAPu teď už něco málo vím.)
    Quando omni flunkus moritati
    msk avatar 20.5.2008 13:50 msk | skóre: 27 | blog: msk
    Rozbalit Rozbalit vše Re: Kerberos a SSO: Jednotné účty v LDAP
    Tak napr ja som googlil 2 dni a nerozchodil som to. Vsade len nejake polonavody predpokladajuce ze clovek vie, co robi. O existencii schem som sa dozvedel len nedavno a o tom, ako prebieha autorizacia pomocou hesla ( napr. pre apache, ssh, imap ... ) nemam najmensiu potuchu... Trpezlivo ocakavam pokracovanie serialu, kde to uz snad konecne pochopim a rozchodim.
    20.5.2008 19:45 disorder | blog: weblog
    Rozbalit Rozbalit vše Re: Kerberos a SSO: Jednotné účty v LDAP
    ano, s LDAP su tazke zaciatky, ale staci sa do toho kus ponorit, zaexperimentovat a da sa to pochopit

    tie tvoje priklady, no neviem ci sa tu bude vysvetlovat nastavenie PAM... ale taky dovecot sa tiez da miesto PAM nastavit rovno na LDAP, ale je to trochu zbytocne :) a apache jedine cez modul, ten standardne pouziva len .htpasswd
    msk avatar 21.5.2008 09:09 msk | skóre: 27 | blog: msk
    Rozbalit Rozbalit vše Re: Kerberos a SSO: Jednotné účty v LDAP
    Snazime sa na firme rozchodit centralnu spravu uctov ( takze asi cez ldap ), pricom sa voci nemu musia dat overovat:

    - apache

    - trac

    - ucty na unix serveroch

    - samba pdc

    Idealne by este bolo:

    - svn ( to bude asi suvisiet s apache )

    - imap

    - jabber ucty

    Mam strach, ze sa nam podari co len polovica z uvedenych technologii...
    21.5.2008 09:29 disorder | blog: weblog
    Rozbalit Rozbalit vše Re: Kerberos a SSO: Jednotné účty v LDAP
    ten svn (apache), imap a jabber bude asi v pohode :) trac by sa cez apache mohol dat tiez, predpokladam, ze velmi podobnym sposobom, ja som si trac vyriesil zatial inak... posixAccount/shadowAccount je zaklad a so sambou nerobim, ale verim, ze je to caste pouzitie. ja som navyse k niektorym z vymenovanych dorabal malu schemu s par informaciami a smtp auth (cyrus sasl cez PAM). ale mas stastie, ze nechces mysql, lebo to zrejme tak skoro nepojde...

    ja by som si dal ale pozor na imap (radsej povolit vyhradne imaps) a http (apache, trac), treba asi povytvarat samostatne accounty s roznymi heslami, lebo plaintext po sieti nie je velmi bezpecny :) pekne sa mi to ale hovori, ja som to takto (este) neriesil, kde sa da povinne sifrujem, inde umoznujem pouzivat aj ine heslo (len ten trac riesim mimo ldap)
    22.5.2008 01:33 Karel Benák | skóre: 8 | blog: benyho
    Rozbalit Rozbalit vše Re: Kerberos a SSO: Jednotné účty v LDAP
    Skvěle napsané. Svého času jsem se taky pokoušel o něco podobného, ale je to vlastně už 5 let. Co se grafických LDAP klientů týče, nemůžu si vynachválit Apache Directory Studio.
    Láska je jako prd, když hodně tlačiš tak z toho bude ...
    22.5.2008 08:16 Peter Lehotsky | skóre: 26 | Prague
    Rozbalit Rozbalit vše Re: Kerberos a SSO: Jednotné účty v LDAP
    nebo fedora directory server
    22.5.2008 08:16 Peter Lehotsky | skóre: 26 | Prague
    Rozbalit Rozbalit vše Re: Kerberos a SSO: Jednotné účty v LDAP
    V ubuntu/debianu jsou potrebne baliky:
    aptitude install slapd libldap
    /etc/ldap/slapd.conf se musi zmenit na:
    include         /etc/ldap/schema/core.schema
    include         /etc/ldap/schema/cosine.schema
    include         /etc/ldap/schema/nis.schema
    include         /etc/ldap/schema/inetorgperson.schema
    pidfile         /var/run/slapd/slapd.pid
    argsfile        /var/run/slapd/slapd.args
    
    modulepath      /usr/lib/ldap
    moduleload      back_bdb
    backend         bdb
    database        bdb
    
    suffix          "dc=firma,dc=local"
    rootdn          "uid=ldapadmin,dc=firma,dc=local"
    rootpw          heslo
    
    directory       /var/lib/ldap
    Jxplorer nejde nainstalovat z binarniho instalatoru, musi se pouzit deploy balicek

    wget http://surfnet.dl.sourceforge.net/sourceforge/jxplorer/JXv3.2deploy.tar.bz2
    8.9.2008 11:20 leon
    Rozbalit Rozbalit vše Re: Kerberos a SSO: Jednotné účty v LDAP
    Zdravím,

    članek je pěkný a srozumitelný, nicméně opět jako většina zdrojů co se mi podařilo najít na internetu, nenaznačí jednoduchým způsobem nejpoužívanější existující schémata v inetorgperson.schema.

    Pozn.: Kdo zodpoví otázku, proč nemůžeme použít pro uživateský účet samotnou třídu possixAccount dostane jedničku! :-) mně naprosto dostala :)

    LDAP chci použít pro autentizaci IMAP serveru a prostě si ho trochu osahat, nechci do něj hned překlápět systémové účty, ale jen virtuální. Filozofii, instalaci, základní konfiguraci a rozběhnutí jsem nastudoval a zvládl. Nicméně ve všech dalších návodech je prostě už jen přidávaní uživatelů a skupin, bez dalších informací o tom proč zrovna possixAccount a ne inetOrgPerson.

    Myslím tím třeba jen základní obrázek těch schámat, aby to člověk začátečník nemusel studovat přímo z definice :)

    Můžu tedy poprosit o nějaký odkaz na rozumný zdroj, který by mi umožnil odpovědět na uvedenou otázku? A prosím nechci odkaz na definici nebo normu toho schématu, zatím nechci jedničku, chci si udělat přehled, začít si hrát a k jedničce se dopracovat :)

    Díky
    22.1.2009 13:53 anon123 | skóre: 35 | blog: ganomi
    Rozbalit Rozbalit vše Re: Kerberos a SSO: Jednotné účty v LDAP

    Super clanek!

    Akorad me zajima, jak kesovat ty kerberos prihlasovaci udaje? Kdyz se odpojim z netu, tak uz se neprihlasim. Poradi nekdo?

    10.3.2009 09:31 LuděkS | skóre: 31 | blog: publish | Liberec
    Rozbalit Rozbalit vše Re: Kerberos a SSO: Jednotné účty v LDAP

    Dobrý den, chtěl jsem vyzkoušet JXplorer, ale nemohu vytvořit DIT ani přidat objekt:

    Unable to read entry dc=firma,dc=local

    Zkoušel jsem hledat řešení, změnit práva pro adresáře, ručně vytvořit soubory, ale vše marně.

    Používám CentOS 5.1 64 bit.

    Děkuji za pomoc.

     

    10.3.2009 16:41 LuděkS | skóre: 31 | blog: publish | Liberec
    Rozbalit Rozbalit vše Re: Kerberos a SSO: Jednotné účty v LDAP

    Nepodařilo se mi přijít na to, kde byla chyba. Nakonec jsem musel vyrobit vlastní *.ldif soubor,
    který jsem do ldapu nahrál pomocí příkazu:

    /usr/bin/ldapadd -x -D 'uid=ldapadmin,dc=firma,dc=local' -W -f /etc/openldap/mujldifsoubor.ldif


    Nejsem nadšený z toho, že jsem musel postupovat "oklikou",
    ale nyní vše funguje jak má... (a třeba se to bude někomu hodit.. :-))

    19.6.2009 18:33 Anino
    Rozbalit Rozbalit vše Re: Kerberos a SSO: Jednotné účty v LDAP

    Keď som to skúšal, mal som takýto problém: Po zadaní

    getent passwd

    mi vypísalo všetky účty (aj z passwd aj z LDAP). Keď som ale zadal

    getent passwd user0

    kde user0 bol používateľ z LDAP, nevypísalo nič. Pes bol zakopaný v tom, že nscd (name service cache demon) mal neaktuálne informácie a bolo ho treba reštartovať. (Bol som jeleň z toho, prečo to tak blbne a nakoniec to luskol môj skvelý potomok.) Možno sa to niekomu bude hodiť :)

    Založit nové vláknoNahoru

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