Tutorial su SNMP: come funzionano snmpwalk e snmpget
Il Simple Network Management Protocol (SNMP) è uno dei protocolli consolidati per la comunicazione nelle reti informatiche. Molti strumenti gestionali si rifanno a questo protocollo client-server pubblicato nel 1990, consentendo all'utente di monitorare e gestire in maniera centralizzata tutti i dispositivi di rete come router, switch o sistemi NAS. Gli strumenti snmpwalk e snmpget consentono di reperire set di dati nei MIB (Management Information Bases) di agenti SNMP selezionati, che sono installati di default nella maggior parte dei dispositivi Windows e Linux. In questo tutorial su SNMP scoprirete cosa sono in grado di fare le due applicazioni e come funzionano.
Cosa c’è dietro agli strumenti snmpwalk e snmpget?
Gli strumenti da riga di comando snmpwalk e snmpget sono parte integrante della suite Net-SNMP, che consente l’implementazione e l’utilizzo di SNMP nelle reti IPv4 e IPv6. L’insieme di strumenti è disponibile per la maggior parte dei sistemi UNIX e Linux (nel sistema di gestione dei pacchetti) così come per Microsoft Windows, anche se la funzionalità delle singole applicazioni può variare leggermente da un sistema all’altro. snmpwalk e snmpget fanno parte delle soluzioni adibite al reperimento di informazioni in dispositivi SNMP tramite richieste singole GET (snmpget) o richieste multiple GETNEXT (snmpwalk).
snmpget: semplici query SNMP
Con l’applicazione snmpget è possibile accedere alle informazioni di un utente di rete attraverso il Simple Network Management Protocol. Per questo viene utilizzato il tipo di messaggio SNMP “GET”, che richiede uno specifico record nel sistema di destinazione. A tal fine occorre specificare l’host (nome e indirizzo IP), la stringa di comunità e/o le informazioni di autenticazione (SNMPv3), così come il relativo numero identificativo (Object Identifier, 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 dispositivo SNMP, ma anche ai record successivi (rilevanti, ad esempio, per le tabelle). Per accedere a un blocco di informazioni completo, quindi a un MIB completo, snmpwalk usa messaggi di tipo “GETNEXT”, che richiedono informazioni dagli agenti finché il MIB relativo non è stato interamente completato. Relativamente alla sintassi, l’utilizzo di snmpwalk non è differente dalle query semplici con snmpget.
snmpwalk [Opzioni] [Community-String/Informazioni-autenticazione] [Nome/indirizzo host] [OID]
Tutorial su SNMP: comandi principali di snmpget e snmpwalk
In quanto strumenti da riga di comando, snmpwalk e snmpget possono essere gestiti facilmente dal terminale o dal prompt dei comandi. Se avete installato la suite Net-SNMP sul vostro sistema, avrete subito accesso alle informazioni di rete desiderate aprendo le rispettive righe di comando. In questo tutorial su SNMP abbiamo riassunto alcuni dei comandi fondamentali per entrambi i programmi.
Potete trovare i pacchetti per l’installazione 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'installazione non funziona per motivi di compatibilità su sistemi che hanno installata la versione 1.0 o versioni successive.
Come funziona la query con snmpget
Per un accesso facilitato a snmpget è possibile, come primo passo, richiamare il menu di aiuto dello strumento. Quest’ultimo offre un elenco dei parametri disponibili, inclusa una breve spiegazione, e può essere aperto tramite i seguenti comandi:
snmpget -h
Il comando per una query standard di un record selezionato dipende principalmente dalla versione del protocollo utilizzata. Questa viene specificata nei parametri e determina se vanno successivamente indicate la community string (SNMP1 e SNMPv2c) o il rispettivo metodo di autenticazione (authNoPriv, authPriv, noAuthNoPriv), comprese le relative informazioni di accesso (SNMPv3). Ad esempio, per richiedere se è disponibile un aggiornamento 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 (autenticazione, 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 (autenticazione 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 autenticazione, 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’aggiornamento. Il valore “1”, ad esempio, indica che è disponibile un aggiornamento, mentre il valore “2” si presenta quando il firmware o il sistema operativo sono già nell’ultima versione. Per poter leggere e interpretare al meglio i valori restituiti, potete caricare i MIB richiesti sul computer sul quale viene effettuata 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 downloader 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 possibilità di richiamare un elenco dei parametri richiesti e disponibili. Questo menu di aiuto compare dopo l’inserimento del seguente comando:
snmpwalk -h
Anche per quanto riguarda il reperimento dei dati, snmpwalk non si differenzia molto da snmpget. La differenza consiste principalmente nell’esecuzione dei comandi: mentre snmpget restituisce solo un singolo valore per l’OID richiesto o visualizza un messaggio di errore, nel caso in cui a un numero identificativo non corrisponda alcun oggetto, snmpwalk attraversa tutti i sottonodi. Se il numero identificativo del MIB corrispondente è noto, verrà visualizzato un elenco dettagliato delle informazioni di sistema rilevanti. Come nelle richieste singole GET, i comandi necessari dipendono dalla versione di protocollo:
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 (autenticazione, 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 (autenticazione 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 autenticazione, 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 utilizzati per effettuare query SNMP
snmpwalk e snmpget vi consentono di reperire i dati di rete desiderati tramite il Simple Network Management Protocol. Entrambi gli strumenti da riga di comando, essendo parte della suite Net-SNMP, si installano velocemente nel sistema e sono facili da utilizzare. Questo tutorial ha illustrato quanto sia semplice accedere a una singola informazione o a un blocco completo di informazioni, se si conoscono l’indirizzo IP dell’agente SNMP e il rispettivo Object Identifier.