Com netejar automàticament i per lots les regles d'accés IP comentades en un WAF mitjançant l'API de Cloudflare i Python

Un cop la llista de regles del tallafocs s'hagi inflat fins a milers d'entrades, suprimir-les manualment és com comptar grans de sorra al desert: requereix molt de temps i és dolorós.

En aquest punt, els scripts automatitzats es converteixen en un salvavides.

Per què calen les regles de neteja automàtica?

Quan fem servir Cloudflare com a CDN i WAF, sovint configurem regles d'accés IP per bloquejar les sol·licituds malicioses.

Aquestes regles poden incloure anotacions com ara "Bloquejat per IA B" , "Sincronització de Wordfence" o "Adreça IP de l'atacant conegut".

El nombre de normes augmentarà ràpidament amb el temps.

Si no es netegen, les regles de la consola s'acumularan, cosa que afectarà l'eficiència de la gestió.

Per empitjorar les coses, la consola de Cloudflare no ofereix una funció d'"eliminació per lots amb un sol clic per comentari".

Això vol dir que només podeu seleccionar-los i suprimir-los manualment un per un, cosa que és extremadament ineficient.

Solució

Per solucionar aquest problema, podem utilitzar l'API REST de Cloudflare.

Trucant firewall/access_rules/rules Les interfícies i els scripts poden:

  • Obtén la paginacióTotes les regles del domini actual.
  • Comentaris coincidentsParaules clau en el camp.
  • Inicia automàticament una sol·licitud DELETERegles d'objectius de neteja per lots.

Aquest mètode no només és eficient, sinó que també evita l'error humà.

Com netejar automàticament i per lots les regles d'accés IP comentades en un WAF mitjançant l'API de Cloudflare i Python
Com netejar automàticament i per lots les regles d'accés IP comentades en un WAF mitjançant l'API de Cloudflare i Python

Treball preparatori

Abans de començar a escriure el guió, cal preparar diversos paràmetres clau.

1. Token de l'API

Ves a la pàgina de tokens de l'API de Cloudflare per crear un token nou.

Cal concedir permisos: Zona → Serveis de tallafocs → Edita.

2. ID de zona

Inicia la sessió a la consola de Cloudflare, vés a la pàgina Visió general del teu domini i trobaràs l'identificador de zona de 32 dígits a la dreta.

3. Instal·lar biblioteques de dependències

Executa-ho al PowerShell o al terminal:

python -m pip install requests

Això et permetrà instal·lar-lo. requests La biblioteca garanteix que l'script pugui cridar l'API correctament.

Script complet de Python

A continuació es mostra un script de Python llest per utilitzar.

Desa com a cloudflare_clean.pySubstitueix API_TOKEN 和 ZONE_ID D'ACORD.

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

Executeu l'script

Introduïu el següent al terminal:

python /path/to/cloudflare_clean.py

L'script buscarà i suprimirà automàticament les regles amb els comentaris especificats.

Preguntes freqüents i guia de resolució de problemes

1. Permisos de zona vs. permisos de compte

  • Regles a nivell de zona: s'apliquen només a un sol domini.
  • Regles a nivell de compte: s'apliquen a tot el compte; requereixen la modificació de la ruta de l'API. /accounts/{ACCOUNT_ID}/....

2. Informe d'errors d'autenticació

Si apareix 403 Authentication errorAixò sol ser degut a una configuració incorrecta de l'abast dels permisos.

Assegureu-vos que el permís Token inclogui Serveis de tallafocs → Edita.

3. Mecanisme de paginació

L'API de Cloudflare retorna un màxim de 100 regles alhora.

El guió passa result_info.total_pages El pas automàtic de pàgina garanteix un escaneig complet.

Per què l'automatització és una opció inevitable

En un entorn de producció real, el nombre de regles pot superar fàcilment les 5000.

L'eliminació manual no només requereix molt de temps, sinó que també és propensa a omissions.

Amb els scripts d'automatització, podeu:

  • Les regles caducades s'esborren diàriament.
  • Mantingueu neta la llista de regles del tallafocs.
  • Per evitar prohibir per error usuaris legítims.

Aquest enfocament fa que la gestió de la seguretat del lloc web sigui més eficient.

La documentació oficial de Cloudflare indica clarament:

"L'API proporciona accés programàtic per gestionar les regles del tallafocs, incloent-hi la creació, la llista i l'eliminació."
font:Documentació de l'API de Cloudflare

Això indica que s'ha proporcionat l'API oficial, però la funció d'eliminació per lots no s'ha implementat a la consola.

Conclusió

En el món de la seguretat de la informació, l'eficiència és defensa.

En cridar l'API de Cloudflare a través de scripts de Python, no només vam superar les limitacions de la consola, sinó que també vam marcar el començament d'una era d'automatització per a la gestió de regles de tallafocs.

Aquesta és una combinació de tecnologia i saviesa , i una tendència inevitable en les operacions de seguretat dels llocs web.

Els veritables mestres no passen els dies fent clic amb el ratolí a la consola; utilitzen codi per fer que les màquines facin la feina tediosa per ells.

Així doncs, actuem.

Feu que les regles del vostre tallafocs funcionin com un rellotge precís, no com un garbuix de brossa digital desordenada.

L'essència de la seguretat és l'ordre. I darrere de l'ordre hi ha l'automatització.

发表 评论

您的邮箱地址不会被公开。必填项已用*标注

Tornar a dalt