bolt Valebyte VPS desde $4/mes — NVMe, despliegue en 60s.

Obtener VPS arrow_forward
eco Principiante Tutorial/Cómo hacer

Instalación de Authentik

calendar_month Jun 11, 2026 schedule 21 min de lectura visibility 59 vistas
Установка Authentik на VPS: SSO, MFA и централизованная аутентификация
info

¿Necesitas un servidor para esta guía? Ofrecemos servidores dedicados y VPS en más de 50 países con configuración instantánea.

¿Necesitas un VPS para esta guía?

Explore otras opciones de servidores dedicados en

Instalación de Authentik en VPS: SSO, MFA y autenticación centralizada

TL;DR

En esta guía detallada, configuraremos paso a paso Authentik, una potente solución de código abierto para la gestión de identidades y accesos (IAM) en su propio VPS. Obtendrá un sistema centralizado de inicio de sesión único (SSO) y autenticación multifactor (MFA), listo para integrarse con sus aplicaciones web, lo que aumentará significativamente la seguridad y simplificará la gestión de usuarios.

  • Authentik se instalará utilizando Docker Compose para una fácil implementación y gestión.
  • Como base de datos se utilizará una PostgreSQL 16 externa para un mejor rendimiento y escalabilidad.
  • Configuraremos Caddy como servidor proxy inverso con obtención automática de certificados TLS/HTTPS de Let's Encrypt.
  • Se cubrirán los pasos básicos para proteger el servidor, incluyendo firewall y claves SSH.
  • Aprenderá cómo configurar copias de seguridad y mantener el sistema actualizado.

¿Qué configuramos y por qué?

Diagrama: ¿Qué configuramos y por qué?
Diagrama: ¿Qué configuramos y por qué?

En el mundo digital actual, la gestión de cuentas de usuario y la garantía de su acceso seguro a múltiples aplicaciones se ha convertido en una tarea de vital importancia. Authentik ofrece una solución elegante y potente a este problema, actuando como un proveedor de identidad centralizado.

Authentik es una plataforma de código abierto para la gestión de identidades y accesos (Identity and Access Management, IAM) que permite implementar el inicio de sesión único (Single Sign-On, SSO) y la autenticación multifactor (Multi-Factor Authentication, MFA) para todas sus aplicaciones. En lugar de crear y gestionar cuentas separadas para cada servicio (GitLab, Mattermost, Nextcloud, Grafana, etc.), los usuarios se autenticarán una vez a través de Authentik, y luego obtendrán acceso sin interrupciones a todas las aplicaciones integradas.

En resumen, al finalizar esta guía, obtendrá un sistema Authentik completamente configurado en su VPS, que servirá como punto central de autenticación. Esto aumentará significativamente la seguridad mediante el uso forzado de MFA y la gestión centralizada de contraseñas, además de mejorar la experiencia del usuario, eliminando la necesidad de recordar múltiples nombres de usuario y contraseñas.

Existen diferentes enfoques para resolver las tareas de IAM. Entre los servicios gestionados en la nube se pueden destacar Okta, Auth0 o Azure AD, que ofrecen alta disponibilidad y costos mínimos de administración, pero a la vez requieren pagos mensuales e implican la transferencia del control de los datos a un tercero. Por otro lado, existen otras soluciones autoalojadas, como Keycloak o FreeIPA, que también ofrecen capacidades de SSO y MFA, pero pueden ser más complejas de implementar y configurar en comparación con Authentik, especialmente para instalaciones pequeñas y medianas.

La elección de una solución autoalojada en un VPS, como Authentik, se debe a varias ventajas clave. En primer lugar, ofrece un control total sobre sus datos e infraestructura, lo cual es especialmente importante para cumplir con la privacidad y los requisitos regulatorios. En segundo lugar, representa un ahorro significativo de costos en comparación con las alternativas en la nube, especialmente a largo plazo. Y, por último, ofrece flexibilidad y la posibilidad de una configuración profunda para sus necesidades únicas, lo que lo convierte en una opción ideal para desarrolladores, fundadores individuales de proyectos SaaS y cualquiera que valore la independencia y la seguridad.

¿Qué configuración de VPS se necesita para esta tarea?

Diagrama: ¿Qué configuración de VPS se necesita para esta tarea?
Diagrama: ¿Qué configuración de VPS se necesita para esta tarea?

La elección correcta de la configuración del VPS es clave para un funcionamiento estable y eficiente de Authentik. A continuación se presentan los requisitos mínimos y recomendados, vigentes para el año 2026, teniendo en cuenta el crecimiento de la funcionalidad y la optimización de Authentik.

Requisitos mínimos (para equipos pequeños de hasta 50 usuarios)

  • CPU: 2 vCPU (procesador moderno x86-64, por ejemplo, Intel Xeon E3/E5 o AMD EPYC).
  • RAM: 4 GB (esto es suficiente para el sistema operativo, Authentik y PostgreSQL).
  • Disco: 80-100 GB NVMe SSD. La velocidad del subsistema de disco es crítica para el rendimiento de la base de datos y la respuesta general del sistema. NVMe supera significativamente a los SSD SATA comunes.
  • Red: 1 Gbit/s uplink. Una dirección IPv4 pública es obligatoria para acceder a Authentik desde internet.

Plan de VPS recomendado (para equipos de hasta 200-300 usuarios)

Para un trabajo más cómodo, con margen para la escalabilidad y la integración de varias decenas de aplicaciones, se recomienda la siguiente configuración:

  • CPU: 4 vCPU.
  • RAM: 8 GB.
  • Disco: 160-200 GB NVMe SSD.
  • Red: 1 Gbit/s uplink, IPv4 público.

Para alquilar un VPS con las características indicadas, puede considerar las ofertas de varios proveedores que cumplan con estos parámetros. Asegúrese de que el plan elegido incluya NVMe SSD y suficiente memoria RAM.

Cuándo se necesita un dedicado y no un VPS

Aunque un VPS es una excelente opción para la mayoría de los escenarios, hay situaciones en las que un servidor dedicado (dedicated server) será más preferible:

  • Carga muy alta: Si espera miles de usuarios activos, cientos de solicitudes de autenticación por segundo o la integración con sistemas corporativos críticos, un servidor dedicado le proporcionará toda la potencia del hardware físico sin virtualización.
  • Requisitos estrictos de rendimiento: Para aplicaciones donde un retraso de incluso milisegundos es crítico, un servidor dedicado puede ofrecer un rendimiento más predecible y estable.
  • Requisitos específicos de seguridad/cumplimiento: Algunas normativas reguladoras o políticas internas de la empresa pueden requerir un control total sobre el hardware, lo que se logra mejor en un servidor dedicado.
  • Grandes volúmenes de datos: Si Authentik va a almacenar volúmenes significativos de datos de usuario, registros o integrarse con directorios muy grandes, un subsistema de disco grande de un servidor dedicado será útil.

Ubicación del VPS: qué factores influyen

La elección de la ubicación geográfica de su VPS tiene varios aspectos importantes:

  • Latencia: Ubique el VPS lo más cerca posible de la mayoría de sus usuarios. Cuanto menor sea la distancia, más rápidas serán las respuestas del servidor, lo cual es crítico para las aplicaciones web interactivas y la experiencia general del usuario.
  • Legislación de datos: Si trabaja con datos personales, asegúrese de que la ubicación del VPS cumpla con los requisitos de GDPR, HIPAA u otras leyes locales sobre almacenamiento y procesamiento de datos.
  • Disponibilidad de red: Elija ubicaciones con buenas conexiones de red y peering con los principales proveedores, para garantizar un acceso estable y rápido.

Preparación del servidor

Diagrama: Preparación del servidor
Diagrama: Preparación del servidor

Antes de proceder con la instalación de Authentik, es necesario realizar la configuración básica de su VPS para garantizar la seguridad y estabilidad. Utilizaremos Ubuntu Server 24.04 LTS como sistema operativo, ya que es una de las plataformas más populares y mejor soportadas para servidores.

1. Conexión al servidor

Conéctese a su VPS por SSH, utilizando las credenciales proporcionadas por el proveedor (normalmente el usuario root y contraseña, o un usuario con clave SSH).


ssh root@ВАШ_IP_АДРЕС

2. Actualización del sistema

Primero, actualice todos los paquetes a sus versiones más recientes. Esto garantizará la seguridad y estabilidad del sistema.


sudo apt update && sudo apt upgrade -y

3. Creación de un nuevo usuario y configuración de sudo

No se recomienda trabajar como usuario root para tareas diarias. Cree un nuevo usuario con privilegios limitados y agréguelo al grupo sudo.


# Reemplace 'youruser' con el nombre de usuario deseado
sudo adduser youruser
sudo usermod -aG sudo youruser

Salga de la sesión de root e inicie sesión con el nuevo usuario:


exit
ssh youruser@ВАШ_IP_АДРЕС

4. Configuración de acceso SSH mediante claves (recomendado)

Para mejorar la seguridad, se recomienda usar claves SSH en lugar de contraseñas. Si ya utiliza claves, asegúrese de que su clave pública esté añadida al archivo ~/.ssh/authorized_keys del nuevo usuario.

En la máquina local:


# Si no tiene una clave SSH, genérela
ssh-keygen -t rsa -b 496

# Copie la clave pública al servidor (reemplace youruser y SU_DIRECCIÓN_IP)
ssh-copy-id youruser@ВАШ_IP_АДРЕС

En el servidor: desactive el inicio de sesión con contraseña y para el usuario root.


sudo nano /etc/ssh/sshd_config

Encuentre y modifique las siguientes líneas (o añádalas si no existen):


