Пример DDOS защиты на выделенном сервере.

DDOS защиты

Очень часто на старте, интернет проекты не имеют бюджета для аренды защищенного выделенного сервера или внешней DDOS защиты. Но всегда в команде есть программисты или админы, готовые сделать необходимые настройки для того чтобы сервер мог устоять от небольших атак. Как правило, хорошо настроенный сервер способен выдержать атаки которые не превышают пропускную способность самого сервера. Это от 100 до 1000Мб\с.

Давайте рассмотрим основные моменты которые необходимо учесть, при построении DDOS защиты для своего выделенного сервера.

DDOS защита выделенного сервера.

Чаще всего, первой атакой с которой вы встретитесь в сети является HTTP Flood. Обычно средний сайт работает под управлением Apache под Linux. Мы покажем несколько скриптов, которые будут приведены в тексте статьи. В принципе аналогичный подход можно применять и для Windows/IIS. Попытаемся рассказать, какие основные шаги предпринять для отражения ddos атаки, и какие проблемы возникают по ходу.

Как получить доступ к серверу во время DDOS атаки.

Основная цель DDOS атаки – вызвать отказ в обслуживании серверного оборудования или программного обеспечения. При этом подключение к серверу по SSH становится невозможным. Хорошим вариантом является использования интерфейса управления KVM over IP или IPMA, которым оборудованы большинство современных серверов. Если по какой-то причине у вас его нет, тогда необходимо перегрузить сервер и попытаться остановить службы, отвечающие за обработку соединений. Как правило это веб сервер APACHE или NGINX. Если ддос атака достаточно серьезная, то понадобиться ловкость и высокая скорость реакции чтобы это сделать. Иногда приходиться повторять процесс снова и снова.

После того как вам удалось зайти в систему и остановить Nginx\Apache (команда – service nginx stop или service apache2 stop) нужно обязательно отключить автозапуск данных сервисов при старте системы.

Делается это с помощью команды:

Решение не идеальное, но для начала подойдет.

статистика ддос атак

C каждым годом мощность ддос атак значительно возрастает.

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

Перезагрузка сервера при ддос атаке, решение нормальное но в рабочей обстановке трудно выполнимое. Как альтернативный вариант можно останавливать сервис который генерирует большую нагрузку в системе. Делать это нужно при достижении определенного порога. В нашем случае, будем останавливать сервис который слушает 80 порт.

Можно воспользоваться универсальным скриптом написанным для такого случая. Вызов его следующий:

На вход скрипта передаем две команды, и максимальный уровень нагрузки системы при котором необходимо предпринимать действия. В данном примере при достижении нагрузки значения 5 (load average) выполняется команда которая закрывает доступ к 80-му порту через Firewall. При возвращении нагрузки в пределы нормы, порт соответственно открывается.

Собственно говоря, для простых случаев, можно действия описывать прямо при вызове, например, предыдущая команда без использования внешних скриптов:

Т.е. мы напрямую блокируем/разблокируем порт с помощью iptables.

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

Кроме блокировки 80-го порта, не лишним будет закрыть все сервисы которые не используются на сервере. При DDOS защите, да и вообще в целом, необходимо руководствоваться правилом – что не разрешено – то запрещено. Т.е. осталять открытыми только те порты, которые действительно нужны для работы сервера. Также в обязательном порядке должен быть доступен порт SSH.Вот вторая полезная команда:

Тут по достижении значения load average в 50 единиц, мы закрываем все что можно, за исключением SSH (22-й порт). Открытие порта производится в данном случае в ручном режиме.

Далее необходимо все вышеописанные команды добавить в автозапуск при загрузке системы:

Почему не нужно оставлять нормальный запуск httpd через системный старт сервисов? Потому что он запустится перед автоблокировщиком, и при сильной атаке сразу положит систему и скрипт инициализации может не выполнится.

Данный скрипт логирует свою работу и записывает изменения своих состояний (переключения режимов работы) в файл –/var/log/blockOnHighLoad-5-80.logs. В нем можно отследить всю историю работы.

Наращиваем DDOS защиту выделенного сервера.

После обеспечения нормального доступа к серверу, можно подумать о активной системе защиты. Нам необходим скрипт который будет блокировать DDOS боты. При количестве блокируемых IP более нескольких сотен, вариант с Iptables не совсем подходит. Потому что iptables крайне не эффективно работает с большими массивами данных. Iptables нужно использовать в связке с ipset, который как раз заточен на хранение и поддержку больших списков IP для iptables.

Скрипт blockOnHighLoad.sh

Скрипт blockAllExcept.sh

В случае если ваш проект на старте и нет достаточно средств для мощной ддос защиты, мы предлагаем защищенный хостинг бесплатно. Напишите нам в поддержку и мы обо всем с Вами договоримся!

Желаем удачной DDOS защиты!

 

Рейтинг материала
[Голосов: 2 Рейтинг: 3.5]
07 апреля 2017, 05:33

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *