WHM’de Mod_Security ile Gelişmiş Web Güvenliği: Adım Adım
Web uygulamaları, günümüzün dijital dünyasında siber saldırganlar için sürekli bir hedef teşkil etmektedir. SQL Enjeksiyonu, Siteler Arası Komut Dosyası Çalıştırma (XSS), Uzaktan Dosya Ekleme (RFI) ve Yerel Dosya Ekleme (LFI) gibi yaygın zafiyetler, kritik verilerin çalınmasına veya sistemlerin ele geçirilmesine yol açabilir. Bu tür tehditlere karşı güçlü bir savunma hattı oluşturmak, özellikle cPanel/WHM gibi popüler hosting kontrol panelleri kullanan sunucu yöneticileri için hayati önem taşır. İşte bu noktada, bir Web Uygulama Güvenlik Duvarı (WAF) olan Mod_Security devreye girer. Bu makalede, WHM üzerinden Mod_Security’yi nasıl kuracağınızı, yapılandıracağınızı, karşılaşabileceğiniz sorunları nasıl gidereceğinizi ve web sitelerinizin güvenliğini nasıl en üst düzeye çıkaracağınızı adım adım inceleyeceğiz.
Mod_Security Nedir ve Neden Önemlidir?
Mod_Security, Apache, Nginx ve IIS gibi web sunucuları için tasarlanmış açık kaynaklı bir Web Uygulama Güvenlik Duvarı’dır (WAF). Temel amacı, web uygulamalarına yönelik saldırıları tespit etmek ve engellemektir. Gelen HTTP isteklerini ve giden HTTP yanıtlarını gerçek zamanlı olarak izleyerek, kötü amaçlı kalıpları ve bilinen saldırı imzalarını tanımlar. Bir saldırı tespit edildiğinde, Mod_Security isteği engelleyebilir, bir hatayla yanıt verebilir veya belirli bir eylemi tetikleyebilir.
Mod_Security’nin önemi, sadece bilinen zafiyetlere karşı koruma sağlamakla kalmayıp, aynı zamanda sıfırıncı gün (zero-day) saldırılarına karşı da bir miktar koruma sunabilmesidir. Özellikle OWASP Top 10 gibi en kritik web uygulama güvenlik risklerini hedef alan kural setleriyle çalışır. WHM/cPanel ortamında Mod_Security’nin entegrasyonu, sunucu yöneticilerine merkezi ve kullanıcı dostu bir arayüz üzerinden güçlü bir güvenlik katmanı ekleme imkanı sunar.
WHM Üzerinden Mod_Security Kurulumu ve Yönetimi
Mod_Security’yi WHM sunucunuza kurmak ve yönetmek oldukça basittir, ancak bazı ön adımları ve dikkat edilmesi gereken noktaları içerir.
Adım 1: Kurulum Öncesi Kontroller
Mod_Security’yi kurmadan önce, sunucunuzda EasyApache 4’ün kurulu ve aktif olduğundan emin olmalısınız. Çoğu modern cPanel/WHM kurulumunda bu zaten böyledir. EasyApache 4 arayüzüne (WHM > Software > EasyApache 4) giderek ‘Currently Installed Packages’ altında mod_security2 modülünün etkin olup olmadığını kontrol edebilirsiniz. Eğer etkin değilse, ‘Customize’ seçeneği ile Apache modüllerini düzenleyerek etkinleştirmeniz gerekecektir.
Adım 2: Mod_Security Yüklemesi
Mod_Security’yi WHM arayüzü üzerinden yüklemek için aşağıdaki adımları izleyin:
- WHM panelinize root olarak giriş yapın.
- Sol menüde ‘Security Center’ (Güvenlik Merkezi) bölümüne gidin.
- ‘ModSecurity Configuration’ (ModSecurity Yapılandırması) seçeneğine tıklayın.
- Bu sayfada, Mod_Security’nin mevcut durumunu göreceksiniz. Eğer yüklü değilse, ‘Install ModSecurity’ (ModSecurity Yükle) butonunu göreceksiniz. Tıklayarak yükleme işlemini başlatın.
- Yükleme tamamlandıktan sonra, Mod_Security’nin Apache ile entegre olduğunu gösteren bir mesaj alacaksınız.
Mod_Security Kurallarının Yönetimi
Mod_Security, tek başına bir güvenlik duvarı değildir; asıl gücü, kullandığı kural setlerinden gelir. WHM, çeşitli kural setlerini kolayca yönetmenize olanak tanır.
Kural Seti Seçimi ve Etkinleştirme
Mod_Security Configuration sayfasında, ‘ModSecurity Tools’ bölümünün altında ‘Rule Sets’ (Kural Setleri) sekmesini bulacaksınız. Burada, farklı Mod_Security kural setlerini görebilirsiniz. En popüler ve önerilen kural setleri şunlardır:
- OWASP ModSecurity Core Rule Set (CRS): Web uygulamalarına yönelik en yaygın saldırılara karşı geniş bir koruma sağlayan endüstri standardı bir kural setidir. Genellikle varsayılan olarak etkinleştirilir ve şiddetle tavsiye edilir.
- Comodo ModSecurity Rules: Comodo tarafından sağlanan, OWASP CRS’ye ek olarak farklı saldırı türlerine karşı koruma sağlayan bir kural setidir.
- Atomic ModSecurity Rules: Atomicorp tarafından sunulan ücretli bir kural setidir. Geniş kapsamlı koruma ve düzenli güncellemeler sunar.
İhtiyaçlarınıza göre bu kural setlerini etkinleştirebilir veya devre dışı bırakabilirsiniz. OWASP CRS’yi etkin tutmak genellikle iyi bir başlangıç noktasıdır. Her bir kural setinin yanında bulunan anahtarı kullanarak durumu değiştirebilirsiniz. Değişiklikleri kaydetmeyi unutmayın.
Kural Yapılandırması ve İnce Ayarlar
Mod_Security’yi sadece etkinleştirmek yeterli değildir; yanlış pozitifleri önlemek ve performansı optimize etmek için ince ayarlar yapmak önemlidir.
İstisnalar Oluşturma (Whitelist)
Mod_Security, bazen meşru trafiği de kötü amaçlı olarak algılayabilir ve engelleyebilir. Bu durumlara ‘yanlış pozitifler’ denir. Yanlış pozitifleri önlemek için belirli kuralları, URL’leri veya IP adreslerini hariç tutmanız gerekebilir.
WHM’deki ‘ModSecurity Configuration’ sayfasında, ‘ModSecurity Tools’ altında ‘Rules List’ (Kural Listesi) veya ‘Whitelist’ (Beyaz Liste) seçeneklerini bulabilirsiniz. Bir kuralı devre dışı bırakmak için, Mod_Security günlüklerinde (ileride açıklanacaktır) tespit ettiğiniz kural ID’sini kullanarak bir istisna oluşturabilirsiniz. Örneğin, belirli bir URL için belirli bir kuralı devre dışı bırakmak için SecRuleRemoveById direktifini kullanabilirsiniz. Ancak WHM arayüzü genellikle daha kullanıcı dostu bir yol sunar ve belirli bir etki alanı veya kullanıcı için kural setlerini tamamen devre dışı bırakmaya olanak tanır.
Günlük Kayıtları ve İzleme
Mod_Security’nin etkinliğini izlemek ve yanlış pozitifleri tespit etmek için günlük kayıtları hayati öneme sahiptir. Mod_Security günlükleri genellikle /var/log/apache2/modsec_audit.log veya /var/log/apache2/error_log dosyalarında bulunur. Bu günlükler, hangi kuralın hangi isteği engellediğini, kaynak IP adresini ve diğer ilgili bilgileri içerir. WHM’nin ‘ModSecurity Tools’ bölümünde ayrıca ‘Hit List’ (İsabet Listesi) veya ‘Audit Log’ (Denetim Günlüğü) gibi araçlar bulunabilir, bu da günlükleri daha anlaşılır bir şekilde görüntülemenizi sağlar. Günlükleri düzenli olarak kontrol etmek, güvenlik politikanızı iyileştirmenize yardımcı olacaktır.
Sık Karşılaşılan Sorunlar ve Çözümleri (Troubleshooting)
Mod_Security’yi kullanırken karşılaşabileceğiniz bazı yaygın sorunlar ve bunların çözümleri aşağıdadır:
Yanlış Pozitifler (False Positives)
Belirtiler: Web sitenizin belirli bölümleri çalışmıyor, kullanıcılar belirli formları gönderemiyor veya belirli sayfalar yüklenmiyor. Mod_Security günlüklerinde meşru isteklerin engellendiğini gösteren girdiler var.
Çözüm: Audit log’ları dikkatlice inceleyin. Hangi kural ID’sinin isteği engellediğini belirleyin. WHM arayüzündeki ‘Rules List’ veya ‘Whitelist’ bölümünden bu kural ID’sini hariç tutun veya belirli bir URL/IP adresi için istisna oluşturun. Kuralı tamamen devre dışı bırakmak yerine, daha dar kapsamlı istisnalar oluşturmaya çalışın.
Performans Sorunları
Belirtiler: Sunucu yükünde artış, web sitelerinin yavaş yanıt vermesi, CPU veya bellek kullanımında ani yükseliş.
Çözüm: Mod_Security, özellikle çok sayıda kural seti etkinleştirildiğinde veya kural setleri iyi optimize edilmediğinde sunucu kaynaklarını tüketebilir. Öncelikle, kullanmadığınız kural setlerini devre dışı bırakın. Yalnızca OWASP CRS gibi temel bir seti etkin tutmayı deneyin. Gerekirse, belirli yüksek trafikli alan adları için Mod_Security’yi geçici olarak devre dışı bırakarak performansı test edin. ‘DetectionOnly’ modunu kullanarak kuralları sadece izleyebilir, engellemeyebilirsiniz, bu da performansı etkilemeden sorunları tespit etmenize yardımcı olur.
Kurulum Hataları
Belirtiler: Mod_Security’nin WHM’de yüklenememesi, Apache’nin başlamaması veya hata vermesi.
Çözüm: EasyApache 4’te mod_security2 modülünün doğru bir şekilde yüklü ve etkin olduğundan emin olun. WHM’deki hata mesajlarını dikkatlice okuyun. Sunucu günlüklerini (/var/log/apache2/error_log) kontrol ederek daha detaylı bilgi edinebilirsiniz. Bazen basit bir Apache yeniden başlatması (/scripts/restartsrv_apache) sorunu çözebilir.
Güvenlik İpuçları ve En İyi Uygulamalar
- Düzenli Güncellemeler: Kural setlerinizi ve Mod_Security modülünü düzenli olarak güncelleyin. Yeni tehditlere karşı korunmak için bu hayati öneme sahiptir.
- Diğer Güvenlik Katmanlarıyla Entegrasyon: Mod_Security tek başına yeterli değildir. CSF/LFD (ConfigServer Security & Firewall), güncel yazılımlar, güçlü parolalar ve düzenli yedeklemeler gibi diğer güvenlik önlemleriyle birlikte kullanın.
- Özel Kurallar: Belirli uygulama ihtiyaçlarınıza veya bilinen zafiyetlere yönelik özel Mod_Security kuralları yazmayı öğrenin. Bu, daha hedefe yönelik bir koruma sağlar.
- Test Ortamı: Yeni kural setlerini veya yapılandırma değişikliklerini üretim ortamına uygulamadan önce bir test ortamında denemek, beklenmeyen sorunları önleyecektir.
Performans Optimizasyonları
Mod_Security’nin performansı üzerindeki etkisini minimize etmek için şunları yapabilirsiniz:
- Gereksiz Kuralları Devre Dışı Bırakın: Kullanmadığınız veya yanlış pozitiflere neden olan belirli kuralları devre dışı bırakın.
- Etki Alanı Bazında Yönetim: Mod_Security’yi yalnızca riskli olduğunu düşündüğünüz belirli etki alanları için etkinleştirin. WHM, kullanıcılar veya etki alanları bazında Mod_Security’yi etkinleştirme/devre dışı bırakma seçeneği sunar.
- ‘DetectionOnly’ Modu: Mod_Security’yi ‘DetectionOnly’ (Sadece Tespit) modunda çalıştırarak kuralların sadece ihlalleri kaydetmesini sağlayın, ancak engelleme yapmayın. Bu, performansı etkilemeden potansiyel sorunları izlemenizi sağlar.
- Hafif Kural Setleri: Performans kritik uygulamalar için daha hafif veya daha az kapsamlı kural setlerini tercih edebilirsiniz.
Mod_Security, web uygulamalarınızı sürekli gelişen siber tehdit ortamında korumak için güçlü ve esnek bir araçtır. Doğru kurulum, dikkatli yapılandırma ve düzenli izleme ile web sitelerinizin güvenliğini önemli ölçüde artırabilir ve potansiyel saldırılara karşı sağlam bir savunma hattı oluşturabilirsiniz. Unutmayın ki güvenlik dinamik bir süreçtir ve sürekli dikkat, güncelleme ve iyileştirme gerektirir; Mod_Security bu sürecin önemli bir parçasıdır.

