Merhaba,

Sanal dünyayı her ne kadar normal amaçlar için kullansakta belli sebeplerden dolayı hackerların sistemlere zarar verme gerçeğini göz ardı edemeyiz. Öyle ki dünyada sürekli web sitelerine saldırılar düzenleniyor, siteler hackleniyor, sistemlere ulaşım bir şekilde hackerlar tarafından engelleniyor.

Türkiye ‘de bu durumdan şikayetçi birçok web site sahibi bulunuyor. Tabii bunu sadece web sitelerine saldırı olarak düşünmeyin. Sunucunuzda online bir oyun oynatan server da olabilirsiniz. Bu servara yapılan saldırılar sayesinde, tüm oyuncularınız kötü bir oyun deneyimi yaşar. Hatta hesaplarına maddi zararlar verilebilir. Haliyle kimse bir daha sizin serverınıza girmez. Aynı şekilde web sitenize virüs koyan bir hacker, sitenizi ziyaret eden kişilerin bilgisayarlarınıza sızabilir. Google bir süre sonra sitenizin zararlı olduğunu düşünüp arama sonuçlarında kullanıcıya sitenizin zararlı şeyler içerdiğine dair uyarı verir.

Tüm bu olaylar itibariyle internet dünyasında hizmet verdiğiniz her ne varsa, bu hizmetinizi ciddi şekilde aksatıp çevrenize kötü izlenim bırakır. Bu durumdan kurtulmak için güvenliğinizi hat safhaya çıkarmalısınız.

Peki Hackerlar Nasıl Hackliyor?

Bu makalemizde sizlere hackerların sıkça kullandığı bir saldırı yöntemini ve o yöntemden nasıl korunabileceğimizi anlatacağız. Hackerlar sisteminize zarar vermek için ya sızma girişiminde bulunur ya da sunucunuza aşırı trafik göndererek ulaşımını engeller.

Bu 2 yol için de sizin sunucunuzun açık olduğu portu bilmek ister. Eğer portu bilirse o port üzerinden sunucunuza giriş yapmayı dener veya o porta aşırı trafik yönlendirip sunucunuzu ulaşılamaz hale getirir.

Hackerlar Sunucumun Açık Portunu Nasıl Buluyor?

Bazı network güvenlik yazılımları sayesinde sunucunuza sürekli test sinyalleri göndererek hangi portunuzun açık olduğunu buluyor. Bu durumu zorlaştırmak için bizim de kullanabileceğimiz bir yazılım var “PortSpoof“.

PortSpoof ‘un çalışma mantığından biraz bahsedelim. Hacker sunucunuzun hangi portunun açık olduğunu öğrenmek için yazılım kullanıyor ve her porta test istekleri gönderiyor. Kapalı olan portlar CLOSED olarak gösterilir, açık olanlar OPEN. Yani hacker bu cevaplardan hangi portunuzun ne durumda olduğunu kolayca öğrenir. Biz ise PortSpoof kullanırsak, kapalı olan portlarımızı açıkmış gibi göstermiş oluruz. Hackerın kullandığı port tarama programı tüm portlar için SYN+ACK sinyali gönderir yani taradığı tüm portları açık zanneder ve hacker da haliyle öyle zanneder.

Hal böyle olunca hacker hangi portun açık hangisinin kapalı olduğunu anlayamaz. Sonuç olarak hangi porta saldıracağını bilemez. Yaptığımız bu güvenlik işlemine bir nevi “bakkala göndermek” de denebilir. Düşmanımızı yanılttık ve nereye saldıracağını bilemez hale getirdik.

PortSpoof ‘u Nasıl Kuracağım

İlk olarak PortSpoof uygulamasından önce birtakım altyapı dosyalarını da sunucunuza kurmanız gerekmekte. Sırasıyla aşağıdaki komutları uygulayarak kurulumu yapabilirsiniz.

İlk olarak aşağıdaki komutu uygulayın. Bu PortSpoof için gerekli dosyaları sunucunuza kurar.

# rpm -Uvh http://mirror.vit.com.tr/mirror/Epel/7/x86_64/epel-release-7-1.noarch.rpm

# yum install gcc gcc-c++ unzip

Sonra aşağıdaki komutla PortSpoof ‘u indirin.

# wget https://github.com/drk1wi/portspoof/archive/master.zip

Aşağıdaki komutlarla kurulumu başlatın.

# unzip master.zip
# cd portspoof-master
# ./configure –sysconfdir=/etc/
# make && make install

Bu aşamadan sonra PortSpoof kurulacak ve yapılandırma işlemine geçeceğiz. PortSpoof kurulumunun ilk haliyle yani saf haliyle TCP 4444 portunu dinliyor. Siz de sunucunuzun tüm portlarına gelen bağlantı istekleri için (bu istekleri hackerların yolladığını düşünün) yönlendirme yapmalısınız. Yani hackerın kullandığı program sizin sunucunuzn TCP 301 portunu test etmek istediğinde siz bu bağlantıyı TCP 35 ‘e yönlendireceksiniz. Akabinde PortSpoof devreye girecek ve sanki bu port açıkmış gibi SYN+ACK sinyalini hackerın yazılımına iletecek.

Bu noktada yönlendirme işlemini yapmadan önce portspoof’un araya girmesini istemediğiniz spesifik servisleriniz varsa bunlar için yönlendirme yapmamanız gerekiyor. Örnek olarak TCP 22’de SSH ve TCP 80’de web sunucu calistiran bir sistem için bu portlar haricinde kalan tüm diğer portlar için yönlendirme şu şekilde yapılmakta:

# firewall-cmd –permanent –zone=public –add-forward-port=port=1-21:proto=tcp:toport=4444
# firewall-cmd –permanent –zone=public –add-forward-port=port=23-79:proto=tcp:toport=4444
# firewall-cmd –permanent –zone=public –add-forward-port=port=81-65535:proto=tcp:toport=4444
# systemctl restart firewalld

Siz bu bu komutları kendinize göre düzenleyip uygulayın. Eğer dikkatli davranmaz ve hizmet aldığınız bir portu kapatırsanız bu kez sisteminizin çalışmasını engelleyebilirsiniz. Bu yüzden bir uzmandan destek alabilirsiniz.

Klasik IPTables kullananlar (CentOs 6.X) aşağıdaki komutları da uygulayabilir;

# iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp -m multiport --dports 1:21,23:79,81:65535 -j REDIRECT --to-ports 4444
# iptables-restore < iptables-config[/su_note] Bu aşamayı da geçtikten sonra PortSpoof 'un yapılandırma işlemleri bitmiş oluyor. Son bir işlem var. O da PortSpoof 'un hangi modunu kullanacağınız. Demiştik ki PortSpoof, tüm portları açık olarak gösterir, bu ilk moduydu. Diğer modu da anlatalım. Hacker versiyon tespiti yaparak da portlarınız hakkında bilgi alabilir. Size tam bir güvenlik duvarı sayılabilecek 2. modu öneriyorum. Bu mod sayesinde versiyon tespiti yapmak isteyen hackera yine sahte veriler gönderilir ve hacker doğru verilere ulaşamayacağından sistemimize saldırıda bulunamaz. Bunun için aşağıdaki komutu uygulayın. [su_note note_color="#ffdd2b" text_color="#000000" radius="14"] # portspoof -c /etc/portspoof.conf -s /etc/portspoof_signatures -D[/su_note] İşlem tamamlanmıştır. Eğer PortSpoof 'un çalışıp çalışmadığını test etmek isterseniz, örnek olarak ilk 50 portunu tarayıp servis versiyonu tespit etmek isterseniz nmap’i aşağıdaki şekilde kullanabilirsiniz; [su_note note_color="#ffdd2b" text_color="#000000" radius="14"] # nmap -sV -p 1.50 uzaksistem-ipsi[/su_note] Sonuç olarak aşağıdakine benzer bir görüntü çıkacaktır. Böylelikle sunucunuzun güvenliğini önemli derecede artırmış oldunuz.
# nmap -sV -p 1-50 192.168.16.162
Starting Nmap 6.40 ( http://nmap.org ) at 2014-08-30 22:33 EEST
Nmap scan report for 192.168.16.162
Host is up (0.00024s latency).
PORT STATE SERVICE VERSION
1/tcp open smtp Unrecognized SMTP service (12345 0000000000000000000000000000000000000000000000000000000)
2/tcp open smtp Unrecognized SMTP service (12345 0000000000000000000000000000000000000000000000000000000)
3/tcp open smtp Unrecognized SMTP service (12345 0000000000000000000000000000000000000000000000000000000)
4/tcp open smtp Unrecognized SMTP service (12345 0000000000000000000000000000000000000000000000000000000)
5/tcp open smtp Unrecognized SMTP service (12345 0000000000000000000000000000000000000000000000000000000)
6/tcp open smtp Unrecognized SMTP service (12345 0ffffffffffffffffffffffffffffffffffffffffffffffffffff00)
7/tcp open smtp Unrecognized SMTP service (12345 0fffffffffffff777778887777777777cffffffffffffffffffff00)
8/tcp open smtp Unrecognized SMTP service (12345 0fffffffffff8000000000000000008888887cfcfffffffffffff00)
9/tcp open smtp Unrecognized SMTP service (12345 0ffffffffff80000088808000000888800000008887ffffffffff00)
10/tcp open smtp Unrecognized SMTP service (12345 0fffffffff70000088800888800088888800008800007ffffffff00)
11/tcp open smtp Unrecognized SMTP service (12345 0fffffffff000088808880000000000000088800000008fffffff00)
12/tcp open smtp Unrecognized SMTP service (12345 0ffffffff80008808880000000880000008880088800008ffffff00)
13/tcp open smtp Unrecognized SMTP service (12345 0ffffffff000000888000000000800000080000008800007fffff00)
14/tcp open smtp Unrecognized SMTP service (12345 0fffffff8000000000008888000000000080000000000007fffff00)
15/tcp open smtp Unrecognized SMTP service (12345 0ffffff70000000008cffffffc0000000080000000000008fffff00)
16/tcp open smtp Unrecognized SMTP service (12345 0ffffff8000000008ffffff007f8000000007cf7c80000007ffff00)
17/tcp open smtp Unrecognized SMTP service (12345 0fffff7880000780f7cffff7800f8000008fffffff80808807fff00)
18/tcp open smtp Unrecognized SMTP service (12345 0fff78000878000077800887fc8f80007fffc7778800000880cff00)
19/tcp open smtp Unrecognized SMTP service (12345 0ff70008fc77f7000000f80008f8000007f0000000000000888ff00)
20/tcp open smtp Unrecognized SMTP service (12345 0ff0008f00008ffc787f70000000000008f000000087fff8088cf00)
21/tcp open smtp Unrecognized SMTP service (12345 0f7000f800770008777000000000000000f80008f7f70088000cf00)
22/tcp open ssh OpenSSH 6.4 (protocol 2.0)
23/tcp open smtp Unrecognized SMTP service (12345 0f8008707ff07ff8000008088ff800000000f7000000f800808ff00)
24/tcp open smtp Unrecognized SMTP service (12345 0f7000f888f8007ff7800000770877800000cf780000ff00807ff00)
25/tcp open smtp Unrecognized SMTP service (12345 0ff0808800cf0000ffff70000f877f70000c70008008ff8088fff00)
26/tcp open smtp Unrecognized SMTP service (12345 0ff70800008ff800f007fff70880000087f70000007fcf7007fff00)
27/tcp open smtp Unrecognized SMTP service (12345 0fff70000007fffcf700008ffc778000078000087ff87f700ffff00)
28/tcp open smtp Unrecognized SMTP service (12345 0ffffc000000f80fff700007787cfffc7787fffff0788f708ffff00)
29/tcp open smtp Unrecognized SMTP service (12345 0fffff7000008f00fffff78f800008f887ff880770778f708ffff00)
30/tcp open smtp Unrecognized SMTP service (12345 0ffffff8000007f0780cffff700000c000870008f07fff707ffff00)
31/tcp open smtp Unrecognized SMTP service (12345 0ffffcf7000000cfc00008fffff777f7777f777fffffff707ffff00)
32/tcp open smtp Unrecognized SMTP service (12345 0cccccff0000000ff000008c8cffffffffffffffffffff807ffff00)
33/tcp open smtp Unrecognized SMTP service (12345 0fffffff70000000ff8000c700087fffffffffffffffcf808ffff00)
34/tcp open smtp Unrecognized SMTP service (12345 0ffffffff800000007f708f000000c0888ff78f78f777c008ffff00)
35/tcp open smtp Unrecognized SMTP service (12345 0fffffffff800000008fff7000008f0000f808f0870cf7008ffff00)
36/tcp open smtp Unrecognized SMTP service (12345 0ffffffffff7088808008fff80008f0008c00770f78ff0008ffff00)
37/tcp open smtp Unrecognized SMTP service (12345 0fffffffffffc8088888008cffffff7887f87ffffff800000ffff00)
38/tcp open smtp Unrecognized SMTP service (12345 0fffffffffffff7088888800008777ccf77fc777800000000ffff00)
39/tcp open smtp Unrecognized SMTP service (12345 0fffffffffffffff800888880000000000000000000800800cfff00)
40/tcp open smtp Unrecognized SMTP service (12345 0fffffffffffffffff70008878800000000000008878008007fff00)
41/tcp open smtp Unrecognized SMTP service (12345 0fffffffffffffffffff700008888800000000088000080007fff00)
42/tcp open smtp Unrecognized SMTP service (12345 0fffffffffffffffffffffc800000000000000000088800007fff00)
43/tcp open smtp Unrecognized SMTP service (12345 0fffffffffffffffffffffff7800000000000008888000008ffff00)
44/tcp open smtp Unrecognized SMTP service (12345 0fffffffffffffffffffffffff7878000000000000000000cffff00)
45/tcp open smtp Unrecognized SMTP service (12345 0ffffffffffffffffffffffffffffffc880000000000008ffffff00)
46/tcp open smtp Unrecognized SMTP service (12345 0ffffffffffffffffffffffffffffffffff7788888887ffffffff00)
47/tcp open smtp Unrecognized SMTP service (12345 0ffffffffffffffffffffffffffffffffffffffffffffffffffff00)
48/tcp open smtp Unrecognized SMTP service (12345 0000000000000000000000000000000000000000000000000000000)
49/tcp open smtp Unrecognized SMTP service (12345 0000000000000000000000000000000000000000000000000000000)
50/tcp open smtp Unrecognized SMTP service (12345 0000000000000000000000000000000000000000000000000000000)