[EN]

He hecho este "COMO" porque estaba cansado de tener dmesg y /var/log/messages lleno de logs de las iptables en los pcs donde tengo instalado firestarter.

Es bastante fácil enviar los logs a un archivo dado con ulog:



Ulog:
Instala ulog, en mi caso en gentoo: "emerge ulogd"
Configuralo, tal como esta justo aquí debajo escrito. También puedes enviar los logs a una base de datos como mysql, o a un archivo tipo pcap, en este caso solo deseo que lo mande a un archivo y dejo el que viene por defecto como salida:


/etc/ulogd.conf  (archivo de configuración de gentoo para ulogd ):
---------------------------------

# Example configuration for ulogd
# $Id: ulogd.conf.in 714 2005-02-19 21:33:43Z laforge $
#

[global]
######################################################################
# GLOBAL OPTIONS
######################################################################

# netlink multicast group (the same as the iptables --ulog-nlgroup param)
nlgroup=1

# logfile for status messages
logfile="/var/log/ulogd.log"

# loglevel: debug(1), info(3), notice(5), error(7) or fatal(8)
loglevel=5

# socket receive buffer size (should be at least the size of the
# in-kernel buffer (ipt_ULOG.o 'nlbufsiz' parameter)
rmem=131071

# libipulog/ulogd receive buffer size, should be > rmem
bufsize=150000

######################################################################
# PLUGIN OPTIONS
######################################################################

# We have to configure and load all the plugins we want to use

# general rules:
# 1. load the plugins _first_ from the global section
# 2. options for each plugin in seperate section below


#
# ulogd_BASE.so - interpreter plugin for basic IPv4 header fields
#                 you will always need this
plugin="/usr/lib/ulogd/ulogd_BASE.so"


# output plugins.
plugin="/usr/lib/ulogd/ulogd_LOGEMU.so"
#plugin="/usr/lib/ulogd/ulogd_OPRINT.so"
#plugin="/usr/lib/ulogd/ulogd_MYSQL.so"
#plugin="/usr/lib/ulogd/ulogd_PGSQL.so"
#plugin="/usr/lib/ulogd/ulogd_SQLITE3.so"
#plugin="/usr/lib/ulogd/ulogd_PCAP.so"


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

[OPRINT]
file="/var/log/ulogd.pktlog"

[MYSQL]
table="ulog"
pass="changeme"
user="laforge"
db="ulogd"
host="localhost"

[PGSQL]
table="ulog"
schema="public"
pass="changeme"
user="postgres"
db="ulogd"
host="localhost"

[SQLITE3]
table="ulog"
db="/path/to/sqlite/db"
buffer=200

[PCAP]
file="/var/log/ulogd.pcap"
sync=1

---------------------------------------------

Arranca ulogd:

/etc/init.d/ulogd start.




--------------------------------------------------------------------------------------------------------------------------------------

Firestarter:
Instala firestarter configuralo y ejecutalo si lo deseas.
Busca los archivos de configuración de firestarter, normalmente en /etc/firestarter, pero en mi caso en /usr/local/etc/firestarter porque ya no esta en el portage de gentoo y lo he intalado 'a mano'.
Edita el archivo firewall y cambialo tal y como digo debajo, no olvides antes cambiar los derechos del archivo porque , al menos en mi sistema esta solo como lectura:


cd /usr/local/etc/firestarter
chmod u+xw firewall
vi firewall    (or nano -w firewall)

cambia esta parte:

