'PAM_USB'-avainsanan arkisto

[Ratkaisu] Inklusiivinen käyttöoikeustason kohotus PAM USB:n avulla

Lähtökohta
Pakettienhallinnassa pamusb-tools ja libpam-usb ovat asennettuna. Olen määritellyt PAM USB:n avulla tunnistautumismenetelmäkseni USB-porttiin kytketyn muistitikun.
Ongelma
Turvallisuuden vuoksi haluan sulkea USB-muistitikulla tunnistautumisen oletusarvoisesti pois käytöstä, ja määritellä sen erikseen käyttöönotetuksi niiden palveluiden osalta, joissa haluan sitä hyödyntää: järjestelmän asetusten tekemisen ja ylläpitotöiden vaatiman oikeustason kohotuksen yhteydessä.
Ratkaisu

Määrittelen /etc/pamusb.conf -tiedostoni alussa seuraavanlaisen osion:

<defaults>
  <option name="enable">false</option>
</defaults>

Kun olen tallentanut tiedostoon tekemäni muutokset, muistitikulla tunnistautuminen on oletusarvoisesti pois käytöstä.

Määrittelen sen jälkeen hieman alempana seuraavanlaisen osion:

<services>
  <service id="sudo">
    <option name="enable">true</option>
  </service>
  <service id="gksudo">
    <option name="enable">true</option>
  </service>
  <service id="polkit">
    <option name="enable">true</option>
  </service>
</services>

Kun olen tallentanut tiedostoon tekemäni muutokset, USB-portissa oleva muistitikku riittää tunnistautumiseksi järjestelmän asetusten tekemisen ja ylläpitotöiden vaatiman oikeustason kohotuksen yhteydessä. Sen sijaan esimerkiksi sisäänkirjautuminen ja näytön lukituksen avaaminen vaativat edelleen salasanan kirjoittamisen.

Huomautuksia
  • Tämä ratkaisu on sinänsä varsin triviaali sovellus PAM USB:n asetusten tekemisen ohjeista, mutta muiden muassa Verkko-ylläpitosovelluksen käyttäjän tunnistamisessa käyttämään PolicyKitiin liittyvää palvelun nimeä ei löytynyt suoraan annettuna mistään, joten päätin kirjata sen ylös tähän, vaikka sekin on sinänsä varsin helppo päätellä.
  • Palveluiden nimien löytämisessä on avuksi /var/log/auth.log -tiedosto. Kun muistitikulla tunnistautumisen sallii tilapäisesti oletusarvoisesti kaikkialla, tiedostoon kirjautuu halutun palvelun käytön yhteydessä seuraavanlainen rivi:

    Jun  3 10:30:20 shuttle-xpc pam_usb[17130]: Authentication request for user "jani" (polkit)

    Rivillä käyttäjätunnuksen perässä, suluissa oleva merkkijono on palvelun nimi.

  • Yllä mainittujen osioiden lisäksi olen määritellyt asetustiedostossa USB-muistitikun tunnistautumismenetelmäksi ainoastaan omalla käyttäjätunnuksellani, seuraavanlaisella osiolla:

    <users>
      <user id="jani">
        <device>
          MicroMemory
        </device>
      </user>
    </users>

    Tämä vaatii luonnollisesti asetustiedostoon lisäksi MicroMemory-nimisen määrittelyn itse muistitikulle.

[Ratkaisu] PAM USB pois päältä XScreenSaverin näytön lukituksen avauksessa

Lähtökohta

Pakettienhallinnassa xscreensaver, pamusb-tools ja libpam-usb ovat asennettuna.

Olen ottanut käyttöön XScreenSaverin näytön lukitsemisen virransäästön yhteydessä sekä pikanäppäintä painettaessa.

Olen määritellyt PAM USB:n avulla tunnistautumismenetelmäkseni USB-porttiin kytketyn muistitikun. Turvallisuuden vuoksi olen sulkenut tämän tunnistautumismenetelmän pois käytöstä työpöydän sisäänkirjautumisruudun yhteydessä (gdm-palvelu) ja konsolikirjautumisen yhteydessä (login-palvelu).

Ongelma
Haluan sulkea USB-porttiin kytketyllä muistitikulla tunnistautumisen pois käytöstä myös silloin, kun näyttö on lukittu.
Ratkaisu

Lisään /etc/pamusb.conf -tiedoston <services>...</services> -osion sisään seuraavat rivit:

<service id="xscreensaver">
  <option name="enable">false</option>
</service>

Tämän jälkeen palvelut määrittelevä asetustiedoston osa näyttää kokonaisuudessaan seuraavalta:

<!-- Services settings (e.g. gdm, su, sudo...) -->
<services>
  <!-- Disable pamusb for gdm, login and xscreensaver -->
  <!-- (display locking), a password will be asked instead. -->
  <service id="gdm">
    <option name="enable">false</option>
  </service>
  <service id="login">
    <option name="enable">false</option>
  </service>
  <service id="xscreensaver">
    <option name="enable">false</option>
  </service>
</services>

Kun olen tallentanut tiedostoon tekemäni muutokset, USB-portissa oleva muistitikku ei enää kelpaa tunnistautumismenetelmänä lukitun näytön avaamiseksi.

Huomautuksia
  • Tämä ratkaisu on sinänsä varsin triviaali sovellus PAM USB:n asetusten tekemisen ohjeissa annetusta GDM:n poissulkemisesta, mutta XScreenSaveriin liittyvää palvelun nimeä ei löytynyt suoraan annettuna mistään, joten päätin kirjata sen ylös tähän, vaikka sekin on sinänsä varsin helppo päätellä (niin kuin itse sen löysin).
  • Koska varsinaisesti haluan käyttää muistitikkutunnistautumista ainoastaan käyttöoikeustason kohottamisen (ainakin sudo ja gksudo) yhteydessä, voisi pitemmän päälle turvallisempi ratkaisu olla sellainen, jossa oletuksena (<defaults>...</defaults> -osiossa) PAM USB on pois päältä, ja määritellään käyttöön vain tietyille palveluille <services>…</services> -osiossa.