jueves, 4 de diciembre de 2008

Configuracion de snmpd sobre Ubuntu 8.04

SNMP o Simple Network Management Protocol, es un protoclo de capa aplicacion que facilita el intercambio de información de administración entre dispositivos de red.

El mismo se puede definir como un protocolo que a manera de servicio nos permite recuperar informacion remota acerca de los componentes conectados a la red tales como computadoras, servidores, impresoras, routers, etc.


Para tener en cuenta...

Se puede definir el funcionamiento de SNMP a manera de un modelo cliente servidor, ya que para que funcione necesitamos dos aplicaciones basicas snmpd y snmp, en las cuales se puede definir la primera como el servidor y la otra como el cliente.

Aunque podamos relacionar el funcionamiento de esta manera cabe destacar que ambas aplicaciones deben estar instaladas en los equipos que componen la red, es decir tanto en el servidor u equipo de donde voy a monitorear los componentes de la red como tambien dichos componentes.


Instalación

Para lograr que SNMP se ejecute de manera adecuada en nuestra red tenemos que instalar snmp y snmpd, abriendo una consola y escribiendo :


root@server1:# sudo apt-get install snmp snmpd

Configuracion

Una vez instalado, procederemos a configurar snmpd.
root@server1:# cd /etc/snmp/
root@server1:# mv snmpd.conf snmpd-backup.conf
root@server1:# echo "" > snmpd.conf
Lo que haremos es trabajar con una copia vacia del archivo de configuracion snmpd.conf.
root@server1:# mcedit snmpd.conf
Luego lo editamos y escribimos:
# Listas de control de acceso (ACL)
## sec.name source community (alias clave de acceso)
com2sec local 127.0.0.1/32 local
com2sec miRed 192.168.1.0/24 public

recommunity miRed

#Se asigna ACL al grupo de lectura escritura
group MyRWGroup v1 local
group MyRWGroup v2c local
group MyRWGroup usm local

#Se asigna ACL al grupo de solo lectura
group MyROGroup v1 miRed
group MyROGroup v2c miRed
group MyROGroup usm miRed

# Ramas MIB que se permiten ver
## name incl/excl subtree mask(optional)
view all included .1 80

# Establece permisos de lectura y escritura
## group context sec.model sec.level prefix read write notif
access MyROGroup "" any noauth exact all none none
access MyRWGroup "" any noauth exact all all all

# Informacion de Contacto del Sistema
syslocation Servidor X en CUALQUIER PARTE
syscontact Encargado (hablame@gmail.com)

Ya hemos configurado:

  • Listas de control de acceso: Se deben crear las listas de control de acceso (ACL o Access Control List) , las cuales sirven para definir lo que tendrá acceso hacia el servicio snmpd. A una de estas listas se le otorgará permiso de acceso de lectura y escritura, para lo que sea necesario en relación con administración, y a la otra de solo lectura. Por razones de seguridad solo la interfaz 127.0.0.1 estará en la lista de lectura escritura. Se otorgará permiso de acceso de solo lectura a una red o bien a una dirección IP en la otra lista de control de acceso.
  • Definición de grupos: Se crean al menos dos grupos: MyRWGroup y MyROGroup. El primero será un grupo al que se asignarán más adelante permisos de lectura escritura y el segundo será un grupo al que posteriormente se asignarán permisos de solo lectura. Por cada grupo se asignan tres líneas que especifican el tipo de acceso que se permitirá en un momento dado a un grupo en particular. Es decir, MyRWGroup se asocia a local y MyROGroup a miRed.
  • Ramas permitidas: Se especifican las ramas que se van a permitir ver a través del servicio.
  • Asignación de permisos a los grupos: Se debe especificar que permisos tendrán los dos grupos, MyROGroupMyRWGroup. Son de especial interés las últimas columnas.
  • Parámetros de carácter informativo: Se definen dos parámetros de carácter informativo para que cuando utilicen aplicaciones cliente como MRTG se incluya algo de información acerca de que sistema se está accediendo.
Luego simplemente guardamos el archivo. Ahora tenemos que configurar el servicio snmp para que se accedido desde cualquier parte de miRed por lo cual, tendremos que editar el archivo /etc/default/snmpd y buscar la linea:

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

y la reemplazamos por


SNMPDOPTS='-C -c /etc/snmp/snmpd.conf -p /var/run/snmpd.pid'

Guardamos el archivo y luego reiniciamos el servicio snmpd tecleando

root@server1:# /etc/init.d/snmpd restart

Pruebas


Una vez hemos terminado la parte de configuracion debemos proceder a hacer unas pruebas minimas para saber si nuestro SNMP se esta ejecutando adecuadamente en nuestra red. Para esto abrimos una consola y tecleamos

root@server1:# snmpwalk 127.0.0.1 -c local -v2c system
y luego tecleamos
root@server1:# snmpwalk 192.168.1.131 -c public -v2c system
Si en ambos casos la respuesta es una maraña de informacion, podemos dar por sentado que el servicio se ejecutó adecuadamente a nivel local (es decir sobre la máquina donde lo ejecutamos) y a nivel de red.

6 comentarios:

Vixo12 dijo...

Pablo, tengo preguntas sobre Nagios con SNMP para monitorear equipos CISCO, me podrias ayudar???

Saludos

Pablo dijo...

decime a ver si puedo.

Saludos

Unknown dijo...

Hola Pablo, mi nombre es Carlos, acabo de descubrir tu blog y me parece fantastico!! sobre todo para alguien como yo que no soy experto en linux, es de gran ayuda.
y de paso te consulto, tengo corriendo y configurado un nagios, que monitorea algo asi de 60 o 70 servers linux/windows, por ahora monitoreo lo basico (carga del equipo, disco, ram, etc) con scripts (entre nrpe y ssh) y los windows con el nsca++.
estoy tratando de monitorearlos via snmp (sobre todo para los routers, fw y ups) pero no estoy dando en el clavo, me podrias tirar alguna pista si te muestro el snmpd.conf del nagios y de los equipos que quiero moitorear??
saludos

Unknown dijo...

Hola a todos,
me parece muy interesante el blog y tambien el comentario de silcar, me encuentro en una situación similar y me resultaría muy útil echarle un vistazo a tu snmpd.conf.
Por otra parte, mi objetivo es monitorear una red de routers y switches remota. Es algo complejo, y me gustaría contar con vuestra ayuda.
Gracias.

Unknown dijo...

HOla A todos el mismo problema de los anteriores, no logro hacer funcionar la comunidad, no se conecta al enviar los comandos de prueba estoy con la distro ubuntu server 9.04

0m4r dijo...

Gracias por la informacion! me ayudo mucho!
chequen la configuracion de iptables para que le den permisos al puerto 161 de snmp