Como atualizar automaticamente as regras do UFW com os endereços IP do Cloudflare

Quando você se sentar atrás do Cloudflare, deve apenas Permitir o tráfego proveniente dos intervalos de IPs do Cloudflare nas portas 80 e 443. O Cloudflare atualiza periodicamente esses intervalos, portanto, as regras do UFW precisam ser atualizadas automaticamente. O script de cloudflare-ufw, de Paul Reed, faz exatamente isso.

1. Baixe o script e torne-o executável

bashsudo wget -O /usr/local/bin/cloudflare-ufw.sh \
  https://raw.githubusercontent.com/Paul-Reed/cloudflare-ufw/refs/heads/master/cloudflare-ufw.sh
sudo chmod +x /usr/local/bin/cloudflare-ufw.sh

2. Analisar as regras atuais da UFW (antes das alterações)

bashsudo ufw status verbose

Você provavelmente verá algo como:

textPara Ação De
-- ------ ----
22/tcp PERMITIR Qualquer lugar
80/tcp PERMITIR Qualquer lugar
443 PERMITIR Qualquer lugar
...

3. Remova as regras 80/443 excessivamente permissivas

Atualmente, essas regras permitem qualquer IPs para acessar suas portas da web. Vamos substituí-las por regras exclusivas para o Cloudflare.

bashsudo ufw delete allow 80/tcp
sudo ufw delete allow 443/tcp

Se a UFW solicitar uma confirmação, digite y e pressione Enter.

Verifique o status novamente:

bashsudo ufw status verbose

Você não deve mais ver 80/tcp ou 443 com PERMITIR de Em qualquer lugar.

4. Execute o script Cloudflare‑UFW

bashsudo /usr/local/bin/cloudflare-ufw.sh

O que o script faz:

  • Recupera os intervalos IPv4 e IPv6 mais recentes do Cloudflare a partir de https://www.cloudflare.com/ips-v4 e .../ips-v6.
  • Exclui todas as regras existentes do UFW para as portas 80 e 443 que permitem Em qualquer lugar.
  • Adiciona novo PERMITIR regras apenas para cada intervalo de IPs Cloudflare nas portas 80 (HTTP) e 443 (HTTPS).
  • Opcionalmente, reinicia o UFW para que as novas regras entrem em vigor imediatamente.

Quando terminar, verifique:

bashsudo ufw status verbose

Agora você deve ver várias linhas como:

textPara Ação De
-- ------ ----
80/tcp ALLOW 173.245.48.0/20
80/tcp ALLOW 103.21.244.0/22
...
443 PERMITIR 173.245.48.0/20
443 PERMITIR 103.21.244.0/22
...

Todos os outros endereços IP são implicitamente bloqueados nas portas 80/443.

5. Automatize as atualizações diárias com o cron

A Cloudflare pode alterar seus intervalos de IP a qualquer momento. Para manter seu firewall atualizado, programe a execução do script diariamente (por exemplo, às 03h).

Edite o crontab do usuário root:

bashsudo crontab -e

Se solicitado, escolha o seu editor preferido (por exemplo, nano).

Adicione a seguinte linha no final:

text0 3 * * * /usr/local/bin/cloudflare-ufw.sh >> /var/log/cloudflare-ufw.log 2>&1

Isto faz o seguinte:

  • Executa o script todos os dias às 03h, horário do servidor.
  • Anexa a saída e os erros a /var/log/cloudflare-ufw.log para fins de auditoria.

Salve e saia do editor.

6. Verifique a tarefa cron

Exiba o crontab do usuário root para confirmar:

bashsudo crontab -l

Você deve ver a nova linha.

Opcionalmente, execute imediatamente e verifique o log:

bashsudo /usr/local/bin/cloudflare-ufw.sh
sudo tail -n 20 /var/log/cloudflare-ufw.log

7. Manutenção contínua

Para atualizar manualmente as regras a qualquer momento:

bashsudo /usr/local/bin/cloudflare-ufw.sh

Para verificar o log:

bashsudo less /var/log/cloudflare-ufw.log

Se, por acaso, você precisar voltar para a configuração “permitir em qualquer lugar” (não recomendado em ambiente de produção):

bashsudo ufw delete allow from any to any port 80 proto tcp sudo ufw delete allow from any to any port 443 proto tcp sudo ufw allow 80/tcp sudo ufw allow 443/tcp

Com essa configuração, seu firewall UFW aceitará sempre e exclusivamente tráfego HTTP/HTTPS proveniente dos intervalos de IP atuais do Cloudflare, reduzindo drasticamente a superfície de ataque e garantindo que seus sites permaneçam acessíveis através do Cloudflare.

Esta página foi útil?

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *