Installazione e Configurazione Base di Authelia su Ubuntu Server 24.04

da | Dic 18, 2025

 

 

In un contesto in cui la sicurezza dei servizi web è sempre più cruciale Authelia si è affermata come una delle soluzioni open source più complete per gestire autenticazione e autorizzazione centralizzate.

Grazie al suo supporto per Single Sign-On (SSO), autenticazione a più fattori (2FA) e integrazione con reverse proxy come Nginx o Traefik, Authelia consente di proteggere con un’unica interfaccia tutte le applicazioni web self-hosted.

In questo articolo vedremo passo dopo passo come installare e configurare Authelia su Ubuntu Server 24.04 partendo da una configurazione base ma già pronta all’uso.

L’obiettivo è ottenere un sistema sicuro, stabile e facilmente integrabile con i servizi più comuni ideale per chi gestisce un homelab o un piccolo ambiente di produzione.

PREREQUISITI

Server Ubuntu 24.04 con accesso root/sudo.

DNS che punti al tuo reverse proxy (es. auth.tuodominio.it) → Authelia normalmente vierne esposta dietro Nginx/Traefik e protegge altri servizi.

Raggiungibilità delle porte 80 e 443

AGGIORNAMENTO DEL SERVER UBUNTU

Aggiornare il server con il seguente comando:

Per sicurezza installare anche qualche tool utile con il comando:

NOTA BENE:

openssl → lo utilizzeremo per generare le secret

tar → lo utilizzeremo per estrarre i sorgenti

jq → aiuta nel debug ma non è strettamente obbligatorio

CREAZIONE UTENTE E DIRECTORY PER AUTHELIA

In questo tutorial utilizzeremo la seguente struttura:

  • binario in /opt/authelia/authelia
  • config in /etc/authelia
  • dati (sqlite, notifiche ecc.) in /var/lib/authelia

Aggiungere l’utente con il comando:

Creare le cartelle con i seguenti comandi:

 

SCARICARE AUTHELIA v4.39.13

Prima di tutto controllare l’architettura della macchina con il comando:

Se si ottiene x86_64 → sei su amd64 (Intel/AMD)

Se si ottiene aarch64 → sei su arm64 (tipico ARM 64 bit, Raspberry Pi 4/5 64 bit, AWS Graviton ecc.)

A questo punto procedere con il download:

Per amd64 (x86_64):

Per arm64 (aarch64):

 

ESTRARRE ED ESTRARRE IL BINARIO

Posizionarsi nelle cartella /tmp con il comando:

Unzippare il file con il comando:

Il tar contiene un binario chiamato authelia quindi eseguire i comandi:

Verificare la versione di Authelia con il comando:

Dovremmo voisualizzare il seguente output:

 

GENERAZIONE DEI SECRETS

Authelia richiede secrets forti per:

  • JWT
  • sessione
  • cifratura storage

Generare tre secret lunghi e salvarli da parte (li useremo nel file di configurazione)

Eseguire il comando:

⚠️ATTENZIONE: Copiare questi valori da qualche parte sicuro. Non perderli.

Dovremmo visualizzare un output simile al seguente:

 

CREAZIONE DEL DATABASE E DELL’UTENTE LOCALE

Authelia può usare LDAP, etc., ma per partire useremo il backend file.

Generare l’hash Argon2id della password dell’utente admin con il seguete comando:

Inserire due volte la password che si intende utilizzare e dovremmo visualizzare il seguente output:

Creare il file utenti con il comando:

Inserire all’interno del file questo output di esempio:

Salvare e chiudere il file di configurazione.

Impostare quindi i permessi restrittivi con i seguenti comandi:

 

CONFIGURAZIONE PRINCIPALE DI AUTHELIA

Creare il file di configurazione di Authelia /etc/authelia/configuration.yml con il comando:

Incollare e personalizzare le cose marcate con # <– (domini, email, segreti):

Ora sistemare i permessi con i seguenti comandi:

Di seguito un breve recap delle cose da fare:

jwt_secret, session.secret, storage.encryption_key → sostituirli con i tre segreti generati

test.lab, app.test.lab, ecc. → inserire i nomi dei veri domini.

CREAZIONE DEL SERVIZIO SYSTEMD

Per permettere ad Authelia di partire all’avvio e girare come utente dedicato è necessario creare il file .service.

Eseguire il comando:

Quindi inserire all’interno del file il seguente output:

Salvare e chiudere il file di configurazione

Abilitare e avviare Authelia con i seguenti comandi:

Dovremmo visualizzare il seguente output:

Se lo stato è active (running), Authelia sta ascoltando su 127.0.0.1:9091 (o 0.0.0.0:9091 se abbiamo la sciato la configurazione di default).

Puoi vedere i log live di Authelia con il comando:

 

INSTALLAZIONE DI NGINX COME REVERSE PROXY

Installare Nginx con il comando:

Configuare il reverse proxy per Authelia creando il file authelia.conf con il comando:

Incollare quindi il seguente output:

Salvare e chiudere il file di configurazione

Abilitare e ricaricare con i seguenti comandi:

 

ACCESSO AD AUTHELIA DA INTERFACCIA WEB

Richiamare da un qualsiasi browser il seguente link:

https://<your-domain-name>

Inserire le credenziali create in precedenza quindi cliccare Sign In

