ModSecurity Kuralları ile VDS Üzerinde Web Uygulama Güvenlik Duvarı (WAF) Kurulumu

Web Uygulama Güvenlik Duvarı: VDS için ModSecurity

Web uygulamalarınızın güvenliği, özellikle VDS gibi özel kaynaklara sahip ortamlarda kritik öneme sahiptir. ModSecurity, açık kaynaklı bir Web Uygulama Güvenlik Duvarı (WAF) motorudur. Doğru kurallarla donatıldığında, SQL injection, XSS, LFI gibi saldırıları gerçek zamanlı olarak engelleyebilir. Bu yazıda, bir VDS üzerinde ModSecurity kurulumu ve etkili kural yönetimi için pratik adımları paylaşacağız.

Neden ModSecurity ve VDS?

VDS (Sanal Özel Sunucu), size kök erişimi ve özelleştirme özgürlüğü verir. ModSecurity'yi doğrudan Apache veya Nginx üzerine entegre ederek, herhangi bir bulut tabanlı WAF hizmetine ihtiyaç duymadan saldırıları durdurabilirsiniz. Örneğin, küçük bir e-ticaret sitesi için OWASP CRS (Core Rule Set) kullanmak, trafiğin %90'ından fazlasını oluşturan yaygın saldırıları engeller.

ModSecurity, paket düzeyinde değil uygulama katmanında çalıştığı için, sunucu kaynaklarını verimli kullanır. Ancak yanlış yapılandırma performans düşüşüne yol açabilir.

Kurulum Adımları

  1. Gerekli paketleri yükleyin: Debian tabanlı bir VDS'de apt install libapache2-mod-security2 komutu iş görür. Nginx için ise third-party modül derlemesi gerekebilir.
  2. Temel yapılandırmayı etkinleştirin: sudo mv /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf ve SecRuleEngine On satırını aktif edin.
  3. OWASP CRS entegrasyonu: GitHub'dan en güncel sürümü indirin. Örneğin, git clone https://github.com/coreruleset/coreruleset /usr/share/modsecurity/crs.
  4. Vhost yapılandırmanıza ekleyin: Apache için IncludeOptional /usr/share/modsecurity/crs/crs-setup.conf ve IncludeOptional /usr/share/modsecurity/crs/rules/*.conf satırlarını ekleyin.

Kural Yönetimi ve Optimizasyon

Varsayılan OWASP CRS oldukça katıdır. İlk etapta SecRuleEngine DetectionOnly modunda çalıştırarak yanlış pozitifleri (false positive) gözlemleyin. Örneğin, bir formda özel karakter kullanımı engelleniyorsa, ilgili kural ID'sini (örneğin 942100) exclude edebilirsiniz. Bunun için SecRuleRemoveById 942100 yönergesini kullanın.

Performans açısından, SecRequestBodyAccess ve SecResponseBodyAccess gibi direktifleri yalnızca ihtiyaç duyulan yerde etkinleştirin. Ayrıca SecResponseBodyMimeType ile büyük yanıtların analizini sınırlayın. Bir VDS'niz varsa, CPU çekirdeği başına düşen bağlantı sayısını dengede tutmak için SecRuleEngine On iken SecAuditEngine RelevantOnly kullanmak iyi bir pratiktir.

Gerçek Hayattan Bir Senaryo

Bir müşterimizin WordPress tabanlı blogunda, günde ortalama 5000 ziyaretçi varken ModSecurity devreye alındıktan sonra saldırı girişimleri %70 azaldı. Ancak ilk hafta bazı eklenti AJAX istekleri engellendi. Bunun üzerine SecRuleUpdateTargetById ile belirli parametreleri beyaz listeye ekledik ve performans kaybı %15'in altında kaldı.

Son Söz

ModSecurity, VDS sunucunuzun güvenlik seviyesini bir üst kata taşır. Ancak her kural seti, iş yükünüze göre adjust edilmelidir. Unutmayın: Güvenlik bir yolculuktur, hedef değil. Düzenli log analizi ve kural güncellemeleriyle tehditlere karşı bir adım önde olabilirsiniz. Deneyimlerinizi bizimle paylaşmayı unutmayın!

← Tüm yazılar