Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Оглавление



Информация
titleДанная статья применима к:
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7), РУСБ.10015-10
  • Astra Linux Special Edition РУСБ.10015-17
  • Astra Linux Special Edition РУСБ.10015-37 (очередное обновление 7.7)
  • Astra Linux Special Edition РУСБ.10015-03 (очередное обновление 7.6)
  • Astra Linux Special Edition РУСБ.10152-02 (очередное обновление 4.7)
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)
  • Astra Linux Special Edition РУСБ.10015-16 исп. 1
  • Astra Linux Special Edition РУСБ.10015-16 и исп. 2
  • Astra Linux Special Edition РУСБ.10265-01 (очередное обновление 8.1)
  • Astra Linux Common Edition 2.12


Введение

SNMP (англ. - Simple Network Management Protocol — простой протокол сетевого управления) — стандартный интернет-протокол для управления устройствами в IP-сетях на основе протоколов TCP/UDP. К поддерживающим SNMP устройствам относятся маршрутизаторы, коммутаторы, серверы, рабочие станции, принтеры, модемные стойки и другие. Протокол обычно используется в системах сетевого управления для контроля подключённых к сети устройств на предмет условий, которые требуют внимания администратора. SNMP состоит из набора стандартов для сетевого управления, включая протокол прикладного уровня, схему баз данных и набор объектов данных.

При описании протокола используются термины:

MIB (база управленческой информации)текстовый файл с инструкциями по сбору и упорядочению информации. Менеджер SNMP использует информацию из MIB для перевода и интерпретации сообщений перед их отправкой конечному пользователю. Ресурсы, хранящиеся в MIB, называются управляемыми объектами или переменными управления.

Описание стенда

Стенд состоит из двух компьютеров с установленной ОС Astra Linux Special Edition.

Первый компьютер выступает в роли менеджера и ему присвоен IP-адрес: 192.168.1.111

Второй компьютер выступает в роли опрашиваемого агента и ему присвоен IP-адрес: 192.168.1.112

Установка пакетов

Установка SNMP на компьютер в роли менеджера:

Command
languagebash
sudo apt install snmp

Установка SNMPD на компьютер в роли агента (опрашиваемого) :

Command
languagebash
sudo apt install snmpd

Дополнительно можно установить пакет с набором MIB-ов snmp-mibs-downloader выполняющий загрузку MIB-ов. Установка может быть выполнена из репозитория Debian. Для актуальной на момент обновления статьи версии:

  1. При работе с Astra Linux Special Edition РУСБ.10015-01 очередное обновление 1.6 перед установкой пакета snmp-mibs-downloader загрузить и установить пакет smistrip:

    Command

    wget http://ftp.de.debian.org/debian/pool/

non-free
  1. main/

s/snmp-mibs-downloader/snmp-mibs-downloader_1.5
  1. libs/libsmi/smistrip_0.4.8+dfsg2-16_all.deb
    sudo apt install -y ./

snmp-mibs-downloader_*
  1. smistrip_0.4.8+dfsg2-16_all.deb

Настройка

Настройка менеджера SNMP

В конфигурационном файле /etc/snmp/snmp.conf чтобы позволить менеджеру SNMP импортировать файлы MIB, следует закомментировать следующую строку:

Блок кода
#mibs :

Настройка агента SNMPD

В конфигурационном файле /etc/snmp/snmpd.conf изменить параметр agentAddress, определяющий разрешенные подключения. По умолчанию разрешены только подключения с локального компьютера. Для разрешения внешних подключения привести параметры к виду:

Блок кода
languagebash
#  Принимать подключения только от локальной системы (настройка по умолчанию)
#agentAddress  udp:127.0.0.1:161

#  Принимать подключения по всем интерфейсам (IPv4 *и* IPv6)
agentAddress udp:161,udp6:[::1]:161
Примечание

Если не используется IPv6, следует также удалить udp6:[::1]:161

  • Создать шаблон пользователя %Имя_вашего_пользователя, который,  который будет далее использоваться для создания обычных пользователей. Пакеты SNMP делают это путем клонирования параметров пользователей. Создавая нового пользователя, указать тип аутентификации (MD5 или SHA) и пароль (минимум 8 символов). Если планируется использовать при передаче данных защитное преобразование данных, то указать протокол защитного преобразования (DES или AES) и пароль для него (не обязателен). Если пароль для протокола защитного преобразования не указан, то вместо него будет использоваться пароль аутентификации.

    1. В Astra Linux Special Edition РУСБ.10015-01 очередное обновление 1.7 этот пакет может быть установлен из базового репозитория;

    2. Установить пакет snmp-mibs-downloader:

      1. В Astra Linux Special Edition РУСБ.10015-01 очередное обновление 1.7 с установленным обновлением БЮЛЛЕТЕНЬ № 2023-1023SE17 (оперативное обновление 1.7.5) пакет доступен в расширенном репозитории. После подключения расширенного репозитория пакет может быть установлен с помощью графического менеджера пакетов или командой:

        Command

        sudo apt install snmp-mibs-downloader


      2. В более ранних обновлениях пакет можно загрузить и установить из репозитория Debian:

        Command

        wget http://ftp.de.debian.org/debian/pool/non-free/s/snmp-mibs-downloader/snmp-mibs-downloader_1.5_all.deb
        sudo apt install -y ./snmp-mibs-downloader_*_all.deb


    Настройка

    Настройка менеджера SNMP

    В конфигурационном файле /etc/snmp/snmp.conf чтобы позволить менеджеру SNMP импортировать файлы MIB, следует закомментировать следующую строку:

    Блок кода
    #mibs :


    Настройка агента SNMPD

    1. В конфигурационном файле /etc/snmp/snmpd.conf изменить параметр agentAddress, определяющий разрешенные подключения. По умолчанию разрешены только подключения с локального компьютера. Для разрешения внешних подключения привести параметры к виду:

      Блок кода
      languagebash
      #  Принимать подключения только от локальной системы (настройка по умолчанию)
      #agentAddress  udp:127.0.0.1:161
      
      #  Принимать подключения по всем интерфейсам (IPv4 *и* IPv6)
      agentAddress udp:161,udp6:[::1]:161
      


      Примечание

      Если не используется IPv6, следует также удалить udp6:[::1]:161.
      Если IPv6 не используется, а параметр udp6:[::1]:161 указан, то служба snmpd не запустится, что, в первую очередь, может быть выявлено по сообщениям "Timeout" при попытках обращения к службе.


    2. Создать шаблон пользователя %Имя_вашего_пользователя, который,  который будет далее использоваться для создания обычных пользователей. Пакеты SNMP делают это путем клонирования параметров пользователей. Создавая нового пользователя, указать тип аутентификации (MD5 или SHA) и пароль (минимум 8 символов). Если планируется использовать при передаче данных защитное преобразование данных, то указать протокол защитного преобразования (DES или AES) и пароль для него (не обязателен). Если пароль для протокола защитного преобразования не указан, то вместо него будет использоваться пароль аутентификации.

    Пример:

    Создание пользователя "initial", с паролем <временный_пароль>, с типом аутентификации MD5 и протоколом защитного преобразования DES. Для этого в конфигурационный файл /etc/snmp/snmpd.conf добавить строки:

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

      Блок кода
      languagebash
      createUser initial MD5 <временный_пароль> DES 


      Информация
      Пользователи SNMP используют два пароля: пароль для аутентификации и пароль для защитного преобразования передаваемых данных. Если пароль для защитного преобразования не задан явно, то для защитного преобразования используется пароль аутентификации.


    2. Создание группы для определения прав доступа пользователя:

      Блок кода
      group MyRWGroup usm initial


    3. Создание представления (view) для доступа к данным:

      Блок кода
      view viewall included .1


    4. Предоставления созданной группе прав доступа к созданному представлению:

      Блок кода
      access MyRWGroup "" usm priv exact viewall viewall none


    В итоге в файл /etc/snmp/snmpd.conf должны быть добавлены следующие строки:

    Блок кода
    createUser initial MD5 <временный_пароль> DES
    group MyRWGroup usm initial
    view viewall included .1
    access MyRWGroup "" usm priv exact viewall viewall none

    После внесения изменений в конфигурационный файл перезапустить службу snmpd:

    Command

    sudo systemctl restart snmpd

     Контроль

    Если все сделано правильно, то на данном этапе должна корректно выполняться команда просмотра дерева OID от имени пользователя initial:

    Command
    snmpwalk -u initial -l authPriv -a MD5 -x DES -A <временный_пароль> -X <временный_пароль> localhost .

    Дополнительно можно проверить статус службы /менеджера snmpd:

    Command
    Titlesudo systemctl status snmpd
    languagebash

    ● snmpd.service - Simple Network Management Protocol (SNMP) Daemon.
       Loaded: loaded (/lib/systemd/system/snmpd.service; enabled; vendor preset: enabled)
       Active: active (running) since Fri 2022-03-04 09:22:44 MSK; 8s ago
      Process: 7319 ExecStartPre=/bin/mkdir -p /var/run/agentx (code=exited, status=0/SUCCESS)
     Main PID: 7321 (snmpd)
        Tasks: 1 (limit: 4641)
       Memory: 5.2M
       CGroup: /system.slice/snmpd.service
               └─7321 /usr/sbin/snmpd -Lsd -Lf /dev/null -u Debian-snmp -g Debian-snmp -I -smux mteTrigger mteTriggerConf -f -p /run/snmpd.pid

    мар 04 09:22:44 se17 systemd[1]: Starting Simple Network Management Protocol (SNMP) Daemon....
    мар 04 09:22:44 se17 systemd[1]: Started Simple Network Management Protocol (SNMP) Daemon..
    мар 04 09:22:44 se17 snmpd[7321]: /etc/snmp/snmpd.conf: line 145: Warning: Unknown token: defaultMonitors.
    мар 04 09:22:44 se17 snmpd[7321]: /etc/snmp/snmpd.conf: line 147: Warning: Unknown token: linkUpDownNotifications.
    мар 04 09:22:44 se17 snmpd[7321]: Turning on AgentX master support.
    мар 04 09:22:44 se17 snmpd[7321]: NET-SNMP version 5.7.3

    Предупреждения Unknown token: defaultMonitors и Unknown token: linkUpDownNotifications

    В системном журнале при запуске службы snmpd могут появляться сообщения вида: 

    Блок кода
    snmpd[7321]: /etc/snmp/snmpd.conf: line 145: Warning: Unknown token: defaultMonitors.
    snmpd[7321]: /etc/snmp/snmpd.conf: line 147: Warning: Unknown token: linkUpDownNotifications.

    Эти сообщения вызваны отсутствием поддержки MIB DISMAN в поставляемых пакетах (вызвано лицензионными ограничениями). Эти предупреждения можно игнорировать, при этом,  чтобы исключить сообщения, можно удалить/закомментировать соответствующие строки в конфигурационном файле /etc/snmp/snmpd.conf.

    Для того, чтобы устранить предупреждения, включив функционал, аналогичный MIB DISMAN, выполнить следующие действия:

    1. В файле /etc/snmp/snmpd.conf заменить параметры defaultMonitors и linkUpDownNotifications на их функциональные аналоги:

      1. Для параметра defaultMonitors:

        Блок кода
        monitor -o prNames      -o prErrMessage  "procTable" prErrorFlag   != 0
        monitor -o memErrorName -o memSwapErrorMsg "memory"  memSwapError  != 0
        monitor -o extNames     -o extOutput     "extTable"  extResult     != 0
        monitor -o dskPath      -o dskErrorMsg   "dskTable"  dskErrorFlag  != 0
        monitor -o laNames      -o laErrMessage  "laTable"   laErrorFlag   != 0
        monitor -o fileName     -o fileErrorMsg  "fileTable" fileErrorFlag != 0


      2. Для параметра linkUpDownNotifications

        Блок кода
        notificationEvent linkUpTrap   linkUp   ifIndex ifAdminStatus ifOperStatus
        notificationEvent linkDownTrap linkDown ifIndex ifAdminStatus ifOperStatus
        monitor -r 60 -e linkUpTrap   "Generate linkUp"   ifOperStatus != 2
        monitor -r 60 -e linkDownTrap "Generate linkDown" ifOperStatus == 2


    2. Создать файл переопределения /etc/systemd/system/snmpd.service.d/override.conf.

      Информация

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

      Command
      sudo systemctl edit snmpd 


      Файл переопределения должен иметь следующее содержимое:

      Блок кода
      [Service]
      Environment=
      Environment="MIBSDIR=/usr/share/snmp/mibs:/usr/share/snmp/mibs/iana:/usr/share/snmp/mibs/ietf:/usr/share/mibs/site:/usr/share/snmp/mibs:/usr/share/mibs/iana:/usr/share/mibs/ietf:/usr/share/mibs/netsnmp"
      ExecStart=
      ExecStart=/usr/sbin/snmpd -Lsd -Lf /dev/null -u Debian-snmp -g Debian-snmp -I -smux -f -p /run/snmpd.pid

      Необходимо обязательно указать "пустые присвоения" для очистки значений. Значение параметра Environment=MIBSDIR можно без изменений скопировать из файла etc/systemd/system/snmpd.service, значение параметра ExecStart также можно скопировать из файла etc/systemd/system/snmpd.service, удалив значения: 

      Блок кода
      ,mteTrigger,mteTriggerConf"


    3. Если файл переопределения создавался без использования рекомендованной команды sudo systemctl edit, то обновить определения системных служб:

      Command
      sudo systemctl daemon-reload


    4. Перезапустить службу snmpd:

      Command
      sudo systemctl restart snmpd 

    Пример:

    Создание пользователя "initial", с паролем <временный_пароль>, с типом аутентификации MD5 и протоколом защитного преобразования DES. Для этого в конфигурационный файл /etc/snmp/snmpd.cfg добавить строки:

    Создание пользовтеля:

    Блок кода
    languagebash
    createUser initial MD5 <временный_пароль> DES 
    Информация
    Пользователи SNMP используют два пароля: пароль для аутентификации и пароль для защиного преобразования. Если пароль для защитного преобразования не задан явно, то для защитного преобразования используется пароль аутентификации.

    Создание группы для определения прав доступа пользователя:

    Блок кода
    group MyRWGroup usm initial

    Создание представления (view) для доступа к данным:

    Блок кода
    view viewall included .1

    Предоставления созданной группе прав доступа к созданному представлению:

    Блок кода
    access MyRWGroup "" usm priv exact viewall viewall none

    В итоге в файл /etc/snmp/snmpd.conf должны быть добавлены следующие строки:

    Блок кода
    createUser initial MD5 <временный_пароль> DES
    group MyRWGroup usm initial
    view viewall included .1
    access MyRWGroup "" usm priv exact viewall viewall none

    После внесения изменений в конфигурационный файл перезапустить службу snmpd:

    Command

    sudo systemctl restart snmpd

     Контроль

    Если все сделано правильно, то на данном этапе должна корректно выполняться команда просмотра дерева OID от имени пользователя initial:

    Command
    snmpwalk -u initial -l authPriv -a MD5 -x DES -A <временный_пароль> -X <временный_пароль> localhost .

    Дополнительно можно проверить статус службы /менеджера snmpd:

    Command
    Titlesudo systemctl status snmpd
    languagebash

    ● snmpd.service - Simple Network Management Protocol (SNMP) Daemon.
       Loaded: loaded (/lib/systemd/system/snmpd.service; enabled; vendor preset: enabled)
       Active: active (running) since Fri 2022-03-04 09:22:44 MSK; 8s ago
      Process: 7319 ExecStartPre=/bin/mkdir -p /var/run/agentx (code=exited, status=0/SUCCESS)
     Main PID: 7321 (snmpd)
        Tasks: 1 (limit: 4641)
       Memory: 5.2M
       CGroup: /system.slice/snmpd.service
               └─7321 /usr/sbin/snmpd -Lsd -Lf /dev/null -u Debian-snmp -g Debian-snmp -I -smux mteTrigger mteTriggerConf -f -p /run/snmpd.pid

    мар 04 09:22:44 se17 systemd[1]: Starting Simple Network Management Protocol (SNMP) Daemon....
    мар 04 09:22:44 se17 systemd[1]: Started Simple Network Management Protocol (SNMP) Daemon..
    мар 04 09:22:44 se17 snmpd[7321]: /etc/snmp/snmpd.conf: line 145: Warning: Unknown token: defaultMonitors.
    мар 04 09:22:44 se17 snmpd[7321]: /etc/snmp/snmpd.conf: line 147: Warning: Unknown token: linkUpDownNotifications.
    мар 04 09:22:44 se17 snmpd[7321]: Turning on AgentX master support.
    мар 04 09:22:44 se17 snmpd[7321]: NET-SNMP version 5.7.3

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

    Блок кода
    snmpd[7321]: /etc/snmp/snmpd.conf: line 145: Warning: Unknown token: defaultMonitors.
    snmpd[7321]: /etc/snmp/snmpd.conf: line 147: Warning: Unknown token: linkUpDownNotifications.
    вызваны отсутствием MIB DISMAN (для его использования требуется отдельная лицензия). Эти предупреждения можно игнорировать (либо удалить/закомментировать соответствующие строки в конфигурационном файле /etc/snmp/snmpd.conf, либо приобрести и установить DISMAN MIB).

    Общая структура команд SNMP

    Для управления пользователями SNMPv3 применяется инструмент snmpusm. Три базовых операций SNMP:

    • snmpget - прочитать значение оценки с помощью устройства;
    • snmpset - установить значение параметра на устройство;
    • snmpwalk - прочитать с устройства часть дерева MIB.

    При работе с набором net-snmp используется несколько шаблонов для вызова команд.

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

    • -v (version): задаёт версию SNMP-протокола.

    • -c (community): определяет версию строки доступа .

    • -u (user-name): указывает имя пользователя, которого нужно авторизовать. Чтобы пользователь имел право на чтение и изменение, он должен быть зарегистрирован в SNMP.

    • -l (level): задаёт уровень безопасности для подключения. Можно использовать такие значения: noAuthNoPriv (без аутентификации), authNoPriv (аутентификация без защитного преобразования) и authPriv (аутентификация и защитное преобразование). Кроме того, указанный пользователь должен иметь доступ к выбранному уровню безопасности, иначе он не сможет подключиться.

    • -a (protocol): определяет протокол аутентификации, MD5 или SHA. Это значение должно совпадать с информацией пользователя, указанной при его создании.

    • -x (protocol): определяет протокол защитного преобразования, DES или AES. Это значение должно совпадать с информацией пользователя, указанной при его создании. Протокол защитного преобразования обязательно нужно указывать, если в настройках пользователя есть параметр priv.

    • -A (passphrase): пароль для аутентификации пользователя.

    • -X (passphrase): пароль защитного преобразования. Если вы не указали этот пароль, вместо него будет использоваться пароль для аутентификации. Это пароль обязательно нужно указывать, если в настройках пользователя есть параметр priv.

    Общий синтаксис команды:

    Command
    languagebash
    snmp_command -u <имя_пользователя> -l authPriv -a MD5 -x DES -A <пароль_аутентификации> -X <пароль_защитного_преобразования> <IP-адрес_хоста> <дополнительные_команды_и_опции>

    Получение информации с удаленного хоста: snmpget

    К примеру, чтобы убедиться, что пользователь usertest initial доступен, выполнить на менеджере команду:

    Command

    snmpget -u initial -l authPriv -a MD5 -x DES -A <временный_пароль> -X <временный_пароль> 192.168.1.112 1.3.6.1.2.1.1.1.0

    Строка 1.3.6.1.2.1.1.1.0 – это OID, отвечающий за отображение данных системы. В удаленной системе он выведет результат, аналогичный результату команды uname –a:
    Блок кода
    SNMPv2-MIB::sysDescr.0 = STRING: Linux se17o1 5.4.0-81-generic #astra34+ci17-Ubuntu SMP Mon Nov 22 13:21:54 UTC 2021 x86_64

    Управление пользователями SNMPv3: snmpusm

    Инструмент snmpusm позволяет на сервере-менеджере создавать новых пользователей, используя данные существующих пользователей в качестве шаблона. Общий синтаксис имеет вид:

    Command
    snmpusm <информация_об_уч_записи> <удаленный_хост> create <новый_пользователь> <существующий_пользователь>

    С помощью шаблона (ранее созданный пользователь usertestinitial) и флагов можно создать нового пользователя как копию существующего:

    Command
    languagebash

    snmpusm  -u initial -l authPriv -a MD5 -x DES -A <временный_пароль> -X <временный_пароль> localhost create admin initial


    Теперь на сервере есть пользователь admin. Однако, пока что он использует те же учетные данные (пароли), что и пользователь initial, и не имеет права изменять пользовательские данные. Для того, чтобы изменить пароли нового пользователя (пароль для аутентификации и пароль для протокола защитного преобразования) выполнить команду:

    Command

    snmpusm  -u initial -l authPriv -a MD5 -x DES -A <временный_пароль> -X <временный_пароль> localhost passwd <временный_пароль> <постоянный_пароль> admin

    Теперь у пользователя admin установлен новый пароль <постоянный_пароль>.

    Управление правами пользователей SNMPv3: snmpvacm

    Инструмент snmpvacm позволяет изменять права пользователей. Пример:

    Command

    snmpvacm -u initial -l authPriv -a MD5 -x DES -A <временный_пароль> -X <временный_пароль> localhost createSec2Group 3 admin rwgrp

    Пояснение к примеру:

    • Команда createSec2Group имеет аргументы MODEL SECURITYNAME GROUPNAME и создает запись в таблице соответствия имен и прав доступа. Параметры:
      •  MODEL - цифра, указывающая модель безопасности:
        • 1 - зарезервировано для SNMPv1;
        • 2 - зарезервировано для SNMPv2c;
        • 3 - User-based Security Model (USM) .
      • SECURITYNAME - строка, указывающая имя субъекта безопасности (принципал). Для модели USM это имя пользователя;
      • GROUPNAME - строка, указывающая имя группы, в которую должен быть включен субъект. Это имя далее используется при назначении прав.

    Назначение прав группе:

    Command
    snmpvacm -u initial -l authPriv -a MD5 -x DES -A <временный_пароль> -X <временный_пароль> localhost createAccess rwgrp 3 3 1 viewall viewall none

    Пояснения к примеру:

    • Команда createAccess  имеет параметры GROUPNAME  [CONTEXTPREFIX] MODEL LEVEL CONTEXTMATCH READVIEW WRITEVIEW NOTIFYVIEW и создает запись в таблице доступа, предоставляющую доступ к определенным MIB принципалам в указанной группе. Параметры:
      • GROUPNAME - имя группы, для которой определяются права доступа;
      • CONTEXTPREFIX (необязательный параметр) - строка, представляющая контекст применения создаваемой записи. Интерпретация значения строки зависит от значения параметра CONTEXTMATCH. Если не указан, то в качестве контекста применяется пустая строка "".
      • MODEL - цифра, определяющая модель безопасности:
        • 1 - зарезервировано для SNMPv1;
        • 2 - зарезервировано для SNMPv2c;
        • 3 - User-based Security Model (USM)
      • LEVEL - цифра, определяющая минимальный уровень безопасности для запросов:
        • 1 - noAuthNoPriv - без аутентификации и защитного преобразования передаваемых данных;
        • 2 - authNoPriv - аутентификация без защитного преобразования передаваемых данных;
        • 3 - authPriv - аутентификация и защитное преобразование передаваемых данных;
      • CONTEXTMATCH - определяет способ интерпретации параметра CONTEXTPREFIX:
        • 1 ('exact') - требует точного соответствия контекста CONTEXTPREFIX;
        • 2 ('prefix') - требует соответствия начальной строки;
      • READVIEW - имя набора MIB (команда view в конфигурационном файле, создающая представление viewall), содержащего объекты MIB, доступные для чтения;
      • WRITEVIEW - имя набора MIB (команда view в конфигурационном файле, создающая представление viewall), содержащего объекты MIB, доступные для изменения значений;
      • NOTIFYVIEW - имя набора MIB, содержащего объекты MIB, доступные отправки извещений (в доступной версии не поддерживается);

    Контроль

    Если всё сделано правильно, то пользователь admin должен получить доступ ко всем  OID. Проверить доступные OID можно командой:

    Command
    snmpwalk -u admin  -l authPriv -a MD5 -x DES -A <постоянный_пароль> -X <постоянный_пароль> localhost .1

    Удаление временного пользователя

    После создания пользователя-администратора можно удалить временного пользователя initial, для этого можно использовать команду:

    Command
    snmpusm  -u admin   -l authPriv -a MD5 -x DES -A <постоянный_пароль> -X <постоянный_пароль> localhost delete initial

    Для того, чтобы пользователь initial не воссоздавался после перезапуска серчиса службы snmpd удалить из конфигурационного файла строки:

    Блок кода
    createUser initial MD5 <временный_пароль> DES
    group MyRWGroup usm initial


    Примерный сценарий

    В качестве временного пароля испоьзуется используется пароль q2w2e2r2, в качестве постоянноо постоянного пароля - 87654321.

    Блок кода
    collapsetrue
    #!/bin/bash
    inipass="q2w2e2r2"
    admpass="87654321"
    wget http://ftp.de.debian.org/debian/pool/non-free/s/snmp-mibs-downloader/snmp-mibs-downloader_1.5_all.deb
    sudo apt update
    sudo apt install -y snmp snmpd ./snmp-mibs-downloader_1.5_all.deb
    [ -f /etc/snmp/snmp.conf  ] && sudo sed -i "s/^\s*mibs\s*:/#mibs :/" /etc/snmp/snmp.conf
    if [ -f /etc/snmp/snmpd.conf ] ; then
        sudo sed -i.bak "s/^\s*agentAddress.*/agentAddress udp:161,udp6:[::1]:161/" /etc/snmp/snmpd.conf
        echo "createUser initial MD5 "$inipass" DES"                       | sudo tee -a  /etc/snmp/snmpd.conf
        echo "group MyRWGroup usm initial"                                 | sudo tee -a  /etc/snmp/snmpd.conf
        echo "view viewall included .1"                                    | sudo tee -a  /etc/snmp/snmpd.conf
        echo "access MyRWGroup \"\" usm priv exact viewall viewall none" | sudo tee -a  /etc/snmp/snmpd.conf
        sudo systemctl restart snmpd
    fi
    snmpwalk -u initial -l authPriv -a MD5 -x DES -A "$inipass" -X "$inipass" localhost .
    snmpusm  -u initial -l authPriv -a MD5 -x DES -A "$inipass" -X "$inipass" localhost create admin initial
    snmpusm  -u initial -l authPriv -a MD5 -x DES -A "$inipass" -X "$inipass" localhost passwd "$inipass" "$admpass" admin
    snmpvacm -u initial -l authPriv -a MD5 -x DES -A "$inipass" -X "$inipass" localhost createSec2Group 3 admin rwgrp
    snmpvacm -u initial -l authPriv -a MD5 -x DES -A "$inipass" -X "$inipass" localhost createAccess rwgrp 3 3 1 viewall viewall none
    snmpwalk -u admin   -l authPriv -a MD5 -x DES -A "$admpass" -X "$admpass" localhost .
    snmpusm  -u admin   -l authPriv -a MD5 -x DES -A "$admpass" -X "$admpass" localhost delete initial
    sudo sed -i -e "/^\s*createUser\s\+initial.*/d" \
                -e "/^\s*group\s\+MyRWGroup\s\+usm\s\+initial/d" /etc/snmp/snmpd.conf
    sudo systemctl restart snmpd


    ...