Hopp til hovedinnhold

PAM (Pluggable Authentication Modules)

Kapittel 39

PAM står for Pluggable Authentication Modules og er et fleksibelt rammeverk som brukes av Linux til autentisering. I stedet for at hver applikasjon selv implementerer innlogging, passordkontroll og sikkerhetsmekanismer, overlates dette til PAM. På den måten kan man endre eller utvide hvordan autentisering fungerer uten å endre selve programmet.

Alle applikasjoner som bruker PAM har en tilhørende konfigurasjonsfil i katalogen /etc/pam.d. Navnet på filen tilsvarer applikasjonen. For eksempel:


/etc/pam.d/sshd → konfigurasjon for SSH-innlogging
/etc/pam.d/su → konfigurasjon for su-kommandoen
/etc/pam.d/sudo → konfigurasjon for sudo

En PAM-konfigurasjonsfil består av regler med fire hovedfelt:


Modul-type → auth, account, password eller session
Kontroll → hvordan systemet skal reagere om modulen feiler (for eksempel required, sufficient, optional)
Modulnavn → selve PAM-modulen (for eksempel pam_unix.so)
Argumenter → valg for modulen (for eksempel nullok for å tillate tomme passord)

Eksempel på en typisk linje i en PAM-fil:

auth required pam_unix.so

Dette betyr at brukeren må autentiseres med pam_unix (standard Linux-passordmodul), og at autentisering er obligatorisk (required).

Vanlige modultyper i PAM:

auth → styrer innlogging og passordkontroll
account → styrer tilgang basert på kontoinformasjon (for eksempel om kontoen er låst eller passordet er utløpt)
password → styrer endring av passord
session → kjører regler ved innlogging og utlogging (for eksempel logging eller ressursgrenser)

Vanlige moduler:

pam_unix.so → standard passordbasert autentisering (lokale brukere)
pam_env.so → setter miljøvariabler
pam_tally2.so → kan brukes til å blokkere konto etter et visst antall feilede forsøk
pam_limits.so → håndhever grenser fra /etc/security/limits.conf

Fordelen med PAM er fleksibilitet – du kan for eksempel legge inn tofaktor-autentisering eller strengere regler for passord uten å endre applikasjonen, kun ved å endre PAM-moduler.

Hurtigoversikt

/etc/pam.d/ → konfigurasjonsfiler for applikasjoner som bruker PAM
auth → autentisering (innlogging)
account → kontosjekk (låst, passord utløpt osv.)
password → håndterer endring av passord
session → regler ved innlogging/utlogging

pam_unix.so → standard lokal passordkontroll
pam_env.so → miljøvariabler
pam_tally2.so → blokkere konto etter feilforsøk
pam_limits.so → håndhever ressursgrenser
Robert Kristoffersen
Fullstack-utvikler • Webno