gpt4 book ai didi

networking - Netfilter_queue 是否只提供控制包

转载 作者:可可西里 更新时间:2023-11-01 02:52:15 30 4
gpt4 key购买 nike

我正在做一个提供拦截能力的项目来自和进入 Linux 机器的网络连接在网络连接生命周期的各个阶段。

这些阶段包括以下内容:

  1. 就在建立出站网络连接之前 - 即发送第一个 SYN 数据包时。
  2. 在建立出站网络连接之后。
  3. 就在连接终止之后。
  4. 建立入站连接时 - 即从外部接收到第一个 SYN 数据包时。

对于上述要求,我正在评估 netfilter_queue 以获得用户空间中的数据包,然后决定判决是否允许或丢弃数据包。

我主要关心的是,一旦我完成了netfilter_queue 注册后,我将开始获取所有数据包。但我只对控制包感兴趣,不希望数据包被发送到用户空间。

所以,我的问题是 - 是否有任何现有的方法可以告诉netfilter_queue 内核模块只发送控制包而不发送数据包?另外,是否有可能得到通知连接的建立和终止?

如果没有现成的方法来实现上述目标,那么它会成为感觉修改 libnfnetfilter_queue 和 netfilter_queue 内核模块根据配置模式集仅提供控制数据包,即引入 NFQNL_COPY_CONTROL_PACKET 用于仅复制控制到用户空间的数据包?

抱歉,如果我的问题看起来很幼稚,因为我仍在探索 netfilter_queue。

我也在 netfilter 邮件列表上发布了同样的问题,但到目前为止没有得到回复:(

感谢所有的帮助。

高拉夫

最佳答案

你需要制定一个 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

关于networking - Netfilter_queue 是否只提供控制包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19158110/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com