我们目前在 Windows 上运行了一些 ossec 代理,并对激活的文件进行了实时监控 - 代理站点上的配置如下:
<syscheck>
<!-- Frequency that syscheck is executed - default to every 2 hours -->
<frequency>7200</frequency>
<directories check_all="yes" realtime="yes">D:\path1</directories>
<directories check_all="yes" realtime="yes">D:\path2</directories>
<disabled>no</disabled>
<auto_ignore>no</auto_ignore>
</syscheck>
这基本上是有效的 - 除了只实时报告文件的第一次编辑。同一文件的任何后续更改仅每 7200 秒通过计划扫描报告一次,但第一次编辑后不会触发实时通知。
如果我编辑另一个以前未修改过的文件 - 它会在第一次更改时再次起作用,但之后则不会起作用。
是否有其他设置可以检查/更改/设置,以便可靠地收到文件更改通知?可以查看哪些内容来识别问题?
这有点令人费解...非常感谢您的任何意见。
答案1
答案是:存在某种导致错误的默认值:
- 您必须在代理端请求实时监控作为额外的标志
- 您必须在服务器端禁用 auto_ignore,因为默认为是 -> 意味着忽略初始更新之后来自代理的进一步更新
在调试级别 2 中运行代理时,可以看到所有文件都受到监控,检测到更改并将数据发送到服务器。但服务器默认忽略它们。即使以这种方式记录,这也有点令人困惑/误导!应该注意,在实时标志上也必须更改服务器端 - 这两个设置的相互依赖性并不明显!
令人困惑的是:第一次更改有效,但同一文件的第二次更改无效!就是这样!
答案2
也许是显而易见的,或者是愚蠢的疏忽,但是在代理端添加 path2 后 OSSEC 是否重新启动了?
如果是,ossec.log 是否反映它正在正确监视 path2 目录,即
2017/02/08 00:58:31 ossec-syscheckd: INFO: Directory set for real time monitoring: '/etc'.
2017/02/08 00:58:31 ossec-syscheckd: INFO: Directory set for real time monitoring: '/usr/bin'.
日志可能会提供一些线索或额外的见解。