Download - Practica+Snmp+ Esp

Transcript
Page 1: Practica+Snmp+ Esp

Redes de Área Local e Interconexión de Redes

Práctica SNMP  

Administración de dispositivos de red vía SNMP  

Objetivos El objetivo principal de la práctica es presentar al alumno las posibilidades de administración y gestión de dispositivos de red que ofrece el protocolo SNMP (Simple Network Management Protocol). Para ello se ha elegido como dispositivo a administrar los switches 3Com SuperStack II disponibles en el laboratorio.

Para poder acceder a los switches con SNMP es necesario configurarlos mínimamente; el switch debe tener asignada una dirección IP (por DHCP o fija, como en nuestro caso), establecer las communities (public y private en nuestro caso), fijar las direcciones IP donde se mandaran los TRAP, etc. Es objetivo secundario de la práctica que el alumno conozca también como se administran este tipo de equipos vía web y vía consola.  

Consideraciones previas Utilizaremos los switches 3Com SuperStack 610 y 1100 del laboratorio de redes. El laboratorio dispone “sólo” de 7 switches de estas características, de modo que deben coordinarse con los compañeros para un uso conjunto en la práctica.

En principio, en función de cual sea su puesto de trabajo, le proponemos que acceda un switch determinado según la relación siguiente:

Puesto de trabajo switch Dir. IP 01, 02 y 03 swredes01.redes.upv.es 192.168.0.241 04, 05 y 06 swredes02.redes.upv.es 192.168.0.242 07, 08 y 09 swredes03.redes.upv.es 192.168.0.243 10, 11 y 12 swredes04.redes.upv.es 192.168.0.244 13, 14 y 15 swredes05.redes.upv.es 192.168.0.245 16, 17 y 18 swredes06.redes.upv.es 192.168.0.246 19, 20 y 21 swredes07.redes.upv.es 192.168.0.247

 

Es decir, que si usted está sentado en el ordenador 14, entonces realice la práctica con el switch “swredes05.redes.upv.es” (utilice mejor la IP: 192.168.0.245 El servidor DNS de la intranet puede no estar en funcionamiento)  y coordínese con sus compañeros de los ordenadores 13 y 15 (al lado suyo) que también estarán manipulando el mismo switch.

Page 2: Practica+Snmp+ Esp

En función del grado de ocupación del laboratorio, el profesor puede decidir una distribución distinta. Por lo tanto, preste especial atención a las indicaciones del profesor al principio de la sesión de laboratorio.

A lo largo de esta práctica se le invitará a que manipule el cableado de red del laboratorio (tanto el que conecta a su PC como el del armario de red). Recuerde que el cableado AMARILLO es el de la intranet. Es el que puede y debe manipular. El cableado VERDE conecta con UPVNET-Internet. Por favor, el VERDE NO LO MANIPULE.

Acceso a los switches Los switches 3Com SuperStack II – 610/1100 son gestionables vía

1. Web interface,

2. Command line interface (en modo consola por TELNET y por RS232)

3. SNMP (MIBs RFC1213, RMON y BRIDGE-MIB)

Esta oferta de interfases es bastante habitual en casi todos los dispositivos de red (routers, switches, firewalls, impresoras de red, …). ¿Porqué varias interfaces? ¿Cuál es la buena? Depende. La interfase WEB es la opción más clara si lo que queremos es modificar o leer de un solo dispositivo. Sin embargo, si el administrador quiere rastrear gran cantidad de dispositivos de red, una opción interesante es hacer un programa que, usando SNMP, interrogue a todos los dispositivos y almacene resultados en un fichero o en una base de datos. En cuanto a la interfase por línea de comandos (vía RS232) está disponible para casos en que el administrador necesita inicializar completamente el dispositivo y configurarlo desde el principio (empezando por asignarle dirección IP para poder funcionar con las otras interfases).

