Base de Conocimiento Base de Conocimiento

SNMP#

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:

NagiosCacti
ZennosMRTG
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.

[root@ascariote ~]# yum install net-snmp net-snmp-utils

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.

[root@ascariote ~]# cd /etc/snmp/ 
[root@ascariote snmp]# ls snmp.conf snmpd.conf snmptrapd.conf [root@ascariote snmp]# }}}

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

[root@ascariote 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. OIDs + snmod

Configuración Public#

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

[root@ascariote snmp]# vim snmpd.conf
Dentro del archivo de configuración solamente agregamos el siguiente parámetro:
rocommunity  public 
Con esto solamente tendremos que iniciar el servicio de SNMP.
[root@ascariote snmp]# service snmpd start 
Iniciando snmpd: [ OK ] Comprobaremos que la configuración este bien. Lo probaremos comprobar con el siguiente comando.
[root@ascariote snmp]# snmpwalk -v 1 -c public -O e 127.0.0.1

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 CentOS 5.4 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.
rocommunity 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 dos archivos de configuración que se encuentran dentro /etc/sysconfig, estos archivos son:

snmpd.optionssnmptrapd.options

Editamos el primer fichero.

[root@ascariote ~]# vim /etc/sysconfig/snmpd.options
Habilitaremos el parámetro OPTIONS y guardamos los cambios.
#OPTIONS="-Lsd -Lf /dev/null -p /var/run/snmpd.pid -a" 
OPTIONS="-Lsd -Lf /dev/null -p /var/run/snmpd.pid -a"}}} Editamos el segundo fichero.
[root@ascariote ~]# vim /etc/sysconfig/snmptrapd.options
Habilitaremos el parámetro OPTIONS y guardamos los cambios.
#OPTIONS="-Lsd -p /var/run/snmptrapd.pid"
OPTIONS="-Lsd -p /var/run/snmptrapd.pid"}}} Realizadas las configuraciones necesarias para nuestro servicio, ahora tendremos que hacer los siguientes pasos que inicie nuestro servicio.

[root@ascariote ~]# service snmpd start 
Iniciando snmpd: [ OK ] [root@ascariote ]# service snmptrapd start Iniciando snmptrapd: [ OK ] }}}

Se recomienda tener esta servicio inicie automáticamente cada ves que la maquina se reinicie o en un encendido para no estarlo iniciando manualmente.

[root@ascariote ~]# chkconfig --level 35 snmpd on 

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}}}

Tendremos que guardar las reglas del firewall dentro de su archivo de configuración.

[root@ascariote ~]# iptables-save > /etc/sysconfig/iptables

Iniciamos el servicio de firewall de nuestro servidor.

[root@ascariote ~]# service iptables start 
Expurgar reglas del cortafuegos: [ OK ] Configuración de cadenas a la política ACCEPT: filter [ OK ] Descargando módulos iptables: [ OK ] Aplicando reglas del cortafuegos iptables: [ OK ] Cargando módulos iptables adicionales:ip_conntrack_netbios_[ OK ] }}}

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

[root@ascariote ~]# snmpstatus -c public -v 1 127.0.0.1 
[UDP: [127.0.0.1]:161]=>[Linux serverprueba 2.6.18-164.11.1.el5 #1 SMP Wed Jan 20 07:39:04 EST 2010 i686] Up: 0:53:50.48 Interfaces: 3, Recv/Trans packets: 6234/2466 | IP: 3071/2428 1 interface is down! }}}

Ejemplo 2:

ascariote:~# snmpstatus -c s0p0rt3LPT -v 1 192.168.1.200 
[UDP: [0.0.0.0]->[192.168.1.200]:161]=>[Linux serverprueba 2.6.18-164.11.1.el5 #1 SMP Wed Jan 20 07:39:04 EST 2010 i686] Up: 1:02:16.66 Interfaces: 3, Recv/Trans packets: 6838/2801 | IP: 3480/2781 1 interface is down! }}}
ascariote:~# snmpstatus -c public -v 1 192.168.1.3 
[UDP: [0.0.0.0]->[192.168.1.3]:161]=>[HP ETHERNET MULTI-ENVIRONMENT,ROM B.25.01,JETDIRECT,JD118,EEPROM D.27.02,CIDATE 03/23/2004] Up: 2:10:11.20 Interfaces: 2, Recv/Trans packets: 18527/2384 | IP: 3549/1816 }}}

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.200 
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