Comment puis-je surveiller le courrier électronique sortant d'Unix et Sendmail?
Question
Je suis en cours d'exécution d'un serveur FreeBSD et j'ai envoyé un avertissement que le spam a été envoyé de mon serveur. Je ne l'ai pas défini comme un relais ouvert et je l'ai personnalisé la configuration sendmail. Je voudrais savoir qui envoie ce courriel avec leur nom d'utilisateur, email ligne de sujet, ainsi qu'un résumé de la quantité de courrier qu'ils ont envoyé. Je voudrais lancer un rapport sur un journal similaire à la façon dont il se fait lors du traitement de logs du serveur Apache.
Quelles sont mes options?
La solution
Une idée est d'alias sendmail être un script personnalisé, qui simplement les chats les arguments sendmail à la fin d'un journal avant d'appeler sendmail de la manière habituelle.
Autres conseils
Vous pouvez également contrôler tous les appels système write
et les fonctions de read
en exécutant:
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"
Cela vous donnera un accès direct à l'information, vous ne pouvez pas aller plus loin, je pense.
Pouvez-vous donner quelques journaux d'échantillons? Je pense que vous êtes le meilleur pari serait de regarder à travers eux soit avec grep ou couper pour obtenir les sources / destinations qui sont envoyés aussi. En outre, vous pouvez écrire un script Perl pour automatiser une fois que vous avez la regex correcte. Ce serait la meilleure option.
Si FreeBSD ont config par défaut, vous avez qu'une seule façon de gérer le courrier de sortie, vérifier ce que l'envoi par votre système sendmail dans /etc/mail
.
Tous les messages de sortie doit être enregistré par /var/log/maillog