Isso pode atrapalhar as coisas e dificultar a verificação dos logs.
Se você deseja alterar o arquivo no qual o iptables registra, é necessário configurar as regras do iptables para gerar um prefixo de log.
O gerenciador de logs do ubuntu é rsyslog. Podemos configurá-lo para pegar o prefixo gerado pelo iptables e enviar todas as linhas com este prefixo para um arquivo de log personalizado, contendo apenas as informações de log do iptables.
As minhas linhas gerados pelo iptables tem o seguinte formato. Note que não estou utilizando um prefixo no log do iptables. e que dá para distinguir as linhas, pois todas contém a palavra: NETFILTER.
Mar 5 16:21:26 afirewall kernel: [ 1249.242830] NETFILTER NEW IN PACKET:IN=lo OUT= MAC=00:00:00:00:00:00:00:00:00:00:00:00:08:00 SRC=127.0.0.1 DST=127.0.0.53 LEN=71 TOS=0x00 PREC=0x00 TTL=64 ID=43478 DF PROTO=UDP SPT=58264 DPT=53 LEN=51 Mar 5 16:21:26 afirewall kernel: [ 1249.242863] NETFILTER NEW IN PACKET:IN=lo OUT= MAC=00:00:00:00:00:00:00:00:00:00:00:00:08:00 SRC=127.0.0.1 DST=127.0.0.53 LEN=71 TOS=0x00 PREC=0x00 TTL=64 ID=43479 DF PROTO=UDP SPT=58264 DPT=53 LEN=51Então precisamos configurar o rsyslog para tratar de forma diferente as linhas geradas pelo iptables.
Para isto, crie um arquivo de configuração vazio (todos os comandos a seguir são dados como root ou via sudo) com o seu editor favorito:
Entre as duas linhas a seguir neste arquivo e grave-o:
:msg, contains, "NETFILTER " -/var/log/iptables.log & ~Salve o arquivo e saia do editor. A primeira linha verifica os dados do log para a palavra "NETFILTER " e os anexa ao arquivo /var/log/iptables.log. Note que você pode utilizar no iptables prefixos diferentes para regras diferentes e assim ter diversos arquivos. No meu caso, só quero colocar tudo em um arquivo chamado iptables.log. A segunda linha simplesmente interrompe o processamento das informações de log, para que elas não sejam registradas em /var/log/syslog.
Reinicie o rsyslog:
Pronto! O syslog agora está gravando as mensagens do iptables no arquivo desejado.