Apache Web Sunucusunda ModSecurity ile Web Uygulama Güvenlik Duvarı (WAF) Kurulumu 
Selam sistemciler!
Bugün, web sunucularımızın kapısına sağlam bir bekçi dikmenin tam zamanı. Hepimiz Nginx'in popülerliğini biliyoruz, ama klasik ve güçlü dostumuz Apache de güvenlik konusunda asla hafife alınmamalı. Özellikle de ModSecurity gibi bir eklentiyle birleştiğinde! Eğer sunucunuzda Apache çalıştırıyorsanız ve ekstra bir güvenlik katmanı arıyorsanız, doğru yerdesiniz.
ModSecurity Nedir ve Neden Önemli?
ModSecurity, Apache (ve Nginx/IIS) için açık kaynaklı, çapraz platform bir Web Uygulama Güvenlik Duvarı (WAF) modülüdür. Temel işlevi, HTTP(S) trafiğini gerçek zamanlı olarak izlemek, analiz etmek ve olası saldırıları engellemektir. SQL Enjeksiyonu, Siteler Arası Komut Dosyası Çalıştırma (XSS), Dosya Ekleme gibi OWASP Top 10 açıklarına karşı proaktif bir kalkan görevi görür.
Adım Adım Kurulum (Ubuntu/Debian Örneği)
1. Güncellemeler ve Gerekli Paketler: İşe her zamanki gibi paket listesini güncelleyerek başlıyoruz.
2. ModSecurity'yi Etkinleştirme: Modül genellikle kurulumla birlikte gelir, ama etkin olduğundan emin olalım.
3. OWASP Core Rule Set (CRS) Kurulumu: ModSecurity'nin asıl gücü, onu yöneten kurallardan gelir. En güncel ve etkili kurallar OWASP CRS'dir. Bunu kural dizini olarak kullanacağız.
4. Apache'yi OWASP Kuralları ile Yapılandırma: Şimdi Apache'ye bu kuralları nerede bulacağını ve nasıl uygulayacağını söyleyelim.
`/etc/apache2/mods-enabled/security2.conf` dosyasını düzenleyin. İçeriğini aşağıdaki gibi yapılandırabilirsiniz:
5. ModSecurity Yapılandırmasını Ayarlama: `/etc/modsecurity/modsecurity.conf` dosyasında iki kritik ayar var:
6. Apache'yi Yeniden Başlatma ve Test:
Kurulumun çalıştığını test etmek için tarayıcınızdan `
<script>alert('test')</script>` gibi basit bir XSS test sorgusu gönderin. Apache'niz 403 Forbidden hatası vermelidir. 
Temel Optimizasyon ve Yanlış Pozitifleri Yönetme
ModSecurity, özellikle CRS ile birlikte, bazen meşru trafiği de engelleyebilir (yanlış pozitif). Bu durumda panik yapmayın!
Son Sözler
ModSecurity, Apache sunucunuz için güçlü ve esnek bir zırh sağlar. Başlangıçta biraz yanlış pozitif alarmla uğraşmanız gerekse de, bu, güvenliğin doğal bir parçasıdır. Önce SecRuleEngine DetectionOnly modunda (sadece logla, engelleme) test etmeniz, kurallara alıştıktan sonra tam korumaya geçmeniz önerilir.
Unutmayın, güvenlik tek seferlik bir kurulum değil, sürekli bir süreçtir. OWASP CRS kuralları düzenli güncellenir, bu yüzden klonladığınız repo'yu periyodik olarak güncellemeyi (`git pull`) ihmal etmeyin.
Peki ya siz? Apache + ModSecurity kullanıyor musunuz? Karşılaştığınız en ilginç saldırı girişimi veya çözmekte zorlandığınız bir yanlış pozitif durumu oldu mu? Yorumlarda deneyimlerinizi paylaşın, birlikte öğrenelim!
Selam sistemciler!
ModSecurity Nedir ve Neden Önemli?
ModSecurity, Apache (ve Nginx/IIS) için açık kaynaklı, çapraz platform bir Web Uygulama Güvenlik Duvarı (WAF) modülüdür. Temel işlevi, HTTP(S) trafiğini gerçek zamanlı olarak izlemek, analiz etmek ve olası saldırıları engellemektir. SQL Enjeksiyonu, Siteler Arası Komut Dosyası Çalıştırma (XSS), Dosya Ekleme gibi OWASP Top 10 açıklarına karşı proaktif bir kalkan görevi görür.
Adım Adım Kurulum (Ubuntu/Debian Örneği)
1. Güncellemeler ve Gerekli Paketler: İşe her zamanki gibi paket listesini güncelleyerek başlıyoruz.
Bash:
sudo apt update && sudo apt upgrade -y
sudo apt install apache2 libapache2-mod-security2 -y
2. ModSecurity'yi Etkinleştirme: Modül genellikle kurulumla birlikte gelir, ama etkin olduğundan emin olalım.
Bash:
sudo a2enmod security2
sudo systemctl restart apache2
3. OWASP Core Rule Set (CRS) Kurulumu: ModSecurity'nin asıl gücü, onu yöneten kurallardan gelir. En güncel ve etkili kurallar OWASP CRS'dir. Bunu kural dizini olarak kullanacağız.
Bash:
# Önce mevcut örnek kuralları yedekleyip kaldıralım
sudo mv /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf
sudo rm -rf /usr/share/modsecurity-crs
# OWASP CRS'yi GitHub'dan klonlayalım
sudo apt install git -y
sudo git clone https://github.com/coreruleset/coreruleset /usr/share/modsecurity-crs
cd /usr/share/modsecurity-crs
sudo mv crs-setup.conf.example crs-setup.conf
sudo mv rules/REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf.example rules/REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf
4. Apache'yi OWASP Kuralları ile Yapılandırma: Şimdi Apache'ye bu kuralları nerede bulacağını ve nasıl uygulayacağını söyleyelim.
`/etc/apache2/mods-enabled/security2.conf` dosyasını düzenleyin. İçeriğini aşağıdaki gibi yapılandırabilirsiniz:
Kod:
<IfModule security2_module>
SecDataDir /var/cache/modsecurity
IncludeOptional /usr/share/modsecurity-crs/crs-setup.conf
IncludeOptional /usr/share/modsecurity-crs/rules/*.conf
</IfModule>
5. ModSecurity Yapılandırmasını Ayarlama: `/etc/modsecurity/modsecurity.conf` dosyasında iki kritik ayar var:
Kod:
# Denetim (Loglama) modundan Engelleme moduna geçiş yapın:
SecRuleEngine On
# Hata ayıklama seviyesini makul bir seviyeye çekin (0 veya 1 önerilir):
SecDebugLogLevel 0
6. Apache'yi Yeniden Başlatma ve Test:
Bash:
sudo systemctl restart apache2
Bu bağlantı ziyaretçiler için gizlenmiştir. Görmek için lütfen giriş yapın veya üye olun.
Temel Optimizasyon ve Yanlış Pozitifleri Yönetme
ModSecurity, özellikle CRS ile birlikte, bazen meşru trafiği de engelleyebilir (yanlış pozitif). Bu durumda panik yapmayın!
- Öncelikle Apache hata loglarını (`/var/log/apache2/error.log` veya `modsec_audit.log`) kontrol edin. Hangi kuralın (ör. `id:942100`) tetiklendiğini göreceksiniz.
- Engeli kaldırmak için, `/usr/share/modsecurity-crs/rules/` altındaki ilgili `REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf` dosyasına kuralı devre dışı bırakacak satırları ekleyebilirsiniz. Örneğin, belirli bir kural ID'sini belirli bir yol için devre dışı bırakmak:
*Dikkat:* Kuralları tamamen devre dışı bırakmak yerine, sadece belirli bir uygulama veya parametre için geçersiz kılmak daha güvenlidir.Kod:SecRuleRemoveById 942100 - Performans için, statik dosya dizinlerinde (resim, css, js) ModSecurity'yi kapatabilirsiniz. Apache `<Directory>` direktifi içinde `SecRuleEngine Off` diyerek bunu yapabilirsiniz.
Son Sözler
ModSecurity, Apache sunucunuz için güçlü ve esnek bir zırh sağlar. Başlangıçta biraz yanlış pozitif alarmla uğraşmanız gerekse de, bu, güvenliğin doğal bir parçasıdır. Önce SecRuleEngine DetectionOnly modunda (sadece logla, engelleme) test etmeniz, kurallara alıştıktan sonra tam korumaya geçmeniz önerilir.
Unutmayın, güvenlik tek seferlik bir kurulum değil, sürekli bir süreçtir. OWASP CRS kuralları düzenli güncellenir, bu yüzden klonladığınız repo'yu periyodik olarak güncellemeyi (`git pull`) ihmal etmeyin.
Peki ya siz? Apache + ModSecurity kullanıyor musunuz? Karşılaştığınız en ilginç saldırı girişimi veya çözmekte zorlandığınız bir yanlış pozitif durumu oldu mu? Yorumlarda deneyimlerinizi paylaşın, birlikte öğrenelim!