Authelia, Traefik e Tunnel: proteja sua VPS sem expor tudo
Por Maicon Ramos · · 13 min de leitura

Navegue por tópicos
- Primeiro: você precisa de VPN, Cloudflare Access ou Authelia?
- As três camadas: identidade, roteamento e borda
- Quando Authelia + Traefik faz sentido
- Cloudflare Tunnel: o que ele reduz e o que não substitui
- Authelia, Authentik ou Keycloak?
- Checklist para não transformar login em lockout
- Quando não vale rodar esta stack
- Problemas comuns e soluções
- FAQ
- Conclusão: comece pela fronteira, não pelo container
- Fontes consultadas
Authelia, Traefik e Cloudflare Tunnel resolvem problemas diferentes: Authelia controla identidade, Traefik encaminha HTTP e Tunnel conecta a origem à Cloudflare sem entrada pública direta. Para um painel usado só por você, uma VPN tende a ser mais simples. Para vários apps web externos, a stack pode fazer sentido se houver rotina de backup, atualização e recuperação.
A primeira decisão não é instalar três containers. É definir quem precisa acessar cada serviço. Um painel administrativo pode ficar numa rede privada. Um app voltado a usuários externos exige uma borda pública e uma política clara de entrada.
Esse é o princípio de Acesso não é Publicação. Ter uma VPS não obriga você a publicar cada painel num subdomínio. E colocar um login na frente não corrige falhas do app, do host ou do banco de dados.
Este guia organiza a decisão e o plano de operação. Ele não oferece um Compose universal, porque domínio, DNS, segredos, firewall, e-mail e backup mudam de ambiente para ambiente.
Primeiro: você precisa de VPN, Cloudflare Access ou Authelia?
Comece pela fronteira que o serviço realmente precisa. A tabela abaixo evita transformar complexidade em “maturidade”.
Cenário | Escolha inicial | Por quê | Sua responsabilidade continua sendo |
|---|---|---|---|
Só você acessa painel, SSH ou banco | Tailscale ou VPN + firewall | O painel não precisa ser publicado para a internet | Dispositivos autorizados, ACL, atualização e acesso de emergência |
App web externo com poucos serviços | Tunnel + Cloudflare Access ou proxy com identidade | Cria borda autenticada sem entrada direta no origin | Políticas, conta, DNS, conector e atualização do app |
Vários containers HTTP no Compose | Traefik + Authelia; Tunnel conforme a borda escolhida | Centraliza rotas e uma política de login | Labels, API Docker, segredos, backup e monitoramento |
Mais protocolos, usuários e federação | Avaliar Authentik ou Keycloak | O caso pode exigir identidade mais ampla | Banco, upgrades, proxy, política e operação |
Sem rotina de backup e recuperação | Não auto-hospedar SSO ainda | O login pode virar um novo ponto de falha | Reduzir exposição ou usar serviço gerenciado |
Tailscale documenta que seus clientes podem apontar para um control server customizado. Isso sustenta a opção de rede privada, não uma equivalência com SSO para pessoas externas. Para administração individual, a inferência prática é direta: evitar a publicação do painel reduz componentes expostos e regras para operar.
Para uma aplicação web que clientes ou equipe precisam abrir no navegador, uma VPN pode não ser a experiência certa. Nesse caso, escolha como o tráfego chega ao serviço e onde a identidade será verificada.

