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 04:22 | Zajímavý projekt

    Na Crowd Supply běží kampaň na podporu open source čtečky elektronických knih Open Book Touch. Postavena je na ESP32-S3. Má 4,26palcový dotykový e-papírový displej s rozlišením 480×800 pixelů, podsvícení, slot na microSD kartu. Cena je 149 dolarů a poštovné 12 dolarů. Dodání je plánováno na duben 2027.

    Ladislav Hagara | Komentářů: 1
    včera 18:00 | IT novinky

    Na Humble Bundle běží akce Linux: All the Things by O'Reilly a Picos, HATs, and More by Raspberry Pi Press. Elektronické knihy lze koupit se slevou a současně podpořit organizace Code for America a Raspberry Pi Foundation.

    Ladislav Hagara | Komentářů: 3
    včera 14:00 | Komunita

    FreeCAD (Wikipedie), tj. svobodný multiplatformní parametrický 3D CAD, má nový vtipný a současně užitečný doplněk Banana For Scale (GitHub). Aktuálně umožňuje do výkresu vložit banán nebo plechovku pro porovnání a určení měřítka.

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

    Blender Studio nedávno oznámilo plán vytvořit svůj první otevřený (open source) celovečerní film. Film by se měl jmenovat Overgrown (YouTube). Film vznikne, pokud se zajistí financování. Prvním krokem je získat 7 000 předplatitelů Blender Studia. Cena je od 11,50 eur měsíčně. Aktuálně počet předplatitelů je 5 289. Předplatné pokryje 20 % nákladů. Zbytek, 80 % nákladů, má být financován externími producenty nebo distributory.

    Ladislav Hagara | Komentářů: 0
    12.7. 01:11 | Nová verze

    Byl vydán Debian 13.6, tj. šestá opravná verze Debianu 13 s kódovým názvem Trixie a Debian 12.15, tj. poslední patnáctá opravná verze Debianu 12 s kódovým názvem Bookworm, k dispozici je LTS. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 13 a Debianu 12 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.

    Ladislav Hagara | Komentářů: 0
    10.7. 16:11 | Bezpečnostní upozornění

    V jádře Linux byla nalezena a v upstreamu již byla opravena kritická zranitelnost GhostLock aneb CVE-2026-43499. Lokálnímu uživateli umožňuje získat práva roota a také obejít kontejnerovou izolaci. Zranitelnost existovala v Linuxu 15 let, tj. od roku 2011, od Linuxu verze 2.6.39.

    Ladislav Hagara | Komentářů: 2
    10.7. 13:55 | IT novinky

    Evropská komise předběžně shledala, že návykový design aplikací Instagram a Facebook od americké společnosti Meta porušuje unijní nařízení o digitálních službách (DSA). Návykový design zahrnuje například takzvané nekonečné posouvání, automatické přehrávání videí, tzv. push notifikace, kdy aplikace uživatele vybízí k návratu do jejího prostředí, či vysoce personalizovaný algoritmus, který rychle pozná, co uživatele baví a snaží

    … více »
    Ladislav Hagara | Komentářů: 19
    10.7. 12:11 | Nová verze

    Byla vydána verze 1.97.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.

    Ladislav Hagara | Komentářů: 0
    10.7. 05:00 | IT novinky

    Švýcarská společnost Punkt. má nově v nabídce telefon Punkt. MC03. Telefon byl navržen ve Švýcarsku s důrazem na soukromí a digitální suverenitu a vyroben v Německu. V telefonu běží operační systém AphyOS (Apostrophy OS) založený na AOSP (Android Open Source Project) 15. Cena telefonu je 745 eur.

    Ladislav Hagara | Komentářů: 27
    10.7. 04:44 | Nová verze

    TypeScript (Wikipedie), tj. JavaScript rozšířený o statické typování a další atributy, byl vydán v nové verzi 7.0. Kompilátor byl kvůli výkonu přepsán z TypeScriptu do Go.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (11%)
     (7%)
     (2%)
     (17%)
     (31%)
     (4%)
     (6%)
     (2%)
     (15%)
     (25%)
    Celkem 2118 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník


    Autentizácia v Linuxe pomocou PAM

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

    Č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: 63 | 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.