SNMPv3A

Anuncio
INSTALACIÓN Y
CONFIGURACIÓN DE UN
AGENTE DE GESTIÓN
SNMPv3
Judit de la Calzada Cuesta
Rubén Frías Simón
Laura de la Parra Jiménez
Resumen
En este documento se va a abordar el problema de la gestión de redes y cómo podemos
tratarlo mediante un agente snmp. En primer lugar se dará una visión de la motivación para la
instalación de un agente snmp para gestionar una red y posteriormente pasar a dicha instalación
en un entorno de trabajo determinado. Con esto se conseguirá gestionar adecuadamente nuestro
entorno de trabajo mediante el agente instalado y por lo tanto resolver en parte el problema de la
gestión de la red.
1. Introducción
Podemos ver una red de comunicaciones de forma simplificada como un conjunto de
recursos de red, es decir, como un conjunto de nodos de conmutación a los que se pueden
conectar los usuarios, y unos enlaces de comunicación que sirven para interconectar los
distintos nodos. Los usuarios entienden que una red funciona según la disponibilidad de los
servicios, lo implica el correcto funcionamiento, operatividad y configuración de todos los
sistemas que intervienen en una comunicación. Estos requisitos necesitan de forma obligatoria
una gestión de red adecuada, ya que sin una detección y corrección de errores, no se puede
proporcionar la atención a los requerimientos demandados por los usuarios.
Ante la necesidad ya citada de la gestión de recursos, la gestión de las redes se plantea
como una cuestión clave para garantizar la disponibilidad y el correcto nivel de servicio de los
requerimientos de los usuarios de la red.
Las redes de comunicaciones toman mayor importancia a medida que aumentan de
tamaño y por tanto de complejidad, por ello, uno de los mecanismos de gestión de redes que
más se utilizan a pesar de su relativa simplicidad es el protocolo SNMP, que facilita el
intercambio de información de gestión y administración entre los dispositivos de la red.
En SNMPv1 aparecían algunas debilidades, como la debida a la transmisión de grandes
volúmenes de datos y la falta de un mecanismo de seguridad principalmente. Para hacer frente a
estas debilidades se creó SNMPv2 que mejoraba las características funcionales, la información a
gestionar y la comunicación gestor-gestor, aunque seguía planteando falta de consenso en lo que
se refiere a la seguridad. [1]
Debido a la persistencia de algunos de los anteriores problemas, en 1997 aparece la
versión SNMPv3 que modifica algunos de los aspectos funcionales de las anteriores versiones,
definiendo la arquitectura en forma de árbol que hoy conocemos y mejorando la capacidad de
seguridad y control de acceso, asegurando el proceso de autenticación y la privacidad de los
datos, añadiendo así seguridad a la versión SNMPv2 anterior, según los RFCs 2570 a 2576.
Una vez se han explicado las causas que nos llevan a plantearnos la necesidad de la
gestión de redes y su posible solución a través del estudio e implementación (gestión correcta)
de los componentes SNMP en las distintas versiones de este protocolo, y una vez presentadas
las diferentes ventajas que proporcionan para la gestión de redes, pasamos a explicar la
estructura en la que se presenta este documento.
El apartado 2 describe el funcionamiento del protocolo simple de gestión de redes
SNMP, se realiza un estudio del mecanismo de gestor agente por el que se rige, es decir, se
explican los principales elementos que lo componen, finalmente se muestran una serie de
pruebas realizadas sobre estas versiones de forma análoga para facilitar una mayor comprensión
del lector de varias de las aplicaciones SNMP (snmpget, snmpgetnext, snmptable) y sus
ventajas. El apartado 3 plantea la necesidad de la gestión de red en el entorno de trabajo
utilizado para esta práctica, bajo el software abierto NET SNMP. El apartado 4 trata la
implementación de un agente, primero en SNMPv1, y posteriormente en SNMPv3, mostrando
las diferencias entre las distintas formas de configuración. En el apartado 5 se lleva a cabo una
demostración de las capacidades de SNMPv3, por ser el más actual y el principal en este
informe, es decir trataremos la creación dinámica de usuarios, y la modificación de los permisos
que estos poseen para acceder a las distintas partes de la MIB. Por último, el apartado 6,
desarrolla las conclusiones finales obtenidas tras la realización de esta práctica.
2. Necesidad de la gestión en nuestro entorno de trabajo.
2.1. Descripción del entorno
Esta práctica se desarrolla en el entorno de software abierto NET-SNMP, que
inicialmente desarrolló un protocolo de gestión de red relativamente nuevo, llamado SNMP, y
que incluía una librería, una selección de comandos sencillos, y un agente que proporcionaba
información de gestión de red, como definía el RFC 1213. [4]
Posteriormente el agente se extendió para proporcionar información sobre los sistemas
locales, precursor privado de la MIB de recursos del Host, también proporcionaba cierta
información sobre situaciones de error y era capaz de ejecutar determinados scripts y comunicar
los resultandos.
Poco a poco, el código se hizo abierto, de modo que los usuarios podían añadir nuevos
parches y realizar sugerencias sobre posibles mejoras, que permitían que las cuestiones de
administración fueran más sencillas, al mismo tiempo que se hacían nuevas reestructuraciones
del entorno agente, con una API de la MIB mucho más flexible. Actualmente este software tiene
distintos paquetes independientes y se encuentra instalado por defecto en la mayoría de las
distribuciones de sistemas Linux, y de Distribuciones Software de Berkeley (DSB).
Net-SNMP está disponible para muchos sistemas operativos Unix y también para Microsoft
Windows, y aunque la versión más actual de este software es la versión 5.5, en el laboratorio
2L009 está instalada la versión 5.4.1, que nos ha resultado más que suficiente para entender el
funcionamiento del protocolo SNMP, de forma que Net-SNMP, el software utilizado para el
desarrollo de esta práctica , es un conjunto de aplicaciones utilizados para implementar SNMP
v1, SNMP v2c y SNMP v3 utilizando tanto IPv4 como IPv6, y que incluye: [4]
 Aplicaciones de línea de comandos para:
o Recuperar información de un dispositivo compatible con SNMP, bien usando
peticiones simples (snmpget, snmpgetnext), o peticiones múltiples
(snmpwalk,snmptable, snmpdelta).
o Manipular la configuración de un dispositivo compatible con SNMP (snmpset).
o Recuperar un conjunto de información de un dispositivo compatible con SNMP
(snmpdf, snmpetstat, snmpstatus).
o Convertir entre formas numéricas y textuales de los identificadores de objetos de
la MIB (Management InformationTable) ,y mostrar el contenido y estructura de la
MIB (snmptranslate).
 Un explorador gráfico de MIB.
 Una aplicación “demonio” para recibir notificaciones SNMP (snmptrad). Las
notificaciones puede registrarse, reenviarse a otro agente gestor SNMP, o pasarse a una
aplicación externa.
 Un agente extensible para responder a peticiones SNMP de información de gestión
(snmpd).

Y una Liberia que permite desarrollar nuevas aplicaciones SNMP, con APIs tanto de C
como de perl.
Las aplicaciones SNMP que vamos a utilizar para el desarrollo de esta práctica se
pueden clasificar en varios niveles según la documentación consultada: básico (snmpget,
snmpgetnext, snmpwalk, snmpset), de segundo nivel (snmptable, snmpvacm), y de configuración
(net-snmp-config, snmpconf) [4]
2.2. Problemática de la gestión
Las redes de comunicación actuales están principalmente caracterizadas por un
incremento constante tanto del numero de recursos que las componen, como por la distinta
complejidad y heterogeneidad de los mismos, por ello, los principales problemas que hoy en día
nos encontramos, y que se deben a esta constante necesidad de escalabilidad y expansión, están
estrechamente unidos a la gestión de las redes, cuestión que, como se ha indicado anteriormente,
toma cada vez mayor relevancia.
La gestión de las redes se encarga de asegurar el correcto funcionamiento de todos los
sistemas y de la planificación estratégica de su crecimiento futuro y previsible. Se puede
entender por gestión integrada de red, el conjunto de actividades para controlar y vigilar de
forma centralizada todos los recursos de un sistema.
El protocolo de gestión de red simple o SNMP (Simple Network Management
Protocol), es un protocolo de la capa de aplicación de TCP/IP que facilita el intercambio de
información de gestión entre dispositivos de red y permite a los administradores de forma
sencilla gestionar el rendimiento de un sistema y encontrar y solucionar problemas, así como
planificar el crecimiento futuro de la red.
Por ello, en los apartados sucesivos, se detallará la instalación y configuración de un
agente SNMP, para mostrar las ventajas que este sencillo protocolo puede proporcionarnos
como medio para conseguir la gestión simple de las redes de comunicaciones.
3. Estudio previo
3.1 Estudio agente-gestor
El fundamento principal del protocolo SNMP es el paradigma gestor agente, de tal
forma que sólo define el protocolo para el intercambio de información de gestión entre el gestor
y el agente y el formato para representar la información de gestión o MIB [2].
Se compone principalmente de tres componentes claves [3]: dispositivos administrados,
agentes, y sistemas administradores de red. El dispositivo administrativo es un simple nodo de
red que contiene el agente, pueden ser routers, switches….El agente es un componente software
que se ejecuta en el dispositivo a gestionar. Y los sistemas administradores de red ejecutan
aplicaciones que supervisan y controlan a los dispositivos administrativos.
3.2. Pruebas sobre agente SNMP previamente instalado
Llegados a este punto, consideramos necesario realizar una serie de peticiones al router
de la Escuela a modo de prueba, empleando el agente SNMP que está instalada en balbas, para
de esta forma asimilar el funcionamiento de la aplicación NET-SNMP.
La primera petición que realizamos al router fue una descripción del mismo, mediante
el comando “snmpget” y obtuvimos el modelo, la versión del software, la fecha de compilación
y el usuario que llevo a cabo dicha compilación. Como mostramos en la siguiente captura.
Otra prueba realizada fue la de la pedirle al router el siguiente OID en el árbol de datos
del MIB, mediante el comando “snmpgetnext” obteniendo como resultado el siguiente OID en
el árbol y su valor. De esta forma mediante sucesivas peticiones podemos completar la
estructura del árbol. Como se muestra en el siguiente ejemplo.
Otra forma de obtener la tabla de encaminamiento es mediante el comando “snmptable”
como se muestra a continuación. De esta forma obtenemos principalmente la dirección IP
origen, próximo salto y el protocolo de encaminamiento. Como se muestra a continuación.
4. Implementación solución agente
Una vez estudiado el comportamiento del gestor SNMP y las necesidades de
nuestro entorno de trabajo, pasamos a realizar la configuración del agente mediante el comando
“snmpconf -g basic_setup”. En primer lugar realizaremos la configuración de la versión 1 que
resulta más sencilla de llevar a cabo.
4.1.
Instalación agente snmpv1
Una vez ejecutado el comando “snmpconf -g basic_setup” se nos abre una interfaz,
donde se nos va pidiendo la información necesaria para configurar el agente, lo primero es
seleccionar el tipo de fichero a crear, en este caso el fichero que se ha de seleccionar es el
“/etc/snmp/snmpd.conf ”. Posteriormente el paso más importante es seleccionar la opción de
configurar el acceso al agente y la opción “SNMPv1/v2 cread-write community”, asignarle una
dirección IP y un puerto además de darle nombre a la comunidad.
Una vez realizado estos pasos podemos comprobar si la configuración se ha llevado a
cabo consultando el fichero “snmpd.conf”, si todo esta correcto ya podemos lanzar el agente y
realizar diferentes peticiones como la que se muestra a continuación.
4.2.
Instalación agente snmpv3
Para configurar el agente de la versión 3, tendremos que escoger la opción “SNMPv3
read-write” en lugar de la previamente seleccionada. Además la principal diferencia que nos
encontramos con la versión anterior es la necesidad de crear un usuario, que lo haremos
incluyendo la secuencia “createUser usuario MD5 password DES password1” en el fichero
“snmpd.conf”.
Una de las principales diferencias de esta versión con respecto a las anteriores es que
podemos configurar el agente asignándoles diferentes funciones, en primer lugar le creamos
para que no realice funciones de autentificación, utilizando la opción noAuthNoPriv, de tal
forma que para poder realizar una petición no nos sirve el comando anterior, sino que debemos
además indicarle el usuario como se muestra en la siguiente captura.
A continuación configuramos el agente de forma que realice funciones de autenticación
pero no de cifrado. Para ello se utiliza la directiva authNoPriv y a la hora de realizar la petición
además de indicar el usuario deberemos indicar también su contraseña, como se observa en la
siguiente captura.
Con esta opción no se cifran las comunicaciones, si queremos cambiar esto deberemos
decantarnos por la opción authPriv, de tal forma que a la hora de hacer la petición deberemos
incluir a mayores la contraseña del cifrado, como se muestra en la siguiente captura.
5.
Pruebas de capacidades del agente snmpv3
Una vez que se ha instalado correctamente el agente snmpv3 en balbas se va a pasar a
realizar unas pruebas de las capacidades que este ofrece a sus usuarios. En el apartado anterior
se vio como se creo un usuario al incluir en el fichero “snmp.conf” la línea “createUser usuario
MD5 password DES password1” en el fichero “snmpd.conf”. Esto nos representa un problema a
la hora de crear los usuarios pues necesitamos detener el agente cada vez que queramos crear un
nuevo usuario. Por lo tanto el primer caso que se tratará será del de la creación dinámica de los
usuarios mientras el agente este ya corriendo. Para con ello, poder resolver el problema
anteriormente descrito. Una vez que se ha conseguido crear dichos usuarios se pasará a darlos
diferentes permisos haciendo que sólo puedan acceder a la parte de la MIB a la que le demos
acceso.
5.1. Creación dinámica de usuarios
Como se ha comentado anteriormente en este punto se va a tratar la creación de usuarios
una vez que tenemos el agente corriendo. Para la creación del nuevo usuario se va a utilizar el
comando “snmpusm”,concretamente se utilizará con la opción “create”. Con esta opción
conseguimos clonar un usuario de uno previamente creado otorgándole su clave y sus
características. Sin embargo, con esto no se consigue que el usuario pueda tener permiso a la
MIB y por lo tanto funcione correctamente. Para configurarlo correctamente es necesario
realizar varias acciones sobre este usuario. En la siguiente imagen se detallan los diferentes
comandos necesarios para configurar nuestro nuevo usuario:
A continuación se pasa a detallar la función de cada uno de los comandos mostrados en
la imagen anterior.
Una vez creado el usuario se le tiene que asignar un grupo que en primer lugar hay que
crear. Para realizar esta operación se utiliza el comando “snmpvacm ... createSec2Group 3
newuser grupo”. En el se ha creado un grupo llamada “grupo” y se le ha unido a el al usuario
“newuser”. Además, con el 3 le indicamos que se está utilizando el modelo de seguridad USM.
Con esto ya se habría unido al nuevo usuario a un grupo.
A continuación se pasa a crear una vista, con la vista se consigue determinar a que parte
de la MIB se va a acceder. En nuestro caso le vamos a dar acceso al árbol a partir de “system”.
Por último se le dará acceso al grupo creado anteriormente en el que se encuentra el
nuevo usuario a la vista. Por lo tanto lo que se va a realizar va a ser el dar acceso a la región del
árbol que se definió en la vista. Con esto ya se habría dado permiso al nuevo usuario para
realizar consultas al agente en la parte a la que le hemos dado el permiso. Se puede ver como
esto realmente es cierto y como al realizar una petición “snmpget” con este nuevo usuario se
consigue el resultado correcto.
5.2. Modificación de los permisos de usuarios
En este punto se va a tratar de modificar los permisos asignados a los usuarios. Al igual
que en el apartado anterior, se deberá de realizar mientras el agente “snmpv3” esta corriendo.
Para la modificación de los permisos en primer lugar se va a utilizar el comando
“snmpvacm” en este caso con la opción deleteAccess. Con ello vamos a denegar el acceso al
grupo especificado para la vista previamente definida.
En la siguiente imagen se muestra una prueba del funcionamiento. En primer lugar se
ha dado acceso a un usuario como se comento en el apartado anterior y vemos como es capaz de
realizar la petición “snmpget” correctamente. Sin embargo, tras la ejecutar el comando
oportuno el permiso es denegado y no es capaz de atender dicha solicitud.
Con este comando y la utilización adecuada de las vistas resulta muy sencillo ir
asignando y quitando permisos a los usuarios para las partes de la MIB que se desee.
6.Conclusiones
De la realización de este trabajo se han obtenido diversas conclusiones importantes. La
primera es que la gestión de redes es algo muy importante y útil para conocer el estado de
nuestra red. En este punto el programa “snmp” resulta ser una gran herramienta para llevar a
cabo dicha gestión.
En cuanto a lo que se refiere al protocolo “snmp” se ha observado que es una utilidad
muy sencilla y eficaz a la hora de gestionar nuestra red. Pero a nuestro juicio dicha sencillez es
probablemente también un problema debido a que no nos ofrece unas garantías de seguridad
suficientes. En el caso de estar utilizando la versión 1 de snmp la seguridad es algo casi
inexistente y prácticamente cualquiera va a poder acceder a los datos que se comparten entre
agente y servidor con el consiguiente problema.
Para ello se ha seguido trabajando con el agente pero en su versión 3 en la que nos
ofrece mayores medidas de seguridad con un acceso a los recursos basado en la existencia de
usuarios con claves que permiten la autenticación de los mismos. Además, también se va a
poder trabajar en modo privado en el que se utilizan conexiones cifradas. Esta nueva versión por
lo tanto mejora en gran medida la seguridad existente en anteriores versiones.
Además, “snmp” ofrece una gran flexibilidad a la hora de trabajar pudiendo crear
usuarios mientras tenemos el propio agente corriendo, esto resulta una ventaja. Además,
podemos dar acceso solamente a la parte de la MIB que se necesite evitando con ello que
usuarios sin permisos accedan a datos críticos de la gestión. Además, siempre se puede eliminar
dichos permisos en cualquier momento. Esto a nuestro juicio es una gran ventaja y una buena
medida de seguridad.
Por lo tanto se puede concluir que “snmp” es muy sencillo y útil para la gestión
de red pero sin embargo, en sus primeras versiones no nos ofrece unas garantías de seguridad y
confidencialidad en los datos transmitidos suficiente, algo que se mejora considerablemente con
la versión 3.
6.
Bibliografía
[1] Juan Ignacio Asensio Pérez “Apuntes Complementos Telemáticos II” ESTIT-UVA, 30 de
Marzo de 2010.
[2] Consultaría estratégica en tecnologías de la información
y
comunicaciones
http://www.ramonmillan.com/tutoriales/snmpv3.php Fecha de última visita 19 de Mayo de
2010
[3] William Stallings “SNMP, SNMPv2, SNMPv3, AND RMON 1 and 2” Tercera Edición,
Editorial Addison Wesley
[4] Página oficial de NET-SNMP http://www.net-snmp.org/ Fecha de última visita 19 de Mayo
de 2010.
Descargar