我正在开展一个提供拦截能力的项目 网络连接源自Linux机器并进入Linux机器 在网络连接生命周期的各个阶段。
这些阶段包括以下内容:
对于上述要求,我正在评估netfilter_queue得到 用户空间中的数据包然后决定判断是否 允许或丢弃数据包。
我主要担心的是,一旦我完成了 netfilter_queue注册,我将开始获取所有数据包。但 我只对控制数据包感兴趣,不想要数据包 被发送到用户空间。
所以,我的问题是 - 有没有现成的方法来告诉 netfilter_queue内核模块只发送控制包而不发送 数据包?此外,是否有可能得到通知 连接建立和终止?
如果没有现成的方法来实现上述目标,那么它会成功吗? 修改libnfnetfilter_queue和netfilter_queue内核模块的意义 根据配置模式设置仅提供控制包, 即引入NFQNL_COPY_CONTROL_PACKET以仅复制控件 数据包到用户空间?
很抱歉,如果我的问题看起来很幼稚,因为我仍在探索netfilter_queue。
我也在netfilter邮件列表上发布了相同的问题,但到目前为止没有回复:(
感谢您的帮助。
拉夫
答案 0 :(得分:1)
您需要制定iptables规则以将某些数据包添加到队列中。您可以制定一个只对所需数据包进行排队的规则。例如:
ip6tables -I INPUT -i eth0 -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j QUEUE
此页面描述了--tcp-flags
选项:http://www.netfilter.org/documentation/HOWTO/packet-filtering-HOWTO-7.html#ss7.3