login sin passwords con pam-usb
filed in General on Feb.26, 2009
Si estás cansado de tipear tu password para acceder al equipo, cada vez que usas sudo o para activar el protector de pantallas con contraseña, una solución extremadamente simple es usar un pendrive usb como llave de seguridad.
Si usas debian o algún derivado estos son los paquetes:
root@branca:~# apt-cache search pam | grep usb
libpam-usb - PAM module for authentication with removable USB block devices
pamusb-tools - helper tools for the pam-usb module
Instalar ambos paquetes:
root@branca:~# aptitude install libpam-usb pamusb-tools
Conectar el pendrive y verificar que se detecte correctamente:
root@branca:~# lsusb
Bus 005 Device 004: ID 13fe:1d00 Kingston Technology Company Inc. DataTraveler 2
Agregar el pendrive como dispositivo con un nombre:
root@branca:~# pamusb-conf --add-device k2g
Please select the device you wish to add.
* Using "Kingston DataTraveler 2.0 (Kingston_DataTraveler_2.0_5B7411B0A9E7-0:0)" (only option)
Which volume would you like to use for storing data ?
* Using "/dev/sdb1 (UUID: 494F-00D6)" (only option)
Name : k2g
Vendor : Kingston
Model : DataTraveler 2.0
Serial : Kingston_DataTraveler_2.0_5B7411B0A9E7-0:0
UUID : 494F-00D6
Save to /etc/pamusb.conf ?
[Y/n] Y
Done.
Agregar el usuario asociado al pendrive:
root@branca:~# pamusb-conf --add-user osiris
Which device would you like to use for authentication ?
* Using "k2g" (only option)
User : osiris
Device : k2g
Save to /etc/pamusb.conf ?
[Y/n] Y
Done.
Chequear que la autenticación funcione:
root@branca:~# pamusb-check osiris
* Authentication request for user "osiris" (pamusb-check)
* Device "k2g" is connected (good).
* Performing one time pad verification...
* Regenerating new pads...
* Access granted.
Definir el método de autentificación:
root@branca:~# vi /etc/pam.d/common-auth
auth sufficient pam_usb.so
auth required pam_unix.so nullok_secure
Verificar archivo de configuración global:
root@branca:~# vi /etc/pamusb.conf
<?xml version="1.0" ?>
<configuration>
<devices>
<device id="k2g">
<vendor>
Kingston
</vendor>
<model>
DataTraveler 2.0
</model>
<serial>
Kingston_DataTraveler_2.0_5B7411B0A9E7-0:0
</serial>
<volume_uuid>
494F-00D6
</volume_uuid>
</device></devices>
<users>
<user id="osiris">
<device>
k2g
</device>
<option name="quiet">true</option>
<agent event="lock">gnome-screensaver-command --activate</agent>
<agent event="unlock">gnome-screensaver-command -deactivate</agent>
</user></users>
</configuration>
La sección agent event es usada para bloquear el equipo con sólo quitar el pendrive y se activa el screensaver, luego para activarlo nuevamente es necesario conectar el pendrive.
Para esto es necesario que el agente este corriendo:
osiris@branca:~$ pamusb-agent
pamusb-agent[10148]: pamusb-agent up and running.
pamusb-agent[10148]: Watching device "k2g" for user "osiris"
pamusb-agent[10148]: Device "k2g" has been removed, locking down user "osiris"...
pamusb-agent[10148]: Running "gnome-screensaver-command --activate"
pamusb-agent[10148]: Locked.
pamusb-agent[10148]: Device "k2g" has been inserted. Performing verification...
pamusb-agent[10148]: Executing "/usr/bin/pamusb-check --quiet --config=/etc/pamusb.conf --service=pamusb-agent osiris"
pamusb-agent[10148]: Authentication succeeded. Unlocking user "osiris"...
pamusb-agent[10148]: Running "gnome-screensaver-command -deactivate"
Es posible segurizar aun más el acceso de varias maneras, información detallada en http://pamusb.org.

Febrero 26th, 2009 on 9:54
Excelente tutorial como los demas que tenes publicados…!!!!
Junio 3rd, 2009 on 20:37
jajjaja
google te tiene rankeado como loco!
te juro que caí de pedo. y veo que “este blog.. lo conosco”.
cuando termino de leer veo a jomax! .. me fijo la url y quien es… osiris :P que groso que sos. un grande. si no me funciona ya se donde vivis