Windows Sunucularda DNS Kaynaklı SYN Flood / SYN_RECEIVED Sorunu ve Çözümü
Windows sunucularda zaman zaman web servislerinin cevap vermemesi, port 80 ve 443 üzerinde çok sayıda SYN_RECEIVED birikmesi ve sistemin yavaşlaması gibi problemler yaşanabilir. İlk bakışta dışarıdan gelen bir DDoS saldırısı gibi görünse de, bazı durumlarda sorun aslında sunucunun kendi DNS servisinden kaynaklanır.
Bu yazıda, yaşadığımız gerçek bir olay üzerinden Windows DNS servisinin kendi kendine SYN flood benzeri trafik oluşturması, bunun nedenleri ve kalıcı çözüm adımlarını anlatıyoruz.
🔍 Sorunun Belirtileri
Sunucuda aşağıdaki davranışlar gözlemlendi:
- Port 80 ve 443 üzerinde yüzlerce SYN_RECEIVED bağlantı
- Web servislerinin yanıt verememesi
- CPU düşük, fakat network yoğun
- Dışarıdan gelen ciddi bir trafik görünmüyor
- DNS servisi durdurulduğu anda tüm sorunların anında düzelmesi
netstat çıktısı incelendiğinde şunlar dikkat çekti:
- DNS servisine (PID 1240) ait binlerce UDP portu açılmıştı
- 53000–54000 arasında on binlerce açık UDP port bulunuyordu
- Sunucu DNS üzerinden dış adreslere sürekli istek gönderiyor gibi görünüyordu
Bu tablo genellikle DNS servisinin recursive loop’a girmesi durumunda ortaya çıkar.
🧨 Sorunun Kaynağı: DNS Recursive Loop (Kendi Kendine Trafik Üretimi)
Windows DNS, bazı yanlış yapılandırmalarda:
- recursive query döngüsüne girebilir
- bozuk bir DNS forwarder'a sürekli istek atabilir
- cevap alamayınca tekrar deneyerek kendi kendine flood üretir
Bu durum sonunda:
✔ SYN backlog dolar
✔ web servisi cevap vermez
✔ dışarıdan gelen trafik gibi görünür
✔ fakat saldırı tamamen içeriden oluşur
DNS servisinin durdurulmasıyla sistemin anında normale dönmesi, sorunun kaynağını kesin olarak DNS’e işaret eder.
🛠 Çözüm Adımları
### 1) DNS Recursion’ı Kapattık
Recursive DNS sorguları dışarıya açık olduğunda hem güvenlik riski oluşturur, hem de loop’a sebep olabilir.
Komut:
dnscmd localhost /config /NoRecursion 1
### 2) Bozuk Forwarder Ayarlarını Temizledik
Yanlış yapılandırılmış forwarder (Google DNS, Cloudflare, ISP DNS vb.), loop’un ana sebebi olabilir.
Komut:
dnscmd localhost /ResetForwarders
### 3) DNS Cache Sıfırlama
Kuyrukta kalan bozuk DNS sorgularını temizlemek için:
Clear-DnsServerCache
ipconfig /flushdns
### 4) DNS Servisini Yeniden Başlattık
Restart-Service DNS
Bu işlem sonrasında:
- UDP port fırtınası durdu
- SYN_RECEIVED bağlantılar kayboldu
- Web servisleri normal çalışmaya başladı
🛡 Kalıcı Güvenlik Önerileri
Bu tür durumların tekrar yaşanmaması için şu ayarları öneriyoruz:
- DNS recursion sadece iç ağa açık olsun
- Public sunucularda DNS servisi kullanılmıyorsa tamamen kapatın
- Zone transferlerini devre dışı bırakın
- Firewall’da port 53’ü sadece gerekli IP’lere açın
- Periodik DNS log kontrolleri yapın
🎯 Sonuç
Bu olay, her SYN flood benzeri görünümün mutlaka dışarıdan gelen bir DDoS saldırısı olmadığını gösteriyor.
Bazen sorun tamamen sunucunun kendi DNS servisinin bozulması sonucunda ortaya çıkabiliyor.
Doğru teşhis ve birkaç yapılandırma ayarıyla, sistem tamamen normale döndü.
Bu tür problemlerle karşılaşırsanız Sunucu.com.tr ekibi olarak her zaman destek olmaktan memnuniyet duyarız.