Tabla de Contenidos

Graficar el tráfico del enlace con MRTG

(Este tutorial es un trabajo en progreso).

Configuración del enrutador

Para graficar el tráfico, primeramente es necesario preparar el enrutador (router). Supongamos que es un modem-router Huawei SmartAX de los que abundan por las empresas, que tiene la direción 192.168.1.1

Accedemos al enrutador por telnet:1)

telnet 192.168.1.1

Si nos dice algo como 'Login Successful' es que ya estamos en la interfaz de comandos del enrutador. Desde ahi realizaremos algunas operaciones.

Primero habilitamos la notificación de cambios de estado (trap) y lo comprobamos:

modify snmp trap enable
get snmp trap

Ahora eliminamos ciertas comunidades que a veces vienen predeterminadas, para en su lugar crear una personalizada con acceso de solo lectura, para que un posible atacante no pueda modificar nuestra configuración si llega a averiguar la comunidad. Nótese que a los efectos de SNMP versiones 1 y 2c, la comunidad no es una simple cadena de texto, sino que realmente es una contraseña, por lo que dejar los valores predeterminados representa una vulnerabilidad (porque son demasiado comunes), especialmente si una comunidad tiene acceso de lectura y escritura (rw).

En este tutorial, utilizaremos la comunidad COMUNEMPRESA.2) Adicionalmente, podemos declarar una dirección IP específica a la cual enviar las notificaciones de cambios de estado. Los últimos dos comandos son para comprobación:

delete snmp comm community private
delete snmp comm community public
create snmp comm community COMUNEMPRESA ro
create snmp host community COMUNEMPRESA ip 192.168.1.2
get snmp comm
get snmp host

Finalmente, guardamos los cambios, y salimos:

commit
exit

Para poder utilizar el protocolo SNMP, debemos cerciorarnos que en el agente (agent) tenemos habilitada la entrada y salida en el puerto UDP 161 (solo para el acceso desde el equipo autorizado a hacer consultas SNMP), la salida en el puerto UDP 162, y también que en el gestor (manager) esté habilitada la entrada en los puertos UDP 161 y 162 (solo para paquetes provenientes del agente), y la salida hacia el puerto UDP 161 del agente. En este caso el agente sería el enrutador, y el gestor sería la PC, por lo que habría que configurar el cortafuegos que utilicemos en la PC y posiblemente también el propio enrutador (lo cual usualmente se puede hacer desde su interfaz de configuración web).

Instalación y configuración del software

01- Comencemos instalando mrtg:

aptitude install mrtg

Opcionalmente podemos comprobar si recibimos datos del enrutador, para lo cual utilizamos el siguiente comando, que debería producir bastante información:

snmpwalk -v1 -c COMUNEMPRESA 192.168.1.1 -m ALL .1

02- Ahora, generamos la configuración de mrtg con este comando:3)

cfgmaker COMUNEMPRESA@192.168.1.1 > /etc/mrtg.cfg

03- Revisamos el fichero /etc/mrtg.conf para confirmar si la configuración se escribió:

editor /etc/mrtg.conf

Para que el gráfico aparezca de forma correcta, ponemos esta entrada en el fichero:

Options[_]: growright, bits

04- Ahora para generar las imágenes del tráfico, ejecutamos este comando:

indexmaker /etc/mrtg.cfg --output=/var/www/mrtg/index.html 2> /dev/null&

Para graficar más de un enrutador, repetimos el paso 2, pero dirigiendo la salida a otro fichero (mrtg2.cfg) y luego copiamos su contenido en el primer fichero (mrtg.cfg)

05- Ahora editamos el crontab:

crontab -e

Agregamos estas dos entradas:

/5  * * * *   root   indexmaker /etc/mrtg.cfg --output=/var/www/mrtg/index.html 2> /dev/null&
*/5 * * * *   root   /usr/bin/mrtg /etc/mrtg.cfg 2> /dev/null&

06- Creamos un virtual host llamado mrtg y colocamos esto dentro:

<VirtualHost *>
  ServerName mrtg.dominio.cu
  ServerAdmin admin@dominio.cu
  DocumentRoot /var/www/mrtg
  <Directory /var/www/mrtg/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    allow from all
  </Directory>
  ErrorLog /var/log/apache2/error.log
  LogLevel warn
  CustomLog /var/log/apache2/access.log combined
  ServerSignature On
</VirtualHost>

07- Hacer el enlace simbólico (cuál?)

08- Crear un registro en el DNS con el nombre mrtg

09- Reiniciar el servicio de DNS (usualmente bind9)

10- Reiniciar cron

11- Reiniciar apache

Con suerte, ya todo debe estar listo.

Notas

Estos pasos sirven para cualquier enrutador, solo que en los telindus 1421 y 1423 la comunidad snmp del enrutador coincide con el password del equipo.

Para otros enrutadores hay que entrar al modo de programación y habilitarle las conexiones snmp. Los 1421 o 1423 en ocasiones vienen desactivadas. Puedes pedirle a los compañeros de ETECSA que te lo activen y si no quieren darte la clave de full access que te creen un usuario de read only, funciona igual para el mrtg.

Con MRTG se puede graficar casi todo lo que te propongas si sabes programar un poco en bash. Antiguamente yo graficaba la cola de los MX, la descarga y subida de los SQUID, el tráfico de las 24 puertas que tenía mi switcher gestionable capa2 pues tenía comunidad snmp, la temperatura, presión y humedad relativa de mi localidad dada por un fichero que bajaba de NOOA y en algún lugar que no recuerdo ví hasta un termómetro gestionable que tenía conexión por ethernet, que graficaba la temperatura real del nodo.

1)
La autenticación suele ser en muchos casos la palabra admin tanto para login como password (de ser este el caso, es recomendable cambiarla, si podemos).
2)
Para mejor compatibilidad con diferentes aplicaciones, podemos asignar a la cadena de la comunidad hasta 32 caracteres alfanuméricos (hay distinción de mayúsculas y minúsculas).
3)
Otra manera de hacerlo:
cfgmaker --output=/etc/mrtg.cfg COMUNEMPRESA@192.168.1.1