Mailserver mit Spamfilter

Seite 3: Desinfizieren

Inhaltsverzeichnis

Wenn fetchmail eine E-Mail abgeholt hat, landet sie anschließend via SMTP im lokalen MTA (Postfix). Dessen Konfiguration sorgt dafür, dass die Mail eine Schleife durch den E-Mail-Virenscanner Amavis nimmt, bevor Postfix sie an den Empfänger ausliefert. Amavis ruft dazu die per Yast konfigurierten Virenscanner auf, in unserem Beispiel den bei OpenSuse mitgelieferten auch für kommerzielle Zwecke frei erhältlichen Clamav.

Findet Amavis einen Virus in einer E-Mail, schiebt er die gesamte E-Mail in Quarantäne. Wo genau er sie im Dateisystem ablegt, darüber informiert er den User in einer automatisch erzeugten Mail. Darin steht auch, welcher Virus gefunden wurde und von wem die verseuchte Mail stammt; die generierte Mail enthält außerdem den gesamten Text der Ursprungsmail – ohne den Virus natürlich.

Um die Virus-Signaturen von Clamav stets auf dem neuesten Stand zu halten, muss im Hintergrund der freshclam-Dienst laufen. In der Standardeinstellung aktualisiert freshclam die Signaturen alle zwei Stunden. Die Anzahl der Aktualisierungsversuche pro Tag lässt sich in der Datei /etc/freshclam.conf über den Parameter "Checks" einstellen. Ebenfalls dort zu konfigurieren: die Proxy-Einstellungen über die Parameter HTTPProxyServer, HTTPProxyPort, HTTPProxyUsername und HTTPProxyPassword, falls der Homeserver über einen Proxy ins Web geht. Den freshclam-Dienst aktiviert man am einfachsten im Runlevel-Editor von Yast. Dort sollte man prüfen, ob die anderen mit dem Mail-Server zusammenhängenden Dienste laufen und beim Systemstart automatisch hochfahren: amavis, cyrus, postfix, saslauthd.

So sollte es aussehen: Die Firewall ist aktiviert, der SSH-Zugriff freigeschaltet, das Netzwerk korrekt eingerichtet.

Nur Mails, die der Scanner als "clean", das heißt virenfrei, markiert hat, leitet Postfix an den IMAP-Server weiter, in unserem Beispiel ist das der vom OpenSuse-Mirror nachinstallierte Cyrus-IMAP-Daemon der Carnegie Mellon University [9].

Damit eine Mail bei einem lokalen User landen kann, muss man ihn erst einmal einrichten. Das geht am einfachsten per Yast unter dem Menüpunkt "Sicherheit und Benutzer". Ein erster Benutzer existiert ja bereits, im Beispiel "ola".

Um einen Benutzer zu authentifizieren, bedient sich der IMAP-Daemon eines SASL (Simple Authentication and Security Layer) genannten Frameworks [10]. In der OpenSuse-Standardkonfiguration greift der zuständige Hintergrundprozess saslauthd auf das systemeigene PAM (Pluggable Authentication Module) zu. Damit lässt sich das Passwort zur Anmeldung am Login-Prompt zur Authentifizierung von IMAP-Nutzern verwenden.

Das Systemkonto alleine reicht aber nicht – der Benutzer benötigt auch ein Postfach, in das der IMAP-Server die Mails legen kann. Das lässt sich mit Hilfe des Cyrus-IMAP-Administrationswerkzeugs cyradm einrichten. Wer dieses Werkzeug zu administrativen Zwecken nutzen darf, legt der Eintrag "admins" in der Datei /etc/imapd.conf fest. Vorgegeben ist hier "cyrus". Dieser Benutzer hat allerdings noch kein Login-Passwort. Daher muss man ihm erst einmal mit

passwd cyrus

eines zuweisen. Danach lässt sich das Konfigurationswerkzeug als beliebiger Nutzer mit

cyradm -u cyrus localhost

starten. Als Passwort ist das eben für cyrus vergebene zu verwenden. Auf Eingabe eines Fragezeichens zeigt cyradm die Liste der Kommandos, die es versteht. Zum Einrichten eines Postfachs verwendet man createmailbox. Die Kurzform

cm user.ola

legt eine Mailbox für den User "ola" an. Diese Mailbox erscheint in gängigen Mail-Clients typischerweise als "INBOX" oder "Posteingang". Was "ola" mit dem Postfach anstellen darf, listet lam user.ola auf (List ACL Mailbox, Anzeigen der Berechtigungen für ein Postfach). Es erscheint eine Zeile mit dem Benutzernamen, gefolgt von einer Zeichenkette wie "lrswipc-da", wobei jeder Buchstabe für eine bestimmte Berechtigung steht, etwa "l" für "lookup", "r"für "read" oder "p" für "post" (siehe Tabelle "Mailbox-Berechtigungen").

Mailbox-BerechtigungenKürzelDer Nutzer darf …lookupMails in diesem Ordner auflistenreadMails in diesem Ordner lesenseenMails in diesem Ordner als gelesen ("read") oder neu ("recent") markierenwritein diesem Ordner Flags wie "beantwortet" ("answered") oder "Entwurf" ("draft") änderninsertMails in diesen Ordner verschieben oder kopierenpostMails beispielsweise über die Zieladresse "ola+privat@example.com" direkt an den Ordner "user.ola.privat" zustellencreatein diesem Ordner Unterordner anlegen und löschendeleteMails in diesem Ordner (und den Ordner selbst) löschenadministerBenutzerrechte für diesen Ordner vergeben

Das Kommando sam (Set ACL Mailbox) weist einem Nutzer Berechtigungen für einen Mail-Ordner zu. Mit sam user.ola as lrs gestattet der Anwender ola beispielsweise seinem Kollegen as, Mails in seiner Inbox zu lesen.

Neben den benutzereigenen Mailboxen lassen sich vom Benutzer unabhängige einrichten. Das ist beispielsweise praktisch, wenn man einer Gruppe von Anwendern Mailing-Listen oder News-Verteiler zur Verfügung stellen möchte, ohne dass jeder einzelne Benutzer die Mailing-Listen separat abonnieren muss. Dazu bietet sich etwa eine Mailbox "pub.Mailinglists" (englisch public, öffentlich) an, die ein in cyradm eingegebenes cm pub.Mailingslists anlegt.