Как автоматически и пакетно удалять закомментированные правила доступа по IP-адресам в WAF с помощью API Cloudflare и Python.

Когда список правил вашего брандмауэра разрастается до тысяч записей, их удаление вручную становится сродни подсчету песчинок в пустыне — трудоемким и мучительным процессом.

В этот момент автоматизированные скрипты становятся настоящим спасением.

Зачем нужны правила автоматической очистки?

в настоящее время использует Cloudflare 作为 CDN 和 WAF 的过程中,我们经常会设置 Правила доступа по IP-адресу Для блокировки вредоносных запросов.

Эти правила могут включать комментарии, например: «Заблокировано» AIB ”,Синхронизация Wordfence«IP-адрес злоумышленника известен».

Количество правил будет быстро расти со временем.

Если не навести порядок, правила в консоли будут накапливаться, что снизит эффективность управления.

Ситуацию усугубляет то, что в консоли Cloudflare отсутствует функция «пакетного удаления комментариев одним щелчком мыши».

Это означает, что вы можете выбирать и удалять их только вручную по одному, что крайне неэффективно.

Решение

Для решения этой проблемы мы можем использовать REST API Cloudflare.

Позвонив firewall/access_rules/rules Интерфейсы и скрипты могут:

  • Получить пагинациюВсе правила находятся в пределах текущего домена.
  • Соответствующие комментарииКлючевые слова в данной области.
  • Автоматически инициировать запрос на удаление.Целевые правила пакетной очистки.

Этот метод не только эффективен, но и позволяет избежать человеческих ошибок.

Как автоматически и пакетно удалять закомментированные правила доступа по IP-адресам в WAF с помощью API Cloudflare и Python.
Как автоматически и пакетно удалять закомментированные правила доступа по IP-адресам в WAF с помощью API Cloudflare и Python.

Подготовительные работы

Прежде чем начать писать скрипт, необходимо подготовить несколько ключевых параметров.

1. API-токен

Перейти к Страница токенов API Cloudflare Создайте новый токен.

Необходимо предоставить разрешения:Зона → Службы брандмауэра → Редактировать.

2. Идентификатор зоны

Войдите в консоль Cloudflare и перейдите в раздел вашего домена... Обзорная страница32-значный идентификатор зоны находится справа.

3. Установите библиотеки зависимостей.

Запустите в PowerShell или терминале:

python -m pip install requests

Это позволит вам его установить. requests Библиотека гарантирует, что скрипт сможет корректно вызывать API.

Полный скрипт на Python

Ниже представлен готовый к использованию скрипт на языке Python.

Сохранить как cloudflare_clean.pyЗаменять API_TOKEN И ZONE_ID ХОРОШО.

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

Запустить скрипт

Введите в терминале следующее:

python /path/to/cloudflare_clean.py

Скрипт автоматически просканирует правила и удалит правила с указанными комментариями.

Часто задаваемые вопросы и руководство по устранению неполадок

1. Зона и права доступа учетной записи.

  • Правила на уровне зоны: применяются только к одному домену.
  • Правила на уровне учетной записи: применяются ко всей учетной записи; требуют изменения пути к API. /accounts/{ACCOUNT_ID}/....

2. Сообщение об ошибках аутентификации

Если появится 403 Authentication errorОбычно это происходит из-за неправильной настройки области прав доступа.

Убедитесь, что разрешение токена включает в себя Службы брандмауэра → Редактировать.

3. Механизм постраничной навигации

API Cloudflare возвращает максимум 100 правил за раз.

Сценарий пройден. result_info.total_pages Автоматическое перелистывание страниц обеспечивает полное сканирование.

Почему автоматизация — неизбежный выбор

В реальных производственных условиях количество правил может легко превысить [определенный порог]. 5000 месяц.

Удаление вручную не только отнимает много времени, но и чревато упущениями.

С помощью скриптов автоматизации вы можете:

  • Устаревшие правила стираются ежедневно.
  • Поддерживайте список правил брандмауэра в чистоте.
  • Во избежание ошибочной блокировки законных пользователей.

Такой подход делает управление безопасностью веб-сайта более эффективным.

В официальной документации Cloudflare четко указано:

«API предоставляет программный доступ для управления правилами брандмауэра, включая создание, отображение и удаление правил».
来源:Документация по API Cloudflare

Это означает, что официальный API предоставлен, но функция пакетного удаления не реализована в консоли.

эпилог

В мире информационной безопасности эффективность — это защита.

Благодаря вызову API Cloudflare через скрипты Python мы не только преодолели ограничения консоли, но и положили начало эре автоматизации управления правилами брандмауэра.

Это Сочетание технологий и мудростиЭто также неизбежная тенденция в сфере обеспечения безопасности веб-сайтов.

Настоящие мастера не проводят дни, щелкая мышкой в ​​консоли; они используют код, чтобы заставить машины выполнять за них рутинную работу.

Давайте же начнем действовать.

Настройте правила брандмауэра так, чтобы они работали как точные часы, а не как беспорядочный цифровой мусор.

Суть безопасности — порядок. А за порядком скрывается автоматизация.

Блог Хоуп Чен Вейлян ( https://www.chenweiliang.com/ Статья "Как автоматически выполнять пакетную очистку правил доступа по IP-адресам с указанными комментариями в WAF с помощью API Cloudflare + Python", размещенная здесь, может оказаться вам полезной.

Добро пожаловать, чтобы поделиться ссылкой на эту статью:https://www.chenweiliang.com/cwl-34436.html

Чтобы раскрыть еще больше скрытых трюков🔑, присоединяйтесь к нашему каналу в Telegram!

Поделитесь и поставьте лайк, если вам понравилось! Ваши репосты и лайки — наша постоянная мотивация!

 

发表 评论

Ваш адрес электронной почты не будет опубликован. 必填 项 已 用 * 标注

Наверх