# Logs de iptables (solucionado).

## opotonil

Estoy intentando mandar los logs de iptables al fichero "/var/log/iptables.log" con syslog-ng pero no hay manera y no soy a ver que esto lo que estoy haciendo mal.

Configuracion de iptables:

```

# Default policy.

iptables -P INPUT DROP

iptables -P OUTPUT DROP

iptables -P FORWARD DROP

# Chain reject.

iptables -N reject

iptables -A reject -j LOG --log-level warning --log-prefix "iptables: "

iptables -A reject -p tcp -j REJECT --reject-with tcp-reset            

iptables -A reject -j REJECT --reject-with icmp-port-unreachable

...

iptables -A INPUT -s 192.168.100.0/24 -j reject

iptables -A INPUT -j LOG --log-level notice --log-prefix "iptables: "

...

iptables -A OUTPUT -j LOG --log-level notice --log-prefix "iptables: "

...

iptables -A FORWARD -j LOG --log-level notice --log-prefix "iptables: "

```

Configuracion de syslog-ng:

```

source src { unix-stream("/dev/log" max-connections(256)); internal(); };

source kernsrc { file("/proc/kmsg"); };                                  

source remotesrc { udp(ip("192.168.100.2")); };

...

destination d_iptables { file("/var/log/iptables.log"); };

...

filter f_kern { facility(kern) and not filter(f_iptables); };

filter f_messages { level(info..warn) and not facility(auth, authpriv, mail) and not filter(f_iptables); };

filter f_iptables { match("^iptables: " value("MESSAGE")); };

...

log { source(src); filter(f_iptables); destination(d_iptables); };

```

Con un "dmesg" me aparecen los logs de iptables, pero si hago un "cat /var/log/iptables.log" esta vacio.

```

# dmesg

...

[661181.431132] iptables: IN=br0 OUT= MAC=ff:ff:ff:ff:ff:ff:00:13:e8:bb:bc:19:08:00 SRC=0.0.0.0 DST=255.255.255.255 LEN=328 TOS=0x10 PREC=0x00 TTL=64 ID=0 DF PROTO=UDP SPT=68 DPT=67 LEN=308

[661181.439032] iptables: IN=br0 OUT= MAC=ff:ff:ff:ff:ff:ff:00:13:e8:bb:bc:19:08:00 SRC=0.0.0.0 DST=255.255.255.255 LEN=328 TOS=0x10 PREC=0x00 TTL=64 ID=0 DF PROTO=UDP SPT=68 DPT=67 LEN=308

```

Gracias y salu2.

--- EDITADO ---

Despues de fijarme que los logs de iptables terminan en "/var/log/kern.log" he realizado la siguiente modificacion:

```

log { source(kernsrc); filter(f_iptables); destination(d_iptables); };

```

y reiniciado syslog-ng, pero nada los logs de iptables continuan llegando tan solo a "/var/log/kern.log" mientras "/var/log/iptables.log" continua vacio.

--- EDITADO ---

Vale no se le puede decir que empiece por "iptables", con esta modificacion funciona perfecto:

```

filter f_iptables { match("iptables: " value("MESSAGE")); };

```

----------

