Base de Conocimiento Base de Conocimiento

« Volver a Herramientas de...

SNMP en Debian-Ubuntu

SNMP (Simple Network Management Protocol)”, este protocolo es utilizado por varias herramientas para la monitorizar el estado de algún dispositivo o servicio. Este protocolo tiene varias versiones:

Versión.Descripción.
SNMPv1Este protocolo surgió en el año de 1990, definido en la RFC 1157, muestra una manera de administrar y supervisar las redes de computo para identificar y resolver problemas. Esta implementando en la capa de aplicaciones.
SNMPv2Este protocolo surgió en 1992, se implemento perfeccionar la seguridad y funcionamiento. Este protocolo trabaja bajo el concepto de objetos.
SNMPv3Este protocolo de maneja seguridad de acceso a los dispositivos por medio de una autenticación y encriptacion de datos que pasan por la red.

El protocolo SNMP es utilizado por las principales herramientas de monitoreo de redes:

Nagios.Cacti
Zennos.MRTG
ZabbixEtc.

Instalación SNMP.#

La instalación de SNMP es muy fácil y sencilla por lo cual solo ejecutaremos el siguiente comando para poder instalar esta aplicación en nuestro servidor.

ascariote:~# apt-get install snmp snmpd
SNMP de localizara su configuración dentro del directorio /etc/snmp/, por lo cual dentro de esta ruta se encontrara el archivo el archivo snmpd.conf.
ascariote:~# cd /etc/snmp/ 
ascariote:/etc/snmp# ls snmpd.conf snmptrapd.conf }}}

Se recomienda mejor renombrar el fichero snmpd.conf y crear nuestra propia configuración.

ascariote:/etc/snmp# mv snmpd.conf snmpd.conf-orig 

Configuración SNMP.#

SNMP tiene varios métodos de configuración por lo cual veremos los mas utilizados y importantes que podremos implementar para nuestro analizador de red.

Configuración Public.#

Esta configuración es la mas sencilla de realizar ya que no se necesita de mucha configuraciones.

ascariote:/etc/snmp# vim snmpd.conf
Dentro del archivo de configuración descomentamos la opción de usuario public de solo lectura y los demás que estén comentados
com2sec readonly  default         public 

Configuración Listas.#

SNMP contiene Lista de Control de Accesos(ACL), con estas listas podremos definir quien tendrá el acceso al servicio SNMPD, como también le podremos otorgar permisos de lectura y escritura. Esta configuración tendrá que hacerse dentro de la siguiente ruta /etc/snmp/snmpd.conf, con el parámetro com2sec nos permite crear la lista.

com2sec local 127.0.0.1/32 s0p0rt3lpt
com2sec red 192.168.1.0/24 s0p0rt3lpt}}} Ejemplo 1:Indica que creara la lista de control de acceso denominada “local”, que solo permitirá conectarse el “localhost” con la contraseña “s0p0rt3lpt”
com2sec local 127.0.0.1/32 s0p0rt3lpt
Ejemplo 2:Indica que creara la lista de control de acceso denominada “red”, que solo permitirá conectarse el segmento de red “192.168.1.0/24” con la contraseña “s0p0rt3lpt”
 com2sec red 192.168.1.0/24 s0p0rt3lpt

Definición de Grupo.#

Tendremos que asignarle dentro del grupo de trabajo permisos de lectura/escritura, por lo cual usaremos el parámetro group.

1) Definiremos los permisos que va tener el grupo localRWGroup, con permisos de Lectura/Escritura para la regla ACL local.

group loc v1 local 
group loc v2c local group loc usm local }}}

2) Definiremos los permisos que va tener el grupo redROGroup, con permisos de Lectura para la regla ACL red..

group red v1 red 
group red v2c red group red usm red}}}

Estableciendo Permisos.#

Asignaremos que permisos va tener el grupo los grupos de localRWGroup y redROGroup.

## group    context  sec.model sec.level  prefix  read  write notif 
access red "" any noauth exact all none none access loc "" any noauth exact all all all }}}

Visualizando información.#

Ya tenemos establecidos el grupo y sus permisos pero todavía no le hemos indicado que información puedes visualizar por medio del servicio de snmpd, por lo cual tendremos que agregar el siguiente parámetro en archivo de configuración.

view all included .1 80

Parámetros Informativos.#

En esta sección solamente agregaremos 2 parámetros para indicar el servidor que esta instalado, su aplicación y la dirección del correo del administrador del servidor.

syslocation SNMP WEB1
syscontact rmendoza@ascariote.net}}}

Fichero snmpd.conf.#

En el archivo principal de configuración tendremos alguna configuración muy similar a la siguiente:

###Conexión de un usuario publico.
com2sec readonly default public

      1. Crean Reglas de conexión al servicio snmpd.

com2sec local 127.0.0.1/32 s0p0rt3lpt com2sec red 192.168.1.0/24 s0p0rt3lpt

      1. Creando/permisos el Grupo de conexión local con sus permisos.

group localRWGroup v1 local group localRWGroup v2c local group localRWGroup usm local group redlocal v1 red group redlocal v2c red group redlocal usm red

        1. Estableciendo permisos a los Grupos
    1. group context sec.model sec.level prefix read write notif

access redlocal "" any noauth exact all none none access loc "" any noauth exact all all all

        1. Visualizando Información

view all included .1 80

        1. Datos informativos del Servicio

