使用iptables阻止特定的udp数据包

时间:2013-05-11 11:44:00

标签: networking udp iptables rtp

Is it possible to block specific udp packet using iptables?

enter image description here

例如我想阻止包含 bd 65 的数据包,如第3行所示,即RTP数据包的序列号

2 个答案:

答案 0 :(得分:1)

是的,iptables“u32”模块允许您对给定偏移量的位/字节值采取操作(即使使用可变长度标头)。语法非常难看,但它会完成工作。搜索“iptables u32”,你会发现细节&实例

该行看起来像这样:

... -m u32 --u32 "44&0xFFFF=0xBD65" -j DROP

(从偏移量44开始获取一个4字节的块,使用0xFFFF获取,与0xBD65进行比较)

答案 1 :(得分:0)

Iptables无法根据其有效负载[1]来阻止数据包。

您需要深度数据包检测(DPI)才能过滤此类数据包。

我从来没有使用它,但似乎http://l7-filter.clearfoundation.com/可以帮助你。

注意:DPI可能会降低吞吐量。而且,在某些方面存在很多法律限制......

[1]:您可以要求iptables阻止匹配字符串的数据包(try:iptables -m string --help)