Ir al contenido

Inicio de sesión en Linux

Ironchip se integra en Linux mediante PAM (Pluggable Authentication Modules) y añade el segundo factor a servicios como sudo, SSH o el inicio de sesión local. Usa esta página para crear la aplicación, instalar el módulo y configurar PAM.

  • Acceso a la consola de administración de Ironchip.
  • Un usuario con permisos de administrador (root o sudo) en el equipo Linux.
  • Conectividad desde el equipo con la API de Ironchip (https://api.ironchip.com).
  • Un sistema Linux con PAM. Para macOS, consulta Inicio de sesión en macOS.
  1. Ve a Applications > New application.

    Sección Aplicaciones de la consola con el botón para crear una nueva aplicación

  2. Selecciona el tipo de integración Linux Logon.

    Selección del tipo de integración Linux Logon

  3. Escribe un nombre descriptivo para la aplicación y haz clic en Add.

    Nombre de la aplicación y botón Add

  4. Guarda la API key que se muestra al crear la aplicación: la necesitarás más tarde.

    Ventana con la API key de la aplicación

  1. Abre la aplicación recién creada y haz clic en el botón para añadir un nuevo acceso.

    Ficha de la aplicación con el botón para añadir un acceso

  2. Selecciona los usuarios que van a utilizar el servicio.

    Selección de los usuarios del acceso

  3. Configura el nombre de usuario para que coincida con el del sistema Linux.

    Nombre de usuario igual al del sistema Linux

  4. Configura las condiciones de acceso que tiene que cumplir el usuario para acceder al equipo.

    Condiciones de acceso del usuario

  5. Guarda el acceso.

    Resumen del acceso antes de guardarlo

  1. Opcional: instala estas dependencias, que solo hacen falta en algunos casos.

    Ventana de terminal
    # Debian y Ubuntu
    sudo apt-get install libcurl4-openssl-dev libpam-dev uuid-dev
    # RHEL, AlmaLinux y CentOS
    sudo yum install curl-devel pam-devel libuuid libuuid-devel
  2. Crea una carpeta en una ubicación segura.

    Ventana de terminal
    mkdir /usr/local/lib/security
  3. Guarda en ella el archivo pam_ironchip_auth.so, que encontrarás en el apartado Plugins de la consola de Ironchip.

    Ventana de terminal
    mv pam_ironchip_auth.so /usr/local/lib/security/

    Archivo pam_ironchip_auth.so copiado en la carpeta segura

Ve a /etc/pam.d y abre con un editor de texto uno de estos archivos, según las necesidades de la compañía. Los nombres pueden cambiar según la arquitectura del sistema.

Archivo Protege
sudo La autenticación en el comando sudo.
sshd La autenticación en el servicio SSH.
gdm-password El inicio de sesión en el equipo.
common-auth Todos los servicios anteriores.

gdm-password gestiona el inicio de sesión gráfico (GNOME Display Manager). common-auth centraliza la autenticación que importan servicios como sudo, login o sshd con la línea @include common-auth.

Añade esta línea con tus datos:

auth required <ruta absoluta de pam_ironchip_auth.so> host=https://api.ironchip.com api_key=<API_KEY>

La API key es la que guardaste al crear la aplicación.

Parámetro Obligatorio Descripción
host Sí URL del servidor de identidad de Ironchip, por ejemplo https://api.ironchip.com.
api_key Sí API key de la aplicación, usada en la autenticación.
offline_skip No Con offline_skip=true, si no hay conectividad con Ironchip el módulo se omite y PAM lo da por válido.
whitelisted_users No Usuarios separados por ; que omiten el módulo, por ejemplo whitelisted_users=root;ubuntu.

Exigir el segundo factor o aceptarlo como suficiente

Sección titulada «Exigir el segundo factor o aceptarlo como suficiente»

El verbo que uses en la línea auth decide cómo se combina Ironchip con el resto de módulos PAM:

  • required: el usuario debe superar este módulo como mínimo. Es la opción para que el segundo factor sea obligatorio.
  • sufficient: si el módulo se supera, PAM termina la autenticación con éxito de inmediato e ignora el resto de módulos.
auth required pam_ironchip_auth.so <opciones>
auth sufficient pam_ironchip_auth.so <opciones>

Esta configuración exige a la vez la clave pública y Ironchip como autenticación interactiva (keyboard-interactive).

  1. Abre el archivo de configuración principal de SSH con privilegios de administrador.

    Ventana de terminal
    sudo nano /etc/ssh/sshd_config
  2. Localiza y ajusta estos parámetros, o añádelos al final del archivo.

    /etc/ssh/sshd_config
    # Habilitar llaves y desactivar contraseñas simples
    PubkeyAuthentication yes
    PasswordAuthentication no
    # Forzar AMBOS: llave pública + Ironchip (keyboard-interactive)
    AuthenticationMethods publickey,keyboard-interactive
    # Configuración necesaria para que PAM (Ironchip) funcione
    UsePAM yes
    KbdInteractiveAuthentication yes # Ubuntu/Debian modernos
  3. Si tu sistema Linux no es Ubuntu o Debian, añade además esta línea.

    ChallengeResponseAuthentication yes

Para que el servidor SSH reconozca a Ironchip como método de autenticación interactiva, modifica la configuración de PAM. Así el sistema valida la identidad con Ironchip sin pedir además la contraseña tradicional de Linux.

  1. Abre el archivo que gestiona la autenticación del servicio SSH.

    Ventana de terminal
    sudo nano /etc/pam.d/sshd
  2. Añade esta línea al principio del archivo, para que sea el primer método que se evalúa en la fase interactiva.

    /etc/pam.d/sshd
    auth sufficient pam_ironchip_auth.so host=https://api.ironchip.com api_key=<API_KEY>

El servidor debe hacer peticiones salientes a api.ironchip.com para validar la identidad. En sistemas con SELinux habilitado, como RHEL, AlmaLinux o CentOS, el servicio SSH tiene restringido el acceso a la red por defecto, y eso bloquearía la comunicación con Ironchip.

Importa el módulo de política que permite al proceso de SSH establecer conexiones de red.

Ventana de terminal
semodule -i mi-sshdsession.pp

Guarda los archivos y reinicia el servicio SSH.

Ventana de terminal
# Sistemas con systemd (Ubuntu, Debian, RHEL 7+)
sudo systemctl restart sshd
# Verificar el estado del servicio
sudo systemctl status sshd

Con sufficient, el cliente SSH sigue mostrando el aviso de contraseña. El usuario puede escribir cualquier valor: no se valida si Ironchip ya ha aceptado la autenticación. Para que no se pregunte, añade PermitEmptyPasswords yes en /etc/ssh/sshd_config y reinicia sshd. Hazlo solo si usas el módulo como método sufficient. Si esperas un segundo factor (MFA), no cambies este parámetro.

  1. Mantén abierta una sesión de root y abre otra terminal.
  2. Ejecuta un comando que pase por PAM, por ejemplo sudo -k && sudo ls.
  3. Autoriza el acceso en Ironchip cuando te lo pida.
  4. Si protegiste SSH, abre una conexión nueva con el usuario configurado en Ironchip y autoriza el acceso.

Si algo falla, restaura la línea de PAM desde la sesión de root, que sigue abierta.

Protección del inicio de sesión en Linux con IronchipReproducir el vídeo

El módulo escribe sus registros en syslog. Consúltalos así:

Ventana de terminal
tail -f /var/log/auth.log

Para filtrar el inicio de sesión gráfico:

Ventana de terminal
tail -f /var/log/syslog | grep gdm-password

SSH sigue pidiendo la contraseña de Linux. Comprueba que UsePAM yes está en /etc/ssh/sshd_config y reinicia el servicio. Si quieres evitar el aviso con el método sufficient, consulta Aplicar los cambios.

En RHEL, AlmaLinux o CentOS, SSH no valida con Ironchip. Importa el módulo de política de SELinux de la sección Permitir la conexión con SELinux.