Comunidad, hoy no voy a preguntar sino a compartir parte de un artículo que encontré en Internet de casualidad y que hacía tiempo andaba buscando para separar los logs del Shorewall de los archivos /var/log/messages y /var/log/syslog. El artículo completo se puede ver en la siguiente dirección: http://tuxjm.net/docs/Configuracion_Firewall_Shorewall_de_dos_interfaces_con_NAT_en_Ubuntu_Server/

Espero les sea útil pues lo acabo de probar y funcionó perfectamente.

Configurando el registro de eventos con Shorewall y ulogd

Como se mencionó en la sección anterior, en la configuración predeterminada de shorewall, todos los eventos de conexiones rechazados o permitidos son registrados en el archivo de log /var/log/messages, esto significa que se mezclan mensajes generales del sistema, como mensajes del kernel u otros servicios. Para diferenciar los eventos del firewall, se recomienda instalar el programa ulogd, el cual se encarga de recibir los mensajes del firewall, mejor dicho, los mensajes de registro de LOG del firewall y los manda a un archivo individual, por ejemplo: /var/log/firewall.log el cual será mantenido de forma independiente a los logs del demonio syslog.

Si deseamos enviar los logs de iptables/netfilter a un archivo independiente y no usar el sistema syslog instalaremos el servicio ulogd para dirigir los logs al archivo /var/log/firewall.log.

Instalamos ulogd:
# aptitude install ulogd

Ahora editamos el archivo de configuración de ulogd /etc/ulogd.conf para permitir la carga del plugin ulogd_LOGEMU e indicarle en que archivo escribir los logs:
...
plugin="/usr/lib/ulogd/ulogd_LOGEMU.so"

[LOGEMU]
file="/var/log/firewall.log"
sync=1

Ahora reinicie el demonio ulogd para que los cambios tomen efecto:
# invoke-rc.d ulogd restart

Indiquemos a shorewall que los mensajes del firewall están en el archivo /var/log/firewall.log usando el parámetro LOGFILE del archivo de configuración /etc/shorewall/shorewall.conf.

LOGFILE=/var/log/firewall.log

El parámetro LOGFILE=/var/log/firewall.log le dice al programa shorewall(8) donde buscar los logs del firewall para cuando se usen los comandos show log y/o logwatch.

También debemos de configurar los parámetros TCP_FLAGS_LOG_LEVEL y SMURF_LOG_LEVEL para que usen el target ULOG.

TCP_FLAGS_LOG_LEVEL=$LOG
SMURF_LOG_LEVEL=$LOG

Ahora cambie el valor de la variable de shell LOG en el archivo /etc/shorewall/params para que ahora apunte al tarjeta ULOG, por ejemplo:
LOG=ULOG

Ahora reinicie Shorewall para que los cambios tomen efecto y los logs del firewall se empiecen a escribir en el archivo /var/log/firewall.log.
# shorewall restart

Ahora puede hacer una prueba haciendo telnet a un servicio externo el cual no este permitido, por ejemplo:
# telnet 4.2.2.2
Trying 4.2.2.2...
telnet: Unable to connect to remote host: Connection refused

Y vea el evento registrado en el log /var/log/firewall.log.
# tail /var/log/firewall.log
Feb 28 16:56:41 fwproxy Shorewall:fw2net:REJECT: IN= OUT=eth1 MAC= SRC=10.0.99.220 DST=4.2.2.2
LEN=60 TOS=10 PREC=0x00 TTL=64 ID=47678 CE DF PROTO=TCP SPT=51691 DPT=23
SEQ=4142977104 ACK=0 WINDOW=5840 SYN URGP=0

Ahora debemos de crear o personalizar el archivo de logrotate de ulogd para que los logs tanto del proceso ulogd /var/log/ulog/ulogd.log y del firewall /var/log/firewall.log sean rotados periódicamente.

Edite el archivo /etc/logrotate.d/ulogd par que quede de la siguiente forma:
/var/log/ulog/ulogd.log /var/log/firewall.log  {
   missingok
   sharedscripts
   create 640 root adm
   postrotate
       /etc/init.d/ulogd reload
   endscript
}
Ahora si puede usar el legendario tail para monitorizar los logs del firewall, por ejemplo: # tail -f /var/log/firewall.log


______________________________________________________________________
Lista de correos del Grupo de Usuarios de Tecnologías Libres de Cuba.
Gutl-l@jovenclub.cu
https://listas.jovenclub.cu/cgi-bin/mailman/listinfo/gutl-l

Responder a