Kako automatski i u serijama očistiti komentirana pravila IP pristupa u WAF-u pomoću Cloudflare API-ja i Pythona

Nakon što se popis pravila vašeg vatrozida napuni tisućama unosa, njihovo ručno brisanje je poput brojanja zrnaca pijeska u pustinji - oduzima puno vremena i mukotrpno je.

U ovom trenutku, automatizirane skripte postaju spas.

Zašto su potrebna pravila automatskog čišćenja?

Kada koristimo Cloudflare kao CDN i WAF, često moramo konfigurirati... Pravila IP pristupa Za blokiranje zlonamjernih zahtjeva.

Ova pravila mogu uključivati ​​komentare, kao što su "Blokirano od strane AIB ",Wordfence sinkronizacija Ili "IP adresa napadača je poznata".

Broj pravila će se s vremenom brzo povećavati.

Ako se ne očiste, pravila u konzoli će se gomilati, što će utjecati na učinkovitost upravljanja.

Da stvar bude gora, Cloudflare konzola ne nudi značajku "brisanja komentara jednim klikom".

To znači da ih možete ručno odabrati i izbrisati samo jedan po jedan, što je izuzetno neučinkovito.

Otopina

Za rješavanje ovog problema možemo koristiti Cloudflare REST API.

Pozivom firewall/access_rules/rules Sučelja i skripte mogu:

  • Dobij paginacijuSva pravila pod trenutnom domenom.
  • Odgovarajući komentariKljučne riječi u polju.
  • Automatski pokrenite zahtjev za brisanjePravila cilja grupnog čišćenja.

Ova metoda nije samo učinkovita, već i izbjegava ljudske pogreške.

Kako automatski i u serijama očistiti komentirana pravila IP pristupa u WAF-u pomoću Cloudflare API-ja i Pythona
Kako automatski i u serijama očistiti komentirana pravila IP pristupa u WAF-u pomoću Cloudflare API-ja i Pythona

Pripremni radovi

Prije nego što počnete pisati skriptu, potrebno je pripremiti nekoliko ključnih parametara.

1. API token

Ići Stranica s tokenima Cloudflare API-ja Izradite novi token.

Dozvole moraju biti odobrene:Zona → Usluge vatrozida → Uredi.

2. ID zone

Prijavite se u Cloudflare konzolu i idite na stranicu svoje domene... Stranica pregleda32-znamenkasti ID zone možete pronaći s desne strane.

3. Instalirajte biblioteke ovisnosti

Pokreni u PowerShellu ili terminalu:

python -m pip install requests

To će vam omogućiti da ga instalirate. requests Biblioteka osigurava da skripta može ispravno pozvati API.

Potpuni Python skript

Ispod je Python skripta spremna za korištenje.

Spremi kao cloudflare_clean.pyZamijeniti API_TOKENZONE_ID U REDU.

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

pokrenuti skriptu

U terminal unesite sljedeće:

python /path/to/cloudflare_clean.py

Skripta će automatski skenirati i izbrisati pravila s navedenim komentarima.

Često postavljana pitanja i vodič za rješavanje problema

1. Dozvole za zonu u odnosu na dozvole za račun

  • Pravila na razini zone: primjenjuju se samo na jednu domenu.
  • Pravila na razini računa: Primjenjuju se na cijeli račun; zahtijevaju izmjenu API putanje. /accounts/{ACCOUNT_ID}/....

2. Izvješćivanje o pogreškama autentifikacije

Ako se pojavi 403 Authentication errorTo je obično zbog neispravne postavke opsega dozvola.

Provjerite da dopuštenje tokena uključuje Usluge vatrozida → Uredi.

3. Mehanizam paginacije

Cloudflare API vraća maksimalno 100 pravila istovremeno.

Skripta prolazi result_info.total_pages Automatsko okretanje stranica osigurava potpuno skeniranje.

Zašto je automatizacija neizbježan izbor

U stvarnom produkcijskom okruženju, broj pravila može lako premašiti [određeni prag]. 5000 条.

Ručno brisanje ne samo da oduzima puno vremena, već je i sklono propustima.

Pomoću skripti za automatizaciju možete:

  • Istekla pravila se brišu svakodnevno.
  • Održavajte popis pravila vatrozida čistim.
  • Kako bi se izbjeglo pogrešno zabranjivanje legitimnih korisnika.

Ovaj pristup čini upravljanje sigurnošću web stranice učinkovitijim.

Službena dokumentacija Cloudflarea jasno navodi:

"API omogućuje programski pristup za upravljanje pravilima vatrozida, uključujući stvaranje, popisivanje i brisanje."
来源:Dokumentacija Cloudflare API-ja

To ukazuje na to da je službeni API dostupan, ali funkcija grupnog brisanja nije implementirana u konzoli.

Zaključak

U svijetu informacijske sigurnosti, učinkovitost je obrana.

Pozivanjem Cloudflare API-ja putem Python skripti ne samo da smo prevladali ograničenja konzole, već smo i započeli eru automatizacije za upravljanje pravilima vatrozida.

这是一种 Spoj tehnologije i mudrostiTo je također neizbježan trend u operacijama sigurnosti web stranica.

Pravi majstori ne provode dane klikajući mišem u konzoli; koriste kod kako bi strojevi obavili zamoran posao umjesto njih.

Dakle, poduzmimo akciju.

Neka pravila vašeg vatrozida funkcioniraju kao precizan sat, a ne kao hrpa neurednog digitalnog smeća.

Suština sigurnosti je red. A iza reda leži automatizacija.

发表 评论

Vaša email adresa neće biti objavljena. Koriste se obavezna polja * Označiti

Dođite na vrh