Hakan Uzuner - Mail Server’ların SPAM için Relay Açıklarını Anlamak ve Açıkları Gidermek
Mail Server’ların SPAM için Relay Açıklarını Anlamak ve Açıkları Gidermek
Bilgisayar dünyasında sıklıkla kullandığımız servislerin başında E-posta servisleri gelmektedir. E-pota günümüz dünyasında vazgeçilmez bir konumdadır. E-posta servislerinin bize sağladığı pek çok yararın yanında zararları da bulunmaktadır . Bu zararların başında Spam maillerin verdiği zaman kaybı gelmektedir.
Mail Server ların Spam mail almalarının en büyük nedeni aslında sunucuların virüs ve spam için yazılım kullanmamasıdır. Tabiî ki bu bu yazılımlardan önce mail serverınızın temel fonksiyonlarını kontrol etmeniz gerekmektedir.
Bu temel fonksiyonların başında ise ; kimliğini doğrulamayan bir kişiden gelen mail ileti isteklerinin kabul edilmememsidir. Bu işlemin temelinde “Relay” bulunmaktadır , Relay ; iletmek manasına gelmektedir . Bu konu üzerinde biraz daha durmak gerekir ise ;
Bir Exchange server SMTP üzerinden mail almakta ve mail göndermektedir . Yani Exchange server veya herhangi bir mail server a bağlanan bir istemci mailleri almak için POP3 , IMAP , MAPI vb protokolleri kullanabilir , bu protokoller ile server üzerindeki maillerine ulaşma imkanına sahiplerdir.
Mail göndermek için ise istemci SMTP kullanır , çalışma mantığı ise aşağıdaki şekilde göründüğü gibidir
Yukarıdaki şekilde ben evimdeki laptop ile başka bir domain e mail atmak istiyorum . Kullandığım program Outlook , Outlook Express , web ara yüzü vb bir client uygulaması olabilir . Bu uygulama sayesinde ben başka bir mail adresine mail gönderdiğim zaman aslında bu maili benim adıma Exchange server gönderir , çünkü benim bilgisayarımda SMTP hizmeti bulunmamaktadır . Bu gerçekleştirilen eyleme “Relay” denir , yani iletme manasına gelir. Bir spam dağıtıcısı da kendi mail istemcisinde mail server olarak sizin sunucunuzu yazar ise sizin sunucunuz onun gönderdiği mailleri de internete dağıtmaya başlar. Exchange 5.5 te böyle bir açık bulunmakta idi , yani birisi sizin ip adresiniz üzerinden spam mail dağıtmakta idi , tabiî ki bu durumda RBL ye girecek olan ip adresi sizin ip adresiniz olacak ve bu durumda şirket maillerinizin ulaştırılması da kesintiye uğrayacaktır.
Eğer şirketinizde hala Exchange 5.5 kullanıyorsanız aşağıdaki adımları yerine getirerek bu açığı kapatabilirsiniz
Öncelikle Exchange Administrator’ü açıyoruz , “Site” altında bulunan Configration kısmına oradan ise Connection bölümünü seçin . Bunun üzerinde sağ tıklayarak properties’i seçiyoruz . Routing Tabında “Do not Reroute incoming SMTP Mail “ yerine “Remote incoming SMTP mail ( required for POP3/IMAP Support )” u seçin. Add butonuna yardımı ile kullandığınız “domain” ismini buraya ekliyoruz. Ardından yine aynı sekmedeki “Route Restrictions” a tıklıyoruz ve açılan pencerede “Host and client with these ip addresses” kutucuğunu işaretliyoruz.
Resimli ve detaylı anlatım için aşağıdaki link’i inceleyebilirsiniz
Peki Relay ın açık olup olmadığını nasıl kontrol edeceğiz ?
Bunu bir site veya program yardımı olmadan telnet ile yapabilirsiniz .
İlk olarak telnet ile hedef sunucuya bağlanmamız gerekmektedir ;
telnet 85.X.X.X 25 yazmamız halinde sunucuya bağlantıya geçmiş oluruz ( not : eğer firewall da 25 nolu port açık değil ise veya sizin tarafınızda bir firewall bu portu telnet için yasaklamış ise sorun çekersiniz. )
Bağlantı gerçekleştikten sonra komut satırında “EHLO” dememiz yeterlidir . Bu komutu koşturduktan sonra , sunucuda bize yukarıdaki gibi cevap verecektir. Bu cevabı aldıktan sonra “RSET” komutunu çalıştırıyoruz , daha sonra “MAIL FROM:hakan@deneme.com” (enter) , yazdığımızda sunucu bize “250 2.1.0 hakan@deneöe.com….Sender OK” cevabını vermektedir. Bu gönderici aslında bu domain içerisinde bulunmamaktadır. Bizim amacımız zaten bu domain de olmayan bir kullanıcı ile dışarıya mail atmak istiyoruz. Göndericiyi belirledikten sonra alıcıyı belirliyoruz . “RCPT TO:Serkan.uzuner@cozumpark.com” (enter) , sonuç olarak ise mail sunucusu bize bu mail i iletemediğini belirten bir mesaj verir. ( 550 5.7.1 Unable to relay for Serkan.uzuner@cozumpark.com )
Peki şimdi başka bir deneme yapalım . Bu sefer mail tanınmayan bir kişiden değil de şirket içerisinde mail adresi olan birisinden yapalım. Bu bilgiyi almak çok zor değildir . Örneğin çalıştığım şirkete ait bir kart veya benden gelen bir mail adresi zaten benim kullanıcı adımı tanımlamak için yeterlidir.
Bu durumda yine yukarıdaki gibi komutları kullanacağız ama bu sefer “MAIL FROM” kısmına yerel bir kullanıcı yazacağız.
Yukarıda görüldüğü gibi ben lokalde tanımlı bir kullanıcıyı yazınca sistem mail UPN i otomatik olarak tanımladı ( aslında mail adresinizi ) , ancak yine mail i iletmek mümkün olmadı.
Diğer bir denememizde ise from kısmını boş bırakmak . Yani ne içeriden nede dışarıdan birisinin mail adres bilgisini vermeden mail göndermeyi deneylim
Burada da gördüğümüz gibi yine mail server “Relay”’e kapalı olduğu için bu mail ide iletmedi.
Bir başka durum ise , lokal mail adresini tam olarak yazmaktır
Bu durumda da sunucumuz iletme işlemini gerçekleştirmemektedir.
Denemelerimize devam ediyoruz . Bir diğer durumu deneyeceğim şimdi ; bu durumda da mail server ın DNS Suffix i yerine ip adresini deneyeceğim
Bu denemede başarısız oldu . Bu denemelerin sonucunda mail sunucumuzun relay’e gerçekten kapalı olduğunu anlayabiliriz. Yaptığımız bütün denemeler sonuçsuz kaldı ve kimlik doğrulama yapılmadan gerçekleştirilen hiçbir istekte iletilmedi.
“telnet ile ilgili daha fazla bilgi almak için aşağıdaki makalemi okuyabilirsiniz “
Peki sunucumuzu internet ortamından kontrol etmek istersek ;
Bu işi yapan pek çok web sitesi var , yani domain isminizi vermeniz halinde o domain den sorumlu olan mail server testlerini yapıp size rapor verir.
Örnek olarak aşağıdaki adresi kullanabiliriz
Bu adreste domain isminizi kutucuğa yazın ve “test” butonuna basın.
Sonuçlarında ise en altta rapor verilmektedir.
“Relay test 19
<<< 250 Requested mail action okay, completed
>>> MAIL FROM: <spamtest@[208.109.209.195]>
>>> RCPT TO: <relaytest%antispam-ufrj.pads.ufrj.br@>
<<< 550 Requested action not taken: mailbox unavailable or not local
Relay test 20
>>> RCPT TO: <relaytest@antispam-ufrj.pads.ufrj.br@>
<<< 550 Requested action not taken: mailbox unavailable or not local >>> QUIT
<<< 221 Service closing transmission channelRelay test result All tests performed, no relays accepted by remote host. “ Benim test sonuçlarımda mail sunucum relay e kapalı olarak gözüküyor .
Peki bu kadar bilgiden sonra nasıl oluyor da Spam lar hala bu kadar çok . İşte en önemli nokta budur.
Spam yapmak isteyen bir insan öncelikle relay e açık bir sunucu arar , artık relay konusunda bilgili olduğumuz için testlerin sonucunda relay ı kapatmamız gerekir , bunu yaptık peki spam yapmak isteyen kişi bu sefer ne yapar . Eğer relay e açık bir sunucu bulamazsa bu sefer virüs içerikli mailleri mail server lara göndermeye başlar . Mail server lar mailleri alırken kimlik doğrulamak istemez . Yani örneğin hakan.uzuner@cozumpark.com dan serkan.uzuner@gmail.com a mail attığımda benim mail sunucum karşı sunucuya “SMTP” ile bağlanır ve mail ini bırakır , yani bu noktada gmail sunucuları kimlik doğrulamak istemez ki zaten bu noktada böyle bir şey çok ta mümkün değildir . Düşünürseniz her mail attığınız sunucuda bir hesabınız olması gerekir.
Demek ki mail sunucumuz bize gönderilen her maili almaktadır , madem öyle eğer bu mailde bir virüs var ise doğal olarak benim mail sunucumun veritabanında da virüslü bir mail olmaktadır , bunun sonucu olarak ise artık mail sunucumuz spamcılar tarafından ele geçirilmiştir. Yani spam yapmak isteyenler bu açık sayesinde mail sunucumuzu ele geçirebilirler. Relay i her ne kadar kapatsak ta mail sunucumuz yine RBL ye girecektir.
Bu bilgiler ışığında internete açık olan bir mail sunucunda virüs programı mutlaka olmalıdır. Ama virüs program diyip te geçmemek lazım .
Exchange server maillerin tamamını veri tabanında tutar , yani 100 adet mailbox ve 1000 adet mailin olduğu bir Exchange server da bütün mailler ve ekler tek bir dosyada tutulmaktadır . eğer siz herhangi bir masa üstü virüs programı alır ve Exchange server a yüklerseniz bu program bu veritabanını virüslü görecek ve bu dosyaya zarar verecektir. Bu nedenle Exchange server a mutlaka “for Exchange” ürünü almanız gerekmektedir. Bu programların farklı bu veri tabanına bağlanmaları ve virüsleri mailbox > mail >ekler şeklinde derin bir tarama yaparak bulur ve temizler .
Bu konuda başarılı pek çok ürün bulunmaktadır ama ben bu ürünlerden “Symantec Mail Security for Exchange” ve Mcafee Group Shield ‘ı tavsiye ediyorum. Alacağınız 3. parti bu yazılımlar sayesinde Exchange Server Virüslere , spam maillere karşı korunmuş olacak ve bu sayede gerek mail kotanız , gerek mailbox boyutlarında bir sorun gözlenmeyecek ve RBL ye girmeyeceksiniz.
Bu nedenle kurulmuş ve internete açık olan bir Mail server öncelikle bir Relay testi yapmalı daha sonra ise gerekli olan Anti Virüs ve Anti Spam programlarını satın almalısınız.
« Exchange Server 2003 Üzer...
Donanımsal VPN Kurulumu »
Mail Server’ların SPAM için Relay Açıklarını Anlamak ve Açıkları Gidermek için yorumlar kapalı