Logwatch - Enviando relatórios via e-mail

Quando o assunto é segurança, devemos considerar a importância dos relatórios do sistema, tanto para tomadas de decisões corretivas quanto
preventivas. Neste artigo, vou mostrar a configuração segura do Logwatch e o envio dos logs gerados por ele via e-mail.

[ Hits: 20.306 ]

Por: Alex em 27/10/2012 | Blog: http://linux4admins.blogspot.com/


Introdução e Preparação



Introduçã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.

    Próxima página

Páginas do artigo
   1. Introdução e Preparação
   2. Logwatch
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Site seguro com Apache-SSL em 15 minutos

Implementando uma política de segurança eficaz

Instalando e integrando o amavis e o viruscan no sendmail

Utilização Segura do SSH

Utilizando o Nmap Scripting Engine (NSE)

  
Comentários
[1] Comentário enviado por temar26 em 05/11/2012 - 17:17h

Parabéns não tive tempo de testar ainda... mais um para meus favoritos ...thank...

[2] Comentário enviado por l1p3 em 20/11/2012 - 10:15h

Executei o script mais ele não esta criando o diretório para o log ser armazenado e ser enviado por email, estou colando a saída para ver se vocês conseguem me ajudar, não estou conseguindo corrigir o problema.

[root@servidor ~]# bash -x sendMail.sh
+ LOGGEN=/usr/sbin/logwatch
+ MAIL=/usr/bin/mutt
+ LOGDIR=/tmp/logs/
+ MAIL=/usr/bin/mutt
+ DATE='date +%Y-%m-%d'
+ HOME=/root/
+ '[' -d /tmp/logs/ ']'
+ '[' -d /root/ ']'
+ mkdir /tmp/logs/
+ /usr/sbin/logwatch
sendMail.sh: line 22: $LOGDIR/log_$DATE.log: ambiguous redirect
+ echo 'Logs e estatisticas enviadas automaticamente ao sysadmin'
+ /usr/bin/mutt -s 'Estatisticas e Logs diarios - Empresa' -a '/tmp/logs/log*' admin@root.com.br
Can't stat /tmp/logs/log*: Arquivo ou diretório não encontrado
/tmp/logs/log*: não foi possível anexar o arquivo.
+ exit 0

[3] Comentário enviado por alexhctp em 20/11/2012 - 17:30h

Boa tarde amigo,

Refiz o processo aqui em uma instalação ZERADA... o problema não aconteceu. Me diga se a instalação do logwatch está correta, pois como pode observar, no trecho
[code]sendMail.sh: line 22: $LOGDIR/log_$DATE.log: ambiguous redirect[/code]
a saída indica um redirecionamento incorreto ou ambíguo, o que sugere que ele não consegue entender a linha
[code]$LOGGEN > $LOGDIR/log_$DATE.log[/code]

Mais abaixo ele da o seguinte erro: [code]Can't stat /tmp/logs/log*: Arquivo ou diretório não encontrado
/tmp/logs/log*: não foi possível anexar o arquivo. [/code]
Indicando que o diretório não foi localiza, o que faz sentido pois o log não foi gerado como foi informado na linha anterior.

Por hora, verifique se todas os requisitos necessárias para o funcionamento do script estão sendo atendidos. Basicamente você precisará somente do mutt instalado e configurado e o logwatch, conforme pode ser observado ao ler todo o artigo.

Alem disso, agradeço pelo contato e informo que a decima segunda linha do script esta repetida e pode ser comentada ou excluída:
[code]MAIL='/usr/bin/mutt'[/code]

Espero ter ajudado.

Abraço a todos...

EDITADO...
Amigo, da um [code] find / -name logwatch [/code] e veja se o binário esta no diretório correto. Caso não esteja, basta acertar a variável do script para o local correto do binário.

Agora sim, um abraço a todos!!!

[4] Comentário enviado por l1p3 em 21/11/2012 - 10:19h

Bom dia Alex

