Страница 5 из 9

Re: Протокол SNMP в POSIX-операционных системах.

Добавлено: 16 янв 2013, 02:33
Olej
SimpleUser писал(а): Начало одного из файлов:
...
похоже на какой-то скрипт для сборки. Половина файлов с "+" примерно такие, есть и из 1-2 строк.
Это я не знаю.
Это вы разбирайтесь, что за файлы и на что оно "похоже" ;-)

Re: Протокол SNMP в POSIX-операционных системах.

Добавлено: 16 янв 2013, 15:13
SimpleUser
В snmpd.conf есть следующие строки по поводу снятия ограничения доступа:
snmpd.conf.png
snmpd.conf.png (51.15 КБ) 7709 просмотров
Вот интересно что имеется ввиду под "своим собственным COMMUNITY"? Я должен создать себе какое-то community, отличное от public? Не представляю насколько это возможно. Или может опция com2sec создаёт это community c произвольным именем?
Также непонятно по имени своей сети NETWORK. Не сталкивался с именами сетей. В какой команде его искать(ifconfig, ip)? Что его задаёт?

P.S. Извиняюсь если не посмотрел дальше, вопросы возникают по ходу изучения вашего материала и копания в Линуксе. Обязательно изучу.

Re: Протокол SNMP в POSIX-операционных системах.

Добавлено: 16 янв 2013, 16:11
Olej
SimpleUser писал(а):В snmpd.conf есть следующие строки по поводу снятия ограничения доступа:
Там их много больше.
Вот ещё:

Код: Выделить всё

view    systemview    included   .1.3.6.1.2.1.1
view    systemview    included   .1.3.6.1.2.1.25.1.1
view    systemview    included   .1.3.6.1.4.1.8072.2
SimpleUser писал(а): Вот интересно что имеется ввиду под "своим собственным COMMUNITY"? Я должен создать себе какое-то community, отличное от public? Не представляю насколько это возможно. Или может опция com2sec создаёт это community c произвольным именем?
Именно создать с произвольным именем ... или расширить права public (но расширять права public или private не рекомендуют - они общеизвестные).
SimpleUser писал(а): Также непонятно по имени своей сети NETWORK. Не сталкивался с именами сетей. В какой команде его искать(ifconfig, ip)? Что его задаёт?
NETWORK - это IP подсети, например 192.168.2.0/24

В том тексте с примерами, что я для вас писал и поместил - есть работающие .conf, с изменениями, дополнениями и т.д. - нужно только взять и посмотреть! Вот минимальный фрагмент оттуда:

Код: Выделить всё

##       sec.name  source          community
com2sec local     localhost        olej
com2sec mynetwork 192.168.1.0/24   olej

##     group.name sec.model  sec.name
group MyRWGroup  v1        local
group MyRWGroup  v2c       local
group MyROGroup  v1        mynetwork
group MyROGroup  v2c       mynetwork

##           incl/excl subtree                          mask
view all    included  .1                               ff.ff.ff

##               context sec.model sec.level prefix  read   write  notif
access MyROGroup ""      any       noauth    exact    all    none   none
access MyRWGroup ""      any       noauth    exact    all    all    all
Там очень намудрёное конфигурирование доступа (и оно оправдано!).
Но разбирайтесь с ним сами - это не дело форума обсуждать вопросы техдокументации.

Re: Протокол SNMP в POSIX-операционных системах.

Добавлено: 16 янв 2013, 18:36
Olej
SimpleUser писал(а):Во всей группе udp, впрочем, тоже все oid группы почему-то не инициализированы. То же касается и других групп дерева snmp, а группа at(1.3.6.1.2.1.3), в oid которой(mib atNetAddress) я хотел найти ip-адрес сетевого интерфейса, вообще больше не существует:
nummibs.png
Неужели кроме группы system никакие oid не установлены? А я могу их установить программно и какой-либо утилитой?
И ещё ... забыл.
Вовсе не все (или далеко не все) OID, которые вы вычитаете в каких-то MIB-файлах - существуют реально в теле программы агента (snmpd в простейшем случае). Т.е. они просто не существуют, не поддерживаются.

MIB-файлы + утилита snmptranslate имеют дело только с описаниями OID. Утилита snmptranslate всего лишь читает MIB-файлы - она ничего не знает вообще о реально существующих агентах SNMP, вы можете её запускать в отсутствие демона snmpd - она так же тупо прочитает вам MIB-файлы, подсуньте ей свои фиктивные MIB-файлы - она прочитает их, подмените в этих файлах международно определённые OID (чего делать нельзя!) - она тупо прочитает и это. Это делается только для удобства чтения OID человеком.

Утилиты snmpget, snmwalk, snmpset (ну и snmtrap и snmpinfo) - напротив, посылают запрос к реально работающему SNMP-агенту, они не знают ни о каких MIB-переменных, работают только с числовыми OID. Если SNMP-агент не запущен (служба snmpd не стартовала), то они получат ошибку по тайм-ауту:

Код: Выделить всё

bash-4.2$ snmpget -v2c localhost -cpublic .1.3.6.1.2.1.7.1.0
Timeout: No Response from localhost.

Но если SNMP-агент не обслуживает OID (он его не знает, в его теле нет кода обработки для этого OID), то он и возвращает этот ответ:

Код: Выделить всё

bash-4.2$ snmpget -v2c localhost -cpublic .1.3.6.1.2.1.7.1.0
UDP-MIB::udpInDatagrams.0 = No Such Object available on this agent at this OID
SimpleUser писал(а):А я могу их установить программно и какой-либо утилитой?
Нет, конечно! ;-)
Как вы могли бы присвоить значение переменной в программе, в которой такой переменной не существует?
Существуют только те OID, которые скомпилированы в код текущего выполняющегося SNMP-агента (иначе они просто не размещены в физической памяти ... как можно изменить то, чего нет в памяти?).
Хотите другие OID - перекомпилируйте агента. ;-)

Re: Протокол SNMP в POSIX-операционных системах.

Добавлено: 16 янв 2013, 18:44
Olej
Olej писал(а):
SimpleUser писал(а):А я могу их установить программно и какой-либо утилитой?
Нет, конечно! ;-)
Как вы могли бы присвоить значение переменной в программе, в которой такой переменной не существует?
Существуют только те OID, которые скомпилированы в код текущего выполняющегося SNMP-агента.
Хотите другие OID - перекомпилируйте агента. ;-)
Как узнать какие OID реально существуют (поддерживаются текущим агентом SNMP, физически размещены в его памяти)?
Вот так:

Код: Выделить всё

bash-4.2$ snmpwalk -v2c localhost -cpublic .1.3.6.1.2
SNMPv2-MIB::sysDescr.0 = STRING: Linux notebook 3.5.2-1.fc17.i686.PAE #1 SMP Wed Aug 15 16:30:14 UTC 2012 i686
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (2580) 0:00:25.80
SNMPv2-MIB::sysContact.0 = STRING: Root <root@localhost> (configure /etc/snmp/snmp.local.conf)
SNMPv2-MIB::sysName.0 = STRING: notebook
SNMPv2-MIB::sysLocation.0 = STRING: Unknown (edit /etc/snmp/snmpd.conf)
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (39) 0:00:00.39
SNMPv2-MIB::sysORID.1 = OID: SNMP-MPD-MIB::snmpMPDMIBObjects.3.1.1
SNMPv2-MIB::sysORID.2 = OID: SNMP-USER-BASED-SM-MIB::usmMIBCompliance
SNMPv2-MIB::sysORID.3 = OID: SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance
SNMPv2-MIB::sysORID.4 = OID: SNMPv2-MIB::snmpMIB
SNMPv2-MIB::sysORID.5 = OID: TCP-MIB::tcpMIB
SNMPv2-MIB::sysORID.6 = OID: IP-MIB::ip
SNMPv2-MIB::sysORID.7 = OID: UDP-MIB::udpMIB
SNMPv2-MIB::sysORID.8 = OID: SNMP-VIEW-BASED-ACM-MIB::vacmBasicGroup
SNMPv2-MIB::sysORID.9 = OID: SNMP-NOTIFICATION-MIB::snmpNotifyFullCompliance
SNMPv2-MIB::sysORID.10 = OID: NOTIFICATION-LOG-MIB::notificationLogMIB
SNMPv2-MIB::sysORDescr.1 = STRING: The MIB for Message Processing and Dispatching.
SNMPv2-MIB::sysORDescr.2 = STRING: The MIB for Message Processing and Dispatching.
SNMPv2-MIB::sysORDescr.3 = STRING: The SNMP Management Architecture MIB.
SNMPv2-MIB::sysORDescr.4 = STRING: The MIB module for SNMPv2 entities
SNMPv2-MIB::sysORDescr.5 = STRING: The MIB module for managing TCP implementations
SNMPv2-MIB::sysORDescr.6 = STRING: The MIB module for managing IP and ICMP implementations
SNMPv2-MIB::sysORDescr.7 = STRING: The MIB module for managing UDP implementations
SNMPv2-MIB::sysORDescr.8 = STRING: View-based Access Control Model for SNMP.
SNMPv2-MIB::sysORDescr.9 = STRING: The MIB modules for managing SNMP Notification, plus filtering.
SNMPv2-MIB::sysORDescr.10 = STRING: The MIB module for logging SNMP Notifications.
SNMPv2-MIB::sysORUpTime.1 = Timeticks: (38) 0:00:00.38
SNMPv2-MIB::sysORUpTime.2 = Timeticks: (38) 0:00:00.38
SNMPv2-MIB::sysORUpTime.3 = Timeticks: (38) 0:00:00.38
SNMPv2-MIB::sysORUpTime.4 = Timeticks: (38) 0:00:00.38
SNMPv2-MIB::sysORUpTime.5 = Timeticks: (38) 0:00:00.38
SNMPv2-MIB::sysORUpTime.6 = Timeticks: (38) 0:00:00.38
SNMPv2-MIB::sysORUpTime.7 = Timeticks: (38) 0:00:00.38
SNMPv2-MIB::sysORUpTime.8 = Timeticks: (38) 0:00:00.38
SNMPv2-MIB::sysORUpTime.9 = Timeticks: (39) 0:00:00.39
SNMPv2-MIB::sysORUpTime.10 = Timeticks: (39) 0:00:00.39
HOST-RESOURCES-MIB::hrSystemUptime.0 = Timeticks: (1323832) 3:40:38.32
HOST-RESOURCES-MIB::hrSystemUptime.0 = No more variables left in this MIB View (It is past the end of the MIB tree)

Re: Протокол SNMP в POSIX-операционных системах.

