Como posso monitorar e-mails enviados a partir do Unix e Sendmail?
Pergunta
Estou executando um servidor FreeBSD e eu ter sido enviado um aviso de que o spam foi enviado do meu servidor. Eu não tenho isso definido como uma retransmissão aberta e eu ter personalizado a configuração do sendmail. Eu gostaria de saber quem está enviando o e-mail, juntamente com o seu nome de usuário, a linha de assunto do email, bem como um resumo de quanto e-mail que eles têm enviado. Eu gostaria de executar um relatório em um log semelhante à forma como é feito durante o processamento de logs do servidor Apache.
Quais são as minhas opções?
Solução
Uma idéia é apelido sendmail para ser um script personalizado, que simplesmente gatos os argumentos sendmail para a extremidade de um registro antes de chamar sendmail da maneira usual.
Outras dicas
Você também pode monitorar todas as chamadas de sistema para funções write
e read
executando:
ps auxw | grep sendmail | awk '{print"-p " $2}' | xargs strace -s 256 -f 2>&1 | grep -E $'@|(([0-9]+\.){3}[0-9]+)' | tee -a "/var/log/sendmail-logs.log"
Isto lhe dará acesso directo à informação, você não pode ir mais fundo eu acho.
Você pode dar alguns logs de amostra? Eu acho que você está melhor aposta seria a de olhar através deles tanto com grep ou cut para obter os de origem / destinos que estão sendo enviados também. Além disso, você pode escrever um script Perl para automatizar uma vez que você tem a regex correto. Esta seria a melhor opção.
Se o FreeBSD tem configuração padrão, você tem apenas uma maneira de correio de saída alça, verifique o que o envio através de você sendmail sistema em /etc/mail
.
Todo o correio de saída deve ser registrado pelo /var/log/maillog