15. Служба snmp

SNMP (Simple Network Management Protocol) – протокол для взаимодействия с сетевыми устройствами.

В ПАК “Фортикс” служба snmp предназначена для удаленного мониторинга состояния системы. Данная служба позволяет другим узлам сети получать информацию об устройстве и автоматически отправляет уведомления о некоторых событиях на другие устройства.

Поддерживаются следующие версии протоколов:

  • SNMPv1;

  • SNMPv2;

  • SNMPv2c;

  • SNMPv3.

15.1. Базовая настройка

Настройка службы snmp осуществляется на следующем уровне конфигурации:

[edit service snmp]

Для активации службы применяется команда:

[edit service snmp]
# set enable

По указанной команде запущенная служба по умолчанию прослушивает 161 порт и ожидает UDP-соединение на всех доступных IPv4-адресах.

Для прекращения работы службы применяется команда:

[edit service snmp]
# del enable

Служба поддерживает несколько типов протоколов: TCP, UDP, DTLSUDP и TLSTCP. DTLSUDP (Datagram Transport Layer Security/User Datagram Protocol) и TLSTCP (Transport Layer Security/Transmission Control Protocol) используются для безопасной передачи данных и обеспечивают конфиденциальность, целостность и подлинность сообщений SNMP, защищая от перехвата, изменения и подмены данных. Данные протоколы используются при настройке службы с поддержкой SNMPv3. Информация о работе службы доступна в системном журнале.

Для увеличения количества записываемых в журнал сообщений применяется команда:

[edit service snmp]
# set log dump

Для определения IPv4- или IPv6-адреса, на котором запускается служба, и типа протокола и/или порта для данного адреса применяется команда:

[edit service snmp]
# set listen ipv4|ipv6 address <address> [port <port-number>] [proto udp|tcp|dtlsudp|tlstcp]

где

  • ipv4|ipv6 – уровень конфигурации IPv4/IPv6;

  • <address> – IPv4-адрес в формате A.B.C.D или IPv6-адрес в формате A:B:...:H в зависимости от уровня конфигурации;

  • <port-number> – число от 1 до 65535;

  • udp|tcp|dtlsudp|tlstcp – тип протокола.

15.1.1. Настройка информации о системе

Для указания контакта администратора системы применяется команда:

[edit service snmp]
# set system contact <contact>

где <contact> – произвольная строка.

Для указания краткого описания системы применяется команда:

[edit service snmp]
# set system description <system-description>

где <system-description> – произвольная строка.

Для указания местоположения системы применяется команда:

[edit service snmp]
# set system location <system-location>

где <system-location> – произвольная строка.

Для указания имени системы применяется команда:

[edit service snmp]
# set system name <system-name>

где <system-name> – произвольная строка.

15.1.2. Настройка SNMPv3

В архитектуре SNMPv3 ПАК “Фортикс” для защиты сообщений используется модель защиты на основе SNMPv3-пользователей (USM). В USM применяется концепция общего SNMPv3-пользователя, для которого в системах агента и менеджера настраиваются параметры защиты (уровни защиты, протоколы идентификации и защиты данных, ключи). Для сообщений, отправляемых с использованием USM, обеспечивается более высокий уровень защиты по сравнению с сообщениями, отправляемыми с использованием модели защиты на основе сообществ, которая предполагает передачу незашифрованных паролей с возможностью их просмотра.

Предупреждение

Имя SNMPv3-пользователя никак не связано с именем учётной записи администратора, поэтому для работы SNMPv3 необходимо выполнить отдельные настройки для SNMPv3-пользователей.

15.1.2.1. Настройка SNMPv3 engineID

Для ответа на запросы SNMPv3 необходимо определить уникальный идентификатор (engineID). В случае рекомендуемого подхода данный идентификатор определяется автоматически с использованием двух достаточно непредсказуемых значений — случайного числа и текущего времени в секундах. В ПАК “Фортикс” также возможно определить engineID другими способами.

Для определения значения engineID на основе первого IPv4-адреса применяется команда:

[edit service snmp]
# set system engine-id ipv4

Для определения значения engineID на основе первого IPv6-адреса применяется команда:

[edit service snmp]
# set system engine-id ipv6

Для определения значения engineID на основе мак-адреса указанного интерфейса применяется команда:

[edit service snmp]
# set system engine-id mac <interface-name>

где <interface-name> – имя существующего интерфейса.

Для определения значения engineID вручную применяется команда:

[edit service snmp]
# set system engine-id id <engine-id>

где <engine-id> – строка от 5 до 32 октетов в шестнадцатеричном формате, начинающаяся с 0x (например, 0x11223344AA).

15.1.2.2. Настройка SNMPv3-пользователей

В ПАК “Фортикс” для работы SNMPv3 используется модель безопасности USM (User Security Model, на основе пользователей), обеспечивающая защиту данных на нескольких этапах:

  • аутентификация: обеспечивает проверку подлинности отправителя и получателя данных (поддерживаются алгоритмы аутентификации HMAC-MD5 и HMAC-SHA);

  • шифрование: обеспечивает конфиденциальность передаваемых данных (поддерживаются алгоритмы шифрования: AES и DES);

  • управление ключами: обеспечивает генерацию и распределение ключей для аутентификации и шифрования.

USM предусматривает 3 уровня безопасности:

  • без аутентификации и шифрования;

  • с использованием только аутентификации;

  • с использованием аутентификации и шифрования.

Таким образом, для применения пользователей SNMPv3 на основе USM необходимо их создание и, при необходимости, настройка аутентификации и шифрования. Данные пользователи в дальнейшем применимы при настройках правил доступа и нотификаций для версии SNMPv3.

Для создания пользователя применяется команда:

[edit service snmp]
# set user <user-name>

где <user-name> – строка.

По данной команде создаётся пользователь с указанным именем без настроек аутентификации и шифрования.

Для настройки аутентификации пользователя необходимо указать алгоритм и ключ аутентификации с помощью команды:

[edit service snmp]
# set user <user-name> auth md5|sha key <auth-key>

где

  • <user-name> – имя существующего пользователя;

  • md5|sha – алгоритм аутентификации;

  • <auth-key> – строка.

Для настройки аутентификации и шифрования пользователя необходимо дополнительно к настройкам аутентификации указать алгоритм и ключ шифрования с помощью команды:

[edit service snmp]
# set user <user-name> priv aes|des key <priv-key>

где

  • <user-name> – имя существующего пользователя;

  • aes|des – алгоритм шифрования;

  • <priv-key> – строка.

Дополнительно, для идентификации SNMPv3-пользователя возможно указание его собственного engineID с помощью команды:

[edit service snmp]
# set user <user-name> engine-id <user-engine-id>

где

  • <user-name> – имя существующего пользователя;

  • <user-engine-id> – строка от 5 до 32 октетов в шестнадцатеричном формате, начинающаяся с 0x (например, 0x11223344AA).

Указанное в команде значение используется для отправки SNMPv3-уведомлений.

15.2. Настройка правил доступа

Для определения сообщества правила доступа, агентам и менеджерам которого настраивается полный доступ к информации о системе по протоколу SNMPv1/SNMPv2, применяется команда:

[edit service snmp]
# set access community <community-name> [address <address>]

где

  • <community-name> – строка;

  • <address> – диапазон IPv4- или IPv6-адресов в формате A.B.C.D/mask или A:B:...:H/mask.

По умолчания данная команда обеспечивает доступ к полному дереву OID для указанных сообществ независимо от того, откуда были отправлены запросы. Параметр address используется для настройки доступа конкретных источников запросов.

Для определения пользователя правила доступа, для которого настраивается полный доступ к информации о системе по протоколу SNMPv3, применяется команда:

[edit service snmp]
# set access user <user-name>

где <user-name> – имя существующего SNMPv3-пользователя.

Данная команда обеспечивает доступ к полному дереву OID для указанных пользователей независимо от того, откуда были отправлены запросы.

Для ограничения доступа к некоторой информации возможно расширение правил доступа при их настройке с помощью модели на основе видов VACM (View Access Control Model). В ПАК “Фортикс” VACM представляет собой списки (представления), содержащие информацию, доступ к которой разрешён или запрещён при запросе к узлу. Для настройки доступа с помощью VACM необходимо создать именованный список, содержащий необходимую информацию, а затем применить список к правилу доступа.

Для создания списка (представления) и добавления необходимой информации в него применяется команда:

[edit service snmp]
# set view <view-name> excluded|included <oid>

где

  • <view-name> – строка;

  • excluded|included – политика доступа к информации;

  • <oid> – поддерево OID, содержащее информацию для указанной политики (строка).

Для применения списка к сообществу правила доступа, агентам и менеджерам которого настраивается доступ к информации о системе по протоколу SNMPv1,SNMPv2, применяется команда:

[edit service snmp]
# set access community <community-name> address <address> view <view-name>

где

  • <community-name> – строка;

  • <address> – диапазон IPv4- или IPv6-адресов в формате A.B.C.D/mask или A:B:...:H/mask;

  • <view-name> – имя существующего списка (представления).

Для применения списка к пользователю правилу доступа, для которого настраивается доступ к информации о системе по протоколу SNMPv3, используется команда:

[edit service snmp]
# set access user <user-name> view <view-name>

где

  • <user-name> – имя существующего SNMPv3-пользователя;

  • <view-name> – имя существующего списка (представления).

15.3. Настройка уведомлений

Служба snmp поддерживает отправку уведомлений (нотификаций) другим узлам об изменениях состояния системы.

Для настройки отправки уведомлений версии SNMPv1 или SNMPv2 необходимо указать имя сообщества и адрес для отправки уведомлений, при этом по умолчанию используется порт 162, транспортный протокол UDP и версия уведомлений v2c. Для изменения параметров по умолчанию при настройке уведомления дополнительно указываются номер порта, тип (версия) уведомления и транспортный протокол.

Для настройки уведомлений версии SNMPv1/SNMPv2 применяется команда:

[edit service snmp]
# set notify community <community-name> [type v1|v2|v2c port <port-number> proto tcp|udp] address <address>

где

  • <community-name> – имя существующего сообщества;

  • <address> – IPv4-адрес в формате A.B.C.D или IPv6-адрес в формате A:B:...:H;

  • <port-number> – число от 1 до 65535;

  • tcp|udp – тип транспортного протокола;

  • v1|v2|v2c – тип (версия) уведомления.

Для настройки SNMPv3-уведомлений необходимо указать имя настроенного SNMPv3-пользователя и адрес для отправки, при этом по умолчанию используется порт 162, транспортный протокол UDP и версия нотификаций inform. Для изменения параметров по умолчанию при настройке уведомлений указывается номер порта, тип уведомления и транспортный протокол.

Для настройки SNMPv3-уведомлений применяется команда:

[edit service snmp]
# set notify user <user-name> [type trap|inform port <port-number> proto tcp|udp] address <address>

где

  • <user-name> – имя существующего SNMPv3-пользователя;

  • <address> – IPv4-адрес в формате A.B.C.D или IPv6-адрес в формате A:B:...:H;

  • <port-number> – число от 1 до 65535;

  • tcp|udp – тип транспортного протокола;

  • trap|inform – тип уведомления.

Некоторые уведомления (такие как запуск, остановка службы) отправляются автоматически.

Для настройки отправки уведомлений о включении/отключении интерфейса (с указанной частотой опроса интерфейсов для отслеживания состояния) применяется команда:

[edit service snmp]
# set trap iface [freq <freq-value>]

где <freq-value> – число секунд от 1 до 3600.

Для настройки отправки уведомлений при неудачной аутентификации SNMP-клиента применяется команда:

[edit service snmp]
# set trap auth