Как я конфигурировал VDS при DDOS атаке, а защищался ddos-guard

Атака началась во второй половине воскресенья (в Телеграм каналах о ней писали, большое количество сайтов попало под неё), на сайте сообщение 502 Bad Gateway. Сайт не работает. Осознание шторма через размер логов доступа на хостинге (они тут ../var/log/apache2), а они стали больше 1Гб за день, и консультацией с техподдержкой хостинга. Они рекомендовали связаться с ddos-guard.

Количество запросов в минуту, как это выглядит на графике. Около 900 тыс в минуту, то есть 15 тыс в секунду.

Договор и настройка ddos-guard

Прошел регистрацию на сайте, и зазвонил телефон, менеджер Михаил сам связался, пояснил что для юр.лиц услуга в месяц стоит 18 тыс. рублей.
И могут включить без оплаты, по гарантийному письму, с оплатой в рабочее время, да это был вечер воскресенья.

Дальше конфигурирование. Я поменял NS сервера Beget на NS сервера ddos-guard. Замена происходит до 24 часов, реально часов шесть. Но можно не менять сервера, а сделать А запись на сервер ddos-guard, обновление А записи 15 минут. Меняется она в NS записях на Beget это меню DNS, Управление записями DNS. В инструкции рекомендация изменить NS сервера, действовал по ней.

Потом настройка на новый IP адрес, на какой IP адрес на хостинге отправлять трафик. Тут собственно всё, дальше продолжаем на хостинге.

В настройке сервиса ddos-guard:

  • Целевой IP это адрес сервиса он же прописан в A записи в DNS настройках домена
  • Защищенный IP это адрес на хостинге, его надо скрывать иначе начнут атаку на него и ничего не будет работать даже с сервисом. Скрывать это значит также доступ к нему в NGINX и apache должен быть через конфигурации в  NGINX

location / {
   deny  192.168.0.15;
   allow 192.168.0.0/24;
   allow 2001:0ab3::/32;
   deny  all;
}

или в htaccess

Конфигурация хостинга

В разделе Настройки сети нужно заказать новый IP адрес, выше уже писал что настраивал на новый IP. Тот, что есть, никуда не удаляется, и его можно заблокировать только через IP tables (не уверен, что необходимо, но я заблокировал). Правило вот это:
sudo iptables -A INPUT -d 4.4.4.4 -j DROP ( 4.4.4.4 например старый IP адрес)

Конфигурация Apache

Вот это очень важно, работать ничего не будет если не переконфигурировать файл ports. Это замена, удаление скомпроментированного IP адреса в файле ports, на сервере он в папке ../etc/apache2 и добавление нового арендованного.

Дальше также изменяем конфигурацию <VirtualHost 8.8.8.8:80> на свой новый IP адрес в файле конфигурации сайта в папке ../etc/apache2/sites-available (8.8.8.8 тут понятно для примера, это адрес Гугл четыре восьмерки, у Вас не этот IP адрес :)

Конфигурация .htaccess

По инструкции добавил запрет доступа со всех адресов кроме адресов сервиса ddos-guard

order deny,allow
deny from all
allow from 186.2.160.0/24
allow from 77.220.207.224/27

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

Какие побочные эффекты

  • Если отключить сервис и переключатся на прямой доступ будет сообщение

403 Forbidden

You don't have permission to access this resource.


Apache/2.4.41 (Ubuntu) Server at vesti42.ru Port 443

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

  • Отключился кросспостинг в ОК, то есть не отключился, но сервис не смог получить доступ к изображениям постов и продолжил работать, но не смог получать изображения.
  • RSS своих сайтов не сразу настроился, была переписка с техподдержкой

Что потом

Через месяц шторм утих.

Около 50 запросов в секунду

Можно вернуться к Wordfence

Регистрирует 1.5-2 тыс в минуту.