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

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

Ключ

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

Оглавление

Image Modified


Введение

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

...

install snmp

...

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

...

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

Command
languagebash

...

sudo apt

...

install snmpd

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

Настройка

Настройка

...

менеджера SNMP

...

...

В конфигурационном файле /etc/snmp/snmp.conf

...

Command
languagebash
sudo nano /etc/snmp/snmp.conf

...

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

Блок кода
#mibs :

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

б) агента snmpd:

...


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

  1. В конфигурационном файле /etc/snmp/snmpd.conf

...

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

...

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

    Блок кода
    languagebash
    #  

...

  1. Принимать 

...

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

...

  1. только 

...

  1. от 

...

  1. локальной системы
    #agentAddress  udp:127.0.0.1:161
    
    #  

...

  1. Принимать 

...

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

...

  1. по 

...

  1. всем 

...

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

...

  1. IPv4 *

...

  1. и* IPv6)
    agentAddress udp:161,udp6:[::1]:161
    


    Примечание

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

...

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

...


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

...

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

...

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

...

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

...

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

...

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

...

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

...

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

...

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

...

Пример:

Создание пользователя "usertest", с паролем "temp_password", с

...

типом аутентификации MD5 и протоколом защитного преобразования DES. Для этого в конфигурационном файле /etc/snmp/snmpd.cfg

...

указать:

Блок кода
languagebash
createUser usertest MD5 temp_password DES

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

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

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

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

Блок кода
languagebash
rwuser usertest priv

Сохраните и закройте файл /etc/snmp/snmpd.cfg.

...

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

Command
languagebash
sudo

...

systemctl restart snmpd

...

Image Removed

...

Проверить статус менеджера 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 доступен,

...

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

...

Command

...

languagebash

snmpget

...

-u

...

usertest

...

-l

...

authPriv

...

-a

...

MD5

...

-x

...

DES

...

-A

...

temp_password

...

-X

...

temp_password

...

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

...

<новый_

...

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

...

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

С помощью шаблона (ранее созданный пользователь usertest) и флагов

...

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

...

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

Command

...

languagebash
snmpusm

...

-u

...

usertest

...

-l

...

authPriv

...

-a

...

MD5

...

-x

...

DES

...

-A

...

temp_password

...

-X

...

temp_password

...

192.168.1.112

...

create

...

newuser

...

usertest

...

Теперь на

...

удаленном сервере есть

...

пользователь newuser. Однако пока что он использует те же

...

учетные данные (пароли), что и usertest, и не имеет права изменять пользовательские данные. Для того, чтобы изменить

...

languagebash

...

пароли нового пользователя (пароль для аутентификации и пароль для протокола защитного преобразования) выполнить команды:

Command

snmpusm -u usertest -l authPriv -a MD5 -x DES -A temp_password -X temp_password 192.168.1.112

...

passwd -Ca setupauth new_pass newuser
snmpusm -u usertest -l authPriv -a MD5 -x DES -A temp_password

...

-X temp_password 192.168.1.112 passwd -Cx setupauth new_pass newuser

Теперь у пользователя newuser установлен новый пароль

...

«new_pass».

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

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

Command
snmpvacm -u usertest -l authPriv -a MD5 -x DES -A temp_password -X temp_password 192.168.1.112 createSec2Group 3 newuser rwgrp

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

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

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

Command
snmpvacm -u usertest -l authPriv -a MD5 -x DES -A temp_password -X temp_password 192.168.1.112 createAccess rwgrp 3 2 1 allseeing allseeing 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 (команда createView), содержащего объекты MIB, доступные для чтения;
    • WRITEVIEW - имя набора MIB (команда createView), содержащего объекты MIB, доступные для изменения значений;
    • NOTIFYVIEW - имя набора MIB (команда createView), содержащего объекты MIB, доступные отправки извещение (в доступной версии не поддерживается);