Samhain 能否监控不存在但将来可能存在的文件?

Samhain 能否监控不存在但将来可能存在的文件?

我希望 Samhain 监控一个文件,例如/root/somefile。此文件目前不存在,但我希望在任何时候创建它时收到通知。

我将其添加到samhainrc

[ReadOnly]
file = /root/somefile

这导致 Samhain 发出以下日志条目:

Oct 18 22:54:04 ip-172-31-24-115 Samhain[17123]: CRIT   :  [2018-10-18T22:54:04+0000] interface=<lstat>, msg=<No such file or directory>, userid=<0>, path=</root/somefile>
Oct 18 22:54:04 ip-172-31-24-115 Samhain[17123]: CRIT   :  [2018-10-18T22:54:04+0000] msg=<POLICY MISSING>, path=</root/somefile>
Oct 18 22:54:19 ip-172-31-24-115 Samhain[17157]: INFO   :  [2018-10-18T22:54:19+0000] msg=<Checking       [ReadOnly]>, path=</root/somefile>
Oct 18 22:54:19 ip-172-31-24-115 Samhain[17157]: NOTICE :  [2018-10-18T22:54:19+0000] msg=<Check failed>, path=</root/somefile>

如果我使用创建此文件echo test > /root/somefile,那么我会不是记录任何违反政策的行为——该文件的添加尚未被注意到。

如何配置 Samhain,以便当创建了之前不存在的相关文件时通知我?


IgnoreMissing配置选项乍一看似乎很有用,但实际上并非如此。在IgnoreMissing = /root/somefilesamhainrc,行为没有任何变化。似乎此选项适用于预计稍后会丢失的文件 - 如果文件曾经存在但现在不存在,例如如果自动化过程删除了过期的文件,它会抑制警报。


虽然/root/somefile在这种情况下显然是编造的,但一个不存在的文件突然开始存在的例子是,如果该文件/home/someuser/.ssh/authorized_keys之前不存在,但后来突然存在 - 这可能是一个恶意用户利用某些东西来放置后门,允许他们以 shell 用户身份登录。这是我想要得到警告的事情。

可以用来dir = /home/someuser/.ssh监控全部用户.ssh文件夹中的更改,但这毫无帮助:如果用户在其帐户中使用 SSH 是正常行为,他们的.ssh/known_hosts文件可能会更改,他们可能会更改他们的ssh_config等,而我不希望被这些警告。因此,除了一些列入白名单的文件外,我不想监控整个目录;除了特定的关键文件外,我想让目录不受监控。

答案1

如果我理解正确的话,您需要监视目录中的所有文件,除了某些文件或子目录:

您可以尝试下一步:

[ReadOnly] 
    #
    dir=/home/someuser/.ssh 
    # 
    [Attributes] 
    # 
    # less restrictive policy for the directory file itself 
    # 
    file=/home/someuser/.ssh 
    # 
    [IgnoreAll] 
    # 
    # exclude these file and directories 
    #
    file=/home/someuser/.ssh/known_hosts
    #dir=-1/etc/calendar
    #

更多信息https://www.la-samhna.de/samhain/manual/all-except.html

相关内容