Создание пользователей в SNMPv3

В этом сценарии продемонстрировано создание пользователей в SNMPv3 путем редактирования файлов /etc/snmpdv3.conf и /etc/clsnmp.conf.

В этом сценарии создается пользователь u1. Пользователь u1 получит идентификационные ключи, но не получит ключей защиты данных (которые можно создать только при наличии установленного набора файлов snmp.crypto). Идентификационные ключи пользователя будут созданы с применением протокола HMAC-MD5. Когда пользователь u1 будет настроен, он будет помещен в группу, после чего для этой группы будут заданы представление и права доступа. И, наконец, для пользователя u1 будут заданы записи прерываний.

Размер каждого из значений в файлах /etc/snmpdv3.conf и /etc/clsnmp.conf ограничен 32 байтами.

Обратите внимание
  • Описанная ниже процедура была протестирована в отдельных версиях AIX. Результаты, которые вы можете получить, в значительной степени зависят от конкретных версии и уровня AIX.

Шаг 1. Создание пользователя

  1. Выберите необходимый протокол защиты: HMAC-MD5 или HMAC-SHA. В данном сценарии применяется протокол HMAC-MD5.
  2. Создайте идентификационные ключи с помощью команды pwtokey. Вывод команды зависит от применяемого протокола идентификации и наличия ключей защиты данных. Эти ключи будут применяться в файлах /etc/snmpdv3.conf и /etc/clsnmp.conf. Ниже приведена команда, введенная для пользователя u1:
    pwtokey -p HMAC-MD5 -u auth любой-пароль 9.3.230.119
    В команде указан IP-адрес системы, в которой работает агент. Здесь можно указать любой пароль, но его следует обязательно сохранить в надежном месте, так как он вам понадобится в будущем. Вывод этой команды выглядит примерно следующим образом:
    Display of 16 byte HMAC-MD5 authKey:          
      63960c12520dc8829d27f7fbaf5a0470            
                                                  
    Display of 16 byte HMAC-MD5 localized authKey:
      b3b6c6306d67e9c6f8e7e664a47ef9a0                        
  3. Войдите в систему как пользователь root и откройте файл /etc/snmpdv3.conf в текстовом редакторе.
  4. Создайте пользователя, добавив запись USM_USER в формате, указанном в этом файле. Вместо значения authKey необходимо указать локальный идентификационный ключ, созданный с помощью команды pwtokey. Запись для пользователя u1 выглядит следующим образом:
    #---------------------------------------------------------------------------
    # записи USM_USER
    #    Определяет пользователя в Модели защиты на основе пользователей (USM).
    # Формат записи:
    #  имя-пользователя ИД-сервера протокол-идентификации идентификационный-ключ
    #  протокол-защиты-данных ключ-защиты-данных тип-ключа тип-памяти
    #
    USM_USER u1 - HMAC-MD5 b3b6c6306d67e9c6f8e7e664a47ef9a0 - - L -
    #----------------------------------------------------------------------------
    • имя-пользователя - имя определяемого пользователя. В данном сценарии имя пользователя - u1.
    • протокол-идентификации указывает протокол, с помощью которого были созданы ключи. В данном случае это протокол HMAC-MD5.
    • идентификационный-ключ - локальный идентификационный ключ, который был создан с помощью команды pwtokey.
    • протокол-защиты-данных и ключ-защиты-данных не указаны, так как в данном сценарии ключи защиты данных не использованы.
    • тип-ключа - L, так как применяется локальный идентификационный ключ.
  5. Сохраните и закройте файл /etc/snmpdv3.conf.
  6. Откройте в текстовом редакторе файл /etc/clsnmp.conf в системе диспетчера SNMP.
  7. Добавьте нового пользователя в соответствии с указанным в файле форматом. Запись для пользователя u1 выглядит следующим образом:
    #----------------------------------------------------------------------------------------------------
    #
    # Формат записей:
    # имя-winSnmp целевой-агент администрация имя пароль контекст уровень-защиты
    # протокол-идентификации идентификационный-ключ протокол-защиты-данных
    # ключ-защиты-данных 
    #
    user1  9.3.230.119  SNMPv3  u1  -  -  AuthNoPriv  HMAC-MD5  63960c12520dc8829d27f7fbaf5a0470  -  -
    #----------------------------------------------------------------------------------------------------
    • имя-winSnmp может быть любым значением. Это значение применяется при создании запросов SNMP с помощью команды clsnmp.
    • целевой-агент - IP-адрес системы, в которой работает агент. Это тот же адрес, который был указан при создании идентификационный ключей.
    • администрация - SNMPv3, так как будут отправляться запросы SNMPv3.
    • имя - имя создаваемого пользователя. В данном сценарии имя пользователя - u1.
    • уровень-защиты - AuthNoPriv, так как для пользователя создаются идентификационные ключи, но не создаются ключи защиты данных (в этой связи значения протокол-защиты-данных и ключ-защиты-данных отсутствуют).
    • протокол-идентификации - протокол идентификации, который был указан при создании идентификационных ключей.
    • идентификационный-ключ - нелокальный ключ, созданный командой pwtokey.
  8. Сохраните и закройте файл /etc/clsnmp.conf.

Шаг 2. Настрйка группы

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

Для добавления пользователя в новую группу внесите новую запись VACM_GROUP в файл /etc/snmpdv3.conf. Запись группы для пользователя u1 выглядит следующим образом:
#--------------------------------------------------------------
# записи VACM_GROUP
#    Задает группу защиты (состоящую из пользователей и подгрупп)
#    для Модели управления доступом на основе представлений (VACM).
# Формат записи:
#  имя-группы модель-защиты имя тип-памяти
VACM_GROUP group1 USM u1 -
#--------------------------------------------------------------
  • имя-группы может быть любым именем. Это имя группы. В данном случае применяется имя group1.
  • модель-защиты - USM. Эта модель применяет функции защиты SNMPv3.
  • имя - имя пользователя. В данном сценарии имя пользователя - u1.

Шаг 3. Настройка представления и прав доступа

Для созданной группы необходимо задать представление и права доступа. Эти права доступа задаются путем добавления в файл /etc/snmpdv3.conf записей VACM_VIEW и VACM_ACCESS.

  1. Выберите представление и права доступа для новой группы.
  2. Добавьте записи VACM_VIEW, определяющие доступные этой группе объекты MIB, в файл /etc/snmpdv3.conf. В этом сценарии группе group1 будут доступны ветви MIB interfaces, tcp, icmp и system. Однако в поддереве MIB system группе group1 будет недоступна переменная MIB sysObjectID.
    #----------------------------------------------------------------
    # записи VACM_VIEW
    #    Задает набор данных MIB, называемый представлением, для
    #    модели управления доступом на основе представлений.
    # Формат записи:
    #  имя-представления поддерево-представления маска-представления
    #  тип-представления тип-памяти
    VACM_VIEW group1View		interfaces	   - included -
    VACM_VIEW group1View		tcp		      - included -
    VACM_VIEW group1View		icmp		      - included -
    VACM_VIEW group1View		system		   - included -
    VACM_VIEW group1View		sysObjectID	   - excluded -
    #----------------------------------------------------------------
    • имя-представления - имя данного представления. В этом сценарии применяется имя представления - group1View.
    • поддерево-представления - поддерево MIB, к которому необходимо предоставить доступ.
    • тип-представления определяет, включены ли заданные ветви MIB в определяемое представление. В данном примере все ветви включены в представление, а переменная MIB sysObjectID, входящая в поддерево system, исключена.
  3. Добавьте запись VACM_ACCESS в файл /etc/snmpdv3.conf, чтобы определить права доступа группы к указанным выше объектам MIB. Группе group1 предоставляются только права на чтение.
    
    #-----------------------------------------------------------------------------------------------------------
    # записи VACM_ACCESS
    #    Определяет права доступа к различным группам защиты
    #    в модели управления доступом на основе представлений.
    # Формат записи:
    # имя-группы префикс-контекста учет-контекста уровень-защиты модель-защиты
    # представление-чтения представление-записи представление-уведомления тип-памяти
    VACM_ACCESS  group1 - - AuthNoPriv USM group1View - group1View -
    #-----------------------------------------------------------------------------------------------------------
    • имя-группы - имя группы. В данном случае применяется имя group1.
    • уровень-защиты - применяемый уровень защиты. В этом сценарии применяются только идентификационные ключи, ключи защиты данных не применяются. В связи с этим задано значение AuthNoPriv.
    • модель-защиты - применяемая модель защиты (SNMPv1, SNMPv2c или USM). В этом сценарии указано значение USM для применения функций защиты SNMPv3.
    • представление-чтения определяет, для каких представлений VACM_VIEW у группы есть права на чтение. В этом сценарии задано представление group1View и группа group1 получает права на чтение для записей group1View VACM_VIEW .
    • представление-записи определяет, для каких представлений VACM_VIEW у группы есть права на запись. В этом сценарии группа group1 не получает прав на запись.
    • представление-уведомления указывает имя представления, применяемого при выполнении прерывания под управлением записи таблицы доступа.
    Прим.: В некоторых случаях для одной группы приходится задавать несколько записей VACM_ACCESS. Если группа состоит из пользователей с разными параметрами идентификации и защиты данных (noAuthNoPriv, AuthNoPriv или AuthPriv), то необходимо задать несколько записей VACM_ACCESS с соответствующими значениями параметра уровень-защиты.

Шаг 4. Задание записей прерываний для созданного пользователя

Записи прерываний в SNMPv3 задаются записями NOTIFY, TARGET_ADDRESS и TARGET_PARAMETERS в файле /etc/snmpdv3.conf. Запись TARGET_ADDRESS указывает целевой адрес для отправки уведомлений, а запись TARGET_PARAMETERS - связывает информацию TARGET_ADDRESS с группой group1.

Запись NOTIFY настроена по умолчанию. Ниже приведена запись NOTIFY:
NOTIFY notify1 traptag trap -
В этом сценарии применяется значение, указанное в записи по умолчанию, - traptag.
  1. Добавьте запись TARGET_ADDRESS, чтобы задать целевой адрес для отправки уведомлений.
    #-------------------------------------------------------------------------------------
    # TARGET_ADDRESS
    #    Определяет адрес и параметры управляющего приложения,
    #    применяемые при отправке уведомлений.
    # Формат записи:
    #  имя-целевого-адреса целевой-домен целевой-адрес список параметры тайм-аут
    #  число-повторов тип-памяти
    #-------------------------------------------------------------------------------------
    TARGET_ADDRESS Target1 UDP 9.3.207.107     traptag trapparms1 - - - 
    
    • имя-целевого-адреса может быть любым именем. В этом сценарии применяется имя Target1.
    • целевой-адрес - IP-адрес системы, в которую следует отправлять уведомления для данной группы.
    • список - имя, заданное в записи NOTIFY. В этом сценарии применяется имя traptag.
    • параметры - может быть любым значением. Здесь указано значение trapparms1, которое будут задано в записи TARGET_PARAMETERS .
  2. Добавьте запись TARGET_PARAMETERS.
    #------------------------------------------------------------------------- 
    # TARGET_PARAMETERS
    #    Задает параметры обработки сообщений и защиты, применяемые при
    #    отправке уведомлений в целевое управляющее приложение.
    # Формат записи:
    #  имя-параметров модель-протокола модель-защиты имя уровень-защиты тип-памяти
    #-------------------------------------------------------------------------
    TARGET_PARAMETERS trapparms1 SNMPv3  USM     u1        AuthNoPriv -
    • имя-параметра - имя, указанное в значении параметры в записи TARGET_ADDRESS; в данном случае - trapparms1.
    • модель-протокола - применяемая версия SNMP.
    • модель-защиты - применяемая модель защиты (SNMPv1, SNMPv3 или USM). В этом сценарии указано значение USM для применения функций защиты SNMPv3.
    • имя - имя пользователя, указанное в записи USM_USER; в данном случае - u1.
    • уровень-защиты - AuthNoPriv, так как применяются только идентификационные ключи.

Шаг 5. Перезапуск демона snmpd

После внесения изменений в файл /etc/snmpdv3.conf остановите и снова запустите демон snmpd.

  1. Введите следующую команду, чтобы остановить работу демона snmpd:
    stopsrc -s snmpd
  2. Введите следующую команду, чтобы запустить демон snmpd:
    startsrc -s snmpd

После этого новые параметры вступят в силу.

Прим.: Простое обновление агента SNMPv3 с помощью команды refresh -s snmpd не действует, в отличие от SNMPv1. После внесения изменений в файле /etc/snmpdv3.conf необходимо перезапустить демон, как показано выше. Функция динамического изменения конфигурации SNMPv3 не позволяет выполнять обновление.

Шаг 6. Проверка конфигурации

Для того чтобы проверить правильность настроенной конфигурации, запустите в диспетчере SNMP следующую команду.
clsnmp -h user1 walk
mib
где mib - поддерево MIB, для которого у пользователя есть прав доступа. В этом сценарии, можно было бы указать interfaces, tcp, icmp или system. Если конфигурация задана правильно, то будет показана информация из указанного поддерева.

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