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. | |
|---|---|---|
| SNMPv1 | Este 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. | |
| SNMPv2 | Este protocolo surgió en 1992, se implemento perfeccionar la seguridad y funcionamiento. Este protocolo trabaja bajo el concepto de objetos. | |
| SNMPv3 | Este 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 | |
| Zabbix | Etc. |
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.confDentro del archivo de configuración solamente agregamos el siguiente parámetro:
rocommunity publicCon esto solamente tendremos que iniciar el servicio de SNMP.
[root@ascariote snmp]# service snmpd startIniciando 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 s0p0rt3lptcom2sec 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 localgroup 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 redgroup 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 notifaccess 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 WEB1syscontact 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
- Crean Reglas de conexión al servicio snmpd.
com2sec local 127.0.0.1/32 s0p0rt3lpt com2sec red 192.168.1.0/24 s0p0rt3lpt
- 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 redgroup redlocal v2c red group redlocal usm red
- Estableciendo permisos a los Grupos
- 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
- Visualizando Información
view all included .1 80
- 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.options | snmptrapd.options |
Editamos el primer fichero.
[root@ascariote ~]# vim /etc/sysconfig/snmpd.optionsHabilitaremos 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.optionsHabilitaremos 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 startIniciando 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 ACCEPTiptables -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 startExpurgar 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. | |
| -v | Indica 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. | |
| -v | Indica la versión del protocolo snmp. |
Ejemplos:
ascariote:~# snmpwalk -c public -v 1 192.168.1.200ascariote:# 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.1 | Carga del sistema hace 1 minuto. | |
| .1.3.6.1.4.1.2021.10.1.3.2 | Carga del sistema hace 5 minutos. | |
| .1.3.6.1.4.1.2021.10.1.3.3 | Carga del sistema hace 15 minutos | |
| .1.3.6.1.4.1.2021.11.9.0 | Porcentaje de tiempo de CPU usado por el usuario. | |
| .1.3.6.1.4.1.2021.11.10.0 | Porcentaje de tiempo de CPU usado por el sistema. | |
| .1.3.6.1.4.1.2021.11.11.0 | Porcentaje de inactiva en CPU. | |
| .1.3.6.1.4.1.2021.4.3.0 | Total de memora SWAP. | |
| .1.3.6.1.4.1.2021.4.4.0 | Espacio disponible en SWAP. | |
| .1.3.6.1.4.1.2021.4.5.0 | Cantidad de memoria RAM. | |
| .1.3.6.1.4.1.2021.4.6.0 | Cantidad de RAM utilizada, | |
| .1.3.6.1.4.1.2021.4.11.0 | Cantidad de RAM disponible. | |
| 1.3.6.1.4.1.2021.9.1.2.1 | Muestra las particiones montadas al sistema. | |
| .1.3.6.1.4.1.2021.9.1.3.1 | Muestra las particiones del disco duro. | |
| .1.3.6.1.2.1.1.3.0 | Tiempo 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.0iso.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.0iso.3.6.1.4.1.2021.4.5.0 = INTEGER: 385292 }}}
| | Tweet | Este obra está bajo una licencia Creative Commons Atribución-NoComercial-CompartirIgual 2.5 México. | ![]() |