Добавлено: 12 фев 2013, 17:06
SimpleUser
Добрый день Olej, coбрал по вашим указаниям свой субагент, правда на запрос сurrentValue из cli_snmp он выдаёт мусор(( Хотел разобраться в своей конфигурации snmp, и сразу ждал неприятный сюрприз:

Код: Выделить всё

#snmpd -f -Le -d
error on subcontainer 'ia_addr' insert(-1)
Дальше зависает, и примерно каждые 30 сек. в терминал и лог выдаёт ту же строчку

Код: Выделить всё

error on subcontainer 'ia_addr' insert(-1)
Помогает только Ctrl-Z, snmpd при этом остаётся запущенным, но на любой запрос получаю:
Timeout:No Response from loсalhost

Помогает только перезапуск snmpd без параметров -- начинает штатно работать.
Долго гуглил, разброс ответов от "запретить трансляцию IPv6 адресов в конфиге ifconfig" до копания в различных snmp-конфигах(всё время разных :-o ). Вообще насколько сушествена эта неполадка?

Re: Протокол SNMP в POSIX-операционных системах.

Добавлено: 12 фев 2013, 17:14
Olej
SimpleUser писал(а):Вообще насколько сушествена эта неполадка?
Не знаю, такого не видел.

Re: Протокол SNMP в POSIX-операционных системах.

Добавлено: 13 фев 2013, 23:11
SimpleUser
Не даёт покоя snmpd.conf, вот в этом месте можно ли ещё какие-нибудь community указать, кроме public и private?
snmpd.conf.png
snmpd.conf.png (51.15 КБ) 7650 просмотров
И надо ли ещё где их регистрировать/прописывать? По поиску "snmp" нашлось ещё с десяток различных конфиг-файлов неясного назначения, вроде EXAMPLE.conf в директории net-snmp-5.7.1, непонятно для какого файла он example . А зачем нужен почти пустой snmp.conf? Есть ли ещё какие-нибудь общеизвестные конфиг-файлы snmp кроме snmpd.conf, snmpdtrap.conf?

Re: Протокол SNMP в POSIX-операционных системах.

Добавлено: 14 фев 2013, 02:09
Olej
SimpleUser писал(а):Не даёт покоя snmpd.conf, вот в этом месте можно ли ещё какие-нибудь community указать, кроме public и private?

Можно. Любое. И много разных. На то оно в конфиге и есть (в примерах, которые я вам прикреплял, всё это есть).
SimpleUser писал(а): И надо ли ещё где их регистрировать/прописывать?
snmpd.conf достаточно.
SimpleUser писал(а):А зачем нужен почти пустой snmp.conf? Есть ли ещё какие-нибудь общеизвестные конфиг-файлы snmp кроме snmpd.conf, snmpdtrap.conf?
Этих вам достаточно.
Всё есть в документации, в огромном описании:

Код: Выделить всё

bash-4.2$ man snmpd.conf
SNMPD.CONF(5)                             Net-SNMP                            SNMPD.CONF(5)

NAME
       snmpd.conf - configuration file for the Net-SNMP SNMP agent
...
SEE ALSO
       snmpconf(1), snmpusm(1), snmp.conf(5), snmp_config(5), snmpd(8), EXAMPLE.conf, netsnmp_config_api(3).
+ ещё вам 7 man-ов перечисленных в конце...

Не буду же я вам в форуме пересказывать на пальцах то, что всё написано в документации?
Читайте.

Протокол SNMP в POSIX-операционных системах.

Добавлено: 15 фев 2013, 15:33
SimpleUser
SimpleUser писал(а):Добрый день Olej, coбрал по вашим указаниям свой субагент, правда на запрос сurrentValue из cli_snmp он выдаёт мусор(( Хотел разобраться в своей конфигурации snmp, и сразу ждал неприятный сюрприз:

Код: Выделить всё

#snmpd -f -Le -d
error on subcontainer 'ia_addr' insert(-1)
Дальше зависает, и примерно каждые 30 сек. в терминал и лог выдаёт ту же строчку

Код: Выделить всё

error on subcontainer 'ia_addr' insert(-1)
Помогает только Ctrl-Z, snmpd при этом остаётся запущенным, но на любой запрос получаю:
Timeout:No Response from loсalhost

Помогает только перезапуск snmpd без параметров -- начинает штатно работать.
Долго гуглил, разброс ответов от "запретить трансляцию IPv6 адресов в конфиге ifconfig" до копания в различных snmp-конфигах(всё время разных :-o ). Вообще насколько сушествена эта неполадка?
Понял, что это слишком оптимистичное заявление по поводу штатной работы snmpd. Залезал в лог, оказалось это его постоянная ошибка:
snmpd.log02-13.png
snmpd.log02-13.png (40.41 КБ) 7641 просмотр
Но на запросы отвечает, только лог со временем сильно разбухает.
Строка 58 в snmpd.conf это:

Код: Выделить всё

view    systemview    included   .1.3.6.1.4.1.8072.2
Это тем более удивительно, поскольку:
Изображение

Строка 92:

Код: Выделить всё

view all    included  .1                               ff.ff.ff
Интересно чем ему такая маска не нравится?