Inicio de sesión en el escritorio y autenticación de usuarios de Linux¶
✓ |
✓ |
✓ |
✓ |
⨯ |
⨯ |
⨯ |
✓ |
Introducción¶
This guide will walk you through the configuration of Linux to use FIDO Universal 2nd Factor, i.e. FIDO U2F with libpam-u2f
and Nitrokey FIDO2.
Si quieres iniciar sesión en tu ordenador con Nitrokey Pro 2, Nitrokey Storage 2 y Nitrokey Inicio puedes visitar las instrucciones disponibles aquí.
Requisitos¶
Ubuntu 20.04 con Gnome Display Manager.
Nitrokey FIDO2 configurado siguiendo estas instrucciones.
Instrucciones¶
Método GUI¶
En la esquina inferior izquierda haga clic en
Show Applications
y escriba la configuración en la barra de búsqueda como sigue:Desplázate hacia abajo en la barra derecha hasta
Users
En la esquina izquierda haga clic en
Unlock
y eso le pedirá su contraseñaSelecciona
Administrator
e introduce el nombre de usuario y la contraseña de tu elecciónUna vez que termine el paso 4, debería haber terminado
Método CLI¶
**Crea un usuario de copia de seguridad y dale privilegios de root.
Puede hacerlo utilizando estos comandos:
$ sudo adduser <backup_user> $ sudo usermod -aG sudo <backup_user>
En caso de que prefiera configurar U2F para un solo usuario, y esté bloqueado en su sesión de usuario, aún podría iniciar sesión con el
<backup_user>
, y proceder al mantenimiento.Advertencia
La siguiente guía puede potencialmente bloquear su ordenador. Debe ser consciente de estos riesgos, ya que se recomienda utilizar primero las instrucciones que aparecen a continuación en un ordenador secundario, o después de realizar una copia de seguridad completa.
Podría perder el acceso a sus datos después de configurar los módulos PAM.
Configurar el
rules
para reconocer el Nitrokey FIDO2Bajo
/etc/udev/rules.d
descarga41-nitrokey.rules
$ cd /etc/udev/rules.d/ $ sudo wget https://raw.githubusercontent.com/Nitrokey/libnitrokey/master/data/41-nitrokey.rules
Y reiniciar el servicio
udev
$ sudo systemctl restart udev
Instalación
libpam-u2f
En Ubuntu 20.04 es posible descargar directamente
libpam-u2f
desde los repos oficiales$ sudo apt install libpam-u2f
Nota
Haga clic para ver más opciones
Alternativamente puedes construir
libpam-u2f
desde Git.Para verificar que la biblioteca está correctamente instalada, introduzca el siguiente comando:
$ file /lib/x86_64-linux-gnu/security/pam_u2f.so
El resultado debería ser algo parecido a lo siguiente
/lib/x86_64-linux-gnu/security/pam_u2f.so: \ ELF 64-bit LSB shared object, x86-64, version 1 (SYSV),\ dynamically linked, BuildID[sha1]=1d55e1b11a97be2038c6a139579f6c0d91caedb1, stripped
Preparar el directorio
Crea
.config/Nitrokey/
en tu directorio de inicio$ mkdir ~/.config/Nitrokey
Y conecta tu Nitrokey FIDO2.
Una vez hecha la preparación, podemos empezar a configurar el equipo para que utilice el Nitrokey FIDO2 para la autenticación de 2º factor en el inicio de sesión y
sudo
.**Generar el archivo de configuración U2F
Para generar el fichero de configuración utilizaremos la utilidad
pamu2fcfg
que viene con ellibpam-u2f
. Por comodidad, escribiremos directamente la salida de la utilidad en el archivou2f_keys
bajo.config/Nitrokey
. Primero conecta tu Nitrokey FIDO2 (si no lo has hecho ya), e introduce el siguiente comando:$ pamu2fcfg > ~/.config/Nitrokey/u2f_keys
Una vez que ejecute el comando anterior, tendrá que tocar la tecla mientras parpadea. Una vez hecho esto,
pamu2fcfg
añadirá a su salida elu2f_keys
en el siguiente formato:<username>:Zx...mw,04...0a
Nota, la salida será mucho más larga, pero aquí se han eliminado las partes sensibles. Para mayor seguridad, y una vez generado el archivo de configuración, moveremos el directorio
.config/Nitrokey
bajo el directorioetc/
con este comando:$ sudo mv ~/.config/Nitrokey /etc
Truco
El archivo bajo
.config/Nitrokey
debe llamarseu2f_keys
.Se recomienda probar primero las instrucciones con un solo usuario. Para ello el comando anterior toma la opción
-u
, para especificar un usuario, como en el ejemplo siguiente:$ pamu2fcfg -u <username> > ~/.config/Nitrokey/u2f_keys
Para la configuración individual de los usuarios se debe apuntar al directorio raíz en el siguiente paso, o no incluir la opción
authfile
en la configuración de PAM.
Respaldo
Este paso es opcional, sin embargo se aconseja tener una Nitrokey de respaldo en caso de pérdida, robo o destrucción de su Nitrokey FIDO.
Para configurar una clave de reserva, repita el procedimiento anterior y utilice
pamu2fcfg -n
. Esto omitirá el campo<username>
, y la salida puede añadirse a la línea con su<username>
así:<username>:Zx...mw,04...0a:xB...fw,04...3f
Modificar el módulo de autenticación enchufable
PAM
El último paso es configurar los archivos del módulo PAM en
/etc/pam.d/
. En esta guía modificaremos el archivocommon-auth
ya que maneja las configuraciones de autenticación que son comunes a todos los servicios, pero otras opciones son posibles. Puedes modificar el archivo con el siguiente comando:$ cd /etc/pam.d $ sudo $editor common-auth
Y añadir las siguientes líneas en la parte superior del archivo:
#Nitrokey FIDO2 config auth sufficient pam_u2f.so authfile=/etc/Nitrokey/u2f_keys cue [cue_prompt=Please touch the device.] prompt nouserok
Truco
Como estamos utilizando el mapeo de autenticación central, tenemos que indicar a
pam_u2f
la ubicación del archivo a utilizar con la opciónauthfile
.Si a menudo se olvida de insertar la llave,
prompt
hace que la opciónpam_u2f
imprimaInsert your U2F device, then press ENTER.
y le dé la oportunidad de insertar la Nitrokey.If you would like to be prompted to touch the Nitrokey,
cue
option will makepam_u2f
printPlease touch the device.
message. You can change the message in[cue_prompt=Please touch the device.]
.nouserok se asegurará de que usted todavía puede iniciar la sesión utilizando el nombre de usuario y contraseña, es posible que desee eliminar esto en algún momento una vez que la configuración está trabajando y usted don’t quiere nombre de usuario regular “ inicios de sesión basados en la contraseña.
Una vez modificado el
common-auth
, podemos guardar y salir del archivo.Puede probar la configuración escribiendo
sudo ls
en el terminal. Debería aparecer el mensajePlease touch the device.
y tener una salida similar en el terminal:nitrouser@nitrouser:~$ sudo ls [sudo] password for nitrouser: Please touch the device.
También puede probar su configuración cerrando la sesión de usuario y volviendo a iniciar la sesión. Debería aparecer una pantalla similar una vez que desenchufes/conectes tu Nitrokey FIDO2 y escribas tu contraseña:
Uso¶
Después de la modificación del módulo PAM, podrá probar su configuración inmediatamente, pero se recomienda reiniciar su ordenador, y desconectar/reconectar el Nitrokey FIDO2.
Una vez que haya probado correctamente las instrucciones de esta guía (y haya configurado una copia de seguridad), se recomienda utilizar la bandera de control required
o la requisite
en lugar de sufficient
.
Las banderas required
y requisite
proporcionan un control de acceso más estricto, y harán necesario el Nitrokey FIDO2 para iniciar sesión, y/o utilizar el servicio configurado.
Si necesita más información sobre los indicadores de control en la línea de configuración PAM
, puede ver la última sección de esta guía para entender la diferencia, y las implicaciones de usar cada uno de ellos.
Módulos PAM¶
Hay varios archivos de módulos PAM que pueden ser modificados de acuerdo a sus necesidades:
Modificando el archivo
/etc/pam.d/common-auth
, podrá utilizar su Nitrokey FIDO para la autenticación de segundo factor para el inicio de sesión gráfico ysudo
. Nota:common-auth
debe modificarse añadiendo la línea de configuración adicional al final del archivo.If you wish to use FIDO U2F authentication solely for Gnome’s graphic login, you might prefer to modify the
/etc/pam.d/gdm-password
También puede modificar el archivo
/etc/pam.d/sudo
si desea utilizar FIDO U2F cuando utilice el comandosudo
.
Banderas de control¶
En el paso 7 hemos utilizado la bandera de control sufficient
para determinar el comportamiento del módulo PAM cuando la Nitrokey está enchufada o no. Sin embargo, es posible cambiar este comportamiento utilizando las siguientes banderas de control:
required
: Esta es la bandera más crítica. El resultado del módulo debe ser exitoso para que la autenticación continúe. Esta bandera puede bloquearte en tu ordenador si no tienes acceso a la Nitrokey.requisite
: Similar arequired
sin embargo, en el caso de que un módulo específico devuelva un fallo, el control se devuelve directamente a la aplicación, o a la pila PAM superior. Esta bandera también puede bloquear el equipo si no tiene acceso a la Nitrokey.sufficient
: El resultado del módulo se ignora si falla. La banderasufficient
se considera segura para las pruebas.optional
: El éxito o fracaso de este módulo sólo es importante si es el único módulo de la pila asociado a este servicio+tipo. La banderaoptional
se considera segura para su uso en las pruebas.
Advertencia
Si
required
orequisite
está configurado, el fallo de la autenticación U2F provocará un fallo de la autenticación global. El fallo se producirá cuando el Nitrokey FIDO configurado no se enchufe, se pierda o se destruya.Perderás el acceso a tu ordenador si configuraste mal el módulo PAM y utilizaste las banderas
required
orequisite
.También perderá la posibilidad de utilizar
sudo
si configura el mapeo de autenticación central y utilizó los indicadoresrequired
orequisite
.