Snort 没有将警报日志文件发送到系统日志服务器?

Snort 没有将警报日志文件发送到系统日志服务器?

我设置了三台运行 Ubuntu 的虚拟机 - 服务器、客户端和网关。我的任务是在网关上设置 Snort,以监控从客户端到服务器的“攻击”。Snort 应该将日志文件发送到我在服务器上设置的 rsyslog 服务器。我在发送这些日志时遇到了麻烦。

在 snort.conf 文件中,我设置了:

output alert_syslog: LOG_AUTH LOG_ALERT

我刷新了 iptables 并打开了所有内容以进行测试(nmap 显示 514 确实已打开)。我编辑了网关上的 rsyslog.conf 文件并添加了:

*.* @192.168.50.5

在服务器上的 rsyslog.conf 文件中,我添加了:

*.* /var/log/snort.log

并取消注释以下两项:

$ModLoad imudp.so
$UDPServerRun 514

当我运行(eth2 = Client)时:

snort -A console -i eth2 -c /etc/snort/snort.conf

并从客户端 ping 服务器(我有一个 Snort 规则来捕获 ICMP),网关上的 /var/log/snort/snort.log.xxxxxxxxxx 中会创建一个日志文件。但是服务器上什么也没有显示。在 Wireshark 上查看数据包,启动 Snort 时我收到两条 Syslog 消息,退出时又收到两条消息(^C)。AUTHPRIV.INFO 只显示“为用户 root 打开会话”和“为用户 root 关闭会话”:

在此处输入图片描述

为了记录在案,我试图按照此处的教程进行操作:

http://books.google.com/books?id=TPXusCxyKXAC&pg=PA115&lpg=PA115&dq=log+local0+snort.conf&source=bl&ots=PeMZAPE7DF&sig=Q4R5rkbvDZjfwoCOGL7Gy-1gHho&hl=en&sa=X&ei=gYw_VL3iBcHjoAS0j4KQBw&ved=0CFUQ6AEwCQ#v=onepage&q&f=false

有人知道发生了什么事吗?

谢谢您的任何建议。

答案1

我想说的是,如果有关会话打开和关闭的 syslog 消息能够通过,那么 rsyslog 可能正在两端执行其工作(但通过使用 发送到网关上的 syslog 来确认这一点logger)。此外,在网关上创建日志文件这一事实表明,日志消息在网关上被错误处理,而不是在链式处理过程中的后期。

我想确认 snort 确实将 UDP 发送到 syslog。端口 514 上是否有预期的数据包(大概是在网关的环回接口上)?

看起来您可以绕过本地系统日志,直接转到服务器主机:

输出警报系统日志:主机=192.168.50.5:514,LOG_AUTH LOG_ALERT

如果这不吸引人,那么如果您明确将 snort 输出发送到 localhost:514 会发生什么情况?或者发送到该主机上的其他 IP。

是否存在防火墙问题,可能会阻止发往网关端口 514 的数据包?

您重启了 snort 来获取新配置了吗?您认为它正在读取配置文件吗?(尝试使用 明确指定它-c,和/或使用 确认它是您看到的命令行的一部分ps)。

(在某些时候,您会想要限制被归档为 snort 消息的内容,但这不是您当前所陷入的)。

答案2

请注意,Ubuntu Snort 默认使用 LOG_AUTH 功能进行日志记录,因此您需要tail -f /var/log/auth.log而不是/var/log/syslog。这只是一个被这个问题困扰了一段时间的人的留言 :)

相关内容