Skip to content

Instantly share code, notes, and snippets.

@tiagofrancafernandes
Last active July 8, 2025 20:59
Show Gist options
  • Save tiagofrancafernandes/78dd514c8d6e5e56ef3c2394111beff5 to your computer and use it in GitHub Desktop.
Save tiagofrancafernandes/78dd514c8d6e5e56ef3c2394111beff5 to your computer and use it in GitHub Desktop.
dev-cloudflare Related

Claro! Aqui está um script bash que percorre todos os IPs da lista da Cloudflare e executa os comandos ufw allow para permitir conexões na porta 443 (HTTPS) vindas apenas desses IPs:

📜 Script: cloudflare-ufw-allow.sh

#!/bin/bash

## Porta que será liberada
PORT=443

## Protocolo (opcional, pode ser tcp/udp)
PROTO=tcp

## Lista de IPs da Cloudflare (v4)
## https://www.cloudflare.com/pt-br/ips/
## https://www.cloudflare.com/ips-v4/ #(acessado em 2025-07-08)
CLOUDFLARE_IPS=(
    "173.245.48.0/20"
    "103.21.244.0/22"
    "103.22.200.0/22"
    "103.31.4.0/22"
    "141.101.64.0/18"
    "108.162.192.0/18"
    "190.93.240.0/20"
    "188.114.96.0/20"
    "197.234.240.0/22"
    "198.41.128.0/17"
    "162.158.0.0/15"
    "104.16.0.0/13"
    "104.24.0.0/14"
    "172.64.0.0/13"
    "131.0.72.0/22"
)

echo "Liberando porta $PORT/$PROTO para IPs da Cloudflare..."

for ip in "${CLOUDFLARE_IPS[@]}"; do
    echo "Autorizando: $ip"
    sudo ufw allow from "$ip" to any port "$PORT" proto "$PROTO"
done

echo "Concluído. Status atual do UFW:"
sudo ufw status numbered

✅ Como usar:

  1. Salve o script num arquivo:
nano cloudflare-ufw-allow.sh
  1. Cole o conteúdo acima.
  2. Dê permissão de execução:
chmod +x cloudflare-ufw-allow.sh
  1. Execute com permissões de sudo:
sudo ./cloudflare-ufw-allow.sh

🚫 (Opcional) Bloquear todo o resto, exceto Cloudflare

Se quiser bloquear tudo que não seja Cloudflare na porta 443, depois de executar o script acima, você pode rodar:

sudo ufw deny 443/tcp

Ou garantir que o default seja negar:

sudo ufw default deny incoming

Se você também quiser liberar Cloudflare IPv6, posso te passar a lista e o script atualizado com suporte a IPv6 também. Deseja isso?

#!/bin/bash
## Porta que será liberada
PORT=443
## Protocolo (opcional, pode ser tcp/udp)
PROTO=tcp
## Lista de IPs da Cloudflare (v4)
## https://www.cloudflare.com/pt-br/ips/
## https://www.cloudflare.com/ips-v4/ #(acessado em 2025-07-08)
CLOUDFLARE_IPS=(
"173.245.48.0/20"
"103.21.244.0/22"
"103.22.200.0/22"
"103.31.4.0/22"
"141.101.64.0/18"
"108.162.192.0/18"
"190.93.240.0/20"
"188.114.96.0/20"
"197.234.240.0/22"
"198.41.128.0/17"
"162.158.0.0/15"
"104.16.0.0/13"
"104.24.0.0/14"
"172.64.0.0/13"
"131.0.72.0/22"
)
echo "Liberando porta ${PORT}/${PROTO} para IPs da Cloudflare..."
for ip in "${CLOUDFLARE_IPS[@]}"; do
echo "Autorizando: ${ip}"
sudo ufw allow from "${ip}" to any port "${PORT}" proto "${PROTO}"
done
echo "Concluído. Status atual do UFW:"
sudo ufw status numbered
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment