PAM: Difference between revisions

From ICO wiki
Jump to navigationJump to search
No edit summary
No edit summary
Line 1: Line 1:
Sissejuhatus
===Sissejuhatus===
 
PAM ehk Pluggable authentication modules on mehhanism,  kus on mitu madala-taseme autentimise skeemi  integreeritud ühte kõrgeima taseme API’sse.
Sellega saavad audentimist nõudmavad rakendused  kasutada PAM API’t , sõltumata sellest missugused autentimise mehhanismid on PAM’i taga.
PAM töötati välja SUN Microsystems’i poolt. See ilmus esimesena RFC-s (Open Software Foundation Request for Comments’is) 1995.aasta oktoobris.
PAM on adapteeritud Common Desktop Enviroment’i autentimisraamistikus.
Omaette infrastruktuurina, Ilmus PAM avatud lähtekoodiga, Linuxi-PAM’ina,(arendatud Red Hat Linux 3.0.4 ’i poolt) augustis 1996.
PAM on praegu toetatud AIX operatsioonisüsteemide DragonFly BSD’e,FreeBSD’e, HP-UX’i, Linux’i, Mac OS X’i, NetBSD’e ja Solaris’e poolt.
Standartiseeritud X/OPEN UNIX standartiseerimise projekti raames. Viimase tulemusena on saanud ametliku nimetuse “X/Open Single Sign-on standart”.
PAM-i toetab ka Mac OS X.
==Tehnilised faktid==:


PAM ehk Pluggable authentication modules on mehhanism,  kus on mitu madala-taseme autentimise skeemi  integreeritud ühte kõrgeima taseme API’sse. Sellega saavad audentimist nõudmavad rakendused  kasutada PAM API’t , sõltumata sellest missugused autentimise mehhanismid on PAM’i taga.
PAM töötati välja SUN Microsystems’i poolt. See ilmus esimesena RFC-s (Open Software Foundation Request for Comments’is) 1995.aasta oktoobris. PAM on adapteeritud Common Desktop Enviroment’i autentimisraamistikus. Omaette infrastruktuurina, Ilmus PAM avatud lähtekoodiga, Linuxi-PAM’ina,(arendatud Red Hat Linux 3.0.4 ’i poolt) augustis 1996.
PAM on praegu toetatud AIX operatsioonisüsteemide DragonFly BSD’e,FreeBSD’e, HP-UX’i, Linux’i, Mac OS X’i, NetBSD’e ja Solaris’e poolt. Standartiseeritud X/OPEN UNIX standartiseerimise projekti raames. Viimase tulemusena on saanud ametliku nimetuse “X/Open Single Sign-on standart”. PAM-i toetab ka Mac OS X.
Tehnilised faktid:
o PAM kasutab dünaamiliselt seotud  koodi.  
o PAM kasutab dünaamiliselt seotud  koodi.  
o Juhul kui dünaamiline algorütm ei tööta , siis rakendatakse  PAM’is tagavara staatiline linkimise algorütm.
o Juhul kui dünaamiline algorütm ei tööta , siis rakendatakse  PAM’is tagavara staatiline linkimise algorütm.
o PAM-i realisatsioonid ei tööta sarnaselt – nt. Linux’i ja NetBSD PAM’id on suhteliselt erinevad.
o PAM-i realisatsioonid ei tööta sarnaselt – nt. Linux’i ja NetBSD PAM’id on suhteliselt erinevad.
o Standartse Linux’i autentimise skeem kasutab PAM’i juurdepääsu õiguste kontrollimiseks.
o Standartse Linux’i autentimise skeem kasutab PAM’i juurdepääsu õiguste kontrollimiseks.
o Vaikimisi konfiguratsiooni failid asuvad /etc/pam.d ja /etc/security
 
o Vaikimisi konfiguratsiooni failid asuvad /etc/pam.d ja /etc/security .
 
