El sistema de log
Cuando una regla tiene definido en el campo Track que guarde un log,
siempre que una trama haga match con la misma se generará un registro
del evento, tanto si la conexión se acepta como si se deniega. A diferencia
de la mayor parte del software de un sistema Unix, los logs de Firewall-1 no son simples ficheros ASCII, sino que se almacenan
en un formato propio dentro del directorio $FWDIR/logs/. Para
consultarlos hemos de utilizar o bien el visor gráfico fwlv (figura
16.2) o bien la orden fw, que también permite rotarlos (`fw
logswitch') y exportarlos a ficheros ASCII (`fw logexport'):
anita:/etc/fw/bin# ./fw log
Date: May 2, 2000
3:28:43 ctl anita >daemon started sending log to localhost
3:49:27 ctl anita >daemon started sending log to localhost
4:30:30 ctl anita >daemon started sending log to localhost
anita:/etc/fw/bin# ./fw logexport -o /etc/fw/logs/salida.ascii
Starting pass 1 of the log file.
Starting pass 2 of the log file..
100.00% of log file processed.
anita:/etc/fw/bin# cat /etc/fw/logs/salida.ascii
num;date;time;orig;type;action;alert;i/f_name;i/f_dir;sys_msgs
0;2May2000; 3:28:43;anita;control;ctl;;daemon;inbound;started sending log
to localhost
1;2May2000; 3:49:27;anita;control;ctl;;daemon;inbound;started sending log
to localhost
2;2May2000; 4:30:30;anita;control;ctl;;daemon;inbound;started sending log
to localhost
anita:/etc/fw/bin#
Evidentemente, rotar los logs o exportarlos a ficheros ASCII nos puede
resultar muy útil a la hora de realizar estadísticas o tareas
similares, ya que podemos
separar los registros por días, meses, horas...o cualquier otro
parámetro que se nos ocurra y utilizar las herramientas propias de cualquier
Unix (awk, perl, grep...) sobre el fichero de texto para
extraer el tipo de registros que nos interese; no obstante, esto a todas luces
presenta un grave inconveniente: los registros de Firewall-1, con lo que
hemos visto hasta ahora, no pueden utilizarse para monitorizar el tráfico en
tiempo real o para ofrecer una respuesta automática ante un ataque. Por
supuesto, la detección de un ataque offline, sobre un fichero de
registro histórico (por ejemplo, podemos buscar tráfico sospechoso cada
noche sobre el log del día anterior) es muy importante, pero sin
duda lo es más el que seamos capaces de detectar ese mismo ataque justo
cuando se está produciendo, para ofrecer así una respuesta inmediata y
minimizar el riesgo asociado a las actividades de un pirata; cuanto más
tardemos, más posibilidades tiene el atacante de tener éxito en su tarea
([Coh99]).
Para implantar un sistema de respuesta automática en tiempo real, o
simplemente para visualizar los registros generados por el cortafuegos también
en tiempo real podemos utilizar la orden `fw log', que con las opciones
adecuadas imprimirá en pantalla cualquier registro que se genere al mismo
tiempo que la entrada se guarda en el fichero de log correspondiente con
el formato propio de Firewall-1:
anita:/# fw log -f -n |head -3
2:21:12 drop anita >nei0 proto tcp src 192.168.0.3 dst 158.42.22.41 \
service finger s_port 13000 len 40 rule 5
2:22:23 drop anita >nei0 proto tcp src 192.168.0.10 dst 158.42.2.1 \
service NetBus s_port 32344 len 40 rule 6
2:22:45 drop anita >nei0 proto tcp src 192.168.0.1 dst 192.168.2.3 \
service echo-tcp s_port 30298 len 40 rule 5
anita:/#
Como vemos, la salida de esta orden ya puede ser
procesada desde línea de comandos con las herramientas habituales de Unix
para implantar así la respuesta automática, por ejemplo mediante `fw sam', que bloquea todo el tráfico proveniente de una determinada
dirección en el cortafuegos, de forma permanente o temporal
([Spi01a]).
© 2002 Antonio Villalón Huerta