Herkese selamlar, Uzun süredir kendi geliştirdiğim ev ortamında MiniSOC projemde aklımı kurcalayan bir konu vardı, elimde Fortigate 60E var, netgear routerlar var ve trafik ISS router üzerinden geliyor çok katmanlı bir savunma ağı inşa ettim. Fakat çok büyük DDoS saldırılarında ağım ne denli ayakta kalabilir?
İşte bunun cevabını bulmak için geçtiğimiz haftalarda LinkedIn ve Medium yazılarımda da belirttiğim üzere Mikrotik hEX Lite RB750R2 satın almıştım kendisi 10 senelik bir router ama hala iş görüyor. Router OS 7.20+ üzerinde bir versiyon kurulumu yaptım.

Şu an hala çalışmalarım aktif olarak devam ediyor router üzerinde. İlerleyen zamanlarda amacım NAT arkasında, DMZ, port yönlendirme veya bridge olmadan dış Dünya trafiğine tam açmadan ISS router/modem baskı altına alınırsa ve DNS - CDN servisleri çökmeye başlarsa birkaç dakikalığına WAN ve LAN tarafına çıkışları kapatmak. Ancak bundan önce basit düzey DDoS koruması üzerine yoğunlaştım.
Kabaca ağ topolojim bu halde, hala devam ediyor kurulumlar ve ekipman toplamaları. Henüz Mikrotik RB750GR3 satın almadım.
Burada aslında yaptığım çalışma RB750GR3 yerine RB750R2'yi yerleştirip bir test uygulamaktı. ISS router arkasına yerleştirdim ve aynı zamanda netgear arkasında da test ettim 5 tane civarı NAT var. Testin amacı sanki dışarıdan saldırganlar WAN tarafından gelip saldırıyormuş gibi davranış sergilemek.
Test Aşaması Test aşamasında ilk önce RB750R2'yi netgear arkasında konumlandırdım. Ardından aşağıda olan scriptleri çalıştırdım:
MikroTik Anti-DDoS Firewall Script (SYN Flood Protection + Address-List Logic)
Her komutun yanında açıklama bulunmaktadır.
-------------------------------------------------------------------------------
1) FASTTRACK devre dışı bırakılır.
FastTrack açık olursa firewall kurallarının büyük kısmı bypass edilir ve
DDOS tespit zinciri doğru çalışmaz.
-------------------------------------------------------------------------------
/ip firewall filter disable [find action=fasttrack-connection]
-------------------------------------------------------------------------------
2) SYN paketlerini özel DDOS tespit zincirine yönlendirme.
Bu işlem yalnızca WAN portundan (ör: ether1) gelen bağlantıları analiz eder.
-------------------------------------------------------------------------------
/ip firewall filter add chain=input protocol=tcp tcp-flags=syn in-interface=ether1 \ action=jump jump-target=detect-ddos comment="Jump SYN packets to DDOS detect chain"
-------------------------------------------------------------------------------
3) Normal bağlantı oranını geçen paketleri ayırma.
connection-limit=30,32 → aynı IP'nin 32-bit maskede 30 aktif bağlantı açması.
Limit aşılmazsa RETURN ile ana input zincirine geri döner.
-------------------------------------------------------------------------------
/ip firewall filter add chain=detect-ddos action=return connection-limit=30,32 \ comment="Allow normal TCP connection rate"
-------------------------------------------------------------------------------
4) Limit aşılırsa saldırgan IP'yi DDOS kara listesine ekle.
address-list-timeout=2m → IP'yi 2 dakika boyunca blacklistte tutar.
-------------------------------------------------------------------------------
/ip firewall filter add chain=detect-ddos action=add-src-to-address-list \ address-list=ddos-attackers address-list-timeout=2m \ comment="Add attacker IP to ddos-attackers list (2 min) "
-------------------------------------------------------------------------------
5) Hedef IP (kurban) listelenir.
Saldırı altında olan hedefi DDOS hedef listesine ekler.
-------------------------------------------------------------------------------
/ip firewall filter add chain=detect-ddos action=add-dst-to-address-list \ address-list=ddos-targets address-list-timeout=2m \ comment="Add target IP to ddos-targets list (2 min)"
-------------------------------------------------------------------------------
6) DDOS zincirinde kalan bütün anormal trafik DROP edilir.
Yani limit aşılmış ve address-list'e eklenmiş trafiğin tamamı engellenir.
-------------------------------------------------------------------------------
/ip firewall filter add chain=detect-ddos action=drop comment="Drop excessive SYN/DDOS traffic"
-------------------------------------------------------------------------------
7) Kara listedeki saldırgan IP'leri direkt DROP et.
Bu kural input zincirinde en üst sıralarda olmalıdır.
-------------------------------------------------------------------------------
/ip firewall filter add chain=input src-address-list=ddos-attackers \ action=drop comment="Drop traffic from DDOS attackers"
-------------------------------------------------------------------------------
8) DDOS ile ilgili kuralları firewall listesinde uygun sıraya taşı.
DDOS kurallarının diğer allow/accept kurallarının üzerinde olması gerekir.
-------------------------------------------------------------------------------
/ip firewall filter move [find comment~"DDOS"] 0
Bu komutları yazdıktan sonra 3 tane kali linux yüklü bilgisayar ile sırayla router'ı vurmaya başladım.
sudo hping3 -S -p 80 --flood IP adress
İlk başta bu komutlar işe yaramadı çünkü kural setlerinden öncesinde çok daha farklı kurallar yazmıştım sorunu anlayıp çözene kadar DDoS kurallarını en yukarıya sonrasında daha az önceliğe sahip kuralları en aşağıya doğru aldım.
Netgear tarafında OpenWRT tarafından bazı bloklama mekanizmaları olduğundan bu sefer farklı bir router üzerinde denemeler yaptım ve sistem kaynaklarını incelemeye başladım.
CPU kullanımı %90'lardan %55'lere düşmüştü.
Testim başarılı oldu denebilir. E50UG versiyonuna geçmeyi kararlaştırdım diyebilirim. Burada amacım aslında ileride çok büyük bir DDoS saldırısı olursa NAT yapısı arkasında Fortigate veya diğer ağ ekipmanlarımı korumak. Testlere devam ediyorum çalışmalarımı Medium ve LinkedIn üzerinde yayınlamaya devam edeceğim.
Bir yazımın daha sonuna geldim okuduğunuz için teşekkür ederim. :)