Home Uncategorized Entendiendo SNMP, base de muchas cosas…

Entendiendo SNMP, base de muchas cosas…

by José Luis Sánchez Borque

Con este post haremos una pequeña introducción a uno de los más importantes protocolos para la gestión, administración y diagnósitco de problemas de los dispositivos de red. Estamos hablando del protocolo de capa de aplicación SNMP (Simple Network Management Protocol).

Uno de los usos más extendidos del protocolo SNMP es la monitorización de dispositivos de red.  Cualquier aplicación de monitoreo como ZABBIX, GRAFANA, NAGIOS, etc… es capaz de gestionar SNMP con un dispositivo remoto, y presentar dichos datos de una forma visible.

SNMP nos permite trabajar de dos formas diferentes: polling y traps. Con el primer método, polling, cualquier aplicación que entienda SNMP puede enviar consultas remotas a un dispositivo de red, pudiendo leer o cambiar la información del dispositivo remoto. Has odio bien, CAMBIAR. Es decir, una mala configuración del sistema, no solamente permite obtener información privilegiada de un sistema remoto, sino que permite incluso cambiarla. En la imagen adjunto que luego comentaremos con más detenimiento, correspondería a GET y SET.

 

Los traps son mensajes que lanza un dispositivo SNMP a una determinada dirección establecida, basándose en determinados eventos o cambios en el sistema. El envío de dicha información se hace de forma asíncrona, es decir, cuando se produce.

De forma bien simple podemos ver SNMP como un servicio de la capa de aplicación que nos permite acceder a un sistema de re remoto para consultar o cambiar valores como:

  • UpTime
  • IP del sistema remoto
  • Nombre del sistema remoto
  • Máscara
  • Espacio en disco duro
  • etc.

Debemos entender que una buena metodología pasa por una correcta configuración del servicio SNMP, o estaremos permitiendo al hacker del turno hacer lo que quiera con nuestro sistema,tanto para obtener información, como para configurar nuestros dispositivos de red

Cuando hablamos de SNMP, hay dos conceptos clave que debemos entender: MIB y OID.

¿Qué es MIB?

MIB, Management Information Base, no deja de ser una colección de información estructurada que se usa para administrar dispositivos de red. Cada dispositivo de red tiene una base de datos llamada MIB, o MIB Table o MIB tree con un conjunto de objetos, que no dejan de ser los valores que representan información sobre la memoria, su estados, las tarjetas de red, la máquina, servicios, aplicaciones, etc…

MIB-II es la base de datos común para la gestión de equipos en Internet. Esta MIB se ha actualizado bastantes veces y originalmente estaba definida en el RFC 1213.  Con la aparición de SNMPv2 y SNMPv3 esta MIB se amplió y se
dividió en varios RFCs: RFC 4293, RFC 4022, RFC 4113, RFC 2863 y RFC 3418. Se basa  en la estructura de información de gestión SMIv1 definido en el RFC 1155, que establece las bases para definir la MIB, indica los tipos de objetos que se pueden usar y define el uso de ASN.1.

MIB-2 está definida como iso.org.dod.internet.mgmt.1, o 1.3.6.1.2.1. Desde este punto podemos ver que el grupo de system es 1, es decir, con ruta completa sería  1.3.6.1.2.1.1

 

En el libro de Doubles R. Maura de la editorial O’Reilly Essentials SNMP podéis encontrar más información al respecto.

¿Qué es OID?

OID, o Object Identifier, es el identificador usado para nombrar y apuntar a un objeto de la estructura de árbol MIB, y representa un valor concreto, podemos ver en el enlace adjunto más información http://oidref.com/

En resumen OID es:

– Una llave única para seleccionar un objeto particular en el dispositivo

– La misma información siempre se encuentra en el mismo OID.

– Un OID es una cadena de tamaño variable de números, ej. 1.3.6.1.2.1.1.3

– Proporcianados en forma jerárquica en un árbol para asegurar que sean únicos (similar a DNS)

PRUEBA DE CONCEPTO

En primer lugar instalemos el servicio SNMP en una máquina Windows 10. Para ello seguiremos el manual de Josep Mª Solanes  Configuración SNMP servidores Windows/. Podemos evidentemente hacer lo propio con una máquina Linux Ubuntu 18.04

A continuación instalaremos alguna herramienta gratuita que nos permita consultar cualquier dispositivo de red con SNMP adecuadamente configurado. En mi caso he utilizado Free SNMP Walk Tool for Windows and Linux.

Recordemos que el Firewall podría limitar el acceso al servicio SNMP desde la máquina donde vamos a consultar la información. Debéis verificar que los puertos están abiertos (161/UDP, 162/UDP para trap) solo para las máquinas desde las que queramos utilizar el servicio. Aunque luego, en la configuración del servicio también podemos gestionar dicha seguridad.

snmpports

Como siempre evitar desactivar el Firewall de Windows.. Que ya nos conocemos.

Podemos utilizar nmap ( y otras técnicas ) para verificar si está o no funcionando y tenemos acceso:

nmap -sU -p 161 --script snmp-interfaces 192.168.1.110

La repuesta nos da una idea clara de Toda la información que podemos obtener ( en este caso configuración IP de la máquina destino )

Bien, vamos a nuestra prueba de concepto… Empezaremos por obtener ( GET ) el Uptime de nuestro Windows 10.

Para ello, cargaremos el MIB adecuado desde File -> Load MIB

Una vez hecho, bastará con seleccionar el OID (.1.3.6.1.2.1.1.3)  que nos interesa, con la máquina destino adecuadamente configurada ( 192.168.1.100, 161/UDP)

Al pulsar obtendremos el tiempo que el PC lleva encendido

 

 

 

You may also like

Leave a Comment