MagicSpam ist ein hervorragender Spam-Filter für Plesk, CPanel oder MailEnable. Im Gegensatz zu SpamAssassin kommt MagicSpam mit einer grafischen Oberfläche und sehr einfacher Konfiguration daher. Leider fehlt der kostenlosen Version eine Auto-Whitelisting Funktion und die Log-Ausgabe ist auf 50 Einträge beschränkt. Die folgenden beiden Scripts ergänzen MagicSpam um Auto-Whitelisting und den Versand täglicher Reports.

magicspam

Was ist eine Auto-Whitelist?

In der Whitelist von MagicSpam werden Mailadressen gesammelt, die ohne Spam-Prüfung durchgelassen werden. Wenn die Mailserver wichtiger Kontakte diverse Regeln verletzen, deshalb als Spam-Sender eingestuft und geblockt werden, ist die Whitelist das Mittel der Wahl.

Viele Adressen manuell auf die Whitelist zu setzen ist jedoch sehr mühsam und zeitraubend. Auto-Whitelisting nimmt ihnen diese Arbeit ab: In regelmässigen Abständen werden die Log-Dateien des eigenen Mailservers gescanned und alle Empfänger ausgehender Mails auf die MagicSpam Whitelist gesetzt. Damit ist sichergestellt dass jeder Empfänger Ihrer Mails auch antworten kann ohne im Spam-Filter zu landen.

Auto-Whitelisting für MagicSpam im Detail

Das folgende Script setzt voraus, dass Postfix als MTA (Mail Transfer Agent) eingesetzt wird.
Es wird stündlich z.B. über den Taskplaner von Plesk aufgerufen.

  • Jede Mail, die Postfix verarbeitet, erzeugt einen Log-Eintrag in der Datei /var/logs/maillog.
  • Aus diese Logdatei werden nun alle Empfänger ausgehender Mails extrahiert und in die Datei /var/logs/maillog-filtered.txt geschrieben.
  • Damit manuell auf die MagicSpam Whitelist gesetzte Einträge nicht verloren gehen, werden diese an die maillog-filtered.txt angehängt.
  • Im letzten Schritt wird nun die Whitelist von MagicSpam (/etc/magicspam/from_whitelist) durch die so gesammelten Adressen ersetzt. Duplikate werden dabei automatisch bereinigt.
  • Am Ende wird /var/log/maillog-filtered.txt gelöscht.

MagicSpam Log filtern

Auto-Whitelisting setzt voraus, dass ein Kontakt zuerst einmal eine Mail erhält bevor er „freigeschaltet“ wird. Daher ist es besonders in der Phase direkt nach der Installation von MagicSpam wichtig, die Log-Dateien im Auge zu behalten. Hier ist genau zu erkennen ob ein Kontakt fälschlicher Weise als Spam eingestuft wird.

Das folgende Script reduziert die tägliche Logdatei von MagicSpam auf 3 Spalten, die sehr schnell manuell kontrolliert werden können: Sender (FROM), Empfänger (TO) und „RULE“, d.h. die Regel die bei der Einstufung als Spam zur Anwendung kamen. Letzteres ist hilfreich zu entscheiden, ob diverse Settings  in MagicSpam besser abgeschaltet werden.

Die so erzeugte und duplikat-bereinigte Liste wird am Ende zusammen mit dem original Log automatisch per Mail zugestellt:

magic-spam-sender-report

Der Magic Spam Log Filter im Detail

MagicSpam erzeugt in Plesk (oder anderen Systemen) einen automatischen Task, der um 0:00 Uhr die Logdateien rotiert. D.h. aus /var/log/mslog wird mslog.1, aus mslog.1 wird mslog.2 etc. Die letzte Datei mslog.8 wird gelöscht. Dann wird eine neue, leere mslog-Datei erzeugt in der wieder die aktuellen Einträge des neuen Tages landen.

Da wir /var/log/magicspam/mslog verarbeiten, macht es Sinn das Script kurz vor der Log-Rotation per Task-Planer zu starten, z.B. täglich um 23:55. So haben Sie am nächsten Morgen die Auswertung direkt im Postfach.

plesk-magicspam-report

Mehr Infos zu MagicSpam gibt es hier:
www.magicspam.com

Die MagicSpam Free Edition gibt es z.B. bei allen allen Servern von HostEurope als kostenlose Extension für Plesk.

Eine verbesserte Version des Auto Whitelisting Skripts findet ihr hier.