Мониторинг ssh логинов в zabbix
Заголовок немного кривоватый получился, не придумал, как правильно сформулировать. Суть в том, что я хочу мониторить с помощью zabbix удаленные подключения к серверам по ssh. Заббикс будет хранить у себя записи лога с информацией о ssh подключении, а в случае необходимости, отправлять об успешных входах оповещения.
Содержание:
- 1 Введение
- 2 Шаблон для мониторинга за SSH подключениями
- 3 Заключение
Введение
Все будет сделано очень просто. Я буду мониторить системный log файл, который содержит информацию о ssh подключениях. В rpm дистрибутивах, в частности, в Centos это /var/log/secure. В deb дистрибутивах Debian/Ubuntu это /var/log/auth.log.
Вначале у меня была идея хранить полностью этот лог в zabbix для разбора каких-то инцидентов на сервере. Это может быть актуально, если у вас нет централизованного сбора логов в каком-то отдельном месте. Потом передумал, так как если у вас используется стандартный ssh порт 22, то лог подключений по ssh будет огромного размера. Хранить его полностью в zabbix — забивать понапрасну базу данных. В итоге решил хранить только информацию об успешных авторизациях.
Если сервером управляете только вы, то отправлять оповещения об успешных авторизациях, скорее всего нет смысла. Если несколько человек, то можно настроить проверку подключений кого-то конкретного, либо всех пользователей. Это уже на ваше усмотрение. Я в конце приведу готовый шаблон.
Все будет сделано с использованием штатного функционала zabbix. На хостах не нужно ничего настраивать, кроме выдачи прав на чтение к лог-файлу группе zabbix. Так что придется немного пожертвовать локальной политикой безопасности. По-умолчанию, системный лог не может читать никто, кроме рута. Исправляем это в Centos:
# chgrp zabbix /var/log/secure
# chmod 640 /var/log/secure
и то же самое делаем в Debian/Ubuntu
# chgrp zabbix /var/log/auth.log
# chmod 640 /var/log/auth.log
На хосте все готово. Все остальное делаем на сервере мониторинга.
Если у вас еще нет своего сервера для мониторинга, то рекомендую материалы на эту тему. Для тех, кто предпочитает систему CentOS:
- Установка CentOS 7.
- Настройка CentOS 7.
- Установка и настройка zabbix сервера.
То же самое на Debian 9, если предпочитаете его:
- Установка Debian 9.
- Базовая настройка Debian 9.
- Установка и настройка zabbix на debian.
Шаблон для мониторинга за SSH подключениями
Я подготовил простой шаблон, который состоит из:
- Элемента данных SSH auth, с ключом log[/var/log/secure,»^.*sshd.*(Accepted|closed).*»,,,,,] и типом данных — Журнал (лог)
- Триггера с условием {SSH Auth:log[/var/log/secure,»^.*sshd.*(Accepted|closed).*»,,,,,].str(Accepted,#1)}=1, который ищет в элементе данных строку Accepted и срабатывает, если ее находит.
На практике это все выглядит так. Когда вы подключаетесь по ssh на сервер, в zabbix приходит следующая информация.
Если включен триггер, то на почту получите уведомление, где сразу в тексте уведомления будет видно пользователя и адрес, с которого он подключился к серверу. Это удобно.
После того, как пользователь завершит свой сеанс, получите еще одно уведомление.
Данный шаблон просто небольшая заготовка. Условия триггеров, собираемые элементы лога вы можете сами настраивать так, как вам хочется. Можно по аналогии мониторить другие логи.
Скачиваем шаблон для версии 3.4 тут ssh-auth.xml. С другими версиями не проверял.
Заключение
Пару слов о мониторинге логов. Для парсинга лога используется регулярное выражение. В данном случае такое: ^.*sshd.*(Accepted|closed).* В это условие попадают все строки, где присутствует слово sshd и обязательно одно из Aceepted или closed. Если будете менять условия парсинга, или возьмете вообще другой лог, то нужно будет подготовить другое регулярное выражение.
- Сервер терминалов тормозит
- Сервер терминалов на Windows 10
- Аудит логинов с записью в файл с помощью vbs скрипта
- Group Policy inaccessible
- Перенос контейнеров закрытых ключей и сертификатов CryptoPro
- Терминальный сервер на windows 7 sp1, 2 различных способа
- Мониторинг Synology в Zabbix
- Установка Proxmox в Debian на raid 1
- Установка и настройка Zabbix 3.0 на CentOS 7
- Установка и настройка Zabbix 3.2 на CentOS 7