Login sin password con pam-usb usando un pendrive
| Author: | OSiUX |
|---|---|
| url: | osiux@osiux.com.ar |
| Date: | 26/02/2009 |
| url: | http://blog.osiux.com/login-sin-passwords-con-pam-usb |
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.