Я бы хотел, чтобы 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/somefile
в samhainrc
, нет никаких изменений в поведении. Похоже, что этот параметр предназначен для файлов, которые, как ожидается, исчезнут позже - он подавляет предупреждение, если раньше файл существовал, но теперь его нет, например, если автоматизированный процесс удаляет устаревшие файлы.
Хотя /root/somefile
очевидно, в данном случае создается случай, когда несуществующий файл внезапно начинает существовать, если файл /home/someuser/.ssh/authorized_keys
ранее не существовало, но внезапно все же существует - это мог быть злоумышленник, который использовал что-то, чтобы открыть бэкдор, позволяющий ему войти в систему как пользователь оболочки. Это то, о чем я хотел бы знать.
Можно использовать dir = /home/someuser/.ssh
контролировать все изменения в пользователе .ssh
папку, но это бесполезно: если для пользователя нормально использовать SSH в своей учетной записи, их .ssh/known_hosts
файл может измениться, они могут изменить свои ssh_config
и т. д., и я не хочу, чтобы они меня тревожили. Поэтому я не хочу контролировать весь каталог, кроме какого-то файла из белого списка; Я хочу, чтобы каталог не контролировался, за исключением определенных критических файлов.
Если я правильно понимаю, вам нужно отслеживать все файлы в каталоге, кроме некоторых файлов или подкаталогов:
Вы можете попробовать следующее:
[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