# Deshabilitar el inicio de sesión para root
PermitRootLogin no

# Deshabilitar el inicio de sesión con contraseña (¡después de asegurarse de que el inicio de sesión con clave funciona!)
PasswordAuthentication no

# Asegúrese de que la autenticación por clave esté habilitada
PubkeyAuthentication yes

Reinicie el servicio SSH:


sudo systemctl restart sshd

5. Instalación y configuración de Fail2Ban

Fail2Ban ayuda a protegerse contra ataques de fuerza bruta, bloqueando las direcciones IP desde las que se producen múltiples intentos fallidos de inicio de sesión.


sudo apt install fail2ban -y
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

Cree un archivo de configuración local:


sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local

En la sección [DEFAULT] puede establecer parámetros más agresivos, por ejemplo:


bantime = 1h    # Tiempo de bloqueo (1 hora)
findtime = 10m  # Tiempo en el que se cuentan los intentos (10 minutos)
maxretry = 3    # Número máximo de intentos antes del bloqueo

Asegúrese de que la sección [sshd] esté activa (enabled = true).


sudo systemctl restart fail2ban

6. Configuración del firewall (UFW)

UFW (Uncomplicated Firewall) es una interfaz conveniente para gestionar iptables. Lo configuraremos para permitir solo el tráfico necesario.


sudo apt install ufw -y

# Denegar todo el tráfico entrante por defecto
sudo ufw default deny incoming

# Permitir todo el tráfico saliente por defecto
sudo ufw default allow outgoing

# Permitir SSH (puerto 22 por defecto)
sudo ufw allow ssh

# Permitir HTTP (puerto 80) y HTTPS (puerto 443) para el servidor web
sudo ufw allow http
sudo ufw allow https

# Habilitar UFW
sudo ufw enable

Confirme la acción introduciendo y. Verifique el estado del firewall:


sudo ufw status verbose

7. Instalación de utilidades básicas

Instale algunas utilidades útiles que pueden ser de ayuda durante la instalación y depuración.


sudo apt install curl wget git htop net-tools -y

Ahora su servidor está preparado y protegido para la posterior implementación de Authentik.

Instalación de software — paso a paso

Diagrama: Instalación de software — paso a paso
Diagrama: Instalación de software — paso a paso

Authentik se despliega utilizando Docker Compose, lo que simplifica significativamente la gestión de sus componentes. También utilizaremos una base de datos PostgreSQL externa para un mejor rendimiento y escalabilidad.

1. Instalación de Docker Engine y Docker Compose Plugin (válido para 2026)

Instalaremos Docker Engine y Docker Compose Plugin, que son la base para ejecutar Authentik.


# 1. Обновление пакетов и установка необходимых зависимостей
sudo apt update && sudo apt install ca-certificates curl gnupg lsb-release -y

# 2. Добавление официального GPG ключа Docker
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# 3. Добавление репозитория Docker
echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 4. Обновление индекса пакетов APT и установка Docker Engine
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

# 5. Добавление текущего пользователя в группу docker для выполнения команд без sudo
sudo usermod -aG docker $USER
newgrp docker # Примените изменения группы без перезапуска сессии

# 6. Проверка установки Docker
docker run hello-world

# 7. Проверка установки Docker Compose Plugin
docker compose version

La salida esperada para la versión de Docker Compose será aproximadamente Docker Compose version v2.24.x o superior.

2. Instalación y configuración de PostgreSQL 16

Authentik utiliza una base de datos para almacenar sus datos. En lugar de usar la base de datos integrada en el contenedor Docker, instalaremos PostgreSQL 16 directamente en el VPS para un mejor rendimiento y capacidad de gestión.


# 1. Установка PostgreSQL 16
sudo apt install postgresql-16 -y

# 2. Запуск и включение PostgreSQL
sudo systemctl enable postgresql
sudo systemctl start postgresql

# 3. Переключение на пользователя postgres для настройки базы данных
sudo -i -u postgres

# 4. Создание новой базы данных и пользователя для Authentik
psql -c "CREATE DATABASE authentik;"
psql -c "CREATE USER authentik_user WITH PASSWORD 'ВАШ_ОЧЕНЬ_СИЛЬНЫЙ_ПАРОЛЬ_ДЛЯ_БД';"
psql -c "GRANT ALL PRIVILEGES ON DATABASE authentik TO authentik_user;"

# 5. Выход из пользователя postgres
exit

Reemplace 'ВАШ_ОЧЕНЬ_СИЛЬНЫЙ_ПАРОЛЬ_ДЛЯ_БД' por una contraseña compleja y única. Anótela, la necesitará para la configuración de Authentik.

3. Despliegue de Authentik con Docker Compose

Ahora estamos listos para desplegar Authentik utilizando sus imágenes oficiales de Docker.


# 1. Создание директории для Authentik и переход в нее
mkdir ~/authentik
cd ~/authentik

