Ловушка PySNMP SNMPV3 не отправляется
Я реализую код pysnmp для snmpv3, пытаясь отправить ловушку на компьютер в моей сети. Я вижу, что ловушка видна в Wireshark, но она не обнаруживается ни в одном из моих приемников ловушек. Код как ниже:
from pysnmp.hlapi import *
errorIndication, errorStatus, errorIndex, varBinds = next(
sendNotification(
SnmpEngine(OctetString(hexValue='8000000001020304')),
UsmUserData('usr', authKey='authh', privKey='privv',
authProtocol=usmHMACSHAAuthProtocol,
privProtocol=usmAesCfb128Protocol),
UdpTransportTarget('192.168.1.79',162),
ContextData(),
'trap',
NotificationType(ObjectIdentity('SNMPv2-MIB', 'authenticationFailure'))
)
)
if errorIndication:
print(errorIndication)
Если я удаляю authKey, privKey, authProtocol и privProtocol, я вижу, что ловушки получаются в приемнике ловушек, но когда я помещаю их все, я не вижу ловушек.
Мои вопросы:
- Нужно ли Ubuntu открывать свои 161 и 162 порты для Windows-машины, чтобы получить его?
- Даже с жестко запрограммированным идентификатором Engine, я могу отправить ловушку без аутентификации, но необходимо ли иметь правильный ID Engine в случае полной аутентификации? Вот почему ловушка не появляется? Если да, может ли кто-нибудь помочь мне найти идентификатор двигателя принимающей системы?
- Можем ли мы с уверенностью сказать, что, поскольку Wireshark четко видит, как проходит ловушка, на приемнике ловушек требуется только конфигурация, чтобы показать ловушку?
Пожалуйста, помогите мне с этим.
Спасибо.
1 ответ
Убедитесь, что ваши ключи SNMPv3 имеют длину 8 или более символов. Это требование, которое входит в стандарт SNMP.
При использовании SNMPv3 TRAP вам необходимо явно настроить идентификатор механизма SNMP как для источника уведомлений (вашего сценария), так и для получателя уведомлений, если вы используете какие-либо криптографические функции.
Вы должны установить произвольный идентификатор механизма SNMP для отправителя уведомлений (это официальная часть в этом обмене), а затем настроить тот же идентификатор механизма SNMP (вместе с пользователем и ключами USM) для получателя уведомлений. Не нужно выяснять идентификатор движка SNMP получателя.
Это может не быть проблемой брандмауэра, так как простые текстовые сообщения проходят.
Может быть, попробуйте более простую настройку, такую как аутентификация MD5 и отсутствие шифрования (authNoPriv). На всякий случай ваш получатель уведомлений не поддерживает более новый набор шифров.