Como limpar automaticamente e em lotes as regras de acesso IP comentadas em um WAF usando a API do Cloudflare e Python.

Quando a sua lista de regras de firewall atinge milhares de entradas, excluí-las manualmente torna-se como contar grãos de areia no deserto — demorado e trabalhoso.

Nesse ponto, os scripts automatizados se tornam uma verdadeira salvação.

Por que são necessárias regras de limpeza automática?

Em uso Cloudflare 作为 CDN 和 WAF 的过程中,我们经常会设置 Regras de acesso IP Para bloquear solicitações maliciosas.

Essas regras podem incluir comentários, como por exemplo: Bloqueado por AIB ”,Sincronização do Wordfence"O endereço IP do atacante é conhecido".

O número de regras aumentará rapidamente com o tempo.

Se não forem organizadas, as regras no console irão se acumular, afetando a eficiência da gestão.

Para piorar a situação, o console do Cloudflare não oferece um recurso de "exclusão em lote com um clique por comentário".

Isso significa que você só pode selecioná-los e excluí-los manualmente, um por um, o que é extremamente ineficiente.

Solução

Para resolver esse problema, podemos usar API REST da Cloudflare.

Ao ligar firewall/access_rules/rules Interfaces e scripts podem:

  • Obter paginaçãoTodas as regras sob o domínio atual.
  • Comentários correspondentesPalavras-chave na área.
  • Iniciar automaticamente uma solicitação DELETERegras de destino para limpeza em lote.

Este método não só é eficiente, como também evita erros humanos.

Como limpar automaticamente e em lotes as regras de acesso IP comentadas em um WAF usando a API do Cloudflare e Python.
Como limpar automaticamente e em lotes as regras de acesso IP comentadas em um WAF usando a API do Cloudflare e Python.

Trabalho preparatório

Antes de começar a escrever o roteiro, você precisa preparar alguns parâmetros importantes.

1. Token da API

Vamos para Página de tokens da API do Cloudflare Criar um novo token.

É necessário conceder as seguintes autorizações:Zona → Serviços de Firewall → Editar.

2. ID da Zona

Faça login no console do Cloudflare e acesse as configurações do seu domínio... Página de visão geralVocê pode encontrar o ID da Zona de 32 dígitos à direita.

3. Instale as bibliotecas de dependência.

Execute no PowerShell ou no terminal:

python -m pip install requests

Isso permitirá que você o instale. requests A biblioteca garante que o script possa chamar a API corretamente.

Script Python completo

Abaixo segue um script Python pronto para uso.

Salvar como cloudflare_clean.pySubstituir API_TOKENZONE_ID É isso aí.

import requests

API_TOKEN = "你的_API_TOKEN"
ZONE_ID = "你的_ZONE_ID"
TARGET_NOTE = "Blocked by AIB"

headers = {
    "Authorization": f"Bearer {API_TOKEN}",
    "Content-Type": "application/json",
}

def delete_matching_ip_rules_zone():
    page = 1
    deleted_count = 0

    while True:
        url = f"https://api.cloudflare.com/client/v4/zones/{ZONE_ID}/firewall/access_rules/rules?page={page}&per_page=100"
        response = requests.get(url, headers=headers)

        if response.status_code != 200:
            print(f"请求失败: {response.text}")
            break

        data = response.json()
        rules = data.get("result", [])
        if not rules:
            break

        for rule in rules:
            rule_id = rule.get("id")
            rule_value = rule.get("configuration", {}).get("value")
            rule_notes = rule.get("notes", "")

            if TARGET_NOTE in rule_notes:
                del_url = f"{url}/{rule_id}"
                del_res = requests.delete(del_url, headers=headers)
                if del_res.json().get("success"):
                    print(f"✅ 删除成功: {rule_value}")
                    deleted_count += 1

        result_info = data.get("result_info", {})
        total_pages = result_info.get("total_pages", 1)
        if page >= total_pages:
            break
        page += 1

    print(f"清理完成,共删除 {deleted_count} 条规则。")

if __name__ == "__main__":
    delete_matching_ip_rules_zone()

Execute o script

Digite o seguinte no terminal:

python /path/to/cloudflare_clean.py

O script irá procurar e excluir automaticamente as regras com os comentários especificados.

Guia de Perguntas Frequentes e Solução de Problemas

1. Permissões de Zona vs. Permissões de Conta

  • Regras de nível de zona: aplicam-se apenas a um único domínio.
  • Regras ao nível da conta: aplicam-se à conta inteira; exigem a modificação do caminho da API. /accounts/{ACCOUNT_ID}/....

2. Relatório de erros de autenticação

Se aparecer 403 Authentication errorIsso geralmente ocorre devido a uma configuração incorreta do escopo de permissões.

Certifique-se de que a permissão do token inclua Serviços de firewall → Editar.

3. Mecanismo de paginação

A API do Cloudflare retorna no máximo 100 regras por vez.

O script passa result_info.total_pages A virada automática de páginas garante uma digitalização completa.

Por que a automação é uma escolha inevitável

Em um ambiente de produção real, o número de regras pode facilmente exceder [um determinado limite]. 5000º.

A exclusão manual não só consome muito tempo, como também está sujeita a omissões.

Com scripts de automação, você pode:

  • Regras expiradas são removidas diariamente.
  • Mantenha sua lista de regras de firewall organizada.
  • Para evitar o banimento acidental de usuários legítimos.

Essa abordagem torna o gerenciamento de segurança do site mais eficiente.

A documentação oficial da Cloudflare afirma claramente:

"A API fornece acesso programático para gerenciar regras de firewall, incluindo criação, listagem e exclusão."
来源:Documentação da API do Cloudflare

Isso indica que a API oficial foi disponibilizada, mas a função de exclusão em lote ainda não foi implementada no console.

Conclusão

No mundo da segurança da informação, eficiência é defesa.

Ao chamar a API do Cloudflare por meio de scripts Python, não apenas superamos as limitações do console, como também inauguramos uma era de automação para o gerenciamento de regras de firewall.

这是一种 A combinação de tecnologia e sabedoriaEssa também é uma tendência inevitável nas operações de segurança de sites.

Os verdadeiros mestres não passam os dias clicando com o mouse no console; eles usam código para fazer com que as máquinas realizem o trabalho tedioso por eles.

Então vamos agir.

Faça com que as regras do seu firewall funcionem como um relógio preciso, e não como uma confusão de dados digitais.

A essência da segurança é a ordem. E por trás da ordem está a automação.

Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ O artigo "Como limpar automaticamente em lote as regras de acesso IP com comentários específicos no WAF usando a API do Cloudflare + Python", compartilhado aqui, pode ser útil para você.

Bem-vindo a compartilhar o link deste artigo:https://www.chenweiliang.com/cwl-34436.html

Para descobrir mais truques ocultos🔑, seja bem-vindo ao nosso canal do Telegram!

Compartilhe e curta se você gostou! Seus compartilhamentos e curtidas são nossa motivação contínua!

 

发表 评论

Seu endereço de e-mail não será publicado. 必填 项 已 用 * 标注

Voltar ao Topo