Содержание

Перейти к концу метаданных
Переход к началу метаданных


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

Стенд

Две машины с установленной ОС Astra Linux 1.6 SE (Smolensk) x64.

1-ой машине присвоен ip адрес: 192.168.1.111

2-ой машине присвоен ip адрес: 192.168.1.112

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

а) Установка SNMP на 1-ый сервер, который выступает в качестве менеджера:

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

б) Установка SNMPD на 2-ой сервер, который выступает в качестве агента (опрашиваемого) :

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

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

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

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

$sudo nano /etc/snmp/snmp.conf

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

#mibs :

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


б) агента snmpd:

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

sudo nano /etc/snmp/snmpd.conf

Откорректируйте директиву agentAddress; на данный момент она поддерживает только соединения, исходящие с локального компьютера. Нужно закомментировать эту строку и раскомментировать следующую строку, что разрешает все соединения.

#  Listen for connections from the local system only

#agentAddress  udp:127.0.0.1:161

#  Listen for connections on all interfaces (both IPv4 *and* IPv6)

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

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



Далее в конфиге нужно создать пользователя %Имя_вашего_пользователя, который,  который будет использоваться в качестве шаблона для создания обычных пользователей. Пакеты SNMP делают это путём клонирования параметров пользователей.

Создавая нового пользователя, укажите тип аутентификации (MD5 или SHA) и пароль (минимум 8 символов). Если вы планируете использовать при передаче данных защитное преобразование данных, вы также должны указать протокол преобразования (DES или AES) и пароль для него (по желанию). Если вы не выберете пароль для протокола преобразования, вместо него будет использоваться пароль аутентификации.

Для примера создадим пользователя "usertest", с паролем "temp_password", с MD5 типом аутентификации и протоколом преобразования DES. Для этого в конфигурационном файле snmpd.cfg запишем:

createUser usertest MD5 temp_password DES

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

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

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

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

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

rwuser usertest priv

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

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

sudo service snmpd restart

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

$sudo service snmpd status


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

Утилита snmpusm применяется для управления пользователями SNMPv3.Три базовых операций SNMP - это snmpget, snmpset и snmpwalk. Их назначение понятно из названия: 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.

Теперь вы можете написать команду. Ваша команда может отличаться в зависимости от параметров пользователя. Общий синтаксис:

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


3а) Утилита snmpget - получение информации с удалённого хоста

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

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

SNMPv2-MIB::sysDescr.0 = STRING: Linux snmpdtest 4.15.3-1-generic #astra14 SMP Tue Aug 7 13:57:30 UTC 2018 x86_64 GNU/Linux

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


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

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

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

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

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

User successfully created.


Теперь на удалённом сервере есть полностью готовый к работе пользователь newuser. Однако пока что он использует те же учётные данные, что и usertest. Для того, чтобы изменить пароль пользователя, следует выполнить аутентификацию как newuser и установить новый пароль (8 символов минимум).

snmpusm -u newuser -l authPriv -a MD5 -x DES -A temp_password -X temp_password 192.168.1.112 passwd temp_password my_new_password

SNMPv3 Key(s) successfully changed.

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

  • Нет меток

1 комментарий

  1. udp6:[::1]:161
    Следует убрать, если не используется ipv6