Datalog History

,

Auf unseren Managed Mail-Servern und den Full-Managed-Servern kannst Du in ISPConfig vorgenommene Änderungen nachvollziehen und auch wieder Rückgängig machen.

Zurückgeschrieben werden dabei aber nur die Einstellungen und nicht etwa die Inhalte von Webseiten o.ä.. Wenn Du zum Beispiel eine Webseite gelöscht hast, dann kannst Du nur das „Grundgerüst“ wieder herstellen – die Inhalte der Seite müssen dann aus Backups zurückgespielt werden.

Datalog History anzeigen

Du findest den Menüpunkt „Datalog History anzeigen“ unter „Überwachung“ bzw. „Monitor“.

Der Verlauf sieht dann in etwa so aus:

Wenn Du einen Eintrag auswählst, dann bekommst Du die entsprechenden Aktivitäten angezeigt und hast dann die Möglichkeit, die Änderung rückgängig zu machen:



Erweiterter Spam-Check für Postfächer

,

Auf unseren Managed Mail-Servern und den Full-Managed-Servern kannst Du für den Spam-Check nicht nur Greylistening pro Postfach ein- und ausschalten, sondern zusätzlich auch für RBL, SPF und Spoofing.

SPF und RBL sind bei neuen Postfächern automatisch aktiviert, Greylistening und Spoofing sind als Standard abgeschaltet.

Was bewirken diese Spam-Checks im Einzelnen?

SPF

Der Inhaber einer Domain kann vorgeben, welche Server Mails verschicken dürfen. Wird die Zustellung über einen anderen Server versucht, kann die Mail direkt abgewiesen werden. Das passiert insbesondere bei Spam-Mails, wenn der Absender in einer Mail gefälscht ist. Es gibt aber leider auch immer mal wieder Postmaster, die diese Vorgaben falsch definieren oder schlicht vergessen, einen neuen Server mit aufzunehmen.

Es kann auch zu Problemen mit der SPF-Überprüfung führen, wenn Mails vorher über ein externes Mail-Gateway geschickt werden.

RBL

Unsere Mail-Server prüfen eingehende Mails über eine oder mehrere Listen, auf denen Server aufgeführt sind, die in der letzten Zeit Spam verschickt haben. Verbindungen von „Spam-Schleudern“ werden direkt abgelehnt.

Greylistening

Bei der ersten Verbindung bekommt der einliefernde Mailserver den Hinweis, dass er es bitte in paar Minuten erneut probieren möge. Dies kann Spam reduzieren, ist aber bei Postfächern die für die direkte Kommunikation mit Kunden verwendet werden nicht immer optimal. Es kann sonst durchaus passieren, dass der Kunde eine Mail schickt und man ihm dann erst kurz erklären muss, dass der Empfang erst noch bis zu 5 Minuten dauern kann.

Hat ein Mail-Server beim dem zweiten Versuch die übrigen Checks überstanden, steht dessen IP aber auf einer Whiteliste und später verschickte Mails kommen ohne Greylistening an.

Spoofing

E-Mail-Spoofing bezeichnet die Fälschung des E-Mail-Headers, so dass die Nachricht den Eindruck vermittelt, sie hätte einen anderen Ursprung oder eine andere Quelle. Die Verteiler von Spam benutzen Spoofing häufig, um die Empfänger der E-Mail zum Öffnen der Nachricht zu bringen, so dass diese auf die darin befindlichen Inhalte reagieren.

Abschalten einzelner Checks

Melde Dich auf Deinem Server in ISPConfig an und wähle Postfach aus, für das Du den SPF-, Spoofing- oder RBL-Check anpassen möchtest.

 

Server überwachen

,

Du hast jederzeit vollen Zugriff auf das Monitoring Deines Managed Servers und kannst die Daten sowohl direkt im Browser, über Dein Smartphone oder ein Add-On von Firefox / Chrome ansehen.

Je nach Monitoring-Wert gibt es die beiden Grenzwerte Warn und Crit. Wird deiner der Werte überschritten, wechselt die Anzeige auf Orange (Warn) oder Rot (Crit). Die Grenzwerte kannst Du direkt in ISPConfig auf Deinem Managed Server anpassen.

