.. _snmpgl:
Служба snmp
===========
SNMP (Simple Network Management Protocol) – протокол для взаимодействия с сетевыми устройствами.
В ПАК “Фортикс” служба snmp предназначена для удаленного мониторинга состояния системы. Данная служба позволяет другим узлам сети получать информацию об устройстве и автоматически отправляет уведомления о некоторых событиях на другие устройства.
Поддерживаются следующие версии протоколов:
- SNMPv1;
- SNMPv2;
- SNMPv2c;
- SNMPv3.
Базовая настройка
-----------------
Настройка службы 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
[port ] [proto udp|tcp|dtlsudp|tlstcp]
|noindent| где
- ``ipv4|ipv6`` – уровень конфигурации IPv4/IPv6;
- ```` – IPv4-адрес в формате ``A.B.C.D`` или IPv6-адрес в формате ``A:B:...:H`` в зависимости от уровня конфигурации;
- ```` – число от 1 до 65535;
- ``udp|tcp|dtlsudp|tlstcp`` – тип протокола.
Настройка информации о системе
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Для указания контакта администратора системы применяется команда:
::
[edit service snmp]
# set system contact
|noindent| где ```` – произвольная строка.
Для указания краткого описания системы применяется команда:
::
[edit service snmp]
# set system description
|noindent| где ```` – произвольная строка.
Для указания местоположения системы применяется команда:
::
[edit service snmp]
# set system location
|noindent| где ```` – произвольная строка.
Для указания имени системы применяется команда:
::
[edit service snmp]
# set system name
|noindent| где ```` – произвольная строка.
Настройка SNMPv3
~~~~~~~~~~~~~~~~
В архитектуре SNMPv3 ПАК “Фортикс” для защиты сообщений используется модель защиты на основе SNMPv3-пользователей (USM). В USM применяется концепция общего SNMPv3-пользователя, для которого в системах агента и менеджера настраиваются параметры защиты (уровни защиты, протоколы идентификации и защиты данных, ключи). Для сообщений, отправляемых с использованием USM, обеспечивается более высокий уровень защиты по сравнению с сообщениями, отправляемыми с использованием модели защиты на основе сообществ, которая предполагает передачу незашифрованных паролей с возможностью их просмотра.
.. warning:: Имя SNMPv3-пользователя никак не связано с именем учётной записи администратора, поэтому для работы SNMPv3 необходимо выполнить отдельные настройки для SNMPv3-пользователей.
Настройка 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
|noindent| где ```` – имя существующего интерфейса.
Для определения значения ``engineID`` вручную применяется команда:
::
[edit service snmp]
# set system engine-id id
|noindent| где ```` – строка от 5 до 32 октетов в шестнадцатеричном формате, начинающаяся с 0x (например, 0x11223344AA).
Настройка SNMPv3-пользователей
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
В ПАК “Фортикс” для работы SNMPv3 используется модель безопасности USM (User Security Model, на основе пользователей), обеспечивающая защиту данных на нескольких этапах:
- аутентификация: обеспечивает проверку подлинности отправителя и получателя данных (поддерживаются алгоритмы аутентификации HMAC-MD5 и HMAC-SHA);
- шифрование: обеспечивает конфиденциальность передаваемых данных (поддерживаются алгоритмы шифрования: AES и DES);
- управление ключами: обеспечивает генерацию и распределение ключей для аутентификации и шифрования.
USM предусматривает 3 уровня безопасности:
- без аутентификации и шифрования;
- с использованием только аутентификации;
- с использованием аутентификации и шифрования.
Таким образом, для применения пользователей SNMPv3 на основе USM необходимо их создание и, при необходимости, настройка аутентификации и шифрования. Данные пользователи в дальнейшем применимы при настройках правил доступа и нотификаций для версии SNMPv3.
Для создания пользователя применяется команда:
::
[edit service snmp]
# set user
|noindent| где ```` – строка.
По данной команде создаётся пользователь с указанным именем без настроек аутентификации и шифрования.
Для настройки аутентификации пользователя необходимо указать алгоритм и ключ аутентификации с помощью команды:
::
[edit service snmp]
# set user auth md5|sha key
|noindent| где
- ```` – имя существующего пользователя;
- ``md5|sha`` – алгоритм аутентификации;
- ```` – строка.
Для настройки аутентификации и шифрования пользователя необходимо дополнительно к настройкам аутентификации указать алгоритм и ключ шифрования с помощью команды:
::
[edit service snmp]
# set user priv aes|des key
|noindent| где
- ```` – имя существующего пользователя;
- ``aes|des`` – алгоритм шифрования;
- ```` – строка.
Дополнительно, для идентификации SNMPv3-пользователя возможно указание его собственного ``engineID`` с помощью команды:
::
[edit service snmp]
# set user engine-id
|noindent| где
- ```` – имя существующего пользователя;
- ```` – строка от 5 до 32 октетов в шестнадцатеричном формате, начинающаяся с 0x (например, 0x11223344AA).
Указанное в команде значение используется для отправки SNMPv3-уведомлений.
Настройка правил доступа
------------------------
Для определения сообщества правила доступа, агентам и менеджерам которого настраивается полный доступ к информации о системе по протоколу SNMPv1/SNMPv2, применяется команда:
::
[edit service snmp]
# set access community [address ]
|noindent| где
- ```` – строка;
- ```` – диапазон IPv4- или IPv6-адресов в формате ``A.B.C.D/mask`` или ``A:B:...:H/mask``.
По умолчания данная команда обеспечивает доступ к полному дереву OID для указанных сообществ независимо от того, откуда были отправлены запросы. Параметр ``address`` используется для настройки доступа конкретных источников запросов.
Для определения пользователя правила доступа, для которого настраивается полный доступ к информации о системе по протоколу SNMPv3, применяется команда:
::
[edit service snmp]
# set access user
|noindent| где ```` – имя существующего SNMPv3-пользователя.
Данная команда обеспечивает доступ к полному дереву OID для указанных пользователей независимо от того, откуда были отправлены запросы.
Для ограничения доступа к некоторой информации возможно расширение правил доступа при их настройке с помощью модели на основе видов VACM (View Access Control Model). В ПАК “Фортикс” VACM представляет собой списки (представления), содержащие информацию, доступ к которой разрешён или запрещён при запросе к узлу. Для настройки доступа с помощью VACM необходимо создать именованный список, содержащий необходимую информацию, а затем применить список к правилу доступа.
Для создания списка (представления) и добавления необходимой информации в него применяется команда:
::
[edit service snmp]
# set view excluded|included
|noindent| где
- ```` – строка;
- ``excluded|included`` – политика доступа к информации;
- ```` – поддерево OID, содержащее информацию для указанной политики (строка).
Для применения списка к сообществу правила доступа, агентам и менеджерам которого настраивается доступ к информации о системе по протоколу SNMPv1,SNMPv2, применяется команда:
::
[edit service snmp]
# set access community address view
|noindent| где
- ```` – строка;
- ```` – диапазон IPv4- или IPv6-адресов в формате ``A.B.C.D/mask`` или ``A:B:...:H/mask``;
- ```` – имя существующего списка (представления).
Для применения списка к пользователю правилу доступа, для которого настраивается доступ к информации о системе по протоколу SNMPv3, используется команда:
::
[edit service snmp]
# set access user view
|noindent| где
- ```` – имя существующего SNMPv3-пользователя;
- ```` – имя существующего списка (представления).
Настройка уведомлений
---------------------
Служба snmp поддерживает отправку уведомлений (нотификаций) другим узлам об изменениях состояния системы.
Для настройки отправки уведомлений версии SNMPv1 или SNMPv2 необходимо указать имя сообщества и адрес для отправки уведомлений, при этом по умолчанию используется порт 162, транспортный протокол UDP и версия уведомлений v2c. Для изменения параметров по умолчанию при настройке уведомления дополнительно указываются номер порта, тип (версия) уведомления и транспортный протокол.
Для настройки уведомлений версии SNMPv1/SNMPv2 применяется команда:
::
[edit service snmp]
# set notify community [type v1|v2|v2c port proto tcp|udp] address
|noindent| где
- ```` – имя существующего сообщества;
- ```` – IPv4-адрес в формате ``A.B.C.D`` или IPv6-адрес в формате ``A:B:...:H``;
- ```` – число от 1 до 65535;
- ``tcp|udp`` – тип транспортного протокола;
- ``v1|v2|v2c`` – тип (версия) уведомления.
Для настройки SNMPv3-уведомлений необходимо указать имя настроенного SNMPv3-пользователя и адрес для отправки, при этом по умолчанию используется порт 162, транспортный протокол UDP и версия нотификаций inform. Для изменения параметров по умолчанию при настройке уведомлений указывается номер порта, тип уведомления и транспортный протокол.
Для настройки SNMPv3-уведомлений применяется команда:
::
[edit service snmp]
# set notify user [type trap|inform port proto tcp|udp] address
|noindent| где
- ```` – имя существующего SNMPv3-пользователя;
- ```` – IPv4-адрес в формате ``A.B.C.D`` или IPv6-адрес в формате ``A:B:...:H``;
- ```` – число от 1 до 65535;
- ``tcp|udp`` – тип транспортного протокола;
- ``trap|inform`` – тип уведомления.
Некоторые уведомления (такие как запуск, остановка службы) отправляются автоматически.
Для настройки отправки уведомлений о включении/отключении интерфейса (с указанной частотой опроса интерфейсов для отслеживания состояния) применяется команда:
::
[edit service snmp]
# set trap iface [freq ]
|noindent| где ```` – число секунд от 1 до 3600.
Для настройки отправки уведомлений при неудачной аутентификации SNMP-клиента применяется команда:
::
[edit service snmp]
# set trap auth