- Угрозы под контролем. Превращаем Zabbix в сканер безопасности
- Содержание статьи
- Что такое Zabbix
- Что такое Vulners
- Zabbix Threat Control
- Устанавливаем
- Сервер Zabbix
- Агенты
- Плагины ZTC
- Сервер ZTC
- Linux для хакера
- Заключение
- Zabbix + Android
- sysMonDash-android
- Andzabbix Lite
- Zwidget lite
- M7 Mobile is a mobile interface for the Zabbix 3.2
- Tabbix
- Moobix for Zabbix
- Zabbix — мессенджеры
- Добавить комментарий Отменить ответ
- Система мониторинга Zabbix для начинающих
- Обзор
- Архитектура Zabbix
- Основные возможности
- Стандартные функции системы
- Проверки
- Проверка через пользовательский параметр
- Пример
- Триггеры
- Некоторые функции триггеров
- Прогнозирование
- Действие
- Параметры действий
- Операции
- Параметры операций
- Низкоуровневое обнаружение
- Что можно обнаружить
- Дополнительные типы
- Прокси
- Особенности веб-интерфейса
- Версия 4.4
- Основные нововведения в Zabbix 4.4
- Заключение
Угрозы под контролем. Превращаем Zabbix в сканер безопасности
Содержание статьи
Что такое Zabbix
Zabbix — одна из самых популярных систем мониторинга. Она состоит из двух компонентов: zabbix-сервера и zabbix-агентов. Агенты собирают информацию с операционных систем, на которых установлены, и отправляют ее на сервер. Он же, в свою очередь, выдает ее админам в читабельном виде либо отправляет алармы на почту. Чтобы подытожить и дать понять обширность функциональности, скажу, что оповещения о сбоях можно принимать даже в Telegram.
Что такое Vulners
Vulners — своего рода поисковик на тему ИБ. Он черпает информацию из более чем 100 различных баз и источников. В нем можно найти уязвимости, баги, эксплоиты, дырявые сервисы, плагины для OpenVAS, NESSUS, Burp Suite, правила для IPS/IDS и многое другое. Хорошая сортировка выдачи результатов и отличный API. В общем, если кто-то не знаком, — обязательно надо. Незаменимый инструмент хакера и ИБ-шника.
Zabbix Threat Control
Zabbix Threat Control — плагин, который позволяет превратить систему мониторинга Zabbix в сканер безопасности с участием системы Vulners. После установки необходимых пакетов и сбора информации он покажет все серверы в сети, которые подвержены тем или иным уязвимостям из-за неустановленных патчей или старых версий пакетов. Другими словами, основная задача Zabbix Threat Control — это контроль версионных уязвимостей. Он не сможет проверить настройки конфигурационных файлов или предупредить об ошибке в коде.
Работает все это следующим образом. Zabbix с помощью агентов собирает с машин информацию о названии и версии ОС, формирует список установленных пакетов и их версий, а затем отдает это все ZTC. Плагин, получив всю информацию, пересылает ее в Vulners. Последний сопоставляет все данные с базой уязвимостей и багов и возвращает результат в Zabbix Threat Control. Информация обрабатывается, отправляется Zabbix-серверу, после чего конечный пользователь может ознакомиться в дашборде со списком уязвимостей на машинах.
Информация об уязвимостях выводится в виде проблем. Проблему можно либо игнорировать (просто закрыв ее, не подтверждая), и никакого действия не последует, либо подтвердить, после чего агентам отправится fix-команда, которая устранит уязвимость. Фиксить проблемы может только привилегированный пользователь. Какая команда будет выполнена и на каких серверах, можно будет увидеть в дашборде.
На данный момент Zabbix Threat Control требует Zabbix версии не ниже 3.4 и способен работать только с Linux, но, возможно, будут разработаны пакеты под другие ОС (в том числе активное сетевое оборудование).
Устанавливаем
Рассмотрю установку на Debian. Она проходит в несколько этапов:
- Установка сервера Zabbix и агентов на отслеживаемые хосты.
- Установка плагинов ZTC на отслеживаемые хосты и их настройка.
- Установка ZTC на сервер.
Сервер Zabbix
Для начала устанавливаем сервер и клиент MySQL (можешь с этим не согласиться, но до 20–25 серверов можно поставить MySQL, если больше — лучше установить PostgreSQL):
И устанавливаем сервер Zabbix:
Подключаемся к MySQL:
Дальше необходимо создать базу данных и пользователя (пароль устанавливаем свой):
Добавляем таблицы в базу:
Открываем в редакторе конфигурационный файл /etc/zabbix/zabbix_server.conf и в нем прописываем значение DBPassword (пароль к базе данных, указанный при ее создании). В том же каталоге, в файле apache.conf следует указать параметр date.timezone (к примеру, Europe/Moscow).
На этом установка Zabbix окончена. Перегружаем сервис, заходим в веб-интерфейс http://SERVER/zabbix и следуем простым подсказкам. Дефолтный логин/пароль для входа — Admin / zabbix .
Агенты
Чтобы установить Zabbix-агенты на отлеживаемые хосты, достаточно инсталлировать пакет zabbix-agent (он будет запущен автоматически):
Далее открываем конфигурационный файл /etc/zabbix/zabbix_agentd.conf и добавляем в него следующие строки (адрес и имя сервера):
Плагины ZTC
Для установки плагинов на хосты необходимо добавить репозитории ZTC. Это делается следующим образом:
Затем устанавливаем плагин:
Далее идем в файл /etc/zabbix/zabbix_agentd.conf и меняем следующие значения:
Для того чтобы пользователь Zabbix смог обновлять (и только обновлять) пакеты, необходимо добавить следующую строку в файл /etc/sudoers :
Не забываем установить плагин также на сервер. После внесенных изменений агент необходимо перезапустить:
Сервер ZTC
Возвращаемся на сервер Zabbix. Как и в случае с агентами, добавляем репозитории ZTC:
Далее устанавливаем зависимости:
На этом моменте стоит пояснить, что в более ранних версиях плагины zabbix-sender и zabbix-get поставлялись сразу с zabbix-server, а сейчас их приходится ставить отдельно. Продолжаем:
Теперь открываем браузер, идем на vulners.com и заводим учетную запись. Заходим в аккаунт и на вкладке API KEYS генерируем ключ.
Возвращаемся к серверу, открываем в редакторе файл /opt/monitoring/zabbix-threat-control/ztc_config.py :
Linux для хакера
Вносим свои данные. Необходимо указать логин и пароль пользователя Zabbix, его адрес и fqdn. Если порт не дефолтный, его тоже меняем.
После настройки конфигурационного файла запускаем /opt/monitoring/zabbix-threat-control/ztc_create.py :
Скрипт создает необходимые хост-группу, шаблон, экшен и свой дашборд. В выводе будет указан URL дашборда ZTC и время, в которое будет запускаться сканирование на уязвимости. Запустит сканирование исполнение скрипта /opt/monitoring/zabbix-threat-control/ztc.py (при необходимости можно запустить вручную).
После проделанной работы открываем новый дашборд ZTC, переходим в шаблоны и ищем там Vulners OS-Report. В нем в разделе Hosts необходимо указать, переместив их в левый textbox, те серверы, которые требуют сканирования. Ждем, пока программа сканирует хосты, и получаем результаты. Работает он очень быстро (1000 хостов сканируется примерно за 30 минут).
По окончании сканирования получаем примерно такой вывод результатов:
На диаграмме красным выделены критические уязвимости, имеющие высокую оценку CVSS. Все данные удобно отсортированы в нескольких панелях: по уязвимым пакетам, по уязвимостям и по серверам. Соответственно, и исправить можно либо все уязвимости на конкретно выбранном сервере, либо определенную уязвимость на всех серверах.
Информацию по уязвимостям на серверах, как и о командах для устранения проблем, можно получить в подсказках, которые активируются при наведении на проблему. Там же будут представлены ссылки на vulners.com, где можно ознакомиться с проблемами ИБ, касающимися данных серверов.
Для установки обновлений необходимо просто подтвердить проблему. Особенно удобно это будет для тех, кто хочет устранить одну из уязвимостей на всех серверах, если нет систем управления типа Ansible.
Заключение
Zabbix Threat Control не сможет заменить профессиональные системы, поскольку не имеет таких богатых возможностей. Однако он быстрый, бесплатный и хорошо вписывается в существующую инфраструктуру.
Стоит учитывать, что это лишь первый выпуск плагина, поэтому не исключены баги и недоработки. Однако в Telegram есть группа @ztcsupport, в которой можно получить поддержку и обратную связь.
Источник
Zabbix + Android
Практически все клиенты, отображающие состояние сервера Zabbix, а также способные менять его настройки основаны на API Zabbix
API содержит по крайней мере четыре метода: get , create , update и delete для получения, создания, обновления и удаления данных соответственно.
sysMonDash-android
Поддержка давно заброшена.
Ссылка на github
Andzabbix Lite
Приложение заброшено. Последняя версия была 4 года назад. С актуальными версиями заббикса оно не работает.
Ссылка на GooglePlay
Zwidget lite
После ввода данных сервера, мне так и не удалось, что больше увидеть. Последнее обновление датируется 2016 годом. Не стоит время на изучение этого приложения.
Mobile frontend for the Zabbix enterprise monitoring system.
6 лет не обновлялась. Не стоит время тратить.
M7 Mobile is a mobile interface for the Zabbix 3.2
Вводить адрес сервера нужно без http(s), учётная запись администратора.
У меня всё заработало, интерфейс симпатичный. Экран “Availabitty” не отображается.
Tabbix
Simple lightweight Android application for Zabbix. Check active triggers, hosts and detailed host and trigger informations.
Функций мало. Нет уведомлений. Все узлы у одной куче, нет группировки.
Moobix for Zabbix
Features: List of active triggers, Acknowledge triggers events, Notifications, List of Groups, List of Hosts, Dashboard
Zabbix — мессенджеры
Добавить комментарий Отменить ответ
Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.
Источник
Система мониторинга Zabbix для начинающих
Содержание:
Zabbix — это универсальный инструмент мониторинга, способный отслеживать динамику работы серверов и сетевого оборудования, быстро реагировать на внештатные ситуации и предупреждать возможные проблемы с нагрузкой. Система мониторинга Zabbix может собирать статистику в указанной рабочей среде и действовать в определенных случаях заданным образом.
В этой обзорной статье расскажем об основных принципах и ключевых инструментах, на которых построена универсальная система мониторинга Zabbix.
Обзор
Систему создал Алексей Владышев на языке Perl. Впоследствии проект подвергся серьезным изменением, которые затронули и архитектуру. Zabbix переписали на C и PHP. Открытый исходный код появился в 2001 г., а уже через три года выпустили первую стабильную версию.
Веб-интерфейс Zabbix написан на PHP. Для хранения данных используются MySQL, Oracle, PostgreSQL, SQLite или IBM DB2.
На данный момент доступна система Zabbix 4.4. Скачать ее можно на официальном сайте. Там же можно найти официальные курсы и вебинары для начинающих пользователей системы.
Далее рассмотрим, из чего состоит и как работает технология Zabbix в доступном формате «для чайников».
Архитектура Zabbix
У Zabbix есть 4 основных инструмента, с помощью которых можно мониторить определенную рабочую среду и собирать о ней полный пакет данных для оптимизации работы.
- Сервер — ядро, хранящее в себе все данные системы, включая статистические, оперативные и конфигурацию. Дистанционно управляет сетевыми сервисами, оповещает администратора о существующих проблемах с оборудованием, находящимся под наблюдением.
- Прокси — сервис, собирающий данные о доступности и производительности устройств, который работает от имени сервера. Все собранные данные сохраняются в буфер и загружаются на сервер. Нужен для распределения нагрузки на сервер. Благодаря этому процессу можно уменьшить нагрузку на процессор и жесткий диск. Для работы прокси Zabbix отдельно нужна база данных.
- Агент — программа (демон), которая активно мониторит и собирает статистику работы локальных ресурсов (накопители, оперативная память, процессор и др.) и приложений.
- Веб-интерфейс — является частью сервера системы и требует для работы веб-сервер. Часто запускается на том же физическом узле, что и Zabbix.
Основные возможности
Функционал включает в себя общие проверки для наиболее распространенных сервисов, в том числе СУБД, SSH, Telnet, VMware, NTP, POP, SMTP, FTP и т.д. Если стандартных настроек системы недостаточно, их можно изменить самостоятельно или же пользоваться дополнением через API.
Стандартные функции системы
- Контроль нагрузки на процессор, касается и отдельных процессов.
- Сбор данных об объеме свободной оперативной и физической памяти.
- Мониторинг активности жесткого диска.
- Мониторинг сетевой активности.
- Пинг для проверки доступности узлов в сети.
Проверки
Для описания системы мониторинга Zabbix существует два ключевых понятия:
- Узлы сети — рабочие устройства и их группы (серверы, рабочие станции, коммутаторы), которые необходимо проверять. С создания и настойки узлов сети обычно начинается практическая работа с Zabbix.
- Элементы данных — набор самостоятельных метрик, по которым происходит сбор данных с узлов сети. Настройка элементов данных производится на вкладке «Элемент данных» или в автоматическом режиме — через подключение шаблона.
Сам Zabbix-агент способен отражать текущее состояние физического сервера, собирая совокупность данных. У него достаточно много метрик. С их помощью можно проверить загруженность ядра (Processor load), время ожидания ресурсов (CPU iowait time), объем системы подкачки (Total swap space) и многое другое.
В Zabbix существует целых 17 способов, дающих возможность собирать информацию. Указанные ниже, входят в число наиболее часто применяемых.
- Zabbix agent (Zabbix-агент) — сервер собирает информацию у агента самостоятельно, подключаясь по определенному интервалу.
- Simple check (Простые проверки) — простые операции, в том числе пинг.
- Zabbix trapper (Zabbix-траппер) — сбор информации с трапперов, представляющих собой мосты между используемыми сервисами и самой системой.
- Zabbix aggregate (Zabbix-комплекс) — процесс, предусматривающий сбор совокупной информации из базы данных.
- SSH agent (SSH-агент) — система подключается по SSH, использует указанные команды.
- Calculate (Вычисление) — проверки, которые система производит, сопоставляя имеющиеся данные, в том числе после предыдущих сборов.
У проверок есть заданные шаблоны (Templates), которые упрощают создание новых. Кроме обычных операций существует возможность регулярно проверять доступность веб-сервера с помощью имитации запросов браузера.
Проверка через пользовательский параметр
Чтобы выполнить проверку через агент, нужно прописать соответствующую команду в конфигурационный файл Zabbix-агента в качестве пользовательского параметра ( UserParameter ). Сделать это можно с помощью выражения следующего вида:
Помимо самой команды, приведенный синтаксис содержит уникальный (в пределах узла сети) ключ элемента данных, который надо придумать самостоятельно и сохранить. В дальнейшем, ключ можно использовать для ссылки на команду, внесенную в пользовательский параметр, при создании элемента данных.
Пример
С помощью данной команды можно настроить агент на постоянное возвращение значения « 1 » для элемента данных с ключем « ping ».
Триггеры
Это логические выражения со значениями FALSE , TRUE и UNKNOWN , которые используются для обработки данных. Их можно создать вручную. Перед использованием триггеры возможно протестировать на произвольных значениях.
У каждого триггера существует уровень серьезности угрозы, который маркируется цветом и передается звуковым оповещением в веб-интерфейсе.
- Не классифицировано (Not classified) — серый.
- Информация (Information) — светло-синий.
- Предупреждение (Warning) — жёлтый.
- Средняя (Average) — оранжевый.
- Высокая (High) — светло-красный.
- Чрезвычайная (Disaster) — красный.
Некоторые функции триггеров
- abschange — абсолютная разница между последним и предпоследним значением (0 — значения равны, 1 — не равны).
- avg — среднее значение за определенный интервал в секундах или количество отсчетов.
- delta — разность между максимумом и минимумом с определенным интервалом или количеством отсчетов.
- change — разница между последним и предпоследним значением.
- count — количество отсчетов, удовлетворяющих критерию.
- date — дата.
- dayofweek — день недели от 1 до 7.
- diff — у параметра есть значения, где 0 — последнее и предпоследнее значения равны, 1 — различаются.
- last — любое (с конца) значение элемента данных.
- max\min — максимум и минимум значений за указанные интервалы или отсчеты.
- now — время в формате UNIX.
- prev — предпоследнее значение.
- sum — сумма значений за указанный интервал или количество отсчетов.
- time — текущее время в формате HHMMSS.
Прогнозирование
Триггеры обладают еще одной важной функцией для мониторинга — прогнозированием. Она предугадывает возможные значения и время их возникновения. Прогноз составляется на основе ранее собранных данных.
Анализируя их, триггер выявляет будущие проблемы, предупреждает администратора о возникшей вероятности. Это дает возможность предотвратить пики нагрузки на оборудование или заканчивающееся место на жестком диске.
Функционал прогнозирования добавили с обновлением системы 3.0, вышедшим в феврале 2016 года.
Действие
Действие (Action) представляет собой заданную реакцию на событие (Event). Действие может устанавливаться автоматически или вручную как для одного из событий, так и для целой группы.
Параметры действий
- Name — имя действия.
- Event source — источник события. Источниками событий служат обнаружение (Discovery Events), авторегистрация (Auto registration Events) или заданный триггер (Trigger Events).
- Enable escalations — разрешение на эскалацию событий.
- Period — период времени для шага эскалации, указывается в секундах.
- Default subject — указывается, кто извещается по умолчанию.
- Default message — стандартный текст сообщения.
- Recovery message — текст уведомления после решения проблемы.
- Recovery subject — субъект, которого извещают после операции.
- Status — статус действия, может быть «активно» и «запрещено».
Для событий, вызванных триггером или обнаружением, есть свои типы условий. Например, «Application» с операторами « = », « like » и « not like » значит, что триггер является частью указанного приложения. Или «Service type» с операторами « = », « »и « > » предусматривает, что обнаруженный сервис совпадает с указанным.
Операции
Пользователь может указать для событий операцию или группу операций.
Параметры операций
- Step — при эскалации событий.
- Operation type — действия на определенном шаге, например, «Send message» или «Execute command».
- Event Source — источник событий.
- Send message to — отдельное сообщение (Single user) или групповое (User group).
- Default message — текст по умолчанию.
- Subject — кого оповещает система.
- Message — текст сообщения.
- Remote command — команда для удаленного управления.
Низкоуровневое обнаружение
Функция Низкоуровневого обнаружения (LLD) автоматически создает элементы и триггеры, которые позволяют отслеживать системы сервера, находящимся под наблюдением. Включение функции происходит через настройку атрибутов, которую можно сделать, пройдя по пути: «Настройка» → «Шаблоны» → «Обнаружение» (вкладка в строке с шаблоном) → вкладки «Правила обнаружения»/«Фильтры».
Что можно обнаружить
- Распространённые OID, используемые SNMP.
- Сетевые интерфейсы.
- Процессоры, их ядра.
- Файловые системы.
- Службы Windows.
- ODBC.
Дополнительные типы
Задать собственные типы низкоуровневого обнаружения возможно с применением формата JSON. Типы проверок, для которых можно указать список портов и интервал для них:
Если хост пропадает или обнаруживается, для события можно привязать любое действие — условия и операцию для них.
Прокси
Функция буферизации через прокси используется в том случае, когда существующая инфраструктура достаточно большая, а выделенный сервер не способен нести такую нагрузку. Прокси выступает промежуточным звеном, которое собирает информацию с агентов в буфер, а после отправляет данные на сервер.
Прокси используется еще в нескольких случаях — если агенты находятся далеко друг от друга или ограничены локальной сетью. Это сказывается на доступности агентов и величине пингов.
Zabbix прокси функционирует как демон. Для его использования обязательно наличие отдельной базы данных.
Особенности веб-интерфейса
Система мониторинга Zabbix располагает удобным веб-интерфейсом, в котором сгруппированы элементы управления. Консоль предусматривает просмотр собранных данных, их настройку. Для безопасности входа и работы осуществляется автоматическое отсоединение через 30 минут пользовательского бездействия.
На главном экране всегда представлена информация о состоянии узлов сети и триггеров.
Пользователю доступны пять функциональных разделов, включая Monitoring («Мониторинг»), Inventory («Инвентарные данные»), Reports («Отчеты»), Configuration («Конфигурация») и Administration («Администрирование»).
В разделе «Конфигурации» можно найти группы хостов. По каждому элементу списка можно посмотреть более подробную информацию, например, последние события и графики данных.
Управлять шаблонами, доступными администратору, можно в соответствующем подразделе — Templates («Шаблоны»).
Версия 4.4
Узнать версию установленного Zabbix сервера можно во время запуске в файле-протоколе.
Основные нововведения в Zabbix 4.4
- Новый Zabbix Agent (zabbix_agent2) создан на языке Go.
- Опции вывода графиков данных.
- Внешние уведомления, система отслеживания ошибок.
- Официальная поддержка TimescaleDB.
- База знаний для триггеров и элементов данных.
- Группировка данных и гистограммы.
- Официальная поддержка платформ, теперь Zabbix работает с SUSE Linux Enterprise Server 15, Debian 10, Raspbian 10, Mac OS/X, RHEL 8, MSI for Windows Agent и др.
Заключение
Zabbix по праву считается одним из самых продвинутых инструментов для удалённого мониторинга аппаратных и программных ресурсов. Система с успехом позволяет решать задачи по отслеживанию сетевой активности и работоспособности серверов, а также предупреждать о потенциально опасных ситуациях. Благодаря встроенным механизмам анализа и прогнозирования, Zabbix может стать основой для создания полноценной стратегии эффективного использования IT-инфрастуктуры в компаниях любого масштаба.
Способности Zabbix ограничены только имеющимися в распоряжении ресурсами. VDS от Eternalhost на SSD-дисках обеспечит системе максимальное быстродействие и возможность мониторить множество узлов в сети.
Источник