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-v4e.../ips-v6. - Exclui todas as regras existentes do UFW para as portas 80 e 443 que permitem
Em qualquer lugar. - Adiciona novo
PERMITIRregras 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.logpara 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.
Deixe um comentário