Più sicurezza con il PAM

PAM

 

Avete presente quando dovete terminare un'operazione bancaria, e vi chiede un codice che sta su una chiavetta per procedere con la vostra transizione? Quello è un ulteriore sistema di protezione a quelli già presenti, che sfrutta potenti algoritmi per generare numeri pseudocasuali e terminare l'operazione.
Ora, legandoci ai vari post precedenti sulla sicurezza informatica, ci chiediamo: è possibile utilizzare questa tecnologia per un ulteriore protezione sul nostro computer?
La risposta è si e si chiama pam.


INTRODUZIONE
PAM, che sta per pluggable authentication modules, è un sistema in più di autenticazione implementato a basso livello, attraverso dei moduli, in modo tale che, se si deve sviluppare un'applicazione che necessita di autenticazione, non ci si deve preoccupare di creare un'ulteriore procedura per autenticarsi, perché essa è già sviluppata con questi moduli.
Il pam è la stessa cosa dei token bancari spiegati precedentemente, in sostanza oltre alla solita password, con questa tecnica ci viene chiesto anche un codice pseudocasuale.

In questo post vedremo come installare e configurare il nostro pam.

Noi utilizzeremo un'applicazione di Google che è stata progettata proprio per questo scopo, si chiama Google Authenticator, la installeremo sia sul nostro computer, che sul nostro smartphone, per il download basta andare nel Play store, ed è disponibile anche per iOS e BlackBerry.

Sul computer, invece, installeremo il programma di Google Authenticator e se volete spulciare il codice sorgente potete andare su GitHub.

INSTALLAZIONE
Siccome il programma si trova già nei repository, apriamo un terminale e diamo il seguente comando:

 

sudo apt-get install libpam-google-authenticator

 

E per chi ha Fedora:

 

sudo yum google-authenticator

 

Ricordiamoci anche di scaricare l'applicazione dallo store sul nostro smartphone.


CONFIGURAZIONE
Una volta installato non ci resta che creare la nostra chiave di autenticazione e configurare l'app.

Quindi da terminale digitiamo:

 

google-authenticator

 

Come prima cosa ci chiederà se vogliamo che la nostra chiave si basi sul tempo, noi scriviamo “y” e diamo invio.


dom1


Dopo di che ci mostrerà la nostra nuova chiave, quella che dobbiamo inserire nella nostra applicazione sullo smartphone per la configurazione, da notare che la chiave è fornita anche con un codice qr, infatti nella configurazione possiamo scegliere se mettere la chiave oppure utilizzare il codice.
Sotto ci sono anche dei codici di emergenza, utili nel caso in cui il nostro telefono esplodesse e non ci sarebbe più possibilità di ottenere la chiave da esso.
Sotto ancora c'è un'altra domanda, e rispondiamo anche qui con “y” (in pratica a tutte le domande risponderemo “y” xD).


dom2


Dopo questo passaggio ci chiede se va bene che si aggiorni ogni 30 secondi, noi rispondiamo di si, perché rende questa autenticazione più sicura da attacchi “man in the middle”.

 

dom3


Nella quarta domanda ci avverte che tra i 30 secondi ci sarà un extra token prima e dopo questo tempo e se abbiamo problemi con la sincronizzazione oraria dei due dispositivi, di cambiare il range di tempo concesso, anche qui rispondiamo “y”.


dom4


Nella domanda successiva, imponiamo un limite massimo di 3 login ogni 30 secondi, per evitare attacchi brute force.


dom5


Ora abbiamo finito, quindi procediamo con la configurazione dal nostro smartphone, quindi apriamo l'applicazione e iniziamo la configurazione di un nuovo account.
Ci apparirà una schermata del genere:


phone


Noi clicchiamo su “inserisci la chiave fornita”.
Nella schermata successiva, nel primo slot scriviamo il nome del nostro computer e nel secondo mettiamo il “secret key” fornitoci prima nella configurazione da terminale.


configPhone


Ora non ci resta che decidere dove inserire l'autenticazione tramite chiave.

Se noi apriamo il terminale e scriviamo:

 

ls /etc/pam.d

 

Vedremo dove sarà possibile applicare l'autenticazione con la chiave.


lsPam


Per esempio vogliamo usarla all'autenticazione del sistema? Allora apriamo il file del login manager grafico che nel caso di Ubuntu è "lightdm" e nel caso di Fedora è "gdm-authlogin":

 

sudo nano /etc/pam.d/lightdm

 

e aggiungiamo la seguente riga al fondo:

 

auth required pam_google_authenticator.so nullok

 

Il nullok serve agli utenti che non hanno utilizzato Google Authenticator, a loro la chiave non verrà chiesta.

Una volta salvato il file con questa riga, al prossimo accesso ci verrà chiesto il codice di autenticazione, che troveremo sull'applicazione sul nostro cellulare.

Volendo possiamo usare questa tecnica di autenticazione anche con SSH, in questo caso aggiungiamo la riga che abbiamo messo prima al seguente file:

 

sudo nano /etc/pam.d/sshd

 

Ed editiamo nel file:

 

sudo nano /etc/ssh/sshd_config

 

La seguente riga da:

 

ChallengeResponseAuthentication no

 

mettiamo "yes" al posto di "no":

 

ChallengeResponseAuthentication yes

 

In questo modo dopo la password ci chiede anche la chiave.


CONCLUSIONE
La sicurezza nell'ultimo periodo è sempre di più al centro dell'attenzione, dato che il furto dei dati è sempre più frequente.
Con questa tecnica del PAM che vi abbiamo fatto vedere, proteggersi è diventato molto più facile, grazie al fatto di poter combinare lo smartphone con il proprio computer.

 

FONTI:
- Immagini Joel Garia;

 

Dottore in Informatica. Da sempre appassionato di Linux, reti informatiche, sicurezza e, in modo amatoriale, all'elettronica. Il mio intento è quello di trasmettere le mie conoscenze ad altri appassionati.

Lascia un commento