Cómo iniciar sesión y elevar privilegios con Yubikey en Ubuntu
- Detalles
- Por Emanuel Rodríguez
- Visto: 3286
⚠️ Nota importante
Este artículo tiene más de un año. La tecnología evoluciona rápido, por lo que algunos contenidos o instrucciones pueden estar desactualizados. Recuerda buscar información reciente y actualizada.
YubiKey es una herramienta de seguridad compatible con Ubuntu que puede ser utilizada como U2F para iniciar sesión en Ubuntu y/o elevar privilegios (ejecutar el comando sudo
) en la terminal. Activar esta funcionalidad, si bien requiere de ejecución de comandos en la terminal, es muy fácil y su implementación puede ser realizada por cualquier usuario. En este artículo se explica como activar una o varias YubiKey como segundo factor de autenticación en Ubuntu.
Requisitos previos
Antes de continuar es recomendable realizar la configuración básica de la YubiKey en Ubuntu (primer paso de mi tutorial).
Después, hay agregar el repositorio oficial de Yubico e instalar la librería necesaria para la autenticación:
sudo add-apt-repository ppa:yubico/stable
sudo apt install libpam-u2f
Asociando una o más YubiKey
Para este paso es necesario abrir la terminal de Ubuntu y ejecutar el siguiente comando para crear el directorio de configuración (si el comando genera error es porque el directorio ya existe por lo que solo hay que ignorarlo):
mkdir ~/.config/Yubico
Ahora es necesario conectar la YubiKey que queremos agregar y ejecutar el siguiente comando:
pamu2fcfg > ~/.config/Yubico/u2f_keys
Cuando la luz de la YubiKey comience a parpadear se debe tocar la zona metálica para completar la activación.
Los mismos pasos deben seguirse para activar otras YubiKey.
Activando la autenticación de dos factores
Para este paso es necesario editar el archivo /etc/pam.d/sudo
con cualquier editor. Opcionalmente se puede ejecutar el siguiente comando para editar con Gedit:
sudo gedit /etc/pam.d/sudo
Debajo de la línea que dice @include common-auth
se debe incluir la siguiente información:
auth required pam_u2f.so
Se guardan los cambios y se retira la YubiKey del ordenador. Para probar que todo esté funcionando se puede abrir una nueva terminal (sin cerrar la terminal previamente autenticada en caso de que ocurra algún problema eliminar la linea incluida anteriormente y volver al estado anterior) y ejecutar cualquier comando sudo
. Como se retiró la YubiKey, aunque se indique la contraseña correcta, no será posible realizar la ejecución del comando. En este punto, se inserta nuevamente la YubiKey y se vuelve a ejecutar el comando. Se indica la contraseña y cuando parpadea la luz de la YubiKey se toca la parte metálica para finalizar la comprobación. Si el comando se ejecuta correctamente entonces la configuración ha sido exitosa.
Usando YubiKey para inicio de sesión
En este caso, se debe editar el archivo /etc/pam.d/gdm-password
con el comando:
sudo gedit /etc/pam.d/gdm-password
Debajo de la línea que dice @include common-auth
se incluye exactamente la misma línea que se agregó anteriormente:
auth required pam_u2f.so
En el caso de que se quiera desactivar la autenticación de dos factores ya sea para el inicio de sesión o para elevar privilegios, solo debe eliminarse la línea agregada del archivo respectivo.
Configurando en combinación con contraseña estática
Varias versiones de YubiKey cuentan con la posibilidad de crear una contraseña estática que se escribe automáticamente al tocar la parte metálica de la llave. El proceso requiere de instalar la herramienta oficial llamada YubiKey Personalization Tool.
sudo apt install yubikey-personalization-gui
En la sección Static Password se elige Scan Code:
Se indica la contraseña (preferiblemente auto-generada, larga (máx. 38 caracteres) y compleja) ya sea para el Slot 1 o Slot 2. Es importante indicar que la función de Slot 1 se ejecuta al tocar la parte metálica entre 0.3 y 1.5 segundos mientas que la función del Slot 2 se ejecuta al pulsar la zona metálica por 2 a 5 segundos. El primer espacio viene pre-configurado como YubiKey OTP pero se puede sobreescribir si el usuario no utiliza esta función. En cada espacio se puede configurar una contraseña independiente.
gpg-connect-agent -r restaurar-gpg
Finalmente se hace clic en Write Configuration para guardar los cambios.
Esta función de contraseña estática no requiere de drivers y se puede utilizar en cualquier ordenador ya que la YubiKey se identifica ante cualquier sistema operativo como un teclado y realizar la escritura de la contraseña de forma automática (Windows, OSX, MacOS, Android (vía OTG), Ubuntu, Fedora y todo lo basado en GNU Linux). De esta forma, al iniciar sesión o elevar privilegios se toca la YubiKey de acuerdo a la configuración (la YubiKey ejecuta la tecla de Enter automáticamente) y cuando parpadee se termina de confirmar la autenticación.
Notas aclaratorias
- Es importante recordar que si el usuario no se sabe de memoria la contraseña estática creada y pierde la YubiKey no podrá acceder a donde sea que haya utilizado la contraseña para autenticación. Además, si configuró la YubiKey para autenticación de dos factores y esta se pierde o se daña tampoco podrá confirmar la autenticación por lo que quedará fuera del ordenador (si la instalación no está encriptada podrá usar un Live USB con Ubuntu para editar el archivo modificado y eliminar la línea que se agregó en pasos anteriores).
- Para evitar estos inconvenientes, se recomienda agregar al menos dos YubiKey para autenticación de dos factores y configurar la misma contraseña o contraseñas en ambas como respaldo.