为什么我的 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_LOG
。 reference
看起来 brew 在 /usr/local/etc/snort
下安装了一些默认的 snort 配置文件,但我不认为这些对我有影响,因为我正在使用 -c
开关来提供 用户配置文件。
免责声明: 这是我第一次使用 snort,所以很明显我遗漏了一些东西。非常感谢任何帮助。
TL;DR
使用 tcpdump
、snort
、tshark
或 Wireshark 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
...
我运行正在使用 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_LOG
。 reference
看起来 brew 在 /usr/local/etc/snort
下安装了一些默认的 snort 配置文件,但我不认为这些对我有影响,因为我正在使用 -c
开关来提供 用户配置文件。
免责声明: 这是我第一次使用 snort,所以很明显我遗漏了一些东西。非常感谢任何帮助。
TL;DR
使用 tcpdump
、snort
、tshark
或 Wireshark 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
...