‘iptables’ 重定向特定 IP 地址

‘iptables’ 重定向特定 IP 地址

我运营着多个流量很大的网站,并且遭受着用户的辱骂。

我想给他们设置防火墙,并指示他们apache发送port 8080类似这样的消息

您已被屏蔽,请联系blabla

这可能吗iptables

答案1

如果只有几个 IP 地址,手动更新 iptables 就可以了。

如果有很多,请查看失败禁止例如,通过解析 Apache 日志文件的 Python 脚本来自动更新防火墙。

答案2

当然。

/sbin/iptables -t nat -A PREROUTING -p tcp --dport 80 -s w.x.y.z -j DNAT --to-destination a.b.c.d:8080

其中w.x.y.z是敌对地址,a.b.c.d是您自己的地址。

答案3

cjc 为您提供了fail2ban一个非常棒的工具。

你没有指定什么是“高流量”,以及你的 Web 服务器是否占用大量 CPU。如果你有一些 CPU 周期需要消耗,mod_security也非常适合拦截不受欢迎的访客。它可以立即阻止已知的黑名单 IP 地址,还可以阻止包含一些恶意内容的请求。

mod_security 包含大量现成的规则集,您可以从网上下载更多规则集和/或创建自己的规则。将其视为 HTTP 流量的 SpamAssassin。

根据您的需要,mod_security 可能对您来说有点过头了,但可能是fail2ban一个更好的解决方案。查看 mod_security 并自行决定。

答案4

正如其他人所建议的,您可以使用 fail2ban、mod_security、mod_evasive,甚至将它们重定向到另一台主机(最后一种方式毫无意义,因为您会浪费资源)。

我的方法有点不同 - 我通常会限制 IP 每秒可以与特定端口建立的最大连接数。例如,我将每个 IP 每秒的连接数设置为大约 20-30 个:

iptables -p tcp --dport 80 -m connlimit --connlimit-above 20 -j DROP

因此,如果有人对您的服务器进行攻击,这将有助于阻止它。我还建议使用 fail2ban,因为它是您能找到的最好的工具。它可以解析您向其发送的几乎所有类型的日志,并且您可以自定义 fail2ban 将对滥用者执行的操作。

PS您还可以查看我对类似 DoS/DDoS 问题的回答这里这或许能对你有帮助。

相关内容