Snort 内联模式传递数据包,但它们永远不会到达目的地

Snort inline mode passes packets, but they never reach destination

我运行正在在线模式 (afpacket) 中 snort,这是我的设置。

**VM1** (eth0: 10.0.10.20/24)
          ^
          |
          |
          v
(eth0: 10.0.10.10/24)
**Snort** 
(eth1: 10.0.20.10/24) 
          ^
          |
          |
          v
(eth0: 10.0.20.20/24) **VM2**

我 运行 snort 使用这个命令:

sudo snort -Q -c /etc/snort/snort.conf -i eth0:eth1 -A console

我的 snort.conf 有以下几行:

config daq: afpacket
config daq_dir: /usr/local/lib/daq/
config daq_mode: inline
config policy_mode: inline
config daq_var: buffer_size_mb=128

我的 local.rules 文件有一条规则:

pass icmp any any -> any any (msg:"received icmp ping"; GID:1; sid:10000001; rev:001; classtype:icmp-event;)

现在,当 VM1 ping VM2(路由已在两台机器中设置)时,我可以看到 Snort 将数据包从 eth0 传递到 eth1(eth1 的 TX 计数器已更新)。但是,数据包不会离开 Snort 运行ning 所在的 VM,也不会到达 VM2。 我不知道为什么会这样。使用拖放操作时,VM1 得到 "destination unreachable",所以我认为 Snort 是 运行ning 很好。但问题似乎与运行 Snort 的虚拟机的主机网络有关 运行ning.

知道为什么会这样吗?

谢谢,

afpacket DAQ 模块似乎几乎不可能有 "true" 内联模式。我改用 NFQueue,一切都很顺利。