En general, la administración básica se suele realizar vía línea de comandos (por Telnet y/o RS232) y vía WEB. SNMP suele utilizarse para monitorizar la actividad del dispositivo (saber que máquinas están conectadas al switch, cual es el tráfico que tienen, …) para detectar situaciones de alarma (TRAPs por exceso de errores en tramas, exceso de broadcast, intentos de intrusión,…) y también para tomar medidas correctoras automáticas (e.g. podemos hacer un programa que bloquee automáticamente un puerto del switch si vemos que por él se genera un exceso de broadcasts)

En el caso de los switches 3Com SuperStack II, la interfase WEB es la adecuada para configurar las VLAN y el Spanning Tree y la interfase por línea de comandos (vía TELNET o RS232) para configurar SNMP (en concreto las communities y las direcciones IP a donde se debe mandar los TRAPs).

Vamos a acceder de las tres maneras haciendo hincapié en la SNMP puesto que es la más interesante para quien deba administrar muchos dispositivos de red.

Page 3: Practica+Snmp+ Esp

Acceso vía Web 

Con cualquier navegador web, conéctese a http://<dir.IP-de-su-switch>. El login/password es: manager/manager

Obtendrá una pantalla como la que muestra la figura. Los enlaces “HELP” y “Documentation” no están operativos. En el gráfico del frontal del switch puede pinchar en cualquier puerto y le dará las opciones de configuración para esa toma de red.  

En el lateral aparecen los iconos:

   Permite fijar el nombre del dispositivo, el password, ubicación, persona de contacto …

Nota: Por favor, no intente cambiar el password

  Administración de

 

         Permite ver un histórico de utilización de ancho de banda y errores  

 

Vuelve al menú principal

 

Page 4: Practica+Snmp+ Esp

Ejercicio 1:

Navegue por los distintos menús del switch al objeto de familiarizarse con las posibilidades de configuración. Procure dejar la configuración actual. No cambie el password ni haga reset o perjudicará a sus compañeros. Si alguna opción no sabe qué es lo que hace, puede acceder al manual on-line en http://www.redes.upv.es/ , o ver si “google” le da alguna pista, o… finalmente recurra al profesor.

Ejercicio 2:  

Del menú de la figura…

¿… que significa…?

Auto-negociación

PACE

HD Flow control

 

y en el menú configuration advanced Stack Setup

Broadcast Storm Control

Forwarding Mode= Fast Forward  

Forwarding Mode= Store & forward

Roving Analysis

 

Page 5: Practica+Snmp+ Esp

Acceso via TELNET  Abra una consola en su ordenador y teclee

telnet <dir.IP-de-su-switch>

El sistema debe pedirle login/password (pulse “enter” si no le sale “>login:”). Utilice “manager/manager” como en el acceso vía WEB. El switch muestra un sistema jerarquizado de menús. En la figura se puede ver el árbol de menús.

Nota: Estos switches tienen 4 usuarios, con cuatro niveles de “capacidad” de hacer y deshacer. Son, de menos a más: MONITOR, MANAGER, SECURITY y ADMIN. Entrando como MANAGER (que es nuestro caso) podemos observar que la opción “community” del menú SNMP no está disponible. Esto significa que este usuario no tiene suficientes privilegios para cambiar la community de escritura. Sólo SECURITY y ADMIN pueden. El valor actual debe ser PRIVATE (valor por defecto). Puede entrar al switch como security/security, pero por favor no cambie la community o creará problemas a sus compañeros.

Page 6: Practica+Snmp+ Esp

Ejercicio 3: Como con la interfase WEB, navegue por los distintos menús del switch al objeto de familiarizarse con las posibilidades de configuración que ofrece esta interfase. Procure dejar la configuración actual. No cambie el password ni haga reset o perjudicará a sus compañeros. Preste especial atención al menú SNMP y averigüe para qué sirven las distintas opciones.

Ejercicio 4: Del menú SNMP, con la opción display verifique si la IP de su máquina está en la relación de máquinas (a las que se les mandará TRAP). Si no es así, cree una nueva entrada con la IP de su ordenador y la community de MONITOR.

Ahora su ordenador recibirá (vía TRAP) las alarmas que se produzcan en ese switch. Para configurar las alarmas necesitamos usar la interfase SNMP. Lo vemos más adelante.

 

