PROTOCOLO MRTG USANDO WIFI EN LINUX UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA
ADMINISTRACIÓN DE REDES.
PROYECTO 1 PROTOCOLO MRTG USANDO WIFI EN LINUX
ALUMNOS: GRANADOS CHAVARRIA EDUARDO HERNANDEZ BERMUDES ANDRES. NAVA NAVA ALEJANDRO
GRUPO TEORIA: 2
PROFESOR: ING. ALEJANDRO MENA
FECHA DE ENTREGA: 10 DE OCTUBRE DEL 2008.
PROTOCOLO MRTG USANDO WIFI EN LINUX
PROTOCOLO MRTG USANDO WIFI EN LINUX
ÍNDICE: Introducción _____________________________________________________________________ Equipo del proyecto _______________________________________________________________ Desarrollo _______________________________________________________________________ Instalación del SNMP ______________________________________________________________ Configuración del SNMP ___________________________________________________________ Instalación de Apache2 _____________________________________________________________ Configuración de Apache2 __________________________________________________________ Instalación de MRTG ______________________________________________________________ Configuración de MRTG ___________________________________________________________ Resultados _____________________________________________________________________ Problemáticas presentadas en el desarrollo ____________________________________________ Conclusiones ____________________________________________________________________
PROTOCOLO MRTG USANDO WIFI EN LINUX INTRODUCCIÓN. Se implementara un monitoreo del ancho de banda en una red de datos implementada sobre la interfaz WiFi entre dos equipos con GNU/Linux como sistema operativo. La administración de red es necesaria para poder asegurar que se brindan correctamente los servicios para los que esta diseñada, además de asegurar que cumple con un nivel aceptable de seguridad. Para la medición del trafico se utilizara el Protocolo Simple de Administración de Red (en ingles, Simple Network Manager Protocol SNMP) y el Graficador de Trafico para Routers (Multi Router Traffic Grapher, MRTG). El SNMP es un protocolo en la capa de aplicación (capa 7) del modelo OSI, que permite una estructura de mensajes para el intercambio de información entre el administrador y el agente SNMP, para que el protocolo pueda ser implementado se requiere de: •
•
•
Un administrador SNMP, es un sistema empleado para controlar la actividad de los componentes de la red, regularmente denominado NMS, Sistema de Administración de Red (Network Management System). Un agente SNMP, es el componente software dentro del dispositivo administrado que mantiene los datos del mismo e informa al administrador acerca de ellos, cuando se requiere. Contiene variables de la MIB cuyos valores pueden ser solicitados o modificados por el administrador SNMP, mediante operaciones get y set. Una MIB, es una colección de objetos de información de administración, residente en el dispositivo administrado.
MRTG es utilizado para supervisar el trafico en la red mostrando, para obtener esta información pide los datos requeridos o que se desean monitorizar al servidor SNMP y este los interpreta en gráficas en una página de HTML por lo que también es necesario instalar un seridor Web, en este caso Apache2, el MRTG pide la información cada cierto tiempo constante, esto es controlado por el cron. Las gráficas que se pretenden ser mostradas son: Análisis de trafico para el host eduardo-linux en la interfaz wlan0 Análisis de trafico para el host VF-11 en la interfaz ath0 A continuación se muestra un ejemplo de las gráficas que se desean obtener
La red que sera empleara para este proyecto es bajo el estándar IEEE 802.11g también conocido como WiFi, que permite la conexión de equipos de computo de forma inalámbrica, para poder establecer una comunicación es necesario un punto de acceso en caso de desear conectar varios nodos a la red, si solo requerimos conectar dos nodos se puede establecer una conexión mediante ad-hoc (de maquina a maquina).
PROTOCOLO MRTG USANDO WIFI EN LINUX EQUIPO DEL PROYECTO. Para la implementación de la red que requerimos para el proyecto se utilizo un access point y dos host con tarjeta inalámbrica compatible con IEEE 802.11g Access Point: Router Belkin Wireless G Router, modelo F5D7230-4 capaz de soportar el estándar 802.11g Host En la siguiente tabla se muestran los host que tuvo la red durante el desarrollo del proyecto Modelo
Sistema Operativo
NIC
Dirección IP*
Acer Aspire One Debian Lenny
IEEE 802.11bg 192.168.2.3 Atheros bg wifi interface
Sony FE630F
IEEE 802.11abg 192.168.2.4 Intel PRO wireless ABG network connection *Las direcciones IP se asignaron por DHCP.
Vaio Ubuntu 8.04
Desarrollo: Instalación del servidor SNMP. El servidor SNMP fue instalado en el equipo Sony Vaio, para instar se utilizó apt-get: $ sudo apt-get install snmp snmpd
PROTOCOLO MRTG USANDO WIFI EN LINUX CONFIGURACIÓN DEL SERVIDOR SNMP. Para configurar el SNMP se utilizo el comando snmpconf: Al iniciar el programa nos pide donde creara el archivo de configuración, se ejecuto como root y se selecciona la opción que almacena en /etc/snmp/snmpd.conf $ sudo snmpconf
Cuando nos pregunta que tipo de archivo de configuración se desea crear, elegir la opción 1 (snmpd.conf). En la siguiente pantalla nos da una lista de los parámetros que pueden ser configurados, que son: 1: Extending the Agent 2: Monitor Various Aspects of the Running Host 3: System Information Setup 4: Trap Destinations 5: Agent Operating Mode 6: Access Control Setup Se configura la opción 3: System Information Setup, donde pide la localización física y datos de contacto del| administrador: 1: The [typicallly physical] location of the system 2: The contact information for the administrator 3: The proper value for the sysServices object
PROTOCOLO MRTG USANDO WIFI EN LINUX En 1: The [typicallly physical] location of the system, colocamos la ubicación del administrador y en 2: The contact information for the administrator colocamos el nombre y correo del administrador, posteriormente salimos de este submenú con finished. En el menu anterior elejimos la opción 5: Agent Operating Mode. En el nuevo submenú elegir 4: The IP address and port number that the agent will listen on, aquí ingresamos el puerto y protocolo que utiliza, en este caso introducimos: tcp:161 En la opción 1: Should the agent operate as a master agent or not, despliega una lista de argumentos que acepta aquí se introduce: agentx. y regresamos al menú principal con finished. Continuamos con el 6: Access Control Setup para dar de alta las comunidades, primero se configura la opción 3: a SNMPv1/SNMPv2c read-only access community name: ( nombre de la comunidad de solo lectura: lecture, red que se utiliza es la 192.168.2.0/24 y dejar en blanco la OID. En la opción 4: a SNMPv1/SNMPv2c read-write access community name, que es la comunidad de lectura y escritura se utiliza el nombre: writing, con IP local como 127.0.0.1 dejando en blanco el OID. Regresar al menú principal con finished, y salir del menú principal del configuración con finished. Enseguida tecleamos quit y preguntara si desea sobre escribir el archivo a lo cual accedemos con overwrite. Después de esto regresamos a la consola y podemos verificar el archivo con: $ less /etc/snmp/snmp.conf
PROTOCOLO MRTG USANDO WIFI EN LINUX
A continuación se muestra el archivo de configuración: ########################################################################### # # snmpd.conf # # - created by the snmpconf configuration program #
########################################################################### # SECTION: System Information Setup # # This section defines some of the information reported in # the "system" mib group in the mibII tree. # syslocation: The [typically physical] location of the system. # Note that setting this value here means that when trying to # perform an snmp SET operation to the sysLocation.0 variable will make # the agent return the "notWritable" error code. IE, including # this token in the snmpd.conf file will disable write access to # the variable. # arguments: location_string syslocation
"Sony Vaio"
# syscontact: The contact information for the administrator # Note that setting this value here means that when trying to # perform an snmp SET operation to the sysContact.0 variable will make # the agent return the "notWritable" error code. IE, including # this token in the snmpd.conf file will disable write access to # the variable. # arguments: contact_string syscontact
"Eduardo G;
[email protected]"
PROTOCOLO MRTG USANDO WIFI EN LINUX
########################################################################### # SECTION: Agent Operating Mode # # This section defines how the agent will operate when it # is running. # master: Should the agent operate as a master agent or not. # Currently, the only supported master agent type for this token # is "agentx". # # arguments: (on|yes|agentx|all|off|no) master
agentx
# agentaddress: The IP address and port number that the agent will listen on. # By default the agent listens to any and all traffic from any # interface on the default SNMP port (161). This allows you to # specify which address, interface, transport type and port(s) that you # want the agent to listen on. Multiple definitions of this token # are concatenated together (using ':'s). # arguments: [transport:]port[@interface/address],... agentaddress agentaddress
161 tcp:161
########################################################################### # SECTION: Access Control Setup # # This section defines who is allowed to talk to your running # snmp agent. # rocommunity: a SNMPv1/SNMPv2c read-only access community name # arguments: community [default|hostname|network/bits] [oid] rocommunity rocommunity
lecture 192.168.2.0/24 lecture 127.0.0.1
# rwcommunity: a SNMPv1/SNMPv2c read-write access community name # arguments: community [default|hostname|network/bits] [oid] rwcommunity rwcommunity
writing 127.0.0.1 writing 192.168.2.2
# # END OF FILE CONFIG. #
Por ultimo volvemos a cargar la configuración al demonio del snmp. Con: $ sudo /etc/init.d/snmpd reload Para verificar que el puerto 161 este abierto se puede comprobar con el siguiente comando: $ netstat -natup | grep 161
PROTOCOLO MRTG USANDO WIFI EN LINUX
Para comprobar que e servicio y la configuración han sido levantados correctamente utilizamos el mbrowser que es un navegador de MIB para SNMP, se pude descargar con: $ sudo apt-get
install mbrowser
Primero se realiza una prueba en el host local llenando los campos de comunidad de lectura con “lecture” y la comunidad de escritura con “writing” y navegando por el árbol de las MIBs, por ejemplo en: /iso/org/dod/internet/mgmt/mib-2/system/sysDescr
PROTOCOLO MRTG USANDO WIFI EN LINUX
Una vez que ha contestado se realiza la misma prueba con el host que pertenece a la comunidad de solo lectura (lecture) colocando en Host Name la IP.
PROTOCOLO MRTG USANDO WIFI EN LINUX Ya que se comprobó que la conexión se realizo satisfactoriamente entre las dos computadoras se prosiguió con las instalación y configuración del MRTG, sin embargo, como ya se dijo anteriormente este programa utiliza un servidor web por lo tanto se prosiguió a instalar primero Apache2 en la computadora que pertenece al administrador, Acer Aspire One. INSTALACIÓN DE APACHE2. Para instalar el servidor apache se introduce el siguiente comando: $ sudo apt-get install apache2 CONFIGURACIÓN DE APACHE2. El servidor apache no necesito configuración solo creamos el directorio de trabajo de mrtg bajo el root de apache (/var/www) # mkdir /var/www/mrtg Con este directorio se accede a la pagina de trabajo de mrtg con la siguiente dirección http://192.168.2.3/mrtg Donde 192.168.2.3 es la dirección IP dentro de la red local para nuestro servidor web Hasta aquí no se ha generado una pagina de índice para el directorio mrtg, el navegador nos generara el índice del directorio automáticamente. A continuación se muestra la pagina de índice que genera el navegador estando el directorio mrtg vacío
PROTOCOLO MRTG USANDO WIFI EN LINUX
INSTALACIÓN DE MRTG. Para instalar el mrtg en sistemas debian se ejecuta el gestor de paquetes apt # apt-get install mrtg El paquete mrtg esta en los repositorios predeterminados de debian así que los únicos requisitos son tener una conexion a internet y los repositiorios bien configurados, en caso de no tener estos requisitos se puede bajar manualmente el paquete e instalarlo con el siguiente comando # dpkg -i <paquete>.deb CONFIGURACIÓN DE MRTG. Para la configuración se utilizaron los programas cfgmaker e indexmaker, cgkmaker nos establece la configuración que debemos de tener en /etc/mrtg.cfg e indexmaker nos construye la pagina de indice para el directorio de trabajo de mrtg (en este caso /var/www/mrtg) Para obtener el archivo de configuracion para mrtg se ejecuta el siguiente comando # cfgmaker comunidad@host
PROTOCOLO MRTG USANDO WIFI EN LINUX Este comando manda a stdout la configuracion que debe de ir en mrtg así que tenemos la opción de especificar el archivo de salida en el programa o continuar de la siguiente forma # cfgmaker comunidad@host >> /etc/mrtg.cfg Con esto redirigimos la salida del programa de stdout al archivo de configuracion, si ya existia el archivo se agrega el nuevo contenido al final del mismo Con esto ya podemos crear nuestro archivo /etc/mrtg.cfg con los hosts que vamos a analizar de la siguiente manera: # cfgmaker
[email protected] >> /etc/mrtg.cfg # cfgmaker
[email protected] >> /etc/mrtg.cfg Al introducir estos comandos se genera la configuración para que nos muestre las interfaces de red activas de cada host, sin embargo en este proyecto solo se va a analizar la interfaz de red inalámbrica, por lo que se quitaron las demás interfaces (que además estaban comentadas) del archivo de configuración. A continuación se muestra el contenido del archivo de configuración de mrtg: ###################################################################### ## /etc/mrtg.cfg START ### Global Config Options # for Debian WorkDir:
/var/www/mrtg
### Global Defaults ## Deshabilitamos el soporte para IPv6 EnableIPv6: no ## Nuestro servidor snmp es version 2c por lo que no requerimos soportar la version 3 EnableSnmpV3: no ## Establecemos el tiempo de refresco de la pagina a 5 minutos (300 segundos) Refresh: 300 # #Title[^]: Traffic Analysis for ##
Configuraciones para el Host1
###################################################################### # Comando que se ejecuto para obtener las configuraciones # /usr/bin/cfgmaker
[email protected] ###################################################################### # System: VF-11 # Description: Linux VF-11 2.6.26-1-686 #1 SMP Wed Sep 10 16:46:13 UTC 2008 i686 # Contact: root@VF-11 # Location: Random Location ###################################################################### ##
Interfaz de red inalambrica compatible con WiFi
### Interface 4 >> Descr: 'ath0' | Name: 'ath0' | Ip: '192.168.2.3' | Eth: '' ### Target[192.168.2.3_4]: 4:
[email protected]: SetEnv[192.168.2.3_4]: MRTG_INT_IP="192.168.2.3" MRTG_INT_DESCR="ath0"
PROTOCOLO MRTG USANDO WIFI EN LINUX MaxBytes[192.168.2.3_4]: 1250000 Title[192.168.2.3_4]: Traffic Analysis for 4 -- VF-11 PageTop[192.168.2.3_4]:
Traffic Analysis for 4 -- VF-11
System: | VF-11 in Random Location |
Maintainer: | root@VF-11 |
Description: | ath0 |
ifType: | ethernetCsmacd (6) |
ifName: | ath0 |
Max Speed: | 1250.0 kBytes/s |
Ip: | 192.168.2.3 (VF-11.local) |
##
Configuraciones para el Host1
###################################################################### # Comando que se ejecuto para obtener las configuraciones # /usr/bin/cfgmaker
[email protected] ###################################################################### # System: eduardo-linux # Description: Linux eduardo-linux 2.6.24-19-generic #1 SMP Wed Aug 20 22:56:21 UTC 2008 i686 # Contact: "Eduardo G;
[email protected]" # Location: "Sony Vaio" ###################################################################### ##
Interfaz de red inalambrica compatible con WiFi
### Interface 4 >> Descr: 'wlan0' | Name: 'wlan0' | Ip: '192.168.2.4' | Eth: '' ### Target[192.168.2.4_4]: 4:
[email protected]: SetEnv[192.168.2.4_4]: MRTG_INT_IP="192.168.2.4" MRTG_INT_DESCR="wlan0" MaxBytes[192.168.2.4_4]: 1250000 Title[192.168.2.4_4]: Traffic Analysis for 4 -- eduardo-linux PageTop[192.168.2.4_4]:
Traffic Analysis for 4 -- eduardo-linux
System: | eduardo-linux in "Sony Vaio" |
Maintainer: | "Eduardo G; [email protected]" |
Description: | wlan0 |
PROTOCOLO MRTG USANDO WIFI EN LINUX
ifType: | ethernetCsmacd (6) |
ifName: | wlan0 |
Max Speed: | 1250.0 kBytes/s |
Ip: | 192.168.2.4 (eduardo-linux.local) |
## /etc/mrtg.cfg END ######################################################################
PROTOCOLO MRTG USANDO WIFI EN LINUX Resultados Las gráficas obtenidas fueron las siguientes http://192.168.2.3/mrtg
http://192.168.2.3/mrtg/192.168.2.3_4.html
http://192.168.2.3/mrtg/192.168.2.4_4.html
PROTOCOLO MRTG USANDO WIFI EN LINUX Videos. Aqui se muestra todo el desarrollo de la instalaciń e implementaciń de SNMP y MRTG http://www.youtube.com/watch?v=TCSLS-bYQ7o http://www.youtube.com/watch?v=I3LwOoRlQ8Y http://www.youtube.com/watch?v=4cUSLzJBIF0 http://www.youtube.com/watch?v=x5_ReHAypkE http://www.youtube.com/watch?v=YwZJxYgidtA Problemáticas presentadas en el desarrollo La problemática que se nos presento fue la configuración del snmp, nos tratamos de basar en la práctica de laboratorio, sin embargo, había algunos cambios que tuvimos que hacer, el activar directamente el puerto del firewall. Y al intentar hacer directamente la configuración del snmp en el archivo de configuración. Para este problema usamos el programa snmpconfig como root en el directorio /etc/: user@host-name:/etc$ sudo snmpconfig Fuera de esto no se presento otro problema. Conclusiones. El proyecto se concluyo de forma satisfactoria dado que se logro implementar el protocolo SNMP y MRTG, además de que se pudo configurar el cron para así poder modificar el tiempo de actualización del refresco de la página y así poder ponerlas en el tiempo que se deseé mayor o menos a los cinco minutos, esto es en el archivo /etc/cron.d/mrtg Modificando: # each minute 0-59/1 * * * * root if [ -x /usr/bin/mrtg ] && [ -r /etc/mrtg.cfg ]; then env LANG=C /usr/bin/mrtg /etc/ mrtg.cfg >> /var/log/mrtg/mrtg.log 2>&1; fi También para poder agregar más gráficas de información que deseemos leer tales como: puertos abertos, memoria libre, uso de CPU, usuarios conectados, etc. (todas las MIBs disponibles), se añada en el archivo /etc/mrtg.cfg, posteriormente actulizar con: $sudo indexmaker /etc/mrtg.cfg > /var/www/mrtg/index.html Por ejemplo para puertos abiertos:
PROTOCOLO MRTG USANDO WIFI EN LINUX ### TCP ABIERTOS ### Target[arpanet.tcp]: .1.3.6.1.2.1.6.9.0&.1.3.6.1.2.1.6.9.0:
[email protected] RouterUptime[arpanet.tcp]:
[email protected] Options[arpanet.tcp]: nopercent,growright,gauge Title[arpanet.tcp]: Conexiones TCP abiertas PageTop[arpanet.tcp]:
Conexiones TCP abiertas
MaxBytes[arpanet.tcp]: 1000000 YLegend[arpanet.tcp]: Conexiones ShortLegend[arpanet.tcp]: Conexiones LegendI[arpanet.tcp]: Conexiones: LegendO[arpanet.tcp]: Legend1[arpanet.tcp]: Conexiones TCP abiertas
La sintaxys es: ### NOMBRE DE LA GRÁFICA### Target[arpanet.tcp]: MIBs:comunidad@IPhost RouterUptime[arpanet.tcp]:
[email protected] Options[arpanet.tcp]:OPCIONES COMO:
nopercent,growright,gauge
Title[arpanet.tcp]: TITULO DEL GRAFICO PageTop[arpanet.tcp]:
TITULO DEL GRAFICO
MaxBytes[arpanet.tcp]: YLegend[arpanet.tcp]: nombre del eje Y ShortLegend[arpanet.tcp]: Leyenda del gráfico LegendI[arpanet.tcp]: Conexiones: LegendO[arpanet.tcp]: Legend1[arpanet.tcp]: Conexiones TCP abiertas
Con esto nos da mucho más opciones de medir el uso de la computadora deseada. Bibliografía: ➢
HowTo Multi Router Traffic Grapher http://arpaneting.es/stuff/mrtg_howto.html
➢
Manual de MRTG disponible en linux: $ man mrtg
➢
Manual de SNMP disponible en linux $ man snmp