sexta-feira, 9 de novembro de 2012

Logwatch - Enviando relatórios via e-mail


Introdução e Preparação


Esse artigo foi escrito com o objetivo de apresentar o Logwatch em conjunto com Mutt, como uma forma muito eficaz de manter-se informado acerca das atividades do sistema, através do envio de relatórios por e-mail.

A princípio, precisamos apenas de um e-mail server básico e um cliente de e-mail básico rodando na máquina, para que possamos deixar tudo funcionando.

A noção da importância de se monitorar servidores e serviços, motivou o desenvolvimento deste artigo.

Espero que este texto ajude de alguma forma, toda a comunidade, seja estudante ou sysadmin.

Preparando o sistema

Antes de qualquer coisa, precisamos deixar o servidor de e-mail e o cliente de e-mail configurados de forma correta. Para isso, usei como referência o artigo do Raimundo Alves Portela, o rai3mb da comunidade VOL.

Em resumo, vamos instalar os cliente e o servidor de e-mail:

# apt-get install postfix mutt

Durante a configuração do pacote do Postfix, quando ele configura as opções gerais de funcionamento e tipo de servidor, escolha a opção "No configuration", ou "sem configuração". Isto é feito para que tenhamos apenas o serviço rodando, sem uma configuração específica e possamos usar um e-mail de terceiros, no meu caso, o GMail.

Apos a instalação do Postfix e do Mutt, é necessário criar um arquivo com as configurações de acesso ao servidor de e-mail, que usaremos para mandar as mensagens:

# nano ~/muttrc

Insira:

# Nome do Remetente
set realname="Servidor de intranet - Matriz Empresa do Mané"

# Email do Remetente
set from="emp.do.mane@gmail.com;"

# Usuario da conta de email
set my_user=emp.do.mane@gmail.com

# Senha da conta de email
set my_pass='SENHA_FACIL'

# Autenticacao no servidor smtp de email, nesse caso do gmail.com
set smtp_url=smtps://$my_user:$my_pass@smtp.gmail.com

# Camada de segurança, requerida pelo gmail.com
set ssl_force_tls = yes

# Referencia:
# http:// www.vivaolinux.com.br/artigo/Enviar-email-pelo-terminal-com-mutt/?pagina=1


Feito isso, teremos o nosso servidor pronto para o envio de e-mails. 

Logwatch, o agente gerador de log

Logwatch é um sistema de análise de logs customizável, que age acessando os logs do sistema criando um report das áreas especificadas no arquivo de configuração. 

O Logwatch é muito simples, de fácil instalação e configuração, rodando na maioria dos sistemas Unix-like. 

Site oficial:
Para instalá-lo, use: 

# apt-get install logwatch 

Teste seu funcionamento emitindo o comando logwatch no terminal: 

# logwatch 

Se tudo tiver certo, ele vai gerar um relatório extraindo informações dos logs do seu sistema. 

Enviando logs por e-mail

Analisar logs é uma tarefa que precisa ser vista e praticada pelos sysadmins como algo crucial, uma vez que através dela, podemos identificar ou corrigir problemas antes dos mesmos tomarem proporções que dificultem ou impossibilitem um reparo do erro. 

Muitas vezes, por falta de tempo ou a falta de experiência do sysadmin em analisar cada log, esta tarefa é colocada em último plano, um erro grave. 

Pensando nisso, escrevi o script a seguir para automatizar o envio por e-mail dos logs gerados pelo Logwatch, trazendo praticidade à tarefa de analise de logs. 

Segue abaixo, a ultima peça do nosso canivete suíço, o script que gera o log e o envia por e-mail: 

#!/bin/sh
# Script para envio dos logs do sistema de forma periódica e automática.
# Desenvolvido em Shell script.
# Autor: Alex Sandro Silva
# Twitter: @alexhctp
# Email: alexhctp[at]hotmail[dot]com - alexhctp[at]gmail[dot]com

# CONFIGURACOES LOCAIS

