Is it possible to block specific udp packet using iptables?
例如我想阻止包含 bd 65
的数据包,如第3行所示,即RTP数据包的序列号
答案 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)