PAM kasutamine Debianiga

Allikas: Kuutõrvaja

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.

Kasulikud lisamaterjalid