É possível redirecionar uma saída de log da cadeia de logs do iptables para um arquivo de log separado?

6

Eu não quero misturar a saída de log do iptables com outros logs do sistema. Como eu poderia especificar um arquivo de log dedicado para a saída de cadeias iptables LOG?

    
por mbaitoff 04.07.2011 / 10:28

2 respostas

5

Como você faz isso dependerá de qual daemon de log você usa, syslog ou syslog-ng .

Com syslog , você pode fazer isso ajustando um nível de log específico para conter apenas iptables de mensagens.

Em /etc/syslog.conf :

kern.warning     /var/log/iptables

O conjunto iptables para usar esse nível de registro:

iptables -A INPUT -j LOG --log-level 4

Com syslog-ng , você deve ser um pouco mais chique. Em vez de hackear um nível de log, você pode filtrar por conteúdo e enviar esse conteúdo para um arquivo de log específico.

Em /etc/syslog-ng/syslog-ng.conf :

destination d_iptables { file("/var/log/iptables"); };
filter f_iptables { match("IN=[A-Za-z0-9\.]* OUT=[A-Za-z0-9\.]*" value("MESSAGE")); };
log { source(s_sys); filter(f_iptables); destination(d_iptables); }
    
por 04.07.2011 / 10:56
1

Você pode usar algo assim:

:msg,contains,"IPTABLES:" /var/log/iptables
& stop

Ele deve ser adicionado antes de qualquer outra regra, por exemplo:

:msg,contains,"IPTABLES:" /var/log/iptables
& stop

auth,authpriv.*         /var/log/auth.log
*.*;auth,authpriv.none      -/var/log/syslog
cron.*              /var/log/cron.log
daemon.*            -/var/log/daemon.log
kern.*              -/var/log/kern.log
...

Você apenas altera o IPTABLES: para o que você definiu no destino LOG. Se você não usar & stop , a mensagem será registrada em ambos os arquivos, o arquivo /var/log/syslog padrão e no /var/log/iptables .

É uma solução melhor do que redirecionar todas as mensagens do kern.warning porque, nesse caso, você pode redirecionar algumas outras informações, não apenas a que você gostaria.

    
por 06.06.2014 / 19:07

Tags