Я задал этот вопрос на StackOverflow, но до вчерашнего дня никто не ответил ... и ответ был предложением ... задать это здесь :). Итак ... может ли кто-нибудь помочь мне с этим:
Я новичок в сетях и безопасности, и у меня проблема с сервером HTTPD во FreeBSD. Если кто-то сделает много запросов, httpd серверы умирают .... Может ли кто-нибудь подсказать мне решение для предотвращения httpd
от смерти или как добавить и ipfw
правило, которое будет блокировать на 60 секунд любое подключение к серверу с IP-адреса, который сделал более 5 запросов в секунду за последнюю секунду.
то есть: если кто-то открывает веб-сайт и удерживает кнопку F5 нажатой, httpd
умирает ... httpd
перезапуск больше не работает, поэтому мне нужно httpd stop
/ httpd start
....
Это то, что я нашел для iptables
:
iptables -I INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --set
iptables -I INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --update --seconds 60 --hitcount 5 -j DROP
В качестве быстрого ответа я бы предложил следующее для локального pf: (я использую его для попыток SSH brutforce)
# vi /etc/pf.conf
table <bruteforce> persist
block quick from <bruteforce>
pass inet proto tcp from any to any port http flags S/SA keep state (max-src-conn 5, max-src-conn-rate 5/30, overload <bruteforce> flush global)
(вдохновенная форма Вот)
РЕДАКТИРОВАТЬ: вам нужно включить pf, конечно :)
# vi /etc/rc.conf
pf_enable="YES"
pf_rules="/etc/pf.conf"
pflog_enable="YES"