Ausgesiebt Server-Seitige Mailfilter Mit Sieve Oder Wegsperren, Ohne Den Maildienst Damit Zu Belasten
Total Page:16
File Type:pdf, Size:1020Kb
Server-seitige Mailfilter mit Sieve Titelthema Ausgesiebt Sieve 54 E-Mails auf dem Server filtern befreit von überflüssigem Ballast: Die leistungsfähige Skriptsprache Sieve ist als RFC standardisiert. Unerwünschte Nachrichten mit Spam oder Viren können Sieve-Skripte automatisch löschen Linux-Magazin 06/07 06/07 Linux-Magazin oder wegsperren, ohne den Maildienst damit zu belasten. Markus Feilner nutzer mit einem Webmailer Abhilfe schafft erst der offene und per wie Squirrelmail an, stellt er RFC definierte Standard für die Server- enttäuscht fest, dass Spam seitige Filterung von E-Mail namens und Viren-Mails, die Kontact, Sieve [1]. Frühe Versionen dieser Fil- Evolution oder Outlook auto- tersprache wurden seit 1994 diskutiert, matisch löschen, immer noch 1999 veröffentlichte die Carnegie Mellon in seinem Posteingang auf University die Sieve-Implementation, die dem IMAP-Server landen. der Cyrus-POP/ IMAP-Server als erster Wenn verschiedene Mailpro- übernahm. Bereits im Jahre 2001 spezi- gramme zum Einsatz kom- fizierte RFC 3028 dann „Sieve – A Mail men, müssen alle Regeln Filtering Language“ [2]. Die einheitliche doppelt gepflegt und bei Mi- Sprache für Filterregeln umfasst auto- grationen mühselig von Hand matische Weiterleitung, Abwesenheits- zusammengeklickt werden, notizen und Sortieren von Nachrichten da die meisten Mailclients sowie zahlreiche Erweiterungen. über keine Import/ Export- Funktionen für Filterregeln Cyrus IMAP und Sieve verfügen. Der in vielen Groupwaresystemen inte- Server-basierte grierte Cyrus-IMAP-Server bietet neben Regeln POP und IMAP auch den Dienst »timsie- ved« für die Remote-Administration von Besser ist es daher, die Regeln Filterregeln über das Managesieve-Proto- gleich auf dem Mailserver koll [3]. Timsieved kommuniziert über zu speichern und zentral zu das Local Mail Transfer Protocol (LMTP, verwalten. Proprietäre Group- [4]) mit den anderen Diensten von Cy- waresysteme wie Exchange rus und fungiert als Local Mail Delivery oder Scalix bieten das schon Agent, der die Mails nach den Sieve-Re- länger, bei ihnen administ- geln in die Postfächer sortiert. riert der Benutzer die Regeln LMTP ist ein SMTP-ähnliches Protokoll © Alex-,photocase.com © vom Mailclient oder vom für die lokale Kommunikation zwischen Webfrontend aus. Mailservern und wurde speziell für Ser- Moderne E-Mail-Clients gestatten es Allerdings verwenden die kommerziel- verdienste entwickelt, die über keine ei- dem Benutzer, neue Nachrichten auto- len Systeme proprietäre Lösungen für gene Warteschlange verfügen. Der Client matisch zu sortieren und beispielsweise das Speichern der Regeln. Im besten Fall kann dabei eine Nachricht nur übertra- Spam direkt beim Abholen zu löschen. übernimmt bei einem Upgrade die neue gen, wenn der Server sie auch sofort Diese Client-seitigen Filterregeln haben Version die alten Regeln, aber bei einer vollständig zustellen kann. jedoch ihre Tücken: Jede Filterregel Migration auf eine andere Groupware Der Cyrus-Mailserver war lange der ein- des Mailprogramms verlängert die Zeit- vergeht auch bei diesen Lösungen einige zige Mailserver, der den Sieve-Standard spanne, die es zum Abholen der Post Zeit, bevor alle Filterregeln im neuen unterstützte, erst kürzlich bekamen Cita- benötigt, besonders die rechenintensi- System eingetragen sind. Allein die Re- del (Abbildung 1), Dovecot, DBMail, ven Spam- und Virenchecks fallen hier geln auf dem Server zu speichern ist of- Exim und einige kommerzielle Mailser- negativ auf. Meldet sich dann der Be- fenbar nur der halbe Weg. ver entsprechende Erweiterungen. Da Titelthema Editor auf dem Sieve-Server und akti- viert es anschließend mit einem Tool na- mens Sieveshell. Als dritte und wohl angenehmste Mög- Sieve lichkeit erstellt er das Skript lokal auf seinem Client und lädt es danach auf den Server. Dabei helfen ihm E-Mail- Programme, die Sieve-Skripte bereits un- 55 terstützen, sowie ein eigener KIO-Slave unter KDE. Letzterer ist auch in Kmail eingebunden und ermöglicht das direkte Abbildung 1: Viele Groupwareserver wie etwa Citadel unterstützen Sieve-Skripte und bieten umfangreiche Editieren der Filterregeln über einen 06/07 Linux-Magazin Weboberflächen, mit denen die Benutzer Filterregeln anlegen und bearbeiten können. Menü-Eintrag aus der KDE-PIM-Anwen- dung heraus. Cyrus bei zahlreichen Groupwareprojek- die Mails bereits in die zugehörigen Ord- Auch Mulberry, Squirrelmail und Emacs ten erste Wahl ist, unterstützen Herstel- ner sortiert. Als angenehmer Nebenef- können (mit den passenden Erweiterun- ler wie Bynari, Zarafa, Openxchange und fekt wird dadurch auch das Abholen von gen) Sieve-Skripte editieren und spei- Kolab den freien Standard gerne und in- E-Mail deutlich beschleunigt und bean- chern. Bei anderen Mailclients schaut es tegrieren eigene Frontends für die Admi- sprucht weniger Rechenleistung auf dem jedoch noch schlecht aus. nistration. Mit dem Openxchange Oxten- Client und spart Bandbreite. Die etwas der erstellt sogar Microsoft Outlook seine längere Bearbeitungszeit der E-Mail auf Syntax Filterregeln als Sieve-Skripte. dem Server fällt dagegen in den meisten Andere Hersteller wie Scalix setzen in ih- Umgebungen nicht ins Gewicht Eine Sieve-Regel ist aus mehreren Teilen rer Entwicklung auf den freien Standard aufgebaut: Kontrollstrukturen wie Bedin- und arbeiten daran, die eigenen, propri- Sieve-Skripte erstellen gungen, Matching Rules und Handlungs- etären Systeme zu ersetzen. Den freien anweisungen. Die Regeln lassen sich, Mailservern Courier und UW-IMAP fehlt Der Benutzer kann sein Sieve-Skript auf wie bei anderen Regelassistenten auch, aber derzeit offensichtlich eine Sieve-Im- mehrere Arten erstellen. Im einfachsten als ganze Sätze formulieren: Wenn der plementation. Falle verwendet er ein Webinterface wie Absender »mfeilner@linuxnewmedia. Avelsieve (Abbildung 4), Smartsieve, de« ist, dann verwerfe die Mail. Basie- Wie das Sieben funktioniert Websieve (Abbildung 5) oder das Web- rend auf RFC 3028 [7] unterstützen die frontend seiner Groupwarelösung. Deren Sieve-Implementationen mindestens die Auf einem POP- oder IMAP-Server defi- Webmailer bieten meist ein bequemes Aktionen »keep«, »discard«, »redirect«, niert der Benutzer Filter, die der Server Interface zur Erstellung von Filterregeln, fast immer auch die Erweiterungen »re- auf eingehende Mails anwendet. In ei- wie es etwa bei Citadel, Kolab, Bynari ject« und »fileinto« (Tabelle 1). ner Textdatei kombiniert er dazu Tests, oder Openxchange der Fall ist. Standardaktion ist »keep«. Wenn nichts Bedingungen und Aktionen zu Filterre- In diesen Fällen klickt der Benutzer mit anderes definiert ist, hinterlegt Timsie- geln. Diese Datei kommt in das Sieve- der Maus auf Einträge in Dropdown- ved die E-Mail im Posteingang des Be- Verzeichnis des Users. Der Server wertet Menüs und baut sich so seine Filter zu- nutzers. Mit »discard« löscht er die be- diese Skripte jedes Mal automatisch aus, sammen (Abbildung 1). Alternativ dazu treffende Nachricht und bei »redirect« wenn er eine neue Mail für den Benutzer schreibt er das Skript selbst in einem leitet der Mailserver sie zu einer belie- entgegenimmt. Die Anweisungen in der Skriptdatei wen- Tabelle 2: Tests und Matches det er auf jede eingehende Mail an, un- Schlüsselwort Funktion abhängig davon, ob, wann oder mit wel- Matching Rules chem Client der Benutzer seine E-Mails :is Absoluter Match, ein Header muss nur genau dieses Muster enthalten abholt. Wenn ein Mailclient die Verbin- :contains Substring Match, im Header stehen neben dem Muster andere Zeichen dung zum Server aufbaut, hat der Server :matches Wildcard Match, Platzhalter wie »*« und »?« sind erlaubt Schlüsselwörter für Tests Tabelle 1: Sieve-Aktionen anyof Wenn eines der folgenden Kriterien zutrifft (OR) Name Aktion allof Wenn alle der folgenden Kriterien zutreffen (AND) keep Mail im Posteingang behalten, header Wenn das folgende Kriterium auf den Header zutrifft discard verwerfen, size Wenn das folgende Kriterium auf die Größe der E-Mail zutrifft redirect umleiten, exists Wenn das folgende Kriterium existiert (zum Beispiel ein Header) reject ablehnen, not Umkehrung fileinto in Ordner einsortieren. address Wenn die folgende Adresse in einem der Adressfelder der Header vorkommt stop Prüfung beenden. envelope Wenn der spezifizierte Teil des SMTP-Envelope übereinstimmt Titelthema bigen anderen E-Mail-Adresse um. Die Anweisung »reject« veranlasst den Mail- server dazu, die Mail an den Absender zurückzuschicken. Mit »fileinto« wird Sieve die Nachricht in einen Mailboxordner einsortiert. Damit Sieve die Aktionen sinnvoll an- 56 wendet, benötigt es Kontrollstrukturen und Bedingungen. Für Unterscheidun- gen zwischen Bedingungen dient das »if«-Kommando. Zusammen mit den Linux-Magazin 06/07 06/07 Linux-Magazin Schlüsselwörtern »elseif« und »else« sind geschachtelte Blöcke von Anweisungen Abbildung 2: Mit dem KIO-Slave für Sieve kann jedes KDE-Programm Sieve-Skripte direkt auf dem Server möglich, gruppiert durch geschweifte öffnen. Konqueror zeigt die Skripte dabei wie ein lokales Dateisystem an. Klammern und Strichpunkte. Das Kommando »stop« beendet die Ver- ständig löscht. Etwas genauer: Die An- Leerzeichen trennen die Parameter der arbeitung der E-Mail. Wenn keine an- weisung »if header :contains "Subject" Anweisungen voneinander. Runde Klam- dere Aktion ausgeführt wurde, landet die "SPAM"« veranlasst den Server dazu, mern rahmen mehrzeilige Aufzählungen Nachricht nach einem »stop« einfach im die Anweisung der folgenden Zeilen auf innerhalb der If-Kontrollstrukturen durch Eingangsordner des Benutzers. Ein ein-