O cenário de uso determina a fronteira: VPN, acesso gerenciado, Authelia com Traefik ou uma plataforma de identidade mais ampla.
As três camadas: identidade, roteamento e borda
A confusão mais comum é tratar a stack como uma única ferramenta. Ela não é. Cada componente tem uma fronteira própria.
Authelia decide quem entra
O Authelia se apresenta como servidor open source de autenticação e autorização. Ele oferece MFA, SSO por portal web e também atua como provedor OpenID Connect 1.0. Isso é útil quando vários apps HTTP precisam de uma camada de identidade comum.
Na integração oficial com Traefik, o middleware forwardAuth consulta o Authelia antes de a requisição seguir ao serviço protegido. Em termos simples: o proxy pergunta se aquela pessoa pode continuar. A configuração precisa ser entendida e adaptada pelo operador, como a própria documentação da integração ressalta.
Isso não transforma automaticamente qualquer software em um app com SSO nativo. O ForwardAuth protege apps HTTP atrás do proxy. Para login integrado dentro do produto, entram em jogo OIDC, LDAP ou o suporte específico daquele app.
Também não confie cegamente em cabeçalhos de identidade vindos da internet. A documentação do Authelia explica que o Traefik não confia em outros proxies por padrão e remove cabeçalhos potencialmente fabricados. Quando houver proxy adicional, a lista de proxies confiáveis precisa ser configurada de forma explícita.
Traefik decide para onde o HTTP vai
O Traefik é o proxy reverso que recebe uma requisição HTTP e escolhe o serviço de destino. Com o provider Docker, ele lê labels dos containers para montar a configuração de roteamento.
Esse comportamento traz velocidade, mas também uma superfície operacional importante. A referência do provider Docker documenta exposedByDefault=true como padrão. Em uma VPS com vários containers, a postura mais prudente é definir exposedByDefault=false e usar traefik.enable=true apenas nos serviços que você decidiu expor.
O acesso à API Docker também merece atenção. A documentação usa o endpoint padrão unix:///var/run/docker.sock e recomenda proteger essa API. Não trate um socket montado no proxy como detalhe inofensivo. Ele é parte do seu modelo de privilégio.
Cloudflare Tunnel decide como o tráfego chega ao origin
O Cloudflare Tunnel usa o daemon cloudflared para iniciar uma conexão outbound entre sua origem e a rede Cloudflare. Por isso, a origem não precisa ter IP publicamente roteável para atender o hostname publicado.
“Inbound” é tráfego que entra no servidor a partir da internet. “Egress” é tráfego que sai dele. O Tunnel reduz a necessidade de receber conexões inbound no origin, mas não elimina regras de rede: a documentação da Cloudflare informa conexões outbound-only pela porta 7844, usando TCP ou UDP com HTTP/2 ou QUIC.
Tunnel não é SSO e não é VPN. A Cloudflare trata o Tunnel e a configuração de aplicações self-hosted como etapas distintas. Para proteger um hostname com Cloudflare Access, você cria uma aplicação self-hosted e associa políticas de acesso.

