PAM

Linux.fista
Versio hetkellä 3. heinäkuuta 2016 kello 22.30 – tehnyt Oselotti (keskustelu | muokkaukset)
(ero) ← Vanhempi versio | Nykyinen versio (ero) | Uudempi versio → (ero)
Siirry navigaatioon Siirry hakuun

PAM (Pluggable Authentication Modules) on Linuxissa käytettävä käyttäjän tunnistusjärjestelmä. Sen avulla sovellus (esimerkiksi sisäänkirjautumisohjelma) voi tunnistaa käyttäjän monella eri tavalla ilman, että sovellusta tarvitsee muuttaa. Sovellus vain esittää käyttäjän tunnistuspyynnön PAM:ille, joka tunnistaa käyttäjän esimerkiksi salasanan tai sormenjäljen perusteella sen mukaan, mitä sen asetuksiin on määritetty.

Historiaa

PAM on alun perin Sun Microsystemsin 1995 kehittämä järjestelmä Solaris-käyttöjärjestelmää varten. Vuonna 1997 aloitettiin Linux-PAM-projekti, ja nykyään käytännössä kaikki Linux-jakelut käyttävät PAMia käyttäjän tunnistamiseen.

PAM syntyi tarpeesta irrottaa sovellusten autentikointimekanismit erillisiksi moduuleiksi. Ennen PAM:ia jokaisessa sovelluksessa, jonka tarvitsi tunnistaa käyttäjä, oli oma toteutuksensa. Tyypillisesti nämä toteutukset samaa /etc/passwd-tiedostoa kuin login-ohjelma, mikä johti siihen, että jokainen sovellus keksi pyörän uudestaan. Lisäksi tämä järjestely oli hyvin jäykkä, tehden vaikeaksi uusien salasanojen salausatapojen käyttöönoton tai siirtymisen /etc/shadow-tiedoston käyttöön.

PAM ratkaisee nämä ongelmat toimimalla eräänlaisena ristikytkentätauluna autentikointipalveluja tarvitsevien palvelujen ja erilaisten autentikointimekanismien välillä. Järjestely on joustava – sovelluksen käyttämä tunnistusmekanismi on vaihdettavissa konfiguraatiotiedostoa muokkaamalla, joten ohjelmakoodia ei tarvitse muuttaa. PAM mahdollistaa myös uusien tunnistusmekanismien käyttöönoton luomalla uusia PAM-moduuleja, joita jo olemassa olevat sovellukset pystyvät suoraan käyttämään.

Linux-PAMin lisäksi on olemassa mm. FreeBSD:n käyttämä OpenPAM. Nämä kaikki ovat avoimen PAM-standardin mukaisia.

Toiminta

Ennen tietokoneen käyttöä on Linuxissa käyttäjän kirjauduttava sisään, eli sovellusten (esim. sisäänkirjautumisohjelman) on pystyttävä tunnistamaan käyttäjä. Ilman PAMia sovelluksiin on toteutettava tuki kaikille mahdollisille tunnistusmenetelmille, joita halutaan käyttää. Tällöin moniin sovelluksiin olisi hankalaa toteuttaa tuki esimerkiksi sormenjälkitunnistimille.

Toisaalta kun sovellus käyttää PAMia, se voi pyytää PAMia tunnistamaan käyttäjän. PAM lukee asetustiedostosta, millä tavalla käyttäjän tunnistus halutaan tehdä, tekee tunnistuksen tällä tavalla ja palauttaa sovellukselle tiedon tunnistautumisen onnistumisesta. Tällöin sovellus ei itsessään ota kantaa tapaan, jolla käyttäjä tunnistetaan: sovelluksen kannalta on aivan sama, antaako käyttäjä salasanansa vai käyttääkö esimerkiksi silmän iirikseen perustuvaa tunnistusta.

PAMin rakenne on modulaarinen, joten sen kanssa voidaan käyttää uusia tunnistautumistapoja tuovia moduuleita. Esimerkki tällaisesta moduulista on Thinkfinger, joka lisää PAMiin tuen tietyille sormenjälkitunnistimille.

Asetukset

PAMin asetukset löytyvät tiedostosta /etc/pam.conf tai hakemistossa /etc/pam.d olevista tiedostoista. Jos /etc/pam.d-hakemisto on olemassa, tiedostoa /etc/pam.conf ei huomioida. Asetustiedostossa määritellään, mitä moduuleita käytetään käyttäjän tunnistamiseksi. Asetukset voidaan määritellä sovelluskohtaisesti. Tiedostossa pam.conf rivit ovat muotoa

palvelu tyyppi vaatimustaso moduuli asetukset

Sen sijaan hakemistossa /etc/pam.d oleville asetuksille tiedoston nimi kertoo, minkä palvelun asetukset tehdään. Esimerkiksi seuraavat asetukset ovat samat:

#/etc/pam.conf
login auth required pam_unix.so nullok_secure

ja

#/etc/pam.d/login
auth required pam_unix.so nullok_secure

Katso myös

Aiheesta muualla

  • PAM - perustietoa PAMista suomeksi