Acceso vía SNMP  Nuestro switch contiene un AGENTE SNMP que responde a casi todas las variables de las MIB RFC1213, MIB RMON y BRIDGE-MIB. Nuestra primera mejor opción es utilizar un programa cliente SNMP de los muchos buenos y gratuitos que hay en Internet. Hemos elegido MIB-Browser de la casa iReasoning. La figura muestra el aspecto general del programa.

El programa debe estar ya instalado en su ordenador. Puede descargar la última versión de

http://ireasoning.com/mibbrowser.shtml 

 

 

 

Page 7: Practica+Snmp+ Esp

Configuración del MIB-Browser

Para poder trabajar con nuestro switch debe:

1. En la ventana principal, en Address poner la dirección IP de nuestro agente.

2. En la barra de menús, File Load MIBs, Cargar las MIBs 1213, RMON y BRIDGE-MIB (esta última, si no está disponible en el directorio de su PC, puede descargarla de la web de la asignatura).

3. Clicando en Advanced… poner las communities de lectura y escritura a PUBLIC y PRIVATE respectivamente, y la versión SNMP a 1 y el puerto a 161 (el valor estándar).

4. En la barra de menús, en Tools Options, aparece una nueva ventana. En la pestaña General comprobar que el puerto de recepción de Traps sea el 162 (estándar). En la pestaña Agents aparece una relación de los agentes conocidos por el programa y los parámetros operativos para ese agente. Debe de figurar nuestro switch.

Ahora ya deberíamos poder comunicar con el switch. Para ello:

A) Seleccionamos una variable de la MIB (por ejemplo sysDescr en la MIB RFC1213 en system)

B) Hacemos un GET (seleccionamos GET en Operations y clicamos en Go)

C) El resultado debe aparecer en la ventana de respuestas.

 

A

B

C

Page 8: Practica+Snmp+ Esp

Ejercicio 5:  

Explore las MIB 1213, RMON y BRIDGE-MIB. Si utiliza la orden SET hágalo con cuidado y vuelva a dejar el valor original. Las tablas debe leerlas con la orden TABLE VIEW.

A.- A continuación hemos seleccionado unas variables que consideramos importantes ¿Qué indican?

MIB RF1213

sysServices

ifOperStatus

ifAdminStatus

snmpOutTraps

MIB RMON

etherStatsTable

eventTable

alarmTable

historyControlTable

etherHistoryTable

BRIDGE-MIB

dot1dTpFdbAddress

dot1dTpFdbPort

 

B.- Si nuestro dispositivo es un switch… ¿Porque tiene información de nivel-3 (IP, ICMP), de nivel-4 (TCP, UDP)…?

Recepción de TRAPs  SNMP 

Una de las características más apreciadas de SNMP por los administradores de redes es la capacidad que tienen la mayoría de los agentes de mandar alarmas (mediante comandos TRAP). Esto significa que podemos tener un receptor de traps donde se van monitorizando en tiempo real las alarmas que se van produciendo por los agentes de todos los switches, routers, impresoras de red, etc. de la empresa. Esto es muy interesante desde el punto de vista del mantenimiento, operatividad y seguridad de nuestra red. El agente de nuestros switches tiene cinco alarmas fijas que son: link up, link down, warm start, cold start, y authentication failure. Esto es, se registrará una alarma cuando se enciende o inicializa el switch, cuando se conecta o desconecta una máquina al switch (y podemos saber la MAC de esa máquina) y si alguien no autorizado está intentando entrar a configurar el switch. Además de estas alarmas básicas, el agente de estos switches se puede configurar para que mande un trap si en un puerto se producen determinados eventos, como por ejemplo que se supere una determinada tasa de tramas broadcast en un intervalo de tiempo o que se supere una determinada tasa de tramas erróneas.

Page 9: Practica+Snmp+ Esp

Ejercicio 6: En este ejercicio vamos a ver como efectivamente se genera una alarma cada vez que conectamos o desconectamos un ordenador a nuestro switch.

Para que todo funcione correctamente necesitamos:

1. Configurar el agente para que los traps los mande a nuestra dirección de IP. Esto se supone que ya lo hemos hecho en el ejercicio 4. Si no es así, hágalo ahora.

2. En el programa MIB-Browser tenemos un receptor de traps. En la barra de menús, en Tools Trap Receiver arranca el receptor. Asumimos que el programa esta correctamente configurado tal y como se indicó en el punto anterior “Configuración del MIB-Browser”

3. Ahora bastará con desconectar el cable de red de uno de los ordenadores en ese switch. Coordínese con los compañeros que hacen la práctica en el mismo switch. Recuerde que los cables de color AMARILLO son los de la intranet del laboratorio. Esos son los que están conectados a los switches de prácticas.

(Otra alternativa -más elegante- a soltar un cable de red es pedir al switch que “deshabilite” un puerto. Esto lo puede hacer con la interfase web. )

No recibo los traps. ¿Qué puedo hacer? 

Cuando algo falla y los traps no se reciben, lo primero es saber si nuestro agente está trasmitiendo los traps o no. Para ello podemos, con el MIB-Browser (o cualquier cliente SNMP), leer (GET) la variable snmpOutTraps de la MIB 1213. Esta variable contabiliza el número de traps que está emitiendo nuestro switch. Acto seguido provocamos la condición de trap (en nuestro caso, desconectamos el cable de red) y volvemos a leer la variable. El valor debe haberse incrementado en tantos mensajes trap como IPs a las que tenga configurado avisar. Si no es así, una de dos; o no estamos provocando el trap correctamente (no soltamos el cable que corresponde, no en el switch correcto…, o el envío del trap está deshabilitado (ver figura). Observe que el eventType sea logandtrap, la comunidad monitor y el estatus valid.

Page 10: Practica+Snmp+ Esp

Distribución Net­SNMP: Programando SNMP 

Otra opción muy interesante que SNMP brinda a los administradores de red es la posibilidad de acceder al agente mediante un programa a medida que utilice la librería SNMP. Por ejemplo, se puede lanzar un programa que periódicamente recoja de todos los switches de una red las direcciones MAC de los ordenadores conectados a sus puertos y almacenar toda esa información en un fichero o en una base de datos. Procesando esa información se podría saber si (e.g.) un ordenador está conectado a la red y donde está, como es su tráfico, etc.

Una de las librerías SNMP gratuitas más usada es Net-SNMP ( http://net-snmp.sourceforge.net/ ) . En su página web puede encontrar, además, amplia documentación y tutoriales con ejemplos.

Net-SNMP va ya incluida en la mayoría de distribuciones de Linux (SuSe, Kubuntu, …) y está también disponible para otras plataformas, incluida Microsoft Windows.

La distribución Net-SNMP incluye:

A) Aplicaciones para ejecutar en línea de comando, en consola. (snmpget, snmpgetnext, snmpset,

snmpwalk, etc.)

B) Un cliente MIB-browser gráfico.

C) Un demonio para la recepción de traps.

D) Un agente SNMP con soporte de gran número de MIBs.

E) Y por supuesto, una librería para desarrollo de aplicaciones SNMP en C y en Perl.

Todos los ejercicios de esta práctica pueden hacerse desde cualquiera de las dos plataformas. La elección ahora de Linux se debe a que las librerías SNMP y el interprete Perl ya están instalados en Linux (SuSe, Devian, Kubuntu,…) por defecto. Para hacer la práctica en Microsoft Windows necesita instalar Net-SNMP y un interprete Perl como, por ejemplo, ActivePerl ( http://www.activestate.com )

Ejercicio 7:

Abra una consola y pruebe los programas de línea de comandos (snmpget, snmpgetnext, snmpset, snmpwalk, etc.). Utilice la ayuda (man) para ver el formato exacto del comando (que puede variar dependiendo de la versión)

Ejemplo: snmpget -c public <switch-dir-IP> system.sysDescr.0  

Deberías ver una breve descripción del sistema parecida a la siguiente:

system.sysDescr.0 = 3Com SuperStack II

system.sysDescr.0 es un ejemplo de un identificar de objeto (OID), es la forma textual o visible del OID, el cual corresponde al IOD numérico .1.3.6.1.2.1.1.1.0. { iso(1) org(3) dod(6) internet(1) mgmt(2) mib-2(1) system(1) 1 }

En este punto de la práctica abandonamos Microsoft Windows y pasamos a Linux.

Page 11: Practica+Snmp+ Esp

Programando con SNMP 

Aunque la distribución de NET-SNMP viene con una librería de C la cual puedes usar para crear tus propias aplicaciones basadas en SNMP, frecuentemente es mucho más fácil empezar usando un lenguaje de programación como Perl, Python o TCL. Todos ellos tienen librerías SNMP disponibles. Perl suele ser el lenguaje de elección entre administradores de red.

Desccargamos y descomprimimos el fichero SNMP.rar del poliformat.

Nota:

Aunque tendria que estar todo lo necesario para la realización de la práctica, si no tiene la utilidad unrar, la puede descargar simplemente ejecutando :

#apt-get install unrar

Lo descomprimimos usando:

#unrar e SNMP.rar

Una vez descomprimidos los ficheros cambiaremos los permisos de los identifica.pl y macs.pl de la siguiente manera:

#chmod 755 identifica.pl

#chmod 755 macs.pl

Nota:

Para ejecutar los scripts, revisaremos la ruta del “shebang” de los scrips:

Para esta distribución, la ruta a perl es “/usr/bin/perl”.

Otra forma de ejecutamos es mediante “perl” seguido de un espacio y el nombre del script, veamos un ejemplo:

#perl macs.pl

Ejercicio 8: 

Page 12: Practica+Snmp+ Esp

Por ejemplo, usando Perl y la librería SNMP_util, puedes fácilmente escribir una aplicación que consulte las variables MIB de cualquier dispositivo. A continuación un ejemplo muy sencillo. El programa imprime el nombre del dispositivo del que pasamos su IP o su nombre como primer y único parámetro.

Puedes descargar el programa “identifica.pl” del poliformat.

Nota:

Observamos que el script utiliza la librería “SNMP_util”, que tiene que estar instalada en los equipos, si no estubiera, la podemos descargar de:

http://www.switch.ch/misc/leinen/snmp/perl/dist/SNMP_Session-1.12.tar.gz

Pasos de instalación de la librería:

1) tar -xvzf SNMP_Session-1.12.tar.gz

2) perl Makefile.PL (dentro del directorio que nos ha creado al descomprimir )

3) make

4) make install

Otra librería que se necesita para el script macs.pl es Net-SNMP, la podemos descargar de:

http://search.cpan.org/CPAN/authors/id/D/DT/DTOWN/Net-SNMP-5.2.0.tar.gz

Pasos de instalación de la librería:

1) tar -xvzf Net-SNMP-5.2.0.tar.gz

2) perl Makefile.PL (dentro del directorio que nos ha creado al descomprimir )

3) make

4) make install

#!/usr/bin/perl

# Usage: perl identifica.pl <host-id o host-IP>

use SNMP_util;# cargar la librería

$HOST = shift;# En la variable $HOST cargamos el primer parámetro

$OID = "1.3.6.1.2.1.1.1.0";# OID iso.org.dod.internet.mgmg.mib-2.system.sysDescr

$values = &snmpget($HOST, $OID); # GET al agente

if($values) {

print "La máquina $HOST es un: $values\n"; }

else {

print "$HOST no respondio\n"; }

Page 13: Practica+Snmp+ Esp

El programa asume que el agente responderá a SNMP v.1 y con la community public (lo cual es cierto en los switches del laboratorio).

Ejercicio 9: 

Utilizando el programa anterior, pruebe a modificarlo para que interrogue secuencialmente a todas las IP de una subred para ver si hay más máquinas que contestan.

Page 14: Practica+Snmp+ Esp

Ejercicio 10:  

A continuación se muestra otro programa PERL, más completo, que interroga al agente de un switch para pedirle su tabla de forwarding y el puerto por el que ha aprendido esa dirección MAC. Este programa es útil para hacer una localización de una máquina conectada a la red, de la que sepamos de antemano su MAC. Observe que no se ha utilizado la misma librería SNMP que en el ejemplo anterior. Puede descargar el código de “macs.pl” de la web de la asignatura.

