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

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

Ключ

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

Image Modified

Оглавление



Информация
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

1: Установка демона и утилит SNMP & SNMPD:

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

Установка SNMP на

...

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

...

Command
languagebash

...

$sudo apt-get update
$sudo apt-get install snmp

...

sudo apt install snmp

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

...

Command
languagebash

...

$sudo apt-get update
$sudo apt-get install snmpd

2: Конфигурация:

a) менеджера SNMP:

Откройте файл /etc/snmp/snmp.conf:

sudo apt install snmpd

Дополнительно можно установить пакет 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/main/libs/libsmi/smistrip_0.4.8+dfsg2-16_all.deb
    sudo apt install -y ./smistrip_0.4.8+dfsg2-16_all.deb

    В 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

В конфигурационном файле

...

languagebash

...

/etc/snmp/snmp.conf

...

чтобы позволить менеджеру SNMP импортировать файлы MIB, следует закомментировать следующую строку:

Блок кода
#mibs :

После чего сохранить файл (Ctrl+O) и выйти из редактора nano (ctrl+X).

б) агента snmpd:


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

  1. В конфигурационном файле

...

  1. /etc/snmp/snmpd.conf

...

Блок кода
languagebash
sudo nano /etc/snmp/snmpd.conf

...

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

    Блок кода
    languagebash
    #  Принимать 

...

  1. подключения 

...

  1. только 

...

  1. от 

...

  1. локальной 

...

  1. системы 

...

  1. (настройка 

...

  1. по 

...

  1. умолчанию)
    #agentAddress  udp:127.0.0.1:161
    
    #  

...

  1. Принимать 

...

  1. подключения 

...

  1. по 

...

  1. всем 

...

  1. интерфейсам 

...

  1. (

...

  1. IPv4 *

...

  1. и* IPv6)

...

  1. 
    agentAddress udp:161,udp6:[::1]:161

...

  1. 
    


    Примечание

    Если не используется

...

  1. IPv6, следует также удалить udp6:[::1]:161

...

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


  2. Создать шаблон пользователя %Имя_вашего_пользователя, который,  который будет далее использоваться

...

  1. для создания обычных пользователей. Пакеты SNMP делают это

...

  1. путем клонирования параметров пользователей.

...

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

...

  1. указать тип аутентификации (MD5 или SHA) и пароль (минимум 8 символов). Если

...

  1. планируется использовать при передаче данных защитное преобразование данных, то указать протокол защитного преобразования (DES или AES) и пароль для него (

...

  1. не обязателен). Если

...

  1. пароль для протокола

...

  1. защитного преобразования не указан, то вместо него будет использоваться пароль аутентификации.

...

Пример:

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

...

initial", с паролем

...

<временный_

...

пароль>, с

...

типом аутентификации MD5 и протоколом защитного преобразования DES

...

. Для этого в

...

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

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

    Блок кода
    languagebash
    createUser

...

 Далее в конфигурационном файле, пользователю "usertest" следует указать уровень доступа:

rwuser - даёт право на чтение и запись.

rouser - даёт право только на чтение.

Для обязательного шифрования используется параметр priv .

Чтобы ограничить пользователя определённой частью MIB, нужно указать OID высшего уровня, к которому пользователь должен иметь доступ.

Блок кода
languagebash
rwuser usertest priv
  1.  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.

...

Перезапустите сервис snmpd:

Блок кода
languagebash
sudo service snmpd restart

Посомтреть статус менеджера snmpd:

Блок кода
languagebash
$sudo service snmpd status

Image Removed

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

...

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 


Общая структура команд 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

К примеру, чтобы убедиться, что пользователь

...

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

...

Строка 1.3.6.1.2.1.1.1.0 – это OID, который отвечает за отображение данных системы. В удаленной системе он выведет результат команды uname –a.

Image Removed

3б) Утилита snmpusm - для управления пользователями SNMPv3

...

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

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

Command
snmpusm <информация

...

_об_уч_

...

записи> <удаленный_

...

хост> create

...

<новый_

...

пользователь> <существующий_

...

пользователь>

С помощью шаблона (

...

ранее созданный пользователь initial) и флагов

...

можно создать

...

нового пользователя как копию существующего:

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/" /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

...

languagebash

...

 -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