Erkennung und Sortierung von Spam-Mails mit POPFile

Aus JanaWiki
Wechseln zu: Navigation, Suche

Erkennung und Sortierung von Spam-Mails mit POPFile

Beschreibung

POPFile ist ein auf Perl und dem Bayes Algorithmus basierendes Programm zum automatischen Klassifizieren von Emails. Das bedeutet, Sie können POPFile nicht nur zum Erkennen von Spam-Mails, sondern prinzipiell zum kassifizieren von Mails nach beliebigen Kategorien verwenden. Das Programm arbeitet als Proxy, d.h. es steht zwischen einem Mailclient und einem POP3-Mailserver. Der Client richtet seine Anfrage also nicht direkt an den Server seines Mailproviders, sondern an POPFile, welches diese wiederum an den Provider weiterreicht, die Mails entgegennimmt, klassifiziert und an den Mailclient ausliefert.

Wichtig ist allerdings zu erwähnen, dass POPFile selbst keine Verteilroutinen enthält, sondern die Mails nur mit einer frei definierbaren Kennzeichnung versieht. Die weitere Verarbeitung/Weiterleitung/Sortierung übernimmt der Client. Als Client laut obiger Definition kann nicht nur ein Mailprogramm wie Outlook und Andere, sondern auch ein Mailserver im LAN fungieren.

Dieser Artikel beschreibt die Einrichtung von POPFile zusammen mit Jana-Server, wobei davon ausgegangen wird, dass Jana bereits installiert und betriebsfertig als IMAP-Server konfiguriert ist. Anleitungen zur Installation und Konfiguration von Jana finden Sie in diesem Wiki oder im Janaforum (http://www.janaforum.de).
Ebenso wird die Einrichtung eines Verteilscriptes beschrieben, welches zentral die (klassifizierten) Mails in einen vorhandenen IMAP-Ordner des jeweiligen Benutzers ablegt. Diese Verteilung kann aber auch direkt von Mailclients mit entsprechenden Funktionalitäten übernommen werden.
Selbstverständlich kann Jana auch als POP3-Server fungieren, dann entfällt die Einrichtung des Verteilscriptes und der jeweilige Mailclient muss die Sortierung selbst übernehmen.

Software-Komponenten

Installation

  • Downloaden Sie POPFile
  • Starten Sie das Installationsprogramm und folgen sie den Bildschirmhinweisen.
  • POPFile wird standardmässig über „Autostart“ beim Systemstart geladen, kann aber auch als Service laufen. Diesen installieren Sie, indem Sie ein Kommandozeilenfenster öffnen, in das POPFile Installationsverzeichnis wechseln und hier „popfile-service –install“ eingeben. Allerdings läuft der Service nicht unter dem lokalen Systemkonto.
  • Downloaden Sie das AWK-Filterscript und entpacken Sie die ZIP-Datei in ein beliebiges Verzeichnis, hier C:\Jana\mailfilterAWK
  • Downloaden Sie den AWK-Interpreter und führen Sie die Installation mit den Default-Einstellungen durch.
  • Starten Sie Ihr System neu.

Konfiguration POPFile

  • Die Konfiguration von POPFile geschieht ausschließlich über den Browser, diese erreichen Sie standardmässig über die Adresse http://127.0.0.1:8080
  • Wechseln Sie in der Konfigurationsmaske auf den Registerreiter „Configuration“. Ändern Sie die Sprache, falls gewünscht, auf „deutsch“. Legen Sie außerdem den Port fest, auf dem POPFile auf Jana horchen soll (POP3 Listen Port). Vorschlag: 10110. Ändern Sie die weiteren Voreinstellungen in dieser Maske nur, wenn Sie sicher sind, was Sie tun.
  • Unter dem Registerreiter „Sicherheit“ haben Sie unter anderem die Möglichkeit, den Zugriff auf die Benutzeroberfläche für andere Rechner zu öffnen/schließen und mit einem Zugriffs-Kennwort zu versehen. Im Abschnitt „Externe Server“, damit ist der Server Ihres Mailproviders gemeint, sollte in der ersten Zeile der Port 110 stehen.
  • Im Registerreiter "Kategorien" definieren Sie im Abschnitt "Verwaltung" die Begrifflichkeiten, nach denen POPFile Mails kategorisieren soll. Der Einfachheit halber legen wir hier für’s Erste nur die Kategorien spam und ok an. Legen Sie danach im Abschnitt „Kategorien konfigurieren“ fest, dass Mails der Kategorie "ok" keine Kennzeichnung erhalten, bei der Kategorie "spam" aber die Betreffzeile geändert werden soll. Soll heißen, alle Mails, die im Betreff keine Kennzeichnung haben, werden von Jana normal verteilt, alle Mails mit Kennzeichnung "Spam" werden von dem nachfolgend beschriebenen Script bearbeitet.
  • Diese Einstellungen sollen hier zunächst genügen

Konfiguration AWK Mailfilter

  • Editieren Sie die Datei „mailfilter.bat“ entsprechend Ihrer Systemkonfiguration. Nachfolgend der relevante Abschnitt:
:initialize
set userNr=%1
set origMailFile=%2
set origMailSize=%~z2
set janapath=c:\Jana
set destpathBase=c:\jana\Mail\user%userNr%\
set gawk=c:\programme\GnuWin32\bin\gawk.exe
set logpath=c:\jana\Logfiles\MailFilter.log
:start
echo %date% %time%  :  RECEIVED %origMailFile% (%origMailSize% Bytes) for User %userNr% >> %logpath%
:randomize


  • Erstellen Sie im Unterverzeichnis „filters“ die Filterscripte für die einzelnen Benutzer. Nachfolgend ein einfaches Beispielscript, mit dem eine Mail, deren Betreff das Wort „spam“ enthält, in den Ordner "Spam" des jeweiligen Benutzers verschoben wird. Der Ordner "Spam" wird dabei nicht angelegt, sondern muss bereits existieren.


BEGIN {
IGNORECASE=1 <-- Gross-und Kleinschreibung wird ignoriert
}
($1=="Subject:") && /spam/ {
actionMove("Spam");
exit; 
}

Die Dateinamen der Filterscripte lauten "filter.<benutzer-nr>.awk", also für Benutzer 1 "filter.1.awk", für Benutzer 2 "filter.2.awk" usw. Dies hat den Vorteil, dass die Filterregeln für die einzelnen Benutzer völlig individuell gestaltet werden können.


Konfiguration Jana

Die zuvor beschriebenen Scripte müssen nun in Jana eingebunden werden, damit Sie ausgeführt werden, wenn eine Mail eingeht.
Dies geschieht in der Janakonfiguration unter Email -->Benutzer.

  • Klicken Sie z.B. bei Benutzer 1 auf „Edit“ und scrollen Sie bis zum Dialogfeld « Auszuführendes Programm ».
  • Aktivieren Sie die Option "Programm ausführen ja / nein" und tragen Sie tragen Sie im Feld "Kompletter Pfad zum Programm" die "Mailfilter.bat" ein. Der komplette Aufruf sollte so aussehen: "c:\jana\mailfilterAWK\MailFilter.bat <benutzer-nr> $FILE$". Für Benutzer 1 wäre also der korrekte String "c:\jana\mailfilterAWK\MailFilter.bat 1 $FILE$" (natürlich ohne Anführungszeichen).

Achtung: Die Benutzernummer ist nicht diejenige, die in der Auflistung der Benutzer vorangestellt ist, sondern diejenige, mit der die Mailverzeichnisse der Benutzer im Filesystem gespeichert sind, z.B. C:\Jana\Mail\User1 etc.


Mail von Jana über POPFile abholen lassen

Als nächstes muß in der Jana-Konfiguration

E-Mail -> erweitert -> Pop3-Server

für jeden Benutzer eingestellt werden, daß die Mails zukünftig über POPFile beim Provider abgeholt werden. Dazu auf "Edit" klicken und "Name des Pop3-Servers", sowie "Benutzerkennung" wie folgt ändern:

Name des Pop3-Servers

[Jana-IP]:[Port auf dem POPFile lauscht], in unserem Fall also

127.0.0.1:10110

Benutzerkennung

[Popserver des Providers]:[Pop3-Port beim Provider]:[Benutzername beim Provider], Beispiel:

pop.gmx.net:110:9999999

Damit wäre die Grundkonfiguration erledigt, es muss jetzt nur noch POPFile beigebracht werden, wie es die Mails kategorisieren soll.

POPFile trainieren

  • Nachdem Jana erstmals Mails abgeholt hat, öffnen Sie die Konfigurationmaske von POPFile (http://127.0.0.1:8080 bzw. die IP des Servers bei Konfiguration von einem entfernten Rechner).
  • Hier sollten Sie unter dem Registerreiter "Verlauf" die abgeholten und bereits kategorisierten Mails sehen. Am Ende der jeweiligen Zeile haben Sie die Möglichkeit, die Einstufung zu verändern und POPFile damit zu trainieren.

Viel Erfolg!


POPFile Homepage http://popfile.sourceforge.net/