Este artículo describe como realizar la autenticación de root mediante la inserción de una llave USB.
Lápiz USB
Material Necesario:
* Una máquina con GNU/Linux (el artículo se basa en Debian) y un puerto USB libre.
* Lápiz de memoria USB.
Instalando PAM USB:
# apt-get install libpam-usb
Instalando las PAM USB Tools:
# apt-get install pamusb-tools
Añadiendo nuestro lápiz como token de autenticación:
En primer lugar debemos pinchar el lápiz en el puerto USB y ejecutar:
# pamusb-conf —add-device llaveusb
Donde llaveusb es un nombre identificativo para el token, pero puede ser cualquier otro.
Añadiendo usuarios a pam-usb:
Es muy fácil añadir usuarios como se puede ver en el siguiente ejemplo en el que añadiremos a root para autenticar con pam-usb:
# pamusb-conf —add-user root
Probando si funciona la autenticación:
Con el lápiz conectado:
# pamusb-check root
* Authentication request for user «root» (pamusb-check) * Device “MyToken” is connected (good). * Performing one time pad verification… * Access granted.
Veremos que al final aparece Acces Granted, es decir, estamos autorizados.
Si repetimos la operación sin el lápiz observaremos que devuelve Access Denied
Si sacamos el pendrive veremos que al ejecutar lo anterior nos devuelve Access denied, justo lo contrario.
Pam-usb como sistema de login:
Editaremos el fichero /etc/pam.d/common-authy añadiremos la siguiente línea al principio:
auth sufficient pam_usb.so
En este momento podriamos iniciar una sesión gdm sin necesidad de introducir contraseña, simplemente conectando la llave usb.
Otra opcione interesante es que permite la ejecución automática de comandos al conectar el lápiz, así que podríamos crear un sistema para hacer copias de seguridad al conectar la llave usb, o un sistema de fichajes horarios o una máquina que introdujese albaranes de reparto personalizados para el transportista cuya llave ha sido introducida, autenticar un fichero firmado con gnupg, y muchas otras cosas, pero esto ya dejo que lo investiguéis vosotros mismos.
Para hacer todo esto se puede utilizar cualquier lápiz usb sin que sufra ninguna modificación, ya que el pam mira los datos del dispositivo hardware, como el fabricante, uuid y número de serie. Lo interesante es que aunque hiciésemos una copia completa del dispositivo, por ejemplo con dd, no obtendríamos una llave correcta para el token configurado.
Fuente: trucolinux.com