Работа с API Cloudflare с Bash

Я размещаю все свои веб-сайты на DigitalOcean Droplets, а также использую Cloudflare в качестве провайдера CDN. Одним из преимуществ использования Cloudflare является то, что оно снижает общий трафик вашего пользователя, а также скрывает фактический IP-адрес вашего сервера за их CDN.

Моя любимая функция Cloudflare — бесплатная защита от DDoS. Он несколько раз спасал мои серверы от различных DDoS-атак. У них есть классный API, который вы можете использовать для легкого включения и отключения защиты от DDoS.

Эта глава будет упражнением! Я призываю вас пойти дальше и написать короткий bash-скрипт, который при необходимости будет автоматически включать и отключать защиту Cloudflare от DDoS-атак для вашего сервера!

Предварительные условия

Прежде чем следовать этому руководству, настройте свою учетную запись Cloudflare и подготовьте свой веб-сайт. Если вы не знаете, как это сделать, вы можете выполнить следующие действия здесь: Создайте учетную запись Cloudflare и добавьте веб-сайт .

Получив учетную запись Cloudflare, обязательно получите следующую информацию:

  • Учетная запись Cloudflare

  • Ключ API Cloudflare

  • Идентификатор зоны Cloudflare

Также убедитесь, что на вашем сервере установлен Curl:

curl --version

Если Curl не установлен, вам необходимо запустить следующее:

  • Для RedHat/CentOs:

yum install curl
  • Для Дебиан/Убунту

apt-get install curl

Задача – требования к сценарию

Сценарий должен отслеживать загрузку ЦП на вашем сервере, и если загрузка ЦП становится высокой в ​​зависимости от количества виртуальных ЦП, он автоматически включает защиту Cloudflare от DDoS через API Cloudflare.

Основными особенностями сценария должны быть:

  • Проверяет загрузку процессора скриптом на сервере

  • В случае скачка загрузки ЦП скрипт запускает API-вызов Cloudflare и включает функцию защиты от DDoS для указанной зоны.

  • После того, как загрузка процессора вернется к норме, скрипт отключит опцию «Я под атакой» и вернет ее в нормальное состояние.

Пример скрипта

Я уже подготовил демонстрационный скрипт, который вы можете использовать в качестве образца. Но я советую вам сначала попробовать написать сценарий самостоятельно, а только потом взглянуть на мой сценарий!

Чтобы загрузить скрипт, просто выполните следующую команду:

Откройте скрипт в своем любимом текстовом редакторе:

И обновите следующие данные, указав свои данные Cloudflare:

После этого сделайте скрипт исполняемым:

Наконец, настройте 2 задания Cron для запуска каждые 30 секунд. Чтобы отредактировать ваш crontab, выполните:

И добавьте следующий контент:

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

Заключение

Это довольно простое и бюджетное решение. Одним из недостатков сценария является то, что если ваш сервер перестанет отвечать на запросы из-за атаки, сценарий может вообще не запуститься.

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

Вот еще один отличный ресурс о том, как использовать Discord API и отправлять уведомления на ваш канал Discord с помощью сценария Bash:

Как использовать веб-хуки Discord для получения уведомлений о статусе вашего веб-сайта в Ubuntu 18.04

Last updated