makaleler / Debian / Ubuntu / Pardus / SpamAssassin konfigürasyonu

SpamAssassin konfigürasyonu

08.09.2014 18:02:39

Mail sunucu için spam filtre konfügürasyonu

Bütün kurulumlarınızı yaptıktan sonra spam filtre özelliğimizi kullanabiliriz.

#spamc paketini kuralım.
aptitude install spamc

Öncelikle işlemlerimizi yaptıracağımız kullanıcı ve grubumuzu oluşturalım.

# groupadd spamd
# useradd -g spamd -s /bin/false -d /var/log/spamassassin spamd
# mkdir /var/log/spamassassin
# chown spamd:spamd /var/log/spamassassin


Sonrasında postfix için master.cf konfigürasyonumuzu yapalım

smtp      inet  n       -       n       -       -       smtpd -o content_filter=spamfilter
587       inet  n       -       n       -       -       smtpd -o content_filter=spamfilter

# spammasssin
spamfilter unix  -       n       n       -       -       pipe
   flags=Rq user=spamd argv=/usr/bin/spamfilter.sh -oi -f ${sender} ${recipient}



Filter bash scriptimizi yazalım.
Basit
vim /usr/bin/spamfilter.sh
#!/bin/bash
#
# spamfilter.sh
#
# Simple filter to plug SpamAssassin into the Postfix MTA
#
# Modified by Jeremy Morton
#
# This script should probably live at /usr/bin/spamfilter.sh
# ... and have 'chown root:root' and 'chmod 755' applied to it.
#
# For use with:
#     Postfix 20010228 or later
#     SpamAssassin 2.42 or later

# Note: Modify the file locations to suit your particular
#       server and installation of SpamAssassin.
# File locations:
# (CHANGE AS REQUIRED TO SUIT YOUR SERVER)
SENDMAIL=/usr/sbin/sendmail
SPAMASSASSIN=/usr/bin/spamc

logger <<<"Spam filter piping to SpamAssassin, then to: $SENDMAIL $@"
${SPAMASSASSIN} | ${SENDMAIL} "$@"

exit $?


chown spamd:spamd /usr/bin/spamfilter.sh
chmod 755 /usr/bin/spamfilter.sh

SpamAssassin Konfigürasyonu. 3.x versiyonunu kullandığım için baz olarak 3.x alınmıştır.
vim /etc/spamassassin/local.cf
# Spam olarak belirlenen mailin konu kısmına SPAM yazdırılır versiyon 3.0 dan itibaren SCORE etiketide eklenmiştir.
rewrite_header Subject *****SPAM***** (_SCORE_)

# İleti spam olarak etiketlenmiş ise, orjinal iletinin kullanıcıya eklenti olarak gönderilir. Bu tanım ile kullanıcının iletiyi doğrudan görmesini engellenir.
report_safe 1

# Her ileti için tekrar eden mail sayısına göre puanlama yapılır bu belirtilen puan ile spam olarak yakalama işlemi yapılır. Bu sayıyı arttırmamaya dikkat etmek lazım spam yakalama zorlaşabilir.
required_score 3.0

# içeriye dayalı spam tespit etmeyi aktifleştirir. Thomas Bayesian adlı matamatikçi tarafından geliştirilen bir yöntemdir, spam olan bir ileti içerisindeki karakterler ve işaretler bir başka mail içerisinde de geçiyorsa muhtemelen o ileti de spamdır, mantığına göre çalışır. Bu yöntem daha önce gelen iletileri esas alarak, olasılık hesaplarıyla, bir sonraki iletinin spam olup olmadığını tahmin ederek işler.
use_bayes 1
bayes_auto_learn 1


skip_rbl_checks 0
use_razor2 0
use_dcc 0
use_pyzor 0


Spam olan mailleri kullanıcıların spam klasörüne taşıyan betiğimizi yazalım.
vim /root/scripts/spammove.sh
#!/bin/sh

SPAMFILE=$(find /var/spool/postfix/virtual/ -regextype posix-extended -regex '.*/[a-zA-Z0-9.-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9.-]+/cur.*' -name '*' -type f -exec grep -l 'X-Spam-Flag: YES' {} \;)

for file_name in $SPAMFILE
do

    directory=$(echo $file_name | sed 's/cur.*/\.Junk/g')
    directory_root=$(echo $file_name | sed 's/cur.*//g')
    if ! [ -d "$directory" ]; then
        maildirmake $directory
        chown spamd:spamd $directory
        chmod 777 -Rf $directory
        echo INBOX.Junk >> $directory_root/courierimapsubscribed
    fi

    echo $file_name >> $directory/courierimapuiddb
    #echo "$file_name"
    target=$(echo $file_name | sed 's/cur/\.Junk\/cur/g')
    #echo "$target"
    mv $file_name $target
done


Bunuda istediğimiz bir zaman diliminde çalışacak bir cron a ekleyebiliriz. Ben her 3 dakika da bir çalışsın istedim.
*/3 * * * * sh /root/scripts/spammove.sh


Kaynaklar: http://belgeler.org/howto/antispam-spamassasin.html [belgeler.org]
yazar husonet

Yorumlar

Bu içerik için sizde yorum yapabilirsiniz!
anasayfa | makaleler | haberler | dosyalar | linkler | hakkımızda