format_list_bulletedBu İçerikte Bahsedilen Konular
- arrow_rightModSecurity ile Web Uygulama Güvenlik Duvarı (WAF) Kurulumu
- arrow_rightWeb Uygulama Güvenlik Duvarı (WAF) Nedir?
- arrow_rightWAF'ın Temel İşlevleri
- arrow_rightModSecurity Nedir ve Neden Kullanılmalı?
- arrow_rightModSecurity'nin Avantajları
- arrow_rightModSecurity Kurulumu
- arrow_right1. CentOS/RHEL Sistemlerde Kurulum
- arrow_right2. Ubuntu/Debian Sistemlerde Kurulum
- arrow_right3. Nginx ile ModSecurity Kurulumu
- arrow_rightModSecurity Yapılandırması
- arrow_rightTemel Ayarlar
- arrow_rightOWASP Core Rule Set (CRS) Kurulumu
- arrow_rightCRS Kurulumu
- arrow_rightCRS Yapılandırma Seçenekleri
- arrow_rightModSecurity Kuralları ve Örnekler
- arrow_rightTemel Güvenlik Kuralları
- arrow_rightIP Engelleme Kuralı
- arrow_right速率 Sınırlaması
- arrow_rightModSecurity Test Etme
- arrow_right1. SQL Injection Testi
- arrow_right2. XSS Testi
- arrow_right3. Log Dosyalarını Kontrol Edin
- arrow_right4. OWASP CRS Test Araçları
- arrow_rightEn İyi Uygulamalar ve İpuçları
- arrow_rightGüvenlik Yapılandırması
- arrow_rightPerformans Optimizasyonu
- arrow_rightYaygın Hatalar ve Çözümler
- arrow_rightSonuç
ModSecurity ile Web Uygulama Güvenlik Duvarı (WAF) Kurulumu
Web uygulamaları, siber saldırılara karşı her zamankinden daha fazla tehdit altındadır. Kurumsal hosting çözümlerinde güvenlik, altyapının en kritik bileşenlerinden birini oluşturmaktadır. ModSecurity, açık kaynaklı bir Web Uygulama Güvenlik Duvarı (WAF) olarak web sunucularınızı SQL injection, XSS ve diğer yaygın saldırılara karşı korur. Bu kapsamlı rehberde, ModSecurity kurulumunu ve yapılandırmasını adım adım inceleyeceğiz.
Web Uygulama Güvenlik Duvarı (WAF) Nedir?
Web Uygulama Güvenlik Duvarı (WAF), web uygulamalarınız ile gelen istekler arasında bir kalkan görevi gören güvenlik sistemidir. Geleneksel güvenlik duvarlarından farklı olarak WAF, HTTP/HTTPS trafiğini analiz eder ve kötü niyetli istekleri engeller.
WAF'ın Temel İşlevleri
- **SQL Injection Koruması**: Saldırganların veritabanınıza yetkisiz erişimini engeller
- **XSS (Cross-Site Scripting) Koruması**: Kötü niyetli scriptlerin kullanıcı tarayıcılarında çalışmasını önler
- **CSRF Koruması**: Siteler arası istek sahtekarlığı saldırılarını engeller
- **DOS/DDOS Koruması**: Aşırı trafik isteklerini sınırlandırır
- **Bot Koruması**: Otomatik bot saldırılarını tespit eder ve engeller
ModSecurity Nedir ve Neden Kullanılmalı?
ModSecurity, Apache, Nginx ve IIS web sunucuları için geliştirilmiş açık kaynaklı bir WAF modülüdür. e-Ticaret hosting çözümlerinde özellikle kritik öneme sahiptir.
ModSecurity'nin Avantajları
| Özellik | Açıklama |
|---|---|
| Açık Kaynak | Ücretsiz ve topluluk destekli |
| Çoklu Platform Desteği | Apache, Nginx ve IIS ile uyumlu |
| OWASP CRS Entegrasyonu | Endüstri standardı güvenlik kuralları |
| Gerçek Zamanlı İzleme | Anlık tehdit tespiti ve kayıt |
| Esnek Yapılandırma | Özel kurallar oluşturma imkanı |
2024 verilerine göre, web uygulamalarının %43'ü SQL injection ve XSS saldırılarına maruz kalmaktadır. ModSecurity bu saldırıların %95'inden fazlasını engelleyebilmektedir.
ModSecurity Kurulumu
1. CentOS/RHEL Sistemlerde Kurulum
Öncelikle sisteminizi güncelleyin ve gerekli bağımlılıkları yükleyin:
# Sistem güncellemesi sudo yum update -y # EPEL deposu sudo yum install epel-release -y # ModSecurity ve Apache kurulumu sudo yum install mod_security mod_security_crs -y # Apache'yi yeniden başlatın sudo systemctl restart httpd
2. Ubuntu/Debian Sistemlerde Kurulum
# Paket listesini güncelleyin sudo apt update && sudo apt upgrade -y # ModSecurity kurulumu sudo apt install libapache2-mod-security2 -y # ModSecurity modülünü etkinleştirin sudo a2enmod security2 # Apache'yi yeniden başlatın sudo systemctl restart apache2
3. Nginx ile ModSecurity Kurulumu
Nginx kullanıcıları için ModSecurity kurulumu biraz farklıdır. ModSecurity nginx'e "connector" aracılığıyla entegre edilir:
# Gerekli bağımlılıkları yükleyin sudo apt install -y git build-essential libtool libpcre3 libpcre3-dev libssl-dev zlib1g-dev # ModSecurity kaynak kodunu indirin git clone https://github.com/SpiderLabs/ModSecurity.git cd ModSecurity git checkout v3.0.8 # Derleme ./build.sh ./configure make sudo make install # Nginx ModSecurity connector cd .. git clone https://github.com/SpiderLabs/ModSecurity-nginx.git
ModSecurity Yapılandırması
Temel Ayarlar
ModSecurity yapılandırma dosyasını düzenleyin:
# CentOS/RHEL için sudo nano /etc/httpd/conf.d/mod_security.conf # Ubuntu/Debian için sudo nano /etc/modsecurity/modsecurity.conf
Temel yapılandırma ayarları:
# ModSecurity'yi etkinleştirin SecRuleEngine On # İzleme modu (sadece loglama) # SecRuleEngine DetectionOnly # Güvenlik politikası SecPcreMatchLimit 1000 SecPcreMatchLimitRecursion 1000 # Request body ayarları SecRequestBodyLimit 13107200 SecRequestBodyNoFilesLimit 131072 SecRequestBodyLimitAction Reject # Response body ayarları SecResponseBodyLimit 524288 SecResponseBodyLimitAction ProcessPartial # Audit log ayarları SecAuditEngine RelevantOnly SecAuditLogRelevantStatus ^(?:5|4(?!04)) SecAuditLogParts ABIJDEFHZ SecAuditLogType Serial # Debug log SecDebugLog /var/log/httpd/modsec_debug.log SecDebugLogLevel 0
OWASP Core Rule Set (CRS) Kurulumu
OWASP CRS, ModSecurity için en kapsamlı ve güncel güvenlik kurallarını içerir. SSL sertifikası kurulumunun ardından WAF yapılandırması kritik önem taşır.
CRS Kurulumu
# CRS'i indirin cd /etc/httpd git clone https://github.com/coreruleset/coreruleset.git cd coreruleset # Örnek yapılandırmayı kopyalayın cp crs-setup.conf.example crs-setup.conf # Apache yapılandırma dosyasını güncelleyin sudo nano /etc/httpd/conf.d/mod_security.conf
Apache yapılandırma dosyasına ekleyin:
Include /etc/httpd/coreruleset/crs-setup.conf Include /etc/httpd/coreruleset/rules/*.conf
CRS Yapılandırma Seçenekleri
| Ayarlar | Değer | Açıklama |
|---|---|---|
| SecDefaultAction | phase:1,deny,status:403,log | Varsayılan engelleme aksiyonu |
| CRSEnforceBodyReadUrlEncode | 1 | Request body kontrolü |
| CRSCheckUtf8Encoding | 1 | UTF-8 kodlama kontrolü |
| CRSNormaliseCookies | 1 | Cookie normalizasyonu |
ModSecurity Kuralları ve Örnekler
Temel Güvenlik Kuralları
# SQL Injection koruması
SecRule REQUEST_URI|REQUEST_HEADERS|ARGS "@rx (?i)(\b(SELECT|INSERT|UPDATE|DELETE|DROP|UNION|ALTER|CREATE|TRUNCATE)\b)" \
"id:1001,phase:1,deny,status:403,msg:'SQL Injection attempt detected',logdata:'Matched %{MATCHED_VAR}'"
# XSS koruması
SecRule REQUEST_URI|REQUEST_HEADERS|ARGS "@rx (?i)("
3. Log Dosyalarını Kontrol Edin
# ModSecurity loglarını izleyin tail -f /var/log/httpd/modsec_audit.log # Hata loglarını kontrol edin tail -f /var/log/httpd/error_log
4. OWASP CRS Test Araçları
# CRS test kurallarını etkinleştirin # crs-setup.conf dosyasında: SecCtl Debug=1
En İyi Uygulamalar ve İpuçları
Güvenlik Yapılandırması
- **DetectionOnly Modunda Başlayın**: İlk olarak sadece loglama modunda çalıştırın, false positive'leri azaltın
- **Kuralları Kademeli Ekleyin**: Tüm kuralları aynı anda etkinleştirmeyin
- **Logları Düzenli İnceleyin**: Yanlış pozitifleri tespit edin ve kuralları ayarlayın
- **OWASP CRS'i Güncel Tutun**: Düzenli güncellemeler yapın
- **Whitelist Oluşturun**: Güvenilir IP'ler ve kullanıcılar için istisnalar tanımlayın
Performans Optimizasyonu
ModSecurity performansını artırmak için:
# PCRE optimizasyonu SecPcreMatchLimit 1000 SecPcreMatchLimitRecursion 1000 # Compression SecRequestBodyAccess Off SecResponseBodyAccess Off # Sadece gerekli kuralları yükleyin Include /etc/httpd/coreruleset/rules/RESPONSE-959-APPLICATION-ATTACK-JAVA.conf
Yaygın Hatalar ve Çözümler
| Hata | Çözüm |
|---|---|
| 403 Hatası alınıyor | ModSecurity kurallarını kontrol edin, log dosyasını inceleyin |
| Site yavaş çalışıyor | SecRuleEngine'i optimize edin, gerekli olmayan kuralları devre dışı bırakın |
| False positive'ler | İstisna kuralları ekleyin, CRS ayarlarını düzenleyin |
| ModSecurity çalışmıyor | Apache/Nginx yapılandırmasını kontrol edin, modülü etkinleştirin |
Sonuç
ModSecurity, web uygulamalarınızı siber saldırılara karşı korumak için güçlü ve esnek bir çözümdür. Doğru yapılandırma ve düzenli bakım ile WAF'ınız, %95'e varan saldırı engelleme oranı sağlayabilir. Yapay zeka destekli sunucu yönetimi çözümleri ile entegre ederek güvenlik seviyenizi daha da artırabilirsiniz.
Kurulum sürecinde "DetectionOnly" modundan başlamanızı ve logları düzenli olarak incelemenizi öneriyoruz. Bu şekilde yanlış pozitifleri minimize edebilir ve güvenlik kurallarınızı optimize edebilirsiniz. Unutmayın: Güvenlik sürekli bir süreçtir ve düzenli güncellemeler ile izleme gerektirir.