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

1 ответ

В качестве быстрого ответа я бы предложил следующее для локального pf: (я использую его для попыток брутфорса SSH)

# 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"
Другие вопросы по тегам