Foruma hoş geldin 👋, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Apache Web Sunucusunda Mod_Evasive ile DDoS ve Brute Force Saldırılarına Karşı Temel Koruma 🛡️

stackor

Üye
Katılım
14 Mart 2026
Mesajlar
6
Apache Web Sunucusunda Mod_Evasive ile DDoS ve Brute Force Saldırılarına Karşı Temel Koruma 🛡️

Selam sistemciler! 🖥️ Bugün terminalin tozunu alıp, Apache sunucularımızı "kaba kuvvet" saldırılarına ve temel seviye DDoS girişimlerine karşı biraz daha güçlendireceğiz. Özellikle WordPress giriş sayfaları (`wp-login.php`), admin panelleri veya herkese açık API uç noktalarınız varsa, bu rehber tam size göre.

Mod_Evasive Nedir ve Ne İşe Yarar?

mod_evasive, Apache için geliştirilmiş, oldukça hafif ve etkili bir güvenlik modülüdür. Temel mantığı basit ama güçlüdür: Sunucunuza aynı IP adresinden, kısa süre içinde çok fazla istek geldiğinde, bu IP'yi geçici olarak "kara listeye" alır ve belirli bir süre boyunca isteklerini engeller. Bu, şunları önlemeye yardımcı olur:
  • Brute Force (Kaba Kuvvet) Saldırıları: Login sayfalarına saniyede onlarca kez deneme yapılması.
  • Temel DDoS/Hız Sınırlama Aşımı Saldırıları: Belirli bir kaynaktan gelen, sunucuyu yormayı amaçlayan yoğun istekler.
  • Kaynak Tüketimi: Aynı istemciden gelen ardışık isteklerle CPU/RAM tüketimini kontrol altına almak.

Kurulum (Ubuntu/Debian) ⚙️

Öncelikle, sistemimizi güncelleyelim ve modülü kuralım. Ubuntu/Debian tabanlı sistemlerde işlem oldukça basit:

Bash:
sudo apt update
sudo apt install libapache2-mod-evasive

Kurulum tamamlandığında, modül otomatik olarak etkinleştirilir. Apache servisini yeniden başlatalım:

Bash:
sudo systemctl restart apache2

Modülün yüklendiğini kontrol etmek için şu komutu kullanabilirsiniz:

Bash:
sudo apache2ctl -M | grep evasive

Çıktıda `evasive20_module` (Apache 2.4 için) görmelisiniz.

Yapılandırma ve Temel Ayarlar

Modülün ana yapılandırma dosyası genellikle `/etc/apache2/mods-enabled/evasive.conf` konumundadır. Bu dosyayı düzenlemek için nano veya favori editörünüzü kullanabilirsiniz:

Bash:
sudo nano /etc/apache2/mods-enabled/evasive.conf

Varsayılan dosya içinde birçok ayar yorum satırı olarak (`#`) bulunur. İhtiyaçlarınıza göre bunları aktif hale getirebilirsiniz. İşte en kritik ve anlaşılır birkaç ayar:

Kod:
<IfModule mod_evasive20.c>
    # Aynı IP'den, site başına saniyede kaç isteğe izin verileceği.
    DOSPageCount        2
    # Aynı IP'den, site başına bu sınır aşılırsa engelleme süresi (saniye).
    DOSPageInterval     1

    # Aynı IP'den, sunucu genelinde saniyede kaç isteğe izin verileceği.
    DOSSiteCount        50
    # Sunucu geneli sınır aşılırsa engelleme süresi (saniye).
    DOSSiteInterval     1

    # Engellenen IP'lerin listesini tutmak için geçici dosya yolu.
    DOSHashTableSize    3097
    DOSBlockingPeriod   10

    # Engellendiğinde istemciye gönderilecek HTTP kodu (örn: 403 Forbidden).
    DOSEmailNotify      youradmin@email.com
    #DOSSystemCommand    "su -c 'iptables -A INPUT -s %s -j DROP'"
    DOSLogDir           "/var/log/mod_evasive"
</IfModule>

