我正在尝试同时配置 WordPress 和 NodeJS 网站,并且我正在使用 apache2 服务器和 ubuntu(20.04) 虚拟机。我成功地在我的计算机上配置了这两个应用程序,但过了一段时间,我开始从我的监控系统收到不寻常的网站关闭通知。当我使用顶部然后我发现有太多任务正在进行,当我更详细地检查事情时,我发现 apache 服务器一次又一次地调用自身,这会给 apache 服务器造成负载,并最终导致网站关闭。
我还检查了我的服务器收到的请求数量,然后我发现我的服务器也收到了来自不同 IP 的大量异常请求。所以,我认为这可能是 DDos 攻击。因此,我终止了我的计算机并为此创建了一台新计算机,但在新计算机上遇到了同样的问题。
我不知道为什么我的机器会发生这种情况。如果有人知道的话请回复。
HTOP输出: htop 输出
Apache 状态输出: Apache 状态输出
IP请求输出: IP 地址请求
答案1
因此,mod_qos 显然没有帮助。有时,网络负载太低,Apache 模块无法有效缓解。
可以尝试使用 iptables 进行更低级别的阻止。
iptables -I INPUT 2 -p tcp -s z.y.z.w -m comment --comment "whitelist ip 1" -j ACCEPT
iptables -I INPUT 2 -p tcp -s z.a.b.c -m comment --comment "whitelist ip 2" -j ACCEPT
iptables -N WEBTHROTTLE
iptables -A WEBTHROTTLE -m recent --set --name WEB --rsource
iptables -A WEBTHROTTLE -m recent --update --seconds 60 --hitcount 200 --name WEB --rsource -j LOG --log-prefix "Anti Web-Bruteforce: " --log-level notice
iptables -A WEBTHROTTLE -m recent --update --seconds 60 --hitcount 200 --name WEB --rsource -j DROP
iptables -I INPUT 4 -i if-entry -p tcp -m tcp --dport 443 -m state --state NEW -j WEBTHROTTLE
这确实要求您已经有一些 INPUT 规则。INPUT 后面的数字是规则顺序中的插入点。该数字后面的所有内容都会向上移动一个数字。在最后一条规则中,您应该用 eth0/ens192 之类的东西替换入口接口。
类似的规则可以在ip6tables上使用。
获取当前规则的列表:
iptables -S INPUT