Autenticazione via token con PAM USB: differenze tra le versioni

m
m (→‎Installazione: aggiunto riferimento a Debian Jessie)
 
(12 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
{{Versioni compatibili}}
{{Versioni compatibili|ONLY|Squeeze|Wheezy|Jessie}}
== Introduzione ==
== Introduzione ==
L'autenticazione a un servizio del sistema, che si tratti del login a una console o un display manager oppure di una qualunque operazione per cui siano necessari determinati privilegi (<code>su</code>, <code>sudo</code>, ecc... ), è gestita in maniera centralizzata dalla libreria PAM e solitamente effettuata mediante la richiesta di una password associata all'utente.
L'autenticazione a un servizio del sistema, che si tratti del login a una console o un display manager oppure di una qualunque operazione per cui siano necessari determinati privilegi (<code>su</code>, <code>sudo</code>, ecc... ), è gestita in maniera centralizzata dalla libreria PAM e solitamente effettuata mediante la richiesta di una password associata all'utente.


Riga 11: Riga 10:


== Installazione ==
== Installazione ==
Il metodo di installazione varia leggermente tra Debian 6 "Squeeze" e le successive [[Wheezy]] e [[Jessie]]. Infatti è stata rimossa la dipendenza da ''HAL'' utilizzando ''UDisks'' e inoltre viene fornito un profilo di default.


Il metodo di installazione varia leggermente tra '''Debian Squeeze''' e le successive '''Wheezy''', '''Jessie''' e '''Sid'''. Infatti è stata rimossa la dipendenza da ''HAL'' utilizzando ''UDisks'' e inoltre viene fornito un profilo di default.
Purtroppo '''pamusb''' non è disponibile per Debian [[Stretch]] e successive, in quanto non è stato aggiornato per funzionare con <code>udisks2</code>, che rimpiazza <code>udisks</code> a partire da Debian Stretch.
 
=== Usando APT con Debian Squeeze ===


=== Usando APT con Debian 6 (Squeeze) ===
È sufficiente installare due pacchetti:
È sufficiente installare due pacchetti:


Riga 22: Riga 21:
Finito! Ora bisogna solo associare la memoria USB agli utenti che si desidera e creare un profilo.
Finito! Ora bisogna solo associare la memoria USB agli utenti che si desidera e creare un profilo.


=== Usando APT con Debian Wheezy, Jessie e Sid ===
=== Usando APT con Debian 7 (Wheezy) e Debian 8 (Jessie) ===
 
Anche per queste distribuzioni è sufficiente installare due pacchetti, solo che <code>pamusb-common</code> sostituisce il precedente <code>pamusb-tools</code>, che in '''Wheezy''' e successive è solo un metapacchetto presente per permettere un aggiornamento indolore, quindi installiamo direttamente il primo:
Anche per queste distribuzioni è sufficiente installare due pacchetti, solo che <code>pamusb-common</code> sostituisce il precedente <code>pamusb-tools</code>, che in '''Wheezy''' e successive è solo un metapacchetto presente per permettere un aggiornamento indolore, quindi installiamo direttamente il primo:


Riga 33: Riga 31:


== Configurazione di pamusb ==
== Configurazione di pamusb ==
L'unico requisito è la disponibilità di una penna USB, nella quale verranno salvate le password richieste per l'autenticazione nella sessione successiva.
L'unico requisito è la disponibilità di una penna USB, nella quale verranno salvate le password richieste per l'autenticazione nella sessione successiva.


Si può utilizzare la stessa per più utenti, anche se la cosa ha senso unicamente se a tali utenti del sistema corrisponde un unico utente fisico, e anche per più utenti di più sistemi, purché con hostname diverso (e per cui ancor più vale la stessa considerazione).
Si può utilizzare la stessa per più utenti, anche se la cosa ha senso unicamente se a tali utenti del sistema corrisponde un unico utente fisico, e anche per più utenti di più sistemi, purché con hostname diverso (e per cui ancor più vale la stessa considerazione).


{{Suggerimento | Non è necessario riservarla a tale utilizzo e può essere impiegata anche per altro, date le limitate esigenze di memoria di ''libpam-usb'', ma non è una buona idea per la sicurezza inserire il token quando non richiesto per l'autenticazione, in particolar modo se si prevede che la sua presenza sia sufficiente per l'esecuzione di comandi con privilegi di amministrazione.}}
{{Suggerimento | Non è necessario riservarla a tale utilizzo e può essere impiegata anche per altro, date le limitate esigenze di memoria di ''libpam-usb'', ma non è una buona idea per la sicurezza inserire il token quando non richiesto per l'autenticazione, in particolar modo se si prevede che la sua presenza sia sufficiente per l'esecuzione di comandi con [[privilegi di amministrazione]].}}


Inserire la pendrive nella porta USB e darle un nome che ci consenta di identificarla, inserendolo al posto di NOME:
Inserire la pendrive nella porta USB e darle un nome che ci consenta di identificarla, inserendolo al posto di NOME:
Riga 48: Riga 45:
Nuovamente verrà richiesta una conferma, e in caso si siano aggiunte più chiavette si potrà scegliere quale associare all'utente scelto. Per una guida passo-passo alla configurazione si veda al solito l'e-zine.  
Nuovamente verrà richiesta una conferma, e in caso si siano aggiunte più chiavette si potrà scegliere quale associare all'utente scelto. Per una guida passo-passo alla configurazione si veda al solito l'e-zine.  


Se si desidera disabilitare l'output, che in caso di autenticazione via console o terminale rende chiaro se il modulo USB è stato autenticato o meno, modificare con privilegi di amministrazione i defaults nel file <code>/etc/pamusb.conf</code>, aggiungendoci la riga con ''quiet'':
Se si desidera disabilitare l'output, che in caso di autenticazione via console o terminale rende chiaro se il modulo USB è stato autenticato o meno, modificare con [[privilegi di amministrazione]] i defaults nel file <code>/etc/pamusb.conf</code>, aggiungendoci la riga con <code>'''<option name="quiet">true</option>'''</code>:
<pre><defaults>
<pre><defaults>
     <quiet>true</quiet>
     <option name="quiet">true</option>
</defaults></pre>
</defaults></pre>
È possibile anche disabilitarlo solo per alcuni utenti e solo per alcuni servizi.
È possibile anche disabilitarlo solo per alcuni utenti e solo per alcuni servizi.
Riga 57: Riga 54:


== Creazione di un profilo ==
== Creazione di un profilo ==
Se si utilizza '''Debian Wheezy''' o una più recente, si possiede già il profilo per la '''Alternative mode'''. Non è quindi necessario fare alcunché e si può passare direttamente alla fase di test, salvo si voglia un'altra modalità.
Se si utilizza '''Debian Wheezy''' o una più recente, si possiede già il profilo per la '''Alternative mode'''. Non è quindi necessario fare alcunché e si può passare direttamente alla fase di test, salvo si voglia un'altra modalità.


Se la modalità di default non va bene o si utilizza '''Debian Squeeze''', va scelta la policy da adottare tra quelle presentate nelle sottosezioni successive. Si tratta poi di modificare (o di creare con '''Squeeze''') con privilegi di amministrazione e il proprio editor preferito il file <code>/usr/share/pam-configs/usb</code> con il contenuto scelto.
Se la modalità di default non va bene o si utilizza '''Debian Squeeze''', va scelta la policy da adottare tra quelle presentate nelle sottosezioni successive. Si tratta poi di modificare (o di creare con '''Squeeze''') con [[privilegi di amministrazione]] e il proprio editor preferito il file <code>/usr/share/pam-configs/usb</code> con il contenuto scelto.


{{Warningbox | Tutti gli utenti per cui è richiesta - e non solo sufficiente - questa forma di autenticazione devono essere aggiunti a una pendrive USB, oppure non potranno più autenticarsi al sistema. Lo stesso root, se abilitato, non fa eccezione.
{{Warningbox | Tutti gli utenti per cui è richiesta - e non solo sufficiente - questa forma di autenticazione devono essere aggiunti a una pendrive USB, oppure non potranno più autenticarsi al sistema. Lo stesso root, se abilitato, non fa eccezione.
Riga 84: Riga 80:


=== Alternative mode ===
=== Alternative mode ===
Modalità di autenticazione che prevede la richiesta di password soltanto se il token USB non è inserito. È possibile permetterla soltanto a un insieme limitato di utenti, visto che il fallimento dell'autenticazione via USB non compromette l'autenticazione, ma porta solo alla richiesta della password.
Modalità di autenticazione che prevede la richiesta di password soltanto se il token USB non è inserito. È possibile permetterla soltanto a un insieme limitato di utenti, visto che il fallimento dell'autenticazione via USB non compromette l'autenticazione, ma porta solo alla richiesta della password.


Riga 97: Riga 92:


=== Additional mode ===
=== Additional mode ===
Modalità che prevede la richiesta contemporanea di password e l'inserimento della penna USB.
Modalità che prevede la richiesta contemporanea di password e l'inserimento della penna USB.


Riga 105: Riga 99:
Default: yes
Default: yes
Priority: 257
Priority: 257
Auth-Type: Primary
Auth:
Auth:
     required      pam_usb.so</pre>
     required      pam_usb.so</pre>
Riga 111: Riga 106:


=== Unique mode ===
=== Unique mode ===
Modalità che prevede soltanto l'autenticazione via token USB.
Modalità che prevede soltanto l'autenticazione via token USB.


Riga 128: Riga 122:


=== Custom mode ===
=== Custom mode ===
Modalità personalizzata, che consente l'uso di una modalità ''Alternative'' o ''Additional'' a seconda dell'utente. Quella qui presentata richiede entrambe le forme di autenticazione per root, mentre una qualsiasi per gli altri utenti.
Modalità personalizzata, che consente l'uso di una modalità ''Alternative'' o ''Additional'' a seconda dell'utente. Quella qui presentata richiede entrambe le forme di autenticazione per root, mentre una qualsiasi per gli altri utenti.


Riga 146: Riga 139:
Quindi un utente normale soddisferà la prima condizione (''uid > 0'') e salterà una riga (''success=1''), eseguendo direttamente l'ultima che coincide con la '''Alternative mode'''. Al contrario root leggerà la seconda riga, corrispondente alla policy per la '''Additional mode'''; infatti in caso di successo salterà la terza riga e passerà ai moduli di priorità inferiore (la richiesta di password) mentre in tutti gli altri casi l'autenticazione fallirà (''default=bad''). Impostare ''default=die'' in luogo di ''default=bad'' se si vuole far capire all'utente che il fallimento è dovuto alla mancata autenticazione USB.
Quindi un utente normale soddisferà la prima condizione (''uid > 0'') e salterà una riga (''success=1''), eseguendo direttamente l'ultima che coincide con la '''Alternative mode'''. Al contrario root leggerà la seconda riga, corrispondente alla policy per la '''Additional mode'''; infatti in caso di successo salterà la terza riga e passerà ai moduli di priorità inferiore (la richiesta di password) mentre in tutti gli altri casi l'autenticazione fallirà (''default=bad''). Impostare ''default=die'' in luogo di ''default=bad'' se si vuole far capire all'utente che il fallimento è dovuto alla mancata autenticazione USB.


{{Box | Sudo | È da notare che con <code>sudo</code> verrà usata la policy dipendente dalla password richiesta, di default quella dell'utente e quindi si utilizzerebbe una modalità '''Alternative'''.
{{Box | Sudo | È da notare che con <code>sudo</code> verrà usata la policy dipendente dalla password richiesta, di default quella dell'utente che invoca il comando e quindi si userebbe una '''Alternative mode'''. Ma i comandi permessi con il tag ''NOPASSWD:'' saranno eseguibili come sempre senza alcuna forma di autenticazione.}}
 
Si può però cambiare questo comportamento, sempre che si sia abilitato <code>sudo</code>, aggiungendo ''targetpw'' ai ''Defaults'' per mezzo di <code>visudo</code>, in modo che venga richiesta la password dell'amministratore anziché quella dell'utente. Al solito la cosa ha senso solo se a loro corrisponde la stessa persona fisica, altrimenti è meglio dirigersi verso la modalità '''Additional'''.
 
Infine i comandi permessi con il tag ''NOPASSWD:'' saranno eseguibili come sempre senza alcuna forma di autenticazione.}}


== Salvare la configurazione ==
== Salvare la configurazione ==
Per rendere effettive le modifiche, una volta scelta la policy più adatta per le nostre esigenze o creata una personalizzata, sarà sufficiente eseguire il seguente comando:
Per rendere effettive le modifiche, una volta scelta la policy più adatta per le nostre esigenze o creata una personalizzata, sarà sufficiente eseguire il seguente comando:


Riga 159: Riga 147:


Se è deselezionata, spuntare la casella di "USB authentication", lasciare le altre come sono e confermare su "Ok". Verranno rigenerati i file con prefisso "<code>common-</code>" nella directory <code>/etc/pam.d</code>, richiamati da (quasi) tutti gli altri file di configurazione.
Se è deselezionata, spuntare la casella di "USB authentication", lasciare le altre come sono e confermare su "Ok". Verranno rigenerati i file con prefisso "<code>common-</code>" nella directory <code>/etc/pam.d</code>, richiamati da (quasi) tutti gli altri file di configurazione.


== Test di funzionamento ==
== Test di funzionamento ==
Per controllare se abbiamo fatto giusto, usiamo <code>pamusb-check</code> e il nome utente da verificare al posto di NOME_UTENTE:
Per controllare se abbiamo fatto giusto, usiamo <code>pamusb-check</code> e il nome utente da verificare al posto di NOME_UTENTE:


Riga 171: Riga 157:
<pre>echo $?</pre>
<pre>echo $?</pre>


Proviamo tutti gli utenti, e in particolare root se utilizziamo una modalità diversa dall\''''Alternative'''.
Proviamo tutti gli utenti, e in particolare root se utilizziamo una modalità diversa dalla '''Alternative'''.


== Disattivazione ==
== Disattivazione ==
È sufficiente eseguire '''pam-auth-update''':
È sufficiente eseguire '''pam-auth-update''':
<pre># pam-auth-update</pre>
<pre># pam-auth-update</pre>
Riga 180: Riga 165:


== Disinstallazione ==
== Disinstallazione ==
Per eliminare i pacchetti installati dal sistema è prima necessario ripristinare (in '''Debian Wheezy''' e successive contiene il profilo della '''Alternative mode''') o rimuovere il file <code>/usr/share/pam-configs/usb</code>, annullando le modifiche effettuate in fase di configurazione, e aggiornare PAM.
Per eliminare i pacchetti installati dal sistema è prima necessario ripristinare (in '''Debian Wheezy''' e successive contiene il profilo della '''Alternative mode''') o rimuovere il file <code>/usr/share/pam-configs/usb</code>, annullando le modifiche effettuate in fase di configurazione, e aggiornare PAM.


Riga 189: Riga 173:


=== APT con Debian Squeeze ===
=== APT con Debian Squeeze ===
<pre># apt-get remove libpam-usb pamusb-tools</pre>
<pre># apt-get remove libpam-usb pamusb-tools</pre>


Riga 195: Riga 178:
<pre># apt-get purge libpam-usb pamusb-tools</pre>
<pre># apt-get purge libpam-usb pamusb-tools</pre>


=== APT con Debian Wheezy e Sid ===
=== APT con Debian Wheezy e successive ===
 
<pre># apt-get remove libpam-usb pamusb-common</pre>
<pre># apt-get remove libpam-usb pamusb-common</pre>


Riga 203: Riga 185:


=== Pulizia del sistema ===
=== Pulizia del sistema ===
Per completare l'opera di pulizia del sistema si possono eliminare manualmente anche la directory <code>.pamusb</code> nella home di tutti gli utenti aggiunti a questo modulo.
Per completare l'opera di pulizia del sistema si possono eliminare manualmente anche la directory <code>.pamusb</code> nella home di tutti gli utenti aggiunti a questo modulo.


== Fonti e link aggiuntivi ==
== Fonti e link aggiuntivi ==
* [https://github.com/aluzzardi/pam_usb Sito ufficiale del modulo pamusb]
* [https://github.com/aluzzardi/pam_usb Sito ufficiale del modulo pamusb]
* [http://e-zine.debianizzati.org/web-zine/numero_4/?page=48 Articolo sull'e-zine n. 4 di debianizzati]
* [http://e-zine.debianizzati.org/web-zine/numero_4/?page=48 Articolo sull'e-zine n. 4 di debianizzati]
Riga 214: Riga 194:


{{Autori
{{Autori
|Autore = [[Utente:HAL 9000|HAL 9000]]
|Autore = [[Utente:HAL 9000|HAL 9000]] 11:28, 9 dic 2011 (CEST)
}}
}}


[[Categoria:Debian e sicurezza]]
[[Categoria:Debian e sicurezza]]
3 581

contributi