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

snmpv3 get

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

snmpv3 get bulk

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% !