Назад | Перейти на главную страницу

HTTPD умирает на FreeBSD, если открыто несколько соединений от одного и того же клиента

Я задал этот вопрос на 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"