Подключение с помощью SNMP-коллектора

Этот раздел содержит информацию о работе с SNMP.
Рекомендуется использовать протокол SNMPv3, поскольку он является более безопасным по сравнению с предыдущими версиями — SNMPv1 и SNMPv2c.
Более высокая безопасность SNMPv3 по сравнению с предыдущими версиями обеспечивается возможностями аутентификации.

Полезная информация

SNMP основан на модели менеджера (центральный сборщик информации), в нашем случае это Сервер SNMP Trap, и агентов, расположенных в разных удаленных местах.

Работа агентов состоит в том, чтобы собирать различные фрагменты информации из их местоположения. Они также могут сообщать информацию, которую они только что получили внутри себя, например, небольшие системные сигналы тревоги. Их задача состоит в том, чтобы сообщить об этом менеджеру и, в конечном итоге, собрать всю информацию в одном месте.

Далее необходимо понять по какому принципу осуществить взаимодействие этих компонентов между собой.

Способ, при котором SNMP-менеджер и агенты общаются друг с другом, традиционно осуществляется через асинхронные сообщения, но некоторые системы вместо этого могут использовать обмен сообщениями с запросом, или, иначе говоря, синхронными сообщениями.

В KOMRAD реализовано сразу 2 этих подхода:

  1. Traps (асинхронное взаимодействие)

  2. Polling (синхронное взаимодействие)

SNMP Traps

Обычно SNMP является асинхронным, это означает, что ваши агенты будут отправлять сообщения всякий раз, когда происходит что-то критическое, это называется SNMP-trap (SNMP-ловушки). Но менеджер не будет запрашивать информацию по какому-либо расписанию, поэтому если вы ничего не получаете от агента, то вы не знаете: означает ли это, что все в порядке, или, что один из агентов находится не в сети. При этом у вас нет способов проверить это.

SNMP Poll

В последнее время некоторые SNMP-устройства стали использовать метод запроса вместо отправки SNMP-trap.

Можно настроить свою SNMP-систему так, чтобы ваши агенты не отправляли к менеджеру сообщение (SNMP-trap) всякий раз, когда что-то происходит, а вместо этого бы ожидали запроса от менеджера, который поступает через равные промежутки времени. Это называется циклом запроса и означает то, что менеджер отправляет запросы вашему агенту, например, каждые 30 секунд.

Как можно заметить, этот метод заменяет некоторую срочность на периодичность. А именно: если агент находится не в сети, то он не сможет ответить на следующий запрос, поэтому вы будете знать, что что-то пошло не так.

Итог

SNMP Poll позволяет узнать, когда агент находится в автономном режиме, но некоторые тревоги могут ждать до нового цикла запроса прежде, чем станет о них известно. Лучший вариант - это использовать гибридную схему и за счет этого получать лучшее из обоих методов.

Подключение нового SNMP-коллектора

Предварительные условия:

Для установки SNMP-коллектора на определенный узел, необходимо:

  1. На узле создать директорию, в которую необходимо переместить deb-пакет komrad-snmp-collector*.deb из дистрибутива KOMRAD

  2. Установить из папки komrad-snmp-collector командой:

    sudo apt install ./komrad-snmp-collector*.deb
  3. Открыть файл komrad-snmp-collector.yaml командой:

    sudo nano /etc/echelon/komrad/komrad-snmp-collector.yaml
  4. Отредактировать параметр bus-url, задав IP-адрес сервера KOMRAD:

    bus:
      servers:
      - nats://IP_ KOMRAD:3490
  5. Сохранить файл и перезагрузить snmp-collector командой:

    sudo systemctl restart komrad-snmp-collector.service
  6. Новый SNMP-коллектор отобразится в списке коллекторов в веб-интерфейсе

Подключение новых источников событий

Расположение: Администрирование → Настройки коллекторов → Коллекторы → SNMP

Требования для SNMPv1 и SNMPv2c

SNMPv1 и SNMPv2c очень похожи по своей конфигурации. Администратор настраивает поле, известное как строка сообщества (community string), которая является строкой аутентификации (т.е. паролем), необходимой Серверу SNMP для получения данных от агентов.

Стандартные строки сообщества

Использование широко известных паролей, таких как private и public, в качестве строки сообщества SNMP позволяет злоумышленнику легко получить неавторизованный доступ к устройству. Вам нужно исключить использование таких паролей.

Требования для SNMPv3

SNMPv3 более безопасен, поскольку он позволяет администратору устанавливать имя пользователя, пароль проверки подлинности, алгоритм проверки подлинности, алгоритм конфиденциальности и пароль конфиденциальности. Все это необходимо правильно ввести в настройках SNMP-коллектора в KOMRAD, чтобы получить доступ к информации о маршрутизаторе/устройствах.

Устаревшие версии SNMP

Протоколы SNMPv1 и SNMPv2c передают данные в открытом виде. Вам нужно отключить устаревшие версии SNMP там, где это возможно.

Защита соединения

Более высокая безопасность SNMPv3 по сравнению с предыдущими версиями обеспечивается возможностями аутентификации и защиту соединения. Для SNMPv3 вам нужно установить защиту соединения и осуществить настройку пользователя.

