.. _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