A questo punto è possibile configurare Authelia…

FUNZIONALITA’ E CONSIDERAZIONI FINALI

Authelia è un portale di autenticazione e autorizzazione centralizzato (Identity Provider self-hosted) che aggiunge:

  • autenticazione a più fattori (2FA)
  • Single Sign-On (SSO)
  • controllo accessi basato su regole (per dominio, percorso, gruppo, utente, ecc.)

In pratica: è un guardiano davanti alle tue app web interne.

⚙️ FUNZIONALITÀ PRINCIPALI

1. Autenticazione e SSO

Supporta file backend locale (utenti YAML) o LDAP (es. Active Directory).

Dopo il login su Authelia, le altre app configurate con SSO si riconoscono automaticamente.

Funziona tramite cookie di sessione condiviso sul dominio configurato.

2. Autorizzazione granulare

Puoi definire regole in access_control:

rules:

  • domain: app1.example.com
  • policy: two_factor
  • domain: grafana.example.com
  • subject: [“group:admins”]
  • policy: one_factor

Policy disponibili:

  • bypass (nessun login)
  • one_factor (solo username/password)
  • two_factor (2FA obbligatorio)
  • deny

‍♂️ 3. Gestione utenti

Modalità file (semplice per pochi utenti)

Modalità LDAP (scalabile per aziende)

Possibilità di password reset via mail (se configuri SMTP)

4. 2FA / MFA

Supporta TOTP (Google Authenticator, Authy, ecc.)

Possibilità di enforcement per dominio o gruppo

QR code generato al primo login

5. Notifiche

Notifiche email (reset password, alert) tramite SMTP o filesystem (debug)

Gestione anti brute-force (tentativi falliti, lock temporanei)

6. Storage

Database SQLite, MySQL, o PostgreSQL

Dati cifrati con chiavi definite in storage.encryption_key

7. Compatibilità proxy

Nginx, Traefik, Caddy — pienamente supportati.

Integrazione tramite forwardAuth (autenticazione inversa via header HTTP)

✅ PRO — PUNTI DI FORZA

Sicurezza: MFA, SSO, brute-force protection, JWT sicuri
Configurabilità: YAML chiaro, regole granulari per dominio/percorso
Self-hosted: Nessuna dipendenza da provider esterni (es. Google, Auth0)
Integrazione: Funziona con qualunque reverse proxy moderno
Flessibilità: Backend file o LDAP, storage locale o SQL
UX: Interfaccia web semplice, 2FA QR integrato
Performance: Binario Go nativo, molto leggero (RAM ~50–100MB)
Debug: Log strutturati e dettagliati, facile tracing dei problemi
Community: Attiva, ottima documentazione e aggiornamenti continui

⚠️ CONTRO — LIMITAZIONI / PUNTI DI ATTENZIONE

Configurazione: YAML molto sensibile all’indentazione e ai formati (errore → crash immediato)
Aggiornamenti: Cambi di sintassi frequenti (es. session.cookies[] → session.domains[]) tra versioni minori
Gestione utenti: Nessuna UI per gestione utenti in modalità file (modifica manuale YAML)
Email / reset: Reset password via mail richiede configurazione SMTP perfetta
Backup: Devi salvare manualmente chiavi JWT / session / encryption (nessun recovery se perse)
Integrazione: Richiede configurazione attenta di Nginx (headers, redirect, cookies, HTTPS)
Scalabilità: Ottima per ambienti piccoli / medi; per grandi SSO conviene Keycloak o Authentik
Debug API: API interne non documentate per uso diretto (es. test via curl possono fallire anche se tutto funziona via browser)

CONSIDERAZIONI FINALI

Authelia è una soluzione eccellente per chi vuole:

  • mettere in sicurezza applicazioni interne (es. Grafana, Portainer, Nextcloud…)
  • gestire accessi con SSO e 2FA
  • restare indipendente da servizi esterni (Google, Okta, AzureAD)
  • mantenere il controllo completo dei dati e dell’infrastruttura

Ma:

  • richiede una curva di apprendimento iniziale (YAML, reverse proxy, cookie domain)
  • e un po’ di manutenzione attiva dopo gli aggiornamenti.

In ambienti aziendali piccoli/medi o per un homelab avanzato, è probabilmente la miglior opzione self-hosted per SSO+2FA.

Articoli Recenti

Veeam Backup

Monitoring

Friends

  • My English Lab  English School
  • ChrSystem   Servizi ICT
  • Since 01  Kreative Graphics

Database

Networking

Autori

  • Raffaele Chiatto  Amministratore
  • Marco Valle  Autore
  • Angelo Lauria  Autore
  • Edoardo Prot  Autore
  • Davide D’Urso  Autore
Raffaele Chiatto

Raffaele Chiatto

Sono Raffaele Chiatto, un appassionato di informatica a 360 gradi. Tutto è iniziato nel 1996, quando ho scoperto il mondo dell'informatica grazie a Windows 95, e da quel momento non ho più smesso di esplorare e imparare. Ogni giorno mi dedico con curiosità e passione a scoprire le nuove frontiere di questo settore in continua evoluzione.
Categorie: Authelia | Ubuntu

Related Post

0 commenti

Invia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Virtualizzazione

Linux

Microsoft

Apple

Backup

Database

Security

Automazione