Pular para o conteúdo

Mantendo logs do SMTP para auditoria em servidores de grande movimento

Dica publicada em Linux / Correio Eletrônico
Alexandre de Castro Goulart acgoulart
Hits: 8.401 Categoria: Linux Subcategoria: Correio Eletrônico
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Mantendo logs do SMTP para auditoria em servidores de grande movimento

Para quem trabalha em uma rede com um servidor de correio com grande movimento diário, onde os e-mails exercem papel importante como documento de confirmação de uma ordem de execução de serviço por parte de um cliente ou coisa que o valha, torna-se fundamental armazenar os logs do SMTP.

Através deles, podemos confirmar se em tal dia chegou um e-mail de fulano de tal para o usuário sicrano, se beltrano enviou mesmo um e-mail às tantas horas e por aí vai.

Ocorre que a periodicidade do LOGROTATE pode ocasionar arquivos maillog, maillog.1, maillog.2, etc, de tamanho muito grande - se configurado para períodos longos - ou causar a perda dos logs mais antigos, se configurado para períodos curtos e com poucas "rodadas". Para entenderem melhor as possibilidades (que são muitas) e limitações do LOGROTATE, dêem uma olhada no man.

Para resolver isso, criei um procedimento para salvar de forma organizada os logs, composto de um script (serve para datar e copiar os arquivos de maillog), uma pasta que sempre é "backupeada" e uma entrada no CRONTAB.

Assim, quando "estoura" alguma situação em que pedem para verificar se tal cliente realmente enviou um e-mail em tal dia - e se chegou ao nosso servidor - eu tenho logs de meses atrás para pesquisar. E isso costuma salvar o dia.

O script é o seguinte:

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
#!/bin/bash

# Preparação das variáveis.
###########################

# Atribui o ano atual a variável ano.


ano=$(date +%y)

# Atribui o mês DO ARQUIVO DE LOG a variável mês.

mes=$(ls -l /var/log/maillog.1 |cut -c 44-46)

# Atribui o dia DO ARQUIVO DE LOG a variável dia.

decdia=$(ls -l /var/log/maillog.1 |cut -c 48)
unidia=$(ls -l /var/log/maillog.1 |cut -c 49)
if [ "$decdia" = " " ]; then
decdia=0
fi
dia=$decdia$unidia

# Copia o arquivo de log para o deposito.

#########################################
# O nome do arquivo salvo inclui a data em que ele
# foi fechado, para que eu possa saber a que período
# ele se refere, na hora em que precisar dele.
# Além disso, evita a duplicidade, pois se este mesmo
# arquivo já tiver sido salvo (em um boot anterior,
# por exemplo) terá o mesmo nome.


cp /var/log/maillog.1 /home/maillogs_antigos/$dia$mes$ano'maillog'

O script está em uma pasta chamada /usr/Script, assim o CRONTAB ganha esta linha:

00 23 * * 5 /usr/Scripts/salvamaillogs

Espero que esta dica possa ajudar algum dos colegas.

Amplexos,

Alexandre

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
Nenhuma dica encontrada.

Importando emails do Thunderbird para Icedove e vice-versa

Zimbra: Aplicando patch de segurança para vulnerabilidade de CCS Injection (CVE-2014-0224)

Kshowmail: Combatendo SPAM & CIA

Controle de acesso por usuario no Postfix

Howto: Postfix integrado ao Active Directory - Debian Lenny

Nenhum comentário foi encontrado.

Contribuir com comentário

Entre na sua conta para comentar.