Networking

Cosa è e come funziona l’SNMP

14 Gennaio 2019

Sai bene come funziona il protocollo SNMP?

Se la risposta è sì, allora ti consiglio di non perdere tempo con questa lettura, potresti non trovare materiale interessante per te. Se la risposta è no, o comunque vorresti saperne di più, allora ti consiglio vivamente di leggere quanto segue.

Partiamo da un presupposto: il protocollo SNMP è uno strumento indispensabile nella gestione delle reti.

Il problema è che ha anche delle “controindicazioni” e non gode di una fama straordinaria a causa delle vulnerabilità presenti nella prima versione.

Ma vediamo di cosa si tratta.
 

 

Che cos’è l’SNMP?

 
L’SNMP è un protocollo creato nel 1989 per consentire a diversi dispositivi all’interno di una rete di comunicare informazioni tra loro.

Questo tipo di protocollo funziona anche con dispositivi con hardware e software differenti, per cui può essere davvero utile in un ambiente di rete variegato.

Senza il protocollo SNMP non ci sarebbe alcun modo per identificare i device, monitorare le performance e tenere traccia dei cambiamenti all’interno del network in tempo reale.

SNMP ha una semplice architettura basata sul modello client-server: i server vengono chiamati manager e raccolgono e processano le informazioni sui device presenti nella rete, mentre i client sono chiamati agent e sono tutti i dispositivi o i componenti che possono comunicare con la rete. Questo include PC, switch, telefoni, stampanti, ecc.

Alcuni dispositivi presentano più componenti in grado di connettersi al network. I PC, ad esempio, hanno quasi sempre la possibilità di connettersi sia con un cavo di rete che con il Wi-Fi, all’interno di SNMP queste due modalità di collegamento contano come due elementi separati.

Come hai visto l’architettura del protocollo SNMP è molto semplice, ma la struttura con cui esso organizza i dati non lo è altrettanto.
 

La struttura di SNMP

 
Per garantire una certa flessibilità, l’SNMP non richiede ai device di rete di scambiare dati in una forma e un formato fissi. Invece utilizza a un modello “ad albero” all’interno del quale i dati sono sempre disponibili.

Questo modello è costituito da diverse tabelle (o rami, giusto per rimanere in tema) chiamate “Management Information Bases” o MIB. I MIB raggruppano diversi tipi di device o componenti e sono identificati da un numero e una stringa univoci. Numero identificativo e stringa sono intercambiabili e possono essere utilizzati indifferentemente (un po’ come indirizzi IP e hostname).
All’interno di questi MIB si trovano uno o più nodi, che rappresentano i dispositivi o i componenti connessi alla rete.

Per identificare i nodi viene utilizzato un Object Identifier (OID) univoco.
L’OID per un dato nodo è determinato dal numero o dalla stringa che identificano l’MIB di appartenenza combinato con un codice (numerico o stringa) che identifica il tipo di device.

Questo vuol dire che l’OID può essere sia un numero che una stringa.

Ti porto un paio di esempi di OID equivalenti:

  • 1.3.6.1.4.868.2.4.1.2.1.1.1.3.3562.3.
  • iso.org.dod.internet.private.transition.products.chassis.card.slotCps­.
    cpsSlotSummary.cpsModuleTable.cpsModuleEntry.cpsModuleModel.3562.3.

Utilizzando l’OID un manager può ricercare un agent e trovare le informazioni su qualsiasi device nella rete.

Ad esempio, per verificare se l’interfaccia di rete di un device è attiva, un manager prima esegue una query sull’interfaccia del MIB (chiamata IF-MIB), poi controlla il valore dell’OID che indica lo status dell’interfaccia.

Per rendere più chiaro il concetto provo a farti un esempio riportando questa struttura ad albero alla vita di tutti i giorni.

I puristi del protocollo potrebbero inorridirsi a leggere le prossime righe, ma la semplificazione che segue è fatta per farmi capire meglio.

