我在 /etc/ufw/before.rules 中使用这些规则
# Limit to 20 concurrent connections on port 80 per IP
-A ufw-before-input -p tcp --syn --dport 80 -m connlimit --connlimit-above 20 -j DROP
-A ufw-before-input -p tcp --syn --dport 443 -m connlimit --connlimit-above 20 -j DROP
# Limit to 20 connections on port 80 per 2 seconds per IP
-A ufw-before-input -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --set
-A ufw-before-input -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --update --seconds 2 --hitcount 20 -j DROP
-A ufw-before-input -p tcp --dport 443 -i eth0 -m state --state NEW -m recent --set
-A ufw-before-input -p tcp --dport 443 -i eth0 -m state --state NEW -m recent --update --seconds 2 --hitcount 20 -j DROP
我想添加一条规则,强制本地系统 ips 完全不受连接或速率限制。例如,我有许多 cron 作业连接到服务器中的服务器。我需要防止这些作业在同时运行太多时失败。
更新解决方案:我想我只需要在 before.rules 中添加更多规则,而不是在 ufw 命令行中添加更多规则,以覆盖特定 IP 的连接限制。我目前还无法回答自己的问题。
我只是在 connlimit 规则之上添加了这些规则:
-A ufw-before-input -p tcp --dport 80 -s 127.0.0.1 -j ACCEPT
-A ufw-before-input -p tcp --dport 443 -s 127.0.0.1 -j ACCEPT
答案1
我找到了另一个使用 iptables 的解决方案。
iptables命令限制连接数:
iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 20 -j DROP
你可以排除一个IP:
iptables -A INPUT -p tcp --syn --dport 80 -d ! 127.0.0.1 -m connlimit --connlimit-above 20 -j DROP
我希望这对你有帮助。
答案2
首先,您没有提供足够的信息让我们能够给出明确的答复。
其次,这些是 ufw 规则。ufw 是 iptables 的前端,您可以从命令行ufw
或图形界面 gufw 管理规则。
直接使用 iptables 会与您的 ufw 规则冲突,因此请使用一种或另一种工具。
您需要发布您的 ufw 规则。一般来说,您将在发布规则之前允许您的本地网络。您如何管理您的 ufw 规则?命令行?gufw?
对于 ufw,类似这样
sudo ufw allow from 192.168.0.0/24
也可以看看:
http://blog.bodhizazen.com/linux/firewall-ubuntu-servers/
https://help.ubuntu.com/community/UFW
对于 iptableshttp://bodhizazen.com/Tutorials/iptables