PAM kasutamine Debianiga
Sisukord
Sissejuhatus
Paljud operatsioonisüsteemid, nende hulgas Linuxi distributsioonid, sh Debian Linux kasutavad vaikimisi PAM (Pluggable Authentication Modules) tarkvara selleks, et kontrollida kasutajate pöördumisi arvuti ressursside poole. Reeglina on need sellised ressursid, mille kasutamisel toimub selline järgnevus
- kasutaja autenditakse
- kasutaja autoriseeritakse
- kasutajale moodustatakse teatud omadustega keskkond
Tõenäoliselt lõpeb ressursi kasutamine kasutaja nö välja logimisega ning lisaks võib kasutaja saada teatud juhtumitel oma parooli või muid nö kasutajaandmeid muuta.
Näiteks leiab PAM kasutamist selliste teenuste juures
- arvuti konsoolilt sisselogimine
- ssh abil arvutisse sisselogimine
- ftp serveri kasutamine
- cvs serveri kasutamine
ja tavaliselt ei leia PAM otseselt kasutamist selliste teenuste puhul
- ip pakettide ruuting läbi arvuti
- http serverile päringute esitamine
Tehnilises mõttes võimaldab PAM kasutamine käsitleda eraldi kahte probleemi
- kasutaja autentimine ja autoriseerimine (koos selle juurde käivate võimalustega, mida käesolevas palas tutvustab)
- konkreetse rakenduse poolt kasutaja teenindamine, mille poole kasutaja pöördus
PAM tarkvara
Debiani puhul paigaldatakse PAM tarkvara operatsioonisüsteemi paigaldamisel, kuid vastavalt vajadusele võib paigaldada lisamooduleid.
Vaikimisi paigaldatud PAM tarkvara moodustavad paketid
# dpkg -l | grep ii | grep pam ii libpam-modules 1.0.1-5 Pluggable Authentication Modules for PAM ii libpam-runtime 1.0.1-5 Runtime support for the PAM library ii libpam0g 1.0.1-5 Pluggable Authentication Modules library
kusjuures PAM seadistusfailid asuvad kataloogis /etc/pam.d.
PAM toetusega tarkvara võib jagada rühmadesse
- kasutajate andmebaasid, mida PAM süsteem kasutab
# apt-cache search ^libpam- ... libpam-ldap - Pluggable Authentication Module for LDAP libpam-mysql - PAM module allowing authentication from a MySQL server libpam-pgsql - PAM module to authenticate using a PostgreSQL database
- oma kasutajate autentimist PAM süsteemi abil toetavad rakendused
login sshd vsftpd cvs
- süsteemi sisenenud kasutajate jaoks sooritatakse mingi spetsiifiline toiming
libpam-chroot libpam-mount
Rakenduste kasutamine PAMiga vastu LDAP kataloogi
LDAP kataloogi tööleseadmist on suhteliselt põhjalikult kirjeldatud palas http://kuutorvaja.eenet.ee/wiki/OpenLDAP_kasutamine_Debianiga ja käesolevas punktis kirjeldatakse, millised võimalused on rakendusi vastu sellist kataloogi käima seadistada.
Järgnev on kasutatav eeldusel, et libnss-ldap ja libpam-ldap tarkvara on paigaldatud ja seadistatud.
SSH
SSH serveri käivitamiseks vastu LDAP kataloogi peaks sisaldama /etc/pam.d/sshd sellist sisu
# egrep -v "^$|^#" sshd auth required pam_env.so # [1] auth required pam_env.so envfile=/etc/default/locale auth sufficient pam_ldap.so @include common-auth account required pam_nologin.so account sufficient pam_ldap.so @include common-account @include common-session session optional pam_motd.so # [1] session optional pam_mail.so standard noenv # [1] session required pam_limits.so @include common-password
kus on standardsele /etc/pam.d/sshd seadistusfailile lisatud kaks ldap määratlusi sisaldavat rida.
Tulemuseks on, et
- süsteemi saavad endiselt siseneda lokaalses passwd-shadow-group andmebaasis sisalduvad kasutajad sh root
- süsteemi saavad sisendeda ldap kataloogis olevad kasutajad
- ldap kataloogis kasutajad ei saa oma parooli vahetada kohalike utiliitide abil (see võiks olla isegi taotluslik, et kasutajad haldavad oma kontot nt spetsiaalses veebipõhises teeninduskeskkonnas, lisaks saab nii ldap seadistustes kasutada vähem privileege)
vsftpd
vsftp serveri käivitamiseks vastu LDAP kataloogi peaks sisaldama /etc/pam.d/vsftpd sellist sisu
auth required pam_ldap.so account required pam_ldap.so
Tulemusena saavad vsftpd serverit kasutada ldap kataloogi kasutajad.
Cyrus
PAM LDAP teek sisaldub paketis libsasl2-modules-ldap, http://asg.web.cmu.edu/sasl/sasl-library.html
Sisselogimiskatsete loendur
pam_tally on sisselogimiskatsete loendur, mis töötab selliselt, et kasutaja loenduri väärtust suurendatakse igal ebaõnnestunud paroolisisestusel ning kui väärtus on saavutanud seadistatud piiri, siis kasutaja konto lukustatakse. Lukustatud kontot ei saa kasutada ka isegi siis, kui kasutaja sisestab õige parooli. Lukustamine võib kehtida ettenähtud aja või kuni spetsiaalsest süsteemiadministraator luku eemaldab.
Debian operatsioonisüsteemis esineb pam_tally libpam-modules paketi koosseisus, lisaks PAM moodulile on olemas pam_tally utiliit kontode lahtilukustamiseks.
Nt selline rida /etc/pam.d/sshd failis vaikimisi olemas oleva @include common-auth rea ees
auth required pam_tally.so deny=3 unlock_time=300 per_user # Standard Un*x authentication. @include common-auth
korraldab
- kasutajal on kolm eksimise võimalust
- konto lukustatakse 5 minutiks
pam_tally moodulit saab kasutada ka muude teenuste juures, nt /etc/pam.d/login.
Konto seisu vaatamiseks sobib öelda
# pam_tally --user mart User mart (1000) has 2
ning konto lahtilukustamiseks öelda
# pam_tally --user mart --reset
Märkused
Pakett libpam-pwdfile sisaldab otsekohest võimalust kasutajaid autentida vastu nn /etc/passwd formaadis paroolifaili.