o /ETC/PAM.D    on kataloog, kus saab iga rakenduse kohta ära määrate PAM-i moodulite kasutamise ehk siis teiste sõnadega ära määrata autentimise skeemi.
o /ETC/PAM.D    on kataloog, kus saab iga rakenduse kohta ära määrate PAM-i moodulite kasutamise ehk siis teiste sõnadega ära määrata autentimise skeemi.
o Näiteks paigutades mingi faili /etc/pam.d kataloogi, siis võib määrata et alguses klient autentib parooliga, kui see klappib siis tema rühma ja kasutaja nime kontrollitakse access_list mooduli kaudu, siis kontrollitakse kas IP aadress (kui on) klapib sellele kasutajale lubatud ligipääsu õigustega.  Juhul kui tingimused pole täidetud, siis ligipääsu andmisest keeldutakse. Õnnestumise puhul võite kirjeldada ka edaspidiste kontrollimiste algorütmi – nt. pam_time mooduli järgi kontrollimine: s.t. Kontroll kas just sel päeval ja kellaajal on kasutajal õigus ligipääsemiseks.
o Näiteks paigutades mingi faili /etc/pam.d kataloogi, siis võib määrata et alguses klient autentib parooliga, kui see klappib siis tema rühma ja kasutaja nime kontrollitakse access_list mooduli kaudu, siis kontrollitakse kas IP aadress (kui on) klapib sellele kasutajale lubatud ligipääsu õigustega.  Juhul kui tingimused pole täidetud, siis ligipääsu andmisest keeldutakse. Õnnestumise puhul võite kirjeldada ka edaspidiste kontrollimiste algorütmi – nt. pam_time mooduli järgi kontrollimine: s.t. Kontroll kas just sel päeval ja kellaajal on kasutajal õigus ligipääsemiseks.
o Kõikide kontrollide õnnestumise puhul saab kasutaja ligipääsu,  aga kui vähemalt üks tingimustest ei ole kooskõlas, siis süsteem keeldub ligipääsu andmast, vaatamata sellele kas parool on õige või vale.
o Kõikide kontrollide õnnestumise puhul saab kasutaja ligipääsu,  aga kui vähemalt üks tingimustest ei ole kooskõlas, siis süsteem keeldub ligipääsu andmast, vaatamata sellele kas parool on õige või vale.
PAM
Paljude programmide kasutamine algab kasutajanime ja parooli sisestamisega. Traditsiooniliselt sisaldasid sellised programmid ise kõike vajalikku kasutaja autentimiseks. Teine võimalus on kirjutada programm ilma, et seal sisalduks autentimist toimetav osa, kuid vajadusel pöördub ta standardse välise autentimist korraldava mehhanismi poole, milleks on PAM.Programmi seisukohalt pole oluline, millist autentimismehhanismi kasutatakse või kas seda üldse kasutatakse. PAM lihtsalt teatab programmile, kas kasutaja autenditi või mitte.  Tarkvara kompileerimisel on võimalik näidata, kas soovitakse saada PAMi toetust või mitte.


Kui PAM ei ole Linuxi distributsiooni osaks vaikimisi, siis tuleks kaaluda uuendamist uuemale distributsioonile. PAM-i kasutamine mitte ainult ei saa muuta süsteemi turvalisemaks, vaid see võib aidata ka lahendada hulgaliselt ebamugavaid ühilduvuse konflikte turvalisuse vajaduste vahel näiteks nagu shadow ja MD5 ja teenuseid, mida on vaja failidesse pääsemiseks.  PAM’i toetust süsteemis saab kontrollida nimetatud kataloogide ja failide olemasoluga:
===PAM===
 
