2009-07-13 10 views
6

J'utilise un serveur FreeBSD et un message m'a été envoyé pour signaler que du spam a été envoyé par mon serveur. Je ne l'ai pas défini comme un relais ouvert et j'ai personnalisé la configuration de sendmail. Je voudrais savoir qui envoie quel e-mail avec leur nom d'utilisateur, la ligne d'objet de l'e-mail ainsi qu'un résumé de la quantité de courrier qu'ils ont envoyé. Je voudrais exécuter un rapport sur un journal semblable à la façon dont cela est fait lors du traitement des journaux du serveur Apache.Comment puis-je surveiller les courriels sortants d'Unix et de Sendmail?

Quelles sont mes options?

+1

avez-vous vérifié/var/log/maillog? – nos

Répondre

3

Une idée consiste à alias sendmail pour qu'il devienne un script personnalisé, qui cite simplement les arguments sendmail à la fin d'un journal avant d'appeler sendmail de la manière habituelle.

0

Pouvez-vous donner des exemples de journaux? Je pense que vous feriez mieux de regarder à travers eux avec grep ou couper pour obtenir la source/destinations qui sont envoyées aussi. En outre, vous pouvez écrire un script Perl pour l'automatiser une fois que vous avez l'expression rationnelle correcte. Ce serait la meilleure option.

1

Si FreeBSD a la configuration par défaut, vous avez seulement un moyen de gérer le courrier de sortie, vérifiez ce qui envoie à travers votre système sendmail dans /etc/mail.

Tous les messages de sortie doit être connecté par /var/log/maillog

0

Vous pouvez également surveiller en exécutant tous les appels système write et read fonctions:

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.