Макс

Родной город: Омск

Фото галерея: смотреть

Контакты: написать

О себе:

Интересы:

- программирование

- интернет

- психология

- менеджмент

- автоматизация

Погляди
Голосование

Нравиться ли вам блог

  Да
  Нет
  Я тут случайно

 

ГлавнаяКарта сайтаПечать страницы

Отбиваем DDoS с помощью mod_evasive + firewall (CentOS, Red Hat)

Анализ DDoS можно производить конечно своими скриптами, парсить логи. Но лучше предоставить это апачевскому mod_evasive.

Ставим mod_evasive, в конфигурации пишем
DOSHashTableSize 3097
DOSPageCount 15
DOSSiteCount 15
DOSPageInterval 3
DOSSiteInterval 3
DOSBlockingPeriod 300
DOSSystemCommand "/usr/bin/sudo /usr/bin/fwban %s"
DOSPageInterval – интервал для хитов определенной страницы
DOSSiteInterval – интервал для хитов определенного vhost
DOSPageCount – после этого количества хитов по определенному URI в течении интервала DOSPageInterval, айпи будет забанен
DOSSiteCount – после этого количества хитов по определенному vhost в течении интервала DOSSiteInterval, айпи будет забанен

Нам понадобиться скрипт для бана на уровне файрвола «/usr/bin/fwban» (вариант для Linux):
#!/bin/bash
if [ "x$1" = "x" ] ; then
echo "USAGE: $0 IPADDR"
exit
fi
/sbin/iptables -A BAN -s $1 -j DROP


Ему надо поставить права 755.

Так же нам понадобиться утилита sudo. Она стоит практически везде. В «visudo» закомментируем опцию:
#Defaults requiretty

И добавим строку
apache ALL = NOPASSWD: /usr/bin/fwban

где apache – юзер от которого работает апач.

Так же нам понадобиться цепочка BAN в iptables:
iptables -N BAN
iptables -I INPUT -j BAN

Сохраним правила файрвола
/etc/init.d/iptables save

Рестартанем апач. Теперь попробуйте уложить ваш сайт (только не со своего айпи!!!):
#ab -n 1000 -c 20 http://yoursite.info/

В логах «жертвы» можно увидеть:
May 6 15:18:25 Server1 mod_evasive[26514]: Blacklisting address 1.2.3.4: possible DoS attack.

А в файрволе:
# iptables-save
---многа букав---
-A BAN -s 1.2.3.4 -j DROP
---многа букав---


PS: И конечно, апач лучше бы прикрыть извне nginx’ом.

PS:  И данный метод банит айпишнеги перманентно, пока не рестартанет сервер, или не будет сброшена цепочка BAN. Вот такой брутальный метод )