我曾在 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"