Marvin Pascale

[B.Log]

13 Dicembre 2023

Authelia

Authelia Oggi ci immergiamo nel mondo della sicurezza online con un focus su Authelia, un sistema open-source di autenticazione e autorizzazione. La sicurezza online è un aspetto cruciale dell’amministrazione di sistema, specialmente in un’epoca in cui le minacce informatiche sono in continuo aumento. Authelia emerge come una soluzione versatile per proteggere l’accesso ai tuoi servizi web.

Che Cos’è Authelia?

Authelia è un proxy di autenticazione che fornisce un layer di sicurezza aggiuntivo per i tuoi servizi web. Utilizza l’autenticazione a due fattori (2FA) per garantire che solo gli utenti autorizzati possano accedere ai tuoi servizi. Authelia è particolarmente utile in configurazioni con più servizi web, come Docker Swarm o Kubernetes.

Perché Authelia?

La sua integrazione con sistemi esistenti come LDAP/Active Directory e la compatibilità con OpenID Connect e SAML lo rendono un sistema versatile. Inoltre, offre la possibilità di configurare regole dettagliate per l’accesso, permettendo un controllo granulare su chi può accedere e a quali risorse.

Installazione di Authelia

L’installazione di Authelia può essere effettuata tramite Docker, il che lo rende una scelta ideale per ambienti containerizzati. Ecco i passaggi fondamentali:

  1. Preparazione dell’Ambiente: Assicurati di avere Docker e Docker Compose installati sul tuo sistema.
  2. Configurazione: Scarica il file di configurazione di Authelia e personalizzalo in base alle tue esigenze.
  3. Esecuzione: Utilizza Docker Compose per avviare Authelia.

Configurazione e Utilizzo

Una volta installato, Authelia necessita di una configurazione adeguata. Questo include:

  • Definizione degli utenti: Imposta gli utenti e le loro credenziali.
  • Configurazione del 2FA: Scegli tra vari metodi di autenticazione a due fattori.
  • Regole di accesso: Definisci le policy di accesso per i diversi servizi.

Integrazione con i Servizi Web

Authelia si integra con vari reverse proxy come Nginx, Traefik e HAProxy. Questo permette di proteggere servizi come Nextcloud, Plex o qualsiasi altro servizio web che si desideri esporre in modo sicuro.

web security

Mani in pasta

Per prima cosa creiamo una cartella, creiamo il file docker-compose.yml e il file di configurazione

# mkdir -p /opt/docker/authelia
# cd /opt/docker/authelia
# curl -o configuration.yml https://raw.githubusercontent.com/authelia/authelia/master/config.template.yml

il file docker-compose.yml

version: '3'
services:
  authelia:
    image: authelia/authelia
    container_name: authelia
    volumes:
      - ./configuration.yml:/etc/authelia/configuration.yml
      - ./users.yml:/etc/authelia/users.yml
    ports:
      - "9091:9091"
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9091/api/healthcheck"]
      interval: 1m30s
      timeout: 10s
      retries: 3
      start_period: 40s

Ora creiamo un file per gestire gli utenti

users.yml

users:
  marvin:
    displayname: "Marvin Pascale"
    password: "$argon2id$v=19$m=1048576,t=3,p=1$...$..."
    email: [email protected]
    groups:
      - admins
      - devops

per creare l’hash della password dobbiamo utilizzare un tool che è disponibile nel container

# docker run --rm authelia/authelia authelia hash-password 'tuapassword'

All’interno del file configuration.yml troveremo tutte le configurazioni necessarie, i commenti e qualche esempio.

Ora possiamo avviare il container con

# docker-compose up -d

Per verificare che il servizio sia partito correttamente possiamo collegarci alla sua interfaccia web: http://[IP-SERVER]:9091

Conclusione

Implementare Authelia nel tuo ambiente non solo aumenta la sicurezza, ma offre anche una gestione flessibile dell’accesso ai servizi. È una soluzione ideale per chi cerca un controllo più robusto senza compromettere la facilità d’uso.


Le opinioni in quanto tali sono opinabili e nulla ti vieta di approfondire l’argomento.

Risorse: