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