envoie de trap SNMPv3 [perl] - Perl - Programmation
Marsh Posté le 11-06-2010 à 12:23:21
La c'est un poil trop pointu pour que je réponde (apparemment, ça a pas l'air mal, ce que tu fais).
Je lis dans la doc:
Citation : In order to support the AES Cipher Algorithm as a SNMPv3 privacy protocol, the non-core module Crypt::Rijndael is needed. |
Il est bien installé, ce module?
A+,
Marsh Posté le 11-06-2010 à 15:56:43
yep, je travaille sous Debian et j'ai installé (en plus des lib snmp) :
libcrypt-des-perl libdigest-sha1-perl libdigest-hmac-perl libcrypt-rijndael-perl
Marsh Posté le 15-06-2010 à 17:37:45
Tout d'abord, d'après la doc de la lib Net::SNMP, l'envoie de trap en v3 n'est pas possible. Il est obligatoire de passer par des informs (traps avec ack).
Du coup, j'ai reconfigurer snmptrapd avec :
Code :
|
on peut remarquer qu'il n'y a plus de EngineID. En effet, les messages inform utilisent l'engineID du serveur.
Ceci implique que la commande :
snmpinform -v 3 -u myuser -a SHA -A mypassword -x AES -X myotherpassword -l authPriv localhost 40 1.3.6.1.4.1.32569.1.2.2.1.6.1 |
enverra 2 informs au serveur :
Du coup, maintenant, l'ouverture de session réussi
Marsh Posté le 11-06-2010 à 10:43:20
Bonjour,
je voudrai envoyer des traps snmp à partir d'un script Perl. Pour cela, je me suis tourné vers la librairie Net::SNMP (documentation).
J'ai tout d'abord créer un utilisateur (dans /etc/snmp/snmptrapd.conf) sur le serveur qui doit recevoir les traps :
Ensuite, je me suis attaqué au script à proprement parlé et j'ai déjà un souci avec l'ouverture d'une session
Voici le code :
A l'exécution de ce bou de script, j'ai l'erreur suivant :
Received usmStatsUnknownUserNames.0 Report-PDU with value 1 during synchronization
Apparemment l'utilisateur n'est pas reconnu... Ce qui est étrange car si j'utilise la commande Linux :
snmptrap -e 0x0102030405 -v 3 -u myuser -a SHA -A mypassword -x AES -X myotherpassword -l authPriv localhost 40 1.3.6.1.4.1.32569.1.2.2.1.6.1
sa marche !!!
Autre chose que j'ai remarqué : un tcpdump sur le port 162 révèle les échanges suivant :
10:42:33.129365 IP 192.168.0.153.41858 > 192.168.0.153.162: F=r U= E= C= GetRequest(13) [|snmp]
10:42:33.129654 IP 192.168.0.153.162 > 192.168.0.153.41858: F= U= [|snmp][|snmp]
10:42:33.133520 IP 192.168.0.153.41858 > 192.168.0.153.162: F=apr U=myuse [|snmp][|snmp]
10:42:33.133936 IP 192.168.0.153.162 > 192.168.0.153.41858: F= U=myu [|snmp][|snmp]
Pourquoi y a-t-il un double envoie de message de type "inform" ?!?
En bref, je ne sais pas trop comment m'en sortir donc si une bonne âme peut m'aiguiller
Merci