Я начал использовать Zabbix и вижу, что он выдает оповещения при изменении таких вещей, как /etc/passwd.
Поиск в Google по запросу «оповещение Zabbix при входе в систему root» не дал никаких результатов. Как мне получить оповещение при входе в систему root?
решение1
Вам не следует разрешать входы root вообще, потому что это небезопасно. Вам следует разрешить только входы обычных пользователей, и после входа в систему пользователь может использовать sudo
для выполнения команд как root.
При этом, почему вы проверяете только логины root? Проверка логинов обычных пользователей так же важна. Боты в интернете постоянно выполняют атаки методом подбора для обычных пользователей.
В любом случае, вам нужно проверить /var/log/auth.log
успешные входы SSH. Проверка файлов журнала требует активных проверок агента Zabbix. Поэтому сначала вам нужно убедиться, что активные проверки работают правильно (см.этот пост в блоге).
Во-вторых, пользователь Zabbix (по умолчанию) работает как zabbix
пользователь. Поэтому он не сможет прочитать /var/log/auth.log
, поскольку этот файл доступен для чтения только пользователю root и пользователям в группе adm
. Поэтому вы можете добавить zabbix
пользователя в adm
группу. Это позволяет Zabbix читать множество файлов журналов (источник).
Наконец, вам необходимо создать элемент мониторинга и триггер в веб-интерфейсе Zabbix.
Создать элемент:
Name: SSH successful authentication
Type: Zabbix agent (active)
Key: log[/var/log/auth.log,"Accepted .*",,,skip,\0]
Создайте триггер для этого элемента:
Name: Successful SSH authentication on {HOST.NAME}
Expression: {Template OS Linux - Extra:log[/var/log/auth.log,"Accepted .*",,,skip,\0].strlen()}>0 and {Template OS Linux - Extra:log[/var/log/auth.log,"Accepted .*",,,skip,\0].nodata(5m)}=0
Обратите внимание на Accepted .*
регулярное выражение в элементе. Оно должно соответствовать всем типам аутентификации SSH, будь то аутентификация по паролю или аутентификация по открытому ключу. Конечно, в вашем случае вы можете изменить регулярное выражение, чтобы оно соответствовало только входам от root. Но, как объяснялось ранее, это не имеет смысла с точки зрения безопасности.
Также обратите внимание, что я использовал log[...]
, потому что это приводит к тому, что соответствующая строка журнала, соответствующая регулярному выражению, будет включена в электронное письмо с уведомлением, которое отправит Zabbix. Таким образом, вы можете увидеть в письме, какой пользователь был аутентифицирован.
решение2
Для систем на базе Debian вам необходимо проанализировать /var/log/auth.log
файл следующим образом:
log.count[file,<regexp>,<encoding>,<maxproclines>,<mode>,<maxdelay>,<options>]
https://www.zabbix.com/documentation/current/manual/config/items/itemtypes/zabbix_agent
итак по сути:
log.count[/var/log/auth.log,*root*Accepted,,,skip]