我希望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配置选项乍一看似乎很有用,但事实并非如此.使用samhainrc中的IgnoreMissing = / root / somefile,行为没有变化.似乎此选项适用于预计稍后会丢失的文件 – 如果文件曾经存在,则会抑制警报,但现在不会,例如,如果自动进程删除过期的文件.
虽然/ root / somefile显然是在这种情况下组成的,但是一个不存在的文件突然开始存在的例子是文件/home/someuser/.ssh/authorized_keys以前不存在但是突然确实存在 – 这个可能是恶意用户利用某些内容来删除后门,允许他们以shell用户身份登录.这是我想要提醒的事情.
可以使用dir = /home/someuser/.ssh来监视用户的.ssh文件夹中的所有更改,但这没有用处:如果用户在其帐户中使用SSH是正常的,则他们的.ssh / known_hosts文件可能改变,他们可能会更改他们的ssh_config等,我不希望被这些人提醒.因此,除了一些白名单文件外,我不想监视整个目录;我希望不受监控的目录与特定的关键文件分开.
解决方法
如果我正确理解,你需要监视dir中的所有文件,除了一些文件或子目录:
您可以尝试下一个:
[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