evgentus
@evgentus
Директор OBS Group

Как отразить ddos на сайт?

Вот уже 5 дней на сайт идет ddos атака, первым делом, после того как мне его передали, настроил nginx (req_limit и т.д.), поставил fail2ban и настроил его на мониторинг лога ошибок nginx, сайт ожил и работал нормально, пока не пришли другие ребятки ддосить… Этот ботнет оказался посерьезнее, и эта схема уже не работала, было принято решение накатить geoip для nginx, и кэшировать всё им же, после этого серверу полегчало. Но, эти гады засрали весь порт, поэтому сайт открывается через раз, поэтому вопрос:

1. Как же прикрутить geoip к iptables, дабы рубить их накорню! (все инструкции по установке этого модуля к iptables не подходят)
2. Почему при выполнении команды
iptables -I INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 15 -j REJECT
получаю:
iptables: No chain/target/match by that name
цепочка INPUT есть.

PS. Ось Debian 5
  • Вопрос задан
  • 5682 просмотра
Пригласить эксперта
Ответы на вопрос 7
@egorinsk
Вы наркоманством занимаетесь. Вместо того, чтобы наугад ставить разные модули, надо сидеть читать логи, выявлять паттерны, используемые атакующим и банить собранные IP через iptables + ipset.
Ответ написан
serjs
@serjs
getpocket.com/a/read/98338296 не рекламирую, но так и делал в свое время (на 5 тоже)

А с nochain lsmid | grep connlimit наверно ничего не выводит? Нужно подгружать модуль, только в 5 дебиане не скажу есть ли он нативно, т.к. везде перешли на 6 уже.
Ответ написан
shadowalone
@shadowalone
Ядро какое на оси? Если модуль не встает, то это из-за старого ядра.
Так как Вы хотите зарезать лимиты в файрволе, не делаеться.

Если у Вас старое ядро и модуль не встает, то можно сгенероривать сети конкретной страны на которую открыть, а остальное все закрыть, но правила iptables будут тогда громоздкие, и лучше выделить в отдельную цепочку.
Ответ написан
dkr6
@dkr6
По вопросу 2, вероятно не загружен модуль ядра. ipt_limit, скорее всего, для вашего дистрибутива.
Попробуйте
# modprobe ipt_limit

Не в контейнере ли?
Может быть полезно будет 4debian.info/forum/topic.php?forum=3&topic=22

У меня не Debian, точнее не подскажу.

P.S.
Если внешний канал забит запросами, то от iptables толку мало.
Нужно обращаться к хостеру с просьбой о помощи.
Ответ написан
@BasilioCat
Попробуйте настроить fail2ban более агрессивным способом, или, если у атакующих есть какой-то паттерн — юзерагент, кука, заголовок, урл запроса (tcpdump вам в помощь), то фильтруйте их сразу на файрволле — см модуль string. Так вы снизите загрузку канала на сервере. Но, скорее всего, это не поможет. Ботнет из пары тысяч машин сможет забить 100 мбит канал. А из десяти тысяч — забьет его одними SYN-запросами. Провайдер в фильтрации атаки бывает редко заинтересован (российские провайдеры наоборот, заинтересованы отжать побольше денег за трафик в результате атаки), а гигабитный канал стоит не совсем бюджетных денег.
Если сайт почти статичный (или может быть закэширован на длительное время, по крайней мере атакуемый урл), можно перевести отдачу сайта на CDNы — так решается проблема полосы канала. Ну и специализированные сервисы по защите от ддоса тоже никто не отменял, встречаются довольно бюджетные решения, но в основном не у нас
Ответ написан
gunya
@gunya
Аккуратнее с iptables. Сервер с на FreeBSD с pf под 200k SYN-флуда ложится. Если выключить pf и отбиваться силами nginx, серверу становится сразу легче.
Ответ написан
@wvitalik
nginx лучше всего справляется с ddos, но при атак более 100 000 pps сервер не будет успевать банить адреса и он будет перегружен в следствии чего ресурс будет недоступен. И при таких атаках нужно пускать трафик домена через А-запись на IP защищенного прокси сервера по типу Simply Proxy
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы