Mails filtern mit Sieve

© © Scott Griessel , Fotolia

Versiebt

Wer täglich mit einem ganzen Berg von E-Mails konfrontiert wird, ist auf intelligente Filter angewiesen. Mit Sieve steht dabei eine serverseitige Lösung zur Verfügung, die für Anwender wie für Administratoren einfach einzurichten und zu warten ist.
Egal, um welchen Dienst es sich dreht, den Benutzern geht es immer zu langsam. Der Schwerpunkt des ADMIN-Magazins 05/2011 verrät, mit welchen Tools man ... (mehr)

Das Ausmaß des E-Mail-Verkehrs in heutigen Zeiten stellt Administratoren wie auch Endanwender vor große Probleme. Längst landen nicht nur private Nachrichten in Postfächern, sondern auch ein Großteil der geschäftlichen Korrespondenz, selbst die Kommunikation mit Behörden, erfolgt zumeist elektronisch. Mailinglisten und Newsletter tun ihr Übriges, um das Postfach mit allerlei Mails zu überfluten. Um von dieser Masse nicht erschlagen zu werden, bedarf es eines ausgeklügelten Filtersystems, das Nachrichten automatisch in die richtigen Ordner sortiert.

Für gewöhnlich richten sich Anwender diese Filter direkt im E-Mail-Client ein, denn sowohl Desktop-Applikationen wie Mozilla Thunderbird oder Kmail als auch Webmailer wie Roundcube oder Squirrel Mail, bieten mehr oder weniger umfassende Möglichkeiten dafür an. Diese Variante ist mit Abstand am einfachsten – solange man E-Mails nur von einem System aus abruft.

Kommen mehrere Geräte ins Spiel, wird es hingegen schwierig. Mit IMAP ist zwar der Mailbestand überall identisch, doch Filterregeln kennt das Protokoll nicht. Zwar lassen sich theoretisch die Einstellungen zwischen den Clients hin- und herkopieren, doch das ist äußerst mühselig. Spätestens, wenn sich noch Smartphones und Tablet-PCs dazugesellen, wird es endgültig kompliziert.

Mehr Komfort mit Sieve

Wer als Administrator eines IMAP-Servers seinen Nutzern etwas Gutes tun will, bietet ihnen daher einen Sieve-Filter an. Damit lassen sich, ähnlich wie etwa bei Procmail, Filterregeln für eingehende Nachrichten festlegen. Der große Vorteil dabei ist, dass die Filterung direkt am Server erfolgt und somit automatisch für alle Clients unabhängig vom Betriebssystem greift. Am Thunderbird-Desktop werden sie ebenso abgebildet wie am Android-Mobiltelefon und am Tablet-PC – wenn man so will, ist Sieve quasi die "IMAP-Art", Mails zu filtern.

Aus Administratorensicht positiv ist, dass Sieve direkt als Plugin im Mail Delivery Agent (MDA) eingebaut und dadurch sehr performant ist. Procmail hingegen wird in der Regel als eigenständiges Skript aufgerufen und verursacht entsprechend höhere Last. Zudem ist die Sieve-Syntax wesentlich einfacher als die in die Jahre gekommene, eher kryptisch anmutende Procmail-Sprache. Dabei steht Sieve für eine Vielzahl von IMAP-Servern zur Verfügung und beherrscht nicht nur das Verschieben von Nachrichten in Unterordner, sondern unter anderem auch

  • das Weiterleiten von Nachrichten an Dritte
  • das Löschen von Nachrichten, die als Spam oder Virus gekennzeichnet sind
  • das Versenden von Bounces (welches allerdings mit Vorsicht zu genießen ist)
  • das Setzen von Labels und IMAP-Markierungen
  • das Versenden von Urlaubs- beziehungsweise Abwesenheitsbenachrichtigungen

Sowohl Aktionen als auch Abfragekriterien lassen sich beliebig kombinieren. So ist das Kennzeichnen, Weiterleiten und automatische Beantworten einer bestimmten E-Mail in Abhängigkeit von Absender und Betreff mit nur wenigen Zeilen möglich. Alle Elemente werden dabei in einer einfach zu verstehenden Syntax abgebildet. Aus Sicherheitsgründen unterstützt Sieve jedoch im Gegensatz zu Procmail nicht die Ausführung externer Skripte. Dafür sieht es jedoch Plugins vor, die einzelne Funktionen ergänzen.

Die richtige Stelle in Postfix

Unser Testsystem besteht aus der aktuellen LTS-Version von Ubuntu 10.04 (Lucid Lynx) und dem darin enthaltenen Postfix 2.7 samt Dovecot 1.2. Im Folgenden gehen wir davon aus, dass beide Komponenten bereits installiert und einsatzfähig sind, und die einzelnen Benutzerkonten aus der Datei »/etc/passwd« kommen – LDAP oder MySQL sind also nicht im Spiel. Zur Installation von Postfix genügt dafür die Kommandozeile »apt-get install postfix« , Dovecot findet mit »apt-get install dovecot-imapd« den Weg aufs System.

Verständnisprobleme bereitet zunächst die Frage, an welcher Stelle Sieve zum Zug kommt. Da es eingehende Nachrichten filtert, liegt der Gedanke nahe, dass es eine Komponente des SMTP-Servers ist, in diesem Fall also Postfix – doch weit gefehlt. Zwar wird Sieve durch Postfix aufgerufen, die Implementation ist aber Bestandteil des IMAP-Servers.

Das Prinzip dahinter ist einfach: Postfix nimmt wie gewohnt die E-Mails als SMTP-Server entgegen und arbeitet seine Konfiguration komplett ab: Adressauflösung, Virenscanner, Spamfilter, Greylisting und vieles mehr. Erst wenn Postfix die Mail akzeptiert hat und nach Durchlauf sämtlicher eigener Filter bereit ist, sie ins Postfach des Nutzers zu legen, kommt der sogenannte MDA, der Mail Delivery Agent, ins Spiel, der die Nachricht dann auch zustellt. Diese Aufgabe übernimmt eine Sieve-fähige Dovecot-Komponente [1] .

Dieser Ablauf hat zwei entscheidende Vorteile: Zum einen wird der Filter nur mit Mails belastet, die nicht von vornherein zurückgewiesen werden. Anders ausgedrückt: Nachrichten, die direkt beim Einliefern als Spam zurückgewiesen werden, bekommt Sieve gar nicht zu Gesicht, was die Ressourcen schont. Zum anderen kann Sieve somit auch auf Kopfzeilen zugreifen, die erst durch die Postfix-Konfiguration hinzugefügt wurden, beispielsweise die Einträge von Spamassassin, ClamAV oder dem Policy-Daemon [2] .

Konfiguriert wird der MDA über die Option »mailbox_command« in der Datei »/etc/postfix/main.cf« . Auf dem Testsystem sah die korrekte Anbindung von Sieve an Postfix so aus wie in Listing 1 . Nach der Änderung lädt Postfix die Konfiguration mit »postfix reload« neu.

Listing 1

Postfix-Konfiguration

 

Ähnliche Artikel

comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023