2017-11-08 23 views
0

네트워크의 시스템에 트랩을 보내려고 snmpv3의 pysnmp 코드를 구현하고 있습니다. 나는 함정이 Wireshark에서 보이고 있음을 볼 수 있지만 그것은 나의 함정 수신기에 나타나지 않는다. 코드는 다음과 같습니다 : 나는 인증 키, privKey, authProtocol 및 privProtocol을 제거하면PySNMP SNMPV3 트랩이 전송되지 않습니다.

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) 

, 나는 트랩은 트랩 수신기에 받았다되는 것을 볼 수 있지만 내가 그들 모두를 넣을 때, 나는 트랩을 볼 수 없습니다.

내 질문은 :

  1. 이 우분투를받을 윈도우 머신에 대한 자사의 161 개 및 162 포트를 열 필요가 있습니까?
  2. 하드 코딩 된 엔진 ID가 있어도 인증없이 트랩을 보낼 수 있지만 전체 인증의 경우 올바른 엔진 ID가 있어야합니까? 그 함정이 나타나지 않는 이유가 무엇입니까? 그렇다면 수신 시스템의 엔진 ID를 찾는 사람을 안내해 줄 수 있습니까?
  3. 우리는 Wireshark가 함정을 분명히보고 있기 때문에 함정을 보여주기 위해 함정 수령기의 유일한 구성 문제라고 말할 수 있습니까?

도와주세요.

감사합니다.

답변

0

SNMPv3 키의 길이가 8 자 이상인지 확인하십시오. 이것은 SNMP 표준과 함께 제공되는 요구 사항입니다.

SNMPv3 TRAP을 사용하면 암호화 기능을 사용하는 경우 알림 작성자 (사용자의 스크립트)와 알림 수신자 모두에 SNMP 엔진 ID를 명시 적으로 구성해야합니다.

알림 작성자 (이 교환의 신뢰할 수있는 부분)에 임의의 SNMP 엔진 ID를 설정 한 다음 알림 수신기에 동일한 SNMP 엔진 ID (USM 사용자 및 키와 함께)를 구성해야합니다. 수신기의 SNMP 엔진 ID를 파악할 필요가 없습니다.

일반 텍스트 트랩이 통과하기 때문에 방화벽 문제가 아닐 수도 있습니다.

MD5 인증 및 암호화 없음 (authNoPriv)과 같은 간단한 설정을 시도해보십시오. 알림 수신자가 최신 사이퍼 제품군을 지원하지 않는 경우를 대비하여.