Makale Rehberi
Güvenlik duvarı kural listeniz binlerce maddeye ulaştığında, bunları manuel olarak silmek çölde kum tanelerini saymak gibidir; zaman alıcı ve zahmetlidir.
Bu noktada, otomatikleştirilmiş komut dosyaları hayat kurtarıcı hale geliyor.
Otomatik temizleme kurallarına neden ihtiyaç duyulur?
Cloudflare'ı CDN ve WAF olarak kullanırken , kötü amaçlı istekleri engellemek için genellikle IP Erişim Kuralları yapılandırırız .
Bu kurallar, " Yapay Zeka B tarafından engellendi " , "Wordfence Senkronizasyonu" veya "Bilinen saldırganın IP adresi" gibi açıklamalar içerebilir.
Zamanla kuralların sayısı hızla artacaktır.
Eğer düzenlenmezse, konsoldaki kurallar birikerek yönetim verimliliğini etkileyecektir.
Dahası, Cloudflare konsolu "yorum bazında tek tıklamayla toplu silme" özelliği sunmuyor.
Bu, onları yalnızca tek tek manuel olarak seçip silebileceğiniz anlamına gelir ki bu son derece verimsizdir.
Çözüm
Bu sorunu çözmek için Cloudflare REST API'sini kullanabiliriz.
Telefon ederek firewall/access_rules/rules Arayüzler ve komut dosyaları şunları yapabilir:
- Sayfalandırmayı edininMevcut etki alanı altındaki tüm kurallar.
- Eşleşen yorumlarAlanındaki anahtar kelimeler.
- Otomatik olarak bir DELETE isteği başlatToplu temizleme hedef kuralları.
Bu yöntem sadece verimli olmakla kalmaz, aynı zamanda insan hatasını da önler.

Hazırlık çalışmaları
Senaryoyu yazmaya başlamadan önce, birkaç önemli parametreyi hazırlamanız gerekiyor.
1. API Token
Yeni bir token oluşturmak için Cloudflare API Token'ları sayfasına gidin .
İzinlerin verilmesi gerekiyor: Bölge → Güvenlik Duvarı Hizmetleri → Düzenle.
2. Bölge Kimliği
Cloudflare konsoluna giriş yapın, alan adınızın Genel Bakış sayfasına gidin ve sağ tarafta 32 haneli Bölge Kimliğini bulabilirsiniz.
3. Bağımlılık kütüphanelerini yükleyin.
PowerShell veya terminalde çalıştırın:
python -m pip install requests
Bu, onu yüklemenizi sağlayacaktır. requests Bu kütüphane, betiğin API'yi doğru şekilde çağırabilmesini sağlar.
Tam Python betiği
Aşağıda kullanıma hazır bir Python betiği bulunmaktadır.
Farklı kaydet cloudflare_clean.pyYer değiştirmek API_TOKEN 和 ZONE_ID Bu kadar.
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()
Komut dosyasını çalıştırın
Terminale aşağıdakileri girin:
python /path/to/cloudflare_clean.py
Bu komut dosyası, belirtilen yorumlara sahip kuralları otomatik olarak tarayacak ve silecektir.
Sıkça Sorulan Sorular ve Sorun Giderme Kılavuzu
1. Bölge İzinleri ve Hesap İzinleri Arasındaki Fark
- Bölge düzeyindeki kurallar: yalnızca tek bir etki alanına uygulanır.
- Hesap düzeyindeki kurallar: Tüm hesaba uygulanır; API yolunun değiştirilmesini gerektirir.
/accounts/{ACCOUNT_ID}/....
2. Kimlik doğrulama hatası raporlaması
如果出现 403 Authentication errorBu genellikle yanlış izin kapsamı ayarından kaynaklanır.
Token izninin Güvenlik Duvarı Hizmetleri → Düzenle seçeneğini içerdiğinden emin olun.
3. Sayfalama mekanizması
Cloudflare API'si bir seferde en fazla 100 kural döndürür.
Senaryo onaylandı. result_info.total_pages Otomatik sayfa çevirme özelliği, taramanın eksiksiz tamamlanmasını sağlar.
Otomasyon Neden Kaçınılmaz Bir Seçimdir?
Gerçek bir üretim ortamında, kural sayısı kolaylıkla 5000'i aşabilir.
Manuel silme işlemi yalnızca zaman alıcı değil, aynı zamanda eksikliklere de yol açabilir.
Otomasyon komut dosyalarıyla şunları yapabilirsiniz:
- Süresi dolmuş kurallar günlük olarak temizlenir.
- Güvenlik duvarı kural listenizi temiz tutun.
- Meşru kullanıcıların yanlışlıkla yasaklanmasını önlemek için.
Bu yaklaşım, web sitesi güvenlik yönetimini daha verimli hale getiriyor.
Cloudflare'ın resmi belgelerinde açıkça belirtilmiştir:
"API, güvenlik duvarı kurallarının oluşturulması, listelenmesi ve silinmesi de dahil olmak üzere, kuralları programatik olarak yönetme olanağı sağlar."
来源:Cloudflare API Dokümantasyonu
Bu, resmi API'nin sağlandığını ancak toplu silme işlevinin konsolda uygulanmadığını gösteriyor.
Sonuç
Bilgi güvenliği dünyasında verimlilik, savunma demektir.
Python komut dosyaları aracılığıyla Cloudflare API'sini çağırarak, yalnızca konsolun sınırlamalarının üstesinden gelmekle kalmadık, aynı zamanda güvenlik duvarı kuralı yönetimi için otomasyon çağını da başlattık.
Bu, teknoloji ve bilgeliğin birleşimidir ve web sitesi güvenlik operasyonlarında kaçınılmaz bir trenddir.
Gerçek ustalar günlerini konsolda fareye tıklayarak geçirmezler; sıkıcı işleri makinelere yaptırmak için kod kullanırlar.
Öyleyse harekete geçelim.
Güvenlik duvarı kurallarınızın, karmakarışık dijital çöp yığını gibi değil, hassas bir saat gibi çalışmasını sağlayın.
Güvenliğin özü düzendir. Ve düzenin ardında otomasyon yatar.
Umarım Chen Weiliang'ın blogunda ( https://www.chenweiliang.com/ ) paylaşılan "Cloudflare API + Python Kullanarak WAF'ta Belirtilen Yorumlarla IP Erişim Kurallarını Otomatik Olarak Toplu Temizleme" başlıklı makale size yardımcı olur.
Bu makalenin bağlantısını paylaşmaktan çekinmeyin: https://www.chenweiliang.com/cwl-34436.html
