Skip to content

Authelia (Autenticação e 2FA)

O Authelia atua como a camada de autenticação central do ambiente, protegendo serviços expostos externamente através de 2FA e políticas de acesso.

Ele é integrado ao Nginx Proxy Manager (NPM) via auth_request.


  • proteger serviços publicados externamente
  • exigir autenticação com 2FA
  • permitir bypass controlado para rede interna/VPN
  • centralizar política de acesso
  • reduzir exposição direta dos serviços

ComponenteLocalEndereço lógico
AutheliaRPi (192.168.1.11)https://auth.scultetus.dev.br
IntegraçãoNPM (VIP)auth_request via snippets
  • configuração e execução do Authelia no RPi
  • política aplicada no NPM via snippets versionados no fluxo do NPM
  • DNS interno e externo corretos para auth.scultetus.dev.br
  • NPM saudável no VIP 192.168.1.20
  • sessão/cookies alinhados ao domínio scultetus.dev.br
Terminal window
curl http://192.168.1.11:9091/api/health
curl -k -I https://auth.scultetus.dev.br
docker logs authelia
  • serviço não está em HA (apenas RPi)
  • indisponibilidade do RPi impacta autenticação externa protegida
  • 20/04/2026

ComponenteFunção
Autheliaautenticação e autorização
NPMintegra via auth_request
Backend (file/DB)armazena usuários e sessões
TOTPsegundo fator (2FA)

  • roda em container Docker no RPi
  • exposto internamente (porta 9091)
  • acessado via proxy (auth.scultetus.dev.br)

Usuário → DNS → NPM (VIP)
Authelia (auth_request)
login + 2FA
sessão válida
serviço

OrigemComportamento
LAN (192.168.1.0/24)acesso direto (sem 2FA)
VPN (10.13.13.0/24)acesso direto
Externoexige Authelia + 2FA

A proteção é aplicada via Custom Nginx Configuration.

include /snippets/authelia-location.conf;
include /snippets/authelia-authrequest.conf;

include /snippets/authelia-location.conf;
include /snippets/authelia-authrequest.conf;
location / {
proxy_pass http://SERVICO_INTERNO;
}

allow 192.168.1.0/24;
allow 10.13.13.0/24;
deny all;

👉 evita autenticação desnecessária na rede interna


Configuração típica:

session:
name: authelia_session
cookies:
- domain: scultetus.dev.br
authelia_url: https://auth.scultetus.dev.br
default_redirection_url: https://git.scultetus.dev.br

  • algoritmo padrão (RFC6238)
  • apps compatíveis:
    • Google Authenticator
    • Microsoft Authenticator
    • Authy
  • período: 30s
  • dígitos: 6
  • issuer: domínio do ambiente

  • Authelia foi instalado no RPi e substituiu a execução anterior no NAS
  • a mudança foi feita porque o RPi fica 24/7 e o NAS não
  • o container oficial em uso é authelia/authelia
  • 2FA via TOTP validado com Google Authenticator
  • integração com NPM aplicada via snippets nginx:
    • /snippets/authelia-location.conf
    • /snippets/authelia-authrequest.conf
  • sessão configurada com domínio scultetus.dev.br

  • Authelia depende de:
    • DNS funcional
    • NPM correto
    • backend acessível
  • falhas podem parecer problema de proxy
  • cookies mal configurados quebram sessão

Terminal window
curl http://192.168.1.11:9091/api/health

Terminal window
curl -k -I https://auth.scultetus.dev.br

  • acessar serviço protegido
  • verificar se redireciona para Authelia
  • confirmar retorno após login

Terminal window
docker logs authelia

SintomaCausa provável
loop de logincookie/domínio incorreto
acesso sempre pede loginregra de bypass falhando
não redirecionasnippet não aplicado
erro 500 no proxyproblema no auth_request
falha ao iniciarproblema de permissão ou DB

DNS resolve?
↓ não → Pi-hole
↓ sim
NPM responde?
↓ não → proxy/VIP
↓ sim
Authelia responde?
↓ não → container/config
↓ sim
Login funciona?
↓ não → sessão/2FA

  • proteger todos os serviços expostos
  • manter bypass apenas para redes confiáveis
  • revisar regras após mudanças de rede
  • usar HTTPS sempre
  • manter secrets fora do compose (arquivo dedicado)

  • Authelia não substitui firewall ou VPN
  • é uma camada adicional de segurança
  • deve ser usado em conjunto com boas práticas de rede

  • DNS → Pi-hole
  • Proxy → NPM (VIP)
  • Auth → Authelia
  • HA → keepalived
  • Sessão → cookies + domínio