Spam postalar özetle “istenmeyen posta” olarak adlandırılabilir. Spama konu olan postalar genellikle izinsiz ticari amaç güden postalar olarak ön plana çıkar.
Spam iletileri tesbiti yapmanın çeşitli yöntemleri vardır ki cogunu biliyoruz ya da uyguluyoruz...
Kelime bazlı filtreler genellikle bizi mutlu edecek sonuçları vermiyor, bir kelimenin (viagra, via^gra, vİİgra) gibi çeşitli varyasyonlarıyla karşımıza çıkabileceğini biliyoruz.
Kara listelerde çeşitli sorunlar olabiliyor, örneğin eğer spam-postacı çevirmeli ağ kullanıyorsa ilgili Internet Servis Sağlayıcısına ait tüm IP aralığı sorun yaşayabilir.
Bu durumda bir postayı tek nedenle spam saymak yerine, gercekten spam-posta etiketini yapıştırmak için analiz etmemiz gerekiyor.
SpamAsassin tüm bunların üstesinden gelen posta filtresidir.
Biz spama karşı en etkili çözümlerden biri olan SpamAssassin’i vurgulamaya çalışacağız.
SpamAssassin, spam analizini posta metnini kullanarak ve çeşitli internet olgularını dikkate alarak yapan posta filtresidir. Perl ile yazılmıştır. Spamassassin, spamd programıyla birlikte kurulur ve CPU tüketimini azaltır . SpamAssassin geliştiricileri tarafından, elle yazılmış kurallara göre hareket eder. http://www.spamassassin.org/tests.html sayfasında gorebileceginiz “Talks about lots of money” “viagra” “Save big money” gibi örneklerimizdeki spam sayılabilecek ifadeleri inceler ve her ifadeye puan verir, eger bir posta bizim belirledigimiz puanı aşmışsa spam sayılır. Anımsatalım bir postanın spam-posta sayılabilmesi salt geliştiricilerinin elle yazdıgı kurallarla kısıtlı degildir, postanın year2000 formatına uymayan yapısı “date (25Haziran04)” bile o postaya spam-posta puanı kazandırır. SpamAssassin’in puanlamadaki gerçeklik yapısı ve bir spam-postasını spam sayma olasılıgı %95 leri gecmektedir, kendi sayfasında %98 lerden söz ediyor.
Bir posta analizi yapalım...
* *
|
H/uman-G/rowth-H/ormone |
|
As
seen on NBC, CBS, and CNN, and even Oprah! The health |
|
H G H AT 50% OFF RETAIL B,UY 2 GET 1 F,REE! |
|
100% Satisfaction Guaranteed! |
**
Üstteki posta bizim işimize yaramayabilir belki, ama bu postayı klasik kelime filtreleme ya da kara liste metodlarıyla spam saymamız mümkün müdür ?
Bu postayı puanladık, 30.6 puan spam posta notu aldı... Baraj değer SpamAssassin için 5’dir ki tavsiye edilen de odur zaten.
Konuyu dağıtmamak adına salt puanlama tablosunu gösterelim.. çünkü SpamAssassin, ayrıca bir postanın neden spam posta sayıldıgına dair gerekçeler de yazabiliyor.
Content
analysis details: (30.6 points, 5.0 required)
pts rule name description
---- ---------------------- --------------------------------------------------
1.1 BANG_GUARANTEE BODY: Something is emphatically guaranteed
1.2 BANG_EXERCISE BODY: Talks about exercise with an exclamation!
1.9 AS_SEEN_ON BODY: As seen on national TV!
2.2 BANG_OPRAH BODY: Talks about Oprah with an exclamation!
4.3 REVERSE_AGING BODY: Reverses Aging
0.6 HAIR_LOSS BODY: Cures Baldness
0.5 HTML_LINK_CLICK_CAPS BODY: HTML link text says "CLICK"
2.8 UNWANTED_LANGUAGE_BODY BODY: Message written in an undesired language
0.1 HTML_FONTCOLOR_RED BODY: HTML font color is red
0.4 HTML_FONT_INVISIBLE BODY: HTML font color is same as background
0.1 HTML_FONTCOLOR_BLUE BODY: HTML font color is blue
0.5 HTML_40_50 BODY: Message is 40% to 50% HTML
0.1 MIME_HTML_ONLY BODY: Message only has text/html MIME parts
0.0 HTML_MESSAGE BODY: HTML included in message
0.1 HTML_FONTCOLOR_GREEN BODY: HTML font color is green
0.8 MIME_MISSING_BOUNDARY RAW: MIME section missing boundary
2.0 HEADER_COUNT_CTYPE Multiple Content-Type headers found
1.4 DNS_FROM_RFCI_DSN RBL: From: sender listed in dsn.rfc-ignorant.org
1.8 FORGED_AOL_HTML AOL can't send HTML message only
1.1 MIME_HTML_ONLY_MULTI Multipart message only has text/html MIME parts
4.3 FORGED_MUA_AOL_FROM Forged mail pretending to be from AOL (by From)
1.2 MISSING_MIMEOLE Message has X-MSMail-Priority, but no X-MimeOLE
2.0 HG_HORMONE Talks about hormones for human growth
0.1 MISSING_OUTLOOK_NAME Message looks like Outlook, but isn't
SpamAssassin özetle üstteki spam dökümanını bize sunarken ne kadar detaycı ve özenle hazırlanmış oldugunu da bize göstermektedir. Ayrıca postanın header kısmına da spam adına uyarılar eklenmektedir.
Görüldüğü üzere bir postanın spam sayılma gerekçesi konu, metin, kimden, kime analizinden ibaret değildir.
Spam Postayı Ne Yapacağız ?
Postayı kullanıcının istediğimiz klasörüne aktarabiliriz
Postayı silebiliriz
Postayı çeşitli şekillerde işaretleyip kullanıcının daha belirgin görmesini sağlayabiliriz..
Posta kullanıcısı aldığı spam postayı yine göz filtresine tabi tutmalıdır, %98 lerden söz ediliyor ama ulaşamayacak %2 nin içindeki önemli bir posta sorun yaşanmasına neden olabilir. Tavsiye edebilecegim yöntem, SpamAssassin’in de varsayılan değeri olan *****SPAM***** notunun “konu”nun başına eklenmesidir. Bu durumda kullanıcı *****SPAM***** eklentili mailleri istedigi klasörüne yönlendirebilir, gözucu kontrolü sonrası silebilir. Posta spam de olsa sahibine aittir.
Biraz da Teknik ;
SpamAssassin’i sunucumuzda ister kullanıcı ister domain bazlı yapılandırabiliriz. Bu çok büyük kullanım rahatlığı sağlamaktadır. SpamAssassin yapılandırma user_prefs veya local.cf dosyasındaki parametrik algılatma yöntemlerimize göre çalışmaktadır.
Bu döküman yazıldıgı andaki güncel sürüm : Mail-SpamAssassin-2.63
SpamAssassin’in yanısıra raporlama ve hata ayıklama teknikleri adına pyzor’u mutlaka öneririm, sunucu yükünüze göre razor-agents ve dcc-dccd’ de ilave edilebilir. Çünkü her spam ayıklama metodu sunucumuza yük getirecektir.
Tüm bunlar için bir yol gösterme ve sevk etme işlemi gerekmektedir ki procmail ya da maildrop kullanılabilir; örnegin maildrop conf dosyasını spam postanın akibetinin ne olacagına dair yapılandırabiliriz, posta silinecek mi, kullanıcınının başka hesabına mı aktarılacak gibi..
FreeBSD işletim sisteminde tüm bu portlar yer almaktadır. ;
Hazırlık ; (portları kurulmalıdır)
/usr/ports/devel/p5-Time-HiRes
/usr/ports/dns/p5-Net-DNS
/usr/ports/security/p5-Digest-SHA1
/usr/ports/security/p5-Digest-HMAC
/usr/ports/www/p5-HTML-Tagset
/usr/ports/www/p5-HTML-Parser
Kurulum ; (portları kurulumu gerçekleştirecektir)
/usr/ports/mail/p5-Mail-SpamAssassin/
/usr/ports/mail/maildrop/
/usr/ports/mail/pyzor/
/usr/ports/mail/razor-agents/
/usr/ports/mail/dcc-dccd/
Kurulum sonrası yapılandırma dosyası ; /usr/local/etc/mail/spamassassin/local.cf editlenmelidir.
rewrite_subject 1
required_hits 5.0
subject_tag *****SPAM*****
report_safe 1
use_terse_report 0
pyzor_max 2
pyzor_add_header 1
dns_available yes
report_header 1
use_terse_report 1
score PYZOR_CHECK 5.00
use_bayes 1
auto_learn 1
skip_rbl_checks 0
use_razor2 1
use_dcc 1
use_pyzor 1
ok_languages tr
#whitelist_from *.enginozturk.com
/usr/local/etc/rc.d/spamd.sh ‘i kullanarak start,stop,restart yapabilirsiniz.
sonrası /etc/rc.conf dosyasına
spamd_enable="YES" eklentisini yapmalıyız.
Qmail icin anımsatma yaparsak;
Yine maildrop için domain ya da kullanı posta filtreleme isteminize göre /path/to/path/vpopmail/domains/domain.com/.qmail-default ya da /path/to/path/vpopmail/domains/domain.com/user/.qmail dosyası editlenmelidir.
Editlenen dosya icinde sadece | /usr/local/bin/maildrop /usr/local/etc/mail/mailfilter bu satır olmalıdır, ancak buradaki /usr/local/etc/mail/mailfilter bir degişkendir, siz nereye hangi isimle conf dosyası yaratacaksanız bu degişkenin yerine koymalısınız.. Ama unutulmamalı ki chmod 400 ve chown vpopmail.vchkpw /usr/local/etc/mail/mailfilter (yapılandırma dosyanız her neyse) yapılmalıdır.
SpamAssassin’i çağıran maildrop icin mailfilter ayarlama dosyası aşağıdaki şekilde olabilir..
SHELL="/bin/sh"
import EXT
import HOST
#VPOP="| /home/vpopmail/bin/vdelivermail '' /home/vpopmail/domains/domain/user"
VPOP="| /home/vpopmail/bin/vdelivermail '' delete"
VHOME=`/home/vpopmail/bin/vuserinfo -d $EXT@$HOST`
logfile "/var/log/mailfilter.log"
if ( $VHOME eq "" )
{
log "========"
log "ERROR: VHOME isn't set!"
to "$VPOP"
}
else
{
if ( $SIZE < 262144 )
{
exception {
xfilter "/usr/bin/spamc -f $EXT@$HOST"
#xfilter "/usr/bin/spamc -f -u $EXT@$HOST"
}
}
#if ((/^Subject:.*istemedigim-konu*/))
#{
# to /dev/null
#}
if (/^X-Spam-Flag: *YES/)
{
exception {
include $VHOME/Maildir/.mailfilter
}
`test -d $VHOME/Maildir/`
if( $RETURNCODE == 1)
{
`/usr/local/bin/maildirmake -f Spam $VHOME/Maildir`
}
exception {
to "$VHOME/Maildir/"
}
}
exception {
include $VHOME/Maildir/.mailfilter
}
# default delivery
exception {
to "$VHOME/Maildir/"
}
}
Esen kalın
Engin OZTURK