Análisis simple de logs IPTABLES con WFLOGS
El análisis de Logs es una tarea de mediana complegidad y algo aburrida, donde más de algún detalle se puede escapar por no tener la suficiente paciencia al revisar linea por linea cada detalle del LOG.
Servidores que tengan implementado IPTABLES como linea de defensa son capaces de generar un registro de todo lo que queramos y dependiendo de nuestra configuración, el LOG puede quedar bastante largo y complejo de analizar. Para facilitar esa tarea entra a la cancha una ya vieja aplicacion llamada WFLOGS, la cual permite analizar la salida depositada en el LOG y depositarla en un directorio con acceso WEB, así se facilita el analisis para los que no son muy fanáticos de andar viendo líneas
Pueden ver un ejemplo de lo que se puede obtener visitando en siguiente sitio.
Por lo general, cuando a iptables se le pide registrar un Match (coincidencia de un paquete con todos los parámetros indicados en una regla), se puede hacer con un -j LOG o mas detallado con un -j LOG –log-prefix “Alerta” , quedando este en el archivo /var/log/syslog
Para generar un log mas exclusivo, agregamos lo siguiente como parámetro de la regla.
-j LOG --log-level debug --log-prefix "ALERTA TIPO 1"
Una vez agregado lo anterior en cada una de las reglas LOG de iptables, editamos la configuración de LOGS en el sistema editando el archivo /etc/syslog.conf (en debian y derivados ) e insertamos la línea:
kern.=debug /var/log/iptables.log
Luego de reiniciar klogd y sysklogd ya cada coincidencia debería generar un LOG independiente. Este es el primer paso, lo siguiente es instalar wflogs en tu distribución con el método correspondiente, en el caso de debian basta con ejecutar:
apt-get update && apt-get install wflogs
Una vez finalizada la instalación debemos elegir una ruta accesible via web, para ello debemos contar con un servidor web corriendo, ya sea apache o algo similar, una vez seleccionado el destino del reporte, agregamos lo siguiente a /etc/crontab :
*/5 * * * * root wflogs -i netfilter -o html --sort=-count /var/log/iptables.log > /home/web/logs/index.html
Con lo anterior le indicamos a CRON que cada 5 minutos tome la información del LOG de iptables y la transforme a algo mas entendible como un reporte web.
Es importante mencionar que la información que se va generando no permanece por siempre, ya que los LOGS van rotando cada cierto tiempo y su permanencia dependera de la configuración de logrotate