Linux Sisteminizi SYN DoS Saldırılarına Karşı Korumak..!!

St.AnGeR

Document Visor..
Katılım
17 Haz 2005
Mesajlar
1,832
Reaction score
0
Puanları
0
Konum
ιѕт              HHuser№: 9          Remote Admi
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. (www.snort.org) (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

Kod:
[B]$maxConnsPerIP = 80[/B];

Kısmındaki değeri değiştirerek bunu değiştirebilirsiniz.


Kurulumu;


Sistem’e root ile login olduktan sonra;

Kod:
[B]wget http://www.webkeyfi.com/AntiDoS[/B]

komutu ile dosyayi sunucuya indiriyoruz.


Ve indirdigimiz dosyayi çaliştirilabilir hale getirmek için;

Kod:
[B]chmod +x AntiDoS[/B]

komutunu kullaniyoruz.


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


Kod:
[B]vi /var/spool/cron/root[/B]
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;

Kod:
Wget http://www.r-fx.org/downloads/apf-current.tar.gz

komutu ile dosyayı sunucuya indiriyoruz.


Kod:
Tar –zxf apf-current.tar.gz

komutu ile sıkıştırılmış dosyayı açiyoruz.


Kod:
Cd apf-0.9.6-1/

sh install.sh


komutlari ile kurulumu tamamliyoruz ve ;


Kod:
./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 shey yapabilirsiniz..

Ayrintili configuration bilgisi ichn ashağıdaqi link’i tıqlayınıs;

http://www.r-fx.org/apf/README
 
server kullanlar için çok önemli bi yazı

ellerine saglık ;)
 
Geri
Üst