Fiz as correções conforme você mencionou acima, o Mutt eu testei e esta funcionando normalmente, eu tenho uma leve impressão de que o problema seja no logwatch, conferi o binario do logwatch e o mesmo se encontra no /usr/sbin/logwatch, acho que deve ser algo nas configurações.

Abaixo Script do envio de logs:

#!/bin/sh
#Script para envio dos logs do sistema de forma periodica e automatica

#CONFIGURACOES LOCAIS
LOGGEN='/usr/sbin/logwatch'
MAIL='/usr/bin/mutt'
LOGDIR='/tmp/logs/'
#DATE='date +%y%m%d'
DATE='date +%Y-%m-%d'
HOME='/root/'
#MENSAGEM=/root/mensagem.txt

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 - Empresa' -a $LOGDIR\log* -admin@sysadmin.com.br
exit 0
fi
;;


Uma dúvida que tenho é que nas configurações padrão do logwatch eu não altero nada?

EDIT: Não sei se vai influenciar mais estou utilizando a Distro CentOS 5.3

E obrigado alexhctp você esta me ajudando muito com esse script vai ser de grande utilidade para automatizar alguns processos aqui na empresa!




[5] Comentário enviado por alexhctp em 21/11/2012 - 13:57h

Boa tarde amigo,

Vou colocar o CentOS em uma VM pra simular o seu ambiente. Solicito que aguarde enquanto baixo a ISO e instalo no Virtual Box. Meu note com Gnu/linux ta zuado, por isso pode ser que demore um pouco (no máximo ate amanha) pra eu fazer todos os testes no CentOS e te dar outra posição.

Abraço!

[6] Comentário enviado por l1p3 em 21/11/2012 - 15:00h

Alexhctp,

Muito obrigado pela força!

Abraço

[7] Comentário enviado por l1p3 em 23/11/2012 - 08:38h

Bom dia !

Alexhctp conseguiu algum resultado em cima dos testes?

[8] Comentário enviado por alexhctp em 23/11/2012 - 16:35h


[7] Comentário enviado por l1p3 em 23/11/2012 - 08:38h:

Bom dia !

Alexhctp conseguiu algum resultado em cima dos testes?


Olá l1p3...

Pelo que pude ver nos testes que fiz usando o CentOS, o problema esta na forma como o logwatch é instalado nesse sistema. Enquanto em distros Debian Like ao executar o comando logwatch, o sistema retorna o log diretamente em tela ou redireciona a uma saída qualquer (um arquivo de texto, no nosso caso). Ao observar o comportamento de cada programa individualmente, percebi que o logwatch envia os logs automaticamente por email, sem a necessidade de um script dedicado a isso. Notei também que o logwatch usa o sendmail para realizar essa tarefa e você ode conferir essa configuração acessando o arquivo de configuração a seguir:
vi /usr/share/logwatch/default.conf/logwatch.conf

Enfim, to vendo uma forma de mudar esse comportamento.
Quando tiver noticias, volto a postar.

Abraço!

[9] Comentário enviado por l1p3 em 27/11/2012 - 15:37h

Isso mesmo,

Fiz alguns testes ao redor das configurações que mencionou à respeito do sendmail e também do envio automatico, mais nada roda tão bem quanto esse script que você criou, vou estudar uma forma automatizada também de fazer esse envio mais qualquer novidade posta para nós!

[10] Comentário enviado por kerberos2001 em 01/10/2014 - 16:15h

Olá Alexm eu caro, e carissimos colegas =),

Apenas reportando que o script funcionou maravilhosamente em alguns servidores Ubuntu 12.04 LTS que eu gerencio da minha empresa, que estão hospedados na Amazon.

Apenas um pequeno toque para correção (no meu caso, foi necessário): O arquivo ~/muttrc onde ficam as configurações de servidores, na verdade se chama ~/.muttrc (repare o ponto no inicio). Sem isso, eu não consegui enviar e-mails nos servidores usando o seu sciript.

Note ainda que é interessante que o usuário usado no logwatcher seja o root, ou algum usuário que consiga ter pleno acesso a pasta /var/logs, ou você pode ter problemas ao ler alguns logs.

Fora isso, fantástico e ótimo trabalho!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts