Muchas veces tenemos logs de varios servicios en un único fichero complicando la visibilidad de la información realmente útil, iptables nos permite configurar syslog levels con los cuales conseguiremos que los logs de iptables terminen en un fichero determinado, pudiendo así parsearlos o simplemente analizarlos de forma mas cómoda.
Creamos el fichero donde almacenaremos los logs:
touch /var/log/iptables.log
En la regla de iptables debemos indicar el log-level a utilizar:
- 0 emerg
- 1 alert
- 2 crit
- 3 err
- 4 warning
- 5 notice
- 6 info
- 7 debug
Configuramos ssh para que haga logging en el loglevel 6, iptables no permite indicar facility:
iptables -I INPUT 1 -p tcp --dport 7777 -j LOG --log-prefix “IPTables-7777 port: " --log-level 6
Configuramos los destinos, filtros de syslog-ng :
vi /etc/syslog-ng/syslog-ng.conf
destination iptables { file("/var/log/iptables.log"); };
filter f_iptables { level(info); };
log { source(src); filter(f_iptables); destination(iptables); };
Todo lo que coincide con el filtro acabará en el fichero apropiado ;)
/etc/init.d/syslog-ng restart