Wenn sich der Zustand ändert, bekommst Du nach einer gewissen Zeit eine Mail zugeschickt. Die Benachrichtigung bekommst Du, wenn sich der Status auf OK, Warn oder Crit ändert.

Inhalt

Grenzwerte einstellen

nach oben

Melde Dich in ISPConfig auf Deinem Managed Server an und öffne oben rechts die „Einstellungen“. Unter Managed Server auf der linken Seite kannst Du dann das Monitoring einstellen.

Um die Werte anzupassen, wählst Du einen der Checks aus und kannst dann die Limits definieren. Für die Mailqueue sieht das z.B. so aus:

Wenn auf Deinem Server zwischen 20 und 29 Mails noch nicht verschickt wurden, wechselt der Status auf Warning. Sind 30 oder mehr Mails noch nicht verschickt, wechselt der Status auf Critical.

Browser

nach oben

Du musst dazu nur die URL https://monitor.schaal-it.net für das Monitoring in Deinem Browser aufrufen und Dich mit Deinen Zugangsdaten anmelden.

Smartphone APPs

aNag für Android

nach oben

Installiere aNag aus dem Playstore und starte die App.

Den Namen kannst Du frei wählen – dieser dient nur dazu, verschiedene Instanzen zu unterscheiden.

Die übrigen Daten sind:

Instance type: Icinga/Nagios (HTML)
URL: https://monitor.schaal-it.net/cgi-bin/
Username: Dein Username 
Password: Dein Passwort

easyNag für iPhone & iPad

nach oben

easyNag kannst Du hier herunterladen und installieren.

Bei den einzelnen Werten kannst Du Dich an den Einstellungen für Android orientieren.

Add-On für Firefox und Chrome

Für Firefox kannst (je nach Firefox-Version) das veraltete Add-On Nagios Checker oder die aktuelle Version von imoin nutzen.

imoin

nach oben

Installiere das Add-On im Firefox über Add-Ons oder in Chrome über diesen Link und richte den Zugang ein:

Version: Nagios Core 4.0.7+
URL: https://monitor.schaal-it.net
Username: Dein Username
Password: Dein Passwort

Nagios Checker

nach oben

Das Add-On ist veraltet und funktioniert mit aktuellen Version (zumindest im Moment) nicht. Nach der Installation musst Du das Add-On nur noch kurz konfigurieren:

Den Namen kannst Du frei wählen – dieser dient nur dazu, verschiedene Instanzen zu unterscheiden.

 

Im Tab „Nagios Webinterface“ trägst Du die Adresse und Deine Zugangsdaten ein:

Nagios Webinterface URL: https://monitor.schaal-it.net
Server type: Standalone NagiosBenutzername: Dein Username
Passwort: Dein Passwort

Abschließend trägst Du im Tab „Status-Skript URL“ eine manuelle URL ein.

https://monitor.schaal-it.net/cgi-bin/status.cgi

 

 

PHP-Versionen (automatisch) aktualisieren

,

Auf unseren Managed-Servern kannst Du dir die Versionen der zusätzlichen PHP-Version direkt in ISPConfig anzeigen lassen. Wenn eine neue Version verfügbar ist, kannst Du die PHP Version aktualisieren oder direkt die  Funktion „Auto-Update“ nutzen. Mittels „Auto-Update“ wird eine PHP-Version aktualisiert, sobald eine neuere Version veröffentlicht wurde.

zusätzliche PHP-Versionen

Zusätzliche PHP-Versionen können neben der PHP-Version des Betriebssystems installiert und dann für einzelne Webseiten genutzt werden. Auf unseren Managed-Servern stehen die PHP-Versionen 5.6, 7.0, 7.1, 7.2 und 7.3 zur Verfügung. Bei allen Versionen ist immer der ionCube-Loader mit installiert.

Welche Versionen zusätzlich installiert sind, hängt immer vom Betriebssystem des jeweiligen Servers ab. Bei Debian Jessie ist PHP 5.6 keine zusätzliche Version, während bei Ubuntu 18 PHP 7.2 keine zusätzliche Version ist. Welche Versionen Du auf Deinem Server für Aktualisierungen angezeigt bekommst, hängt also vom jeweiligen Server ab – die Screenshots können bei Dir anders aussehen.

zusätzliche PHP-Versionen anzeigen