A borda recebe o tráfego; dentro da origem, identidade e roteamento continuam sendo controles distintos antes dos serviços.
Quando Authelia + Traefik faz sentido
A combinação fica mais defensável quando você já opera vários apps HTTP e quer reduzir repetição de login e de regras de proxy. Portainer, dashboards, automações e serviços internos podem compartilhar uma porta de entrada, desde que você saiba quais devem continuar privados.
O ganho não está em “esconder tudo atrás de uma tela”. Está em declarar rotas, aplicar identidade antes do upstream e evitar exposição acidental pelo provider Docker. O custo é operar mais estado: segredos, sessões, banco ou volumes persistentes, domínio, TLS e atualização coordenada.
Para sessão, a documentação do Authelia informa que o provider padrão em memória mantém estado local e recomenda Redis em produção e alta disponibilidade. Isso não prova que toda instalação pequena precise de Redis. Mostra que continuidade de sessão é uma decisão de arquitetura, não um campo para copiar sem pensar.
Um caminho responsável é começar por inventário. Liste cada container e responda: ele é público, privado por VPN, público com login ou sequer deveria ter hostname? Depois, habilite apenas as rotas que passaram por essa decisão.
Se sua infraestrutura ainda não tem uma VPS com folga para os apps atuais e os componentes de acesso, resolva isso antes de adicionar SSO. Não há um baseline oficial universal de CPU ou RAM para Authelia, Traefik, cloudflared, Authentik e Keycloak. Prometer que a stack “roda em X MB” seria inventar uma medição.
Para reunir apps internos num servidor gerenciável, veja uma VPS para rodar n8n e apps internos. Use a oferta para avaliar o ambiente, não como motivo para publicar um painel que deveria continuar privado.
Cloudflare Tunnel: o que ele reduz e o que não substitui
A vantagem do Tunnel é objetiva: o cloudflared inicia a conexão para fora e a Cloudflare encaminha o tráfego ao origin. Assim, você pode evitar entrada pública direta no servidor para aquele caminho de publicação.
A interpretação do Runzos adiciona a nuance necessária: diminuir a superfície inbound não encerra a gestão de acesso. A exposição pública ainda depende do conector, da credencial, do DNS, da conta e da borda Cloudflare. Se um deles falhar, o hostname pode deixar de atender como esperado.
Tunnel também não atualiza o aplicativo, não protege um banco que foi publicado por outra rota e não substitui uma política de identidade. Cloudflare Access é uma alternativa gerenciada para a camada de acesso. Authelia é uma alternativa auto-hospedada para identidade. Escolher um dos dois muda o local da responsabilidade, não remove a responsabilidade.
Antes de fechar portas inbound, valide o caminho de recuperação. Mantenha uma sessão SSH por chave aberta. Confirme que você ainda consegue entrar por um método independente do proxy. Só então aplique uma mudança de firewall, DNS ou hostname.
Se optar por uma VPS com suporte e cobrança no Brasil, a rota contextual é a oferta de VPS Servla para n8n. Confira na página as condições comerciais no momento da decisão; este artigo não afirma preço, cupom ou disponibilidade.
Authelia, Authentik ou Keycloak?
Não existe “melhor” sem contexto. A comparação começa pelo que você precisa proteger e pelo que consegue manter.
Authelia é uma escolha coerente quando portal, proxy e OIDC cobrem a necessidade sem exigir uma estrutura de IAM maior. A integração com Traefik via ForwardAuth serve bem para a camada de proxy, desde que as rotas e proxies confiáveis estejam corretos.
Authentik tem provider Proxy e pode usar um outpost para fazer proxy do upstream ou verificar autenticação enquanto outro proxy reverso gerencia o tráfego. Isso abre mais possibilidades de fluxo e integração. Também adiciona operação. Não há, nesta pesquisa, dado oficial atual que permita declarar consumo fixo de recursos.
Keycloak é uma alternativa de IAM mais abrangente. Sua documentação de produção orienta o uso atrás de proxy reverso e diferencia caminhos que devem permanecer ocultos daqueles expostos para proteger aplicações. Isso não o torna automaticamente melhor para uma VPS pequena. Pode ser a escolha certa quando a necessidade de identidade justifica a operação adicional.
A reconciliação prática do Runzos é simples: não use uma ferramenta maior para compensar um inventário ruim. Se há um administrador e um painel, VPN e firewall podem ser a solução mais segura porque reduzem publicação. Se há múltiplos apps HTTP e usuários externos, escolha o IdP e o proxy pelo fluxo que você consegue recuperar e atualizar.
Checklist para não transformar login em lockout
Segurança operacional é a capacidade de recuperar acesso quando algo muda. Faça este checklist antes de publicar ou endurecer uma rota.
- Inventarie quais serviços precisam ser públicos e quais devem ficar apenas na VPN.
- Mantenha SSH por chave como acesso break-glass e deixe uma segunda sessão ativa antes de mudar firewall ou proxy.
- Defina
exposedByDefault=falseno Traefik e exponha cada serviço com opt-in deliberado. - Proteja token de Tunnel, segredos do Authelia, SMTP e arquivos
.env; eles não devem ir para o Git. - Configure domínio, TLS e e-mail somente quando o fluxo escolhido exigir esses componentes.
- Teste reset de acesso e MFA antes de desativar a rota antiga.
- Faça backup do Compose, das configurações, dos volumes ou banco e dos segredos protegidos.
- Restaure esse backup em ambiente separado ou em um ensaio controlado; ter arquivo salvo não prova recuperação.
- Monitore externamente o hostname e a tela de login; container “up” não prova que Tunnel, proxy e upstream respondem.
- Atualize de forma deliberada e leia changelogs. Usar
latestnão é um processo de patch. - Documente como reverter DNS, rota e acesso administrativo caso o novo caminho falhe.
A documentação de integração e conectividade resolve partes desse plano. O ensaio de restore é a parte que separa uma configuração bonita de uma configuração recuperável. Não há, nesta pesquisa, tempo, custo ou taxa de sucesso medidos pelo Runzos para essa operação; trate-os como variáveis do seu ambiente.

