我有这个 iptables 规则来限制每个 ip 的连接,我需要编辑这个规则来覆盖所有tcp/udp 端口
sudo iptables -N tcpsyn
sudo iptables -A INPUT -i eth0 -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -j tcpsyn
sudo iptables -A tcpsyn -p tcp --dport 80 -m limit --limit 5/second --limit-burst 40 -j RETURN
sudo iptables -A tcpsyn -p tcp --dport 80 -j DROP
iptables -I INPUT -p tcp --dport 80 \
-m connlimit --connlimit-above 40 --connlimit-mask 40 -j DROP
答案1
--dport
简单的从命令中删除
例子
sudo iptables -D tcpsyn -p tcp --dport 80 -m limit --limit 5/second --limit-burst 40 -j RETURN
然后添加规则
sudo iptables -N tcpsyn
sudo iptables -A INPUT -i eth0 -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -j tcpsyn
sudo iptables -A tcpsyn -p tcp -m limit --limit 5/second --limit-burst 40 -j RETURN
sudo iptables -A tcpsyn -p tcp -j DROP
iptables -I INPUT -m connlimit --connlimit-above 40 --connlimit-mask 40 -j DROP
UDP
没有tcpsyn
简单添加同时连接数。您可以创建新链
sudo iptables -N udp
然后将规则添加到链中
sudo iptables -A udp -p udp -m limit --limit 5/second --limit-burst 40 -j RETURN
sudo iptables -A udp -p udp -j DROP
應該是工作。
编辑1
允许特定 IP 的规则
iptables -I INPUT 1 -s xxx.xxx.xxx.xxx -j ACCEPT
允许特定 IP 访问特定端口的规则
iptables -A INPUT -s XXX.XXX.XXX.XXX -m state --state NEW -m tcp -p tcp --dport 33332 -j ACCEPT
允许访问特定端口的规则
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 33332 -j ACCEPT
一条规则实现更多端口
iptables -A INPUT -i eth0 -p tcp -m multiport --dports 22,80,443 -m state --state NEW,ESTABLISHED -j ACCEPT
-A
表示追加或添加最后一条规则。IPtables 从顶部到末尾,在匹配到第一条规则时停止。您可以使用iptables -I INPUT XX
XX
数字将规则放入链中。