Jinsi ya kusafisha kiotomatiki na kwa makundi sheria za ufikiaji wa IP zilizotolewa maoni katika WAF kwa kutumia Cloudflare API na Python

Mara tu orodha yako ya sheria za ngome inapoongezeka hadi maelfu ya maingizo, kuyafuta mwenyewe ni kama kuhesabu chembe za mchanga jangwani—huchukua muda na ni chungu.

Katika hatua hii, hati otomatiki huwa wokovu wa maisha.

Kwa nini sheria za usafi wa kiotomatiki zinahitajika?

kutumia sasa cloudflare 作为 CDN 和 WAF 的过程中,我们经常会设置 Sheria za Ufikiaji wa IP 来封禁恶意请求。

这些规则可能带有注释,比如 "Imezuiwa na AIB ”,Usawazishaji wa Wordfence Au "Anwani ya IP ya Mshambuliaji inajulikana".

随着时间推移,规则数量会迅速增加。

如果不清理,控制台里的规则会堆积成山,影响管理效率。

Kibaya zaidi, kiweko cha Cloudflare hakitoi kipengele cha "kufuta kwa kutoa maoni kwa kubofya mara moja".

这意味着你只能一条条手动勾选删除,效率极低。

Suluhisho

Ili kutatua tatizo hili, tunaweza kutumia Cloudflare REST API.

Kwa kupiga simu firewall/access_rules/rules Violesura na hati vinaweza:

  • 分页获取当前域名下的所有规则。
  • 匹配注释字段中的关键字。
  • 自动发起 DELETE 请求Sheria za shabaha za kusafisha kwa kundi.

Njia hii si tu kwamba ina ufanisi, lakini pia huepuka makosa ya kibinadamu.

Jinsi ya kusafisha kiotomatiki na kwa makundi sheria za ufikiaji wa IP zilizotolewa maoni katika WAF kwa kutumia Cloudflare API na Python
Jinsi ya kusafisha kiotomatiki na kwa makundi sheria za ufikiaji wa IP zilizotolewa maoni katika WAF kwa kutumia Cloudflare API na Python

Kazi ya maandalizi

Kabla ya kuanza kuandika hati, unahitaji kuandaa vigezo kadhaa muhimu.

1. Tokeni ya API

Enda kwa Cloudflare API Tokens 页面 创建一个新的 Token。

必须赋予权限:Eneo → Huduma za Ngome → Hariri.

2. Zone ID

Ingia kwenye dashibodi ya Cloudflare na uende kwenye kikoa chako... Overview 页面,在右侧即可找到 32 位 Zone ID。

3. Sakinisha maktaba za utegemezi

在 PowerShell 或终端中运行:

python -m pip install requests

Hii itakuruhusu kuisakinisha. requests 库,确保脚本能正常调用 API。

完整 Python 脚本

Hapa chini kuna hati ya Python iliyo tayari kutumika.

Hifadhi kama cloudflare_clean.py,替换其中的 API_TOKEN Na ZONE_ID Hiyo ndio.

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

endesha hati

在终端中输入:

python /path/to/cloudflare_clean.py

Hati itachanganua na kufuta sheria kiotomatiki zenye maoni maalum.

Maswali Yanayoulizwa Mara kwa Mara na Mwongozo wa Utatuzi wa Makosa

1. Eneo dhidi ya Ruhusa za Akaunti

  • Sheria za kiwango cha eneo: zinatumika kwa kikoa kimoja tu.
  • Sheria za kiwango cha akaunti: Zinatumika kwa akaunti nzima; zinahitaji marekebisho ya njia ya API. /accounts/{ACCOUNT_ID}/....

2. Kuripoti hitilafu za uthibitishaji

Ikiwa inaonekana 403 Authentication error,通常是权限范围设置错误。

确保 Token 权限包含 Huduma za Firewall → Hariri.

3. Utaratibu wa kurasa

API ya Cloudflare hurejesha sheria zisizozidi 100 kwa wakati mmoja.

脚本通过 result_info.total_pages Kugeuza ukurasa kiotomatiki huhakikisha uchanganuzi kamili.

Kwa Nini Otomatiki ni Chaguo Lisiloepukika

在实际生产环境中,规则数量可能轻松突破 5000 vitu.

Kufuta kwa mikono si tu kwamba kunachukua muda mwingi, bali pia kunaweza kusababisha kuachwa.

Kwa hati za kiotomatiki, unaweza:

  • Sheria zilizopitwa na wakati husafishwa kila siku.
  • Weka orodha yako ya sheria za ngome safi.
  • Ili kuepuka kupiga marufuku kimakosa watumiaji halali.

这种方式能让网站安全管理更高效。

Nyaraka rasmi za Cloudflare zinasema waziwazi:

"API hutoa ufikiaji wa kiprogramu wa kudhibiti sheria za ngome, ikiwa ni pamoja na uundaji, uorodheshaji, na ufutaji."
来源:Nyaraka za API za Cloudflare

Hii inaonyesha kwamba API rasmi imetolewa, lakini chaguo la kufuta kundi halijatekelezwa kwenye koni.

Hitimisho

Katika ulimwengu wa usalama wa habari, ufanisi ni ulinzi.

通过 Python 脚本调用 Cloudflare API,我们不仅解决了控制台的局限,还让防火墙规则管理进入自动化时代。

这是一种 Mchanganyiko wa teknolojia na hekima,也是网站安全运营的必然趋势。

Mabwana wa kweli hawatumii siku zao wakibofya kipanya kwenye koni; hutumia msimbo kufanya mashine zifanye kazi ngumu kwao.

Kwa hivyo tuchukue hatua.

让你的防火墙规则像精密的钟表一样运转,而不是一堆杂乱无章的数字垃圾。

Kiini cha usalama ni utaratibu. Na nyuma ya utaratibu kuna otomatiki.

Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ Makala "Jinsi ya Kusafisha Kiotomatiki Sheria za Ufikiaji wa IP kwa Kutumia Maoni Maalum katika WAF Kutumia Cloudflare API + Python" yaliyoshirikiwa hapa yanaweza kuwa na manufaa kwako.

Karibu kushiriki kiungo cha makala hii:https://www.chenweiliang.com/cwl-34436.html

Ili kufungua mbinu zaidi zilizofichwa🔑, karibu ujiunge na chaneli yetu ya Telegraph!

Share na like ukiipenda! Ulizoshiriki na ulizopenda ndio motisha yetu inayoendelea!

 

发表 评论

Barua pepe yako haitachapishwa. 必填 项 已 用 * 标注

Kitabu ya Juu