Introducción.
Acerca de SNMP.
SNMP (
Simple
Network
Management
Protocol o Protocolo Simple de administración de red) es uno protocolos del conjunto definido por la Fuerza de Trabajo en Ingeniería de Internet (
IETF o
Internet
Engineering
Task
Force), clasificada en el nivel de aplicación del modelo TCP/IP, y que está diseñado para facilitar el intercambio de información entre dispositivos de red y es ampliamente utilizado en la administración de redes para supervisar el desempeño, la salud y el bienestar de una red, equipo de computo y otros dispositivos.
URL:
http://tools.ietf.org/html/rfc1157.
Acerca de Net-SNMP.
Net-SNMP, el equipamiento lógio utilizado en este documento, es un conjunto de aplicaciones utilizados para implementar SNMP v1, SNMP v2c y SNMP v3 utilizando IPv4 y/o IPv6. El proyecto fue iniciado como un conjunto de herramientas SNMP por Steve Waldbusser en la
CMU (
Carnegie
Mellon
University), Pittsburgh, Pennsylvania, EE.UU., en 1992. Tras ser abandonado, fue retomado por Wes Hardaker en la
UCDavis (
University of
California,
Davis), renombrado como
UCD-SNMP y mejorado para cubrir las necesidades del Departamento de Ingeniería Eléctrica de dicha institución. Tras dejar la universidad, Hardaker continuó el proyecto, cambiando el nombre de éste a
Net-SNMP.
URL:
http://net-snmp.sourceforge.net/
Equipamiento lógico necesario.
Instalación a través de yum.
Si utiliza
CentOS 4 y
5,
Red Hat Enterprise Linux 5 o
White Box Enterprise Linux 4 y
5, solo se necesita realizar lo siguiente para instalar o actualizar el equipamiento lógico necesario:
yum -y install net-snmp net-snmp-utils |
Instalación a través de up2date.
Si se utiliza
Red Hat™ Enterprise Linux 4, solo bastará realizar lo siguiente para instalar o actualizar el equipamiento lógico necesario:
up2date -i net-snmp net-snmp-utils |
Procedimientos
Este documento considera las siguientes variables que deberán ser reemplazadas por valores reales:
- 192.168.1.0/24: Dirección de red y máscara de subred en bits que correspondan a los de la red local a la que se pertenece.
- Cl4v3-d3-Acc3s0: Cualquier clave de acceso lo suficientemente buena.
- m064.alcancelibre.org: Nombre de anfitrión del sistema donde se está configurando el servicio.
- fulano@algun-dominio.net: Cuenta de correo del administrador del servidor.
- 192.168.1.254: Dirección IP del servidor.
Fichero de configuración /etc/snmp/snmpd.conf.
El fichero
/etc/snmp/snmpd.conf que se instala junto con el paquete, y puede resultar para algunos una verdadera maraña de comentarios y opciones de todo tipo. Lo más recomendable será crear un fichero nuevo y limpio de contenido para poder partir de algo más simple y funcional.
cd /etc/snmp
mv snmpd.conf snmpd.conf-OLD
touch snmpd.conf |
Listas de control de acceso.
Se deben crear las listas de control de acceso (
ACL o
Access
Control
List) correspondientes en el fichero
/etc/snmp/snmpd.conf, las cuales servirán 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.
Considerando lo anterior, se podrían agregar un par de líneas como las siguientes:
com2sec local 127.0.0.1/32 Cl4v3-d3-Acc3s0
com2sec miredlocal 192.168.1.0/24 Cl4v3-d3-Acc3s0 |
En lo anterior la primera línea significa que habrá una lista de control de acceso denominada
«local» y que corresponderá solo a
127.0.0.1/32, asignando
Cl4v3-d3-Acc3s0 como clave de acceso. La segunda línea hace lo mismo pero definiendo a la red
192.168.1.0/24. Se puede definir lo que uno guste mientras no sea la clave de
root, esto debido a que dicha clave se transmite a través de la red en forma de texto simple (es decir, sin cifrar).
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
miredlocal.
#Se asigna local al grupo de lectura escritura
group MyRWGroup v1 local
group MyRWGroup v2c local
group MyRWGroup usm local
#Se asigna miredlocal al grupo de solo lectura
group MyROGroup v1 miredlocal
group MyROGroup v2c miredlocal
group MyROGroup usm miredlocal |
Ramas permitidas.
Se especifican las ramas que se van a permitir ver a través del servicio. Lo más común, para, por ejemplo, utilizarse con
MRTG, es lo siguiente:
## name incl/excl subtree mask(optional)
view all included .1 80 |
Asignación de permisos a los grupos.
Se debe especificar que permisos tendrán los dos grupos,
MyROGroup y
MyRWGroup. Son de especial interés las últimas columnas.
## 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 |
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.
syslocation Servidor Linux en SU-SERVIDOR.algun-dominio.net
syscontact Administrador (fulano@algun-dominio.net) |
Un ejemplo funcional de configuración.
El ejemplo que mostramos a continuación se utiliza en todas los equipos que posee el autor en casa y en la oficina. Solo hay que reemplazar el valor
redlocal por lo que uno considere apropiado y reemplazar el valor
192.168.1.0/24 por el valor de
la red o la dirección IP desde donde se requiera acceder con un cliente
snmp, como
MRTG.
# Listas de control de acceso (ACL)
## sec.name source community (alias clave de acceso)
com2sec local 127.0.0.1/32 Cl4v3-d3-Acc3s0
com2sec miredlocal 192.168.1.0/24 Cl4v3-d3-Acc3s0 #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 miredlocal
group MyROGroup v2c miredlocal
group MyROGroup usm miredlocal # 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 # Información de Contacto del Sistema
syslocation Servidor Linux en m064.alcancelibre.org
syscontact Administrador (fulano@algun-dominio.net) |
Si es necesario añadir más equipos para que accedan al servicio
snmpd, solo hay que hacer lo siguiente:
| • | Agregar una ACL con un nombre único. Ejemplo:
com2sec micueva 192.168.1.251 Cl4v3-d3-Acc3s0 |
|
| • | Agregar un juego reglas que asignen al grupo, en este caso micueva, con lo siguiente:
group otrogrupo v1 local
group otrogrupo v2c local
group otrogrupo usm local |
|
| • | Agregar una línea donde se establece que permisos tendrá el grupo otrogrupo. En este ejemplo, va a ser de solo lectura:
access MyROGroup "" any noauth exact all none none |
|
Iniciar, detener y reiniciar el servicio snmpd.
Para ejecutar por primera vez el servicio
snmpd, utilice:
Para hacer que los cambios hechos tras modificar la configuración surtan efecto, utilice:
Para detener el servicio
snmpd utilice:
Agregar el servicio snmpd al arranque del sistema.
Para hacer que el servicio de
snmpd esté activo con el siguiente inicio del sistema, en todos los niveles de corrida (2, 3, 4, y 5), se utiliza lo siguiente:
Comprobaciones.
Considerando,
como ejemplo, que sea signó como clave de acceso
Cl4v3-d3-Acc3s0 en un sistema cuya dirección IP es
192.168.1.254, para probar si la configuración funciona, solo hay que ejecutar los dos siguiente mandatos a fin verificar que devuelvan información acerca del sistema consultado.
snmpwalk -v 1 192.168.1.254 -c Cl4v3-d3-Acc3s0 system
snmpwalk -v 1 192.168.1.254 -c Cl4v3-d3-Acc3s0 interfaces |
Modificaciones necesarias en el muro cortafuegos.
Si se utiliza un cortafuegos con políticas estrictas, como por ejemplo
Shorewall, es necesario abrir los puerto 161 y 162 por UDP (
SNMP y
SNMPTRAP, respectivamente).
Las reglas para el fichero
/etc/shorewall/rules de
Shorewall en un sistema con una zona (
net), correspondería a lo siguiente:
#ACTION SOURCE DEST PROTO DEST SOURCE
# PORT PORT(S)1
ACCEPT net fw udp 161,162
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE |
Las reglas para el fichero
/etc/shorewall/rules de
Shorewall en un sistema con dos zonas (
net y
loc), donde solo se va a permitir el acceso al servicio
snmpd desde la red local, correspondería a lo siguiente:
#ACTION SOURCE DEST PROTO DEST SOURCE
# PORT PORT(S)1
ACCEPT loc fw udp 161,162
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE |
No hay comentarios:
Publicar un comentario