Paljude programmide kasutamine algab kasutajanime ja parooli sisestamisega. Traditsiooniliselt sisaldasid sellised programmid ise kõike vajalikku kasutaja autentimiseks.
Teine võimalus on kirjutada programm ilma, et seal sisalduks autentimist toimetav osa, kuid vajadusel pöördub ta standardse välise autentimist korraldava mehhanismi poole, milleks on PAM.
Programmi seisukohalt pole oluline, millist autentimismehhanismi kasutatakse või kas seda üldse kasutatakse. PAM lihtsalt teatab programmile, kas kasutaja autenditi või mitte.
Tarkvara kompileerimisel on võimalik näidata, kas soovitakse saada PAMi toetust või mitte.
 
Kui PAM ei ole Linuxi distributsiooni osaks vaikimisi, siis tuleks kaaluda uuendamist uuemale distributsioonile. PAM-i kasutamine mitte ainult ei saa muuta süsteemi turvalisemaks, vaid see võib aidata ka lahendada hulgaliselt ebamugavaid ühilduvuse konflikte turvalisuse vajaduste vahel näiteks nagu shadow ja MD5 ja teenuseid, mida on vaja failidesse pääsemiseks.  
  PAM’i toetust süsteemis saab kontrollida nimetatud kataloogide ja failide olemasoluga:
 
• / etc / pam.conf
• / etc / pam.conf


Line 27: Line 47:
Kui mõni neist on olemas, oled ilmselt heas suhtes PAM-enabled autentimine teenustega. Ärge eksige: Siin pole peaaegu mõtet kasutada variparoole ilma PAM paigalduseta ja shadowm on rohkem kui hädavajalik turvaline süsteem.
Kui mõni neist on olemas, oled ilmselt heas suhtes PAM-enabled autentimine teenustega. Ärge eksige: Siin pole peaaegu mõtet kasutada variparoole ilma PAM paigalduseta ja shadowm on rohkem kui hädavajalik turvaline süsteem.


ldd
==ldd==
Kui klientprogrammiga pöördutakse serveri poole, siis peab PAMi moodulitega oskama suhelda mitte autentimisega seotud klientprogramm, vaid vastav server, näiteks sshd, gdm, vsftpd. Kas see on nii, võib järele vaadata programmiga ldd :
 
bash# ldd /usr/bin/passwd  
Kui klientprogrammiga pöördutakse serveri poole, siis peab PAMi moodulitega oskama suhelda mitte autentimisega seotud klientprogramm, vaid vastav server, näiteks sshd, gdm, vsftpd.  
Kas see on nii, võib järele vaadata programmiga ldd :
 
  bash# ldd /usr/bin/passwd  
         libdl.so.2 => /lib/libdl.so.2 (0x40019000)
         libdl.so.2 => /lib/libdl.so.2 (0x40019000)
libpam.so.0 => /lib/libpam.so.0 (0x4001d000)
libpam.so.0 => /lib/libpam.so.0 (0x4001d000)
Line 39: Line 62:
libnsl.so.1 => /lib/libnsl.so.1 (0x40191000)
libnsl.so.1 => /lib/libnsl.so.1 (0x40191000)


Moodulid
===Moodulid===
 
Erinevate autentimissüsteemide kasutamiseks on vaja kasutada vastavaid PAMi mooduleid.  
Erinevate autentimissüsteemide kasutamiseks on vaja kasutada vastavaid PAMi mooduleid.  
Moodulid asuvad kataloogis /lib/security.  
Moodulid asuvad kataloogis /lib/security.  
Mõningad tähtsamad PAM moodulid:
 
==Mõningad tähtsamad PAM moodulid:==
 
pam_access – ligipääsu map kasutaja/rühm vs. Lokaal ligipääs või IP aadress
pam_access – ligipääsu map kasutaja/rühm vs. Lokaal ligipääs või IP aadress
pam_cracklib – parooli tugevuse kontrollskeem.  
pam_cracklib – parooli tugevuse kontrollskeem.  
pam_deny – blacklist kasutajatest, kellele on ligipääs keelatud.
pam_deny – blacklist kasutajatest, kellele on ligipääs keelatud.
pam_securetty – nimekiri konsoolidest kust root’ile on lubatud ligipääs.
pam_securetty – nimekiri konsoolidest kust root’ile on lubatud ligipääs.
pam_limits – võimalik limiteerida kasutajatele ligipääsu resurssidele.
pam_limits – võimalik limiteerida kasutajatele ligipääsu resurssidele.
Spetsiaalsed moodulid, mis võimaldavad:  
 
 
=Spetsiaalsed moodulid, mis võimaldavad:=
• pam_time.so - reguleerida programmi kasutamist ajaliselt  
• pam_time.so - reguleerida programmi kasutamist ajaliselt  
• pam_cracklib.so - tagada, et paroolivahetamisel ei valita liiga lihtsat parooli  
• pam_cracklib.so - tagada, et paroolivahetamisel ei valita liiga lihtsat parooli  
• pam_console.so - määrata millisest terminalist saab programmi käivitada  
• pam_console.so - määrata millisest terminalist saab programmi käivitada  
• pam_deny.so - programmi ei saa käivitada  
• pam_deny.so - programmi ei saa käivitada  
• pam_permit.so - programmi lubatakse käivitada alati  
• pam_permit.so - programmi lubatakse käivitada alati  


   
   
PAMi konfigureerimine
===PAMi konfigureerimine===
PAMi konfigureerimine toimub vaikimisi kataloogis /etc/pam.d sisalduvate failide redigeerimisel. Autentimist vajav programm pöördub omanimelise teenuse konfiguratsioonifaili poole. Näiteks programmile passwd vastav PAMi konfiguratsioonifaili /etc/pam.d/passwd sisu võiks olla selline:
 
PAMi konfigureerimine toimub vaikimisi kataloogis /etc/pam.d sisalduvate failide redigeerimisel.  
Autentimist vajav programm pöördub omanimelise teenuse konfiguratsioonifaili poole. Näiteks programmile passwd vastav PAMi konfiguratsioonifaili /etc/pam.d/passwd sisu võiks olla selline:
 
auth      required /lib/security/pam_pwdb.so shadow nullok
auth      required /lib/security/pam_pwdb.so shadow nullok
account    required /lib/security/pam_pwdb.so
account    required /lib/security/pam_pwdb.so
password  required /lib/security/pam_cracklib.so retry=3
password  required /lib/security/pam_cracklib.so retry=3
password  required /lib/security/pam_pwdb.so use_authtok nullok md5 shadow
password  required /lib/security/pam_pwdb.so use_authtok nullok md5 shadow
PAMi teenuse poole pöördumine lõppeb, kui kasutaja autentime õnnestus või ei õnnestunud.
PAMi teenuse poole pöördumine lõppeb, kui kasutaja autentime õnnestus või ei õnnestunud.
Konfiguratsioonifaili süntaks on selline  
 
moodulitüüp  kontrollvõti  mooduli-fail  [argumendid]
Konfiguratsioonifaili süntaks on selline:
 
    moodulitüüp  kontrollvõti  mooduli-fail  [argumendid]
 
 
• Moodulitüüp - Iga moodulitüübi kontroll lõpeb õnnestumisega või ebaõnnestumisega. Iga teenuse puhul ei pruugi olla kõik moodulitüübid kasutatud.  
• Moodulitüüp - Iga moodulitüübi kontroll lõpeb õnnestumisega või ebaõnnestumisega. Iga teenuse puhul ei pruugi olla kõik moodulitüübid kasutatud.  
Moodulitüübid:
 
    Moodulitüübid:
 
