Il Simple Network Ma­na­ge­ment Protocol (SNMP) è uno dei pro­to­col­li con­so­li­da­ti per la co­mu­ni­ca­zio­ne nelle reti in­for­ma­ti­che. Molti strumenti ge­stio­na­li si rifanno a questo pro­to­col­lo client-server pub­bli­ca­to nel 1990, con­sen­ten­do al­l'u­ten­te di mo­ni­to­ra­re e gestire in maniera cen­tra­liz­za­ta tutti i di­spo­si­ti­vi di rete come router, switch o sistemi NAS. Gli strumenti snmpwalk e snmpget con­sen­to­no di reperire set di dati nei MIB (Ma­na­ge­ment In­for­ma­tion Bases) di agenti SNMP se­le­zio­na­ti, che sono in­stal­la­ti di default nella maggior parte dei di­spo­si­ti­vi Windows e Linux. In questo tutorial su SNMP sco­pri­re­te cosa sono in grado di fare le due ap­pli­ca­zio­ni e come fun­zio­na­no.

Cosa c’è dietro agli strumenti snmpwalk e snmpget?

Gli strumenti da riga di comando snmpwalk e snmpget sono parte in­te­gran­te della suite Net-SNMP, che consente l’im­ple­men­ta­zio­ne e l’utilizzo di SNMP nelle reti IPv4 e IPv6. L’insieme di strumenti è di­spo­ni­bi­le per la maggior parte dei sistemi UNIX e Linux (nel sistema di gestione dei pacchetti) così come per Microsoft Windows, anche se la fun­zio­na­li­tà delle singole ap­pli­ca­zio­ni può variare leg­ger­men­te da un sistema all’altro. snmpwalk e snmpget fanno parte delle soluzioni adibite al re­pe­ri­men­to di in­for­ma­zio­ni in di­spo­si­ti­vi SNMP tramite richieste singole GET (snmpget) o richieste multiple GETNEXT (snmpwalk).

snmpget: semplici query SNMP

Con l’ap­pli­ca­zio­ne snmpget è possibile accedere alle in­for­ma­zio­ni di un utente di rete at­tra­ver­so il Simple Network Ma­na­ge­ment Protocol. Per questo viene uti­liz­za­to il tipo di messaggio SNMP “GET”, che richiede uno specifico record nel sistema di de­sti­na­zio­ne. A tal fine occorre spe­ci­fi­ca­re l’host (nome e indirizzo IP), la stringa di comunità e/o le in­for­ma­zio­ni di au­ten­ti­ca­zio­ne (SNMPv3), così come il relativo numero iden­ti­fi­ca­ti­vo (Object Iden­ti­fier, OID).

snmpget [Opzioni] [Community-String/Informazioni-autenticazione] [Nome/indirizzo host] [Object Identifier]

snmpwalk: richieste SNMP di MIB completi

Con lo strumento snmpwalk è possibile accedere non solo a un singolo record sul di­spo­si­ti­vo SNMP, ma anche ai record suc­ces­si­vi (rilevanti, ad esempio, per le tabelle). Per accedere a un blocco di in­for­ma­zio­ni completo, quindi a un MIB completo, snmpwalk usa messaggi di tipo “GETNEXT”, che ri­chie­do­no in­for­ma­zio­ni dagli agenti finché il MIB relativo non è stato in­te­ra­men­te com­ple­ta­to. Re­la­ti­va­men­te alla sintassi, l’utilizzo di snmpwalk non è dif­fe­ren­te dalle query semplici con snmpget.

snmpwalk [Opzioni] [Community-String/Informazioni-autenticazione] [Nome/indirizzo host] [OID]

Tutorial su SNMP: comandi prin­ci­pa­li di snmpget e snmpwalk

In quanto strumenti da riga di comando, snmpwalk e snmpget possono essere gestiti fa­cil­men­te dal terminale o dal prompt dei comandi. Se avete in­stal­la­to la suite Net-SNMP sul vostro sistema, avrete subito accesso alle in­for­ma­zio­ni di rete de­si­de­ra­te aprendo le ri­spet­ti­ve righe di comando. In questo tutorial su SNMP abbiamo riassunto alcuni dei comandi fon­da­men­ta­li per entrambi i programmi.

N.B.

Potete trovare i pacchetti per l’in­stal­la­zio­ne di Net-SNMP nell’area download del sito ufficiale. Dato che i file binari per Windows sono basati sulla versione 0.9.8r di OpenSSL, l'in­stal­la­zio­ne non funziona per motivi di com­pa­ti­bi­li­tà su sistemi che hanno in­stal­la­ta la versione 1.0 o versioni suc­ces­si­ve.

Come funziona la query con snmpget

Per un accesso fa­ci­li­ta­to a snmpget è possibile, come primo passo, ri­chia­ma­re il menu di aiuto dello strumento. Quest’ultimo offre un elenco dei parametri di­spo­ni­bi­li, inclusa una breve spie­ga­zio­ne, e può essere aperto tramite i seguenti comandi:

snmpget -h

Il comando per una query standard di un record se­le­zio­na­to dipende prin­ci­pal­men­te dalla versione del pro­to­col­lo uti­liz­za­ta. Questa viene spe­ci­fi­ca­ta nei parametri e determina se vanno suc­ces­si­va­men­te indicate la community string (SNMP1 e SNMPv2c) o il ri­spet­ti­vo metodo di au­ten­ti­ca­zio­ne (au­th­No­Priv, authPriv, noAu­th­No­Priv), comprese le relative in­for­ma­zio­ni di accesso (SNMPv3). Ad esempio, per ri­chie­de­re se è di­spo­ni­bi­le un ag­gior­na­men­to del firmware o del sistema operativo è possibile digitare uno dei 5 comandi seguenti, a seconda della versione:

query snmpget via SNMPv1:

snmpget -v1 -c [Community-String] [Indirizzo IP dell’host] [OID per update-check]

query snmpget via SNMPv2:

snmpget -v2c -c [Community-String] [Indirizzo IP dell’host] [OID per update-check]

query snmpget via SNMPv3 (au­ten­ti­ca­zio­ne, ma nessuna cifratura):

snmpget -v3 -l authNoPriv -u [user name] -a MD5 -A [hash MD% della password dell’utente] [Indirizzo IP dell’host] [OID per update-check]

query snmpget via SNMPv3 (au­ten­ti­ca­zio­ne e cifratura):

snmpget -v3 -l authPriv -u [user name] -a MD5 -A [user password] -x DES -X [password DES] [Indirizzo IP dell’host] [OID per update-check]

query snmpget via SNMPv3 (nessuna au­ten­ti­ca­zio­ne, nessuna cifratura):

snmpget -v3 -l noAuthNoPriv -u [user name] [Indirizzo IP dell’host] [OID per update-check]

Il risultato della richiesta sarà un valore numerico che vi informa dello stato dell’ag­gior­na­men­to. Il valore “1”, ad esempio, indica che è di­spo­ni­bi­le un ag­gior­na­men­to, mentre il valore “2” si presenta quando il firmware o il sistema operativo sono già nell’ultima versione. Per poter leggere e in­ter­pre­ta­re al meglio i valori re­sti­tui­ti, potete caricare i MIB richiesti sul computer sul quale viene ef­fet­tua­ta la query SNMP e copiare i relativi file nella directory /usr/share/snmp/mibs. Per i sistemi Linux/UNIX è possibile scaricare a tale scopo un do­wn­loa­der MIB che vi può essere d’aiuto in questa fase.

sudo apt install snmp-mibs-downloader

Come funziona la query di MIB completi con snmpwalk

Anche snmpwalk vi dà la pos­si­bi­li­tà di ri­chia­ma­re un elenco dei parametri richiesti e di­spo­ni­bi­li. Questo menu di aiuto compare dopo l’in­se­ri­men­to del seguente comando:

snmpwalk -h

Anche per quanto riguarda il re­pe­ri­men­to dei dati, snmpwalk non si dif­fe­ren­zia molto da snmpget. La dif­fe­ren­za consiste prin­ci­pal­men­te nell’ese­cu­zio­ne dei comandi: mentre snmpget re­sti­tui­sce solo un singolo valore per l’OID richiesto o vi­sua­liz­za un messaggio di errore, nel caso in cui a un numero iden­ti­fi­ca­ti­vo non cor­ri­spon­da alcun oggetto, snmpwalk at­tra­ver­sa tutti i sottonodi. Se il numero iden­ti­fi­ca­ti­vo del MIB cor­ri­spon­den­te è noto, verrà vi­sua­liz­za­to un elenco det­ta­glia­to delle in­for­ma­zio­ni di sistema rilevanti. Come nelle richieste singole GET, i comandi necessari dipendono dalla versione di pro­to­col­lo:

query snmpwalk via SNMPv1:

snmpwalk -v1 -c [Community-String] [Indirizzo IP dell’host] [OID del sistema di informazione MIB]

query snmpwalk via SNMPv2:

snmpwalk -v2c -c [Community-String] [Indirizzo IP dell’host] [OID del sistema di informazione MIB]

query snmpwalk via SNMPv3 (au­ten­ti­ca­zio­ne, ma nessuna cifratura):

snmpwalk -v3 -l authNoPriv -u [user name] -a MD5 -A [user password] [Indirizzo IP dell’host] [OID del sistema di informazione MIB]

query snmpwalk via SNMPv3 (au­ten­ti­ca­zio­ne e cifratura):

snmpwalk -v3 -l authPriv -u [user name] -a MD5 -A [user password] -x DES -X [Password DES] [Indirizzo IP dell’host] [OID del sistema di informazione MIB]

query snmpwalk via SNMPv3 (nessuna au­ten­ti­ca­zio­ne, nessuna cifratura):

snmpwalk -v3 -l noAuthNoPriv -u [user name] [Indirizzo IP dell’host] [OID del sistema di informazione MIB]

In sintesi: snmpwalk e snmpget sono semplici strumenti uti­liz­za­ti per ef­fet­tua­re query SNMP

snmpwalk e snmpget vi con­sen­to­no di reperire i dati di rete de­si­de­ra­ti tramite il Simple Network Ma­na­ge­ment Protocol. Entrambi gli strumenti da riga di comando, essendo parte della suite Net-SNMP, si in­stal­la­no ve­lo­ce­men­te nel sistema e sono facili da uti­liz­za­re. Questo tutorial ha il­lu­stra­to quanto sia semplice accedere a una singola in­for­ma­zio­ne o a un blocco completo di in­for­ma­zio­ni, se si conoscono l’indirizzo IP dell’agente SNMP e il ri­spet­ti­vo Object Iden­ti­fier.

Vai al menu prin­ci­pa­le