Mail Gateway ve Spam Suzgeci Olarak Linux Sunucu Kullanimi

From Lapis Wiki

Jump to: navigation, search

Konu başlıkları

Giriş

Bu belgede Ubuntu Dapper 6.06 altında, kendi yerel ağımızda kullanabileceğimiz bir SMTP ve POP3/Imap sunucu kurulumunu ve Spam/Virus postalara karşı alınabilecek önlemleri aktaracağız.

Bu belgede, kullanıcı posta hesaplarının bir makinada toplanması anlatılacaktır. Yani yerel ağda bulunan her kullanıcının posta hesabı internetten alınıp, yerel ağdaki bir makinada toplanacak ve kullanıcılar sadece bu makina ile irtibata geçecekler. Posta sunucusu ise, belirnenen zaman içinde postaları internetten indirip makinada tutacak.


Kullanılacak Yazılımlar:

  • SMTP-AUTH ve TLS destekli Postfix


Ubuntu Kurulu Makina Hakkında:

  • Sunucu ismi = hasan.fenster.local / mail.fenster.local
  • Sunucu IP adresi = 172.21.204.130
  • Bcast:172.21.204.191
  • S.Mask:255.255.255.192
  • Sunucuda aynı zamanda DNS ve DHCP dinamik dns olarak çalışıyor. ( bknz: Ubuntu Dapper 6.06 Altinda Bind 9 DNS Server Kurulumu )

Self-Signed Sertifika Oluşturmak (seçmeli)

Şimdi sunucumuzu kurmaya başlamadan önce, ilerki adımlarda kullanabileceğimiz bir sertifika oluşturalım. Bu bölüm isteğe bağlıdır.

#  aptitude  install openssl
#  mkdir  /tmp/test
#  cd /tmp/test
#  openssl genrsa -des3 -out server.key 1024
(Bu komutta sizden 2 defa parola isteyecektir. 
Güvenli bir parola girin ve enter ile işlemi bitirin)
#  openssl rsa -in server.key -out server.key.insecure
(Yukardaki komutta kullandığınız parolayı girin)
# openssl req -new -key server.key -out server.csr
Enter pass phrase for server.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:DE
State or Province Name (full name) [Some-State]:Germany
Locality Name (eg, city) []:Bottrop
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Lapis
Organizational Unit Name (eg, section) []:forum
Common Name (eg, YOUR name) []:erkan kaplan
Email Address []:erkan@linux-sevenler.org


#  openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
Signature ok
subject=/C=DE/ST=Germany/L=Bottrop/O=Lapis/OU=forum/CN=erkan   kaplan/emailAddress=erkan@linux-sevenler.org
Getting Private key
Enter pass phrase for server.key:
#(Son adım olarak dosyalraı gerekli dizine kopyalıyoruz)
#  cp server.crt /etc/ssl/certs
#  cp server.key /etc/ssl/private

Postfix (MTA Agent)

Yerel ağdan posta gönderebilmek için bize bir MTA programı lazım. Kurulumu ve ayarları çok kolay olduğu için Postfix i seçtim. Dilerseniz başkada kullanabilirsiniz (Sendmail, qmail vb.)

Postfix Kurulumu

Ubuntu altında Postfix kurabilmek için, aşağıdaki komutu vermemiz yeterli olacaktır. Biz Postfix'i SMTP-AUTH ve TLS destekli olarak kurulacaktır.

#  aptitude install postfix postfix-tls libsasl2 sasl2-bin  \
                    libsasl2-modules libdb3-util procmail


Kurulum esnasında size bazı sorular soracaktır. Bunları aşağıdaki gibi cevaplıyorum:

<- Internet Site
<- NONE
<- hasan.fenster.local
<- hasan.fenster.local, localhost.fenster.local, localhost
<- No
<- 127.0.0.0/8
<- 0
<- +


Test amaclı olarak aşağıdaki komutu veriyorum ve görüldüğü gibi, sorunsuzca çalışıyor. Fakat henüz AUTH desteği mevcut değil.

