这很可能是初学者的误解。
系统为:Ubuntu AMD64,14.04.03 LTS;使用默认配置安装了 Snort。
我正在编写一条处理 DNS 响应的 Snort 规则。为了确保一切正常,我编写了以下规则:
alert udp any any -> any any (msg:"UDP"; sid:10000001; rev:001;)
然后我使用-r file.pcap
Snort 来测试我的规则。
我的 pcap 文件包含 4 个数据包:
- DNS 请求 A 记录。
- A 记录的 DNS 响应。
- TXT 记录的 DNS 请求。
- TXT 记录的 DNS 响应。
客户端和服务器均位于同一 /24 网络上。使用默认服务器端 DNS 端口 (53)。
当我针对我的 pcap 运行 Snort 时,它会对请求发出警报,但不对响应发出警报。我甚至尝试过“实时”运行 Snort 并使用它dig
来生成 DNS 请求。相同的行为:对请求发出警报,但不对响应发出警报。
$ snort -A console -q -u snort -g snort -c snort.conf -r dns.pcap
11/05-19:13:00.754320 [**] [1:10000001:1] UDP [**] [Priority: 0] {UDP} 192.168.188.11:35977 -> 192.168.188.10:53
11/05-19:13:15.734932 [**] [1:10000001:1] UDP [**] [Priority: 0] {UDP} 192.168.188.11:50795 -> 192.168.188.10:53
为什么 Snort 没有对响应发出警报?
答案1
按照这个问题,添加-k none
,禁用校验和验证,导致所有四个数据包都被警告。
当读取 pcap 文件时,我不太明白为什么无法计算校验和,但我猜这实际上是一个不同的问题。