iptables 规则提交与特定负面规则匹配的数据包

iptables 规则提交与特定负面规则匹配的数据包

我使用 netfilter_queue 从内核中获取某些数据包并对其进行处理。对于 netfilter 队列,我需要来自特定源的所有数据包except UDP packets with src port 2152 & dst port 2152.

我尝试添加 iptable 规则

iptables -A OUTPUT ! s 192.168.0.3 ! -p udp ! --sport 2905 ! --dport 2905 -j NFQUEUE --queue-num 0

iptables 抛出一个无效参数错误。查询 dmesg,我看到以下错误打印

ip_tables: udp match: only valid for protocol 17

我尝试了以下变体,但抛出了相同的错误。

iptables -A OUTPUT ! s 192.168.0.3 ! -p udp --sport 2905 --dport 2905 -j NFQUEUE --queue-num 0

请您针对我的情况就 iptables 命令的正确用法提供建议。

答案1

如果您创建一个链,将所有内容发送到链中,并对您不希望链处理的任何内容执行 RETURN,那么编写规则可能会容易得多。使用链,您可以稍后添加其他例外情况,而不必制定真正复杂的规则。

iptables -t filter -N out_queue
iptables -t filter -A OUTPUT -j out_queue
iptables -t filter -A out_queue -p udp --sport 2905 -j RETURN
iptables -t filter -A out_queue -p udp --dport 2905 -j RETURN
iptables -t filter -A out_queue -j NFQUEUE --queue-num 0

答案2

! 不应该放在选项后面吗?

iptables -A OUTPUT -s ! 192.168.0.3 -p udp --sport ! 2905 --dport ! 2905 -j NFQUEUE --queue-num 0

答案3

尝试:

iptables -A OUTPUT -s 192.168.0.3 -p udp --sport!2905 --dport!2905 -j NFQUEUE --queue-num 0

相关内容