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.473 ]

Por: Perfil removido em 06/02/2012


Centralizando Logs do IPtables e Acessando via WEB



Nesta última parte do artigo, vou tratar de mostrar como redirecionar os Logs do IPtables para uma máquina servidora de Logs e em seguida acessar os Logs via WEB.

Primeiro, será necessário configurar o serviço RSYSLOG da máquina que estará rodando o Firewall e criando os Logs a ser enviados;

- Configuração de envio e recebimento de Logs pela rede

Editando o arquivo de configuração do RSYSLOG que está rodando o Firewall:

# vim /etc/rsyslog.conf

Adicione no arquivo, a linha abaixo. Estarei redirecionando para o IP especificado abaixo, mas troque conforme a localização da máquina que armazenará os Logs:

kern.crit              @192.168.213.249


Agora, editando o arquivo de configuração do RSYSLOG da máquina que receberá os Logs:

# vim /etc/rsyslog.conf

Habilite o RSYSLOG para aceitar os Logs de outras máquinas:

# provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

# provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 51

# **** Acrescente essa linha abaixo, para funcionar é necessário o diretório e arquivo estarem criados na máquina que receberá os Logs
kern.crit              /var/log/firewall/firewall.log


E por último, na máquina que receberá os Logs, editar o arquivo "/etc/default/rsyslog":

# vim /etc/default/rsyslog

Modifique o arquivo, acrescentando a linha abaixo e comentando a outra:

SYSLOGD="-r"
# RSYSLOGD_OPTIONS="-r"


- Executando o 'fwlogwatch' na máquina que está recebendo os Logs do Firewall pela rede

A configuração de envio e recebimento de Logs foi feita, agora vamos fazer o 'fwlogwatch' trabalhar como servidor WEB, deixando disponível os Logs para serem acessados via WEB em tempo real.

Para fazer o 'fwlogwatch' trabalhar como um servidor WEB, é necessário especificar, via linha de comando ou no arquivo de configuração, as opções a serem usadas.

Pela linha de comando, na máquina com os Logs do Firewall da rede, execute como Root:

# fwlogwatch /var/log/firewall/firewall.log -d -s -t -e -y -U "Relatório em tempo Real" -R -X 777

Explicação das principais opções para fazer o 'fwlogwatch' trabalhar como servidor WEB:
  • -R : especifica que o relatório será gerado em tempo real.
  • -X : indica a porta que será ser usada para acessar os Logs pelo browser.

Obs.: Quando a opção '-X' é especificada via linha de comando, os relatórios só poderão ser acessados localmente, ou seja, na máquina que está armazenando os relatórios, para acessar de outras máquina usando esse método, seria necessário acessar via SSH ou compartilhar o diretório com os relatórios.

Não é possível acessar pelo browser de outra máquina pela porta 777, no exemplo.

Para permitir o acesso pelo browser de outro computador pela rede, é necessário habilitar estas opções abaixo no arquivo de configuração "/etc/fwlogwatch/fwlogwatch.config", elas ficam no final do arquivo:

# Opção usada para fazer o fwlogwatch ficar online.
server_status = yes

# Opção usada para especificar em qual endereço de rede ele ficará acessível.
bind_to = 192.168.213.249

# Opção usada para especificar em qual porta ele estará executando.
listen_port = 888

# Opção refresh faz os logs serem atualizados em n segundo, n representa um número em segundos. É opcional.
refresh = 3


- Testando

Agora, via linha de comando execute no terminal:

* Regras a serem executadas no computador rodando o Firewall.

# iptables -I INPUT -p tcp --dport 2100 -j LOG --log-level crit
# iptables -I INPUT -p tcp --dport 2100 -j DROP


* Comando rodado na máquina com os logs.

# fwlogwatch /var/log/firewall/firewall.log -d -s -t -e -y -Eihd192.168.213.252 -U "Relatorio Iptables" -R

Obs.: Lembre-se que é necessário ter executado, via IPtables, as regras que registra os Logs e que só será mostrado o que for logado.

Explicação da opção de filtragem, o IP usado é da máquina rodando o Firewall:
  • Eihd192.168.213.252 : está opção inclui apenas entradas do Host "h" de destino "d" 192.168.213.252.
  • -R" : esta opção faz o fwlogwatch rodar em realtime.

Para encerrar a execução do comando 'fwlogwatch' é necessário usar o 'kill' junto ao PID do processo gerado.

# pgrep fwlogwatch |xargs kill

Visualizando o Relatório

Para visualizar o relatório, basta digitar no browser de um máquina da rede o IP da máquina que está rodando o comando junto com a porta que a mesma está executando, no exemplo é: 192.168.213.249:888.

Após isso, é só digitar o nome de usuário e senha, que é usado pelo 'fwlogwatch' para a autenticação e que pode ser configurado no arquivo de configuração do mesmo.

Por padrão, ele usa o nome: 'admin' e a senha: 'fwlogwat'. Caso queira os dados de autenticação, é só editar o arquivo incluindo o nome de usuário desejado junto com a senha nas opções descritas abaixo, as opções ficam no final do arquivo:

# Está opção é usada para especificar o nome de usuário usado para se autenticar e visualizar o relatório.
status_user = admin

# Está opção é usada para especificar a senha que será usada para se autenticar.
status_password = 2fi4nEVVz0IXo


Para ver em tempo real, clique em <Packet cache>, como foi configurado para atualizar a cada 3 segundos, a tela receberá atualizações de forma praticamente instantânea, veja como ficou.
Linux: 
FwLogWatch - Analisando Registros do IPtables
Caso queira automatizar, faça a configuração no arquivo de configuração como mostrado anteriormente, depois configurar o 'fwlogwatch' para executar via CRON uma vez no dia; pois, após a execução, o mesmo ficará rodando como um Daemon gerando seus relatórios em tempo real.

Caso use máquina rodando como servidor (sem desligar, rode uma única vez, sem necessidade de usar o CRON). Não esquecendo das opções abaixo:
  • server_status = yes
  • bind_to = IP da máquina que irá disponibilizar o relatório online.
  • listen_port = porta em que o 'fwlogwatch' ficará em execução.

* Para não usar o "-R" na linha de comando fazendo o 'fwlogwatch' trablhar em tempo real, habilite no arquivo a opção abaixo usando: yes (se usar, não desabilita).

realtime_response = yes


Conclusão

O 'fwlogwatch' é uma ferramenta muito boa para seu propósito.

Neste artigo, limitei-me a falar apenas da análise de Logs e criar relatórios. Porém, pode ser usada para notificar e tomar decisões, como executar scripts após ocorrer uma quantidade de anomalias.

Mais isso, fica para outro artigo.
Página anterior    

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

Programando em Qt

Usando classes em conexão e consultas à banco de dados em PHP

Onde o Linux peca ao tentar atrair novos usuários

LVM completo e sem mistérios

Sistemas de arquivos para GNU/Linux

Leitura recomendada

Saiba como ativar dois ou mais fbpagers no Fluxbox

Bonding para Heartbeat + Bonding para DRBD + OCFS2 + Debian Squeeze

Por que e como referenciar artigos nos sites de informática

Ovos de Páscoa no GNU/Linux

Biometria: Processamento de imagens capturadas em leitores de impressão digital

  
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