Se volessimo rappresentare i dati personali di un individuo, potremmo dire che il suo MIB non è altro che la struttura stessa dei dati, ovvero:

Anagrafica (1)

  • Nome (1)
  • Cognome (2)

Residenza (2)

  • Indirizzo (1)
    • Via (2)
    • Numero civico (3)
  • Città(2)
  • Provincia (3)

 
L’OID, invece, è una sequenza di numeri o una stringa che identifica un dato specifico all’interno di questa struttura.

Quindi per sapere il mio numero civico non devi fare altro che accedere al percorso 2.1.3, seguendo l’alberatura residenza.indirizzo.numero civico.
 

Perché utilizzare gli OID?

A un primo veloce sguardo la struttura basata su MIB e OID può creare un po’ di confusione. Ci sono però diversi vantaggi da considerare.

Uno di questi è che le informazioni possono essere prese dal manager senza inviare una richiesta specifica all’agent. Questo riduce il sovraccarico e assicura che le informazioni sullo stato della rete siano sempre disponibili e verificabili.

SNMP fornisce anche un modo semplice e flessibile per organizzare molti dispositivi all’interno di un network. Non importa quanto grande o piccola sia la rete o che tipo di dispositivi vi siano al suo interno, con il protocollo SNMP puoi raccogliere anche grandi quantità di informazioni rapidamente e senza intasare la rete con traffico eccessivo.

Inoltre è bene notare che alcuni valori di OID sono vendor-specifici, per cui è facile capire delle informazioni sui device semplicemente basandosi sul loro OID. Ad esempio, se un OID comincia con 1.3.6.1.4.1.9 vuol dire che è un device Cisco.
 

Versioni del protocollo SNMP

L’ultima importante cosa da sapere sul protocollo SNMP è che ci sono molte differenze tra le varie versioni, soprattutto per quanto riguarda la sicurezza.

La prima versione del protocollo, SNMPv1, presenta delle funzionalità di sicurezza molto deboli.
Utilizzando questa versione i manager possono autenticare gli agent senza alcuna cifratura delle informazioni. Questo vuol dire che chiunque abbia accesso al network potrebbe far partire un software di sniffing per intercettare le informazioni sul network.

In più un device non autorizzato può benissimo “fingere” di essere un manager e controllare le informazioni della rete.
Se ci metti anche che molti utenti di SNMPv1 utilizzano delle credenziali di accesso deboli o usano quelle di default, giungerai alla conclusione che per un malintenzionato fare breccia in questi sistemi è un gioco da ragazzi.

Nonostante SNMPv1 abbia la sua “importante” età viene purtroppo ancora ampiamente utilizzato in alcune realtà.

SNMPv2 è stato lanciato nel 1993 con degli “adeguamenti” dal punto di vista della sicurezza. Nonostante ciò è stato sostituito nel 1998 dalla versione più recente del protocollo, SNMPv3, che rimane la migliore e la più sicura per le aziende.

In SNMPv3 è presente la cifratura dei dati in transito. In più gli amministratori possono specificare diversi requisiti di autenticazione per manager e agent, impedendo così autenticazioni non autorizzate.

Ovviamente ti consiglio di utilizzare quest’ultima versione se hai necessità di controllare delle informazioni sulle reti dei clienti. E non temere: SNMP non è abilitato di default, quindi nessuno dei tuoi clienti sta utilizzando la pericolosa versione 1 del protocollo a meno che qualcuno non l’abbia abilitata di proposito.

Visto che ho portato la discussione un po’ sul tecnico, diciamo anche che SNMP utilizza per il trasporto l’UDP, sulle porte 161 e 162.

Il fatto di utilizzare UDP (invece di TCP) riduce il traffico dovuto al protocollo al minimo indispensabile, il che rende SNMP adatto a monitoraggi in tempo reale.

Gestire le informazioni ricavate dal protocollo SNMP

