我正在评估(香草)OSSEC+(不是 Wazuh)。如果我正确理解文档,所有特定于规则的配置都必须在服务器上完成,这听起来很合理,因为我不想更改每个代理的配置,并且可能的攻击者将无法操纵它。
之后,我希望服务器上所述配置的更改会以某种方式反映在代理上。但在我的情况下,这似乎不会发生。
对于一个测试,我想实现一个 crontab 检查。因此,如果 root 用户的 crontab 发生更改,我想收到有关此的通知。
根据文档,我
/var/ossec/etc/ossec.conf
在服务器上添加了以下内容:
<localfile>
<log_format>full_command</log_format>
<command>crontab -u root -l</command>
<frequency>30</frequency>
</localfile>
以及以下内容/var/ossec/rules/local_rules.xml
(也在服务器上)
<rule id="500002" level="7">
<if_sid>530</if_sid>
<match>ossec: output: 'crontab</match>
<check_diff />
<description>Crontab for user has changed!.</description>
</rule>
之后,我重新启动了服务器和代理。
现在因为服务器也在监视自己,所以我可以验证此配置在原则上是否正常工作,因为如果我更改服务器上的 crontab,我确实会收到所需的通知。
但这不会发生在代理身上。在stackoverflow上的其他问题/答案之后,我尝试添加
logcollector.remote_commands=1
到/var/ossec/etc/local_internal_options.conf
(在代理上)
并多次重新启动代理。
当我查看 (agent) 时,我可以看到代理正在做某事,
/var/ossec/logs/ossec.log
并且确实看到它执行了一些其他命令,但不是我配置的命令。
我究竟做错了什么?尽管文档告诉我,我是否必须将每个配置添加到服务器和每个代理?
PS。如果我/var/ossec/etc/ossec.conf
在代理上添加命令配置,它确实有效。