我的一个网站正在遭受一些 IP 的攻击。我甚至不知道这是否是 DDoS 攻击,我只知道它已经填满了我应用程序的日志超过一天,然后服务器崩溃了,我猜是因为 mysql 内存使用量(我收到了来自 webmin 的自动电子邮件,说 mysql 崩溃了)
我可以访问 Iptables,但我不确定是否希望它填充被阻止的 IP。
我只是想知道在这种情况下最常见的做法是什么,我对服务器管理还比较陌生。
我正在使用 Linux Centos、Apache、Php 和 MySQL
答案1
Fail2Ban(http://www.fail2ban.org/) 可以与 iptables 等防火墙配合使用,监视日志文件并根据各种规则(例如,一定次数的错误密码尝试)自动添加规则以阻止某些 IP。
答案2
如果您找到了发起攻击的 IP 地址,则可以按照步骤阻止该 IP 地址。这是此类情况下常见且有效的做法。之后,请更加仔细地监控服务器,确保没有其他 IP 发起攻击。
如果您发现 IP 表规则难以管理,请使用 CSF。
CSF 是 IPtable 规则的前端。
答案3
根据您的基础设施,有几个选项。您是否使用边缘安全设备,例如硬件防火墙(PIX、ASA、Sonicwall、watchguard、firebox 等)?如果是这样,您可以将 IP 设为黑洞(设置一条规则,将所有数据包发送到某个不存在的子网或蜜罐、/dev/null 等)。您也可以将设备配置为丢弃它们收到的所有内容。
如果您的服务器本身直接位于互联网或 DMZ 中,您可以设置 iptables/ipchains 以删除来自该 IP 组的所有内容。但是,如果它来自僵尸网络,您的问题会更严重一些,因为潜在的 IP 池可能非常大。
答案4
您可以使用 iptables 限制每个 IP 的连接数。
iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 20 -j REJECT --reject-with tcp-reset