我运行一些高stream量的网站,遭受虐待的用户。
我想阻止他们,并指示他们说port 8080服务的apache
你已被封锁,联络blabla
这可能与iptables ?
手动更新iptables是好的,如果只有几个IP地址。
如果有很多的话,可以看一下Fail2Ban来自动更新防火墙,例如从一个parsingApache日志文件的python脚本。
当然。
/sbin/iptables -t nat -A PREROUTING -p tcp --dport 80 -s wxyz -j DNAT --to-destination abcd:8080
wxyz是敌对的地址, abcd是你自己的地址。
cjc提供给你fail2ban ,这是一个很好的工具。
你没有指定什么是“高stream量”,如果你的networking服务器是CPU密集型的。 如果你有一些CPU周期来烧, mod_security也非常适合阻止不需要的访问者。 它可以阻止已知的黑名单IP地址,也可以阻止包含一些讨厌的东西的请求。
mod_security包含了大量的规则集,你可以在网上下载更多的规则,或者创build自己的规则。 将其视为HTTPstream量的SpamAssassin。
根据您的需要,mod_security可能会为您fail2ban ,并为您提供更好的解决scheme。 看看mod_security并自行决定。
有没有任何理由不使用Apache本身?
<Directory /> Allow from any Deny from 198.51.100.37 Order allow,deny </Directory>
来自198.51.100.37的用户的结果是403错误。
正如别人build议你可以使用fail2ban,mod_security,mod_evasive,甚至redirect到另一个主机(最后一个是毫无意义的,因为你会浪费资源)。
我的方法有点不同 – 我通常限制一个IP每秒钟可以有一个特定端口的最大连接数。 例如,我设置每个IP每秒20-30个连接的地方:
iptables -p tcp --dport 80 -m connlimit --connlimit-above 20 -j DROP
所以如果有人淹没你的服务器,这将有助于停止它。 我也build议使用fail2ban,因为它是你find的最好的工具。 它可以parsing几乎所有的日志,你可以定制fail2ban将会对付滥用者的行为。
PS你也可以检查我的答案, 在这里可以帮助你的类似DoS / DDoS的问题。