# 2. Загрузка файлов docker-compose.yml и .env из официального репозитория Authentik
# Для примера используем актуальную версию на 2024 год, которая будет актуальна и для 2026 с небольшими обновлениями
# Всегда проверяйте актуальный URL на официальном сайте Authentik (goauthentik.io)
wget https://goauthentik.io/docker-compose.yml
wget https://goauthentik.io/docker-compose.env
mv docker-compose.env .env # Переименовываем файл .env

# 3. Генерация уникального секретного ключа для Authentik
# Этот ключ используется для шифрования данных и должен быть надежным.
# Замените его на свой сгенерированный ключ.
AUTHENTIK_SECRET_KEY=$(python3 -c 'import secrets; print(secrets.token_urlsafe(64))')
echo "AUTHENTIK_SECRET_KEY=$AUTHENTIK_SECRET_KEY" >> .env
echo "La clave secreta de Authentik ha sido generada y añadida a .env"

Importante: asegúrese de utilizar las versiones actuales de los archivos docker-compose.yml y .env del sitio web oficial de Authentik. Los comandos anteriores utilizan enlaces públicos, pero puede haber cambios en 2026.

4. Configuración del archivo .env

Edite el archivo .env para que Authentik pueda conectarse a su base de datos PostgreSQL externa y utilizar el dominio correcto.


nano .env

Busque las siguientes líneas y modifíquelas según su configuración:

  • AUTHENTIK_HOST=https://your.domain.com/: Reemplace your.domain.com por su nombre de dominio real, a través del cual Authentik será accesible.
  • AUTHENTIK_POSTGRESQL__HOST=localhost: Indicamos que PostgreSQL se encuentra en el mismo servidor.
  • AUTHENTIK_POSTGRESQL__NAME=authentik: El nombre de la base de datos que creamos.
  • AUTHENTIK_POSTGRESQL__USER=authentik_user: El nombre de usuario de la base de datos.
  • AUTHENTIK_POSTGRESQL__PASSWORD=ВАШ_ОЧЕНЬ_СИЛЬНЫЙ_ПАРОЛЬ_ДЛЯ_БД: La contraseña del usuario de la base de datos.
  • AUTHENTIK_REDIS__HOST=redis: Déjelo como está si utiliza el Redis interno de Docker Compose.

Ejemplo de líneas editadas en .env:


AUTHENTIK_HOST=https://auth.example.com/ # Su nombre de dominio
AUTHENTIK_SECRET_KEY=ВАШ_СГЕНЕРИРОВАННЫЙ_КЛЮЧ # Ya debería estar ahí
AUTHENTIK_POSTGRESQL__HOST=localhost
AUTHENTIK_POSTGRESQL__NAME=authentik
AUTHENTIK_POSTGRESQL__USER=authentik_user
AUTHENTIK_POSTGRESQL__PASSWORD=ВАШ_ОЧЕНЬ_СИЛЬНЫЙ_ПАРОЛЬ_ДЛЯ_БД
AUTHENTIK_REDIS__HOST=redis

Guarde los cambios (Ctrl+O, Enter, Ctrl+X).

5. Inicio de Authentik

Ahora que todo está configurado, inicie Authentik con Docker Compose.


# Загрузка образов Docker
docker compose pull

# Запуск контейнеров Authentik в фоновом режиме
docker compose up -d

Verifique el estado de los contenedores en ejecución:


docker compose ps

Debería ver los contenedores authentik_server, authentik_worker y redis en estado running.

6. Creación de un superusuario de Authentik

Para el primer inicio de sesión en Authentik, es necesario crear una cuenta de superusuario.


docker compose exec authentik sh -c "python3 manage.py createsuperuser"

Siga las instrucciones en la terminal para crear un usuario admin (o cualquier otro nombre) y establecer una contraseña segura para él. Anote estas credenciales.

En este paso, Authentik está instalado y en ejecución. A continuación, configuraremos el acceso a través de la interfaz web utilizando un proxy inverso y HTTPS.

Configuración

Diagrama: Configuración
Diagrama: Configuración

Después de instalar Authentik, necesitamos configurar el acceso a través de la interfaz web, asegurar el cifrado del tráfico con HTTPS y verificar su funcionamiento. Para estos fines, utilizaremos Caddy, un servidor web potente y fácil de configurar que gestiona automáticamente los certificados de Let's Encrypt.

1. Instalación y configuración de Caddy

Caddy simplifica significativamente la configuración de HTTPS, obteniendo y renovando automáticamente los certificados SSL. Lo instalaremos en el VPS.


# 1. Установка необходимых зависимостей для добавления репозитория Caddy
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https

# 2. Добавление GPG ключа Caddy
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg

# 3. Добавление репозитория Caddy
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list

# 4. Обновление индекса пакетов APT и установка Caddy
sudo apt update
sudo apt install caddy -y

# 5. Проверка статуса Caddy (он должен быть запущен автоматически)
sudo systemctl status caddy

Si Caddy no está en ejecución, use sudo systemctl start caddy.

2. Configuración de Caddyfile para Authentik

Cree o edite el archivo de configuración de Caddy (Caddyfile) para que actúe como proxy inverso para Authentik.


sudo nano /etc/caddy/Caddyfile

Elimine el contenido existente y añada lo siguiente:


your.domain.com {
    # Reemplace 'your.domain.com' por su nombre de dominio real (por ejemplo, auth.example.com)

    # Habilitar compresión GZIP
    encode gzip

    # Configuración del proxy inverso a Authentik
    reverse_proxy authentik:9000 {
        # Cabeceras para el correcto funcionamiento del proxy
        header_up Host {host}
        header_up X-Real-IP {remote_ip}
        header_up X-Forwarded-For {remote_ip}
        header_up X-Forwarded-Proto {scheme}
    }

    # Configuración de logs (opcional, pero útil para depuración)
    log {
        output file /var/log/caddy/access.log
    }
}

Importante: reemplace your.domain.com por su dominio real, el cual especificó en el archivo .env de Authentik (por ejemplo, auth.example.com). Asegúrese de que el registro DNS A para este dominio apunte a la dirección IP de su VPS.

Guarde los cambios (Ctrl+O, Enter, Ctrl+X) y verifique la configuración de Caddy:


sudo caddy validate --config /etc/caddy/Caddyfile

Si la configuración es correcta, recargue Caddy para aplicar los cambios:


sudo systemctl reload caddy

Caddy obtendrá automáticamente certificados SSL/TLS de Let's Encrypt para su dominio. Para ello, asegúrese de que los puertos 80 y 443 estén abiertos en el firewall (lo hicimos en la etapa de preparación del servidor).

3. Gestión de secretos

Como se mostró anteriormente, todos los datos sensibles, como la clave secreta de Authentik (AUTHENTIK_SECRET_KEY) y las contraseñas de la base de datos, se almacenan en el archivo .env. Esta es una práctica estándar para las aplicaciones Docker. Nunca almacene estos datos directamente en docker-compose.yml o en repositorios públicos.

Asegúrese de que el archivo .env tenga permisos de acceso restringidos para que solo el propietario pueda leerlo:


chmod 600 ~/authentik/.env

4. Verificación de la operatividad

Después de configurar todos los componentes, realizaremos varias comprobaciones para asegurarnos de que Authentik funciona correctamente.

  • Verificación del estado de los contenedores Docker:
  • 
    docker compose ps
    

    Todos los contenedores (authentik_server, authentik_worker, redis) deben estar en estado running.

  • Verificación de los logs de Authentik:
  • 
    docker compose logs authentik_server
    docker compose logs authentik_worker
    

    Busque errores o advertencias. Los logs normales deben mostrar un inicio e inicialización exitosos.

  • Verificación del estado de Caddy:
  • 
    sudo systemctl status caddy
    sudo journalctl -u caddy --no-pager
    

    Asegúrese de que Caddy esté en ejecución y que no haya errores en los logs relacionados con la obtención de certificados o el proxy.

  • Verificación de acceso a través de curl:
  • 
    curl -I https://your.domain.com/
    

    Debería recibir un estado HTTP 200 OK o 302 Found (redirección a la página de inicio de sesión de Authentik), lo que indica una conexión y un funcionamiento HTTPS exitosos.

  • Acceso a través del navegador:
  • Abra la dirección https://your.domain.com/ en su navegador web. Debería ver la página de inicio de sesión de Authentik. Utilice las credenciales de superusuario creadas anteriormente para el primer inicio de sesión.

¡Felicidades! Authentik ha sido instalado y configurado exitosamente en su VPS con HTTPS. Ahora puede proceder a integrar sus aplicaciones.

Copias de seguridad y mantenimiento

Esquema: Copias de seguridad y mantenimiento
Esquema: Copias de seguridad y mantenimiento

Las copias de seguridad regulares y el mantenimiento oportuno son aspectos críticamente importantes para cualquier sistema de producción, y Authentik no es una excepción. En esta sección, veremos qué hacer una copia de seguridad, cómo automatizar el proceso y dónde almacenar las copias de seguridad.

1. Qué respaldar

Para una recuperación completa de Authentik, necesitará los siguientes componentes:

  • Base de datos PostgreSQL: Contiene todos los datos de usuario, configuraciones de aplicaciones, políticas, registros y otra información críticamente importante de Authentik. Este es el componente más importante para la copia de seguridad.
  • Archivos de configuración de Authentik: El archivo .env, que contiene la clave secreta y los parámetros de conexión a la base de datos, así como docker-compose.yml.
  • Configuración del proxy inverso: El archivo /etc/caddy/Caddyfile (o la configuración de Nginx).
  • Datos de archivos multimedia de Authentik (opcional): Si sube imágenes u otros archivos multimedia a través de Authentik (por ejemplo, logotipos de proveedores), estos datos se almacenan en un volumen de Docker. Por defecto, Authentik utiliza el volumen con nombre authentik_media. Si este volumen no está montado en el sistema anfitrión, su contenido debe ser respaldado por separado.

2. Script simple de copia de seguridad automática

Crearemos un script simple que realizará una copia de seguridad de la base de datos, los archivos de configuración y, si es necesario, los archivos multimedia.


nano ~/backup_authentik.sh

Pegue el siguiente contenido:


#!/bin/bash

# --- Configuración ---
DATE=$(date +%Y%m%d%H%M%S)
BACKUP_DIR="/var/backups/authentik" # Directorio para almacenar las copias de seguridad
DB_NAME="authentik"                 # Nombre de la base de datos de Authentik
DB_USER="authentik_user"            # Usuario de la base de datos
DB_HOST="localhost"                 # Host de la base de datos (nuestro VPS)
DB_PASSWORD="SU_CONTRASEÑA_MUY_FUERTE_PARA_LA_BD" # Contraseña de la base de datos. ¡EN PRODUCCIÓN, USE .pgpass O SECRETS!

AUTHENTIK_ROOT_DIR="$HOME/authentik" # Ruta al directorio con docker-compose.yml y .env
CADDY_CONFIG_PATH="/etc/caddy/Caddyfile" # Ruta al Caddyfile

# --- Creación del directorio de copias de seguridad, si no existe ---
mkdir -p "$BACKUP_DIR"

# --- 1. Copia de seguridad de la base de datos PostgreSQL ---
echo "Iniciando copia de seguridad de la base de datos PostgreSQL..."
export PGPASSWORD="$DB_PASSWORD" # Establecemos la contraseña para pg_dump
pg_dump -h "$DB_HOST" -U "$DB_USER" -d "$DB_NAME" > "$BACKUP_DIR/authentik_db_$DATE.sql"
unset PGPASSWORD # Eliminamos la contraseña de las variables de entorno
if [ $? -eq 0 ]; then
    echo "Copia de seguridad de la base de datos creada con éxito: $BACKUP_DIR/authentik_db_$DATE.sql"
else
    echo "Error al crear la copia de seguridad de la base de datos."
fi

# --- 2. Copia de seguridad de los archivos de configuración de Authentik ---
echo "Copia de seguridad de los archivos de configuración de Authentik..."
cp "$AUTHENTIK_ROOT_DIR/.env" "$BACKUP_DIR/authentik_env_$DATE.env"
cp "$AUTHENTIK_ROOT_DIR/docker-compose.yml" "$BACKUP_DIR/authentik_compose_$DATE.yml"
echo "Archivos de configuración de Authentik respaldados."

# --- 3. Copia de seguridad del Caddyfile ---
echo "Copia de seguridad del Caddyfile..."
cp "$CADDY_CONFIG_PATH" "$BACKUP_DIR/Caddyfile_$DATE"
echo "Caddyfile respaldado."

# --- 4. Copia de seguridad del volumen Docker 'authentik_media' (si no está montado en el host) ---
# Si tiene el volumen authentik_media montado en el host, debe respaldar este directorio directamente.
# De lo contrario, si es un volumen Docker con nombre, puede usar el siguiente enfoque:
# Definimos la ruta al volumen Docker. Esto puede variar según la versión de Docker.
# VOLUME_PATH=$(docker volume inspect authentik_media --format '{{ .Mountpoint }}')
# if [ -d "$VOLUME_PATH" ]; then
#    echo "Copia de seguridad del volumen Docker authentik_media..."
#    tar -czf "$BACKUP_DIR/authentik_media_$DATE.tar.gz" -C "$VOLUME_PATH" .
#    echo "Volumen Docker authentik_media respaldado."
# else
#    echo "Volumen authentik_media no encontrado o no montado en el host."
# fi

# --- 5. Limpieza de copias de seguridad antiguas (por ejemplo, mantener copias de seguridad de los últimos 7 días) ---
echo "Limpiando copias de seguridad antiguas..."
find "$BACKUP_DIR" -type f -name 'authentik_db_.sql' -mtime +7 -delete
find "$BACKUP_DIR" -type f -name 'authentik_env_.env' -mtime +7 -delete
find "$BACKUP_DIR" -type f -name 'authentik_compose_.yml' -mtime +7 -delete
find "$BACKUP_DIR" -type f -name 'Caddyfile_' -mtime +7 -delete
# find "$BACKUP_DIR" -type f -name 'authentik_media_.tar.gz' -mtime +7 -delete # Si está respaldando el volumen multimedia
echo "Copias de seguridad antiguas eliminadas."

echo "Copia de seguridad automática de Authentik completada en $DATE."

