İPUCU

Linux Linux İle İlgili Bilgi Paylaşım Platformu

Seçenekler

Linux Sisteminizi SYN DOS Saldırılarına Karşı Korumak

C0M!S3R-eX - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
11/2006
Mesajlar:
1.176
Konular:
252
Teşekkür (Etti):
0
Teşekkür (Aldı):
1002
Ticaret:
(0) %
30-11-2006 17:43
#1
Linux Sisteminizi SYN DOS Saldırılarına Karşı Korumak
Linux Sisteminizi SYN DoS Saldırılarına Karşı Korumak



Saldırılar Hakkında:



SYN (TCP bağlantı isteği)* aşağıdaki karakteristiklere sahip çok yaygın bir DoS saldırısıdır:

1-) Saldırgan Internette kullanılmayan IP adreslerini aldatma ile kullanarak (kaynak adresi olarak kullanarak - spoof) birçok SYN paketini hedef makinaya yollar

2-) Alının her SYN pakedi için* hedef makina kaynak ayırır ve onay paketini (SYN-ACK) (SYN pakedinin yollandığı) kaynak ip adresine yollar

3-) Hedef makina* saldırı yapılan makinadan yanıt alamayacağından dolayı* SYN-ACK paketini 5 kez tekrar edecektir. Bunun tekrar süreleri* 3* 6* 12* 24 ve 48 saniyedir. Ayırdığı kaynağı boşa çıkartmadan evvel* 96 saniye sonra son bir kez SYN-ACK denemesi yapacaktır. Hepsini topladığınızda* görüldüğü gibi hedef makina ayırdığı kaynakları 3 dakika gibi bir süre tutacaktır. Bu sadece her bir SYN atağı için gerçekleşecek süredir.

Saldırgan bu tekniği tekrarlanan bir şekilde gerçekleştirdiği zaman* hedef makina ayırdığı kaynaklardan dolayı kaynak yetersizliğine kadar ulaşır ve artık yeni bir bağlantı karşılayamayacak duruma gelir. Ve bu durumda yetkili kullanıcılar bile makinaya bağlanamaz.


Sistemimizi SYN’ye karsi nasil koruruz?


Bir saldırıyı önlemenin en iyi yolu salrinin tipini bilmektir. Bunun için Snort IDS Tespit sistemi suanda freeware ve en stable sistemdir. ( https://tik.lat/p2Jhr ) (Snort kurulum ve configuration’u bir sonraki makalede anlatilacaktir.)

Diyelimki bir bilgisayardan sisteminize SYN Flooding yapiliyor. Bunu önlemenin en iyi yolu o ip’yi iptables araciligi ile banlamaktir. Bunu sizin için otomatik yapıcak çok basit ve hayat kurtarici bir script işinizi görecektir..




Programin Amaci;


Sisteme bagli ip’lerin kontrolu ve tek ip’den limitlediğiniz bağlantı limitinin aşımı durumunda o ip’yi sistemden banlamasi.

Program default olarak ip başina 80 connection iznine ayarli fakat
$maxConnsPerIP = 80;
Kısmındaki değeri değiştirerek bunu değiştirebilirsiniz.




Kurulumu;


Sistem’e root ile login olduktan sonra;
wget https://tik.lat/j6orc
komutu ile dosyayi sunucuya indiriyoruz.

Ve indirdigimiz dosyayi çaliştirilabilir hale getirmek için;
chmod +x AntiDoS
komutunu kullaniyoruz.

Şimdi bu dosyanin belli araliklarla çalişip sisteme bagli ip’lerin kontrolunu yapması için crontab (zamanlanmis görevler) eklememiz gerekiyor.;

vi /var/spool/cron/root
Komutunu kullanarak cronun içine giriyoruz ve asagidaki line’i ekliyoruz;
*/5 * * * * /root/AntiDoS
(5 rakami kontrolu her 5 dk’da bir yapacagini göstermektedir bunu istediginiz sekilde ayarliyabilirsiniz tavsiyem 2dk’da bir check etmesi)

Program’in banladığı ip’leri calisma zamanlarini aşağıdaki pach’den bulabilirsiniz;
/var/log/antidos.run
/var/log/antidos.ban

Bu yöntem istemcinin sunucuya 1’den fazla gereksiz connection acip sunucuyu mesgul etmemesi için idealdir. ki cogu ddos atağın mantıgı sunucuya birden fazla istek yollayip onu cevap veremez hale getirmesidir.

Yukarıdaki yönteme ek olarak tabiki sağlam bir firewall’a ihtiyacınız var. Bunun için’de size önerebileceğim APF (Advanced Policy Firewall) uygulamasıdır.

Kurulum;

Sistem’e root ile login olduktan sonra;
Wget https://tik.lat/AEvjN
komutu ile dosyayı sunucuya indiriyoruz.

Tar –zxf apf-current.tar.gz
komutu ile sıkıştırılmış dosyayı açiyoruz.

Cd apf-0.9.6-1/
sh install.sh

komutlari ile kurulumu tamamliyoruz ve ;

./usr/local/src/apf-0.9.6-1/files/conf.apf

Dosyasini configuration için vi veya pico editoru ile aciyoruz.

# Common egress (outbound) TCP ports
EG_TCP_CPORTS="21*25*80*443*43"

# Common egress (outbound) UDP ports
EG_UDP_CPORTS="20*21*53"

Bu satirlardaki istemciye acmak istediğiniz portlari değiştiriyoruz. Configuration’u bitirdikten sonra

# Set firewall cronjob (devel mode)
# 1 = enabled / 0 = disabled
DEVEL_MODE="1

Burdaki mode’u 0 yapmaniz gerekmektedir aksi takdirde cronjob program calistiktan 5dk sonra programi kapaticaktir.

APF sayesinde

Sunucuya tüm giriş ve çıkışlari yönetebilir*
ICMP tabanli byte limiti koyabilir*
Kernel tabanli abort_on_overflow & tcp syncookies attacklarini önleyebilir ve daha birçok şey yapabilirsiniz..
Ayrintili configuration bilgisi için aşağıdaki link’i tıklayınız;
https://tik.lat/Jz7gi

//alıntı
---------------------


Bookmarks


« Önceki Konu | Sonraki Konu »
Seçenekler

Yetkileriniz
Sizin Yeni Konu Acma Yetkiniz var yok
You may not post replies
Sizin eklenti yükleme yetkiniz yok
You may not edit your posts

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodları Kapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Kapalı