BLOG

ANASAYFA > BLOG > + Apache mod_qos ile Dos-dDos koruma
2008-07-26

Apache mod_qos ile Dos-dDos koruma

Webhosting firmalarının en büyük problemlerinden birisi rasgele kaynaklı saldırılardır. Dos ve dDos şu anda web hosting firmalarının olduğu gibi internetin de çok büyük bir sorunu bu aralar. Soruna kesin çözüm getirmeyen ama en azından “lamer” tabir edilen saldırganlara karşı geçici bir çözüm olabilecek yazılımlardan birisi de mod_qos dir. Unutmayın, daha iyi korunma daha profesyonel çözümler gerektirir. Bu yazılım şimdilik çok yeni ve daha çok yol kat edecek ancak işe yaradığı kanaatine vardık yapıtığımız testlerde. Daha detaylı testler ile perfomansını ölçeceğiz ve sizinle paylaşacağız Eğer siz de kurup denemek isterseniz işte size kısaca bir “howto” :) Sakın test sonuçlarınızı bize de yazmayı unutmayın. Bu kurulum Centos5 , WHM 11.23.2 ve Apache 2.2.8 kurulu bir sunucuda test edilmiştir.


Öncelikler cPanel sunucularda genelde bulunmayan ve bu yazılımın ihtiyaç duyduğu pcre paketlerini kuruyoruz.


yum -y install pcre pcre-devel


Kaynak kodumuzu indiriyoruz, arşivi açıp dizine giriyoruz


wget http://garr.dl.sourceforge.net/sourceforge/mod-qos/mod_qos-7.4-src.tar.gz tar zxvf mod_qos-7.4-src.tar.gz cd mod_qos-7.4/apache2/


Modülleri apxs ile derleyip Apache konfigürasyonuna ekliyoruz.


/usr/local/apache/bin/apxs -I/usr/include/pcre/ -iac mod_qos.c /usr/local/apache/bin/apxs -I/usr/include/pcre/ -iac mod_qos_control.c


Şimdi mod_qos in kullandığı araçların derlenmesine geldi. Bunlardan birisi qslog, diğeri qsfilter2. Qslog , apache access_log ları inceleyerek istatistik oluşturuyor. Kullanmadım ama ilgilenenler için linki . Qsfilter2 ise yine access loglarını iceleyip , şüpheli istekleri engelleyecek kuralları oluşturan bir yazılım. cPanel de loglar her virtualhost için ayrı tutulduğu için sanırım bunu sunucu genelinde kullanmak için log ayarlarını değiştirmek gerekebilir. Umarım bu araçları ileride test edebilir ve sizi bilgilendirebiliriz. Şimdi kaldığımız yerden devam edelim.


cd ../tools/ make cp qslog /usr/local/bin/ cd qsfilter/ nano Makefile


Bu kısımda Makefile içeriğinde değişklik yapmamız gerekmekte. Varsayılan apache kaynak kodları yolu cPanel sunculardaklinden farklı. O nedenle Makefile içinde geçen tüm “../../httpd” yollarını “/home/cpeasyapache/src/httpd-2.2.8/”  olacak şekilde değiştiriyoruz. Bu sizin kurulumunuza göre değişiklik gösterebilir.


make cp qsfilter2 /usr/local/bin cd /usr/local/apache/conf nano qos.conf


Oluşturduğumuz qos.conf dosyası mod_qos ayarlarının yapıldığı dosya olacak. Çokça ayar seçeneği var ancak biz en basitçe bu ayarları kullanacağız. Kısaca bir kaynak ip adresinden en fazla 10 bağlantı kabul edeceğiz ve toplam istek limitini virtual host başına 100 ile sınırlıyoruz. Unutmayın, her sunucunun konfigürasyonu hit profiline göre değişecektir. En iyi ayarları kendini bulabilirsiniz.


QSC_WorkingDirectory    /var/tmp/qosc QSC_Filter2Binary       /usr/local/bin/qsfilter2 QS_SrvMaxConnPerIP      10 QS_LocRequestLimitDefault       100 <Location /qos> SetHandler qos-viewer </Location>


Kaydedip çıkıyoruz ve mod_qos geçici dosyalarının kaydedileceği klasörü oluşturuyoruz.


mkdir -p /var/tmp/qosc chown nobody:nobody /var/tmp/qosc
Son olarak qos.conf u ayar dosyamıza Include ile ekliyoruz ve servisi yeniden başlatıyoruz.


nano httpd.conf


Şu satırı Include direktiflerinden birinin olduğu kısman yazın
Include “/usr/local/apache/conf/qos.conf” service httpd restart


http://ip_adresiniz/qos linki ile mod_qos çalışması ile ilgili bilgi alabileceğiniz bir sayfaya ulaşabilirsiniz. Bunu sadece test ortamında açık tutmanızı öneririm. İşiniz bitince qos.conf içindeki <Location /qos> direktiflerini kaldırın.


Umarım işinizi görecektir. Bu en basit ayarları ile kurulmuş halidir. Daha ayrıntılı ayarları http://mod-qos.sourceforge.net/ dan bulabilirsiniz.


Unutmadan yazayım. “Caution! Use it on your own risk!” :D


Avatar
Abdullah Altunbaş Teknik Şef
Netinternet de Teknik Birim Şefi olarak 2011 yılından itibaren çalışmaktayım.
Yorumlar

Henüz yorum yok.

Yorum Yap