TU BRAUNSCHWEIG
| Carl-Friedrich-Gauß-Fakultät | Informatik
Informatikzentrum

Maildienste am IBR

AutorFrank Steinberg
SchlüsselworteMail, Filter, Mailfilter, Virus, Viren, Squirrelmail, SMTP, IMAP, POP, Spam, ClamAV, Sieve, E-Mail

Grundsätzliches

Grundsätzlich hat jeder Benutzer am IBR auch einen EMail-Account am IBR. Die EMail-Adresse setzt sich stets aus dem Account-Namen und dem Domainnamen des IBR zusammen, z.B. steinb@ibr.cs.tu-bs.de. (In einzelnen Fällen erhalten ausschließlich Mitarbeiter auch Aliase.) Jeder Benutzer sollte seine EMail regelmäßig lesen, so dass er für Betreuer bzw. Kollegen zuverlässig erreichbar ist. Statt des regelmäßgen Abrufens der Mail aus dem IBR kann ein Benutzer sich auch eine Weiterleitung seiner EMail selbst einrichten, s.u.

Mail senden

Zu sendende (Outgoing) EMail kann per SMTP an den Mailserver des IBR übergeben werden. Dieser ist unter dem Namen mail.ibr.cs.tu-bs.de per IPv4 und IPv6 erreichbar. Wenn dieser SMTP-Server von einem Client außerhalb des IBR-Netzes verwendet wird (und EMails an Nicht-IBR-Empfänger geschickt werden sollen), ist zum Schutz vor Spam-Verteilung (Open Relaying) eine Authentisierung (SMTP-AUTH mit Passwort oder Kerberos) mit dem IBR Account-Namen erforderlich. Ferner ist etwa für Clients hinter fremden Firewalls ein "Submission" Serverport unter 587 sowie ein SMTPS Serverport unter 465 erreichbar.

Mail empfangen

Empfangene EMail wird auf dem Mailserver des IBR zunächst durch verschiedene Software-Komponenten (ClamAV, SpamAssassin) klassifiziert, um sie beispielsweise als vermeintliche Spam- oder Viren-Nachrichten zu markieren und anschließend im Falle von IBR-Empfängern durch die Dovecot Software verwaltet. Bestandteil dieses Softwaresystems ist die Möglichkeit einer Filterung, Eingruppierung und Weiterleitung, die der Benutzer selbst konfigurieren kann. Der Abruf der EMail durch den Benutzer kann durch POP3 über SSL (Port 995) oder IMAP über SSL (Port 993) vom Server mail.ibr.cs.tu-bs.de per IPv4 oder IPv6 erfolgen. Die Authentisierung erfolgt per Passwort oder Kerberos. Unverschlüsselte Varianten von POP3 und IMAP sind aus Sicherheitsgründen in der Regel nicht möglich.

Weiterleiten

Wenn ein Benutzer seine IBR-EMail nicht regelmäßig vom Server des IBR abrufen möchte, kann er sie auch an eine andere Adresse weiterleiten lassen. Dies geschieht durch eine spezielle Anweisung im Sieve Script, s.u.

Eine $HOME/.forward Datei des Benutzers wird nicht berücksichtigt!

Ehemalige Mitarbeiter, die nach Schließung Ihres Accounts eine Weiterleitung ihrer Mails oder eine Ablehnung mit bestimmten Error-Codes (etwa mit Hinweis auf eine neuere Adresse) wünschen, können sich hierzu bei Frank Steinberg melden.

Filterung

EMails werden am IBR grundsätzlich nicht zentral gefiltert, sondern lediglich als Hilfe zur eigenen Filterung markiert.

Die Filterung kann durch Hochladen bzw. Erstellen eines Sieve-Scriptes auf dem Mailserver konfiguriert werden.

Eine $HOME/.sieve Datei und eine procmail-Konfiguration des Benutzers werden nicht berücksichtigt!

Das grundlegende Prinzip eines solchen Scriptes ist es, die in Regeln enthaltenen Bedingungen auszuwerten und bei positivem Ergebnis eine dazugehörige Aktion auszuführen. Regeln sind meist Stringmuster für bestimmte Header-Zeilen. Typische Aktionen sind das Verwerfen von Mails im Falle von Spam, das Einsortieren in bestimmte IMAP-Folder des Benutzers oder das Weiterleiten an eine andere (externe) EMail-Adresse. Durch die o.g. Markierung auf dem IBR Mailserver werden folgende Header in Mails ergänzt:

