BLOG

ANASAYFA > BLOG > + Sunucunuzdan SPAM Çıkıyor Olabilir
2015-09-14

Sunucunuzdan SPAM Çıkıyor Olabilir

Son günlerde herhesin ortak problemlerinden biri olan, sunucu üzerinde bir hesaba sızılarak atılan SPAM’ların sunucu üzerinde kaynağı nasıl tespit edilir? Önlem almak için neler yapılmalıdır? Bu konulara kısaca değineceğimiz bu blog yazısında SPAM derdi olanlara derman olmaya çalışacağız :)


Öncelikle problemin temel kaynağı ne kadar güvenlik önmeli alırsanız alın özellike paylaşımlı hosting sunucularda yaşanan script güvenlik açıklarıdır. Wordpress tabanlı yazılımlarda çıkan güvenlik açığı ve bu güvenlik açığını gideren update işlemini yapmayan kullanıcıların hesaplarına sızılarak atılan SPAM e-postalar IP adreslerinin kara listeye girmesi ile oldukça can sıkıcı sorunlara sebebiyet vermekte.


Gelişen teknoloji, günümüz hackerlarına yeni olanaklar sağlamakta. Şuan botların script güvenlik açığı olan hesapları hackleyerek yaptığı en yoğun iş PHP socket bağlantı kurup, sunucunun üzerinde kurulu olan e-posta servisini kullanmadan direk bilhas kendi yazdıkları yazılım üzerinden sunucuda ekli tüm ip adreslerini kullanarak SPAM mail gönderimidir. Bu sayede hackerlar ele geçirdikleri web hosting hesabının bağlı bulunduğu sunucuda tespit edebildikleri tüm ipleri kullanarak IP kara listeye girinceye kadar SPAM gönderebilmekteler.


Bu yöntemden haberi olmayan sistem yöneticileri genelde hemen sunucuda kurulu e-posta servisinin loglarını inceleyerek SPAM gönderiminin hangi hesaptan yapıldığını kontrol etmeye çalışır. Ama hiç bir log kaydına ulaşamaz, çünkü SPAM sunucu üzerinde kurulu olan e-posta servisi üzerinden atılmamaktadır. Bunun tespit edilebilmesi için en güzel yöntem ise linux sunucularda netstat komutudur. Netstat komutunun parametreleri bize pek çok bilgi verir..


En çok kullanılan Netstat parametreleri


-n IP RDNS Çıktısını göstermez bu sayede hızlı sonuçlar üretilebilir


-t Unix socket bağlantılarını göstermez TCP bağlantılarını listeler


-u Unix socket bağlantılarını göstermez UDP bağlantılarını listeler


-p Listelenen bağlantıların hangi program ve PID numarasında çalıştığını gösterir


Buna göre bize lazım olan komut netstat -ntup komutudur. Bu komutun bize listeleyeceği ekran da bağlantıların program isimleri ve PID numaraları ile görmemizi sağlar. Örneğin cPanel bir sunucumuz var ise e-posta servisi EXIM olarak çalışır bu durumda yazacağımız netstat -ntup | grep :25 komutunda listelenecek ekranda PID numaralarının karşılığında bu portu kullanan uygulamaların da EXIM olması gerekir. Eğer bu liste içerisinde EXIM yerine PHP görüyorsak bu noktada bir problem ile karşı karşıya olabiliriz.


Oldukça basit bu yöntem ile sorunlu hesapları bulmamız çok basit… Eğer liste de e-posta servisimiz dışında bir uygulamanın 25 portunu kullandığını görüyorsanız hemen açık dosyaları gösteren lsof komutunu kullanarak çalışan PID dosyasının hangi dizinde olduğuna bakabiliriz. Bunun için gerekli komut


    lsof -p PIDNUMARASI

Bu komutun çıktısı PID numarasına ilişkin bilgileri bize sunarken ilk satırda yer alan cwd ilgili PID numarasının çalıştığı dizini göstermektedir. bu nedenle daha temiz bir görünüm için şu komutu çalıştırabiliriz..


    lsof -p PIDNUMARASI | grep cwd

