Hinzufügen und Aktualisieren von SpamAssassin Rulesets Mit RulesDuJour

Version 1.0
Author: Falko Timme <ft [at] falkotimme [dot] com>

Diese Anleitung veranschaulicht, wie man weitere SpamAssassin Rulesets runter laden bzw. diese Rulesets automatisch mit Shell Skripten, RulesDuJour genannt, aktualisiert. Diese weiteren Rulesets können Deine Spam-Erkennungsrate drastisch erhöhen. Die meisten Rulesets, die RulesDuJour unterstützt, können auf der SA Rules Emporium Web Seite gefunden werden.

Ich übernehme keine Garantie, dass dies auch bei Dir funktionieren wird!

1 Vorbemerkung

Ich nehme an, Du hast bereits den SpamAssassin eingerichtet (es ist egal, ob es ein standalone Daemon ist oder durch einen anderen Daemon wie amavisd aufgerufen wird – RulesDuJour unterstützt all diese Konfigurationen).

2 RulesDuJour runter laden

Ich möchte gern das RulesDuJour Skript im Verzeichnis /usr/local/sbin ablegen, also begebe ich mich dahin und lade das Skript runter:

cd /usr/local/sbin
wget http://sandgnat.com/rdj/rules_du_jour
chmod 750 rules_du_jour

3 RulesDuJour konfigurieren

Wann auch immer das RulesDuJour Skript aufgerufen wird, versucht es die Konfigurationsdatei /etc/rulesdujour/config zu lesen. Daher erstellen wir jetzt diese Datei:

mkdir /etc/rulesdujour
vi /etc/rulesdujour/config

TRUSTED_RULESETS="TRIPWIRE SARE_EVILNUMBERS0 SARE_RANDOM"; # TRIPWIRE, SARE_EVILNUMBERS0, SARE_EVILNUMBERS1, SARE_EVILNUMBERS2, BLACKLIST, BLACKLIST_URI, RANDOMVAL, BOGUSVIRUS, SARE_ADULT, SARE_FRAUD, SARE_BML, SARE_SPOOF, SARE_BAYES_POISON_NXM, SARE_OEM, SARE_RANDOM, SARE_HEADER, SARE_HEADER0, SARE_HEADER1, SARE_HEADER2, SARE_HEADER3, SARE_HEADER_ENG, SARE_HTML, SARE_HTML0, SARE_HTML1, SARE_HTML2, SARE_HTML3, SARE_HTML4, SARE_HTML_ENG, SARE_SPECIFIC, SARE_OBFU, SARE_OBFU0, SARE_OBFU1, SARE_OBFU2, SARE_OBFU3, SARE_REDIRECT, SARE_REDIRECT_POST300, SARE_SPAMCOP_TOP200, SARE_GENLSUBJ, SARE_GENLSUBJ0, SARE_GENLSUBJ1, SARE_GENLSUBJ2, SARE_GENLSUBJ3, SARE_GENLSUBJ_ENG, SARE_HIGHRISK, SARE_UNSUB, SARE_URI, SARE_URI0, SARE_URI1, SARE_URI3, SARE_URI_ENG, SARE_WHITELIST, SARE_WHITELIST_RCVD, SARE_WHITELIST_SPF, ZMI_GERMAN, SARE_STOCKS
SA_DIR="/etc/mail/spamassassin";                    # Change this to your SA local config
                                                    # directory, probably /etc/mail/spamassassin.
                                                    # For amavisd chrooted, this may be:
                                                    # /var/amavisd/etc/mail/spamassassin
MAIL_ADDRESS="your@yourdomain.com";
SINGLE_EMAIL_ONLY="true";                           # Set this to "true" to send only one notification
                                                    # email per RDJ run with "interesting"
                                                    # activity. Set to "" to send a separate
                                                    # for each interesting activity.
EMAIL_RDJ_UPDATE_ONLY="";                           # Set this to "true" to send notifications only
                                                    # when an update for RDJ has been retrieved.  Set
                                                    # to "" (default) to send notifications whenever a ruleset
                                                    # has changed. (Has no effect unless SINGLE_EMAIL_ONLY is set)
SA_LINT="/usr/bin/spamassassin --lint";             # Command used to lint the rules
SA_RESTART="/etc/init.d/amavisd restart";           # Command used to restart spamd
                                                    # May be /etc/rc.d/init.d/spamassassin restart
                                                    # For amavisd, may be /etc/init.d/amavisd restart
                                                    # For minedefang, may be /etc/init.d/mimedefang restart
CURL_PROG="/usr/bin/curl";                          # Location of the curl program
CURL_OPTS="-w %{http_code} --compressed -O -R -s -S -z"; # Parameters of the curl program
CURL="${CURL_PROG} ${CURL_OPTS}";                   # Curl program with parameters
WGET_PROG="/usr/bin/wget";                          # Location of the wget program
WGET_OPTS="-N"                                      # Parameters of the wget program
WGET="${WGET_PROG} ${WGET_OPTS}";                   # Wget program with parameters
PERL="/usr/bin/perl";                               # Location of the perl program
GREP="/bin/grep";                                   # Location of the grep program

TAIL="/usr/bin/tail -n 1";                          # Location (and parameters) for 'tail -n 1'
HEAD="/usr/bin/head -n 1";                          # Location (and parameters) for 'head -n 1'
MAILCMD="/bin/mail";                                     # Location of the mail program
                                                    # that takes and understand the -s flag
# DEBUG="true";                                     # Uncomment this to force debug mode on (or use -D)

Die TRUSTED_RULESETS Zeile beinhaltet alle Rulesets, die Du verwendne möchtest (vergewissere Dich, dass Du diese testest, bevor Du sie auf Produktionssysteme verwendest!); Ich habe alle verfügbaren Rulesets in einem Kommentar am Ende der Zeile aufgelistet.

Die SA_DIR Zeile muss Dein SpamAssassin Konfigurationsverzeichnis beinhalten; für gewöhnlich ist das /etc/mail/spamassassin.

Die MAIL_ADDRESS sollte eine E-mail Adresse beinhalten, zu der RulesDuJour Informationen über den Download-/Aktualisierungsprozess schicken soll.

Alle anderen Optionen sind (als Kommentare) im obigen Skript erklärt. SA_RESTART sollte der Befehl sein, der dazu verwendet wird, SpamAssassin neu zu starten. Wenn Du SpamAssassin als einen standalone Daemon laufen lässt, ist es wahrscheinlich soetwas wie /etc/init.d/spamassassin restart oder /etc/init.d/spamd restart; wenn SpamAssassin durch amavisd aufgerufen wird, musst Du den Befehl festlegen, mit dem Du amavisd neu startest (z.B. /etc/init.d/amavisd restart).

Es ist ratsam im obigen Skript ganze Pfade für alle Programme zu verwenden (z.B. /usr/bin/spamassassin anstelle von spamassassin oder /usr/bin/curl anstelle von curl). Mit dem Befehl which, kannst Du den ganzen Pfad für jedes Programm herausfinden, z.B.

which spamassassin
which curl
which wget
which perl
which grep
which tail
which head
which mail

[root@server1 sbin]# which spamassassin
/usr/bin/spamassassin
[root@server1 sbin]# which curl
/usr/bin/curl
[root@server1 sbin]# which wget
/usr/bin/wget
[root@server1 sbin]# which perl
/usr/bin/perl
[root@server1 sbin]# which grep
/bin/grep
[root@server1 sbin]# which tail
/usr/bin/tail
[root@server1 sbin]# which head
/usr/bin/head
[root@server1 sbin]# which mail
/bin/mail
[root@server1 sbin]#

4 RulesDuJour laufen lassen

Wenn Du in dem Verzeichnis /usr/local/sbin bist, kannst Du RulesDuJour wie folgt laufen lassen:

./rules_du_jour

In einem anderen Verzeichnis kannst Du es wie folgt aufrufen:

rules_du_jour

Natürlich kannst Du auch immer den ganzen Pfad verwenden:

/usr/local/sbin/rules_du_jour

5 Einen Cron Job erstellen

Natürlich möchtest Du RulesDuJour nicht jedes Mal manuell laufen lassen; daher erstellen wir einen Cron Job wie folgt:

crontab -e

0 3 * * * /usr/local/sbin/rules_du_jour 2&>1 > /dev/null

Der obige Cron Job würde RulesDuJour jede Nacht um 3:00 Uhr laufen lassen.

6 Links

Das könnte dich auch interessieren …