Blogchevron_rightSiber Güvenlikchevron_rightModSecurity WAF Kurulumu ve Yapılandırma Rehberi

ModSecurity WAF Kurulumu ve Yapılandırma Rehberi

S
Serversium
calendar_today26 Nisan 2026
schedule5 dk okuma
ModSecurity WAF Kurulumu ve Yapılandırma Rehberi

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)(

IP Engelleme Kuralı

# Belirli IP'leri engelle
SecRule REMOTE_ADDR "^192\.168\.1\.100$" \
    "id:2001,phase:1,deny,status:403,msg:'Blocked IP address'"

速率 Sınırlaması

# İstek hızı sınırlaması
SecRule REQUEST_HEADERS:User-Agent "@rx (nikto|sqlmap|nmap|metasploit)" \
    "id:3001,phase:1,deny,status:403,msg:'Known malicious bot detected'"

# Aşırı istek koruması
SecAction \
    "id:900001,phase:1,initcol:ip=%{REMOTE_ADDR},nolog,pass"
    
SecRule REQUEST_BODY "@gt 1000000" \
    "id:900002,phase:2,deny,status:413,msg:'Request body too large'"

ModSecurity Test Etme

WAF'ınızı test etmek için aşağıdaki yöntemleri kullanabilirsiniz:

1. SQL Injection Testi

# Terminalden test edin
curl "http://example.com/index.php?id=1' OR '1'='1"

Bu istek engellenirse, WAF doğru çalışıyor demektir.

2. XSS Testi

curl "http://example.com/search?q="

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ı

  1. **DetectionOnly Modunda Başlayın**: İlk olarak sadece loglama modunda çalıştırın, false positive'leri azaltın
  2. **Kuralları Kademeli Ekleyin**: Tüm kuralları aynı anda etkinleştirmeyin
  3. **Logları Düzenli İnceleyin**: Yanlış pozitifleri tespit edin ve kuralları ayarlayın
  4. **OWASP CRS'i Güncel Tutun**: Düzenli güncellemeler yapın
  5. **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.

library_booksBenzer İçerikler

DDoS Koruması: Yapay Zeka ile Trafik Süzme Rehberi
Siber Güvenlik
calendar_today5 Nisan 2026
schedule5 dk

DDoS Koruması: Yapay Zeka ile Trafik Süzme Rehberi

DDoS saldırıları işletmeler için ciddi hizmet kesintilerine neden olabilir. Yapay zeka destekli trafik süzme teknolojileri sunucularınızı anında güvence altına alır.

S
Serversiumarrow_forward
Sunucu Güvenliği: SSH Key ve 2FA Kurulum Rehberi
Siber Güvenlik
calendar_today7 Nisan 2026
schedule5 dk

Sunucu Güvenliği: SSH Key ve 2FA Kurulum Rehberi

Sunucu güvenliğinde SSH key ve 2FA kullanımı, hesap ele geçirme saldırılarını büyük oranda azaltır. Bu teknik rehber ile erişim kontrollerinizi güvenli şekilde yapılandırın.

S
Serversiumarrow_forward
SSL Sertifikası Rehberi: DV, OV ve EV Türleri ile Seçim Kriterleri
Siber Güvenlik
calendar_today17 Nisan 2026
schedule5 dk

SSL Sertifikası Rehberi: DV, OV ve EV Türleri ile Seçim Kriterleri

DV, OV ve EV SSL sertifikası türlerini detaylı olarak açıklayan kapsamlı rehber. Web siteniz için doğru SSL sertifikası seçimini öğrenin ve güvenliği sağlayın.

S
Serversiumarrow_forward