Jump to content
Калькуляторы

Cloudflare управление белым списком по api

Сайт клиента работает через Cloudflare, временами набегают DDOS-еры, просят денег, проводят атаку на пару дней-часов, и уходят.

Хочу сделать белый список постоянных клиентов, добавить их всех в whitelist Cloudflare ( меню Firewall, вкладка Tools).

У сайта есть постоянное комюнити, около 20к авторизованых участников которые за последний месяц хотя бы дважды заходили на сайт, вот их я и планирую добавить в белый список.

Чтоб при жестком ддосе просто отрубать все остальные ip в админке Cloudflare (меню Firewall, вкладка Firewall rules).

 

20к ip конечно хочется добавить как то оптом, но вот формы куда их можно просто скопировать нет.

На вкладке Tools можно только по одному ip добавлять, зато можно 50к записей судя по документации.

На вкладке Firewall rules другой интерфейс, можно добавить сразу несколько ip в правило, но не слишком много, лимит на 4кб текста, 200ip пролазит 300 уже нет, всего можно 5 правил, и одно из них мне нужно под "Deny All".

 

Понятно, что надо добавлять все 20к через api в "IP Access Rule" ( то что там добавил видно в меню Firewall, вкладка Tools)

Ключь нашел в профиле, Account ID на вкладке Overview.

Тестовый ip запостил, работает.

 

Комюнити плотное, но ip меняются потихоньку, а доступно всего 50к записей на бесплатном акке.

Значит ip надо уметь удалять.

Массового удаления в api не нашел.

Можно получить полный список, взять оттуда ID и поодному удалять.

Ну и все сразу вытянуть не получится думаю, уж сильно много текста на 20к это займет в json

По чуть чуть вытянул удалил. И как то очень медленно это api работает.

 

Другой вариант, при постинге Ip в белый список ловить ответ в json, и сохранять себе в базу

ip:id

И когда ip стал не актуален удалять его по id, так выйдет меньше движений с тормозным api.

Но тут уже я вижу что собираюсь какой то небольшой софт писать, а не просто засунуть список ip.

 

Вроде бы задача подобная моей не что то сверх редкое, вот думаю спрошу, может есть готовое решение?

 

Share this post


Link to post
Share on other sites

С внешним не очень производительным или функциональным сервисом хорошим решением будет локальный кеш.

На сервере или админской машине заводите базу данных, все добавления/удаления делаете через БД с последующим запросом API, и время от времени очищаете кеш и заполняете его через API.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this