NOTA: SNMP és un protocol del nivell d'aplicació que facilita l'intercanvi d'informació d'administració entre dispositius de xarxa.
Utilitza un servei no orientat a connexió (protocol UDP)
Hi han 3 versions del protocol:
Les més utilitzades són SNMPv1 i SNMPv2
A la nova versió (SNMPv3) s'han introduït força canvis sobretot respecte al tema de seguretat però encara no esta gaire suportat per la industria.
Els dispositius administrats tenen instal·lat un programari (agent) que s'encarreguen de recollir i emmagatzemar informació de la màquina administrada. La informació emmagatzemada es posa a disposició dels sistemes administradors de la xarxa mitjançant SNMP. Les màquines administrades poden ser encaminadors, servidors, commutadors, estacions de treball, impressores, perifèrics de xarxa o altres màquines connectades a la xarxa (màquines dispensadores d'aliments, alarmes, estacions meteorològiques, etc.)
Característiques d'un MIB:
Es una base de dades jeràrquica on cada node de l'arbre és un objecte. Hi ha dos tipus d'objectes:
1.3.6.1.2.1 Aqui esta tot o casi tot.
IMPORTANT: Per defecte anira a busca l'objecte dins el 1.3.6.1.2.1 es l'arrel per defecte.
sino vls posa els numeros hem de posa ifNumber es a dir el nom del objecte.
si volem buscar un altre objecte que no estigui a l'arrel per defecte hem de posa tota la ruta en numeros o en lletres.
instalacio del client snmp i el servidor snmpd
$ sudo apt-get install snmp
$ sudo apt-get install snmpd
Veure els ports.
$ cat /etc/services | grep snmp
snmp 161/tcp # Simple Net Mgmt Protocol snmp 161/udp # Simple Net Mgmt Protocol snmp-trap 162/tcp snmptrap # Traps for SNMP snmp-trap 162/udp snmptrap # Traps for SNMP
$ nmap localhost snmp
Starting Nmap 5.21 ( http://nmap.org ) at 2012-04-12 19:48 CEST Failed to resolve given hostname/IP: snmp. Note that you can't use '/mask' AND '1-4,7,100-' style IP ranges Nmap scan report for localhost (127.0.0.1) Host is up (0.00029s latency). Not shown: 999 closed ports PORT STATE SERVICE 631/tcp open ipp
Per posar-lo en marxa
$ sudo service snmpd start * Starting network management services:
$ ps aux | grep snmp snmp 6284 0.0 0.2 13312 4144 ? S 19:55 0:00 /usr/sbin/snmpd -Lsd -Lf /dev/null -u snmp -g snmp -I -smux -p /var/run/snmpd.pid
GetRequest: l'administrador del sistema sol·licita a l'agent que li retorni el valor d'un objecte a partir del seu identificador
GetNextRequest: serveix per processar llistes d'objectes. Un cop s'ha obtingut un objecte amb GetRequest es pot utilitzar GetNextRequest per repetir el procés amb el següent objecte de la taula
SetRequest: SNMP també suporta modificar valors d'administració de forma remota utilitzant una comunitat (paraula de pas) específica
GetResponse: respostes dels agents.
Tenim totes aquestes comandes.
$ dpkg -L snmp | grep bin /usr/bin /usr/bin/snmpbulkget /usr/bin/snmpbulkwalk /usr/bin/snmpconf /usr/bin/snmpdelta /usr/bin/snmpdf /usr/bin/snmpget /usr/bin/snmpgetnext /usr/bin/snmpnetstat /usr/bin/snmpset /usr/bin/snmpstatus /usr/bin/snmptable /usr/bin/snmptest /usr/bin/snmptranslate /usr/bin/snmptrap /usr/bin/snmpusm /usr/bin/snmpvacm /usr/bin/snmpwalk /usr/bin/encode_keychange /usr/bin/fixproc /usr/bin/traptoemail /usr/bin/snmpinform
La comanda snmpwalk ens mostra els continguts de la base de dades MIB de SNMP
exemple
$ snmpwalk -Os -c public -v 2c 10.36.253.1 ifNumber ifNumber.0 = INTEGER: 16
$ snmpwalk -Os -c public -v 2c 10.36.253.1 mib.2 |more sysDescr.0 = STRING: RouterOS RB600A sysObjectID.0 = OID: enterprises.14988.1 sysUpTimeInstance = Timeticks: (191754300) 22 days, 4:39:03.00 sysContact.0 = STRING: [email protected] sysName.0 = STRING: TortosaINSEbreRd1 sysLocation.0 = STRING: TortosaINSEbre sysServices.0 = INTEGER: 78 ifNumber.0 = INTEGER: 16 ifIndex.1 = INTEGER: 1 ifIndex.2 = INTEGER: 2 ifIndex.3 = INTEGER: 3 ifIndex.4 = INTEGER: 4 ifIndex.5 = INTEGER: 5 ifIndex.6 = INTEGER: 6 ifIndex.7 = INTEGER: 7 ifIndex.8 = INTEGER: 8