🛡️Authelia avanzado

Este tutorial esta destinado a usar Authelia para proteger nuestras aplicaciones expuestas a la red de una manera eficaz.

Authelia es un servidor y portal de autenticación y autorización de código abierto que cumple la función de gestión de identidad y acceso (IAM) de la seguridad de la información al proporcionar autenticación multi factor e inicio de sesión único (SSO) para sus aplicaciones a través de un portal web.

Como seguir este tutorial.

Esto es lo que nos dice la web de Authelia. Lo que vamos a conseguir es brindar nuestras web con una capa adicional de seguridad utilizando tanto el factor único, como el doble factor, con Dúo / Mobile Push, también incluiremos la opción WebAuthn.

También aprenderemos a utilizar reglas para permitir a usuarios la entrada en recursos o no, desde luego la configuración ofrece bastantes alternativas.

Comenzamos con Authelia básico.

El tutorial solo se aplica a Nginx-Proxy-Manager-Official. Si desea utilizar otro servidor proxy puedes seguir la guia oficial. https://www.authelia.com/integration/proxies/

Docker que usaremos.

Configuración componentes.

Primeramente configuraremos una nueva red, donde añadiremos todos los componentes de la instalación, a continuación, los Docker principales y secundarios, configurando sus plantillas.

Configuración de red.

Para crear la nueva red, abriremos la terminar de Unraid e introduciremos el siguiente comando.

docker network create --gateway 172.21.0.1 --subnet 172.21.0.0/16 authelia

Configuración Authelia.

Primeramente crearemos las carpetas necesarias para la instalación, de esta manera avanzaremos con la instalación, añadiendo posteriormente en la plantilla variables y rutas necesarias.

Introduce el siguiente comando en el terminal de UnRaid.

mkdir /mnt/user/appdata/authelia && cd /mnt/user/appdata/authelia && mkdir config && cd config && mkdir secrets && cd secrets && echo '0' > secret && echo '0' > jwt && echo '0' > mysql && echo '0' > smtp && echo '0' > encryption && echo '0' > duo_api && echo 'DI77IIOJIV831245LLKJ' > redis && clear && chmod 660 ./* && ls -L && echo "si no existe error sal del termninal"

Con esta operación se han creado las carpetas y archivos necesarios para jwt secret, en los archivos creados introduciremos las contraseña de los diferentes componentes que utilizaremos, esto lo haremos siguiendo los pasos a continuación, describiremos una opción, como ejemplo y los demás archivos se hacen de la misma manera, únicamente volviendo a ejecutar el comando para crear las contraseñas.

tendremos los siguientes archivos en la carpeta /secrets

  • encryption

  • mysql

  • redis

  • smtp

  • jwt

  • duo_api => esta dejala tal cual, mas adelante la añadiremos.

  • secret

Creación de contraseñas.

Para la creación de las diferentes contraseña utilizaremos el siguiente comando, desde la terminal de Unraid, donde el numero 50 es la longitud, podemos poner la longitud que deseemos >20.

openssl rand -base64 50

Ejemplo valido para todas las demás contraseñas.

Primeramente abriremos el archivo encryption y borraremos su contenido, luego ejecutaremos el comando anterior y copiaremos el resultado tal cual, sin variar ni espacios ni nada, en el interior del archivo encryption, guardamos y salimos. Este mismo paso se debe seguir hasta completar los diferentes archivos situados en /secrets, ejecutando el comando para cada uno.

Mariadb.

En la foto se pueden ver las configuraciones necesarias, recuerda que debes seguir los datos de tu subred creada, si son distintos a los del tutorial.

Ya tenemos en marcha Mariadb, comprueba que no existan errores y que admite conexiones.

Redis.

Redis lo utilizaremos para las sesiones y almacenaje de cookies.

Es posible que al iniciarse de error por no tener permisos de escritura en /redis , lo unico que debes hacer es darle esos permisos.

Ya tenemos en marcha Redis, comprueba que no existan errores y que admite conexiones.

Nginx-Proxy-Manager-Official.

Utilizaremos este proxy inverso, por dos razones, su facilidad de uso y buen funcionamiento.

La instalación de la plantilla es verdaderamente fácil, ahora queda añadir configuraciones avanzadas que realizaremos mas adelante. Aplica los cambios y comprueba que no existen errores en los Docker creados hasta el momento.

Authelia.

Vamos con lo interesante, la instalación de Authelia, todo lo demás ha sido la preparación para añadir a la plantilla de Authelia las diferentes carpetas y variables.

Lo primero que haremos en la plantilla será cambiar el nombre como figura en la foto, todo en minúsculas y activar la vista avanzada, en la parte superior derecha de la plantilla.

Las variables que añadiremos a la plantilla serán las siguiente.

  • AUTHELIA_JWT_SECRET_FILE =>/config/secrets/jwt

  • AUTHELIA_DUO_API_SECRET_KEYFILE => /config/secrets/duo_api

  • AUTHELIA_SESSION_REDIS_PASSWORD_FILE => /config/secrets/redis

  • AUTHELIA_STORAGE_MYSQL_PASSWORD_FILE => /config/secrets/mysql

  • AUTHELIA_NOTIFIER_SMTP_PASSWORD_FILE => /config/secrets/smtp

  • AUTHELIA_STORAGE_ENCRYPTION_KEY_FILE => /config/secrets/encryption

  • AUTHELIA_SESSION_SECRET_FILE => /config/secrets/secret

Cada una de ellas tendrá una ruta a su correspondiente archivo de contraseña. Mostrare un ejemplo, y añadiré las rutas correspondiente a cada variable para evitar errores.

A partir de este ejemplo puedes añadir las demás variables. También puedes añadir la siguiente variable. Aunque es opcional.

Key TZ    valor Europe/Madrid

Parámetros de la plantilla

El contenedor Authelia aún no te iniciara.

Pasamos al siguiente paso configuración avanzada Authelia.

Última actualización