FwLogWatch - Analisando Registros do IPtables

Neste artigo, irei abordar o uso da ferramenta fwlogwatch para gerar relatórios de registros do IPtables, tornando sua
leitura facilmente legível, permitindo fazer uma melhor análise dos Logs.

[ Hits: 45.461 ]

Por: Perfil removido em 06/02/2012


Gerando relatórios via linha de comando



Antes de começar a prática, é necessário saber algumas opões que podem ser usadas via linha de comando para se trabalhar com o 'fwlogwatch'.

Abaixo listo algumas opções que podem ser usadas no 'fwlogwatch', e o que elas fazem:
  • -L : Está opção lê o arquivo do Log e informa a data e hora do primeiro e último Log que existem dentro do arquivo lido.
  • -w : Está opção mostra a saída do arquivo em formato HTML. Se não for informada, será usada o formato de texto normal.
  • -d : Mostra a porta de destino.
  • -t : Mostra a data e hora inicial do pacote logado.
  • -o : Especifica o nome do arquivo de saída para o relatório gerado, caso escolha um diretório de destino diferente do que está atualmente na hora do comando, indique com o caminho.
  • -U : É utilizado para dá uma nome ao titulo do relatório gerado com 'fwlogwatch'.
  • -M : Especifica a quantidade de linhas do arquivo que será analisado, ou seja, do arquivo que guarda os Logs usados pelo fwlogwatch para geração de Log.
    * Ex.: se quiser mostrar 500 linhas do arquivo que guarda os Logs, deverá especificar assim: -M 500.
  • -s : Mostra a porta de origem.
  • -y : Traz informações sobre pacotes TCP.
  • -l : Está opção é usada para especificar uma quantidade de dias: "d", horas: "h", minutos: "m", semanas: "w", meses: "m" e anos: "y", para gerar o relatório com base nestas informações.
    * Ex. 1: -l 2d : será gerado um relatório com datas dos os ultimos dois dias.
    * Ex. 2: -l 2h : será gerado um relatório desde as ultimas duas horas.
  • -e : Mostra a data/hora do pacote logado. Só existirá se tiver mais de um pacote logado coma mesma caracteristica.

- Explicações

Antes de começar, é necessário fazer alguns esclarecimentos sobre o 'fwlogwatch' e os Logs do IPtables.

Verifique a existência do arquivo de configuração "/etc/fwlogwatch/fwlogwatch.conf", este arquivo tem opções padrões para o comando 'fwlogwatch', que será utilizado para gerar os relatórios, mas por padrão, todas as opções estão desativadas. Se alguma opção for ativada no arquivo de configuração, ela irá interferir nas opções passadas na linha de comando.

Usando o arquivo de configuração, evita a necessidade de especificar, via linha de comando, opções que serão inclusas no relatório, fazendo uma automatização da tarefa que será vista na página seguinte do artigo.

Por padrão, os Log do IPtables tem facilidade 'kern' e nível 'warn', e trabalham com RSYSLOG e DMESG ou SYSKLOG para outras distros, e serão armazenados no arquivo "/var/log/messages ou /var/log/kern.log", dependendo da distro.

- Direcionando os Logs do IPtables

Para os Logs ficarem em um arquivo específico, precisaremos adicionar uma entrada no "/etc/rsyslog.conf", especificando a facilidade que o IPtables trabalha e o nível que irá ser utilizado pelo mesmo, e criar um arquivo que receberá os Logs do IPtables.

Execute:

# mkdir /var/log/firewall
# touch /var/log/firewall/firewall.log
# vim /etc/rsyslog.conf


Entrada a ser adicionada:

kern.crit            /var/log/firewall/firewall.log


Reinicie o RSYSLOG:

# /etc/init.d/rsyslog stop
# /etc/init.d/rsyslog star


- Vamos à pratica

Primeiramente, iremos executar as regras de Firewall, que irá ser logada pelo RSYSLOG no arquivo "/var/log/iptables/firewall.log" criado, e especificar o nível na regra, no exemplo, nível CRIT.

É necessário, para que funcione, que as regras de Log fiquem antes das regras que irão tomar a decisão:

# iptables -A INPUT -i eth0 -j LOG --log-level crit --log-prefix "eth0 trafego INPUT aceito"
# iptables -A INPUT -i eth0 -j ACCEPT
# iptables -A OUTPUT -o eth0 -j LOG --log-level crit --log-prefix "eth0 trafego OUTPUT aceito"
# iptables -A OUTPUT -o eth0 -j ACCEPT


- Gerando relatório simples

Agora que as regras foram executadas, vamos gerar o relatório:

* Sintaxe: comando <arquivo com entradas de log> <opções> <arquivo contendo o relatório>

# fwlogwatch /var/log/firewall/firewall.log -w -o iptables.html

Usei a opção '-w', para indicar que o arquivo de saída deverá estar no formato ".html", e '-o', indica o arquivo de saída. Se não indicou o caminho absoluto do arquivo, ele será gravado no diretório onde você está no momento da execução do comando.

Após isto, vá no diretório aonde gravou o arquivo com extensão ".html" e abra com seu browser. Veja como ficou:
Linux: 
FwLogWatch - Analisando Registros do IPtables

Gerando relatório mais detalhado das últimas duas horas até agora, com titulo das mesmas regras acima:

# fwlogwatch /var/log/firewall/firewall.log -l 2h -d -s -t -e -y -U "Relatorio detalhado" -w -o ipdetalhes.html

Para gerar este relatório, usei a opção '-U' para colocar um titulo personalizado, e '-l 2h', para indicar os Logs das últimas duas horas.

Agora veja como ficou o relatório no browser:
Linux: 
FwLogWatch - Analisando Registros do IPtables

Gerando relatório detalhado da porta 80:

# fwlogwatch /var/log/firewall/firewall.log -l 2h -d -s -t -e -y -M 50 -Eipd80 -U "Relatorio da Porta 80" -w -o web.html
# fwlogwatch /var/log/firewall/firewall.log -l 2h -d -s -t -e -y -M 50 -Eips80 -U "Relatorio da Porta 80" -w -o web.html


Desta vez, gerei dois relatórios para conexões aceitas na porta 80, explico a opção principal 'Eipd80' e 'Eips80' para filtrar os Logs abaixo:
  • -E : Usada para incluir ou excluir opções específicas.
  • -i : para incluir.
  • -p : para filtrar pela porta especificada, no caso a 80.
  • -d : para informações do destino, no exemplo a porta de destino 80.
  • -s : para informações de origem, no exemplo, a porta de origem 80.
No primeiro comando é gerado um relatório da porta 80 de destino, mostrando apenas as últimas 20 entradas, como o mostrado abaixo na figura:
Linux: 
FwLogWatch - Analisando Registros do IPtables

No segundo comando é gerado um relatório da porta 80 de origem, perceba que a porta 80 de origem não tem nenhuma com endereço da máquina que estou usando (endereço local), porque a mesma está bloqueada e só está sendo logado os pacotes aceitos, veja na figura abaixo:
Linux: 
FwLogWatch - Analisando Registros do IPtables
Página anterior     Próxima página

Páginas do artigo
   1. Introdução e instalação
   2. Gerando relatórios via linha de comando
   3. Automatizando relatórios
   4. Centralizando Logs do IPtables e Acessando via WEB
Outros artigos deste autor

Balanceamento de link + redundância

Instalação de softwares no Debian Linux e derivados

Montando um Media Server com o MediaTomb

Varnish: Uma camada de velocidade

Como instalar o LAMP no Mageia 6

Leitura recomendada

Acessando mainframes IBM a partir do Ubuntu

Usando G4U, ProFTP e DHCP para clonar partições pela rede

Linux_logo: customizando até o SHELL do seu GNU/Linux

Recebendo notificações do Nagios via Jabber

Guia de referência do ISOLINUX (parte 2)

  
Comentários
[1] Comentário enviado por DanielVieceli755 em 07/02/2012 - 11:34h

Opa, gostei vou tentar rodar aqui. valeu

[2] Comentário enviado por rrafael em 07/02/2012 - 15:36h

Amigo muito bom.. tive só um probleminha no OPENSUSE..mas agora esta zerado..!!

[3] Comentário enviado por verovan em 09/05/2012 - 18:05h

Cara, valeu ajudou muito aqui, mas no relatório teria como mostrar os destino externos? pegar acesso aqui da minha rede para uma rede externa

[4] Comentário enviado por removido em 09/05/2012 - 18:31h

você poderia criar um regra de log antes da regra principal dizendo para registar acessos da sua rede local para um ip externo.

depois é só gerar os relatórios e analisar podendo filtrar também.

[5] Comentário enviado por Carlos_Cunha em 18/04/2013 - 14:37h

Opa!
Muito bom esse artigo, irei testar hj...
Porém uma coisa que numca consegui foi por exemplo, minha politica padrão e DROP de INPUT e FORWARD, gostaria de jogar para log só o que cair nessa politica, dai faria um relatorio so desse tentativas...
teria algums ideia de como fazer isso??

Abraço

[6] Comentário enviado por removido em 20/04/2013 - 17:29h

Obrigado pelo comentário !

Para gerar o log é só executar a regra que registra antes da regra que irá fazer o filtro.

Abraço !

[7] Comentário enviado por Carlos_Cunha em 20/04/2013 - 21:57h


[6] Comentário enviado por eabreu em 20/04/2013 - 17:29h:

Obrigado pelo comentário !

Para gerar o log é só executar a regra que registra antes da regra que irá fazer o filtro.

Abraço !


hehe Sim amigo isso eu sei... :-D
O problema e fazer um logs do que cair na Politica padrão, entendeu??

Regra:
iptables -P INPUT DROP

Como fazer log dessa regra??

[8] Comentário enviado por brunnus em 06/09/2013 - 11:43h


[7] Comentário enviado por PretooOO em 20/04/2013 - 21:57h:


[6] Comentário enviado por eabreu em 20/04/2013 - 17:29h:

Obrigado pelo comentário !

Para gerar o log é só executar a regra que registra antes da regra que irá fazer o filtro.

Abraço !

hehe Sim amigo isso eu sei... :-D
O problema e fazer um logs do que cair na Politica padrão, entendeu??

Regra:
iptables -P INPUT DROP

Como fazer log dessa regra??


Mesma dúvida minha! :D

[9] Comentário enviado por Cesar29 em 08/04/2014 - 15:19h

Testado e aprovado, boa demais essa dica e o melhor, tudo muito explicado, cada passo funcionou perfeitamente.

Muito obrigado.

[10] Comentário enviado por petabyte em 28/04/2014 - 10:29h

Bom dia Edson!

Por favor, me diz ai como faço para ver o relatório de meu computador da rede, e não pelo servidor. Digito algo parecido como no sarg? ip_da_maq/squid-reports? Obrigado.


[11] Comentário enviado por petabyte em 28/04/2014 - 10:31h

Cara me desculpe, não tinha visto que voce já havia informado no tuto.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts