Mostrando entradas con la etiqueta redes. Mostrar todas las entradas
Mostrando entradas con la etiqueta redes. Mostrar todas las entradas

lunes, 17 de febrero de 2014

Monitorización con Zabbix (Iniciación)

En esta ocasión iniciamos nuestro camino hacia el uso de una herramienta profesional de monitorización como Zabbix. A continuación, te ofrecemos una serie de enlaces básicos y muy interesantes que te serán útiles en tus primeros pasos hacia el control de esta herramienta.


El proceso que describo ahora está basado en una instalación hecha sobre un Ubuntu 12.04:

1)Instalamos el servidor Zabbix: 
sudo apt-get install zabbix-server-mysql
Cuando se inicia la instalación se nos solicita ponerle contraseña al usuario root de mysql, es muy recomendable hacerlo. Posteriormente, como Zabbix utiliza una base de datos que creará en Mysql, hay que indicar la clave del usuario administrador de dicha base de datos. Te recomiendo pongas la misma clave que la de tu root de Mysql. A continuación puede que se te solicite que establezcas otra clave, sigue poniendo la misma que la del root de Mysql. Siempre tendrás tiempo de cambiarlas más tarde.

2) Instalamos el front-end de la aplicación:
sudo apt-get install zabbix-frontend-php
Durante la instalación de esta aplicación web para la gestión de Zabbix, se nos solicitará a través de qué sistema de gestión de bases de datos queremos instalarla. En este caso, indicaremos que a través de Mysql. Si nos pide alguna clave, volveremos a establecer la misma que la del root de mysql.


3) Instalamos el agente Zabbix: 
sudo apt-get install zabbix-agent 

Con todo esto instalado, reiniciamos todos los servicios relacionados para que cualquier cambio en las configuraciones tenga efecto.

sudo /etc/init.d/zabbix-server restart
sudo /etc/init.d/zabbix-agent restart

4) Acceso a Zabbix a través de nuestro navegador web:
Una vez instalado, nos vamos al navegador y ponemos como dirección de acceso nuestra IP/zabbix. Se nos solicitará entonces un Login. En mi caso, el usuario por defecto que Zabbix estableció era admin y como contraseña zabbix. Cuando introduces estos datos de autentificación se abre la ventana de gestión de Zabbix y ya puedes empezar a utilizar la herramienta.

Si tienes problemas para que te muestre la ventana de Login con los campos de usuario y contraseña (te muestra un cuadro con una advertencia en rojo sobre problemas de autentificación), te recomiendo que busques el archivo de configuración de zabbix, se llama dbconfig.php y está en la misma carpeta /etc/zabbix. En este archivo, puedes cambiar la línea donde indica el usuario de la base de datos, e incluir allí tu usuario administrador de mysql. Una vez cambiado, reinicias el servicio de mysql (sudo /etc/init.d/mysql restart) y te saldrá en el navegador la ventana de entrada correctamente. Hacemos Login con usuario: admin y contraseña: zabbix y a configurar.

5) Modificar valores en php.ini para que Zabbix funcione correctamente: 
Es posible que al entrar en Zabbix, en la ventana principal, te aparezcan algunos avisos en rojo sobre valores de variables del archivo php.ini que no tienen un valor adecuado. Busca en tu sistema dicho archivo (locate php.ini), edítalo como root y cambia estos valores a los que se te indican en dicha ventana principal. Reinicia el servidor Zabbix y vuelve a hacer login en la aplicación. Comprueba que los avisos han desaparecido.

Los valores de php.ini que tienes que cambiar son los siguientes:
max_execution_time = 300
max_input_time = 600
post_max_size = 32M 
date.timezone = Europe/Madrid

Script para enviar totales de tráfico de red vía email

El siguiente código fuente muestra cómo podemos enviar vía email los totales de tráfico de red obtenidos a través del software ipfm (IP Flow-meter). Realizando una correcta configuración de ipfm podemos obtener en un archivo con el formato ipfm-global-YYYY-mm-dd.log el volumen de tráfico generado diariamente (por ejemplo). Estos totales pueden ser volcados a un archivo de texto que constituirá el cuerpo del mensaje de correo electrónico que enviaremos a nuestra cuenta de monitorización.

De manera paralela, a través de este archivo de totales podemos incorporar en nuestro apache un script realizado en php que, tomando los datos de dicho archivo, nos mostrará en formato web lo descargado por los equipos que forman nuestra red. Puedes encontrár más información sobre esto en: http://scripfm.sourceforge.net/



Este es el código fuente:

#!/bin/bash

#Script que envía el estado del log de tráfico de ipfm a través
#de un mensaje de correo electrónico enviado desde la consola

servidor="[nombre del servidor]"
hoy=`date +%Y_%d_%m`
actual=`date +%Y-%m-%d`

if [ -f estadotrafico.txt ]
then
    rm estadotrafico.txt
else
    touch estadotrafico.txt
fi

echo "Subject: Estado del tráfico $servidor" >> estadotrafico.txt
echo
echo
echo "Trafico: $hoy" >> estadotrafico.txt
#Enviamos contenido archivo con totales diarios
cat /var/log/ipfm/ipfm-global-$actual.log >> estadotrafico.txt


sudo ssmtp tudirecciondecorreo@dominio.com < estadotrafico.txt

lunes, 27 de enero de 2014

Script para configuración de IP estática

El siguiente código fuente corresponde a un script cuyo objetivo es permitir la configuración de una única interfaz de red en una máquina Linux.

Hay que decir que el script no ha sido completado ya que se utilizó para comenzar las explicaciones relacionadas con la configuración de red de máquinas Linux y recordatorio de shellscripts. Dada la posible complejidad que pudiera derivarse al intentar dotar a este script de capacidad para configurar más de un interfaz de red, se optó por hacerlo para una sola.

Debemos tener en cuenta que si estamos trabajando con cualquier distro cuya gestión de interfaces de red esta realizada a través de Network Manager, será necesario desactivar dicho sistema de gestión.

Para ello bastaría con acceder al archivo de configuración de NetworkManager (/etc/NetworkManager/NetworkManager.conf) en la máquina en cuestión y poner a "false" la variable "managed". Si tienes alguna duda al respecto, te aconsejo que accedas al siguiente enlace: Desactivación de NetworkManager en Ubuntu.

Aquí teneis el código fuente:

#!/bin/bash

#Script que permite configurar de manera estática el direccionamiento IP
#de una tarjeta de red en una máquina Ubuntu Desktop 12.04.
#Para que los no nos afecte el gestor de red NetworkManager de Ubuntu
#deberemos desactivarlo. Accederemos a /etc/NetworkManager/NetworkManager.conf
#lo editaremos y modificaremos la variable "managed" poniéndola a false.

#los archivos a tener en cuenta en este script serían:
#a) Configuración IP: /etc/network/interfaces
#b) Resolución de nombres WAN: /etc/resolv.conf
#c) Resolución de nombre LAN: /etc/hosts (opcional)

#--------------------
# FUNCIONES
#--------------------

function titulo()
{
    clear
    echo "****************************************************"
    echo "*   CONFIGURADOR DE DIRECCIONAMIENTO IP ESTÁTICO   *"
    echo "****************************************************"
}

function copiaseg()
{
          
    echo "Realizando copias de seguridad..."
   
    if [ -f /etc/network/interfaces ]
    then
        cp /etc/network/interfaces /etc/network/interfaces.original
        if [ $? -eq 0 ]
        then
            echo "El archivo interfaces ha sido salvaguardado con éxito."
        else
            echo "Error al salvaguardar el archivo interfaces."
        fi
    fi

    if [ -f /etc/resolv.conf ]
    then
        cp /etc/resolv.conf /etc/resolv_original.conf
        if [ $? -eq 0 ]
        then
            echo "El archivo resolv.conf ha sido salvaguardado con éxito."
        else
            echo "Error al salvaguardar el archivo resolv.conf."
        fi
    fi
   
}