A mudança só termina quando acesso de emergência, restore, monitoramento e rollback foram ensaiados.
Quando não vale rodar esta stack
Evite começar por Authelia + Traefik + Tunnel quando o benefício é menor que o custo de recuperação.
Um único administrador, sem app público e sem demanda de colaboradores costuma ser caso de VPN ou Tailscale com firewall. Uma equipe sem rotina de backup, atualização e controle de segredos talvez fique melhor com Cloudflare Access ou outra camada gerenciada. E um serviço com requisito de disponibilidade que você não consegue operar precisa de uma decisão de infraestrutura antes de ganhar mais containers.
Também não use MFA como desculpa para manter root exposto por senha, segredo em repositório, app desatualizado ou banco publicado. MFA é uma camada. Não é um patch manager, WAF, backup ou plano de incidentes.
Para WordPress tradicional, hospedagem compartilhada ou gerenciada pode se encaixar melhor do que uma VPS Docker com SSO. Nesse cenário específico, consulte a oferta Turbo Cloud, em vez de forçar uma arquitetura de containers onde ela não é necessária.
Problemas comuns e soluções
“Ativei o Tunnel. Agora meu app está protegido?”
Não necessariamente. Tunnel cria conectividade outbound entre origin e Cloudflare. A identidade precisa ser definida em outra camada: Cloudflare Access por política ou uma solução como Authelia na frente do upstream. Confirme também se o app não permanece acessível por outra porta, hostname ou IP.
“Traefik pode expor um container por engano?”
Pode haver exposição não intencional se a descoberta Docker estiver configurada no padrão documentado exposedByDefault=true. Use opt-in com exposedByDefault=false, revise labels e mantenha o dashboard administrativo fora da borda pública ou atrás de controle de acesso adequado.
“O MFA está ativo. Posso fechar meu acesso SSH?”
Não antes de validar um caminho break-glass independente. Mantenha chave SSH, segunda sessão e procedimento de rollback. Teste MFA e recuperação antes de remover a rota anterior. Essa é uma recomendação operacional do artigo, não uma garantia de que um método específico evita todo lockout.
“Preciso de Redis para usar Authelia?”
A documentação recomenda Redis para produção e alta disponibilidade porque o provider em memória mantém estado local. Isso não equivale a uma obrigação universal para todo ambiente pequeno. Decida conforme continuidade de sessão, persistência, arquitetura e sua capacidade de operar mais um componente.
FAQ
Cloudflare Tunnel substitui Authelia?
Não. Cloudflare Tunnel conecta a origem à rede Cloudflare por uma conexão outbound iniciada pelo cloudflared. Authelia é uma camada de autenticação e autorização, com MFA, portal web e OIDC. Para um hostname público, Tunnel pode coexistir com Authelia ou com Cloudflare Access. A escolha depende de onde você quer operar a identidade e as políticas.
Authelia é melhor que Tailscale para proteger uma VPS?
São respostas para problemas diferentes. Tailscale ou outra VPN/mesh é adequado quando o acesso é administrativo e privado. Authelia protege apps HTTP atrás de um proxy e faz mais sentido quando várias pessoas precisam entrar por navegador. Para um único administrador, rede privada e firewall normalmente adicionam menos componentes.
Preciso abrir 80 e 443 para usar Cloudflare Tunnel?
A documentação da Cloudflare descreve conexões outbound-only do cloudflared pela porta 7844, com HTTP/2 ou QUIC. Isso permite planejar um origin sem entrada pública direta para esse fluxo. Ainda é preciso planejar o egress e verificar que nenhuma outra rota publica o serviço involuntariamente.
Authentik ou Keycloak são automaticamente mais seguros que Authelia?
Não. Authentik oferece provider Proxy com outpost, enquanto Keycloak cobre uma necessidade de IAM mais ampla e possui requisitos próprios de proxy e produção. Mais recursos também significam mais configuração e manutenção. A opção mais segura é a que atende ao caso e cuja recuperação, atualização e políticas você consegue operar corretamente.
Conclusão: comece pela fronteira, não pelo container
Authelia, Traefik e Cloudflare Tunnel podem compor uma arquitetura sólida, desde que cada peça tenha uma função explícita. Authelia cuida da identidade. Traefik organiza o HTTP. Tunnel reduz entrada direta no origin. Nenhuma delas substitui backup, patch, segredo bem guardado ou acesso de emergência.
Para painel privado, não publicar costuma ser a melhor simplificação. Para apps web externos, escolha a borda, teste o recovery e só então centralize o acesso. Uma VPS para apps internos e n8n é o ponto de partida de infraestrutura, não uma promessa de segurança automática.
Fontes consultadas
- Authelia: autenticação, autorização, MFA e OpenID Connect.
- Integração oficial Authelia + Traefik.
- Configuração de sessão Redis do Authelia.
- Referência do provider Docker do Traefik.
- Documentação do Cloudflare Tunnel e requisitos de conectividade.
- Aplicações self-hosted no Cloudflare Access.
- Provider Proxy do Authentik e documentação de proxy reverso do Keycloak.
- Documentação do Tailscale sobre control server customizado.



