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í
×
    dnes 16:11 | Nová verze

    Bylo oznámeno (cs) vydání Fedora Linuxu 40. Přehled novinek ve Fedora Workstation 40 a Fedora KDE 40 na stránkách Fedora Magazinu. Současně byl oznámen notebook Slimbook Fedora 2.

    Ladislav Hagara | Komentářů: 3
    dnes 13:44 | Upozornění

    ČTK (Česká tisková kancelář) upozorňuje (X), že na jejím zpravodajském webu České noviny byly dnes dopoledne neznámým útočníkem umístěny dva smyšlené texty, které nepocházejí z její produkce. Jde o text s titulkem „BIS zabránila pokusu o atentát na nově zvoleného slovenského prezidenta Petra Pelligriniho“ a o údajné mimořádné prohlášení ministra Lipavského k témuž. Tyto dezinformace byly útočníky zveřejněny i s příslušnými notifikacemi v mobilní aplikaci Českých novin. ČTK ve svém zpravodajském servisu žádnou informaci v tomto znění nevydala.

    Ladislav Hagara | Komentářů: 13
    dnes 13:33 | Komunita

    Byla založena nadace Open Home Foundation zastřešující více než 240 projektů, standardů, ovladačů a knihoven (Home Assistant, ESPHome, Zigpy, Piper, Improv Wi-Fi, Wyoming, …) pro otevřenou chytrou domácnost s důrazem na soukromí, možnost výběru a udržitelnost.

    Ladislav Hagara | Komentářů: 0
    dnes 13:00 | Nová verze

    Společnost Meta otevírá svůj operační systém Meta Horizon OS pro headsety pro virtuální a rozšířenou realitu. Vedle Meta Quest se bude používat i v připravovaných headsetech od Asusu a Lenova.

    Ladislav Hagara | Komentářů: 0
    dnes 04:33 | IT novinky

    Společnost Espressif (ESP8266, ESP32, …) získala většinový podíl ve společnosti M5Stack, čímž posiluje ekosystém AIoT.

    Ladislav Hagara | Komentářů: 0
    včera 23:44 | Nová verze

    Byla vydána nová stabilní verze 3.5 svobodného multiplatformního softwaru pro editování a nahrávání zvukových souborů Audacity (Wikipedie). Přehled novinek také na YouTube. Nově lze využívat cloud (audio.com). Ke stažení je oficiální AppImage. Zatím starší verze Audacity lze instalovat také z Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    včera 16:44 | Zajímavý článek

    50 let operačního systému CP/M, článek na webu Computer History Museum věnovaný operačnímu systému CP/M. Gary Kildall z Digital Research jej vytvořil v roce 1974.

    Ladislav Hagara | Komentářů: 2
    včera 16:22 | Pozvánky

    Byl zveřejněn program a spuštěna registrace na letošní konferenci Prague PostgreSQL Developer Day, která se koná 4. a 5. června. Na programu jsou 4 workshopy a 8 přednášek na různá témata o PostgreSQL, od konfigurace a zálohování po využití pro AI a vector search. Stejně jako v předchozích letech se konference koná v prostorách FIT ČVUT v Praze.

    TomasVondra | Komentářů: 0
    včera 03:00 | IT novinky

    Po 48 letech Zilog končí s výrobou 8bitového mikroprocesoru Zilog Z80 (Z84C00 Z80). Mikroprocesor byl uveden na trh v červenci 1976. Poslední objednávky jsou přijímány do 14. června [pdf].

    Ladislav Hagara | Komentářů: 6
    včera 02:00 | IT novinky

    Ještě letos vyjde Kingdom Come: Deliverance II (YouTube), pokračování počítačové hry Kingdom Come: Deliverance (Wikipedie, ProtonDB Gold).

    Ladislav Hagara | Komentářů: 13
    KDE Plasma 6
     (72%)
     (10%)
     (2%)
     (17%)
    Celkem 695 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    Autentizácia v Linuxe pomocou PAM

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

    Č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: 72 | 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: 62 | 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.