Como administradores de sistemas siempre debemos contar con las mejores herramientas y aplicaciones que nos permitan llevar a cabo las tareas de monitoreo y supervisión de una forma mucho más integral, es decir, no solo obtener datos superficiales sino completos de cada acción que acontece tanto a nivel interno como externo dentro del sistema operativo.
Una de las mejores formas para acceder a dicha información es a través de los logs o registros de eventos en los cuales se almacenan múltiples datos como:
- Inicios, reinicios y apagados del sistema tanto exitosos como erróneos
- Acceso a aplicaciones y programas
- Eventos de seguridad
- Registros de conexiones entrantes y salientes y mucho más.
Una de las mejores opciones para acceder al monitoreo de estos logs es Swatchdog y por ello en Solvetic explicaremos como instalarlo y usarlo en Linux.
Swatchdog este en la capacidad de monitorear casi cualquier tipo de registros en Linux y estos registros son producidos por la función syslog de Unix y será posible ver los registros basados en expresiones regulares las cuales podemos definir en el archivo de configuración de la utilidad.
1. Cómo instalar Swatchdog en Linux
Para este caso usaremos Ubuntu 18.04, el paquete swatchdog se encuentra disponible para la instalación desde los repositorios oficiales de cada una de las distribuciones principales de Linux como un paquete "swatch" a través de un administrador de paquetes, para su instalación podemos ejecutar lo siguiente en base a la distribución usada:
sudo apt install swatch (Ubuntu / Debian) sudo yum install epel-release && sudo yum install swatch (RHEL / CentOS) sudo dnf install swatch (Fedora 22)
Pulsamos la tecla S para confirmar la descarga e instalación de Swatchdog.
Si deseamos instalar la última versión de Swatchdog, este debe ser compilado desde el origen haciendo uso de los siguientes comandos en todas las distribuciones de Linux:
git clone https://github.com/ToddAtkins/swatchdog.git cd swatchdog/ perl Makefile.PL make sudo make install sudo make realcleanCon esos comandos lo tendréis listo.
2. Cómo configurar Swatchdog en Linux
Una vez se haya completado el proceso de instalación de Swatchdog, será necesario crear el archivo de configuración, su ubicación por defecto es /home/$USER/.swatchdogrc o .swatchrc, esto con el fin de determinar qué tipos de patrones de expresión se van a buscar y qué tipo de acción debe ser ejecutada cuando se combina un patrón.
Para crear este archivo usaremos alguna de las siguientes opciones:
sudo touch /home/solvetic/.swatchdogrc sudo touch /home/solvetic/.swatchrc
Ahora vamos a añadir una expresión regular en este archivo y cada línea debe contener una palabra clave y un valor separados por un espacio o un signo igual (=), será necesario especificar un patrón y una acción a tomar en el caso de que coincida un patrón.
Accedemos al archivo usando el editor deseado:
sudo nano swatchdogrc
Alli pegaremos, como ejemplo, lo siguiente:
watchfor /sudo/ echo red mail=solvetic@outlook.com, subject="Sudo Action"
Guardamos los cambios usando las teclas:
Ctrl + O
y salimos del editor usando:
Ctrl + X
En este ejemplo, la expresión regular es una cadena literal llamada "sudo", la cual significa que cada vez que la cadena sudo se ejecute en el archivo de registro, se imprimirá en el terminal en texto rojo y al correo se especificará la acción que ha sido ejecutada, así tendremos información constante sobre las acciones llevadas a cabo.
Después de su configuración, swatchdog lee el archivo de registro /var/log/syslog de forma predeterminada, y si este archivo no está presente, leerá /var/log/messages.
Ejecutamos lo siguiente para leer los registros:
swatch (RHEL / CentOS y Fedora) swatchdog (Ubuntu / Debian)
También será posible indicar un archivo de configuración diferente haciendo uso del parámetro -c, para ello primero crearemos un archivo de la siguiente manera:
mkdir swatch touch swatch/secure.conf
Una vez creado, vamos a añadir la siguiente configuración en el archivo con el fin de monitorear intentos de inicio de sesión fallidos, intentos de inicio de sesión de SSH fallidos, inicios de sesión de SSH exitosos en el archivo de registro /var/log/secure.
watchfor /FAILED/ echo red mail=solvetic@outlook.com, subject="Intento de acceso fallido" watchfor /ROOT LOGIN/ echo red mail= solvetic@outlook.com, subject="Acceso Root correcto" watchfor /ssh.*: Failed password/ echo red mail= solvetic@outlook.com, subject="Intento de conexión SSH fallido" watchfor /ssh.*: session opened for user root/ echo red mail= solvetic@outlook.com, subject="Acceso SSH Root correcto"
Guardamos los cambios usando las teclas Ctrl + O y salimos del editor usando Ctrl + X.
Ahora vamos a ejecutar Swatch especificando el archivo de configuración creado usando el archivo -c y el log usando el indicador -t así:
swatchdog -c ~/swatch/secure.conf -t /var/log/secure
De esta forma, a medida que se vayan registrando entradas estas serán desplegadas en los resultados de Swatchdog.
Adicionalmente podemos crear otros archivos para monitoreo como:
swatchdog -c ~/site1_watch_config -t /var/log/nginx/site1/access_log --daemon swatchdog -c ~/messages_watch_config -t /var/log/messages --daemon swatchdog -c ~/auth_watch_config -t /var/log/auth.log --daemonAlgunas opciones de uso adicionales son:
Así, será posible llevar un control mas preciso los eventos en Linux gracias a esta utilidad.