o auth - autendib kasutaja ja annab talle nt tema grupist tulenevad õigused.
o auth - autendib kasutaja ja annab talle nt tema grupist tulenevad õigused.
o account - otsustab, kas kasutajat teenindada.
o account - otsustab, kas kasutajat teenindada.
o session - asjad, mis on vaja teha peale sisselogimist.
o session - asjad, mis on vaja teha peale sisselogimist.
o password - korraldab parooli muutmist  
o password - korraldab parooli muutmist  
• Kontrollvõti - sama moodulitüüp võib olla kirjeldatud mitmel järjestikusel moodustades pinu. PAMi moodulitüübi õnnestumise määrab moodulitüübi pinu kogutulemus, mis on määratud kontrollvõtmetega:
• Kontrollvõti - sama moodulitüüp võib olla kirjeldatud mitmel järjestikusel moodustades pinu. PAMi moodulitüübi õnnestumise määrab moodulitüübi pinu kogutulemus, mis on määratud kontrollvõtmetega:
Kontrollvõtmed:
 
    Kontrollvõtmed:
o required - moodulitüübi õnnestumiseks peavad kõik read õnnestuma. Kui pinu rida ei õnnestu, liigutakse pinus siiski edasi, pinu lõpus teatatakse kasutajale õnnestumisest või ebaõnnestumisest.
o required - moodulitüübi õnnestumiseks peavad kõik read õnnestuma. Kui pinu rida ei õnnestu, liigutakse pinus siiski edasi, pinu lõpus teatatakse kasutajale õnnestumisest või ebaõnnestumisest.
o requisite - moodulitüübi mitteõnnestumiseks peab selle võtmega rida õnnestuma. Kui rida ei õnnestu antakse kontroll otsekohe koos veateatega teenust väljakutsuvale programmile.
o requisite - moodulitüübi mitteõnnestumiseks peab selle võtmega rida õnnestuma. Kui rida ei õnnestu antakse kontroll otsekohe koos veateatega teenust väljakutsuvale programmile.
o sufficient - selle võtmega rea õnnestumine toob kaasa moodulitüübi õnnestumise juhul, kui varasemad required on õnnestunud; järgnevad required ei loe.
o sufficient - selle võtmega rea õnnestumine toob kaasa moodulitüübi õnnestumise juhul, kui varasemad required on õnnestunud; järgnevad required ei loe.
o optional - suva, kasutatakse näiteks logiks.
o optional - suva, kasutatakse näiteks logiks.
• Moodulifail - näitab kus asub PAMi moodulile vastav fail.  
• Moodulifail - näitab kus asub PAMi moodulile vastav fail.  
• Argumendid - moodulit kontrollivad argumendid.  
• Argumendid - moodulit kontrollivad argumendid.  




Terminaliaknas:
==Terminaliaknas:==
   
   
Vaikimisi PAMi teenus other  
==Vaikimisi PAMi teenus other==
 
Kui te hooletult või lihtsalt teadmatusest PAMi konfigureerimisel vea teete, siis on võimalik, et te ei saa oma süsteemi ise ka enam sisse logida. Kui tõesti nii peaks juhtuma, siis bootige single user mode'i ja looge omale ainuke PAMi konfiguratsiooni fail /etc/pam.d/other  
Kui te hooletult või lihtsalt teadmatusest PAMi konfigureerimisel vea teete, siis on võimalik, et te ei saa oma süsteemi ise ka enam sisse logida. Kui tõesti nii peaks juhtuma, siis bootige single user mode'i ja looge omale ainuke PAMi konfiguratsiooni fail /etc/pam.d/other  
auth    required      pam_unix_auth.so
 
account  required      pam_unix_acct.so
    auth    required      pam_unix_auth.so
password required      pam_unix_passwd.so
    account  required      pam_unix_acct.so
session  required      pam_unix_session.so
    password required      pam_unix_passwd.so
other on PAMi teenus, mida kasutatakse, kui kliendi poolt nõutavale pole vastavat konfiguratsioonifaili. Toodud fail vastab traditsioonilisele UNIXi autentimisskeemile.  
    session  required      pam_unix_session.so
Veel PAM-i installeerimise ja konfiguratsiooni kohta:
 
