Blogchevron_rightSiber Güvenlikchevron_rightNginx WAF Rehberi: Web Uygulama Güvenliği ve Koruma

Nginx WAF Rehberi: Web Uygulama Güvenliği ve Koruma

S
Serversium
calendar_today15 Haziran 2026
schedule5 dk okuma
Nginx WAF Rehberi: Web Uygulama Güvenliği ve Koruma

Nginx ile Gelişmiş Web Uygulama Güvenliği ve WAF: Kapsamlı Rehber

Web uygulama güvenliği, modern dijital altyapının en kritik bileşenlerinden birini oluşturmaktadır. 2024 yılında siber saldırıların %43'ünün web uygulamalarını hedef aldığı ve bu saldırıların küresel ekonomiye 6 trilyon dolarlık maliyet yarattığı tahmin edilmektedir. Nginx, yüksek performansı ve esnekliği ile hem web sunucusu hem de güvenlik duvarı olarak kullanılabilen güçlü bir araçtır. Bu kılavuzda, Nginx tabanlı Web Application Firewall (WAF) yapılandırması ve gelişmiş güvenlik önlemlerini detaylı olarak ele alacağız.

Web Application Firewall (WAF) Nedir ve Neden Gereklidir?

WAF, web uygulamalarını hedef alan kötü niyetli istekleri filtreleyen ve engelleyen bir güvenlik katmanıdır. Geleneksel firewall'lardan farklı olarak, WAF HTTP/HTTPS trafiğini analiz eder ve OWASP Top 10 listesindeki güvenlik açıklarına karşı koruma sağlar. Nginx, mod_security modülü ile WAF yetenekleri sunar ve %90'a varan SQL injection ve XSS saldırılarını engelleyebilir.

Nginx WAF Kurulumu ve Temel Yapılandırma

Nginx ile WAF kullanmak için ModSecurity modülünün kurulumu gereklidir. Ubuntu ve CentOS sistemlerde kurulum adımları farklılık göstermektedir.

Ubuntu/Debian için kurulum:

sudo apt-get install libmodsecurity3 modsecurity-crs nginx-mod-security

CentOS/RHEL için kurulum:

sudo yum install mod_security mod_security_crs nginx-mod_security

Kurulum sonrasında Nginx yapılandırma dosyasında mod_security etkinleştirilmelidir. Rate limiting konfigürasyonu da WAF ile birlikte kullanıldığında çok katmanlı bir güvenlik mimarisi oluşturur.

ModSecurity Yapılandırma Dosyası

ModSecurity yapılandırması /etc/modsecurity/modsecurity.conf dosyasında yapılır:

SecRuleEngine On
SecRequestBodyAccess On
SecResponseBodyAccess Off
SecRequestBodyLimit 13107200
SecRequestBodyNoFilesLimit 131072
SecRequestBodyLimitAction Reject
SecPcreMatchLimit 1000
SecPcreMatchLimitRecursion 1000

Bu temel yapılandırma, istek gövdesi incelemesini etkinleştirir ve saldırı tespit edildiğinde bağlantıyı reddeder.

OWASP Core Rule Set (CRS) Kullanımı

OWASP CRS, web uygulamalarını yaygın saldırılara karşı koruyan kapsamlı kurallar setidir. Nginx ile CRS kullanarak endüstri standardı koruma sağlanabilir.

Include /etc/modsecurity/crs/crs-setup.conf
Include /etc/modsecurity/crs/rules/*.conf

CRS yapılandırması, false positive (yanlış pozitif) oranlarını minimize etmek için paranoid seviye ayarları içerir. Seviye 1 (default) çoğu uygulama için yeterli koruma sağlarken, daha hassas koruma gerektiren sistemlerde seviye 2-4 kullanılabilir.

Güvenlik Header'ları ile Koruma

Nginx konfigürasyonunda güvenlik header'ları eklemek, tarayıcı düzeyinde ek koruma sağlar. Bu header'lar XSS, clickjacking ve diğer istemci tarafı saldırılarına karşı koruma sunar.

add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Content-Security-Policy "default-src 'self' http: https: data: blob: 'unsafe-inline'" always;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

Bu header'ların her biri farklı bir güvenlik katmanı oluşturur. X-Frame-Options, sitenizin başka sitelerin iframe'inde görüntülenmesini engelleyerek clickjacking saldırılarına karşı koruma sağlar.

Rate Limiting ile Bruteforce Önleme

Bruteforce saldırıları, hesap ele geçirme girişimlerinin en yaygın türlerinden biridir. Nginx'in rate limiting özelliği ile IP bazlı istek sınırlama uygulanabilir. Rate limiting konfigürasyonu detayları için ilgili kılavuzumuzu inceleyebilirsiniz.

limit_req_zone $binary_remote_addr zone=login_limit:10m rate=5r/s;
limit_req_zone $binary_remote_addr zone=api_limit:10m rate=50r/s;

server {
    location /login {
        limit_req zone=login_limit burst=10 nodelay;
        proxy_pass http://backend;
    }
    
    location /api {
        limit_req zone=api_limit burst=20 nodelay;
        proxy_pass http://backend;
    }
}

Bu yapılandırma, /login endpoint'ine saniyede 5 istek, /api endpoint'ine ise saniyede 50 istek ile sınır getirir. Burst parametresi, ani trafik artışlarında kuyruklamaya izin verir.

IP Beyaz ve Kara Listeleme

Belirli IP adreslerini engellemek veya izin vermek, WAF stratejisinin temel bileşenleridir. Nginx, coğrafi engelleme ve IP tabanlı erişim kontrolü için geo modülünü kullanır.

geo $blocked_ips {
    default 0;
    192.168.1.100 1;
    10.0.0.0/8 1;
}

map $blocked_ips $access_allowed {
    0 $http_host;
    1 "";
}

server {
    if ($blocked_ips) {
        return 403;
    }
}

Bu yapılandırma, belirli IP adreslerini veya ağları engeller. Büyük ölçekli saldırılarda CDN katmanı ile entegre etmek daha etkili sonuçlar verir.

SSL/TLS Yapılandırması ve Güvenli Bağlantılar

SSL/TLS yapılandırması, veri iletim güvenliğinin temelini oluşturur. Modern şifreleme protokolleri ve sertifika yapılandırması için Nginx SSL ayarları optimize edilmelidir.

ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256';
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1d;
ssl_stapling on;
ssl_stapling_verify on;

TLS 1.2 ve TLS 1.3 dışındaki protokoller devre dışı bırakılmalıdır. TLS 1.3, daha iyi performans ve güvenlik sunar. IPv6 geçiş rehberimizde SSL/TLS yapılandırmasının detaylarını bulabilirsiniz.

Bot Koruma ve User-Agent Filtreleme

Kötü niyetli bot'ları engellemek, sunucu kaynaklarının verimli kullanımı için kritik öneme sahiptir. User-agent analizi ve bot tespiti için Nginx yapılandırması kullanılabilir.

map $http_user_agent $is_bot {
    ~*curl|wget|bot|spider|crawl 1;
    ~*python|perl|java 1;
    default 0;
}

server {
    if ($is_bot) {
        set $limit_req_zone "bot_limit";
        return 403;
    }
}

Bu basit yöntem, yaygın bot user-agent'larını tespit eder. Daha gelişmiş bot koruma için Cloudflare veya Imperva gibi WAF servisleri ile entegrasyon önerilir.

SQL Injection ve XSS Koruması

SQL injection ve Cross-Site Scripting (XSS), OWASP Top 10'un en tehlikeli güvenlik açıklarıdır. ModSecurity kuralları ile bu saldırılar engellenebilir.

SecRule ARGS:id|username|password "@rx (select|insert|update|delete|drop|union|alert|script|<script)" \
    "id:1001,phase:2,deny,status:403,msg:'SQL Injection Attempt'"

SecRule ARGS "@rx ((<script>|javascript:|onerror=|onload=)" \
    "id:1002,phase:2,deny,status:403,msg:'XSS Attempt'"

Bu kurallar, yaygın SQL injection ve XSS kalıplarını tespit eder ve engeller. Ancak false positive oluşmaması için uygulama yapınıza göre kuralları özelleştirmeniz gerekebilir.

Dosya Yükleme Güvenliği

Kullanıcıların dosya yüklemesine izin veren uygulamalarda, yüklenen dosyaların güvenliği kritik önem taşır. Nginx, dosya türü ve boyut kontrolü için kullanılabilir.

client_max_body_size 10M;
client_body_buffer_size 128k;

location /upload {
    # İzin verilen dosya türleri
    location ~ \.(jpg|jpeg|png|gif|pdf|doc|docx)$ {
        proxy_pass http://backend;
    }
    
    # Diğer dosya türlerini engelle
    location ~ / {
        return 403;
    }
}

Dosya yükleme işlemlerinde, yüklenen dosyaların web kök dizini dışında saklanması ve çalıştırılabilir izinlerinin kaldırılması önerilir.

Loglama ve İzleme

Güvenlik olaylarının doğru loglanması, saldırı tespiti ve forensic analiz için esastır. ModSecurity audit log'ları, saldırı girişimlerinin detaylı kaydını tutar.

SecAuditEngine RelevantOnly
SecAuditLogRelevantStatus "^(?:5|4(?!04))"
SecAuditLogParts ABIJDEFHZ
SecAuditLogType Serial
SecAuditLog /var/log/modsec_audit.log

ErrorLog /var/log/nginx/error.log;
LogFormat '%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"' combined;

Logrotate yapılandırması ile log dosyalarının boyutlarının kontrol altında tutulması önemlidir. Sunucu optimizasyonu kılavuzumuzda log yönetimi hakkında daha fazla bilgi bulabilirsiniz.

Özel WAF Kuralları Oluşturma

Uygulamanıza özel saldırı vektörlerini engellemek için özel kurallar oluşturabilirsiniz. Özel kurallar, genel CRS kurallarını tamamlar.

# Özel parametre koruma kuralı
SecRule REQUEST_URI "@beginsWith /admin" \
    "id:2001,phase:1,deny,status:403,msg:'Admin Area Access', \
    chain"
SecRule REMOTE_ADDR "!@ipMatch 192.168.1.0/24"

# Yatır karakter kontrolü
SecRule ARGS "@rx [\.\./]" \
    "id:2002,phase:2,deny,status:403,msg:'Path Traversal Attempt'"

# JSON body kontrolü
SecRule REQUEST_HEADERS:Content-Type "application/json" \
    "id:2003,phase:1,ctl:requestBodyProcessor=JSON"

Bu kurallar, dizin gezinme (path traversal) girişimlerini ve admin alanına yetkisiz erişimi engeller.

Nginx WAF vs Diğer WAF Çözümleri

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
Özellik Nginx ModSecurity Cloudflare WAF AWS WAF
Kurulum Karmaşıklığı Orta Düşük Orta
Maliyet Açık kaynak (ücretsiz) Plan bazlı Kullanım bazlı
Performans Etkisi Düşük-orta CDN avantajı