martes, 11 de septiembre de 2012

SNMP: Qué es, instalación y usos básicos

El SNMP (Simple Network Management Protocol) es un protocolo que lee el estado de varios dispositivos y nos permite ver su estado. Por ejemplo, podemos averiguar el tráfico que tiene una tarjeta de red en un momento dado. Antes de nada, vamos a instalarlo para entender cómo hacer lo anterior. Para este caso, usé una Debian 6 x64, pero es extensible al resto. Tiramos de repositorios para instalarlo:

apt-get install snmp

Y pasamos a configurarlo, editando el archivo "/etc/snmp/snmp.conf". Ahí comentaremos la linea "mibs :". Con esto, tenemos el cliente instalado. Lo que podremos hacer es ver la información de los dispositivos que tengan instalado un servidor SNMP, cosa que pasaremos a instalar a continuación.

La instalación es sencilla, como siempre podremos usar el repositorio y el apt: "apt-get install snmpd". Ahora viene la configuración, que hay que tener algo más de cuidado y sobre todo entenderlo, ya que si lo hacemos mal podemos exponer el estado de nuestra máquina a cualquier atancante. Editamos el archivo "/etc/snmp/snmpd.conf" y descomentamos la linea "rocommunity public localhost". Con esto estamos habilitando que desde el localhost se pueda leer la informacion usando la clave public. Si queremos algo más de seguridad, debemos de cambiar esta clave. Reiniciamos el daemon y listo.

Para probarlo, podemos usar "snmpwalk -v1 -c public localhost" que nos devolverá un chorreton de numeros. Esos numeros son el OID que describe cada componente que usaremos más adelante para configurar el MRTG en otro post. Si queremos que esos numeros se conviertan en una cadena de texto más o menos legible, tenemos que instalar los MIBs que por defecto en Debian no vienen debido a restriciones. Para solucionarlo, tan sencillo como instalar desde el repositorio "snmp-mibs-downloader", editar el archivo "/etc/default/snmpd" y añadir "export MIBS=/usr/share/snmp/mibs".

La ventaja de este protocolo es que se puede usar en red, y se puede acceder a esos valores desde cualquier punto que tenga acceso a ese dispositivo y posea la clave. Usaremos el comando snmpwalk anterior, de la forma "snmpwalk -v1 -c CLAVE IP" y nos mostará todos los valores de los dispositivos de esa máquina. Si queremos saber el estado de un OID en concreto, tendremos que usar el snmpwalk de la siguiente forma: "snmpwalk -v1 -c CLAVE IP OID". Por ejemplo muchos routers Liksys y Cisco traen este protocolo activado y es sencillo motitorizar el estado de estos.

En la segunda revision del SNMP se introducen diversas mejoras, el uso es igual, cambiando v1 por v2: "snmpwalk -v2 -c CLAVE IP OID".

Con todo esto, podremos monitorizar los componentes de los dispositivos de la red, la mayor dificultad es encontrar el OID de lo que se quiere monitorizar ya que cambian de dispositivo a dispositivo. En el siguiente post haré una lista con los OIDs que he encontrado tanto para mi ordenador como para mi router Linksys.

No me extiendo más en el tema, ya que es una preparación para poder instalar más adelante el MRTG y no he investigado mucho más. Espero que esta explicación básica sirva a alguien ;)

¡Saludos!

PD: El puerto que usa es el 161, lo añado a la lista de puertos que podeis encontrar aquí.