25 Portunu kullanan bir PHP uygulamasının çalıştığı dizine bu şekilde ulaşabiliriz. Dizin içinde hacker’ın script açığından faydalanarak attığı dosyalar direk görünecektir. Bu dosyalar genellikle ya base64 ile şifrelenmiş yada özel bir PHP fonksiyonu ile şifreli karışık şekilde görünmektedir. Bu nedenle bu dosyaları antivirüs yazılımları görmemektedir. Özellikle son dönemde karşılaştığımız bu kötü amaçlı scriptlerde dosya içeriğinden tespiti mümkün olmasın diye tüm fonksiyonlar random karakterler ile üretilerek yazılmaya başlanmıştır. Bu sayede hacker zararlı scripti herhangi bir virüs programına takılmadan zahmetsizce upload edebilmektedir.


Eğer netstat -ntup çıktısında PHP dışında bir uygulama görüyorsanız bunlarda kötü amaçlı SPAM faaliyeti olabilir. Örneğin SSH üzerinden bir yöntem ile şifre girmeye gerek kalmadan spam mail gönderilebilmektedir. Bunun çözümü ise oldukça basit.. SSH servisinin config dosyasında;


    AllowTCPForwarding no

SSH üzerinden şifre gereksinimi olmadan yapılan bu SPAM faaliyeti başlı başına bir blog yazısıdır. Bu nedenle kısa bir özet geçecek olursak, SSH Tunnel sistemi ile saldırgan kullanıcı kendisine belirlediği bir port üzerinden yerel bağlantı açarak bu port üzerinden 25 portunu Tunnelleyip istediği gibi SPAM faaliyetinde bulunabilir. SSH üzerinden TCP Tunnel bağlantısını engellemek için ise yukarıda yazdığımız komutu SSH config dosyasında tanımlamamız ve ardından SSH servisini yeniden başlatmamız yeterlidir.


Aslında tüm bunlarla uğraşmadan hangi portu, hangi yazılım kullanabilir şeklinde kurallar oluşturup bunları IPTABLES üzerinden sisteme girebiliriz. Ancak bunu yapsak dahi bu saldırgan kullanıcıların e-posta göndermesi, gitmese bile sunucumuza bir yük verecektir. Bu nedenle blog yazısında kaynağın tespiti için kısa ipuçları ile detay belirtmeye çalıştık.


Son olarak, bu konuda en iyi çözüm yöntemlerinden bir diğerini de sizlerle paylaşmak istiyoruz. Kendi hosting ağımızda e-posta gönderimi için SMTP RELAY sunucuları kullanmaktayız, bu sunucular aslında E-Posta gönderim işini yapmaktalar, bunu yaparken kullandığımız e-posta servisini RELAY sunucusuna bağlayarak local ağ üzerinde tanımladığımız RELAY sunucusu dışında kalan tüm sunucu ip adreslerinin source IP’den destination kısma 25 portuna erişimi engelleyici bir kural giriyoruz. Bu kural ana switch üzerinde tanımlandığı ve local ağ üzerinde geçerli olmadığından asla SMTP RELAY sunucuları dışından e-posta gönderimi yapılmıyor.


Mevcutta sunucu barındırma veya kiralama hizmeti alan Netinternet müşterileri, buna benzer ACL kurallarını müşteri panelleri üzerinden IP Yönetim kısmından kendileri devreye alabilmektedir. ACL-SMTP aktif olan sunucuların 25 portları İnternet’e kapanırken, local ağ üzerinde açık kalmaktadır. SPAM derdinden kurtulmak için kaliteli bir SMTP RELAY sunucusu oluşturmak yada bu işi komple outsource etmek isterseniz SMTP RELAY hizmeti almak en basit SPAM’dan kurtulma şeklidir.


Kontrolünüz dışında SPAM gönderimine karşın sormak istediklerinizi bize bu blog yazısı altından iletebilirsiniz.


Mutlu bir gün geçirmeniz dileği ile…


İyi Çalışmalar..

Avatar
Abdullah Altunbaş Teknik Şef
Netinternet de Teknik Birim Şefi olarak 2011 yılından itibaren çalışmaktayım.
Yorumlar
Avatar
Dragon 8 yıl önce

Teşekkürler,

Güzel bir paylaşım.

Avatar
Paşa Paşayev 8 yıl önce

Merhaba,

ACL-SMTP ilgili ip üzerinde aktif edersek port internete kapanıyor demişsiniz. Bu kapanma normal mail alışverişini etkiler mi?

Teşekkürler.

Yorum Yap