Version: 1.2
Getestet: Ubuntu 8.04 LTS, Plesk 9.x
Nicht jede Plesk Lizenz beinhaltet auch eine Lizenz für Spamassassin. Spamassassin und die verteilten Spamfilter Razor und Pyzor funktionieren jedoch auch hervoragend ohne die direkte Integration in Plesk. 99% der hier gelisteten Konfiguration ist jedoch auch in jedem anderen Spamassassin Szenario gültig.
Installation Spamassassin + Razor + Pyzor
Folgende Pakete installieren
spamcspamassassin
spamd
razor
pyzor
Folgende Perl Module überprüfen und ggf. installieren
Digest::SHA1HTML::Parser
Net::DNS
MIME::Base64
DB_File
Net::SMTP
Mail::SPF
Mail::SPF::Query
IP::Country::Fast
Razor2::Client::Agent
Net::Ident
IO::Socket::INET6
IO::Socket::SSL
Compress::Zlib
Time::HiRes
Mail::DomainKeys
Mail::DKIM
DBI
Getopt::Long
LWP::UserAgent
HTTP::Date
Archive::Tar
IO::Zlib
Encode::Detect
Qmail stoppen und die Datei qmail-queue umbenennen
/etc/init.d/qmail stop cd /var/qmail/binmv qmail-queue qmail-queue.orig
Das Script qmail-queue anlegen und Qmail starten
#!/bin/shif [ -z $SMTPAUTHUSER ] ; then
/usr/bin/spamc | /var/qmail/bin/qmail-queue.orig
else
/var/qmail/bin/qmail-queue.orig
fi
chmod 2555 qmail-queue
chown mhandlers-user:popuser qmail-queue
/etc/init.d/qmail start
Pyzor konfigurieren
pyzor --homedir /etc/spamassassin discoverchmod 644 /etc/spamassassin/servers
Spamassassin konfigurieren
Diese Konfiguration gilt global für alle Domains und Mailadressen. Es ist jedoch auch möglich, für jede Mailbox spezifisch eine Konfiguration zu hinterlegen. Es wird ein Cron-Job aktiviert, welcher täglich aktuelle Spamassassin Rules herunterlädt und einbindet.
Spamassassin aktivieren
/etc/default/spamassassin
ENABLED=1...
OPTIONS="--nouser-config --create-prefs --max-children 4 --helper-home-dir -s /var/log/spamd.log"
...
CRON=1
Logrotate anlegen
/etc/logrotate.d/spamassassin
/var/log/spamd.log {weekly
missingok
rotate 12
compress
delaycompress
notifempty
create 640 root root
sharedscripts
postrotate
/etc/init.d/spamassassin reload >/dev/null
endscript
}
Globale Spamassassin Config
/etc/spamassassin/local.cf
rewrite_header Subject *****SPAM*****required_score 5.5
lock_method flock
use_terse_report 1
report_safe 1
trusted_networks xxx.xxx.xxx.xxx.
# Autowhitelist laeuf manchmal Amok. Erstmal aus...
use_auto_whitelist 0
auto_whitelist_path /var/spool/spamassassin/auto-whitelist
use_bayes 1
bayes_path /var/spool/spamassassin/bayes
bayes_file_mode 770
bayes_auto_learn 1
bayes_auto_learn_threshold_nonspam 0.1
bayes_auto_learn_threshold_spam 9.0
bayes_ignore_header X-Bogosity
bayes_ignore_header Return-Path
bayes_ignore_header Received
bayes_ignore_header X-Spam-Flag
bayes_ignore_header X-Spam-Status
bayes_ignore_header X-Spam-Flag
bayes_ignore_header X-Spam-Level
bayes_ignore_header X-purgate
bayes_ignore_header X-purgate-ID
bayes_ignore_header X-purgate-Ad
bayes_ignore_header X-GMX-Antispam
bayes_ignore_header X-Resent-For
bayes_ignore_header X-Resent-By
bayes_ignore_header X-Resent-To
bayes_ignore_header Resent-To
bayes_ignore_header Sender
bayes_ignore_header Precedence
bayes_ignore_header X-Antispam
bayes_ignore_header X-Sieve
bayes_ignore_header X-Spamcount
bayes_ignore_header X-Spamsensitivity
bayes_ignore_header To
bayes_ignore_header X-Sieve
bayes_ignore_header X-WEBDE-FORWARD
# Wenn der Score von Mails von Webmailern zu hoch ist
score HELO_DYNAMIC_IPADDR 1.5
score MIME_QP_LONG_LINE 1
use_razor2 1
razor_config /etc/razor/razor-agent.conf
use_pyzor 1
pyzor_options --homedir /etc/spamassassin
clear_report_template
report Diese Mail wurde von der Installation des SpamAssassin Spam-Filters als
report Spam erkannt. Sollte diese Nachricht zu Unrecht als Spam markiert worden sein,
report dann bitte diese Mail an postmaster@example.com weiterleiten (wenn moeglich
report als Anlage!). Vielen Dank!
report Die Originalnachricht ist dieser E-Mail als Anhang beigefuegt.
report
report Content analysis details: (_HITS_ points, _REQD_ required)
report
report
report " Pkt Regel Name Beschreibung"
report ---- ---------------------- --------------------------------------------------
report _SUMMARY_
clear_unsafe_report_template
unsafe_report Diese Nachricht ist nicht komplett in plain text gewesen, so dass es
unsafe_report evtl. gefaehrlich ist, sie zu oeffnen, da die Mail moeglicherweise
unsafe_report einen Virus enthalten koennte. Wer sie dennoch anschauen moechte, sollte
unsafe_report dafuer besser einen Editor verwenden!
# Whitelist Global
whitelist_from *@ebay.de
whitelist_from *@amazon.de
whitelist_from *@paypal.de
# Whitelist Mailinglisten
more_spam_to *@lists.example.com
# Whitelist from sent-mail
include /etc/spamassassin/sent-whitelist
Whitelist mit Addressen (ohne Duplikate) aus allen sent-mail Ordnern generieren
#!/bin/sh# Extract list of email addresses from 'Sent' Folders to create
# spamassassin whitelist patterns
set +x
MBOX_DIR=/var/qmail/mailnames/
SENTMAIL=Maildir/.sent-mail/cur/*
SA_DIR=/etc/spamassassin
cd $MBOX_DIR
ls | while read DOMAIN_DIR
do
cd $MBOX_DIR/$DOMAIN_DIR
ls | while read USER_DIR
do
cd $USER_DIR
for x in `grep "^To:" $SENTMAIL |
grep -o "[[:alnum:]\.\+\-\_]*@[[:alnum:]\.\-]*" |
tr "A-Z" "a-z" |
sort -u` ;
do echo "whitelist_from $x" >> $SA_DIR/sent_whitelist.temp
done
cd ..
done
done
sort $SA_DIR/sent_whitelist.temp | uniq >> $SA_DIR/sent_whitelist
/etc/init.d/spamassassin reload
Spamassassin Rules
SA-Rules GPG Keys importieren
wget http://daryl.dostech.ca/sa-update/sare/GPG.KEY -O/tmp/gpg-dostech.key && sa-update --import /tmp/gpg-dostech.keywget http://spamassassin.apache.org/updates/GPG.KEY -O/tmp/gpg-spamassassin.key && sa-update --import /tmp/gpg-spamassassin.key
SA-Rules anlegen
/etc/spamassassin/sa-update-channels.txt
updates.spamassassin.orgsaupdates.openprotect.com
chickenpox.cf.sare.sa-update.dostech.net
70_sare_stocks.cf.sare.sa-update.dostech.net
70_sare_adult.cf.sare.sa-update.dostech.net
70_sare_spoof.cf.sare.sa-update.dostech.net
70_sare_bayes_poison_nxm.cf.sare.sa-update.dostech.net
70_sare_genlsubj_x30.cf.sare.sa-update.dostech.net
70_sare_oem.cf.sare.sa-update.dostech.net
70_sare_random.cf.sare.sa-update.dostech.net
70_sare_specific.cf.sare.sa-update.dostech.net
70_zmi_german.cf.zmi.sa-update.dostech.net
88_FVGT_Bayes_Poison.cf.sare.sa-update.dostech.net
88_FVGT_Tripwire.cf.sare.sa-update.dostech.net
88_FVGT_rawbody.cf.sare.sa-update.dostech.net
88_FVGT_subject.cf.sare.sa-update.dostech.net
88_FVGT_Bayes_Poison.cf.sare.sa-update.dostech.net
SA-Rules Update manuell ausführen
sa-update -D --channelfile /etc/spamassassin/sa-update-channels.txtSA-Rules Cronjob ändern
/etc/cron.daily/spamassassin
...# Update
sa-update --channelfile /etc/spamassassin/sa-update-channels.txt --gpgkey 856AA88A --gpgkey 5244EC45 || exit 0
...
Spamassassin starten
/etc/init.d/spamassassin restartSpamassassin Bayes Filter anlernen
Mails, welche nicht als Spam markiert werden, können beispielsweise in einen Imap Ordner verschoben und dann zum Anlernen des Spamassassin Bayes Filter verwendet werden. Es muss der Pfad zur Mailbox, bzw. dem entsprechenden Ordner angegeben werden.
Spam anlernen
sa-learn --spam --progress /var/qmail/mailnames/<domain>/<account>/Maildir/.Spamtraining/cur/* >> /var/log/messages 2>&1Ham (Non-Spam) anlernen
sa-learn --ham --progress /var/qmail/mailnames/<domain>/<account>/Maildir/.Hamtraining/cur/* >> /var/log/messages 2>&1Mail aus Bayes Datenbank entfernen
sa-learn --forget --progress /var/qmail/mailnames/<domain>/<account>/Maildir/.SpamfilterReset/cur/* >> /var/log/messages 2>&1Bayes Filter Journal und Datenbank synchronisieren
sa-learn --syncBayes Filter Datenbank sichern
sa-learn --backup > /backup/sa-learn.db-dumpBayes Statistik ausgeben
Spalten: Wahrscheinlichkeit | Spam | Ham | Timestamp | Token-Hash
sa-learn --dump data | sort | more