Подключение с использованием SNMP Traps

Действия:

  1. Кликнуть на нужный коллектор, а затем нажать на кнопку «Редактировать»

  2. Нажать кнопку «Редактировать»:

    • При необходимости можно задать название коллектора

    • Порт, куда будут приходить ловушки, иначе говоря, порт на котором запускать сервер SNMP Traps

    • Протокол - tcp или udp

    • Версия - версия протокола SNMP

    • Community (для протоколов v1 и v2c) – строка имени сообщества источника SNMP

    • Настройки пользователя (для протокола v3) - параметр, при котором SNMPv3 проверяет, что события пришли из надежного источника, а также будут защищаться MD5 или SHA:

      • Имя пользователя - Имя пользователя для входящих SNMPv3 соединений

      • Пароль - пароль для входящих SNMPv3 соединений

      • Протокол настроек пользователя - протокол пользовательских настроек для входящих SNMPv3 соединений. Может принимать значения: SHA, SHA224, SHA256, SHA384, SHA512, MD5

      • Защита соединения - параметр, включить защиту для входящих SNMPv3 соединений:

        • Протокол защиты соединения - протокол защиты для входящих SNMPv3 соединений. Может принимать значения: DES, AES, AES192, AES192C, AES256, AES256C

        • Пароль для защиты соединения - пароль защиты трафика для входящих SNMPv3 соединений

    • Имя пользователя (для протокола v3) - имя пользователя для входящих SNMPv3 соединений

    • Маппинг OID для сервера SNMP traps - указать правила именования для OID из SNMP traps в формате OID:EventFieldName, разделитель - запятые. Например, '.1.2.3:Foo.Bar,.1.2.3.4:ECS.Network.Bytes'

    • Фильтрация входящих соединений по IP - включить фильтрацию входящих соединений по списку IP адресов

    • Способ фильтрации по IP - либо разрешить, либо запретить

  3. Сохранить

Подключение с использованием SNMP Poll

Действия:

  1. Кликнуть на коллектор, на вкладке «Источники» нажать на кнопку «Добавить». Справа появится форма создания нового источника для SNMP-коллектора

  2. Задайть параметры подключения к источнику:

    • Актив - Адрес IP устройства SNMP. Может быть выбран из списков активов Сканер-ВС.

    • Протокол - tcp или udp

    • Порт – порт, на котором функционирует устройство SNMP

    • Версия протокола - версия протокола SNMP, поддерживаемая агентом

    • Community (для протоколов v1 и v2c) – строка имени сообщества источника SNMP

    • Настройки пользователя (для протокола v3) - параметр, при котором SNMPv3 проверяет, что события пришли из надежного источника, а также будут защищаться MD5 или SHA:

      • Пользователь - имя пользователя SNMP-устройства

      • Пароль - пароль SNMP-устройства

      • Протокол настроек пользователя - протокол пользовательских настроек для подключения к SNMP-устройству. Может принимать значения: SHA, SHA224, SHA256, SHA384, SHA512, MD5

      • Защита соединения - включить или отключить защиту соединения при передаче данных с SNMP-устройства:

        • Протокол защиты соединения - протокол защиты для SNMPv3 соединений. Может принимать значения: DES, AES, AES192, AES192C, AES256, AES256C

        • Кодовое слово - парольная фраза для защиты передачи данных

    • Пользователь (для протокола v3) - значение SNMP Context Name согласно документации на устройство SNMP

    • Имя контекста (для протокола v3) - имя пользователя для входящих SNMPv3 соединений

    • Идентификатор контекста (для протокола v3) - значение SNMP Context Engine ID согласно документации на устройство SNMP

    • Расписание запросов – интервал, с которым будут собираться события с источника

    • Маппинг OID для сервера SNMP traps - правила маппинга OID в поля события. Можно опционально указывать в формате OID:ПолеСобытия через запятую. Например: .1.2.3:User.Data

    • Сохранять информацию об устройстве в каждом событии - сохранять в каждом событии ИБ системную информацию об агенте. Если true работа в данном режиме существенно увеличивает потребление дискового пространства в SIEM

    • Get - список OID через запятую, по которым будут собираться данные

    • Walk - список OID для которых будет проводится попытка SNMP Walk, сканирования всех нижележащих узлов OID

    • Максимальное число повторений при snmpwalk - Ограничивает число извлекаемых значений для всех повторяющихся OID. Если равно нулю - безлимитное

    • Число повторений при ошибках сбора - Максимальное число повторений сканирования значения. Если равно 0 - безлимитное

    • Таймаут запроса - максимальный интервал ожидания ответа от устройства. Если равен нулю - агент не будет разрывать соединение в случае зависания запроса

    • Запретить SNMP Bulk (для протоколов v2c и v3) - отключить пакетный обход (метод GETBULK) устройств SNMP v2 и v3.

  3. Сохранить

Удаление

Удалить snmp-коллектор можно с помощью команды:

sudo dpkg -P komrad-snmp-collector