...
Блок кода | ||
---|---|---|
| ||
$sudo service snmp restart |
Посомтреть статус менеджера snmp:
Блок кода | ||
---|---|---|
| ||
$sudo service snmp status |
б) агента snmpd:
Откройте файл /etc/snmp/snmpd.conf
...
Блок кода | ||
---|---|---|
| ||
# 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
|
Далее в конфиге нужно создать пользователя %Имя_вашего_пользователя, который, который будет использоваться в качестве шаблона для создания обычных пользователей. Пакеты 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».