Wie kann ich ausgehende E-Mails von Unix und Sendmail überwachen?
Frage
Ich arbeite mit einem FreeBSD-Server und ich habe eine Warnung geschickt worden, dass Spam von meinem Server gesendet wurde. Ich habe es als offenes Relay nicht gesetzt und ich habe die sendmail-Konfiguration angepasst werden. Ich würde gerne wissen, wer welche E-Mail zusammen mit ihren Benutzernamen sendet, E-Mail-Betreffzeile sowie eine Zusammenfassung, wie viele E-Mails sie zu senden sind. Ich möchte einen Bericht auf ein Protokoll laufen ähnlich, wie es gemacht wird, wenn Apache-Server-Protokollen verarbeitet werden.
Was sind meine Optionen?
Lösung
Eine Idee ist, alias Sendmail ein benutzerdefiniertes Skript zu sein, die einfach Katzen die send Argumente an das Ende eines Protokolls, bevor Sendmail in der üblichen Weise aufrufen.
Andere Tipps
können Sie überwachen auch alle Systeme durch die Ausführung write
und read
Funktionen aufrufen:
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"
Dies gibt Ihnen direkten Zugang zu den Informationen, können Sie nicht tiefer gehen, denke ich.
Können Sie einige Beispielprotokolle geben? Ich glaube, Sie beste Wette sind wäre durch sie entweder mit grep zu suchen oder schneiden Sie die Quelle / Ziele zu erhalten, die auch gesendet werden. Auch könnten Sie einen Perl-Skript schreiben, um es zu automatisieren, wenn Sie die richtige Regex haben. Dies wäre die beste Option.
Wenn FreeBSD Standardkonfiguration haben, müssen Sie nur eine Möglichkeit Ausgang Mail zu handhaben, zu überprüfen, was in /etc/mail
durch Sie Sendmail-System zu senden.
Alle Ausgaben Mail von /var/log/maillog
müssen angemeldet sein,