Bu ayarları nasıl yorumlamalıyız? 🧐
  • `DOSPageCount 2` ve `DOSPageInterval 1`: Aynı IP, aynı sayfaya (`/wp-login.php` gibi) 1 saniye içinde 2'den fazla istek gönderirse, o IP engellenir. Bu, brute force için çok sıkı bir ayardır.
  • `DOSSiteCount 50` ve `DOSSiteInterval 1`: Aynı IP, tüm siteye 1 saniyede 50'den fazla istek gönderirse (bir bot basit bir tarama yapıyorsa), engellenir.
  • `DOSBlockingPeriod 10`: Engellenen bir IP, 10 saniye boyunca 403 Forbidden hatası alır.
  • `DOSEmailNotify`: Bir IP engellendiğinde e-posta bildirimi gönderir. (Postfix veya sendmail gibi bir MTA kurulu olmalı).
  • `DOSSystemCommand`: İsteğe bağlıdır. Bir IP engellendiğinde, otomatik olarak iptables firewall kuralı eklemek için kullanılabilir. Dikkatli kullanın! Yorum satırından çıkarmadan önce iyice test edin.

Ayarları değiştirdikten sonra Apache'yi yeniden başlatmayı unutmayın:

Bash:
sudo systemctl reload apache2

Logları İzleme ve Test Etme 📝

Modül, engellenen IP'leri belirttiğiniz `DOSLogDir` dizininde (örneğin `/var/log/mod_evasive`) kaydeder. Bu dizini ve log dosyalarını oluşturup izinlerini ayarlamalısınız:

Bash:
sudo mkdir -p /var/log/mod_evasive
sudo chown www-data:www-data /var/log/mod_evasive

Basit bir test yapmak için, komut satırından `ab` (Apache Bench) aracını veya basit bir bash döngüsünü kullanabilirsiniz. Dikkat: Bu testi kendi sunucunuza yapın ve canlı bir müşteri sitesine karşı yapmayın!

Bash:
# Örnek: Aynı sayfaya hızlı ardışık istekler gönderelim.
for i in {1..5}; do curl -I http://siteniz.com/wp-login.php; done

Eğer ayarlarınız çalışıyorsa, birkaç istekten sonra `403 Forbidden` yanıtı almaya başlamalısınız. Log dizinindeki dosyaları kontrol ederek engellenen IP'leri görebilirsiniz.

Önemli Uyarılar ve İpuçları ⚠️
  • Bu modül, paylaşımlı proxy (CDN) arkasındaki sunucular için sorun yaratabilir. Cloudflare veya benzeri bir hizmet kullanıyorsanız, tüm gerçek IP'ler yerine Cloudflare'in IP'sini görürsünüz. Bu durumda, modülü Cloudflare'in IP blokları için `DOSPageCount` ve `DOSSiteCount` değerlerini yüksek tutacak şekilde veya özel yapılandırmalarla kullanmalısınız.
  • Çok agresif ayarlar (örn: `DOSPageCount 1`), normal kullanıcıları da engelleyebilir. Sayfa yenileme yapan bir kullanıcı bile sorun yaşayabilir. Ayarları yavaş yavaş, trafiğinizi gözlemleyerek yapın.
  • `mod_evasive`, tam teşekküllü bir DDoS koruma çözümü değildir. Büyük ölçekli saldırılara karşı donanımsal firewall'lar, bulut tabanlı DDoS koruma hizmetleri veya daha gelişmiş yazılımlar (fail2ban ile entegre) gerekebilir.
  • Log dosyalarını düzenli olarak temizlemeyi veya log rotate yapılandırmasını unutmayın.

Umarım bu rehber, Apache sunucularınızın güvenlik duvarına ekstra bir tuğla olarak faydalı olur. Sizin mod_evasive için favori ayarlarınız veya karşılaştığınız ilginç senaryolar var mı? Paylaşmak ister misiniz? Aşağıdaki yorumlarda buluşalım! 👇
 

Tema özelleştirme sistemi

Bu menüden forum temasının bazı alanlarını kendinize özel olarak düzenleye bilirsiniz.

Zevkine göre renk kombinasyonunu belirle

Tam ekran yada dar ekran

Temanızın gövde büyüklüğünü sevkiniz, ihtiyacınıza göre dar yada geniş olarak kulana bilirsiniz.

Geri