19 Май
Отбиваем DDOS mod_evasive + firewall на CentOS
Анализ 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
—многа букав—
Ура! No pasaran.
Да. И конечно, апач лучше бы прикрыть извне nginx’ом.
Да. И данный метод банит айпишнеги перманентно, пока не рестартанет сервер, или не будет сброшена цепочка BAN. Вот такой брутальный метод )
Источник pentarh.com/wp/2011/05/06/anti-ddos-mod_evasive-firewall
Понравилась статья? Поделись с остальными.