Руководство для начинающих по установке, использованию и настройке Net-SNMP — Часть 2
В первой части этой серии мы обсудили шаги, которые необходимо выполнить, чтобы загрузить, установить и запустить инструмент Net-SNMP.
В этой части мы сосредоточимся на аспекте настройки, объяснив, как можно настроить агент Net-SNMP, а также настроить аутентификацию и шифрование сообщений, передаваемых между ним и клиентом.
Настройка агента Net-SNMP — snmpd
Предполагая, что пакет Net-SNMP установлен в вашей системе и работает, выполните следующую команду snmpwalk
:
snmpwalk -v2c -c public localhost system
В моей системе был получен следующий результат:
SNMPv2-MIB::sysDescr.0 = STRING: Linux himanshu-desktop 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15 03:51:12 UTC 2014 i686 SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10 DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (6481067) 18:00:10.67 SNMPv2-MIB::sysContact.0 = STRING: Me <me> SNMPv2-MIB::sysName.0 = STRING: himanshu-desktop SNMPv2-MIB::sysLocation.0 = STRING: Sitting on the Dock of the Bay SNMPv2-MIB::sysServices.0 = INTEGER: 72 SNMPv2-MIB::sysORLastChange.0 = Timeticks: (22) 0:00:00.22 ... ... ...</me>
Если вы заметили, этот вывод содержит значения, соответствующие системным переменным, присутствующим в дереве MIB «.iso.org.dod.internet.mgmt.mib-2.system».
Теперь предположим, что вы хотите настроить такую информацию, как «sysLocation» и «sysContact». Это можно сделать, отредактировав соответствующие значения в /etc/snmp/snmpd.conf
, файле, который можно использовать для настройки агента Net-SNMP («snmpd»).
Как вы можете видеть на скриншоте выше, файл содержит множество записей, некоторые из которых намеренно закомментированы и их необходимо явно активировать. В этом файле я изменил значение параметра «sysLocation» с «Сидя на причале залива» на «Центр обработки данных, ряд 2, стойка 1».
Чтобы изменения вступили в силу, просто перезапустите демон Net-SNMP с помощью следующей команды:
/etc/init.d/snmpd restart
а затем снова запустите команду snmpwalk
:
$ snmpwalk -v2c -c public localhost system SNMPv2-MIB::sysDescr.0 = STRING: Linux himanshu-desktop 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15 03:51:12 UTC 2014 i686 SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10 DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (470) 0:00:04.70 SNMPv2-MIB::sysContact.0 = STRING: Me <me>; SNMPv2-MIB::sysName.0 = STRING: himanshu-desktop SNMPv2-MIB::sysLocation.0 = STRING: Datacenter, Row 2, Rack 1 SNMPv2-MIB::sysServices.0 = INTEGER: 72 SNMPv2-MIB::sysORLastChange.0 = Timeticks: (0) 0:00:00.00 </me>
Итак, как видите, значение параметра «sysLocation» успешно изменено. Аналогичным образом вы можете настроить значения других параметров, присутствующих в этом файле, а также добавить параметры, которых там еще нет.
Примечание. Вы также можете использовать утилиту snmpconf
Net-SNMP для создания и изменения файлов конфигурации SNMP. Чтобы узнать больше о команде, прочитайте ее справочную страницу здесь.
Настройте аутентификацию и шифрование
Клиентские утилиты Net-SNMP, такие как snmpget
, snmpwalk
и другие, а также демон (snmpd) поддерживают все три версии протокола SNMP: v1, v2c, и v3. Хотя первые два поддерживают только аутентификацию, версия 3 также поддерживает шифрование. Итак, в этом разделе мы обсудим, как настроить SNMPv3.
В качестве первого шага остановите службу демона snmpd, используя следующую команду:
/etc/init.d/snmpd stop
затем откройте файл /var/lib/snmp/snmpd.conf
и добавьте следующую строку внизу:
createUser USERNAME SHA "AUTHENTICATION-PASSWORD" AES "ENCRYPTION-PASSWORD"
Команда createUser
создает пользователя, специфичного для SNMPv3, с целью аутентификации и шифрования сообщений SNMPV3.
В приведенной выше команде замените «ПАРОЛЬ АУТЕНТИФИКАЦИИ» и «ПАРОЛЬ ШИФРОВАНИЯ» фактическими паролями, которые вы хотите сохранить. Также стоит отметить, что если вы вообще не укажете «ПАРОЛЬ-ШИФРОВАНИЕ», Net-SNMP будет использовать «ПАРОЛЬ АУТЕНТИФИКАЦИИ» в качестве «ПАРОЛЬ-ШИФРОВАНИЯ».
Теперь откройте etc/snmp/snmpd.conf
и добавьте следующую строку внизу:
rouser USERNAME priv
Эта строка гарантирует, что пользователь, которого мы создали ранее, имеет разрешения только на чтение и доступ к нему возможен только с помощью AuthPriv, режима Net-SNMP, который обеспечивает связь с аутентификацией, а также конфиденциальность. Если вы хотите, чтобы у пользователя также были права на запись, в этом случае просто используйте rwuser
(вместо rouser
).
Теперь снова запустите службу демона Net-SNMP, используя следующую команду:
/etc/init.d/snmpd start
а затем выполните следующую команду для проверки SNMPV3:
snmpwalk -v 3 -l authPriv -a sha -A [AUTHENTICATION-PASSWORD] -x AES -X [ENCRYPTION-PASSWORD] -u [USERNAME] localhost system
Если SNMPV3 настроен успешно, выходные данные должны быть такими же, как те, которые указаны в начале этой статьи.
Примечание:
1. Обязательно замените [ПАРОЛЬ АУТЕНТИФИКАЦИИ], [ПАРОЛЬ ШИФРОВАНИЯ] и [ИМЯ ПОЛЬЗОВАТЕЛЯ] соответствующими значениями.
2. Аутентификация SHA и поддержка шифрования DES/AES доступны только в том случае, если у вас установлен OpenSSL или если вы скомпилировали его с использованием --with-openssl=internal
.
Заключение
Net-SNMP предоставляет множество вариантов конфигурации, и то, что мы здесь обсудили, — это лишь основы, хотя для начала их должно быть достаточно. Для получения дополнительной информации перейдите на страницу руководства snmpd.conf.