Spiga

SNMPv3 - Configuración en Debian 6 Squeeze

¡Hola!

En las entradas anteriores, en las que hemos estudiado el protocolo SNMP, ya hemos hablado de que la gestión de la seguridad en las versiones 1 y 2 era prácticamente nula, ya que se basan en el concepto de comunidad y utilizan una cadena de texto, enviada en texto plano, para su gestión.

SNMPv3 sí ofrece un acceso seguro a los dispositivos, de forma que se puede acceder a los datos sin temor a que se modifiquen por el trayecto y, además, la información confidencial (como un cambio en la configuración de un router) puede ser cifrada para prevenir que su contenido quede expuesto en la red. Con SNMPv3 podemos tener, por tanto, las siguientes funcionalidades:

  • Integridad del mensaje: asegura que un paquete recibido no ha sido modificado.
  • Autenticación: determina que el mensaje proviene de una fuente válida.
  • Cifrado: asegura la confidencialidad del paquete, evitando que pueda ser leído por un usuario no autorizado.
Dentro de SNMPv3, tenemos 3 niveles de seguridad: noAuthnoPriv, authNoPriv y authPriv.


Un ejemplo práctico

Vamos a ver el protocolo en funcionamiento. Para ello usaremos las utilidades net-snmp, que ya vimos en la entrada anterior cómo instalar y configurar en una máquina Debian.

Para configurar el agente snmpd de la máquina Debian, de forma que se pueda usar SNMPv3 para el acceso a la información, tenemos que editar varios ficheros, pero es más sencillo si utilizamos el programa net-snmp-config.

Lo primero que tenemos que hacer es detener el agente para que podamos crear nuestro primer usuario y darle permisos para que pueda realizar consultas o llevar a cabo modificaciones de los objetos.

# /etc/init.d/snmpd stop

Con la siguiente orden creamos el usuario "prueba" con contraseña "asdasd123", utilizando MD5 y DES para la seguridad:
(NOTA: Debes tener openssl instalado)

# net-snmp-config --create-snmpv3-user -a asdasd123 prueba

Por defecto, el programa añade una línea al fichero /etc/snmp/snmpd.conf que concede al usuario creado acceso de lectura y escritura. Editando el fichero podemos cambiar los permisos.

Vamos a iniciar el agente de nuevo para poder probar su funcionamiento:

# /etc/init.d/snmpd start

La siguiente orden solicita al agente localhost el OID 1.3.6.1.2.1.1.4.0, que es sysContact, utilizando el usuario prueba:

$ snmpget -v 3 -u prueba -l authPriv -a MD5 -A asdasd123 -x DES -X asdasd123 localhost 1.3.6.1.2.1.1.4.0

iso.3.6.1.2.1.1.4.0 = STRING: "Chen "

Y esta otra orden solicita sysLocation:

$ snmpget -v 3 -u prueba -l authPriv -a MD5 -A asdasd123 -x DES -X asdasd123 localhost 1.3.6.1.2.1.1.6.0

iso.3.6.1.2.1.1.6.0 = STRING: "Instituto"

En la siguiente imagen podemos ver una captura con wireshark en la que se puede observar cómo, efectivamente, tras realizarse la autenticación, la información viaja cifrada, asegurando su integridad y confidencialidad:



¡Un saludo!

0 comentarios: