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