Guía de despliegue

Alojar Authelia en un VPS: MFA y SSO para toda su stack

Desplegar en un VPS Cloud →

Tutorial

Alojar Authelia en un VPS: MFA y SSO para toda su stack

Seguridad y monitorización6 min de lectura7 pasos

La mayoría de las aplicaciones autoalojadas solo cuentan, en el mejor de los casos, con una autenticación básica por contraseña, y muchas no tienen ninguna. Authelia (Apache 2.0, ~28k estrellas) es una pasarela de autenticación y autorización open source que se sitúa delante de sus aplicaciones, como complemento de su reverse proxy. Aplica el MFA y la política de acceso en el propio proxy, hace además de proveedor OIDC completo para el SSO en toda su stack y consume menos de 30 MB de RAM en reposo. Así se despliega en un VPS de ServOrbit en menos de 15 minutos.

Contenido· Por qué una pasarela de autenticación en el reverse proxy1/6
  1. 01Por qué una pasarela de autenticación en el reverse proxy
  2. 02Lo que le aporta Authelia autoalojado
  3. 03Requisitos previos
  4. 04Desplegar Authelia con Docker Compose
  5. 05Usar Authelia como proveedor OIDC para un SSO real
  6. 06Reglas de control de acceso

Por qué una pasarela de autenticación en el reverse proxy

Cada herramienta autoalojada que añade a su VPS es una nueva superficie de ataque. Algunas disponen de una autenticación sólida (Gitea, Nextcloud); otras están pensadas para redes de confianza (Prometheus, Dockge, paneles internos) y no ofrecen ninguna autenticación. Añadir una verificación de usuario y contraseña a cada aplicación por separado lleva tiempo, genera incoherencias y, aun así, le deja con decenas de bases de credenciales distintas que gestionar.

Authelia resuelve el problema en el nivel de la infraestructura. La configura una sola vez — con reglas del tipo «toda persona que acceda a *.internal.su-dominio.com debe validar una autenticación de dos factores» — y su reverse proxy aplica esas reglas a cada petición, antes de que llegue a la aplicación. Las aplicaciones en sí no necesitan ninguna modificación.

Lo que le aporta Authelia autoalojado

  • MFA para cualquier aplicación: TOTP (Google Authenticator, Ente Auth, Aegis), WebAuthn/Passkeys (Touch ID, Face ID, YubiKey) y Duo push — configurado una vez, aplicado en todas partes.
  • Proveedor OpenID Connect (OIDC): configure Authelia como proveedor de identidad para Gitea, Nextcloud, Mattermost y cualquier aplicación compatible con OIDC. Un solo inicio de sesión, todas sus aplicaciones.
  • Control de acceso preciso: defina políticas por dominio, subdominio, ruta de URL, red IP o grupo de usuarios — permitir, denegar, un factor o dos factores.
  • Independiente del reverse proxy: integración de copiar y pegar con Nginx, Caddy, Traefik, HAProxy y Envoy mediante una sola directiva forward_auth.
  • Menos de 30 MB de RAM en reposo — se añade a cualquier VPS existente sin afectar a las cargas de trabajo en curso.
  • Backend de usuarios basado en archivo o en LDAP — empiece de forma sencilla y escale más adelante.

Requisitos previos

Un VPS con al menos 1 vCPU y 512 MB de RAM (1 GB recomendado) con Ubuntu 22.04 o Debian 12, con Docker y Docker Compose v2 instalados. Es obligatorio un nombre de dominio que apunte al VPS: las cookies de sesión y los callbacks OIDC de Authelia deben ir asociados a un FQDN en regla, y el HTTPS mediante Let's Encrypt es imprescindible. Si su VPS ya ejecuta Caddy o Nginx como reverse proxy, Authelia se integra en él.

Desplegar Authelia con Docker Compose

  1. Redactar el archivo Compose

    Cree /opt/authelia/compose.yaml. La stack consta de dos servicios: authelia/authelia:4.39.20 y redis:7-alpine. Authelia guarda los datos de sesión en Redis y el estado de la aplicación (base de datos SQLite, registro de notificaciones) en un volumen Docker con nombre, montado en /data. Dos montajes bind desde ./ aportan el archivo de configuración y la base de usuarios: los genera el job de provisioning de ServOrbit.

  2. Crear configuration.yml

    Authelia lee su configuración desde /config/configuration.yml (montado en bind desde el host). La configuración mínima define la dirección del servidor (tcp://:9091), el backend de autenticación por archivo (/config/users.yml), el dominio y el secreto de sesión, la ruta de almacenamiento SQLite, el host Redis para las sesiones y las reglas de control de acceso. Empiece con default_policy: deny y añada reglas one_factor para sus dominios.

  3. Crear la base de usuarios

    El backend de archivo de Authelia lee un archivo YAML con los nombres de usuario, las contraseñas con hash bcrypt, los correos electrónicos y los grupos. Genere un hash para su contraseña de administrador con: docker run --rm authelia/authelia:4.39.20 authelia crypto hash generate bcrypt. Pegue la salida en users.yml. En ServOrbit, el job de provisioning escribe este archivo automáticamente, con una contraseña generada que se muestra en la salida del job.

  4. Iniciar la stack y comprobar

    Ejecute docker compose up -d en /opt/authelia. Compruebe que ambos contenedores están sanos con docker compose ps. Authelia expone un endpoint de salud en GET /api/health: curl -s http://localhost:9091/api/health debe devolver {"status":"OK"}. El portal de inicio de sesión queda entonces disponible en https://auth.su-dominio.com una vez configurado su reverse proxy.

  5. Añadir la directiva forward_auth a su proxy

    Para Caddy, añada forward_auth authelia:9091 a los bloques de sitio que quiera proteger, referenciando el nombre de servicio del contenedor Authelia si ambos están en la misma red Docker. Para Nginx, añada auth_request /authelia; y el bloque location correspondiente. La documentación de Authelia ofrece fragmentos de copiar y pegar para cada proxy importante. Recargue la configuración de su proxy: cada aplicación protegida exigirá a partir de ahora un inicio de sesión a través de Authelia.

  6. Registrar su dispositivo MFA

    Inicie sesión en el portal de Authelia en https://auth.su-dominio.com con sus credenciales de administrador. Se le pedirá registrar un segundo factor. Abra su aplicación TOTP (Google Authenticator, Ente Auth o Aegis), escanee el código QR y confirme. Para las passkeys (WebAuthn), haga clic en «Security Key or Passkey» y siga la indicación de su navegador: Face ID, Touch ID y las YubiKey funcionan todas. Los inicios de sesión siguientes exigirán su contraseña y el factor registrado.

  7. Conectarse por primera vez

    Abra la dirección de su portal: Authelia pide un usuario y una contraseña. Introduzca «admin» y la contraseña que se le ha comunicado (disponible en la sección Aplicaciones de su área de cliente) y registre de inmediato su aplicación de autenticación (TOTP) o su clave de acceso: es el segundo factor que protegerá después todo lo que coloque detrás de este portal.

Usar Authelia como proveedor OIDC para un SSO real

Una vez Authelia en marcha, puede registrar sus demás aplicaciones autoalojadas como clientes OIDC. En configuration.yml, añada un bloque identity_providers.oidc que liste, para cada aplicación, el client ID, el secreto y las redirect URIs. Configure después la aplicación (Gitea, Nextcloud, Grafana…) para que use Authelia como proveedor OIDC. Los usuarios se autentican una sola vez en auth.su-dominio.com y son redirigidos de forma silenciosa a cada aplicación conectada por OIDC: se acabaron las peticiones de inicio de sesión separadas, una sola sesión para toda su stack.

Reglas de control de acceso

La sección de control de acceso de Authelia es el lugar donde define quién puede acceder a qué. Las reglas se evalúan de arriba abajo; gana la primera coincidencia. Una configuración de producción mínima puede dejar pasar sus aplicaciones expuestas públicamente, exigir un factor para las herramientas internas habituales e imponer dos factores para todo lo sensible (paneles de administración, gestores de secretos, bases de datos). Use el campo groups de users.yml para distinguir a los administradores de los usuarios corrientes y aplicar políticas más estrictas a los miembros del grupo admin.

Despliegue Authelia en su VPS con un clic

Añada MFA y SSO a toda su stack autoalojada sin modificar ni una sola aplicación. ServOrbit provisiona una instancia Authelia lista para usar — configuración generada, usuario administrador creado, integración con el reverse proxy preparada.

¿Necesita ayuda?

Consulte nuestro centro de ayuda y nuestra FAQ, o contacte con nuestro equipo: llamada, WhatsApp o correo electrónico. Soporte en francés, inglés y árabe.

Escribir por WhatsAppse abre en una pestaña nueva