Visite também: Br-Linux ·  VivaOLinux ·  LinuxSecurity ·  Dicas-L ·  NoticiasLinux ·  SoftwareLivre.org ·  [mais]
Voltar   Under-Linux.org Fóruns > UnderLinux Wiki
Wiki Classificados Galeria Reviews Jogos Comunidades RSS Feeds FAQ Termos de Uso Sobre
Cadastre-se FotosBlogs Lista de Membros Calendário Pesquisar Mensagens de Hoje Marcar Fóruns Como Lidos

Ferramentas pessoais
Publicidade

From UnderLinux Wiki

Tabela de conteúdo

Tutorial de Monitoramento do Firewall com RRDTOOL

By: 1c3_m4n - Rafael M. Capovilla under AT underlinux com br

Primeiro gastaria de dizer que esse tutorial não é nada de avançado, apenas mostra como podemos utilizar o RRDTOOL para monitorar um firewall. Eu me basiei no artigo escrito para a linuxsecurity (www.linuxsecurity.com.br) por Rodrigo P. Telles, assim será possível reutilizar o artigo de acordo com suas necessidades. O RRDTOOL é uma ferramenta GPL escrita por Tobias Oetiker, o mesmo desenvolvedor do famoso MRTG e entra em cena pra resolver uma série de limitações que o MRTG possui.

ALGUMAS VANTAGENS:

  • Banco de Dados Imutável (tamanho)
  • Possui Módulo Perl para integração com interfaces WEB
  • Gráficos totalmente personalizaveis
  • Pode-se trabalhar com condicionais (IF,ELSE,LT,GT,EQ,etc..)
  • Permite utilização de operadores (+,-,*,/,%)
  • Pode-se utilizar funções matemáticas(COS,EXP,LOG,etc...)

O que é necessário

  • RRDTOOL é claro.. ;)

http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/pub/?M=D

  • Perl 5.005

http://www.perl.com

  • GNU make

ftp://ftp.gnu.org/gnu/make

  • GNU gcc

ftp://ftp.gnu.org/gnu/gcc

Como compilar o RRDTOOL

tar -zxvf rrdtool-1.0.40.tar.gz
cd rrdtool-1.0.40
./configure;make;make install

isso vai instalar o rrdtool em /usr/local/rrdtool-1.0.40 se você quiser mudar isso faça o seguinte:

./configure --prefix=/some/other/RRDtool-dir

Criando regras

Agora vamos criar algumas regras de iptables para que possamos utilizar na geração dos gráficos:

iptables -A INPUT -p tcp -s 0/0 --dport 21 -j DROP
iptables -A INPUT -p tcp -s 0/0 --dport 22 -j ACCEPT
iptables -A INPUT -p tcp -s 0/0 --dport 80 -j DROP
iptables -A INPUT -p tcp -s 0/0 --dport 443 -j DROP

Aqui tanto faz se as regras forem DROP,ACCEPT,DNAT,SNAT,etc... porque o que interessa é o tráfego que irá passar por elas.

Criando Scripts

Agora iremos criar o script que irá criar o banco de informações, mas só iremos executar ele 1 vez!!!! Vou partir do principio que vou criar o grafico em /var/www/http/estatisticas/

rrdtool create /var/www/http/estatisticas/portas.rrd --step 100
DS:http:ABSOLUTE:200:0:U DS:https:ABSOLUTE:200:0:U
DS:ssh:ABSOLUTE:200:0:U DS:ftp:ABSOLUTE:200:0:U
RRA:AVERAGE:0.5:1:864
  • O --step 100 quer dizer que novas informações serao armazenadas de 100 em 100 segundos
  • O ABSOLUTE quer dizer que os valores incrementam e decrementam
  • O 200 é o tempo maximo que deve entrar informações antes que o valor seja setado para U (Desconhecido)
  • O 0 (zero) é o tamanho minimo da informação
  • 864 * 100 (o do --step) vai dar o perido que ele vai exibir no grafico nesse caso 24 horas, que aqui é calculado em segundos.

Agora será o script que atualiza o banco de dados (stats.sh) que está dentro do mesmo diretorio:

#!/bin/bash
iptables=/sbin/iptables
cmd=/usr/bin/rrdtool
file=/var/www/http/estatisticas/portas.rrd

http=`$iptables -L INPUT -nv | awk '/dpt:80/{print $2}'`
ftp=`$iptables -L INPUT -nv | awk '/tcp dpt:21/{print $2}'`
https=`$iptables -L INPUT -nv | awk '/dpt:443/{print $2}'`
ssh=`$iptables -L INPUT -nv | awk '/dpt:22/{print $2}'`

$cmd update $file "N:${http}:${https}:${ssh}:${ftp}"

Note que a ordem aqui é importante.... elá deve ser a mesma do script anterior


Agora será o script que irá gerar o gráfico (graph.sh) também dentro do mesmo diretório

#!/bin/bash
cmd=/usr/bin/rrdtool
graph=/var/www/http/estatisticas/portas.png
dir=/var/www/http/estatisticas
TIME=`date +%s`
TIME1=$[TIME-43200]

$cmd graph $graph -a PNG -t "Estatísticas das Portas"
DEF:http=$dir/portas.rrd:http:AVERAGE DEF:https=$dir/portas.rrd:https:AVERAGE
DEF:ssh=$dir/portas.rrd:ssh:AVERAGE DEF:ftp=$dir/portas.rrd:ftp:AVERAGE
AREA:http#ffff00:"HTTP : "
LINE2:https#ff0707:"HTTPS : "
LINE2:ssh#896c0d:"SSH: "
LINE2:ftp#35890d:"FTP: "
-v "Conexões TCP/UDP Bloqueadas" -w 800 -h 325

Configurando o CRON

Para finalizar iremos colocar os scripts no cron (crontab -e) e insira as linhas

*/1 * * * * /var/www/http/estatisticas/stats.sh
5 * * * * /var/www/http/estatisticas/graph.sh 1>/dev/null


Espero que isso seja o suficiente pra inicar com o rrdtool ;)

REFERÊNCIAS

http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/ http://www.linuxsecurity.com.br/revista/ (Segunda Edição)

Horários baseados na GMT -3. Agora são 1:42.


Powered by vBulletin®
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd
SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.