Работа с API Cloudflare с Bash
Last updated
Last updated
Я размещаю все свои веб-сайты на DigitalOcean Droplets, а также использую Cloudflare в качестве провайдера CDN. Одним из преимуществ использования Cloudflare является то, что оно снижает общий трафик вашего пользователя, а также скрывает фактический IP-адрес вашего сервера за их CDN.
Моя любимая функция Cloudflare — бесплатная защита от DDoS. Он несколько раз спасал мои серверы от различных DDoS-атак. У них есть классный API, который вы можете использовать для легкого включения и отключения защиты от DDoS.
Эта глава будет упражнением! Я призываю вас пойти дальше и написать короткий bash-скрипт, который при необходимости будет автоматически включать и отключать защиту Cloudflare от DDoS-атак для вашего сервера!
Прежде чем следовать этому руководству, настройте свою учетную запись Cloudflare и подготовьте свой веб-сайт. Если вы не знаете, как это сделать, вы можете выполнить следующие действия здесь: .
Получив учетную запись Cloudflare, обязательно получите следующую информацию:
Учетная запись Cloudflare
Ключ API Cloudflare
Идентификатор зоны Cloudflare
Также убедитесь, что на вашем сервере установлен Curl:
Если Curl не установлен, вам необходимо запустить следующее:
Для RedHat/CentOs:
Для Дебиан/Убунту
Сценарий должен отслеживать загрузку ЦП на вашем сервере, и если загрузка ЦП становится высокой в зависимости от количества виртуальных ЦП, он автоматически включает защиту Cloudflare от DDoS через API Cloudflare.
Основными особенностями сценария должны быть:
Проверяет загрузку процессора скриптом на сервере
В случае скачка загрузки ЦП скрипт запускает API-вызов Cloudflare и включает функцию защиты от DDoS для указанной зоны.
После того, как загрузка процессора вернется к норме, скрипт отключит опцию «Я под атакой» и вернет ее в нормальное состояние.
Я уже подготовил демонстрационный скрипт, который вы можете использовать в качестве образца. Но я советую вам сначала попробовать написать сценарий самостоятельно, а только потом взглянуть на мой сценарий!
Чтобы загрузить скрипт, просто выполните следующую команду:
Откройте скрипт в своем любимом текстовом редакторе:
И обновите следующие данные, указав свои данные Cloudflare:
После этого сделайте скрипт исполняемым:
Наконец, настройте 2 задания Cron для запуска каждые 30 секунд. Чтобы отредактировать ваш crontab, выполните:
И добавьте следующий контент:
Обратите внимание, что вам необходимо изменить путь к скрипту на фактический путь, по которому вы сохранили скрипт.
Это довольно простое и бюджетное решение. Одним из недостатков сценария является то, что если ваш сервер перестанет отвечать на запросы из-за атаки, сценарий может вообще не запуститься.
Конечно, лучшим подходом было бы использовать систему мониторинга, такую как Nagios, и на основе статистики системы мониторинга вы могли бы запустить сценарий, но эта задача сценария может стать хорошим опытом обучения!
Вот еще один отличный ресурс о том, как использовать Discord API и отправлять уведомления на ваш канал Discord с помощью сценария Bash: