Programas Monitorización

Existen varias alternativas para el monitoreo de servidores, pero si sólo queremos una simple monitorización del equipo podemos usar logwatch, logcheck y snoopy.

logcheck

es una utilidad que revisa los logs del sistema y genera un reporte, eliminando las entradas que son normales en un sistema (ejecuciones de cron, por ejemplo) para mostrar únicamente aquellas sospechosas.

snoopy

es una librería que funciona como wrapper del execve() de libc, para guardar un registro de todos los comandos ejecutados en el sistema, un .bash_history que no puede ser modificado o borrado por el usuario.

Un problema de tener estas dos utilidades corriendo es que snoopy va a guardar el registro de los comandos ejecutados por logcheck cuando parsea los logs, formando un circulo vicioso que terminara generando un reporte con las acciones de logcheck, ¡marcadas como alertas!. En palabras cristianas, un email de 500k con información repetida.

La solución es crear los archivos /etc/logcheck/ignore.d.server/snoopy y /etc/logcheck/violations.ignore.d/snoopy con esta línea (probado y usado en Debian GNU/Linux):

  ^\w{3} [ :0-9]{11} [._[:alnum:]-]+ snoopy.*uid\:109.*

El mismo esquema se puede usar para pasar por alto diferentes comandos del sistema, como sendmail y procmail, que generalmente son bastante comunes. Para validar que las expresiones regulares nos funcionen, se puede usar el útil grep o la página Rex V

LogWatch

es una utilidad que nos permite analizar los logs de un sistema Linux. En centos viene instalado por defecto, en caso contrario.

Para instalarlo

yum install logwatch
requiere usar el repositorio de rpmforge

configuración en

/usr/share/logwatch/default.conf/logwatch.conf.

Por ejemplo podemos cambiar el nivel de detalle y el correo

Detail = High
MailFrom = micorreo@midominio.com
MailTo = root  updates to MailTo = administrador@midominio.com

Para verificar que todo funciona correctamente

    # logwatch --logfile secure --detail high --mailto micorreo@midominio.com --range yesterday

Para que logwatch envíe correos con los resúmenes podemos utilizar por ejemplo nail o ssmtp

con nail

yum install nail 

Editar /etc/nail.rc y colocar

set smtp=smtp://miservidorsmtp.com

Editar /etc/logwatch/conf/logwatch.conf y poner

mailer = /usr/bin/nail -t
MailTo = monitorcn en xxxxx.com.co
MailFrom = template_vm
MailSubject= "Logwatch for serverxxxx"
Range = yesterday
Detail = med

Con ssmtp

yum install ssmtp
vim /etc/ssmtp/ssmtp.conf

Y configurar la siguiente información:

  root=micorreo@midominio.com
  mailhub=miservidor.pop3.com
  rewriteDomain=midominio.com
  hostname=midominio.com
  FromLineOverride=YES // Necesario para re-escribir la cabecera From: de nuestro correo
  AuthUser=MiUsuarioDeCorreo
  AuthPass=MiPassword

Para enviar un correo de prueba usando ssmtp

  cat - | /usr/sbin/ssmtp -v micorreo@midominio.com

Referencias