iptables 无法将包转发到 NFQ

iptables 无法将包转发到 NFQ

我在iptables中设置了以下规则:

sudo iptables -I INPUT -i eth0 -p tcp -s 192.168.37.184 -j NFQUEUE
sudo iptables -I OUTPUT -p tcp --dport 3306 -j NFQUEUE

我想要做的是将所有 Mysql 流量数据转发到 NFQ,并希望在 Suricata 中检测这些数据,但这些 iptable 规则无法按预期工作,仅部分数据NFQ 进入 Suricata(或者只有部分数据进入 NFQ)。但是当我设置以下 iptables 时:

sudo iptables -I INPUT -j NFQUEUE
sudo iptables -I OUTPUT -j NFQUEUE

这很有效,所有的包都进入 NFQ 并且都被 Suricata 检测到,但是这个 iptable 规则将所有流量转发到 NFQ,而这不是我想要的。

我的问题是如何设置具体的 iptables 规则仅有的适用于Mysql协议吗?

答案1

检查您是否已加载 NFQ 内核模块:

lsmod | grep nfnetlink_queue

检查数据包是否与 iptables 规则匹配

sudo iptables -vn -L

要仅使用 MySQL 的 Suricata 目标,请执行以下操作:

sudo iptables -I INPUT -p tcp --dport 3306 -j NFQUEUE
sudo iptables -I OUTPUT -p tcp --sport 3306 -j NFQUEUE

相关内容