Elastix con Incrond , monitoreando cambios en los archivos de configuración.

Selection_999(415)Es sábado en la noche , he terminado de dictar la penúltima clase de Ethical Hacing en Huancayo , una de las ciudades mas importantes de la sierra central del Perú, me queda una hora antes de que salga el bus hacia Lima, así que vamos a aprovechar el tiempo con este post.

Hace unos meses una empresa que usa Elastix como su sistema principal de telefonía me pidió una forma de detectar automáticamente, en caso de que archivos como extensions_curstom.conf o sip_general.conf , fueran modificados o siquiera fueran fueran abiertos de alguna forma  y además que les enviara alertas al correo en caso de recibir esos eventos.

Pues alguna forma tendría que a ver, para hacer ello 😀 , me puse a buscar en la red, y esto es lo maravilloso del todo lo que está al rededor del Open Source y Linux, que puedes encontrar una programa que te sirva como base y luego moldearlo hacia el objetivo que necesites.

Es así que encontré INCROND , es un servicio que lo que hace es justamente, es monitorear los eventos que suceden en el sistema de archivos de Linux, es decir notifica sobre los cambios que pueden suceder en dentro de una carpeta o un archivo en especifico.

Con esto ya tenemos el servicio que en esencia hace lo que buscaba, a continuación vamos a ver como lo configuramos, y nos apoyamos en otros elementos, para cumplir el requerimiento solicitado.

1.- Instalar servicio
Instalar el servicio desde los repositorios

#yum install incron
#service incrond start

2.- Configurar servicio
Luego de instalarlo , la carpeta de configuracion es “/etc/incron.d/”  vamos a crear una archivo llamado “monitor_archivos_elastix” para configurarlo de la siguiente forma.

#vim /etc/incron.d/monitor_archivos_elastix

# contenido del archivo /etc/incron.d/monitor_elastix
# <directorio> <cambio a monitorear> <comando que se debe ejecutar> <parámetros del comando>
/etc/asterisk IN_MODIFY /root/incrond/incrond_email.sh $@ $# $%

Lo que hace el archivo lo siguiente :
/etc/asterisk  : Carpeta a monitorear
IN_MODIFY   : Evento que deseamos monitorear en este caso modificación.
/root/incrond/incrond_email.sh  : Script al cual vamos a enviar los parámetros que se disparan al activarse el evento
$@ : path del fichero o directorio.
$# : Nombre del fichero o directorio, sin el path.
$% : nombre del evento que se disparó

3.- Preparar programa de alertas
Ahora vamos a crear el archivo “incrond_email.sh” el cual va recibir los parametros definidos en el archivo de configuración  “monitor_elastix”

3.1.- Crear la carpeta y los archivos
#mkdir /root/incrond
#touch /root/incrond/incrond_email.sh
#touch /root/incrond/incrond_email.txt

3.2.- Crear el script incrond_email.sh

#vim /root/incrond/incrond_email.sh

#!/bin/bash
/bin/echo “ALERTA DE MONITOR DE ARCHIVOS / Se ha producido cambios en los archivos del servidor ELASTIX , los detalles son : Ruta archivo modificado: $1 Nombre archivo modificado: $2 Evento/Accion: $3 \n” > /root/incrond/incrond_email.txt
/bin/mail -s ALERTA-MODIFICACION-ARCHIVOS-ELASTIX jroliva@gmail.com</root/incrond/incrond_email.txt

4.- Desarrollando las pruebas
Ahora vamos a crear un archivo dentro de la carpeta “/etc/asterisk” que generará el evento.

– Creamos el archivo
#touch /etc/asterisk/prueba1.txt

– Luego incrond le envia los parametros al archivo “incrond_email.sh” y este genera el email , la salida la pueden ver en :
#tail -f /var/log/maillog

5.- Agregando Funciones horarias
Digamos que queremos que la monitorizacion solo lo haga a partir de las 18 horas , ya que en horario de oficina hacemos cambios regulares en el servidor.

5.1.- Programa para verificar horario

#vi /root/incrond/incrond_funcionhoraria.sh

#!/bin/bash
HORA=$(date +%H)
echo $HORA

if [ $HORA > 18 ]; then
/sbin/service incrond start
else
/sbin/service incrond stop
fi

5.2.- Automatizando en el Crontab

#chmod a+x  /root/incrond/incrond_funcionhoraria.sh
#crontab -e

*/60 *     * * *     /root/incrond/incrond_funcionhoraria.sh

Cualquier cambio o aporte serán bienvenidos
Espero les sirva
Juan Oliva
@jroliva

Anuncios
Esta entrada fue publicada en Manuales y tutoriales por jroliva. Guarda el enlace permanente.

Acerca de jroliva

Juan Oliva, es un consultor de seguridad informática y telefonía IP con 10 años de experiencia en el campo . Muy involucrado en proyectos de pruebas de penetración , análisis y explotación vulnerabilidades, pruebas de ingeniería social, seguridad física, revisión de código, entre otras tareas de seguridad informática. Así mismo, desarrolla proyectos de implementación y mantenimiento de VoIP, basadas en Asterisk y Elastix, proyectos de callcenter, soluciones en la nube y hosted PBX, Aseguramiento de plataformas Linux, Windows. Ha estado trabajando para una variedad de empresas en donde ha desarrollado proyectos para el estado peruano, así como para entidades privadas, nacionales y del extranjero, cuenta con certificaciones vigentes en Ethical hacking, Linux y telefonía IP. Es instructor de cursos de Ethical Hacking y certificaciónes como Linux Professional Institute y Elastix, donde ha tenido oportunidad de realizar capacitaciones en el Perú, así como en el extranjero. Es investigador de vulnerabilidades, y creador de contenidos, que son publicados en su blog personal jroliva.wordpress.com el cual mantiene desde hace mas de 6 años.

Un pensamiento en “Elastix con Incrond , monitoreando cambios en los archivos de configuración.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s