syslocation Servidor SNMP WEB1 syscontact rmendoza@ascariote.net }}}

Servicio SNMPD.#

Antes de poder iniciar el servicio es necesario que modifiquemos un archivos de configuración que se encuentran dentro /etc/default/, este archivo es snmpd. Editamos el fichero.

ascariote:~# vim /etc/default/snmpd

En este archivo tendremos que verificar en el parámetro SNMPDOPTS que no tenga las opciones de localhost.

SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid 127.0.0.1'
por SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid'}}}

Realizadas las configuraciones necesarias para nuestro servicio, ahora tendremos que hacer los siguientes pasos que inicie nuestro servicio.

ascariote:~# /etc/init.d/snmpd start 
Starting network management services: snmpd. }}}

Firewall SNMPD.#

Como administradores debemos tener un firewall para el servicio de SNMPD, este servicio trabaja bajo el puerto 161/udp, por cual recomiendo crear un regla del firewall para que permite conexiones remotas y locales.

iptables -A INPUT -i lo -m state –state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o lo -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -i lo -j ACCEPT iptrables -A OUTPUT -o lo -j ACCEPT iptables -A INPUT -p udp -s 192.168.1.0/24 --dport 161 -j ACCEPT}}}

Administración Por Comandos.#

Dentro de la administración del servicio snmpd tenemos varios comandos que nos ayudaran a la obtener la información de los dispositivos y servidores. En snmpd tenemos los siguiente comandos que podremos utilizar:

  • snmpstatus
  • snmpwalk
  • snmpget

snmpstatus.#

Este comando nos permite obtener la información del estado actual del agente snmpd.

-c Indica el nombre del usuario o contraseña de la regla del grupo.
-vIndica la versión del protocolo snmp.

Ejemplo 1:

ascariote:~# snmpstatus -c public -v 1 127.0.0.1 
[UDP: [127.0.0.1]:161]=>[Linux monitor 2.6.26-2-amd64 #1 SMP Sat Jun 12 22:12:08 UTC 2010 x86_64] Up: 0:07:23.66 Interfaces: 2, Recv/Trans packets: 54240/25878 | IP: 40396/25811 monitor:# }}}

Ejemplo 2:

scariote:~# snmpstatus -c public -v 1 192.168.1.60 
[UDP: [192.168.1.60]:161]=>[Linux monitor 2.6.26-2-amd64 #1 SMP Sat Jun 12 22:12:08 UTC 2010 x86_64] Up: 0:08:21.71 Interfaces: 2, Recv/Trans packets: 54378/25919 | IP: 40502/25863 }}}

snmpwalk.#

Permite obtener información de las variables MIB que el agente snmp pudo capturar

-c Indica el nombre del usuario o contraseña de la regla del grupo.
-vIndica la versión del protocolo snmp.

Ejemplos:

ascariote:~# snmpwalk -c public -v 1 192.168.1.60 
ascariote:# snmpwalk -v 2c -c s0p0rt3LPT 192.168.1.200}}}

snmpget.#

Obtener información de una variable sabiendo el recurso, las variables mas utilizadas son las siguientes:

Variables.Descripción.
.1.3.6.1.4.1.2021.10.1.3.1Carga del sistema hace 1 minuto.
.1.3.6.1.4.1.2021.10.1.3.2Carga del sistema hace 5 minutos.
.1.3.6.1.4.1.2021.10.1.3.3Carga del sistema hace 15 minutos
.1.3.6.1.4.1.2021.11.9.0Porcentaje de tiempo de CPU usado por el usuario.
.1.3.6.1.4.1.2021.11.10.0Porcentaje de tiempo de CPU usado por el sistema.
.1.3.6.1.4.1.2021.11.11.0Porcentaje de inactiva en CPU.
.1.3.6.1.4.1.2021.4.3.0Total de memora SWAP.
.1.3.6.1.4.1.2021.4.4.0Espacio disponible en SWAP.
.1.3.6.1.4.1.2021.4.5.0Cantidad de memoria RAM.
.1.3.6.1.4.1.2021.4.6.0Cantidad de RAM utilizada,
.1.3.6.1.4.1.2021.4.11.0Cantidad de RAM disponible.
1.3.6.1.4.1.2021.9.1.2.1Muestra las particiones montadas al sistema.
.1.3.6.1.4.1.2021.9.1.3.1Muestra las particiones del disco duro.
.1.3.6.1.2.1.1.3.0Tiempo vida que lleva el sistema inicializado.

Para mas información sobre los OIDs podremos consultar el siguiente link http://www.alvestrand.no/objectid/1.3.6.1.2.1.html.

Ejemplo 1: Obteniendo el tiempo que se encuentra en funcionamiento el servidor.

ascariote:~# snmpwalk -v 1 -c public 192.168.1.200 .1.3.6.1.2.1.1.3.0 
iso.3.6.1.2.1.1.3.0 = Timeticks: (20866) 0:03:28.66}}}

Ejemplo 2: Cantidad de memoria fisica que tiene el servidor.

ascariote:~# snmpwalk -v 1 -c s0p0rt3LPT 192.168.1.200 .1.3.6.1.4.1.2021.4.5.0 
iso.3.6.1.4.1.2021.4.5.0 = INTEGER: 385292 }}}

Promedio (0 Votos)
La valoración media es de 0.0 estrellas de 5.
Comentarios