LOGGEN='/usr/sbin/logwatch'
MAIL='/usr/bin/mutt'
LOGDIR='/tmp/logs/'
MAIL='/usr/bin/mutt'
# DATE=`date +%y%m%d`
DATE=`date +%Y-%m-%d`
HOME='/root/'
# MENSAGEM=/root/mensagem.txt #aprendendo uma forma de dar um echo buscando o conteúdo de um arquivo de texto, se alguem souber, conta ae, rsrs

if [ -d $LOGDIR ]
     then
     rm -r $LOGDIR
exit 0
elif [ -d $HOME  ]
     then
     mkdir $LOGDIR

     $LOGGEN > $LOGDIR/log_$DATE.log
     echo 'Logs e estatisticas enviadas automaticamente ao sysadmin' | $MAIL -s 'Estatisticas e Logs diarios - NOME DA FILIAL'  -a $LOGDIR\log* -- ti@seuemail.com

     rm -R $LOGDIR

exit 0
fi


Sintam-se à vontade para mudar, sugerir melhorias ou correções no script. 

Automatizando o processo com o Cron

Para terminar, agendamos uma tarefa com o Cron para que todos os dias um log seja enviado ao sysadmin. Para isso, edite o Crontab adicionando a entrada a seguir: 

# nano /etc/crontab 

Insira: 

# Envio de automatico de logs do sistema por email
59  23    * * *    root    /root/sendMail.sh


Pronto... agora é só criar o vício de analisar os seus relatórios do sistema, uma vez que a falta de tempo, não mais será desculpa para deixar de fazê-lo. 

Espero ter ajudado. 

Comentários com criticas e sugestões são bem-vindos. 

Abraço a todos. ;) 

Referências

Artigo publicado anteriormente por mim no Viva o Linux
http://www.vivaolinux.com.br/artigo/Logwatch-Enviando-relatorios-via-email/?pagina=2

domingo, 15 de julho de 2012

Habilitando IPv6 e alguns macetes úteis no Debian.

Recentemente precisei implantar/habilitar o protocolo IPv6 em um cliente e como se tratava de algo novo, passei por algumas dificuldades. Para dar conta do recado, realizei varias pesquisas, cujo resultado compartilho nesse post. Não me aprofundarei em tópicos como o que é e como o IPv6 funciona, o objetivo desse post é apresentar um norte para o estudante ou profissional de TI/Redes que já tem uma noção básica do que se trata esse protocolo.
Para começar os estudos, acessei o site brasileiro http://ipv6.br/, mantido pelo http://www.ceptro.br/ (Centro de Estudos e Pesquisas em Tecnologias de Redes e Operações), onde todas as informações necessárias para começar a se aventurar pelo protocolo em questão estão disponíveis. Tópicos como endereçamento, cabeçalho e funcionalidades são abordados nos mínimos detalhes. Acesse e aproveite ;)
Uma vez ciente sobre todo o funcionamento do protocolo IPv6, é hora de habilita-lo no seu servidor, mas para isso, é necessário verificar se seu ISP já provê e da suporte a esse protocolo. Para testar, habilite o protocolo IPv6 em seu sistema nas propriedades de rede. Para checar se seu sistema esta apto a receber IPv6, de o seguinte comando em uma janela do terminal:

Linux
ping6 -c5 ::1

O resultado deve ser similar ao do ping normal, com tempo de respostas e estatísticas positivas ao final do teste.


No servidor linux executei os seguintes
Enfim, uma vez checado se o suporte a IPv6 já esta habilitado, basta seguir para as próximas etapas. Caso seu server Linux ainda não tem suporte ao protocolo, basta entrar com os comandos a seguir no terminal:
Habilitar suporte ao IPv6 no kernel:

# modprobe ipv6

Se você esbarrar em algum erro durante esse processo, certamente você precisará recompilar o seu kernel. No link a seguir você encontrará mais detalhes sobre parâmetros para recompilar o seu kernel: http://mirrors.deepspace6.net/Linux+IPv6-HOWTO-pt_BR/systemcheck-kernel.html