Importante: Reemplace 'ВАШ_ОЧЕНЬ_СИЛЬНЫЙ_ПАРОЛЬ_ДЛЯ_БД' con la contraseña real de su base de datos. En un entorno de producción, es altamente desaconsejable almacenar contraseñas directamente en el script. En su lugar, utilice un archivo ~/.pgpass con permisos restringidos (chmod 0600 ~/.pgpass) o variables de entorno que se carguen de forma segura.

Haga el script ejecutable:


chmod +x ~/backup_authentik.sh

3. Automatización de copias de seguridad con Cron

Agregue el script al programador Cron para que se ejecute automáticamente.


crontab -e

Agregue la siguiente línea al final del archivo para que el script se ejecute diariamente a las 3:00 de la madrugada:


0 3    /home/youruser/backup_authentik.sh > /dev/null 2>&1

Reemplace /home/youruser/backup_authentik.sh con la ruta completa a su script.

4. Dónde almacenar las copias de seguridad

Almacenar las copias de seguridad en el mismo servidor que el servicio principal es arriesgado. En caso de fallo del VPS, perderá tanto los datos como las copias de seguridad. Se recomienda utilizar almacenamiento externo:

  • Almacenamiento compatible con S3: Servicios en la nube como Amazon S3, DigitalOcean Spaces, Backblaze B2, ofrecen almacenamiento fiable y económico. Para subir copias de seguridad, puede usar utilidades como s3cmd o rclone.
  • VPS/Servidor dedicado separado: Puede configurar un segundo VPS, más económico, exclusivamente para almacenar copias de seguridad y sincronizarlas mediante rsync o scp.
  • NAS/Almacenamiento en red local: Para uso doméstico o pequeñas oficinas, puede utilizar su propio almacenamiento en red, accesible a través de VPN.

5. Actualizaciones de Authentik y del sistema

Las actualizaciones regulares son importantes para la seguridad y para obtener nuevas funciones.

  • Actualización de Authentik:

    Para actualizar los contenedores Docker de Authentik:

    
    cd ~/authentik
    docker compose pull # Descargar nuevas imágenes
    docker compose down # Detener los contenedores actuales
    docker compose up -d # Iniciar los nuevos contenedores
    

    Siempre revise la documentación oficial de Authentik antes de realizar actualizaciones importantes (por ejemplo, al pasar a una nueva versión principal), ya que pueden requerirse migraciones de la base de datos o cambios en el archivo docker-compose.yml.

  • Actualización del sistema operativo y PostgreSQL:

    Actualice regularmente el sistema operativo y todos los paquetes instalados:

    
    sudo apt update && sudo apt upgrade -y
    sudo apt autoremove -y
    

    Para PostgreSQL, las actualizaciones suelen ocurrir junto con las del sistema, pero a veces las versiones principales requieren una migración manual de datos. Siempre siga las recomendaciones de Ubuntu/PostgreSQL para estos casos.

  • Planificación del mantenimiento:

    Realice las actualizaciones durante las ventanas de mantenimiento programadas, cuando la carga del servidor sea mínima, para minimizar el posible impacto en los usuarios. Siempre haga copias de seguridad antes de actualizaciones importantes.

Solución de problemas + Preguntas frecuentes

En esta sección, abordaremos los problemas típicos que pueden surgir durante la instalación y operación de Authentik, y responderemos a las preguntas frecuentes.

Los contenedores de Authentik no se inician.

Qué verificar: En primer lugar, verifique los registros de Docker Compose. Vaya al directorio de Authentik (~/authentik) y ejecute docker compose logs. Esto mostrará la salida de todos los contenedores. Si el problema está en un contenedor específico (por ejemplo, authentik_server), puede ver sus registros por separado: docker compose logs authentik_server.

Cómo solucionarlo: Busque mensajes de error en los registros. Las causas frecuentes son: parámetros incorrectos en el archivo .env (especialmente AUTHENTIK_SECRET_KEY o los parámetros de la base de datos), inaccesibilidad de la base de datos PostgreSQL (verifique si PostgreSQL está en ejecución: sudo systemctl status postgresql), conflictos de puertos (si algún otro servicio ya está usando el puerto 9000), o falta de recursos (RAM/CPU) en el VPS.

No puedo conectarme a Authentik a través del navegador (502 Bad Gateway o Connection Refused).

Qué verificar:

  • Registro DNS A: Asegúrese de que su nombre de dominio (por ejemplo, auth.example.com) apunte correctamente a la dirección IP de su VPS. Use dig your.domain.com o nslookup your.domain.com.
  • Estado de Caddy/Nginx: Verifique si su servidor proxy inverso está en ejecución: sudo systemctl status caddy (o nginx).
  • Registros de Caddy/Nginx: Examine los registros del servidor proxy. Para Caddy, es sudo journalctl -u caddy --no-pager o el archivo especificado en el Caddyfile (por ejemplo, /var/log/caddy/access.log). Para Nginx, suele ser /var/log/nginx/error.log.
  • Cortafuegos: Asegúrese de que los puertos 80 y 443 estén abiertos en UFW: sudo ufw status verbose.
  • Disponibilidad de Authentik desde dentro: Intente ejecutar curl http://localhost:9000 en el propio VPS. Si esto funciona, el problema está en el servidor proxy o su configuración.

Cómo solucionarlo: Si el problema es el DNS, actualice el registro A en su registrador de nombres de dominio. Si Caddy no está en ejecución, intente iniciarlo: sudo systemctl start caddy y verifique el Caddyfile en busca de errores de sintaxis. Asegúrese de que el Caddyfile especifique la dirección correcta para el proxy (authentik:9000 o localhost:9000, dependiendo de la configuración de red de Docker).

Problemas con TLS (certificados Let's Encrypt).

Qué verificar: Caddy obtiene certificados automáticamente. La principal causa de problemas es la incapacidad de Caddy para comunicarse con los servidores de Let's Encrypt. Asegúrese de que:

  • Su dominio sea accesible desde internet a través de los puertos 80 y 443.
  • No haya otros servicios ocupando estos puertos.
  • El registro DNS A para el dominio esté configurado correctamente.

Cómo solucionarlo: Revise los registros de Caddy en busca de mensajes de error al obtener certificados. Asegúrese de que UFW permita el tráfico entrante en los puertos 80 y 443. Si acaba de actualizar el DNS, dele tiempo para que se propague (hasta varias horas).

¿Qué configuración mínima de VPS es adecuada?

Para un equipo pequeño (hasta 50 usuarios) y escenarios básicos de autenticación, un VPS con 2 vCPU, 4 GB de RAM y 80 GB de SSD NVMe será mínimamente adecuado. Esto garantizará un funcionamiento estable de Authentik y PostgreSQL, pero sin un gran margen para el crecimiento o una alta carga.

¿Qué elegir: VPS o dedicado para esta tarea?

Para la mayoría de los escenarios, especialmente para equipos de hasta varios cientos de usuarios, un VPS será una solución óptima y rentable. Un servidor dedicado debe considerarse para cargas muy altas (miles de usuarios activos, solicitudes intensivas), requisitos estrictos de rendimiento o la necesidad de control total sobre el hardware. El VPS ofrece suficiente flexibilidad y potencia para la mayoría de las necesidades de autenticación centralizada.

¿Cómo actualizar Authentik?

Para actualizar Authentik, es necesario actualizar sus imágenes de Docker. Vaya al directorio de instalación de Authentik (~/authentik), luego ejecute: docker compose pull (para descargar nuevas imágenes), docker compose down (para detener los contenedores actuales), y docker compose up -d (para iniciar los nuevos contenedores). Siempre revise la documentación oficial de Authentik antes de actualizaciones importantes en busca de migraciones de la base de datos o cambios en la configuración para evitar problemas de compatibilidad.

¿Cómo cambiar la contraseña del superusuario de Authentik?

Si ha olvidado la contraseña del superusuario, puede restablecerla ejecutando el comando dentro del contenedor de Authentik: docker compose exec authentik sh -c "python3 manage.py changepassword admin" (reemplace admin con el nombre de su superusuario). El sistema le pedirá que introduzca una nueva contraseña.

Conclusiones y próximos pasos

Diagrama: Conclusiones y próximos pasos
Diagrama: Conclusiones y próximos pasos

Hemos desplegado y configurado Authentik con éxito en su VPS, proporcionando una solución potente y flexible para la gestión centralizada de identidades y accesos. Ahora dispone de su propia plataforma para el inicio de sesión único (SSO) y la autenticación multifactor (MFA), capaz de mejorar significativamente la seguridad y la facilidad de uso de sus aplicaciones.

Los siguientes pasos le ayudarán a aprovechar al máximo el potencial de Authentik e integrarlo en su infraestructura:

  • Integración de la primera aplicación: Comience con la integración de una de sus aplicaciones web (por ejemplo, GitLab, Mattermost, Nextcloud, Grafana). Authentik es compatible con numerosos protocolos (OpenID Connect, SAML, LDAP) y cuenta con integraciones predefinidas.
  • Exploración de funciones avanzadas: Explore las capacidades de Authentik, como LDAP Outposts (para la sincronización con directorios existentes), la creación de políticas MFA complejas, la configuración de diversas fuentes de identidad (por ejemplo, proveedores sociales) y la gestión de usuarios/grupos.
  • Implementación de monitoreo y alertas: Configure sistemas de monitoreo (por ejemplo, Prometheus + Grafana) para rastrear el estado de Authentik, el uso de recursos del VPS y la actividad de autenticación, con el fin de responder rápidamente a posibles problemas o incidentes de seguridad.

¿Te fue útil esta guía?

instalación de Authentik en VPS: SSO, MFA y autenticación centralizada
support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.