#===================================== # Usage: macs.pl <host> [ <community> <port> ] #===================================== #! /usr/bin/perl #=== comprobar si perl está instalado eval '(exit $?0)' && eval 'exec /usr/local/bin/perl $0 ${1+"$@"}' && eval 'exec /usr/local/bin/perl $0 $argv:q' if 0; #=== Cargar la librería SNMP use Net::SNMP qw(snmp_dispatcher oid_lex_sort); #=== Abrir sesión con agente remoto my ($session, $error) = Net::SNMP->session( -hostname => $ARGV[0] ||'localhost', -community => $ARGV[1] || 'public', -port => $ARGV[2] || 161 ); #=== ¿Se ha creado la sesión? if (!defined($session)) { printf("ERROR: %s\n", $error); exit 1; } #=== OIDs para leer la información requerida (pertenecen a BRIDGE-MIB) my $TpFdbAddress = '1.3.6.1.2.1.17.4.3.1.1'; my $TpFdbPort = '1.3.6.1.2.1.17.4.3.1.2'; #=== Imprimiendo los resultados printf("\n== MAC --- Puerto en HOST: %s ==\n\n", $ARGV[0]); my $result; my $i=0; ## obtenemos las direcciones MAC if (defined($result = $session->get_table(-baseoid => $TpFdbAddress))) { foreach (oid_lex_sort(keys(%{$result}))) { $mac{$i++}=$result->{$_}; #store MAC values in array $mac } } else { printf("ERROR: %s\n\n", $session->error()); } my $j=0; ## obtenemos los puertos if (defined($result = $session->get_table(-baseoid => $TpFdbPort))) { foreach (oid_lex_sort(keys(%{$result}))) { $port{$j++}=$result->{$_}; #store port values in array $mac } } else { printf("ERROR: %s\n\n", $session->error()); } ## imprimimos ambos arrays for (my $z=0; $z<$i; $z++) { print "MAC: $mac{$z} - Puerto: $port{$z}\n"; } exit(1);

Page 15: Practica+Snmp+ Esp

Ejercicio 11: 

La idea es utilizar el mismo programa (o mínimamente modificado) para leer las tablas de forwarding de varios switches (routers, hubs, …) y volcar el resultado en un único fichero. El fichero es susceptible de ser filtrado (e.g. grep) para localizar una MAC en concreto.

NOTA: Un switch borra de su tabla de forwarding las MACs con más de 5 minutos (aproximadamente) de inactividad.

Sugerencia: El programa anterior imprime en cada línea el binomio (MAC – Puerto). Lo tendrá más fácil si incluye también el HOST.

Ejercicio 12: 

El desarrollo de una aplicación en Visual C++ excede el tiempo que esta previsto dedicar a SNMP. Pero si usted está interesado en probar un programa sencillo de demostración escrito para Microsoft Visual C++ … http://www.net-snmp.org/wiki/index.php/TUT:Simple_Applicatio 

Trabajos de asignatura 

Una interesante aplicación podría ser monitorizar la recepción de TRAPs de cualquier dispositivo (p.e. una impresora de red que se queda sin papel, un intento de intrusión en un router crítico,…) y mandar un SMS a nuestro móvil utilizando los conocimientos vistos en la práctica de “Control PC de un teléfono celular mediante comandos Hayes (AT+)”

Trabajos en casa 

Si quiere practicar con SNMP en su casa y no tiene un dispositivo (impresora de red, router, switch…) con un agente SNMP decente, sepa que su mejor opción es hacer de su propio PC (o mejor si tiene un segundo PC) un agente SNMP. Tanto Linux como Windows tienen agentes SNMP y resultan ser agentes bastante completos.

En Windows el agente SNMP está ya incluido. Para activarlo: Panel de Control Agregar o quitar programas Agregar o quitar componentes de Windows Seleccione Herramientas de administración y supervisión Pulse Detalles Seleccione SNMP