# telnet hasan.fenster.local 25
Trying 172.21.204.130...
Connected to hasan.fenster.local.
Escape character is '^]'.
220 hasan.fenster.local ESMTP Postfix (Ubuntu)
ehlo hasan.fenster.local

250-hasan.fenster.local
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250 8BITMIME

Postfix Ayarları

Postfix programının ayar dosyası /etc/postfix/main.cf dosyasıdır. Bu dosyayı herhangi bir editor ile açıp kendinizde düzenleyebilirsiniz. Ya da postfix ile birlikte gelen postconf yardımcı programını kullanarak gerekli ayarları yapabilirsiniz.

Şimdi teker teker bize lazım olacak komutları postconf yardımcı program ile verelim. Sizde aşağıdaki komutları (domain ismine kadar) aynen verebilirsiniz.

#  postconf -e 'smtpd_sasl_local_domain ='
#  cd /etc/postfix/
#
#  postconf -e 'smtpd_sasl_auth_enable = yes'
#  postconf -e 'smtpd_sasl_security_options = noanonymous'
#
#  postconf -e 'broken_sasl_auth_clients = yes'
#  postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination'
#  postconf -e 'inet_interfaces = all'
#  echo 'pwcheck_method: saslauthd' >> /etc/postfix/sasl/smtpd.conf
#  echo 'mech_list: plain login' >> /etc/postfix/sasl/smtpd.conf
#
#  mkdir /etc/postfix/ssl
#  cd /etc/postfix/ssl/

#  openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024
262 semi-random bytes loaded
Generating RSA private key, 1024 bit long modulus
..............++++++
....++++++
e is 65537 (0x10001)
Enter pass phrase for smtpd.key:
Verifying - Enter pass phrase for smtpd.key:
#  chmod 600 smtpd.key
#  openssl req -new -key smtpd.key -out smtpd.csr
Enter pass phrase for smtpd.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:DE
State or Province Name (full name) [Some-State]:Germany
Locality Name (eg, city) []:Bottrop
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Lapis
Organizational Unit Name (eg, section) []:forum
Common Name (eg, YOUR name) []:erkaN kaplaN
Email Address []:erkan@linux-sevenler.org
#  openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out  smtpd.crt
Signature ok
subject=/C=DE/ST=Germany/L=Bottrop/O=Lapis/OU=forum/CN=erkaN  kaplaN/emailAddress=erkan@linux-sevenler.org
Getting Private key
Enter pass phrase for smtpd.key:
#  openssl rsa -in smtpd.key -out smtpd.key.unencrypted
Enter pass phrase for smtpd.key:
writing RSA key

#  mv -f smtpd.key.unencrypted smtpd.key
#  openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out   cacert.pem -days 3650Generating a 1024 bit RSA private key
.................++++++
...........++++++
writing new private key to 'cakey.pem'
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:DE
State or Province Name (full name) [Some-State]:Germany
Locality Name (eg, city) []:Bottrop
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Lapis
Organizational Unit Name (eg, section) []:forum
Common Name (eg, YOUR name) []:erkaN kaplaN
Email Address []:erkan@linux-sevenler.org
#  postconf -e 'smtpd_tls_auth_only = no'
#  postconf -e 'smtp_use_tls = yes'
#  postconf -e 'smtpd_use_tls = yes'
#  postconf -e 'smtp_tls_note_starttls_offer = yes'
#  postconf -e 'smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key'
#  postconf -e 'smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt'
#  postconf -e 'smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem'
#  postconf -e 'smtpd_tls_loglevel = 1'
#  postconf -e 'smtpd_tls_received_header = yes'
#  postconf -e 'smtpd_tls_session_cache_timeout = 3600s'
#  postconf -e 'tls_random_source = dev:/dev/urandom'

# (Domain ismi sizde değişik olabilir)
#  postconf -e 'myhostname = hasan.fenster.local'

SASL Ayarları

Eğer daha önceden kurmadıysanız, SASL desteği için gerekli olan paketleri aşağıdaki şekilde kurabilirsiniz:

# aptitude install libsasl2 sasl2-bin libsasl2-modules

Daha sonra biraz postfix ile uyum sağlatmamız gerekiyor:

#  mkdir -p /var/spool/postfix/var/run/saslauthd
#  rm -rf /var/run/saslauthd

ve /etc/default/saslauthd dosyasını açıp,

#  nano  /etc/default/saslauthd

aşağıdaki şekilde değiştiriyoruz:

# This needs to be uncommented before saslauthd will be run
# automatically
START=yes
PWDIR="/var/spool/postfix/var/run/saslauthd"
PARAMS="-m ${PWDIR}"
PIDFILE="${PWDIR}/saslauthd.pid"
# You must specify the authentication mechanisms you wish to use.
# This defaults to "pam" for PAM support, but may also include
# "shadow" or "sasldb", like this:
# MECHANISMS="pam shadow"
MECHANISMS="pam"

ve son olarakda, initscript'in yukardaki dizini tanımasını ve o dizine gerekli izinleri vermesini sağlıyoruz:

#  dpkg-statoverride --force --update --add root sasl 755 /var/spool/postfix/var/run/saslauthd
#  cd /etc/init.d
#  mv saslauthd saslauthd.orjinal
#  wget  http://erkan.linux-sevenler.org/download/saslauthd



Postfix'i Test Etmek

Test işlemine başlamadan önce, Linux makinanızda çok değişiklik yaptı iseniz tekrar başlatmanızda yarar olacağını düşünüyorum.


Yukardaki ayarları yaptıktan sonra

# /etc/init.d/postfix restart
* Stopping Postfix Mail Transport Agent postfix               [ ok ]
* Starting Postfix Mail Transport Agent postfix               [ ok ]

komutu ile postfix demonunu tekrar başlatıyoruz.

Şimdi telnet ile bağlanıp AUTH desteğinin olup olmadığına bakıyoruz:

# telnet hasan.fenster.local 25 Trying 172.21.204.130...
Connected to hasan.fenster.local.
Escape character is '^]'.
220 hasan.fenster.local ESMTP Postfix (Ubuntu)
ehlo hasan.fenster.local

250-hasan.fenster.local
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250 8BITMIME

Mail Forwading Ayarlari

Son Test

Courier-IMAP/Courier-POP3

MailScanner

MailScanner Kurulum

MailScanner Ayarlari

SpamAssassin

SpamAssassin, Linux sistemleri için hazırlanmış bir Spam süzgeçleme programıdır. Birçok Linux sürümü ile birlikte gelmesine rağmen, sonradan da kurulum yapılabilir. İstemci (client) basisli kullanılabileceği gibi, sunucu basisli olarakda kurulabilir.

Sunucu basisli kullanımda, gelen mailler çeşitli süzgeçlerden geçerek puan toplarlar. Puan sayısına göre, gelen mail Spam kategorisine girerse, gelen posta ayrı bir dizin altında toplanması veya silinmesi sağlanabilir.ie Spam-Mail weg sortieren.

Her yöneticinin kendisine ait özel ihtiyacı olacağı için, yapılacak özel kurallarda kişiye özel olarak ayarlanabilir. Bu yüzden herkesin kendisine ait ve devamlı kullanabileceği bir özel süzgeç oluşturması tavsiye edilir.



Spam Nedir?

Internet üzerinde aynı mesajın yüksek sayıdaki kopyasının, bu tip bir mesaji alma talebinde bulunmamış kişilere, zorlayıcı nitelikte gönderilmesi Spam olarak adlandırılır. Spam çoğunlukla ticari reklam niteliğinde olup, bu reklamlar sıklıkla güvenilmeyen ürünlerin, çabuk zengin olma kampanyalarının, yarı yasal servislerin duyurulması amacına yöneliktir. Spam gönderici açısından çok küçük bir harcama ile gerçekleştirilebilirken mali yük büyük ölçüde mesajin alıcıları veya taşıyıcı, servis sağlayıcı kurumlar tarafından karşılanmak zorunda kalınır.

