iptables 用户定义链不起作用

iptables 用户定义链不起作用

我正在使用带有用户定义链的 iptables 测试对出站 IP 的速率限制。到目前为止,我只能让它与进入我服务器的入站流量一起工作。我似乎无法限制出站速率。我想将从我的服务器到某个 IP 的所有 udp 流量限制为每秒 1 个数据包。以下是我运行的规则:

#iptables -N udp-flood
#iptables -A OUTPUT -d 192.168.10.100/32 -p udp -j udp-flood
#iptables -A udp-flood -d 192.168.10.100/32 -p udp -m limit --limit 1/s -j RETURN
#iptables -A udp-flood -j DROP

以下是iptables --list的相关部分:

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination             
udp-flood  udp  --  anywhere             192.168.10.100    

Chain udp-flood (1 references)
target     prot opt source               destination         
RETURN     udp  --  anywhere             192.168.10.100      limit:   avg 1/sec burst 5 
DROP       all  --  anywhere             anywhere       

这是我的 iptables 文件:

*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [6005:743055]
:udp-flood - [0:0]
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 53 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 53 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 5666 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -p udp -m udp --dport 33434:33523 -j REJECT --reject-with icmp-port-unreachable
-A INPUT -j DROP
-A OUTPUT -d 192.168.10.100/32 -p udp -j udp-flood
-A udp-flood -d 192.168.10.100/32 -p udp -m limit --limit 1/sec -j   RETURN
-A udp-flood -j DROP
COMMIT

我可以确认数据包正在命中默认输出链“接受”,但是...它不应该命中第一个输出规则,然后将其跳转到我的用户定义链,然后限制速率并丢弃其他所有内容吗?我在这里遗漏了什么?

我的 iptables 版本是 RHEL 6.7 上的 1.4.7

相关内容