WAF (Web Application Firewall) Nedir? Kurulum ve Test Rehberi
WAF (Web Application Firewall) Nedir? Kurulum ve Test Rehberi
WAF (Web Application Firewall), web uygulamalarını kötü niyetli isteklerden koruyan bir güvenlik katmanıdır. SQL Injection, XSS, CSRF gibi yaygın saldırı vektörlerini tespit eder ve engeller. Uygulama katmanında (Layer 7) çalışarak, HTTP/S trafiğini filtreler, analiz eder ve tehdit içeren isteklere karşı koruma sağlar. Bu yazıda WAF’ın çalışma mantığı, Plesk veya Nginx tabanlı sistemlerde kurulumu ve test yöntemleri adım adım açıklanmıştır.
1. WAF Nedir?
Web Application Firewall, gelen trafiği HTTP protokolü seviyesinde inceler. Gelen isteklerin “normal kullanıcı isteği” mi yoksa “zararlı payload” mı olduğunu algılar. WAF’lar aşağıdaki tür tehditlere karşı koruma sağlar:
- SQL Injection (örnek:
?id=1' OR '1'='1) - Cross-Site Scripting (XSS)
- File Upload Exploits
- Command Injection
- Cross-Site Request Forgery (CSRF)
- Path Traversal (
../../etc/passwdgibi)
2. WAF Nasıl Çalışır?
WAF, web trafiğini analiz ederken kurallara (rule set) dayanır. Her istek bu kurallardan geçer; uygunsuz bir içerik, komut veya imza tespit edilirse, istek engellenir ya da yeniden yönlendirilir. Genellikle aşağıdaki kuralları kullanır:
- OWASP CRS (Core Rule Set): Açık kaynak güvenlik kuralları.
- Vendor Rule Sets: ModSecurity, Cloudflare, F5, Barracuda gibi üreticilere özgü kurallar.
3. WAF Türleri
- Ağ tabanlı (Network WAF): Donanım veya bulut tabanlı; yüksek performanslı ortamlar için.
- Sunucu tabanlı (Host-based WAF): ModSecurity gibi yazılım tabanlı çözümler; genellikle Nginx veya Apache ile entegre edilir.
- Bulut tabanlı (Cloud WAF): Cloudflare, AWS WAF, Azure WAF gibi servisler.
4. Plesk Üzerinde WAF Etkinleştirme (ModSecurity)
Plesk, ModSecurity’yi entegre şekilde sunar. Etkinleştirmek için:
- Plesk → Tools & Settings → Web Application Firewall (ModSecurity)
- “Switch on ModSecurity” seçeneğini aktif hale getirin.
- “Enable detection and prevention” modunu seçin.
- Rule Set olarak “OWASP ModSecurity Core Rule Set” tercih edin.
- Kaydedin ve Apache/Nginx servislerini yeniden başlatın.
5. Nginx Üzerinde ModSecurity Kurulumu (Linux)
apt install libnginx-mod-security # veya yum install mod_security
Kurulum sonrası Nginx yapılandırmasını düzenleyin:
nano /etc/nginx/modsec/modsecurity.conf
Aşağıdaki satırı aktif hale getirin:
SecRuleEngine On
Ardından sanal host konfigürasyonuna ekleyin:
modsecurity on; modsecurity_rules_file /etc/nginx/modsec/modsecurity.conf;
Değişiklikleri kaydedip Nginx’i yeniden başlatın:
systemctl restart nginx
6. WAF Çalışmasını Test Etme
Kurulumun başarılı olduğunu doğrulamak için bir test saldırısı simüle edin:
curl "http://domain.com/index.php?id=1' OR '1'='1"
Eğer WAF aktifse, aşağıdaki gibi bir yanıt alırsınız:
403 Forbidden - ModSecurity Action
Logları kontrol edin:
tail -f /var/log/modsec_audit.log
7. WAF Modları
- Detection Only: Sadece kaydeder, engellemez.
- Prevention: Zararlı istekleri aktif olarak engeller.
8. Performans ve Optimizasyon
WAF filtreleme CPU yükünü artırabilir. Performansı korumak için:
- Statik içerikler için WAF’ı devre dışı bırakın (resim, CSS, JS).
- CDN (Cloudflare, Akamai vb.) önbelleklemesi kullanın.
- Güncel rule set’leri ve whitelist ayarlarını düzenli olarak kontrol edin.
9. Hatalı Pozitifleri (False Positive) Azaltma
Bazı API veya formlar güvenli içerik üretmesine rağmen WAF tarafından engellenebilir. Bu durumda belirli URI veya parametreleri beyaz listeye alın:
SecRuleRemoveById 949110 SecRuleRemoveByTag "api_safe"
10. WAF Log Analizi
WAF logları saldırı tiplerini anlamak için önemlidir:
/var/log/modsec_audit.log /var/log/httpd/modsec_audit.log
Analiz aracı olarak GoAccess veya ModSecurity Audit Viewer kullanılabilir.
Sonuç
WAF, modern web güvenliğinin temel taşlarından biridir. Plesk veya Nginx üzerinde ModSecurity’yi etkinleştirerek, web uygulamanızı SQL Injection, XSS ve diğer OWASP tehditlerine karşı koruyabilirsiniz. Kurumsal ölçekte daha gelişmiş güvenlik için HostLigo WAF Koruma çözümlerini tercih edebilirsiniz.