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"