【发布时间】:2013-10-03 11:31:52
【问题描述】:
我正在做一个提供拦截能力的项目 源自和进入 Linux 机器的网络连接 在网络连接生命周期的各个阶段。
这些阶段包括:
- 就在建立出站网络连接之前 - 即发送第一个 SYN 数据包时。
- 就在出站网络连接建立之后。
- 就在连接终止之后。
- 建立入站连接时 - 即从外部接收到第一个 SYN 数据包时。
对于上述要求,我正在评估 netfilter_queue 以获得 用户空间中的数据包,然后决定是否要 允许或丢弃数据包。
我主要关心的是,一旦我完成了 netfilter_queue 注册,我将开始获取所有数据包。但 我只对控制包感兴趣,不希望数据包 被发送到用户空间。
所以,我的问题是 - 是否有任何现有的方法来告诉 netfilter_queue 内核模块只发送控制包而不发送 数据包?另外,是否有可能得到通知 连接的建立和终止?
如果没有现成的方法来实现上述目标,那么它会让 修改 libnfnetfilter_queue 和 netfilter_queue 内核模块的意义 根据配置模式集仅提供控制数据包, 即引入 NFQNL_COPY_CONTROL_PACKET 仅用于复制控制 数据包到用户空间?
对不起,如果我的问题看起来很幼稚,因为我仍在探索 netfilter_queue。
我也在netfilter邮件列表上发布了同样的问题,但到目前为止没有得到回复:(
感谢大家的帮助。
高拉夫
【问题讨论】:
标签: networking tcp linux-kernel netfilter