Caso a sua distro já suporta IPv6, basta editar o arquivo /etc/modprobe.d/aliases adicionando a seguinte linha ao final do texto:
alias net-PF-10 ipv6

Se por algum motivo precisar desabilitar o IPv6 no futuro, basta editar o mesmo /etc/modprobe.d/aliases e mudar o parâmetro que adicionamos ao final do texto conforme o descrito a seguir:
alias net-PF-10 off

Feito isso, o seu server já possui suporte ao IPv6 e para confirmar, realizaremos novamente o teste do ping como descrevi anteriormente, "ping6 -c5 ::1".

Fecharemos a etapa de configurações básicas do protocolo tornando permanente as alterações feitas. Para isso, edite o arquivo /etc/network/interfaces e deixe-o conforme o apresentado no exemplo abaixo:

iface ethx inet6 static
       pre-up modprobe ipv6
       address 'endereço IPv6'
       netmask 64
       gateway 'endereço IPv6 do gateway'
Onde ethx equivale a interface de rede que recebera o IPv6.


Por hora é isso, em breve vou incrementar o assunto IPv6 com novos posts. Devido a falta de tempo, vou disponibilizar o material que usei para escrever esse pocket tutorial e deixar como base para as suas próprias pesquisas.


Referencias usadas no tutorial:
http://ipv6.br/
http://mirrors.deepspace6.net/Linux+IPv6-HOWTO-pt_BR/systemcheck-kernel.html

Material de apoio para estudos complementares e tópicos avançados:
http://www.rjsystems.nl/en/2100-dhcpv6-stateful-autocfg.php
http://madduck.net/docs/ipv6/

Ferramentas avançadas para segurança e auditoria em redes IPv6:
http://ipv6securitylab.org/ipv6toolbox.html

segunda-feira, 30 de janeiro de 2012

SqStat - Monitorando logs do Squid em tempo real!!!


Oi pessoal,

Essa dica é pra quem assim como eu gosta de montar seus servidores do zero, instalando os serviços que vai precisar de acordo com a demanda exigida.
Geralmente, nos proxyes rodando Squid usamos os Sarg para gerar relatórios, porém é muito incomodo (pra não dizer chato) ficar gerando e analisando os relatorios.
A ferramenta SqStat é um script PHP que acessa os logs do Squid e gera EM TEMPO REAL uma listagem dos sites que estão sendo acessados pelos hosts da rede naquele instante.
Uma das maiores vantagens dessa ferramenta é que com ela conseguimos analisar o trafego na rede, detectando quais usuarios estao consumindo mais banda atraves do protocolo HTTP e HTTPS.
Agora vamos deixar de lero lero e vamos ao que interessa... Mão na Massa!!!

Requisitos necessarios:
  1. PHP 4.1 ou superior
  2. Proxy rodando Squid


Download
  1. Linux - http://samm.kiev.ua/sqstat/sqstat-1.20.tar.gz
  2. FreeBSD - http://www.freshports.org/www/sqstat

Instalando....
  • Descompacte o pack na raiz do seu webserver...

  • Faça uma copia do arquivo config.inc.php.defaults mudando o nome da copia para config.inc.php, edite o arquivo config.inc.php com o vi, vim, nano ou qualquer outro editor da sua preferencia para setar o endereço do seu servidor proxy rodando squid e a sua porta de atuação.

  • Edite o squid.conf adicionando as seguintes linhas
acl manager proto cache_object
# substitua 10.0.0.1 pelo ip do seu webserver...
acl webserver src 10.0.0.1/255.255.255.255
http_access allow manager webserver
http_access deny manager

  • Pra finalizar, basta acessar o seu webserver pelo browser e chamar pela pagina sqstat.php (ex.: http://seu.ip.da.rede/sqstat.php)

Bibliografia: