6.2.3 SNMP-запросы

iDevice ikoon 6.2.3 SNMP-запросы

К недостаткам начальной версии SNMP можно отнести:

  • Проблемы,а связанные с подтверждением Trap-сообщений, поскольку применяется протокол без предварительной установки соединения (UDP)
  • Чрезмерная нагрузка сети, вызванная обменом сообщений между агентами и менеджерами
  • Отсутствие безопасности при аутентификации и возможности шифрования. Аутентификация в протоколах SNMPv1 и SNMPv2 происходит посредством незашифрованного пароля, передающемуся между агентом и менеджером. Таким образом, злонамеренный пользователь может подслушать пароль и позже использовать его для обращения к устройствам и считывая их информации или переконфигурируя их.

 

Рисунок 6‑6. Путь передачи сообщений SNMP (Источник: Learning Materials for Information Technology Professionals (EUCIP-Mat))

Решения этих проблем предложены в версиях протокола SNMPv2 и SNMPv3.

SNMPv2 вводит в использование понятие инфраструктуры управления (SMI), о которой говорилось ранее. Это позволяет лучше структурировать SNMP объекты разными производителями.
С SNMPv2 также появилось понятие управления сетью с распределённой архитектурой, у случае чего в управлении сетью есть более одной единицы, выполняющей обязанности менеджера, что расширяет управление сетью, что, в свою очередь приводит к избыточности (redundancy) управления и более сбалансированному распределению заданий. В SNMPv2 можно применять централизованное управление сетью вместе с распределённым. Существуют системы, способные выполнять роль как агентов, так и менеджеров. На практике это означает то, что агент может не только отвечать на запросы NMS, но и распределять запросы, переданные другим устройствам.

Рисунок 6‑7. Архитектура SNMPv2 (Источник: Learning Materials for Information Technology Professionals (EUCIP-Mat))

NMS может затребовать у агента запросить данные из MIB другой системы. В таком случае распределяет данные другой системы, временно принимая роль менеджера. Обмен сообщений происходит в форме запрос/ответ и протокол с установлением соединения не требуется.

В SNMPv2 определены и новые операции обмена сообщениями: GetBulk, Notification, Inform и report (см. разъяснения сообщений выше).

Рисунок 6‑8. Формат PDU для разных запросов (Источник: Learning Materials for Information Technology Professionals (EUCIP-Mat))

В ответе на сообщения определены коды ошибок, по которым можно узнать о статусе обработки запроса. GetBulk решает проблему передачи больших массивов данных.

В SNMPv3 решены проблемы безопасности, которые были самым слабым местом протокола SNMP с момента его создания. Для этого введены три новых ключевых службы: аутентификация, конфиденциальность и контроль доступа. До появления SNMPv3 протокол SNMP применялся скорее для сбора информации, чем для конфигурирования устройств, поскольку отсутствовали средства безопасности. В SNMPv3 также изменено определение менеджеров и устройств - теперь все участники взаимодействия называются SNMP сущностями (SNMP entities). Каждая сущность содержит движок SNMP (SNMP engine) и одно или более приложение. В связи с этим изменилось и определение всей архитектуры. Это определение позволяет разделить разные части системы SNMP, позволяя тем самым обеспечить безопасность.

Движок SNMPv3 содержит следующие компоненты:

  • Диспетчер (Displatcher) - принимает и передаёт сообщения, распознаёт их версию и передаёт их подсистеме обработки сообщений. Диспетчер также посылает сообщения другим сущностям.
  • Подсистема обработки сообщений (Mеssage Processing Subsystem) подготавливает сообщения к отправке и извлекает данные из принятых сообщений. Может состоять из нескольких модулей обработки сообщений для разных версий протокола.
  • Подсистема безопасности (Security Subsystem) осуществляет аутентификацию и конфиденциальность. Для аутентификации используется либо открытый пароль (SNMPv1 и SNMPv2) или алгоритмы MD5 и SHA. Для обеспечения конфиденциальности применён алгоритм DES шифрования SNMP сообщений.
  • Подсистема контроля доступа (Access Control Subsystem) отвечает за контроль доступа к объектам MIB. Можно настроить, каким пользователям доступны какие объекты, а также какие операции можно с этими объектами выполнять.

Приложения SNMP:

  • Генератор команд (Command Generator) генерирует запросы get,getnext,getbulk и set и обрабатывает ответы. NMS использует это приложение для отправки запросов устройствам.
  • Ответчик команд (Command Responder) принимает запросы генератора команд. В протоколах SNMPv1 и SNMPv2 эту роль исполняет агент, а в протоколе SNMPv3 соответствующая сущность.
  • Отправитель уведомлений (Notification Originator) генерирует SNMP trap и уведомления. Реализован в SNMP-сущности, реализованной в устройстве.
  • Получатель уведомлений (Notification Receiver) получает trap и информационные сообщения. Это приложение реализовано на NMS.
  • Буферный передатчик (Proxy Forwarder) помогает передавать сообщения между сущностями.

Рисунок 6‑9. Архитектура SNMPv3 (Источник: Learning Materials for Information Technology Professionals (EUCIP-Mat))

PDU-сообщение, которое генерирует приложение SNMP, проходит через движок SNMPv3, состоящий из диспетчера, подсистемы обработки сообщений, подсистемы безопасности и подсистемы контроля доступа.

Механизм аутентификации подсистемы безопасности SNMPv3 проверяет аутентичность отправителя принятого сообщения. Этим обеспечивается то, что при передаче сообщение не было изменено, задержано или повторено. Для достижения этой цели SNMP комбинирует хеш-функцию с секретным кодом в соответствии с подходом HMAC (Hashed Message Authentication Code). Для аутентификации создаётся хеш по алгоритму MD5 и SHA1 и с помощью алгоритма HMAC рассчитывается хеш сообщения. Пароль или секретный ключ аутентификации добавляется к данным до вычисления хеш. Секретный ключ должен быть известен получателю и отправителю и должен быть не короче 8 символов.

Для шифрования используется алгоритм CBS-DES и для его осуществления отправитель и получатель должны знать секретный ключ. Ключ хранится в таблице устройства, называемой пользовательской таблицей USM (USM User Table). Последняя содержит всех пользователей, которым разрешён доступ к системе через SNMP. В ней содержатся следующие элементы: имя пользователя, протокол аутентификации, ключ аутентификации, протокол конфиденциальности, ключ конфиденциальности.