我在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