Como limpar automaticamente e por lotes as regras de acceso IP comentadas nun WAF usando a API de Cloudflare e Python

Unha vez que a lista de regras do cortafuegos chega a miles de entradas, eliminalas manualmente é como contar grans de area no deserto: leva moito tempo e é doloroso.

Neste punto, os scripts automatizados convértense nun salvavidas.

Por que son necesarias as regras de limpeza automática?

En uso Cloudflare 作为 CDN 和 WAF 的过程中,我们经常会设置 Regras de acceso IP Para bloquear solicitudes maliciosas.

Estas regras poden incluír comentarios, como "Bloqueado por AIB ",Sincronización de Wordfence"Coñécese o enderezo IP do atacante".

O número de regras aumentará rapidamente co tempo.

Se non se limpan, as regras da consola acumularanse, o que afectará á eficiencia da xestión.

Para empeorar as cousas, a consola de Cloudflare non ofrece unha función de "eliminación por lotes cun só clic por comentario".

Isto significa que só podes seleccionalos e eliminalos manualmente un por un, o que é extremadamente ineficiente.

Solución

Para resolver este problema, podemos usar API REST de Cloudflare.

Chamando firewall/access_rules/rules As interfaces e os scripts poden:

  • Obter paginaciónTodas as regras baixo o dominio actual.
  • Comentarios coincidentesPalabras clave no campo.
  • Iniciar automaticamente unha solicitude de ELIMINARRegras de obxectivos de limpeza por lotes.

Este método non só é eficiente, senón que tamén evita o erro humano.

Como limpar automaticamente e por lotes as regras de acceso IP comentadas nun WAF usando a API de Cloudflare e Python
Como limpar automaticamente e por lotes as regras de acceso IP comentadas nun WAF usando a API de Cloudflare e Python

Traballo preparatorio

Antes de comezar a escribir o guión, debes preparar varios parámetros clave.

1. Token da API

Ir a Páxina de tokens da API de Cloudflare Crea un novo token.

Os permisos deben concederse:Zona → Servizos de cortafuegos → Editar.

2. ID da zona

Inicia sesión na consola de Cloudflare e vai ao teu dominio... Páxina de visión xeralPodes atopar o ID da zona de 32 díxitos á dereita.

3. Instalar bibliotecas de dependencias

Executar en PowerShell ou no terminal:

python -m pip install requests

Isto permitirache instalalo. requests A biblioteca garante que o script poida chamar á API correctamente.

Script completo de Python

A continuación móstrase un script de Python listo para usar.

Gardar como cloudflare_clean.pySubstituír API_TOKEN E ZONE_ID OK.

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()

Executar o script

Introduza o seguinte no terminal:

python /path/to/cloudflare_clean.py

O script buscará e eliminará automaticamente as regras cos comentarios especificados.

Preguntas frecuentes e guía de resolución de problemas

1. Permisos de zona vs. de conta

  • Regras a nivel de zona: aplícanse só a un único dominio.
  • Regras a nivel de conta: aplícanse a toda a conta; requiren a modificación da ruta da API. /accounts/{ACCOUNT_ID}/....

2. Notificación de erros de autenticación

Se aparece 403 Authentication errorIsto adoita deberse a unha configuración incorrecta do ámbito de permisos.

Asegúrate de que o permiso do token inclúa Servizos de cortafuegos → Editar.

3. Mecanismo de paxinación

A API de Cloudflare devolve un máximo de 100 regras á vez.

O guión pasa result_info.total_pages O paso de páxina automático garante unha dixitalización completa.

Por que a automatización é unha elección inevitable

Nun entorno de produción do mundo real, o número de regras pode superar facilmente [un certo limiar]. 5000 条.

A eliminación manual non só leva moito tempo, senón que tamén é propensa a omisións.

Cos scripts de automatización, podes:

  • As regras caducadas elimínanse diariamente.
  • Manteña limpa a lista de regras do cortafuegos.
  • Para evitar bloquear por erro usuarios lexítimos.

Esta estratexia fai que a xestión da seguridade do sitio web sexa máis eficiente.

A documentación oficial de Cloudflare indica claramente:

"A API proporciona acceso programático para xestionar as regras do cortafuegos, incluíndo a creación, a listaxe e a eliminación."
fonte:Documentación da API de Cloudflare

Isto indica que se proporcionou a API oficial, pero a función de eliminación por lotes non se implementou na consola.

Conclusión

No mundo da seguridade da información, a eficiencia é defensa.

Ao chamar á API de Cloudflare mediante scripts de Python, non só superamos as limitacións da consola, senón que tamén marcamos o comezo dunha era de automatización para a xestión de regras de firewall.

Isto é un A combinación de tecnoloxía e sabedoríaEsta tamén é unha tendencia inevitable nas operacións de seguridade dos sitios web.

Os verdadeiros mestres non pasan os días facendo clic co rato na consola; usan código para que as máquinas fagan o traballo tedioso por eles.

Entón, tomemos medidas.

Fai que as regras do teu cortafuegos funcionen como un reloxo preciso, non como unha mestura de lixo dixital desordenado.

A esencia da seguridade é a orde. E detrás da orde reside a automatización.

发表 评论

O teu enderezo de correo electrónico non será publicado. Utilízanse os campos obrigatorios * Etiqueta

Volver arriba