KopffeldBeispiel
X-Amavis-Alert:X-Amavis-Alert: INFECTED ...
X-Spam-Level:X-Spam-Level: *******
X-Spam-Status:X-Spam-Status: Yes, score=7.2 ...

Selbstverständlich können auch andere Header in Sieve-Regeln ausgewertet werden. Es empfiehlt sich, Sieve-Scripte manuell zu edieren und anschließend auf den Server hochzuladen, etwa mit sieve-connect(1) (sieve-connect -m plain -s mail.ibr.cs.tu-bs.de). Es gibt auch Mailreader, die eine Sieve-Konfiguration (in mehr oder weniger eingeschränkter Weise) unterstützen. Das Roundcube-Webmail-Interface (s.u.) unterstützt ebenfalls Sieve.

Es folgen typische Beispiele für Sieve-Regeln:

# Die folgenden Zeilen deklarieren benutzte Kommandos; falls eine
# Erweiterungen im Skript nicht vorkommt, sollte die entsprechende Zeile
# auskommentiert werden.
require "envelope"; # envelope-Test
require "fileinto"; # fileinto-Kommando
require "reject";   # reject-Kommando

# Alle Mails verwerfen, die einen erkannten Virus enthalten.
if header :contains "X-Amavis-Alert" "INFECTED" {
        discard;
        stop;
}

# Mail, die wahrscheinlich Spam ist, in einen eigenes Postfach ablegen.
# Dieses IMAP-Postfach muss zuvor erzeugt worden sein.
if header :matches "X-Spam-Status" "Yes*" {
    fileinto "INBOX.spam";
    stop;
}

# Mail von einem unerwuenschten Absender ablehnen; dies erzeugt eine
# Meldung an den Absender, die den angegebenen Grund enthaelt.
if address :all :is "From" "offers@example.com" {
    reject "Not interested.";
    stop;
}

# Mail mit einem bestimmten String in der Subject-Zeile an einen anderen
# Account weiterleiten.
if header :contains "Subject" "[ADV]" {
    redirect "advert@example.com";
    stop;
}
    

Automatische Löschung

Der Umfang und die Dauer der Aufbewahrung von EMails ist selbstverständlich jedem User selbst überlassen. Es gibt jedoch eine Ausnahme: In Foldern mit den Namen spam, Spam, SPAM, virus, Virus, VIRUS, trash, Trash, TRASH, Junk werden täglich sämtliche Mails gelöscht, die älter als 30 Tage sind.

Quota

Das Volumen der persönlichen Mailfolder auf dem Mailserver ist durch ein Limit beschränkt. Wird dieses Limit erreicht, so werden Mails an den User abgelehnt. Das Erreichen des Limits ist also im eigenen Interesse unbedingt zu vermeiden. Die Limits werden je nach Benutzergruppe oder persönlichem Bedarf vergeben und können auf Wunsch erhöht werden. Viele IMAP-Mailreader zeigen das Limit und die momentane Speicherbelegung an und warnen auch, wenn sich die Belegung dem Limit nähert.

Webmail

Wenn einem einmal nicht der gewohnte Mailreader zur Verfügung steht, kann auch das webbasierte Roundcube benutzt werden.

Zur Zeit (Stand 2016-05-27) läuft unter https://mail.ibr.cs.tu-bs.de/roundcube-new/ ein neuer Roundcube 1.2.x mit Enigma-Plugin. Wer auf den IBR Linux Hosts bereits GnuPG einsetzt, hat die Möglichkeit, Keyrings aus $HOME in die Roundcube-Enigma-Konfiguration zu synchronisieren (bitte selbst genau überlegen, ob Ihr das wirklich wollt und ob Ihr daran glaubt, dass der Webserver auf unserem Mailserver nicht kompromitiert wird!). Dazu können folgende zwei Zeilen in $HOME/.gnupg/enigma-sync.conf zur Synchronisierung der entsprechenden Dateien eingetragen werden (andere Dateinnamen oder Pfade sind nicht möglich):

pubring.gpg
secring.gpg
    

Ein manuelles Ändern von Keys im Roundcube-Enigma-Interface macht dann natürlich wenig Sinn, da Änderungen bei der nächsten Veränderung der Keyrings im $HOME überschrieben werden.

