Requisitos:
- Domínio configurado no Cloudflare
- VPS em Ubuntu
- Open Light Speed instalado
Para proteger a admin console vamos configurar passo a passo:
- Criação de túnel com Cloudflare
- Acesso via Cloudflare Zero Trust
- Ajustes à nossa firewall
Criação de túnel com Cloudflare
✅ Passo 1: Instalar o Cloudflare Tunnel (cloudflared)
Executa os seguintes comandos:
# Criar diretório para as chaves
sudo mkdir -p --mode=0755 /usr/share/keyrings
# Adicionar chave do repositório
curl -fsSL https://pkg.cloudflare.com/cloudflare-main.gpg | sudo tee /usr/share/keyrings/cloudflare-main.gpg > /dev/null
# Adicionar repositório do cloudflared
echo "deb [signed-by=/usr/share/keyrings/cloudflare-main.gpg] https://pkg.cloudflare.com/cloudflared jammy main" | sudo tee /etc/apt/sources.list.d/cloudflared.list
# Atualizar e instalar
sudo apt update && sudo apt install cloudflared -y
Verificar se está instalado:
cloudflared --version
✅ Passo 2: Autenticar com a tua conta Cloudflare
Faz login na tua conta Cloudflare:
cloudflared tunnel login
Este comando vai abrir um link no browser.
Seleciona o domínio que queres usar.
Depois da autorização, será criado um certificado em ~/.cloudflared/
.
✅ Passo 3: Criar um Tunnel
Executa:
cloudflared tunnel create meu-tunel
O comando vai devolver:
- UUID do túnel (ex.:
1234abcd-...
) - Um ficheiro de credenciais em
~/.cloudflared/
✅ Passo 4: Configurar o Tunnel
Isto vai permitir que utilizes um subdominio externo e que ele aponte para o porto certo sem o teres de indicar.
Cria um ficheiro de configuração:
nano ~/.cloudflared/config.yml
Exemplo para um serviço HTTP a correr na porta 7080:
tunnel: <UUID-DO-TUNEL>
credentials-file: /root/.cloudflared/<UUID-DO-TUNEL>.json
ingress:
- hostname: exemplo.teudominio.com
service: http://localhost:7080
originRequest:
noTLSVerify: true
- service: http_status:404
Substitui:
<UUID-DO-TUNEL>
pelo ID real do túnelexemplo.teudominio.com
pelo teu domínio
✅ Passo 5: Criar uma rota DNS
Executa:
cloudflared tunnel route dns meu-tunel exemplo.teudominio.com
Isto vai criar um registo CNAME no Cloudflare que aponta para o túnel.
✅ Passo 6: Iniciar o Tunnel
Para testar:
cloudflared tunnel run meu-tunel
✅ Passo 7: Ativar como serviço no Systemd
Para arrancar automaticamente com o sistema:
sudo cloudflared service install
Verificar o estado:
sudo systemctl status cloudflared
Acesso via Cloudflare Zero Trust
Através de uma app (self hosted) no Cloudflare Zero Trust é possível criar uma autenticação com o nosso servidor, e ter acesso a um serviço como se estivesse-mos em localhost.
Resumindo, vamos usar um subdominio de um domínio qualquer (não precisa sequer de se o domínio que está lá a ser hosted), vamos usar uma app para nos autenticar (vou utilizar autenticação por email. coloco o email, é enviado um código e ao colocar o código estamos autenticados). Depois o subdominio utilizado vai estar a apontar para o endereço do admin do OLS.

Dentro da conta de Cloudflare entramos no Zero Trust. Depois é necessário criar 2 coisas:
- Policy
Vai conter apenas uma regra que o selector email vai ter valor, por exemplo: [email protected]
Vou dizer que a policy tem uma ação de allow para uma duração de 24 horas. - Aplicação
Vou escolher o nome da aplicação, e qual a sua duração. (se a policy tiver menos tempo, vai fazer override)
E no public hostname vou colocar o meu subdomínio. Este subdomínio foi previamente criado através do comando “cloudflared tunnel route dns”.
Escolhemos a policy que definimos previamente e guardamos a aplicação.

Configuração de Firewall
✅ Passo 8: Configurar Firewall
Por fim temos de configurar a firewall. Bloqueia o acesso externo à porta 7080.
Permite acesso à porta 7080 apenas em localhost (127.0.0.1)
.
Em caso de erro, podes sempre ativar novamente para configurar alguma coisa que falte no painel de admin do OLS.
✅ Agora o teu site em exemplo.teudominio.com
vai ligar-se ao teu VPS via Cloudflare Tunnel, sem expor o teu IP.