为什么我的 Snort 日志是空的?

Why are my Snort logs empty?

我运行正在使用 macOS Sierra 10.12.3

$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.12.3
BuildVersion:   16D32

我已经使用 homebrew

安装了 snort
$ brew install snort
$ brew ls --versions snort
snort 2.9.9.0

我正在 运行ning snort 并使用 user 配置文件、-s 系统日志开关和 tcpdump 文件

$ sudo snort -c /etc/snort/snort.conf -s -r tcpdump.pcap

我的 /etc/snort/snort.conf 文件具有以下 输出 设置:

output alert_syslog: LOG_AUTH LOG_ALERT

当我执行时,在 /var/log/snort/snort.log.1489953549

处创建了一个空白文件

我知道我的规则有效,因为如果我以 fast

的警报模式执行 snort
$ sudo snort -c /etc/snort/snort.conf -A fast -r tcpdump.pcap

创建了一个新的空白/var/log/snort/snort.log.1489954258,但也创建了一个/var/log/snort/alert日志文件,其中包含正确的警报输出。

由于权限原因,我已经看到 others 运行 进入这个问题,但我不认为这是我的问题,因为我 运行 正在哼哼 sudo 并且它能够很好地写入 alert 日志。

据我所知,我也没有 $NO_PACKET_LOGreference

看起来 brew 在 /usr/local/etc/snort 下安装了一些默认的 snort 配置文件,但我不认为这些对我有影响,因为我正在使用 -c 开关来提供 用户配置文件。

免责声明: 这是我第一次使用 snort,所以很明显我遗漏了一些东西。非常感谢任何帮助。

TL;DR
使用 tcpdumpsnorttsharkWireshark to read snort log files (how to view snort log files)

$ sudo tcpdump -r snort.log.1489953549 

我的 日志文件实际上从未为空(注意文件大小 ls

$ ls -ltr /var/log/snort/
-rw-------  1 root  admin   56018718 Mar 19 15:03 snort.log.1489954258
-rw-------  1 root  admin   56018718 Mar 19 15:11 snort.log.1489953549
-rw-r--r--  1 root  admin   70202224 Mar 19 15:11 alert

必须使用正确的应用程序读取 Snort 日志文件

这是什么类型的文件?

$ sudo file snort.log.1489953549
snort.log.1489953549: tcpdump capture file (little-endian) - version 2.4 (Ethernet, capture length 1514)

tcpdump读取文件

$ sudo tcpdump -r snort.log.1489954258
06:54:16.654692 IP 192.168.5.81.amt-blc-port > 100.100.100.212.6667: Flags [P.], seq 1304973037:1304973067, ack 1425084530, win 8011, options [nop,nop,TS val 14215752 ecr 2196036272], length 30
...