other on PAMi teenus, mida kasutatakse, kui kliendi poolt nõutavale pole vastavat konfiguratsioonifaili. Toodud fail vastab traditsioonilisele UNIXi autentimisskeemile.
=Veel PAM-i installeerimise ja konfiguratsiooni kohta:=
 
http://www.linuxfromscratch.org/blfs/view/svn/postlfs/linux-pam.html
http://www.linuxfromscratch.org/blfs/view/svn/postlfs/linux-pam.html
Kasutatud kirjandus:
 
===Kasutatud kirjandus:===
 
http://www.linuxjournal.com/magazine/pammdashsecuring-linux-boxes-everywhere?page=0,0
http://www.linuxjournal.com/magazine/pammdashsecuring-linux-boxes-everywhere?page=0,0
http://www.kesoftware.com/emu-32-installupgrade-notes/unix-setup-pam.html
http://www.kesoftware.com/emu-32-installupgrade-notes/unix-setup-pam.html

Revision as of 15:33, 19 November 2011

Sissejuhatus

PAM ehk Pluggable authentication modules on mehhanism, kus on mitu madala-taseme autentimise skeemi integreeritud ühte kõrgeima taseme API’sse.

Sellega saavad audentimist nõudmavad rakendused  kasutada PAM API’t , sõltumata sellest missugused autentimise mehhanismid on PAM’i taga. 

PAM töötati välja SUN Microsystems’i poolt. See ilmus esimesena RFC-s (Open Software Foundation Request for Comments’is) 1995.aasta oktoobris.

PAM on adapteeritud Common Desktop Enviroment’i autentimisraamistikus. 

Omaette infrastruktuurina, Ilmus PAM avatud lähtekoodiga, Linuxi-PAM’ina,(arendatud Red Hat Linux 3.0.4 ’i poolt) augustis 1996. PAM on praegu toetatud AIX operatsioonisüsteemide DragonFly BSD’e,FreeBSD’e, HP-UX’i, Linux’i, Mac OS X’i, NetBSD’e ja Solaris’e poolt. Standartiseeritud X/OPEN UNIX standartiseerimise projekti raames. Viimase tulemusena on saanud ametliku nimetuse “X/Open Single Sign-on standart”.

PAM-i toetab ka Mac OS X.

==Tehnilised faktid==:

o PAM kasutab dünaamiliselt seotud koodi.

o Juhul kui dünaamiline algorütm ei tööta , siis rakendatakse PAM’is tagavara staatiline linkimise algorütm.

o PAM-i realisatsioonid ei tööta sarnaselt – nt. Linux’i ja NetBSD PAM’id on suhteliselt erinevad.

o Standartse Linux’i autentimise skeem kasutab PAM’i juurdepääsu õiguste kontrollimiseks.

o Vaikimisi konfiguratsiooni failid asuvad /etc/pam.d ja /etc/security .

o /ETC/PAM.D on kataloog, kus saab iga rakenduse kohta ära määrate PAM-i moodulite kasutamise ehk siis teiste sõnadega ära määrata autentimise skeemi.

o Näiteks paigutades mingi faili /etc/pam.d kataloogi, siis võib määrata et alguses klient autentib parooliga, kui see klappib siis tema rühma ja kasutaja nime kontrollitakse access_list mooduli kaudu, siis kontrollitakse kas IP aadress (kui on) klapib sellele kasutajale lubatud ligipääsu õigustega. Juhul kui tingimused pole täidetud, siis ligipääsu andmisest keeldutakse. Õnnestumise puhul võite kirjeldada ka edaspidiste kontrollimiste algorütmi – nt. pam_time mooduli järgi kontrollimine: s.t. Kontroll kas just sel päeval ja kellaajal on kasutajal õigus ligipääsemiseks.

o Kõikide kontrollide õnnestumise puhul saab kasutaja ligipääsu, aga kui vähemalt üks tingimustest ei ole kooskõlas, siis süsteem keeldub ligipääsu andmast, vaatamata sellele kas parool on õige või vale.

