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

C0M!S3R-eX

Uzman üye
14 Kas 2006
1,174
27
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ı
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.