Как я конфигурировал VDS при DDOS атаке, а защищался ddos-guard
Атака началась во второй половине воскресенья (в Телеграм каналах о ней писали, большое количество сайтов попало под неё), на сайте сообщение 502 Bad Gateway. Сайт не работает. Осознание шторма через размер логов доступа на хостинге (они тут ../var/log/apache2), а они стали больше 1Гб за день, и консультацией с техподдержкой хостинга. Они рекомендовали связаться с ddos-guard.
Договор и настройка 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 своих сайтов не сразу настроился, была переписка с техподдержкой
Что потом
Через месяц шторм утих.
Можно вернуться к Wordfence