jueves, 2 de octubre de 2014

configurar syslog-ng para logs de FortiOS

Esta entrada es una suerte de segunda parte, de la publicada semana atrás. Una vez que tenemos nuestros equipos Fortigate logueando a un servidor syslog es deseable que los logs vayan a uno o más archivos;  separando por dispositivo y/o tipo de mensajes. Trabajé con syslog-ng, que facilita mucho este trabajo.

Paso previo: configurar syslog-ng para logueo remoto

 Esto debería estar pronto, es útil para las pruebas de configuración de los clientes remotos. En el archivo de configuración de syslog-ng, buscar la sección source src, alli descomentar o agregar la siguiente linea:

udp(ip("0.0.0.0") port(514));

Esta linea  habilita a recibir mensajes de clientes remotos. En equipos con múltiples interfaces de red, si quisiéramos habilitar una sola interface, sustituir 0.0.0.0 por la IP de la interface que queremos utilizar.

Configurar filtros

Syslog NG marca el trafico mediante filtros, esas marcas serán utilizadas para redirigir el trafico. En  mi caso tengo los equipos fortigate configurados para loguear en la facility LOCAL7. Quiero que los logs generados por aplicaciones locales no se mezclen con los logs del fortigate. Asi queda configurado mi filtro para la facility local:

filter f_local { 
    facility(local0, local1, local2, local3,local4, local5, local6, local7)
    and not match('devname=FGT');
};

Este filtro marca todo el tráfico de las facilities local, menos el generado por dispositivos fortigate. En mi caso tuve que cambiar adicionalmente otros filtros:

filter f_messages { not facility(news, mail) and not filter(f_iptables)
and  not match('devname=FGT'); };

filter f_warn { level(warn, err, crit) and not filter(f_iptables)
and not match('devname=FGT'); };

Finalmente, configuré filtros específicos para dispositivos mis dispositivos fortigate:

filter f_ap    { facility(local7) and match('devname=FGT50'); };

filter f_forti  { facility(local7) and match('devname=FGT70'); };


En mi caso basta con que filtre por modelo de dispositivo, aquellos que tengan todos los dispositivos del mismo modelo deberán afinar los filtros. El tag devname trae el numero de serie, adicional al modelo.

Configurar destino del log

 Solo resta configurar el destino de los logs, en mi caso un archivo para access points y otro para firewalls:


destination apforti { file("/var/log/ap-fortigate"); };
log { source(src); filter(f_ap); destination(apforti); };

 

destination firewall { file("/var/log/firewall-fortigate"); };
log { source(src); filter(f_forti); destination(firewall); };


Conclusiones

 Esta configuracion la tengo funcionando hace varios meses. Para quienes no necesitamos las herramientas especificas de fortigate, es más que adecuada. Quienes tengan muchos dispositivos fortigate pueden necesitar configuraciones adicionales. Y no olvidar configurar la rotación de logs.