Cloudflare(d) – Secure reverse proxy replacement?

Olá malta!

Hoje, a nossa aventura irá nos levar através do Cloudflare Tunnel. Se  não sabem o que é, não se preocupem. Prometo que vão adorar.

O que é o Cloudflare Tunnel?

O Cloudflare Tunnel é uma solução inteligente e muito poderosa fornecida pela Cloudflare, que permite a conexão dos nossos serviços locais, alojados no nosso homelab, à  rede global da Cloudflare.
Em termos simples, é como um serviço de remote proxy local,  so que a funcionar através da cloudflare que abre uma passagem direta entre o nosso homelab e a cloud, permitindo que os nossos serviços locais beneficiem da infraestrutura global de conectividade da Cloudflare.

Getting Cloudflare Tunnels to connect to the Cloudflare Network with QUIC

Porque devemos dar importância ao clouldflared?

Podem se estar a perguntar: “Por que raio deveria importar-me com isto? Eu, que tenho reverse proxies instalados”.  A resposta é realmente muito simples. Simplicidade e rapidez a entregar o serviço para consumo:

  1. Acelerem os Vossos Serviços Locais:
    Se tiverem um servidor web, por exemplo, a correr no vosso homelab, o Cloudflare Tunnel irá significativamente acelerar o tempo de carregamento do vosso site ao encaminhar o tráfego pela rede global otimizada da Cloudflare.
  2. Maior Segurança:
    A Cloudflare é reconhecida pelas suas robustas medidas de segurança. Ao usar o Cloudflare Tunnel, adicionamos uma camada extra de proteção aos nossos serviços locais, ajudando a protegê-los contra ameaças online. Nisto estão incluídos serviços de WAF.
  3. DNS Rápido e Seguro:
    A Cloudflare é famosa pelo seu serviço de DNS ultrarrápido e seguro. Ao integrar os nossos serviços locais com o Cloudflare Tunnel, também beneficias desse DNS rápido e seguro.

Como Implementar o Cloudflare Tunnel no Nosso Homelab.

Agora que despertei o interesse no Cloudflare Tunnel, vamos dar uma vista de olhos em como o podemos implementar no nossos homelabs ou infraesturtura on-premise.

  1. Criem uma Conta na Cloudflare.
    Se ainda não teem uma conta na Cloudflare, o primeiro passo é criar uma. Basta ir ao site da Cloudflare, clicar em “Sign Up” e seguir as instruções para criar a vossa conta.
  2. Adiciona o Vosso Site ao Cloudflare.
    Depois de criarem a vossa conta, poderão adicionar o site que desejam conectar via Cloudflare. Normalmente, isto envolve apontar os nossos servidores de nomes (nameservers) para os da Cloudflare. Não se preocupem, a Cloudflare fornece instruções detalhadas sobre como fazer isso.
  3.  Descarreguem e Instalem a Aplicação Cloudflare Tunnel.
    Agora, é hora de descarregar e instalar a aplicação do Cloudflare Tunnel na vossa infraestrutura local. A Cloudflare fornece aplicações para várias plataformas, então escolham a que melhor se adequa ao vosso homelab.
  4. Configurar o Cloudflare Tunnel.
    Após a instalação da aplicação, será necessário configurá-la. Isso geralmente envolve fornecer as vossas credenciais da Cloudflare e seguir algumas configurações simples. A Cloudflare oferece documentação detalhada, por isso não se sentirão perdidos.
  5.  Enjoy!

Com o Cloudflare Tunnel configurado, os nossos serviços locais estão agora conectados à rede global da Cloudflare. Aproveitem a aceleração de desempenho, a segurança reforçada e a tranquilidade que vem com a expertise da Cloudflare.

Dicas e Truques para Maximizar a Nossa Experiência.

Agora que estamos online com o Cloudflare Tunnel, aqui estão algumas dicas para garantir que tiramos o máximo proveito desta incrível ferramenta.

  • Explorem as Configurações Avançadas:
    Deem uma vista de olhos pelas configurações avançadas do Cloudflare Tunnel. Podem personalizar ainda mais o desempenho, a segurança e outros aspetos para atender às vossas necessidades específicas.
  • Monitorizem o Desempenho:
    A Cloudflare fornece uma variedade de ferramentas de monitorização. Aproveitem essas ferramentas para acompanhar o desempenho dos vossos serviços locais e façam ajustes conforme necessário.
  • Testem a Segurança das vossas Apps:
    Realiza testes de segurança regularmente para garantir que as tuas configurações estão a bloquear potenciais ameaças. A Cloudflare oferece recursos robustos de firewall que podes personalizar.

Comandos Técnicos para Implementação em Rocky Linux 8

Agora, vamos abordar os comandos técnicos para implementar o Cloudflare Tunnel no Rocky Linux 8, com arranque através do systemd.

  1. Descarreguem a Aplicação Cloudflare Tunnel para Rocky Linux 8.
    Abram um terminal no vosso servidor Rocky Linux 8 e executem o seguinte comando para descarregar a aplicação Cloudflare Tunnel:

    wget https://pkg.cloudflareclient.com/pubkey.gpg
    rpm --import pubkey.gpg
    yum install cloudflared
  2. Configura a Aplicação Cloudflare Tunnel.
    Após a instalação, criem e editen o ficheiro de configuração do Cloudflare Tunnel. Podem usar o vosso editor de texto preferido, como o nano ou o vim:

    vi /etc/cloudflared/config.yml

    Insiram as vossas credenciais da Cloudflare e ajustem as configurações conforme necessário. Salvem e fechem o ficheiro.

  3.  Criem um Serviço systemd para o Cloudflare Tunnel.
    Agora, vamos criar um serviço systemd para garantir que o Cloudflare Tunnel seja iniciado automaticamente com o sistema. Cria um ficheiro chamado `cloudflared.service`:

    vi /etc/systemd/system/cloudflared.service

    Insiram o seguinte conteúdo:

    [Unit]
    Description=Cloudflare Tunnel
    [Service]
    ExecStart=/usr/local/bin/cloudflared proxy-dns
    Restart=always
    User=nobody
    Group=nogroup
    Environment=CAPABILITIES=CAP_NET_BIND_SERVICE
    CapabilityBoundingSet=CAP_NET_BIND_SERVICE
    AmbientCapabilities=CAP_NET_BIND_SERVICE
    
    [Install]
    WantedBy=multi-user.target
  4. Iniciem e Ativem o Serviço Cloudflare Tunnel
    Agora, inicia o serviço e ativa-o para que seja iniciado automaticamente durante o arranque:

    systemctl start cloudflared
    systemctl enable cloudflared

E pronto! O Cloudflare Tunnel está agora implementado no vosso  Rocky Linux 8 e configurado para iniciar automaticamente com o systemd do nosso sistema.

O Cloudflare Tunnel é como uma ponte extremamente rápida de levantar que conecta o nosso homelab ou infraestrutura on-premise ao vasto mundo da cloud com muita facilidade e rapidez, e é software que funciona muito bem em ambientes de container, facilitando o deployment.
Os passos de implementação são muito simples  e explorando as configurações avançadas, podem elevar o desempenho e a segurança dos nossos serviços locais consumindos externamente para o próximo nível.

Até ao proximo post e já sabem, se encontrarem algo menos correto, sabem onde me encontrar.
Abraço
Nuno