Mailinglisten - Mailman

Für Projekte oder andere Belange können am IBR Mailinglisten eingerichtet werden. Mailinglisten sind mehr als einfache Mailverteiler (Aliases). Jede Mailingliste hat einen "Owner", der die Mitglieder einer Liste verwaltet und das Verhalten der Liste bei Anmeldewünschen oder neuen Beiträgen konfiguriert. Mailman bietet hierzu sehr viele Möglichkeiten. Es ist Aufgabe jedes List-Owners sich hiermit vertraut zu machen. Der Owner ist für jede Liste der erste Ansprechpartner, wenn es Fragen oder Probleme zu einer Liste gibt.

Mail-Aliases und Gruppen-Adressen

Für sämtliche im LDAP verwaltete Usergruppen gibt es implizit auch einen gleichnamigen Mail-Alias, beispielsweise mitarb@ibr.cs.tu-bs.de. Weitere Aliase können auf Wunsch angelegt werden. Im Einzelfall ist zu überlegen, ob ein einfacher Alias, eine Gruppe oder eine Mailingliste am besten geeignet ist.

Maßnahmen zur Spam- und Virenabwehr

Der Mailserver setzt Software zur Erkennung und Abwehr von Spam und Viren ein. Dabei werden Viren und Mails, deren Spam-Wahrscheinlichkeit sehr hoch liegt bereits während der SMTP-Kommunikation mit dem Server abgeleht. Ferner werden DNS-basierte Blocklisten verwendet, so dass bekannte Spam-Hosts und auch Hosts aus Dialup-Netzen ohne Authentisierung blockiert werden. Diese Maßnahmen führen zu einer erheblichen Reduzierung der Mails, die überhaupt vom Server gespeichert und verarbeitet werden müssen.

Einigen Mitarbeitern kann auf Wunsch die Möglichkeit eingeräumt werden, die zentrale Spam-Erkennung mit Spam und Ham anzulernen, indem entsprechende Mails manuell in die persönlichen IMAP Folder INBOX.learn-spam und INBOX.learn-ham kopiert werden. Diese Folder werden regelmäßig zum Anlernen durchsucht und nach erfolgter Übernahme in die SpamAssassin-Datenbank geleert. WICHTIG: Bitte nur manuell Spam anlernen, und auch nur in eindeutigen Fällen von unerwünschten Massenmails. Also beispielsweise nicht Werbemails der Braunschweiger Zeitung o.ä., nur weil sie einen persönlich belästigen.

Automatische Verschlüsselung eingehender Mails

Der hier beschriebene Mechanismus ist experimentell. Er beruht auf einem selbst entwickelten Filter, der nur wenig getestet wurde. Bisher unbekannte Fehler in diesem Code könnten zu Mailverlusten führen.

Es ist möglich, eintreffende unverschlüsselte Mails im Sieve-Script automatisch per GnuPG zu verschlüsseln, so dass die Nachrichten nicht in unverschlüsselter Form auf dem Mailserver liegen und nur mit dem persönlichen privaten PGP-Schlüssel zu entschlüsseln sind. Man sollte bedenken, wie wichtig es dadurch wird, den privaten Schlüssel nicht zu verlieren und auf allen Clients nutzen zu können. Außerdem ist es ein Nachteil, dass das Server-seitige Suchen per IMAP im Falle verschlüsselter Mails nicht funktionieren kann.

Voraussetzung für die Verwendungist, dass auf den IBR-Linux-Hosts GnuPG so konfiguriert ist, dass der eigene Public Key an der üblichen Stelle in $HOME/.gnupg zu finden ist. Von hier werden täglich Public Keys auf den Mailserver übernommen.

Das folgende Beispiel verdeutlicht die Verwendung des Verschlüsselungsfilters. "ibrencrypter" ist der feststehende Name des Filters. Der anschließende Parameter bestimmt den zu verwenden Public Key.

require ["fileinto", "vnd.dovecot.filter"];

if header :matches "Subject" "*verschluessel mich*" {
        filter "ibrencryptor" "username@ibr.cs.tu-bs.de";
        fileinto "INBOX.Encrypted";
        stop;
}
    

aktualisiert am 12.07.2016, 14:38 von Frank Steinberg
printemailtop