2017-11-08 1 views
0

Ich implementiere den pysnmp-Code für snmpv3 und versuche, einen Trap an einen Computer in meinem Netzwerk zu senden. Ich kann sehen, dass die Falle in Wireshark gesehen wird, aber sie taucht nicht in meinen Fallenempfängern auf. Der Code ist wie folgt:PySNMP SNMPV3 Trap wird nicht gesendet

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) 

Wenn ich authkey, PrivKey, authProtocol und privProtocol entfernen, kann ich die Fallen sehen in der Trap-Empfänger empfangen wird, aber wenn ich sie alle in setzen, sehe ich nicht die Fallen.

Meine Fragen sind:

  1. Muss ubuntu seine 161 und 162 Ports für Windows-Maschine, sie zu empfangen öffnen?
  2. Selbst mit einer fest codierten Engine-ID kann ich eine Trap ohne Authentifizierung senden, aber ist im Falle einer vollständigen Authentifizierung die korrekte Engine-ID erforderlich? Ist das der Grund, warum die Falle nicht auftaucht? Wenn ja, kann mir jemand helfen, die Motor-ID des Empfängersystems zu finden?
  3. Können wir sicher sagen, dass, da Wireshark klar sieht, dass die Falle durchkommt, es nur eine Frage der Konfiguration auf dem Trap-Empfänger ist, um die Falle zu zeigen?

Bitte helfen Sie mir dabei.

Vielen Dank.

Antwort

0

Stellen Sie sicher, dass Ihre SNMPv3-Schlüssel 8 oder mehr Zeichen lang sind. Dies ist eine Anforderung, die mit dem SNMP-Standard einhergeht.

Mit SNMPv3-TRAP müssen Sie die SNMP-Engine-ID sowohl für den Benachrichtigungsurheber (Ihr Skript) als auch für den Benachrichtigungsempfänger explizit konfigurieren, wenn Sie Kryptofunktionen verwenden.

Sie sollten eine beliebige SNMP-Engine-ID für Ihren Benachrichtigungsurheber festlegen (dies ist der autorisierende Teil in diesem Austausch) und dann dieselbe SNMP-Engine-ID (zusammen mit USM-Benutzern und -Tasten) für Ihren Benachrichtigungsempfänger konfigurieren. Keine Notwendigkeit, herauszufinden, SNMP-Engine-ID des Empfängers.

Es kann sich nicht um ein Firewall-Problem handeln, da nur Text-TRAPs durchkommen.

Kann versucht werden, einfachere Einrichtung wie MD5 Auth und keine Verschlüsselung (authNoPriv). Nur für den Fall, dass Ihr Benachrichtigungsempfänger die neuere Cypher-Suite nicht unterstützt.