Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 1: | Zeile 1: | ||
==Anforderung== | ==Anforderung== |
Aktuelle Version vom 21. Dezember 2016, 16:26 Uhr
Anforderung
Es soll eine längere Liste Domains in die Spamfilter-Whitelist eingetragen werden. Die Eingabe soll automatisiert über ein Skript erfolgen.
Durchführung
Zuerst muss im Webinterface ein neuer Filter angelegt werden. Dazu klickt man im Webinterface auf Anwendungen -> Mailfilter -> "+ Filterregel hinzufügen"
Im neuen Fenster werden folgende Einstellungen vorgenommen (um eine WHITELIST für SMTP zu definieren):
Protokoll: smtp
Kategorie: spam
Aktion: none
Verknüpfungsoperator: OR
Hinweis: Im Bereich "Regeln" werden noch keine Domains eingetragen. Das Fenster wird einfach mit Klick auf "Speichern" geschlossen.
Jetzt gilt es die ID der neuen Filter-Gruppe herauszufinden. Dazu erstellt man einen "root"-Benutzer mit administrativen Berechtigungen, meldet sich mit diesem an einer SSH-Konsole an und führt folgenden Befehl aus:
root@gateway:~# spcli mail filter get id|pos|proto|category |action|operator|rule_id|type|flags --+---+-----+-------------+------+--------+-------+----+----- 3 |2 |smtp |virus |filter|AND |3 |any |CONTAINS 1 |1 |smtp |spam |block |AND |1 |any |CONTAINS 9 |3 |smtp |spam |none |OR | | |
Von der Zeile mit der höchsten "pos" merkt man sich die "id" (in dem Fall also: 9)
Jetzt muss die Liste der Domains vorbereitet werden. In diesem Fall befinden sich die Domains in einer Text-Datei mit einer Domain pro Zeile:
test.de test2.de test3.de ...
HINWEIS: Tragen Sie in dieser Liste keine "lokalen" Domains ein (also solche, für die die Firewall Ziel des MX-Records ist). Spammer verwenden gerne Adressen der Zieldomain im (gefälschten) Absender. Diese Mails würden Sie dann einfach zugestellt bekommen.
Um diese Domains werden jetzt CLI-Befehle herum gebaut. In einem Text-Editor, der das Ersetzen von Text mittels Regexes unterstützt geht das einfach mit:
Suche nach: (.*?)([\r\n]+) Ersetze durch: spcli mail filter rule new id <ID_VON_OBEN> type mail_from flags CONTAINS value "\1"\2
Die Textdatei sollte danach so ähnlich aussehen:
spcli mail filter rule new id 9 type mail_from flags CONTAINS value "test.de" spcli mail filter rule new id 9 type mail_from flags CONTAINS value "test2.de" spcli mail filter rule new id 9 type mail_from flags CONTAINS value "test3.de" ...
Der Inhalt dieser Datei wird jetzt in die Zwischenablage kopiert.
Im Putty wird jetzt folgender Befehl ausgeführt:
# cat > /tmp/whitelist-import.sh
Nach einem Druck auf "ENTER" springt der Cursor in die nächste Zeile. Hier wird der Inhalt aus der Zwischenablage eingefügt und mit "ENTER" -> "Strg + D" gespeichert.
Jetzt wird die Datei ausführbar gemacht:
# chmod +x /tmp/whitelist-import.sh
und zum Schluss ausgeführt:
root@gateway:~# /tmp/whitelist-import.sh rule_id ------- 10 rule_id ------- 11 rule_id ------- 12
Nun kann geprüft werden, ob das alles nach Wunsch funktioniert hat:
root@gateway:~# spcli mail filter get id|pos|proto|category |action|operator|rule_id|type |flags |value --+---+-----+-------------+------+--------+-------+---------+--------+----- 3 |2 |smtp |virus |filter|AND |3 |any |CONTAINS| 1 |1 |smtp |spam |block |AND |1 |any |CONTAINS| 9 |3 |smtp |spam |none |OR |10 |mail_from|CONTAINS|test.de | | | | | |11 |mail_from|CONTAINS|test2.de | | | | | |12 |mail_from|CONTAINS|test3.de
Das gleiche muss im Falle einer Whitelist nochmals für
Protokoll: smtp
Kategorie: probably_spam
durchgeführt werden