Utilizzando il protocollo SNMP, quindi, è possibile ottenere delle preziose informazioni sulle reti dei tuoi clienti. Puoi ad esempio sapere:

  • stato della batteria residua degli USP;
  • livello di inchiostro nelle stampanti;
  • velocità e stato delle porte dei router/firewal

Per ottenere tutte queste informazioni, però, è richiesto un minimo di esperienza nel maneggiare SNMP e un bel po’ di tempo.

In più, in questo periodo storico caratterizzato da network costituiti da device di vendor diversi, diventa ancora più difficile avere tutte le conoscenze necessarie per sfruttare appieno il potenziale di SNMP.

Per questo motivo esistono soluzioni come Auvik che sono in grado di prendere questi dati e renderli immediatamente leggibili e facilmente interpretabili, senza che siano richieste particolari competenze tecniche.

I dati sono sempre disponibili e mappati in tempo reale e in maniera automatica. Non devi far altro che individuare quello che ti serve sapere e in un paio di click hai le informazioni.

Non mi dilungo ulteriormente sulla questione ma se vuoi sapere di più su Auvik, ti consiglio di ascoltare questo episodio del podcast RadioAchab o di scrivere a sales@achab.it.

Tratto dal blog di Auvik.

Autore
Claudio Panerai
Gli ultimi prodotti che vi ho portato, nel 2020: Vade Secure Il primo sistema antispam/antihishing/antimalware basato sull'intelligenza artificiale e appositamente progettato per Office 365. Naturalmente a misura di MSP. ID Agent Piaffaforma che consente agli MSP di monitorare le credenziali (proprie e dei clienti) che sono in vendita nel dark web.
Nato a Ivrea nel 1969, è sposato e padre di due figlie. Laureato in Scienze dell’Informazione nel 1993, ha dapprima svolto numerose consulenze e corsi di formazione per varie società per poi diventare responsabile IT per la filiale italiana del più grande editore mondiale di informatica, IDG Communications. Dal 2004 lavora in Achab dapprima come Responsabile del Supporto Tecnico per poi assumere dal 2008 la carica di Direttore Tecnico. Giornalista iscritto all’albo dei pubblicisti, dal 1992 pubblica regolarmente articoli su riviste di informatica e siti web di primo piano. E' stimato da colleghi e clienti per la schiettezza e onestà intellettuale. Passioni: viaggi, lettura, cinema, Formula 1, sviluppo personale, investimenti immobiliari, forex trading. Claudio è anche su LinkedIn e Facebook.
Commenti (3)

Bravo Claudio! Qui usiamo SNMP da anni e continua ad essere lo strumento più comodo per il monitoraggio in tempo reale e lo storico dei Clienti.
Colgo l’occasione per segnalare un gioiellino free di nome Observium (www.observium.com), che ha il pregio di spremere fino all’ultimo tutte le informazioni SNMP dei nodi e di gestire syslog, soglie e allarmi.
Come giustamente ti aspetterai dal sottoscritto… gira su Linux :-), ma si installa in tre minuti e non ha richieste eccessive, anche se un SSD gli fa molto comodo quando il database inizia a riempirsi bene.
Si tratta sempre di soluzioni che rinforzano l’azione preventiva, quindi preziose.

Luca Sasdelli,

P.S.: nell’articolo non hai indicato che SNMP utilizza UDP per le sue comunicazioni, per cui, mancando la classica catena di acknowledgement del TCP, ottiene la riduzione del traffico ai minimi termini.

Luca Sasdelli,

@Hai ragione Luca, non ho minimamente fatto riferimento a UDP: lo aggiungo e grazie dello spunto.

Claudio Panerai,

Lascia un commento

Il tuo indirizzo e-mail non verrà pubblicato, lo utilizzeremo solamente per inviarti la notifica della pubblicazione del tuo commento. Ti informiamo che tutti i commenti sono soggetti a moderazione da parte del nostro staff.

Tieniti aggiornato

Inserisci il tuo indirizzo e-mail per ricevere gli aggiornamenti di Achab