SNMPv3 – Bouh le gros !
|Le but de ce billet est de dénoncer la boulimie délirante du protocole SNMPv3 !
Le protocole SNMP (Simple Network Management Protocol) rappelons le, permet de récupérer un certain nombre d’informations sur un équipement à distance (il permet aussi de configurer plein plein de choses sur ces mêmes équipements, mais cette fonctionnalité est à utiliser avec beaucoup de précaution étant donnée le faible niveau de sécurité qu’offre ce protocole)… C’est un protocole très souvent utilisé car malgré de profondes lacunes en sécurité, performance et compatibilité, c’est un protocole standardisé bien pratique en comparaison du lourd traitement qu’impose l’utilisation des syslog.
L’implémentation de SNMPv3 dans une infrastructure riche telle que celle d’un Data-Center n’est pas à prendre à la légère. Plusieurs centaines voir milliers d’informations sont récupérées à de très courts intervalles (1,2,5 minutes…), ce qui commence à peser sacrément dans la load-balance (Pouet !) ! Parce qu’une démonstration vaut mieux qu’un long discourt, voici l’expression de cette voracité décomplexée !
Get d’une OID spécifique
Nous allons réaliser une même demande Get avec trois utilisateurs dans trois versions ou modes de fonctionnement de SNMP, afin de déterminer le trafic qui sera respectivement généré par ces trois transactions :
Commandes
SNMP v2c :
snmpwalk -v 2c -c public 192.168.1.207 1.3.6.1.2.1.4.30.1.5.1
SNMP v3 avec authentification :
snmpwalk -v 3 -u user -lauthNoPriv -a MD5 -A useruseruser 192.168.1.207 1.3.6.1.2.1.4.30.1.5.1
SNMP v3 avec authentification et cryptage :
snmpwalk -v 3 -u admin -l authPriv -a MD5 -A adminadmin -x DES -X adminadmin 192.168.1.207 1.3.6.1.2.1.4.30.1.5.1
Résultats
snmp v2c |
snmp v3 auth |
snmp v3 auth+Priv |
|||
– | – | get-request |
848 bits |
get-request |
848 bits |
– | – | report |
1264 bits |
report |
1264 bits |
get-next-request |
696 bits |
get-next-request |
1392 bits |
get-next-request |
1488 bits |
get-response |
704 bits |
get-response |
1400 bits |
get-response (DES) |
1488 bits |
get-request |
696 bits |
get-request |
1392 bits |
get-request (DES) |
1488 bits |
get-response |
704 bits |
get-response |
1400 bits |
get-response (DES) |
1488 bits |
Total |
2800 bits |
Total |
7696 bits |
Total |
8064 bits |
Soit une augmentation du trafic entre la version 2c et la version 3 avec authentification de 274% ! Et une augmentation du trafic entre la version 2c et la version 3 avec authentification et chiffrement DES de 288% !
GetBulk de la racine
La version 2 du protocole SNMP introduit les messages de type Get Bulk permettant d’obtenir des blocs de réponses. Ce nouveau type de message a pour but d’alléger les échanges SNMP en condensant les requêtes.
Commandes
SNMP v2c :
snmpbulkwalk -v 2c -c public 192.168.1.207 1
SNMP v3 avec authentification :
snmpbulkwalk -v 3 -u user -lauthNoPriv -a MD5 -A useruseruser 192.168.1.207 1
SNMP v3 avec authentification et cryptage :
snmpbulkwalk -v 3 -u admin -l authPriv -a MD5 -A adminadmin -x DES -X adminadmin 192.168.1.207 1
Résultats
snmp v2c |
snmp v3 auth |
snmp v3 auth+Priv |
|||
Trames |
690 |
Trames |
1063 |
Trames |
1074 |
Total |
221 185 octets |
Total |
345 320 octets |
Total |
362 879 octets |
Soit une augmentation du trafic entre la version 2c et la version 3 avec authentification de 56% ! Et une augmentation du trafic entre la version 2c et la version 3 avec authentification et chiffrement DES de 64% !