Internet kullanıcıları üzerindeki etkileri incelendiğinde iki tip Spam vardır. Email aracılığıyla gönderilen spam doğrudan gönderilen mesajlarla, bireysel kullanıcıları hedef alır. Email spam listeleri genellikle Usenet gönderilerinin taranması, tartışma gruplarının üye listelerinin çalınması veya web üzerinden adres aramalarıyla oluşturulur. Email tipindeki spam gönderileri tipik olarak alan kullanıcının masraf yapmasına sebep olur. Email erişimi için süreye bağlı telefon parası ödeyen her kullanıcı için bir bedel ortaya çıkması kaçınılmazdır. Bununda ötesinde, spam maillerinin taşınmasının servis sağlayıcılar ve diğer on-line servisler üzerinde oluşturduğu mali yük de doğrudan abonelere yansıyacaktır.

E-posta yolu ile gönderilen spam türlerinden ticari içerikli olan UCE (Unsolicited Commercial e-mail- Talep Edilmemiş Ticari e-posta) adından da anlaşılacağı gibi istemediğiniz halde size gönderilen bir ürünü yada hizmeti tanıtıcı elektronik posta iletileridir.

İçeriğinin mutlaka ticari olması gerekmeyen UBE (Unsolicited Bulk e-mail Talep Edilmemiş Kitlesel e-posta), aynı anda yüzbinlerce e-posta hesabına gönderilen e-posta iletileridir. Bu iletiler ticari içerikli olabileceği gibi politik bir görüşün propagandasını yapmak yada bir konu hakkında kamuoyu oluşturmak amacı ile gönderilen e-posta iletileri de olabilir. Spam hakkında önemli bir nokta, bir iletinin spam olarak nitelendirmek için kullanılacak ölçütün iletinin içeriği ile hiç alakalı olmamasıdır. Herkesin üzerinde hemfikir olduğu, önemli bir toplumsal duyarlılığa sahip bir konu hakkında görüş bildirmek için kitlesel olarak gönderilen bir iletide aslında spam olarak nitelendirilebilir.

Bir diğer sık rastlanılan e-posta spam tipi ise MMF (Make Money Fast – Kolay Para Kazanın) iletileri; zincir iletiler yada piramit benzeri pazarlama yapıları ile ilgili gelen iletilerdir. Piramitin en üstündeki isme para gönderip listenin altına kendinizi eklediğinizde para kazanmaya başlayacağınıza ilişkin iletiler bu tip spam iletilerine örnek olarak verilebilir.

Email türündeki spam’in rahatsız edici bir tipi ise, iletinin tartışma listelerine gönderilmesi durumudur. Bir çok tartışma listesinde, kimi işlemler sadece liste üyeleri tarafından gerçekleştirilebildiğinden, spam göndericileri, mümkün olduğu kadar çok listeye üye olmaya çalışarak, liste üyelerinin adreslerini temin ederler.

Diğer bir Spam tipi ise, iptaledilebilir (cancellable) Usenet mesajları aracılığı ile yapılan spamdir. 20 veya daha fazla haber öbeğine aynı anda gönderilen bir ileti spam kapsamında incelenir. Usenet kullanıcıları açısından bu kadar çok sayıda haber öbeğine gönderilen bir iletinin genellikle öbeklerin çoğu, hatta hepsi açısından konu dışı kaldığı tesbit edilmiştir. Bu tür spam, sıklıkla haber öbeklerini okuyan ancak çok ender veya hiç gönderi yapmadıklarından email adresleri elde edilemeyen kullanıcı grubunu hedefler. Usernet spamleri haber öbeklerini reklamlar veya ilgisiz iletilerle doldurarak kullanıcı açısından faydasız ve kullanılması zor hale getirir.

Kaynak: http://www.spam.org.tr/nedir.html

SpamAssassin Kurulumu

Özel Kurallar Eklemek

ClamAV

ClamAV Kurulumu

CAlamAV Ayarlari

ClamAV Testi