我正在评估(香草)OSSEC+(不是Wazuh)。如果我正确地理解了文档,那么所有特定于规则的配置都必须在服务器上完成,这听起来非常合理,因为我不想更改每个代理的配置,并且可能的攻击者将无法操纵它。
接下来,我希望服务器上上述配置的更改以某种方式反映在代理上。但这似乎不会发生在我的情况下。
对于一个测试,我想实现crontab检查。因此,如果根用户的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
to/var/ossec/etc/local_internal_options.conf
(在代理上)
并重新启动代理多次。
当我看的时候,我可以看到代理正在做一些事情/var/ossec/logs/ossec.log
(代理)我确实看到它在执行一些其他命令,但不是我配置的那个。
我做错了什么?我是否必须将每个配置添加到服务器和每个代理,尽管文档告诉我不需要这样做?
p。如果我将命令配置添加到代理的/var/ossec/etc/ossec.conf
中,它确实可以工作。
为了从管理器向代理提供配置,您必须使用集中式代理配置,您可以通过将它们添加到每个组的agent.conf
来将配置附加到代理组。
除非另有指定,否则所有代理最初都是default
组的一部分,因此您必须将其添加到管理器上的/var/ossec/etc/shared/default/agent.conf
,以便代理将使用它。
当添加配置到管理器的/var/ossec/etc/ossec.conf
时,这只会影响管理器的操作。