gpt4 book ai didi

python - NFQUEUE/IPtables - Suricata 内嵌 Python 拦截 DNS

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:54:08 27 4
gpt4 key购买 nike

这就是我想要实现的目标。我有一个运行 Suricata 的内联 linux 盒子,能够丢弃数据包。这适用于将所有流量放到 NFQUEUE 0 上然后设置 suricata 监听的标准方法。

我正在编写的代码需要能够拦截 NFQUEUE 1 上的 DNS 和 Kerberos 数据包,但它仍然需要使用 Suricata 进行内联扫描,因此需要将数据包传递回 suricata 正在监听的另一个 NFQUEUE,因为我不认为这两个程序可以在同一个队列上充当消费者。

到目前为止,我已经弄清楚如何将 DNS 和 Kerberos 流量截断到不同的 NFQueue,所以 suricata 监听 NFQUEUE 1 而我的程序监听 NFQUEUE 2,我需要的是一种使用 iptables 将流量从一个NFQUEUE 到另一个。

像这样:

iptables -I NFQUEUE --queue-num 1 -j NFQUEUE --queue-num 2

可能有一些我遗漏的后路由,(比如匹配我的原始 DNS/Kerboros 规则的出站数据包被放置到 NFqueue,但这会在我测试时创建一个循环)

感谢您的宝贵时间。

最佳答案

几种方法:

你可以编辑suricata.yaml,在nfq:下,设置mode: routeroute-queue到对应的DNS/Kerberos队列。这将在 Suricata 处理完数据包后传递数据包。

将数据包和队列标记为 1 上的 Suricata(即 -m mark ! --mark 0x1/0x1 -j NFQUEUE --queue-num 1)。

接下来,那些没有被 Suricata 丢弃的数据包被返回到链中并移动到下一个规则,您可以在 2 上排队到 DNS/Kerberos。

在 suricata.yaml 中,您需要编辑 nfq:

mode: repeat
repeat-mark: 1
repeat-mask: 1

干杯。

关于python - NFQUEUE/IPtables - Suricata 内嵌 Python 拦截 DNS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28026439/

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