如果同一客户端打开多个连接,FreeBSD 上的 HTTPD 将会崩溃

如果同一客户端打开多个连接,FreeBSD 上的 HTTPD 将会崩溃

我曾在 StackOverflow 上问过这个问题,但没有人回答,直到昨天……答案是一个建议……在这里问这个问题 :)。所以……有人能帮我解决这个问题吗:

我是网络和安全方面的新手,我在 FreeBSD 上使用 HTTPD 服务器时遇到了问题。如果有人发出大量请求,httpd 服务器就会死机……有人能告诉我一个防止httpd死机的解决方案吗,或者如何添加ipfw规则,阻止过去一秒内每秒发出超过 5 个请求的 IP 向服务器的任何连接 60 秒。

例如:如果有人打开网站并按住 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"

相关内容