if [ "$log_supported" ]; then
        # Syn-flood protection
        $IPT -A LSI -p tcp --syn -m limit --limit 1/s -j LOG --log-level=$LOG_LEVEL --log-prefix "Inbound "
        $IPT -A LSI -p tcp --syn -j $STOP_TARGET
        # Rapid portscan protection
        $IPT -A LSI -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j LOG --log-level=$LOG_LEVEL --log-prefix "Inbound "
        $IPT -A LSI -p tcp --tcp-flags SYN,ACK,FIN,RST RST -j $STOP_TARGET
        # Ping of death protection
        $IPT -A LSI -p icmp --icmp-type echo-request -m limit --limit 1/s -j LOG --log-level=$LOG_LEVEL --log-prefix "Inbound "
        $IPT -A LSI -p icmp --icmp-type echo-request -j $STOP_TARGET
        # Log everything
        $IPT -A LSI -m limit --limit 5/s -j LOG --log-level=$LOG_LEVEL --log-prefix "Inbound "
fi
$IPT -A LSI -j $STOP_TARGET # Terminate evaluation

# Create a new log and stop output (LSO) chain.
$IPT -N LSO 2> /dev/null
$IPT -F LSO
$IPT -A LSO -j LOG_FILTER
if [ "$log_supported" ]; then
        # Log everything
        $IPT -A LSO -m limit --limit 5/s -j LOG --log-level=$LOG_LEVEL --log-prefix "Outbound "
fi
$IPT -A LSO -j REJECT # Terminate evaluation


# --------( Initial Setup - Nameservers )--------


Por esta:

if [ "$log_supported" ]; then
        # Syn-flood protection
        $IPT -A LSI -p tcp --syn -m limit --limit 1/s -j ULOG  --ulog-prefix "Inbound "
        $IPT -A LSI -p tcp --syn -j $STOP_TARGET
        # Rapid portscan protection
        $IPT -A LSI -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ULOG  --ulog-prefix "Inbound "
        $IPT -A LSI -p tcp --tcp-flags SYN,ACK,FIN,RST RST -j $STOP_TARGET
        # Ping of death protection
        $IPT -A LSI -p icmp --icmp-type echo-request -m limit --limit 1/s -j ULOG  --ulog-prefix "Inbound "
        $IPT -A LSI -p icmp --icmp-type echo-request -j $STOP_TARGET
        # Log everything
        $IPT -A LSI -m limit --limit 5/s -j ULOG  --ulog-prefix "Inbound "
fi
$IPT -A LSI -j $STOP_TARGET # Terminate evaluation

# Create a new log and stop output (LSO) chain.
$IPT -N LSO 2> /dev/null
$IPT -F LSO
$IPT -A LSO -j LOG_FILTER
if [ "$log_supported" ]; then
        # Log everything
        $IPT -A LSO -m limit --limit 5/s -j ULOG --ulog-prefix "Outbound "
fi
$IPT -A LSO -j REJECT # Terminate evaluation


# --------( Initial Setup - Nameservers )--------



Y cambia esta parte justo al final del archivo:

# --------( Unsupported Traffic Catch-All )--------

$IPT -A INPUT -j LOG_FILTER
$IPT -A INPUT -j LOG --log-level=$LOG_LEVEL --log-prefix "Unknown Input"
$IPT -A OUTPUT -j LOG_FILTER
$IPT -A OUTPUT -j LOG --log-level=$LOG_LEVEL --log-prefix "Unknown Output"
$IPT -A FORWARD -j LOG_FILTER
$IPT -A FORWARD -j LOG --log-level=$LOG_LEVEL --log-prefix "Unknown Forward"

return 0



Por esta:

# --------( Unsupported Traffic Catch-All )--------

$IPT -A INPUT -j LOG_FILTER
$IPT -A INPUT -j ULOG  --ulog-prefix "Unknown Input"
$IPT -A OUTPUT -j LOG_FILTER
$IPT -A OUTPUT -j ULOG  --ulog-prefix "Unknown Output"
$IPT -A FORWARD -j LOG_FILTER
$IPT -A FORWARD -j ULOG  --ulog-prefix "Unknown Forward"

return 0





No se te olvide iniciar ulogd antes de reiniciar el firestarter.
Reinicia o inicia firestarter y a partir de ese momento los logs iran al archivo indicado.