Spam’dan Kurtulma Yöntemleri

Spam’lerden nefret ediyorum. Aynı şekilde gönderenlerden ve bu işe yardım ve yataklık yapanlardan da…
Spam atanların kökünü kurutamıyorsak bari bu mesajların bize ulaşmasını engelleyelim. Bunun için bir kaç akıllı yöntem sıralayacağım burada. Bu yöntemlerin her birini ayrı bir yazıda ele alacağım.

Bu yazının da devamında kendi alan adına ve e-posta adresine sahip olanlar için benim de kullandığım bir yöntemi anlatmaya çalışacağım.

En önce gereksinimler:

  • Kendi alan adınız (ör: sahillioglu.net)
  • Bir hosting(web barındırma) hesabı
  • Bu hosting hesabında Cpanel Yönetim Alanı
  • (Cpanel’den erişebileceğiniz) Spam Assassin
  • (Cpanel’den erişebileceğiniz) E-posta Filtreleri

Adımlar ve Açıklamalar

1. Cpanel’de Mail > SpamAssassin bölümüne girin.
2. Enable SpamAssassin butonuna tıklayın. SpamAssassin etkin hale getirilecektir.
3. Gene Cpanel’de Mail > SpamAssassin sayfasında Configure SpamAssassin butonuna tıklayın. Gelen sayfada SpamAssassin için gerekli ayarları gözden geçireceğiz. Benim tercih ettiğim ayarlar şu şekilde:

  • required_score: 5.0 Benim ayarladığım değer bu şekilde. Ancak bu ayarları ISP vb. bir yer için yapıyorsanız, o zaman bu değerin daha yüksek olması lazım. Benim gibi kişisel bir alan adı için yapıyorsanız 5 civarları oldukça uygun bir değer.
  • rewrite_header subject: [BU_SPAM_GIBI]_HITS_ Burada SpamAssassin’in spam olarak işaretledigi her mesajın konu kısmına mesajın spam olduğunu anlayabileceğimiz bir ifade eklesin diyoruz. O da [BU_SPAM_GIBI] benzeri bir şey olabilir. Siz istediginizi yazabilirsiniz tabii. _HITS_ degeri ise konu kısmında SpamAssassin’in verdiği spam puanını görebilmek için. _HITS_ değeri ne kadar yüksekse mesajın spam olma yüzdesi o kadar yüksektir.
  • whitelist_from: Burada 5 tane kutu var. SpamAssassin buraya yazacağınız alan adlarından gelen mailleri kontrol etmeyecektir. Ör: *.sahillioglu.net
  • blacklist_from: Burada SpamAssassin’in direkt spam olarak işaretlemesini istediğiniz alan adları varsa onları yazabilirsiniz. Veya spam oldugunu düşündüğünüz bir e-posta mesajı spam olarak işaretlenmiyorsa onu bu kutulara yazabilirsiniz. Ör: *.itecturk.net (İsteğim dışında gönderdikleri spam mesajlar nedeniyle kendilerine son derece öfkeliyim.)
  • whitelist ve blacklist alanları sadece 5 kutu ile sınırlı degildir. Save dediğinizde gelen sayfada yeni boş kutular eklenecektir.
  • Save butonuna basıp ayarları kaydediyorsunuz.

Bu ayarları yapıp kaydettikten sonra sonra e-posta filtreleri eklemenin zamanı geldi.
4. Cpanel > Mail > Email Filtering > Add Filter linkine tıklıyorsunuz.

  • Filter kutusundan SpamAssassin Spam Header secilir.
  • contains ile başlayan kutudan begins with seçilir.
  • Sondaki boş kutuya da Yes yazılır.
  • destination alanına da spam olarak işaretlenen bu mesajların silinmesini istiyorsanızDiscard yazıyorsunuz.
    Spam mesajlar için tanımladığınız bir e-posta hesabına veya dizinine aktarmak istiyorsaniz o adresi yazıyorsunuz.
    Ör: spambox@alanadiniz.com gibi

Şimdi e-posta filtresinde eğer discard dediyseniz spam olarak işaretlenen mesajlar /dev/null‘a gönderilecek yani yok edilecek. Ancak benim gibi, arada yanlışlıkla spam olarak işaretlenen önemli mesajlar olabilir diye (spam mesajlarımı gözle kontrol edip öyle silmek için) özel olarak tanımladığım bir e-posta hesabına yönlendirilsin dediyseniz bu yöntemi biraz daha güzelleştirelim.
Öncelikle spam olarak işaretlenen mesajları spambox hesabımızda görmeye başlayacağız. Bu mesajların konu kısmında 5′ten (yukarıda konu kısmına _HITS_ değerini eklemiştik) başlayıp 30′a 40′a kadar puan verilen spam mesajları göreceksiniz. Yukarıda da yazdığım gibi bu puan ne kadar yüksekse mesajın spam yüzdesi de o kadar yüksek olacaktır. Şimdi benim istedigim durum şu: 9 ve üzeri puan alanlar benim için %100 spam mesaj demektir. Öyleyse 9 ve üzeri puan alanlar direkt silinsin istiyorum. Böylece daha az mesajı -acaba yanlışlıkla spam olarak işaretlenmiş olabilir mi diye- kontrol edecegim. Bunun için yapmamız gerekenler şunlar:

  • Cpanel > Backups > Download Email Domain Forwarder or Filter Backup bölümünden alan adımıza ait ana filtrenin yedeğini .gz uzantılı olarak indiriyoruz.
  • Bu dosyayı açıp içindeki dosyada şu şekilde bir ayarlama yapıyoruz:
     

    # Exim filter
    if not first_delivery and error_message then finish endif
    
    if $message_headers contains "X-Spam-Level: ********"
    then save "/dev/null" 660
    else
       if $h_X-Spam-Status: begins "Yes"
       then deliver "spambox@alanadim.com"
       endif
    endif
  • Yukarıda spambox@alanadim.com yerine spam için açtığınız adresi yazmanız gerekiyor.
  • Bunu yaptıktan sonra dosyayı .gz formatında Cpanel > Backups > Restore an Email Domain Forwarder/Filter adımından geri yüklüyorsunuz.
  • Yüklediğiniz dosyanın testini Cpanel > Mail > Email Filtering > Filter Test adımından SpamAssassin’in yakaladığı ve spam olarak işaretlediği bir mesajın kaynak kodunu yükleyerek yapabilirsiniz.
  • “X-Spam-Level: ********” satırında gördüğünüz yıldızlar mesajın spam puan sayısına(_HITS_) denk gelmekte. Yani SpamAssassin bir mesaja 9.2 puan vermişse, o zaman X-Spam-Level header’ında 9 yıldız oluyor. 15 yıldız varsa 15 puan almış demektir.
  • Yukarıda yazdığım filtredeki kodun yapacağı işlem ise şu: Eğer 9 ve üzeri spam puanı almışsa bu mesajı sil/yok et. Yok eğer 9 puanın altındaysa o zaman spam olup olmadığına bak. Eğer spam olarak işaretlenmişse, o zaman bunu spambox@alanadim.com adresine gönder. Spam olarak işaretlenmemişse de hiçbir işlem yapma.

İyi çalışmalar…