function grabar_configuracion()
{

    echo "----------------------------------------------------"
    echo "La nueva configuración de red introducida es: "
    echo "Interfaz: $1"
    echo "Dirección IP: $2"
    echo "Máscara de red: $3"
    echo "Puerta de enlace / Gateway: $4"
    echo "DNS 1º: $5"
    echo "DNS 2º: $6"
    echo "----------------------------------------------------"

    # A partir de aquí abría que reescribir completos los archivos    
    # de configuración interfaces y resolv.conf
   
   
    #Modificación de /etc/network/interfaces
    interfaces="/etc/network/interfaces"
    echo "auto lo" > $interfaces
    echo "iface lo inet loopback" >> $interfaces
    echo "auto $1" >> $interfaces
    echo "iface $1 inet static" >> $interfaces
    echo "address $2" >> $interfaces
    echo "mask $3" >> $interfaces
    echo "gateway $4" >> $interfaces

    #Modificación de /etc/resolv.conf
    resolv="/etc/resolv.conf"   
    echo "#Generado por script configuraip.sh" > $resolv
    echo "nameserver $5" >> $resolv
    echo "nameserver $6" >> $resolv

    #reiniciamos los servicios de red para
    #que la nueva configuración tenga efecto
    /etc/init.d/networking restart

}



#--------------------
# PROGRAMA PRINCIPAL
#--------------------

titulo

if [ $LOGNAME != "root" ]
then
    read -p "Lo siento, este script debe ser ejecutado con privilegios de root."
    exit 1   
fi

#Mostramos los interfaces de red
titulo
echo "Mostrando interfaces de red actuales..."
for nic in `lshw -short -class network | grep eth | tr -s " " | cut -f2 -d" " `
do
    echo "* Interfaz: $nic"
done
echo "-----------------------------------------------------"

nic_elegida=""
while [ "$nic_elegida" == "" ]
do
    read -p "Elige la interfaz que deseas configurar: " nic_elegida
done

nic_valida=1
for nic in `lshw -short -class network | grep eth | tr -s " " | cut -f2 -d" " `
do
    if [ $nic == $nic_elegida ]
    then
        nic_valida=0
    fi
done

if [ $nic_valida -ne 0 ]
then
    echo "Error, la interfaz $nic_elegida no es válida."
    read -p "Pulsa una tecla para cerrar el script..."
    exit 1
fi


echo "La interfaz elegida es: $nic_elegida"
read -p "Introduce la nueva dirección ip estática: " ip
read -p "Introduce la nueva máscara de red: " mascara
read -p "Introduce la puerta de enlace: " puerta
read -p "Introduce el DNS 1º: " dns1
read -p "Introduce el DNS 2º: " dns2
echo
read -p "Pulse una tecla para continuar."
titulo

respuesta=""
while [ "$respuesta" == "" ]
do
    read -p "Desea grabar estos datos de configuración (S/N): " respuesta
    case $respuesta in
        s|S)copiaseg; grabar_configuracion $nic_elegida $ip $mascara $puerta $dns1 $dns2;            break;;
        n|N)echo "Ok, no se modificarán los archivos de configuración"; read; break;;
        *) echo "No ha introducido una respuesta válida, vuelva a intentarlo.";;
    esac
done

echo "Fin del script."
read
exit 0

jueves, 10 de octubre de 2013

Más software para Inventarios de Equipamiento Informático

Recientemente he encontrado en la red un par de posts relacionados con software para la realización de Inventarios de TI. El primero de los enlaces que aquí os publico trata de software para auditar software y el segundo trata sobre una herramienta específica "Network Inventory Advisor" para la realización de inventarios de equipamiento informático. Esta herramienta es parecida a SpiceWorks.


Posible sitio de descarga. Cuestión de probarlo.



martes, 25 de junio de 2013

SIIM 2.0. en IES Oretania

Hace ya algunos años que desarrollé junto con compañeros y alumnos del IES Ntra. Sra de los Remedios un proyecto llamado "Sistema Inalámbrico de Información Multimedia - SIIM". Tras varias evoluciones de este sistema, durante el curso 2012/13 el IES Oretania de Linares ha decidido a incorporar en sus instalaciones el "SIIM 2.0.", una nueva versión de este sistema de información adaptada a las necesidades de este Centro de Enseñanza.

Diversos materiales sobre el proyecto se encontraban dispersos en la red y creo que reunirlos en un post de este blog sería interesante para haceros una idea de qué trata este proyecto y sus evoluciones.




Y accediendo a este enlace podrás más información detallada sobre el proyecto: http://www.juntadeandalucia.es/averroes/impe/web/contenidoRecurso?pag=/2009/04/13/0009/NDOIAND-20090413-0009&idSeccion=19021

Guía en pdf sobre SIIM 2.0.:

jueves, 20 de junio de 2013

Análisis de tráfico de red con ipfm


Cuando queremos tener nuestra red relativamente controlada se hace necesario utilizar ciertas herramientas que nos faciliten la tarea. En este caso vamos a utilizar una herramienta para Linux llamada ipfm o IP Flow Meter. 

Con esta herramienta podemos tener una medición del tráfico de subida, bajada y total realizado por IP`s en nuestra red. Explicaremos cómo instalarla, cómo visualizar el resultado de su ejecución y cómo complementar estos datos mediante su visualización a través de un módulo en php que nos ofrecerá los datos capturados en un formato más legible, incluso a través de gráficos. Estos son los pasos que realizamos para poder hacerla funcionar:

1) Instalamos en nuestra máquina Ubuntu la herramienta mediante apt-get. Puedes encontrar más información en http://aspiranteageek.wordpress.com/2009/10/22/monitoreo-de-ancho-de-banda/
2) Descarga el siguiente paquete de http://scripfm.sourceforge.net/ y alójalo en /var/www de tu máquina Ubuntu.(lo normal es que tengas instalado un servidor http con intérprete php, mysql, etc. Una posible opción es lamp).
3) Una vez instalada tenemos que tener en cuenta que el lugar donde quedan los archivos de ipfm es en /var/www/ipfm. Es allí donde podremos encontrar todos los archivos asociados a este software, así como ejemplos de configuración para el mismo.
4) Tendremos que modificar los archivos de configuración y para ello tendremos que tener controlados los dos siguientes: /etc/ipfm.conf y /var/www/ipfm/conf.php. Te encontrarás dentro de /var/www/ipfm un archivo llamado ipfm.conf-sample en el que te puedes basar para generar tu propia configuración. Pero no generes un ipfm.conf en /var/www/ipfm ya que entraría en conflicto con el existente en /etc.
5) Por último en /usr/share/doc/ipfm también podrás encontrar un ejemplo de archivo de configuración muy completo sobre el que basarte, sobre todo para establecer las subredes, rangos y demás opciones con las que ipfm debe funcionar.
6) En el archivo /etc/ipfm.conf debes configurar qué redes o subredes quieres analizar, la frecuencia del análisis, cómo se van a generar los logs, cuántos, dónde, la periodicidad con la que se eliminarán éstos, la ordenación de los datos, etc.
7) Configura ahora el archivo /var/www/ipfm/php.conf con el que conseguirás que el módulo php funcione adecuadamente. Podrás establecer si quieres que aparezcan las estadísticas en un color u otro, si quieres que funcione con gráficos o sólo con datos, mensualmente, diariamente, etc. Fìjate en las líneas de comentario del archivo, ya que te aclararán los términos a configurar.  

(Por ejemplo, hay una línea en la que se establece el tipo de estadísticas, por defecto viene "daily", pues puedes utilizar "daily-graph" si quieres que te aparezcan las estadísticas en formato de gráfico. Ojo en las líneas de comentario asociadas a esta parte del archivo, aparece la palabra "dailygraph" pero si lo configuras así no obtendrás los gráficos esperados. Debes utilizar "daily-graph" para que te funcione, es el nombre del archivo php que verás en la carpeta /var/www/ipfm/daily-graph.php).

Ten en cuenta que cuando quieras que el módulo php te genere las estadísticas de tráfico, deberás generar algún log en /var/log/ipfm con el formato ipfm-global-año-mes-dia.log, donde año, mes y día serán variables del sistema. Un posible ejemplo de fragmento del archivo ipfm.conf podría ser:

# Indicamos la red a analizar
FILENAME "/var/log/ipfm/ipfm-global-%Y-%m-%d.log"
DUMP EVERY 30 minutes
CLEAR EVERY 1 day
SORT TOTAL

RESOLVE

Fíjate en el nombre del archivo con extensión log, ya que si no lo pones así el módulo php no lo reconocerá y no te sacará correctamente las estadísticas.

Después de darle algunas vueltas más a los archivos de configuración, sólo tendrás que acceder a tu servidor con una dirección del tipo www.miservidor.es/ipfm a través del navegador para poder ver algo como esto:

Por otra parte, accediendo a /var/log/ipfm podrás visualizar las carpetas creadas por ipfm en las que estarán todas las capturas realizadas a modo de logs.

Eso es todo, pruébalo y verás que seguro será de tu utilidad. Hasta la próxima.