PAM

Paljude programmide kasutamine algab kasutajanime ja parooli sisestamisega. Traditsiooniliselt sisaldasid sellised programmid ise kõike vajalikku kasutaja autentimiseks. Teine võimalus on kirjutada programm ilma, et seal sisalduks autentimist toimetav osa, kuid vajadusel pöördub ta standardse välise autentimist korraldava mehhanismi poole, milleks on PAM. Programmi seisukohalt pole oluline, millist autentimismehhanismi kasutatakse või kas seda üldse kasutatakse. PAM lihtsalt teatab programmile, kas kasutaja autenditi või mitte.

Tarkvara kompileerimisel on võimalik näidata, kas soovitakse saada PAMi toetust või mitte. 

Kui PAM ei ole Linuxi distributsiooni osaks vaikimisi, siis tuleks kaaluda uuendamist uuemale distributsioonile. PAM-i kasutamine mitte ainult ei saa muuta süsteemi turvalisemaks, vaid see võib aidata ka lahendada hulgaliselt ebamugavaid ühilduvuse konflikte turvalisuse vajaduste vahel näiteks nagu shadow ja MD5 ja teenuseid, mida on vaja failidesse pääsemiseks.

PAM’i toetust süsteemis saab kontrollida nimetatud kataloogide ja failide olemasoluga:

• / etc / pam.conf

• / etc / pam.d /

• / lib / libpam.so .*

• / usr / lib / libpam.so .*

Kui mõni neist on olemas, oled ilmselt heas suhtes PAM-enabled autentimine teenustega. Ärge eksige: Siin pole peaaegu mõtet kasutada variparoole ilma PAM paigalduseta ja shadowm on rohkem kui hädavajalik turvaline süsteem.

ldd

Kui klientprogrammiga pöördutakse serveri poole, siis peab PAMi moodulitega oskama suhelda mitte autentimisega seotud klientprogramm, vaid vastav server, näiteks sshd, gdm, vsftpd. Kas see on nii, võib järele vaadata programmiga ldd :

  bash# ldd /usr/bin/passwd 
       libdl.so.2 => /lib/libdl.so.2 (0x40019000)

libpam.so.0 => /lib/libpam.so.0 (0x4001d000) libpam_misc.so.0 => /lib/libpam_misc.so.0 (0x40025000) libpwdb.so.0 => /lib/libpwdb.so.0 (0x40028000) libc.so.6 => /lib/libc.so.6 (0x40071000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000) libcrypt.so.1 => /lib/libcrypt.so.1 (0x40164000) libnsl.so.1 => /lib/libnsl.so.1 (0x40191000)

Moodulid

Erinevate autentimissüsteemide kasutamiseks on vaja kasutada vastavaid PAMi mooduleid. Moodulid asuvad kataloogis /lib/security.

Mõningad tähtsamad PAM moodulid:

pam_access – ligipääsu map kasutaja/rühm vs. Lokaal ligipääs või IP aadress

pam_cracklib – parooli tugevuse kontrollskeem.

pam_deny – blacklist kasutajatest, kellele on ligipääs keelatud.

pam_securetty – nimekiri konsoolidest kust root’ile on lubatud ligipääs.

pam_limits – võimalik limiteerida kasutajatele ligipääsu resurssidele.


Spetsiaalsed moodulid, mis võimaldavad:

• pam_time.so - reguleerida programmi kasutamist ajaliselt

• pam_cracklib.so - tagada, et paroolivahetamisel ei valita liiga lihtsat parooli

• pam_console.so - määrata millisest terminalist saab programmi käivitada

• pam_deny.so - programmi ei saa käivitada

• pam_permit.so - programmi lubatakse käivitada alati


PAMi konfigureerimine

PAMi konfigureerimine toimub vaikimisi kataloogis /etc/pam.d sisalduvate failide redigeerimisel. Autentimist vajav programm pöördub omanimelise teenuse konfiguratsioonifaili poole. Näiteks programmile passwd vastav PAMi konfiguratsioonifaili /etc/pam.d/passwd sisu võiks olla selline:

auth required /lib/security/pam_pwdb.so shadow nullok

account required /lib/security/pam_pwdb.so

password required /lib/security/pam_cracklib.so retry=3

password required /lib/security/pam_pwdb.so use_authtok nullok md5 shadow

PAMi teenuse poole pöördumine lõppeb, kui kasutaja autentime õnnestus või ei õnnestunud.

Konfiguratsioonifaili süntaks on selline:

    moodulitüüp   kontrollvõti   mooduli-fail   [argumendid]


• Moodulitüüp - Iga moodulitüübi kontroll lõpeb õnnestumisega või ebaõnnestumisega. Iga teenuse puhul ei pruugi olla kõik moodulitüübid kasutatud.

    Moodulitüübid:

o auth - autendib kasutaja ja annab talle nt tema grupist tulenevad õigused.

o account - otsustab, kas kasutajat teenindada.

o session - asjad, mis on vaja teha peale sisselogimist.

o password - korraldab parooli muutmist


• Kontrollvõti - sama moodulitüüp võib olla kirjeldatud mitmel järjestikusel moodustades pinu. PAMi moodulitüübi õnnestumise määrab moodulitüübi pinu kogutulemus, mis on määratud kontrollvõtmetega:

   Kontrollvõtmed:

o required - moodulitüübi õnnestumiseks peavad kõik read õnnestuma. Kui pinu rida ei õnnestu, liigutakse pinus siiski edasi, pinu lõpus teatatakse kasutajale õnnestumisest või ebaõnnestumisest.

o requisite - moodulitüübi mitteõnnestumiseks peab selle võtmega rida õnnestuma. Kui rida ei õnnestu antakse kontroll otsekohe koos veateatega teenust väljakutsuvale programmile.

o sufficient - selle võtmega rea õnnestumine toob kaasa moodulitüübi õnnestumise juhul, kui varasemad required on õnnestunud; järgnevad required ei loe.

o optional - suva, kasutatakse näiteks logiks.


• Moodulifail - näitab kus asub PAMi moodulile vastav fail.

• Argumendid - moodulit kontrollivad argumendid.


Terminaliaknas:

Vaikimisi PAMi teenus other

Kui te hooletult või lihtsalt teadmatusest PAMi konfigureerimisel vea teete, siis on võimalik, et te ei saa oma süsteemi ise ka enam sisse logida. Kui tõesti nii peaks juhtuma, siis bootige single user mode'i ja looge omale ainuke PAMi konfiguratsiooni fail /etc/pam.d/other

   auth     required       pam_unix_auth.so
   account  required       pam_unix_acct.so
   password required       pam_unix_passwd.so
   session  required       pam_unix_session.so

other on PAMi teenus, mida kasutatakse, kui kliendi poolt nõutavale pole vastavat konfiguratsioonifaili. Toodud fail vastab traditsioonilisele UNIXi autentimisskeemile.

Veel PAM-i installeerimise ja konfiguratsiooni kohta:

http://www.linuxfromscratch.org/blfs/view/svn/postlfs/linux-pam.html

Kasutatud kirjandus:

http://www.linuxjournal.com/magazine/pammdashsecuring-linux-boxes-everywhere?page=0,0 http://www.kesoftware.com/emu-32-installupgrade-notes/unix-setup-pam.html http://compute.cnr.berkeley.edu/cgi-bin/man-cgi?pam.conf+4 http://www.informit.com/articles/article.aspx?p=20968 http://www.ibm.com/developerworks/linux/library/l-pam/ http://kuutorvaja.eenet.ee/wiki/PAM


Iti Liivik A22 2011 sügis


Lingid

http://www.linuxjournal.com/article/10278