如何编辑 iptables 规则以覆盖所有端口?

如何编辑 iptables 规则以覆盖所有端口?

我有这个 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数字将规则放入链中。

相关内容