这很可能是初学者的误解。
系统为:Ubuntu AMD64、14.04.03 LTS;使用默认配置安装了 Snort。
我正在编写一个处理 DNS 响应的 Snort 规则。为了确保一切正常,我编写了以下规则:
alert udp any any -> any any (msg:"UDP"; sid:10000001; rev:001;)
然后我使用-r file.pcap
with Snort 来测试我的规则。
我的 pcap 文件中有 4 个数据包:
- A 记录的 DNS 请求。
- A 记录的 DNS 响应。
- TXT 记录的 DNS 请求。
- TXT 记录的 DNS 响应。
客户端和服务器都在同一个 /24 网络上。使用默认的服务器端 DNS 端口 (53)。
当我对我的 pcap 运行 Snort 时,它会在请求上发出警报,但不会在响应上发出警报。我什至尝试运行 Snort 'live' 并使用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 不对响应发出警报?
根据这个问题,添加
-k none
会禁用校验和验证,会导致所有四个数据包都收到警报。在读取 pcap 文件时,我不太明白为什么无法计算校验和,但我想这实际上是一个不同的问题。