Melde Dich auf Deinem Server in ISPConfig an und klicke oben rechts auf „Einstellungen“ und dann unten links auf „PHP Versionen verwalten“. Du bekommst dann die installierten Versionen angezeigt:

 

 

Du kannst auf einen Blick sehen, welche Versionen nicht aktualisiert sind oder ob gerade eine Installation aktualsiert wird.

zusätzliche PHP-Versionen aktualisieren

Wähle zum Aktualisieren eine Version aus der Liste aus. Du bekommst dann weitere Informationen angezeigt:

Wenn ein Update verfügbar ist, bekommst Du den Button „Aktualisieren“ angezeigt und kannst darüber sofort eine Aktualisierung starten. Du hast auch die Möglichkeit, eine Version automatisch aktuell zu halten. Dazu musst Du nur den Haken bei „Auto-Update“ setzen und die Einstellungen speichern.

DS-GVO Plugin für ISPConfig

,

Mit unserem ISPConfig DS-GVO Plugin haben wir eine Erweiterung entwickelt, die es Dir und Deinen Kunden erlaubt, online Verträge zur Auftragsdatenverarbeitung abzuschließen.

Als Admin hast Du zusätzlich die Möglichkeit, direkt Vereinbarungen oder andere Verträge zu generieren und dies dann dem Kunden z.B. als Email schicken.

Du kannst auch alle zu einem Kunden in ISPConfig gespeicherten Daten exportieren, um so eine Auskunft zu den gespeicherten Daten generieren. Selbstverständlich kann das aber auch auch jeder Kunde selbst machen.

 

 

Kostenlos Testen

Das Plugin kannst Du hier herunterladen und für 14 Tage kostenlos testen. Als Lizenz verwendest Du einfach „TRIAL“.

Wenn Du das DS-GVO Plugin danach weiter nutzen möchtest, brauchst Du dann eine Lizenz.

Installation:

Lade das Plugin auf Deinen Serverm, entpacke das Archiv und wechsel in das Verzeichnis ispconfig-gdpr.

Wenn Du den ionCube-Loade noch nicht installiert hast, kannst Du das entweder über das Script install_ioncube.php oder gleich manuell für alle PHP-Versionen und Modi machen.

php -q install_ioncube.php

Wir haben das Script bis jetzt nur unter Debian 7-9 und Ubuntu 14-18 getestet. Wenn Du zB CentOS einsetzt, musst Du den ionCube-Loader evtl. manuell installieren

Für die manuelle Installation nimmst Du am besten https://www.howtoforge.com/tutorial/how-to-install-ioncube-loader/

Wenn der ionCube-Loader installiert ist, startest Du die Installation:

php -q install.php

Danach musst Du Dich nur noch als Admin in ISPConfig anmelden und für den Benutzer Admin das Modul GDPR aktivieren (unter System / CP Benutzer / Benutzer bearbeiten). Dann einmal ab- und wieder anmelden.

Update:

Starte einfach

/usr/local/ispconfig/server/scripts/gdpr/gdpr_update.sh

Du kannst aber auch die aktuelle Version herunterladen, das Archiv entpacken, in das Verzeichnis ispconfig-gdpr wechseln und dann php -q update.php aufrufen.

Funktionsumfang DS-GVO Plugin:

  • Automatische Generierung von Auftragsverarbeitungs- (AV)-Verträgen durch einen Kunden
  • Automatisches generieren von Auftragsverarbeitungs- (AV)-Verträgen durch den Admin für einen Kunden
  • Erstellte Auftragsverarbeitungs- (AV)-Verträge werden direkt als PDF gespeichert
  • Möglichkeit für den Kunden, eine bestehende Vereinbarung zu widerrufen
  • Upload-Option für den Admin, um weitere Verträge / Daten für einen Kunden bereitzustellen
  • Unterstützung mehrerer Firmen
  • Individuelle Templates zum Generieren der Vereinbarungen
  • Individuelle Templates für den Versand von Emails
  • Möglichkeit, Vereinbarungen und sonstige Daten auf der Festplatte oder direkt in der Datenbank zu speichern
  • Exportfunktion für die zu einem Kunden gespeicherten Daten (PDF oder XML)
  • Das DS-GVO Plugin ist in ISPConfig integriert und kann über den ISPConfig Admin-Login aufgerufen werden
  • Standard PDF-Vorlagen für Firmen

Lizenz

Das ISPConfig DS-GVO Plugin ist eine Erweiterung zu ISPConfig und unterliegt nicht der BSD-Lizenz.

Die Kosten für eine Lizenz belaufen sich auf 80,00 EUR (95,20 EUR incl. 19% Mehrwertsteuer) und enthalten Updates für ein Jahr ab Aktivierung der Lizenz.

Kunden die bereits eine Lizenz haben und nach einem Jahr weiteres Updates beziehen wollen, können die „Update-Zeit“ für 40,00 (47,60 EUR incl. 19% Mehrwertsteuer) um jeweils ein weiteres Jahr verlängern.

Handbuch

Das Handbuch kannst Du hier kostenlos herunterladen.

ISPConfig DS-GVO

Um ISPConfig DS-GVO zu bekommen, sind wir der Auffassung, dass die Standardspeicherzeit der Logfiles für Webseiten nach unten korrigiert werden muss und die Statistiken abgeschaltet werden sollten. ISPConfig an sich hat im übrigen keine Probleme mit der DS-GVO, da Du Kunden jederzeit löschen kannst und dann auch alle damit gespeicherten Daten von Deinem Server verschwunden sind.

Mit dem nächsten ISPConfig Release 3.1.12 ist zumindest die Speicherdauer übrigens Standard für neue Webseiten. Eine Änderung für vorhandere Webseiten ist aber nicht sinnvoll, da die Software auch außerhalb der EU eingesetzt wird.

Problem Statistiken

Die mit ISPConfig nutzbaren Programme zur Erstellung von Webserverstatistiken AWStats und Webalizer geben die vollständigen IP-Adressen der Webseitenbesucher mit aus, wenn nicht entsprechende Anpassungen vorgenommen wurden.

Wir halte das für mit der DS-GVO nicht vereinbar, um haben daher auf allen unseren Web-Servern (eigene und Full-Managed) die Statistiken deaktiviert. Um das nicht händisch für jede Seite machen zu müssen, findest Du am Ende einen kleinen Bash-Code, den Du einfach als root auf Deinem Server ausführen kannst. Wenn Du kein –defaults-file hast, kannst Du stattdessen auch -p nutzen und musst dann Dein root password für MySQL eingeben. Natürlich kannst Du die Befehle auch PHPMyAdmin eintragen.

Problem Logfiles

Die Grundeinstellung für Logfiles jeder Webseite liegt bei 30 Tagen. Wir sind der Meinung, das ein wesentlich kleinerer Wert ausreichend ist. Hier nehmen wir beispielhaft 10 Tage. Man sollte sicher allerdings schon fragen, ob man wirklich die Daten so lange speichern muss. Die komplette IP braucht man sicherlich in den Logfiles, um den Server absichern oder Probleme feststellen zu können. Wer aber einen Angriff nach 10 Tagen noch nicht bemerkt hat, dem wird auch einen längere Speicherzeit nicht viel helfen…

Lösung

Wichtig ist nur, dass Du die Änderungen auf allen Servern durchführst, wenn Du ein Multiserver-Setup hast.

Und so geht das ganze mit einem einzigen SQL-Aufruf:

mysql --defaults-file=/etc/mysql/debian.cnf --database=dbispconfig -e "
ALTER TABLE web_domain CHANGE stats_type stats_type varchar(255) DEFAULT ''; 
ALTER TABLE web_domain CHANGE log_retention log_retention INT(11) NOT NULL DEFAULT '10'; 
UPDATE web_domain SET log_retention = '10' WHERE log_retention > 10;
UPDATE web_domain SET stats_type = '';
"

 

 

ISPConfig Automail

Mit unserem Plugin ISPConfig Automail kannst Du Email-Clients wie Thunderbird oder Outlook automatisch konfigurieren.

Ob Du einen oder mehrere Mailserver für die Domains verwendest, macht keinen Unterschied. Du definierst nur für jeden Mailserver die passenden Daten wie Hostname und Port; alles andere erfolgt durch eine kleine Webseite, die einen Autoconfig-Dienst (Thunderbird) oder Autodiscover-Dienst (Outlook) zur Verfügung stellt.

Autoconfig und Autodiscover fordern über unterschiedliche Adressen XML-Files an, mit denen dann der Email-Client nach Deinen Vorgaben konfiguriert wird.

Um den ISPConfig Automail nutzen zu können, brauchst Du nur eine aktuelle Version von ISPConfig und eine Webseite (Apache oder nginx).

Das Plugin besteht aus zwei Teilen

  • die Erweiterung für ISPConfig zum Verwalten der Einstellungen
  • ein Script, um die entsprechenden XML-Dokumente unter der jeweiligen Domain zu generieren.

In diesem Beispiel ist example.de Deine Domain, über die das automatische Einrichten der Mail-Clients laufen soll. Diese Domain kannst Du frei wählen. Die Domain kunde.de ist die Domain, die für die Einrichtung example.de abfragt.

Installation ISPConfig Automail

cd /tmp
wget https://download.schaal-it.net/ispconfig-automail.tgz
tar xfz ispconfig-automail.tgz
cd automail
php install.php

Aktivieren des Plugins

Melde Dich in ISPConfig als Admin an, gehe zu System / ISPConfig Benutzer und aktiviere für den User Admin das Modul automail. Nach dem Du Dich einmal ab- und wieder angemeldet hast, steht Dir das Modul zur Verfügung.

Remote-User

Erstelle einen entfernten Benutzer an, der die „Automail functions“ nutzen kann. Wenn Du ein Multiserver-Setup hast, musst Du evtl. noch den entfernten Zugriff erlauben.

Konfigurieren des Plugins

Unter Provider-ID trägst Du eine eindeutige ID ein, die Dein Setup identifiziert. Du kannst dafür z.B. den Domainnamen Deines Servers nehmen.

Die beiden Hostnamen sind die Namen, über die Mails abgerufen (IMAP/POP3) und versendet werden (SMTP). Wenn Du alles über den gleichen Server laufen lässt, musst Du in beiden Feldern den gleichen Namen eintragen.

Bei Ports trägst Du die Ports ein, die für Deinen Mailserver genutzt werden sollen.

Wenn Du SSL aktivierst, wird das eingerichtete Email-Programm eine verschlüsselte Verbindung aufbauen. Dazu muss das Zertifikat zwingend zum Hostnamen passen.

ISPConfig Automailer Setup

Erstellen der erforderlichen DNS-Records

Du brauchst einen A-Record für autoconfig.example.de und autodiscover.example.de, die auf Deinen Web-Server zeigen. Wenn Du auch IPv6 nutzt, solltest Du zusätzlich noch AAAA-Records anlegen.

In jeder Kunden-Domain legst Du dann zwei Einträge an. Für autoconfig reicht ein einfacher CNAME:

autoconfig.kunde.de. CNAME autoconfig.example.de.

Bei autodiscover bietet sich ein SRV-Record an. Du bekommst damit zwar eine Zertifikat-Warnung während der Einrichtung, das ist aber der einfachste Weg für die Einrichtung beliebig vieler Kunden-Domains:

_autodiscover._tcp.kunde.de. SRV 0 0 443 autodiscover.example.de.

Einrichten der Website in ISPConfig

Als nächstes legst Du die Webseite autoconfig.example.de mit PHP-Unterstützung und ohne Auto Subdomain in ISPConfig an. Du solltest diese Seite auch über SSL absichern. Das ist zwar für autoconfig nicht erforderlich, wird aber später für autodiscover benötigt. Du kannst dazu ohne weiteres Let’s Encrypt einsetzen.

Bei den Optionen musst Du noch die Direktiven für Apache oder nginx entsprechend setzen:

Apache

ServerAlias autoconfig.*

nginx

location ^~ /config\.php { deny all; }

location / { 
rewrite autodiscover\.xml$ /index.php last; 
rewrite Autodiscover\.xml$ /index.php last; 
rewrite config-v1\.1\.xml$ /index.php last; 
}
server_name autoconfig.*;

Durch Alias bzw. server_name kann diese Domain später auch von jeden Kunden bzw. jeder Email-Domain genutzt werden.

Jetzt legst Du die Aliasdomain autodiscover.example.de an und lässt diese auf autoconfig.example.de zeigen. Du brauchst dazu keine Redirects, wichtig ist nur, dass die Domain ein SSL-Zertifikat hat. Dazu reichen A-Records im DNS, die auf Deinen Webserver zeigen, damit Du Let’s Encrypt nutzen kannst.

Script auf der Webseite einrichten

Lade die Dateien aus dem Verzeichnis website aus dem Archiv auf die neu angelegte Webseite hoch und passe die Daten in config.php an. Danach benennst Du die htaccess nach .htaccess um. Wenn Du nginx nutzt, kannst Du die Datei auch direkt löschen.

Testen

Autoconfig kannst Du ganz einfach über wget testen:

wget http://autoconfig.kunde.de/config-v1.1.xml?emailaddress=test@kunde.de -O test

In der Datei test findest Du das Ergebnis. Die Email-Adresse muss natürlich existieren.

Für Autodiscover gibt es den Microsoft Remote Connectivity Analyzer.

 

ISPConfig Backup-Space

Du kannst unseren Backup-Space so einsetzen, dass  ISPConig mit externem Backup-Space betrieben wird.

ISPConfig bietet Dir die Möglichkeit, die Backups direkt auf einen externen Speicher zu sichern. Es ist per se etwas unsinnig, relevanten Daten für eine Wiederherstellung direkt auf dem Server zu sichern, der im Zweifel wiederhergestellt werden soll.

Dazu musst Du zunächst unter Serverkonfiguration die Option „“ aktivieren und ein kleines Script anlegen.

SSH-Key

Wenn kein SSH-Key auf dem Server vorhanden ist (/root/.ssh/id_rsa.pub), muss zunächst ein Schlüsselpaar mit ssh-keygen erstellt werden:

ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.

Danach legst Du einen Shell-User für Deinen Backup-Space an und trägst dort den Key aus /root/.ssh/id_rsa.pub ein.

Mount-Script

Mit diesem Script wird vor den Backups der externe Speicher gemountet. Das Script ist /usr/local/ispconfig/server/scripts/backup_dir_mount.sh. Bei unserem Backup-Space sind das nur zwei Zeilen, die erforderlich sind:

#!/bin/bash
sshfs DEINE-ID@DEINE-ID.backup.schaal-it.com:/backups /var/backup

Zuletzt setzt Du die richtigen Zugriffsrechte für das Script:

chown root.root /usr/local/ispconfig/server/scripts/backup_dir_mount.sh
chmod 700 /usr/local/ispconfig/server/scripts/backup_dir_mount.sh

Wenn Du willst, kannst Du den Mount auch nach den Backups wieder unmounten. Das Script dazu ist /usr/local/ispconfig/server/scripts/backup_dir_umount.sh und kann so aussehen:

#!/bin/bash
umount /var/backup

Ob Du unmountest oder nicht, bleibt ganz Dir überlassen. Wenn der Backup-Space nicht gemountet ist, wird ISPConfig immer versuchen, den Speicherplatz einzubinden. Das passiert übrigens nicht nur bei den Backups, sondern auch beim Wiederherstellen einzelner Backups.

Spammail Header verstehen und verschieben

Durch verschiedene Scanner können ein- und ausgehende Mails untersucht werden. ISPConfig setzt hierfür z.B. auf SpamAssassin, ClamAV und Amavis. Die einzelnen Schwellenwerte (dazu später mehr) können individuell definiert werden.

Damit Spammails nicht im eigentlichen Posteingang auftauchen, kann man Mails anhand Ihres Spam-Wertes automatisch in einen eigenen Ordner verschieben lassen. Dadurch sind solche Mails über einen IMAP-Client oder einen Webmailer sichtbar und das Risiko, eine irrtümlich als Spam eingestufte Mail nicht zu sehen, wird etwas geringer.

Vorsicht: wenn die Mails über POP3 abgeholt werden, führt das Verschieben dazu, dass die Mails nicht mit abgerufen werden. Sie liegen nicht mehr im Posteingang, sondern in einem Unterordner. Das Verschieben erfolgt immer direkt auf dem Server.

Ablauf eines Scans

  • die Email wird von Postfix angenommen
  • und an Amavis weitergegeben
  • SpamAssassin and ClamAV are called by Amavis to test the mail
  • Anhand verschiedener Spam-Regeln (siehe auch Aktuelle Regeln für SpamAssassin von schaal @it) bekommt die Mail verschiedene Angaben im Header
  • Postfix bekommt die Mail von Amavis zurück

Aufbau eines Mailheaders

Wir lassen hier ganz bewusst die meisten Einträge aus einem Mailheader weg, da sie für das Erkennen bzw. Verschieben von Spammails nicht relevant sind. Die wesentlichen Zeilen eines Mailheaders sehen z.B. so aus:

X-Virus-Scanned: Debian amavisd-new at scan.schaal-it.net
X-Spam-Flag: YES
X-Spam-Score: 7.039
X-Spam-Level: *******
X-Spam-Status: Yes, score=7.039 tagged_above=3 required=5 tests=[BAYES_50=0.8, DATE_IN_PAST_24_48=1.34, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RP_MATCHES_RCVD=-0.001, SCHAALIT_HEADER_964=5] autolearn=no

X-Virus-Scanned

Die erste Zeile zeigt an, welcher Scanner verwendet wurde. Wenn Du dort andere Angaben haben möchtest, kannst Du die Amavis-Config entsprechend anpassen. Bei Debian oder Ubuntu wäre das dann $X_HEADER_LINE in /etc/amavis/conf.d/20-debian_defaults.

X-Spam-Flag

Wenn hier YES steht, wurde die Mail als Spam eingestuft.

X-Spam-Score

Der X-Spam-Score ist der Wert, den SpamAssassin anhand seiner Filterregeln für die Mail ermittelt hat. In ISPConfig kannst Du unter Spamfilter – Richtlinien – Tag Level im Feld „SPAM Markierungslevel 2“ den Wert eintragen, ab dem eine Mail als Spam markiert werden soll (5.00 bei Trigger happy).

X-Spam-Level

Das ist der ganzzahlige Wert von X-Spam-Score in * – in unserem Fall ist der Score 7.039 und damit gibt es sieben Sternchen. Den Wert kann man mit eigenen Filter verwenden, falls man nicht doch gleich den X-Spam-Score nehmen will.

X-Spam-Status

This is the really interesting part. Let’s just divide it into its individual parts:

Yes, score=7.039 das ist letztliche das gleiche wie in X-Spam-Flag und X-Spam-Score.

tagged_above=3 gibt den Wert an, ab dem überhaupt die hier genannten Zeilen in den Header eingefügt werden sollen. Bei ISPConfig ist das der „SPAM Markierungslevel“ bei den Richtlinien.

required=5 ist der Wert, ab dem die Mail dann auch als Spam markiert wird und damit das X-Spam-Flag auf YES steht. Bei den Richtlinien ist das der „SPAM Markierungslevel 2“

tests= zeigt Dir an, welche einzelnen Regeln SpamAssassin angewendet hat und anhand welcher Regel es wie viele Punkte für diese Mail gab:

BAYES_50, DATE_IN_PAST_24_48 und SCHAALIT_HEADER_964 haben den Wert erhöht, die Signierung mit DKIM hat den Score insgesamt um 0.1 reduziert (DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU) und RP_MATCHES_RCVD hat den Wert um 0.001 reduziert.

Insgesamt also:

0.8 + 1.34 + 5 = 7.14

0.1 – 0.1 – 0.1 = -0,1

– 0.001

Und damit haben wir den Score von 7.039

Wenn Du Dich für die Inhalte der Tests interessierst, findest Du die Regeln in verschiedenen Ordner in /var/lib/spamassassin. Als Beispiel nehmen wir die Regel SCHAALIT_HEADER_964:

header SCHAALIT_HEADER_964 From =~ /\@pkv.*\.(online|net|com|org|co|info|de)/
describe SCHAALIT_HEADER_964 schaal @it Spam Header-964
score SCHAALIT_HEADER_964 5

Die Regel bezieht sich auf die From-Zeile in der Mail. Dabei wird ein RegEx verwendet, der diverse Spam-Mails zum Thema Private Krankenversicherungen aussortiert.

Verschieben der Mail in den Spam-Ordner

Nachdem Postfix die Mail von Amavis zurückbekommen hat (siehe Ablauf eines Scans), wird die Mail entweder verschickt oder – wenn der Empfänger einer von unseren Usern ist – über Dovecot in das Postfach zugestellt.

Das lokale Zustellen der Mail durch Dovecot ist einer der entscheidenden Stellen: wurde die Mail vorher durch SpamAssassin als Spam markiert, so wird sie nicht in den Posteingang, sondern in den Unterordner Junk verschoben. Dazu muss bei ISPConfig für das Email-Konto bei den Email-Filtern der Haken bei „Spam E-Mails in das Junk Verzeichnis verschieben“ gesetzt sein.

Grundsätzliches zu den Filtern bei ISPConfig

  1. Für die Domain oder das Postfach muss ein Spamfilter ausgewählt sein. Wenn bei der Domain und dem Postfach ein Filter definiert ist, greift der vom Postfach. Hat nur die Domain einen Filter, greift dieser auch für das Postfach. Kurz: Postfach überschreibt Domain – nur so kann jeder User seine ganz individuellen Werte definieren. Wird ein Alias verwendet, dann gilt der für die Domain definierte Filter.
  2. Der ausgewählte Spamfilter muss so definiert sein, dass die entsprechenden Werte auch zu der Mail „passen“. Hätte unser Filter also einen SPAM Markierungslevel 2 von 10, wäre die Mail nicht als Spam markiert worden.
  3. Spam-Mails werden nur verschoben, wenn der entsprechende Haken bei „Spam E-Mails in das Junk Verzeichnis verschieben“ gesetzt ist.
  4. Richtlinien kann nur der Administrator ändern oder anlegen. Hätte jeder Nutzer die Möglichkeit, würde sich das auf alle Postfächer auswirken, die diesen Filter nutzen. Im Zweifel legst Du besser eine zusätzliche Richtlinie an.

 

Aktuelle Regeln für SpamAssassin von schaal @it

Current rules for SpamAssassin from schaal @itWir veröffentlichen regelmäßig neue Regeln für den Spamfilter SpamAssassin der Apache Software Foundation. Natürlich kannst Du die Regeln auch bei den ISPConfig Spam Filter Settings einsetzen.

Die meisten Regeln haben dabei einen Score von 5.

Unsere Regeln können kostenlos genutzt werden. Dazu muss nur unser Channel zur SpamAssassin-Config hinzugefügt oder unser Script installiert werden. Bitte nicht vergessen, nach der Installation oder einem Update von Regeln SpamAssassin neu zu starten.

SpamAssassin verwendet DNS-Checks um neue Regeln zu erkennen, so dass das Script durchaus stündlich oder täglich aufgerufen werden kann, ohne eine nennenswerte Auslastung zu erzeugen.

Unsere Regeln installieren:

sa-update --nogpg --channel sa.schaal-it.net

Um den Spamfilter bzw. die Regeln aktuell zu halten, kann z.B. ein kleines Shell-Script in /etc/cron.hourly verwendet werden:

cd /etc/cron.hourly && wget sa.schaal-it.net/sa-update && chown root.root sa-update && chmod 755 sa-update

Damit wird dieses Script installiert:

#!/bin/sh
# schaal @it
#
# Simple script to update SpamAssassin

SYSLOG_TAG=sa-update

compile=0

logger -d -t $SYSLOG_TAG "Start SA-Update"

sa-update --nogpg
retval="$?"
if [ $retval -eq 0 ]; then compile=1; fi


sa-update --nogpg --channel updates.spamassassin.org
retval="$?"
if [ $retval -eq 0 ]; then compile=1; fi

sa-update --nogpg --channel sa.schaal-it.net
retval="$?"
if [ $retval -eq 0 ]; then compile=1; fi

if [ $compile -eq 1 ]; then
	logger -d -t $SYSLOG_TAG "SA-Update found"
	sa-compile
	/etc/init.d/amavis restart
else
	logger -d -t $SYSLOG_TAG "No SA-Update found"
fi

Um weitere Regeln zum Spamfilter hinzuzufügen können einfach ein oder mehrere Blöcke vor if [ $compile -eq 1 ]; then

eingefügt werden:

sa-update --nogpg --channel updates.spamassassin.org
retval="$?"
if [ $retval -eq 0 ]; then compile=1; fi

sa-update --nogpg --channel sought.rules.yerp.org
retval="$?"
if [ $retval -eq 0 ]; then compile=1; fi

sa-update --nogpg --channel spamassassin.heinlein-support.de
retval="$?"
if [ $retval -eq 0 ]; then compile=1; fi