DNS sunucunuzu DOS/DDOS saldırılarından koruyun!

DNS ve DNS sunucular, özellikle Internet'te vazgeçilmez ve günlük hayatta farketmesek de her an DNS sunucularını sürekli kullanıyoruz :) DNS kullanımı ile ilgili detaylı bilgiye Wikipedia üzerinden ulaşabilirsiniz.

Birkaç gün önce DNS DDOS saldırısı ile ilgili bir tweet atmıştım. Saldırı ile ilgili ulaşan firma, bir anda sunucu üzerindeki trafiğin çok arttığından, dolayısıyla sunucu üzerindeki web sitelerinin yavaşlamasından şikayetçiydi.


DNS saldırısı sırasında sunucu trafiği

Sitelerin yavaşlamasının nedeni servis sağlayıcının yüksek trafik nedeniyle sunucunun bant genişliğini sınırlamasından kaynaklanıyordu. Peki normalde 5-10 Mbit arası trafik yapan sunucu nasıl olmuştu da bir anda 60 Mbit trafik yapar hale gelmişti?

Sunucuya bağlandığımda öncelikle IIS üzerindeki Worker Processes kısmına baktım. Ancak herhangi bir ekstra trafik görünmüyordu web sitelerinde. Sunucu üzerinden geçen trafiğe baktığımda DNS sunucusunda anormal bir hareket olduğunu fark ettim. Web sunucusu aynı zamanda DNS hizmeti de sunuyordu ve bu hizmete bir saldırı var gibiydi.

Sunucunun sahibi olan firma web sitelerinin DNS hizmetini de kendisi sağlıyordu. Ancak buradaki sıkıntı DNS sunucusu üzerinde ilgili ayarların eksik yapılması idi. Nedenini şöyle açıklamaya çalışacağım :

Internet'e bağlandığımızda genellikle servis sağlayıcılara ait DNS sunucularını veya public hizmet veren DNS sunucularını kullanırız. Bu DNS sunucuları Wikipedia'da açıklandığı gibi yetkili isim sunucusu (authoritive name server) olmasalar bile bir sorgu geldiğinde İngilizce Wikipedia sayfasında açıklandığı gibi  cevabı ilgili sunuculardan öğrenip iletebilirler.


Public bir DNS sunucunun kendisinde kayıt olmasa da cevabı

Windows server üzerinde çalışan DNS sunucusu, kurulduğunda varsayılan ayarlar ile üzerinde bulunan kayıtlar ile ilgili cevap vermenin yanısıra public DNS sunucuları gibi diğer sorgulara da cevap vermeye çalışır. Saldırı altında olan sunucuda da gerekli ayarlar yapılmadığı için tüm sorgulara cevap vermeye çalışıyordu.

Sunucunun varsayılan ayarlar ile 2 yılı aşkın bir süredir çalıştığı ve problem yaşanmadığı iletildi. Evet, ayarlar değiştirilmeden problemsiz bir şekilde DNS hizmetinin çalışması mümkün. Ancak bu açık kötü niyetli kişiler tarafından bir şekilde fark edildiğinde yaşanılan şekilde saldırıya maruz kalınabiliyor. Bu saldırılara maruz kalmamak mümkün mü? Elbette mümkün!

DNS sunucu ayarları

DNS sunucusunun öncelikle sadece kendi üzerindeki kayıtlara cevap vermesi (authoritive answer) için ayar yapmamız gerekiyor. Bunun için Server Manager veya Administrative Tools > DNS yoluyla DNS yönetim ekranına ulaşıp sağ tıklamak gerekiyor. Açılan ekranda Advanced kısmında Disable recursion (also disables forwarders) kısmını işaretlemek yeterli.


DNS sunucusunu sadece kendi kayıtlarına cevap verecek şekilde ayarlıyoruz

Not : Bu yaptığınızda DNS sunucusu sadece kendi üzerindeki kayıtlar ile ilgili cevap vereceği için farklı bilgisayarların Internet erişiminde bu DNS sunucusunu kullanmak erişim problemlerine sebep olacaktır.

Bu ayarı yapınca işimiz maalesef bitmiyor :D Çünkü şu anda sunucumuz halen sorgulara cevap veriyor. Verdiği cevap root DNS sunucularını göstermek olsa da saldırının devam etmesi söz konusu.


Ayarın aktif edilmesi sonrası DNS sunucumuz root DNS'lere yönlendirme yapıyor

Saldırıyı önlemek için root DNS sunucuları ile ilgili de cevapları engellememiz gerekiyor. Bunun için az DNS ile ilgili ekranda Root Hints tabına geçip tüm root DNS sunucu kayıtlarını silmek yeterli.


Root DNS sunucular

Bu ayarlardan sonra DNS sunucusuna birileri saldırmaya çalışsa bile aşağıdaki gibi bir cevap alacağı için çok fazla trafik oluşturamayacak ve bir süre sonra da vazgeçecektir :D

<

 

Comments

Comments (8) -

Fatih Kızmaz
1 haftadır sunucum üzerindeki 3e katlanan trafik artışının sebebini arıyordum. Bu makale çok faydalı oldu. Sonsuz teşekkürlerimi bir borç bilirim. Saygılar.
MuammerBenzes
@Fatih Kızmaz : İşinize yaramasına sevindim.
Mehmet Helvacıköylü
hayati önem taşıyan bir makale olmuş. nasıl teşekkür etsem bilemiyorum.
MuammerBenzes
@Mehmet : İşe yaramasına sevindim.
Harun Yeşilyurt
Bu makale çok faydalı oldu, emeğinize elinize sağlık, çok teşekkür ediyorum.
erman şeneren
çok yararlı bir yazı. teşekkürler.
Armitage Corto
bu kadar kafa bulandırmaya gerek yok aslında. çalıştığım firmada win32-bind9 kullanıyorum, sadece sistem hosts dosyası ile root sunucuları engellemem yetiyor.
MuammerBenzes
BIND kullanmak sizin tercihiniz. Windows DNS kullanmak da başkalarının tercihi. Buradaki yöntem de bu şekilde.