El monitoreo constante de cambios realizados en nuestros servidores nos permiten llevar una administración mucho más centralizada sobre posibles amenazas, inconsistencias y, en general, sobre todo aquello que pueda afectar en un momento dado la estructura de archivos que está organizada dentro del sistema.
Con Pyinotify tenemos a mano una herramienta sencilla pero que será de gran utilidad para llevar a cabo este monitoreo y es debido a esto que hoy este tutorial analizará cómo usar esta herramienta en un entorno CentOS 7.
Pyinotify es un módulo de Python que nos permitirá supervisar cambios en los sistemas de archivos independiente del uso dado a estos.
Este módulo depende directamente de la característica inotify la cual fue introducida desde el kernel 2.6.13 en las distros de Linux y las notificaciones son generadas por tres llamados al sistema. Con Pyinotify se unirán estas llamadas y a partir de esto tendremos la oportunidad de detallar todos los cambios.
1. Requisitos para usar Pyinotify en CentOS 7
Básicamente requerimos de los siguientes elementos para ejecutar a cabalidad Pyinotify. Para conocer más sobre el proyecto Pyinotify podemos ir al siguiente enlace:
- Contar con una versión de kernel mínimo de 2.6.13.
- Python 2.4 o superior, actualmente tenemos la versión 3.
Para verificar la versión actual en nuestro sistema de estos componentes ejecutaremos los siguientes comandos:
uname -r (versión del kernel) python -V (versión del Python)
2. Instalar Pyinotify en CentOS 7
Para realizar este proceso usaremos pip el cual por defecto está instalado en las distros de Linux, pero en caso de faltar podremos instalarlo ejecutando los siguientes comandos:
sudo yum install python-pip
apt-get install python-pip
sudo dnf install python-pip
En caso de no contar con el aceptamos la descarga e instalación de los respectivos paquetes. Una vez tengamos pip instalado en el sistema procedemos a la instalación de Pyinotify ejecutando el siguiente comando:
sudo pip install pyinotify
Podremos ver que si contamos con una versión anterior, podemos ejecutar el siguiente comando para su actualización:
sudo pip install –upgrade pip
git clone https://github.com/seb-m/pyinotify.git cd pyinotify/ ls python setup.py install
3. Usar Pyinotify en CentOS 7
Su uso es sencillo, crearemos algún archivo o carpeta en la ruta /home/Solvetic y ejecutaremos el siguiente comando para analizar los respectivos cambios:
python -m pyinotify -v /home/Solvetic
para comprobar los cambios en tiempo real accedemos vía SSH al servidor CentOS y crearemos dos carpetas llamadas pruebas.com y Acceso_Solvetic, hemos usado Putty:
Tan pronto creamos dichos archivos veremos los cambios gracias a Pyinotify:
Comprobamos que se indica lo siguiente:
- Fecha y hora del evento.
- Tamaño de la consulta.
- Tipo de evento.
- Nombre del evento, en este caso podemos ver los nombres de nuestras carpetas creadas.
- Ruta afectada.
Para salir del análisis basta con ejecutar la combinación de teclas siguientes. Si ejecutamos Pyinotify sin indicar una ruta exacta de análisis, este tomará el directorio /tmp por defecto.
Ctrl + C
Como vemos, Pyinotify es una herramienta que puede sernos de gran utilidad cuando queremos conocer los cambios que se están efectuando en unos directorios de archivos concretos gracias a la monitorización.