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í
×

včera 11:00 | Zajímavý software
Na Good Old Games je v rámci aktuálních zimních slev zdarma k dispozici remasterovaná verze klasické point&click adventury Grim Fandango, a to bez DRM a pro mainstreamové OS včetně GNU/Linuxu. Akce trvá do 14. prosince, 15:00 SEČ.
Fluttershy, yay! | Komentářů: 6
včera 07:22 | Pozvánky

Konference InstallFest 2018 proběhne o víkendu 3. a 4. března 2018 v Praze na Karlově náměstí 13. Spuštěno bylo CFP. Přihlásit přednášku nebo workshop lze do 18. ledna 2018.

Ladislav Hagara | Komentářů: 0
12.12. 20:22 | Nová verze

Před měsícem byla vydána Fedora 27 ve dvou edicích: Workstation pro desktopové a Atomic pro cloudové nasazení. Fedora Server byl "vzhledem k náročnosti přechodu na modularitu" vydán pouze v betaverzi. Finální verze byla naplánována na leden 2018. Plán byl zrušen. Fedora 27 Server byl vydán již dnes. Jedná se ale o "klasický" server. Modularita se odkládá.

Ladislav Hagara | Komentářů: 6
12.12. 10:22 | Zajímavý článek

Lukáš Růžička v článku Kuchařka naší Růži aneb vaříme rychlou polévku z Beameru na MojeFedora.cz ukazuje "jak si rychle vytvořit prezentaci v LaTeXu, aniž bychom se přitom pouštěli do jeho bezedných hlubin".

Ladislav Hagara | Komentářů: 13
12.12. 07:22 | Komunita

Od 26. do 29. října proběhla v Bochumi European Coreboot Conference 2017 (ECC'17). Na programu této konference vývojářů a uživatelů corebootu, tj. svobodné náhrady proprietárních BIOSů, byla řada zajímavých přednášek. Jejich videozáznamy jsou postupně uvolňovány na YouTube.

Ladislav Hagara | Komentářů: 0
11.12. 19:22 | Nová verze

Ondřej Filip, výkonný ředitel sdružení CZ.NIC, oznámil vydání verze 2.0.0 open source routovacího démona BIRD (Wikipedie). Přehled novinek v diskusním listu a v aktualizované dokumentaci.

Ladislav Hagara | Komentářů: 0
11.12. 09:22 | Pozvánky

V Praze dnes probíhá Konference e-infrastruktury CESNET. Na programu je řada zajímavých přednášek. Sledovat je lze i online na stránce konference.

Ladislav Hagara | Komentářů: 2
9.12. 20:11 | Nová verze

Byl vydán Debian 9.3, tj. třetí opravná verze Debianu 9 s kódovým názvem Stretch a Debian 8.10, tj. desátá opravná verze Debianu 8 s kódovým názvem Jessie. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 9 a Debianu 8 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.

Ladislav Hagara | Komentářů: 14
9.12. 00:44 | Nová verze

Po 6 měsících vývoje od vydání verze 0.13.0 byla vydána verze 0.14.0 správce balíčků GNU Guix a na něm postavené systémové distribuce GuixSD (Guix System Distribution). Na vývoji se podílelo 88 vývojářů. Přibylo 1 211 nových balíčků. Jejich aktuální počet je 6 668. Aktualizována byla také dokumentace.

Ladislav Hagara | Komentářů: 4
8.12. 21:33 | Nová verze

Po půl roce vývoje od vydání verze 5.9 byla vydána nová stabilní verze 5.10 toolkitu Qt. Přehled novinek na wiki stránce. Současně byla vydána nová verze 4.5.0 integrovaného vývojového prostředí (IDE) Qt Creator nebo verze 1.10 nástroje pro překlad a sestavení programů ze zdrojových kódů Qbs.

Ladislav Hagara | Komentářů: 0
Jak se vás potenciálně dotkne trend odstraňování analogového audio konektoru typu 3,5mm jack z „chytrých telefonů“?
 (8%)
 (1%)
 (1%)
 (1%)
 (75%)
 (14%)
Celkem 978 hlasů
 Komentářů: 45, poslední 1.12. 19:00
    Rozcestník

    Autentizácia v Linuxe pomocou PAM

    30. 4. 2008 | Daniel Keder | Bezpečnost | 6497×

    Článek představí koncept PAM (Pluggable Authentication Modules), pomůže s konfigurací systému a na příkladu ukáže, jak PAM využít pro usnadnění přihlašování.

    Čo je to PAM

    PAM (Pluggable Authentication Modules) je sada knižníc, ktorá integruje viaceré nízko-úrovňové autentizačné mechanizmy do jedného API. Použitie stabilného API pomáha oddeliť detaily a spôsob autentizácie od programu, ktorý potrebuje overovať totožnosť užívateľov.

    Pôvodne bol PAM vyvinutý v Sun Microsystems. V súčasnosti je podporovaný vo vačšine UNIXových systémov, napr. AIX, HP-UX, Solaris, Linux, FreeBSD, MacOS X a NetBSD. Pokiaľ viem, tak nie je podporovaný v Slackware a OpenBSD.

    Keďže PAM uplatňuje modulárny princíp, je jednoduché napríklad pridať nový spôsob autentizácie (čítačku odtlačkov prstov) či zmeniť spôsob autentizácie v nejakom programe (chcem overovať heslá pomocou Kerbera namiesto /etc/shadow).

    Celý systém sa skladá z troch súčastí:

    • Knižnica libpam – oproti nej sú linkované programy, ktoré chcú PAM využívať
    • PAM moduly – poskytujú konkrétne autentizačné mechanizmy. Moduly sa zvyčajne nachádzajú v adresári /lib/security (Solaris a niektoré UNIXy /usr/lib/security) a do pamäte sú zavádzané dynamicky
    • Konfigurácia – definujú, ktoré PAM moduly sa budú používať pri autentizácii a ako.

    Konfigurácia

    Keďže PAM je vo väčšine linuxových distribúcii už predinštalovaný, nebudem tu popisovať, ako ho do systému nainštalovať, a rovno sa vrhneme na konfiguráciu.

    Konfigurácia PAMu je uložená v súbore /etc/pam.conf alebo rozdelená do viacerých súborov v adresári /etc/pam.d. Ak tento adresár existuje, súbor pam.conf sa ignoruje. Dovolím si tvrdiť, že z dôvodu prehľadnosti sa používa väčšinou varianta s /etc/pam.d.

    Konfiguračný súbor /etc/pam.conf obsahuje riadky v tvare:

    service   type   control   module-path   module-args

    Syntax súborov v /etc/pam.d/ je rovnaká, až na pole service. Toto pole sa neuvádza a namiesto neho sa použije názov konfiguračného súboru.

    Pole 'service'

    Každý riadok predstavuje pravidlo, ktoré sa uplatní pri autentizácii v programe service. Čo konkrétne treba uviesť do tohoto poľa (resp. ako pomenovať konfiguračný súbor) už závisí na onom programe, zväčša to býva práve názov programu. Ak v poli service použijeme kľúčové slovo other, nastavíme implicitné správanie pre ostatné programy. Z bezpečnostných dôvodov sa tu používa len modul pam_deny.so, ktorý užívateľovi prístup zakáže.

    Pravidlá sa samozrejme môžu reťaziť, čím dosiahneme kombinácie rôznych autentizačných mechanizmov. K slovu sa dostávajú postupne tak, ako sú za sebou zapísané.

    Pole 'type'

    Pole type musí obsahovať jedno z kľúčových slov account, auth, password a session. Každé z nich pokrýva jeden z aspektov autentizačného procesu. Ich význam je nasledovný:

    • account – ako overiť existenciu a platnosť užívateľského účtu, práva k danej službe a pod.
    • auth – ako overiť identitu užívateľa
    • password – zmeny hesiel (ako heslo zmeniť, ako overiť, či je dostatočne silné a pod.)
    • session – definuje, čo sa má stať pred udelením oprávnenia a po jeho odobratí. Napr. pripojenie domovského adresára užívateľa, auditing a pod.

    Pole 'control'

    Pole control určuje, aký vplyv má modul na prebiehajúci autentizačný proces. Môže nadobúdať tieto hodnoty:

    • required – zlyhanie modulu spôsobí zlyhanie autentizácie, ale až po skončení ostatných zreťazených modulov
    • requisite – zlyhanie modulu spôsobí okamžité zlyhanie autentizácie
    • sufficient – úspech tohoto modulu postačuje na úspešnú autentizáciu (pokiaľ predtým nezlyhal modul s "required")
    • optional – úspech alebo zlyhanie tohoto modulu sa berie do úvahy iba vtedy, ak je to jediný modul daného typu asociovaného s touto službou.

    Pole control môže obsahovať i relatívne nové kľúčové slovo include, ktoré spôsobí vloženie pravidiel zo súboru špecifikovaného v poli module-path. To nám umožňuje vložiť spoločné nastavenia do jediného súboru, takže pri zmene stačí upraviť len tento súbor.

    Pole 'module-path'

    Do poľa module-path sa uvádza cesta k modulu. Táto cesta môže byť buď absolútna, alebo relatívna vzhľadom k adresári, v ktorom sú PAM moduly (väčšinou /lib/security).

    Pole 'module-args'

    V poslednom poli module-args sa nachádzajú parametre modulu. Tie môžu byť pre každý modul iné, zistiť sa dajú v dokumentácii daného modulu. Väčšina modulov podporuje parameter debug, ktorý spôsobí podrobnejší výpis do systémového logu.

    Moduly, ktoré vyžadujú po užívateľovi heslo, tiež zvyknú podporovať parametre try_first_pass a use_first_pass. Rozdiel medzi nimi je v tom, že try_first_pass sa snaží použiť heslo od niektorého z predchádzajúcich modulov a v prípade, že žiadne neexistuje, si ho vyžiada od užívateľa. Parameter use_first_pass naopak od užívateľa heslo nežiada a rovno zlyhá.

    Užitočné moduly

    Väčšina modulov má svoju manuálovú stránku, v ktorej je popísaná činnosť modulu a podporované parametre.

    • pam_cracklib.so – kontrola sily hesla podľa zadaných parametrov. Zabráni nastaveniu príliš slabého hesla.
    • pam_deny.so – autentizácia vždy zlyhá
    • pam_krb5.so – overovanie hesla pomocou Kerbera.
    • pam_limits.so – nastavenie systémových limitov (množstvo obsadenej pamäte, počet procesov a pod.)
    • pam_nologin.so – kontrola existencie /etc/nologin. Ak tento súbor existuje, nikdo okrem roota sa neprihlási
    • pam_time.so – kontrola prístupu podľa času. Umožňuje obmedziť prihlasovanie v určitej dobe
    • pam_unix.so – štandardný unixový autentizačný modul. Kontroluje užívateľov a heslá podľa /etc/passwd a /etc/shadow
    • pam_warn.so – zaznamená do systémového logu pokus o prístup.

    Príklad konfigurácie

    Na príklade si ukážeme konfiguráciu pre GDM, v ktorej povolíme prístup lokálnym užívateľom v /etc/passwd po overení odtlačku prstu a zadaní hesla. Niektorí užívatelia majú v domovskom adresári šifrované SSH kľúče, ale sú leniví a nechce sa im zadávať pri každom použití ssh heslo. Preto im s pomocou programu ssh-agent sprístupníme SSH kľúč po dobu trvania sedenia.

    Konfigurácia je uvedená v súbore /etc/pam.d/gdm, do ktorého sa vkladá spoločný súbor /etc/pam.d/system-auth (je uvedený len pre úplnosť).

    Prihlásenie začne odobraním odtlačku prsta. Následne si modul pam_ssh.so vypýta od užívateľa heslo k SSH kľúču a pomocou programu ssh-agent kľúč sprístupní až do konca sedenia. Ak tento modul zlyhá, nič sa nedeje, užívateľ má stále možnosť sa prihlásiť, akurát nebude mať v ssh-agentovi svoj kľúč.

    Ďalej sa overí heslo v module pam_unix.so. Parameter try_first_pass hovorí, že sa má najskôr skúsiť heslo z predchádzajúcich modulov. Ak nevyhovie, systém sa na heslo opýta znovu.

    Súbor /etc/pam.d/gdm:

    auth       optional     pam_env.so
    auth       required     pam_thinkfinger.so
    auth       required     pam_nologin.so
    auth       optional     pam_ssh.so
    auth       include      system-auth
    
    account    include      system-auth
    
    password   include      system-auth
    
    session    include      system-auth
    session    optional     pam_ssh.so

    Súbor /etc/pam.d/system-auth:

    auth       required     pam_env.so
    auth       sufficient   pam_unix.so try_first_pass likeauth nullok
    auth       required     pam_deny.so
    
    account    required     pam_unix.so
    
    password   required     pam_cracklib.so difok=2 minlen=8 \
                            dcredit=2 ocredit=2 try_first_pass retry=3
    password   sufficient   pam_unix.so try_first_pass use_authtok \
                            nullok md5 shadow
    password   required     pam_deny.so
    
    session    required     pam_limits.so
    session    required     pam_unix.so

    Na záver ešte uvediem malú poznámku: pri pokusoch s PAMom buďte opatrní. Zmazanie alebo poškodenie konfigurácie PAMu má ten istý účinok, ako keď zamknete svoj byt a kľúče hodíte do kanála – už sa dovnútra viac nedostanete (bežnými metódami, samozrejme).

           

    Hodnocení: 91 %

            š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ář

    30.4.2008 07:04 pht
    Rozbalit Rozbalit vše Re: Autentizácia v Linuxe pomocou PAM
    v cem je to 'include' lepsi nez dosud pouzivane pam_stack.so ?
    30.4.2008 13:28 Dan Keder
    Rozbalit Rozbalit vše Re: Autentizácia v Linuxe pomocou PAM
    Myslím, že celkom dobre je to popísané tu:

    http://www.redhat.com/archives/rhl-devel-list/2005-October/msg00050.html
    30.4.2008 07:49 ased
    Rozbalit Rozbalit vše Re: Autentizácia v Linuxe pomocou PAM
    Ako clovek ktory nikdy s PAM nerobil mam jeden postreh. Pole 'control' by mohlo byt vysvetlene lepsie, pretoze to moj maly mozocek nedokazal pochopit... presnejsie pokial: # required – zlyhanie modulu spôsobí zlyhanie autentizácie, ale až po skončení ostatných zreťazených modulov
    # requisite – zlyhanie modulu spôsobí okamžité zlyhanie autentizácie
    a ukazka z konfiguracneho syboru:
    password   required     pam_cracklib.so difok=2 minlen=8 \
                            dcredit=2 ocredit=2 try_first_pass retry=3
    password   sufficient   pam_unix.so try_first_pass use_authtok \
                            nullok md5 shadow
    password   required     pam_deny.so
    podla vsetkeho co je v clanku uvedene pokial pam_deny skonci s chybou (co skonci vzdy) ani zmena hesla nemoze nikdy prebehnut... Preto by mozno nebolo zle uviest sposob retazenia podrobnejsie, aby clanok ziskal aj vyznam: kazdy kto s PAMom robil uz vie ako funguje, a ten co s nim nerobil to podla clanku nepochopi, takze v sucasnom zneni trochu useless... Pokial sa mylim a ostatni to pochopili, prosim nekamenovat...
    30.4.2008 07:59 Honza Jaroš | skóre: 6 | blog: moje_strana_plotu | Bohnice
    Rozbalit Rozbalit vše Re: Autentizácia v Linuxe pomocou PAM
    No ale podle článku hodnota sufficient v poli control stačí k ověření, takže na pam_deny.so by v případě, že neselže pam_unix.so, vůbec nemělo dojít, ne?
    30.4.2008 11:13 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Autentizácia v Linuxe pomocou PAM
    Změna hesla proběhnout může, protože ještě před pam_deny máte pam_unix se sufficient, takže pokud ten uspěje, výsledkem je úspěch a na pam_deny už nedojde.
    kozzi avatar 30.4.2008 16:26 kozzi | skóre: 55 | blog: vse_o_vsem | Pacman (Bratrušov)
    Rozbalit Rozbalit vše Re: Autentizácia v Linuxe pomocou PAM
    ja myslim ze to je usefull, mě to teda pomohlo, zrovna jsem rozchazel ldap pro spravu uzivatelskych uctu a potreboval jsem nasatvit apm tak abych pri zadani hesla docilil toho ze se to zepta ldap pokud to prel ldap neprojde(zanmena ze proste uzivatel neni) tak aby to heslo predal dalsimu modulu coz je standartnu unix_pam.so ci jak to je a to jsem pomoci tohoto clanku dokazal a nikdy jsem si s pam nehral(teda pokud nepocitam tupe kopirovani z navodu). Takze ja autorovi musim podekovat ze mi usetril cas, ktery bych musel travit ctenim manualovych stranek
    Linux je jako mušketýři "jeden za všechny, všichni za jednoho"
    30.4.2008 13:12 honza
    Rozbalit Rozbalit vše Re: Autentizácia v Linuxe pomocou PAM
    Vadi mi jedna vec, konkretne kombinace ctecka otisku a GDM. Pokud otisk udelam spatne, tak jej nemuzu opakovat a musim zadat heslo. Navic v poli login visi login name. Idelani pripad je ten, ze se na zacatku rozhodnuju jestli napisu heslo nebo budu patlat prstem po ctecce a to treba vicekrat. Nepodarilo se mi toho nijak docilit, vzdy je tam nejake "ale". Ale tohle je veci GDM.. jinak dobry clanek.
    stativ avatar 30.4.2008 17:03 stativ | skóre: 54 | blog: SlaNé roury
    Rozbalit Rozbalit vše Re: Autentizácia v Linuxe pomocou PAM
    Možná by stálo zato zmínit použití pam_unix2.so a Blowfishových klíčů pomocí libxcrypt. Dost dlouho mně trvalo, než jsem přišel jak na to (a na internetu o tom skoro nic není, hlavně o nutnosti libxcrypt).
    Ať sežeru elfa i s chlupama!!! ljirkovsky.wordpress.com stativ.tk
    30.4.2008 21:51 Jiri Slaby
    Rozbalit Rozbalit vše Re: Autentizácia v Linuxe pomocou PAM
    Z tech dulezitejsich veci mi v clanku mi schazi zminka o pam_debug, ktery umi jaksi navodit urcite prostredi k otestovani konfigurace. A potom jeste control muze obsahovat magii [ ], kde si nastavim, co chci kdy presne udelat, kdyz se nespokojim jen s temi nekolika vyjmenovanymi.
    1.5.2008 08:45 peter
    Rozbalit Rozbalit vše Re: Autentizácia v Linuxe pomocou PAM
    Dúfam, že bude ešte nejaké pokračovanie s nejakými "chuťovkami". Mňa by celkom zaujímalo, ako nastaviť šifrovaný home adresár pre používateľov, kde budú kľúče k týmto adresárom uložené napr. niekde vo /var a chránené heslom na prihlásenie. Pri zadaní hesla na prihlásenie by sa vytiahol kľúč na odšifrovanie a používateľ by už videl svoj adresár odšifrovaný. Samozrejme, ani root by nevidel adresáre používateľov (pokiaľ by sa nerozhodol odchytávať zadávané heslá). Ideálne by bolo, keby sa kľúč vytváral už pri vytvorení používateľa a používateľ by ani nepostrehol, že má adresár šifrovaný.

    Dokáže niečo takéto pam_ssh.so, resp. ssh-agent? Nič také som nenašiel.
    1.5.2008 11:45 sNop | skóre: 2
    Rozbalit Rozbalit vše Re: Autentizácia v Linuxe pomocou PAM
    Pro mne po prvem precteni doost nezrozumitelne, neni tam vubec vysvetlene retezeni, nac sluzi pam_env.so,... Ale to su drobnosti, vse se da pekne dostudovat v manuali, kdyz nekdo potrebuje sprovoznit pam tak jako odrazovi mostik sa to celkom da pouzit. Ale clanek neni uceleny a podla mna nedokonceny. Komentar je mysleny ako nestrana kritika.
    1.5.2008 14:19 Pax
    Rozbalit Rozbalit vše Re: Autentizácia v Linuxe pomocou PAM
    PAM v Slackwari je, vo v12 urcite
    2.5.2008 12:58 rastos | skóre: 60 | blog: rastos
    Rozbalit Rozbalit vše Re: Autentizácia v Linuxe pomocou PAM
    Podľa čoho tak súdiš?
    1.12.2008 14:15 lionell
    Rozbalit Rozbalit vše Re: Autentizácia v Linuxe pomocou PAM

    Já s tímto teprve začínám, takže jsem to taky moc nepochopil. Nevěděl by někdo jak rozchodit přihlašování do systému pomocí IKey3000. Čerpal jsem z http://www.linuxexpres.cz/hardware/sifrovaci-token-ikey-3000, ale když jsem do /etc/pam.d/system-auth napsal přesně to, co v článku, tak to skončilo ne neúspěchem. Za případné rady děkuji.

     

    Stále se je co učit

    Založit nové vláknoNahoru

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