Apache Saldırı Engelleme

Apache Saldırı Engelleme

Apache Saldırı Engelleme yöntemleri, sunucunuzun güvenliğini artırarak çeşitli saldırı türlerine karşı önlem almanızı sağlar. Apache sunucu yapılandırmalarında ModSecurity ve mod_evasive gibi modüllerle SQL injection, DDoS ve brute force saldırılarına karşı güvenlik sağlanabilir. Bu rehberde, Apache konfigürasyonlarıyla hangi saldırıları nasıl engelleyebileceğinizi, her bir adım için gerekli dosyaları ve komutları en ince ayrıntısına kadar inceleyeceğiz.

1. SQL Injection

  • Önlem: Apache konfigürasyon dosyalarında SQL injection saldırılarını önlemek için giriş verilerini doğrulamak ve uygun güvenlik modüllerini yüklemek önemlidir. Apache ModSecurity modülüyle, SQL injection örüntülerine karşı kurallar belirleyebilir ve bu saldırılara karşı filtreleme yapabilirsiniz.

Adımlar:

  1. ModSecurity Kurulumu:
    sudo apt install libapache2-mod-security2
  2. ModSecurity’yi Etkinleştirin:
    sudo a2enmod security2
    sudo systemctl restart apache2
  3. Kuralların Yapılandırılması:
    • ModSecurity’nin ayar dosyasında SQL injection’lara karşı örüntü kuralları tanımlayabilirsiniz.
    • Konfigürasyon Dosyası: /etc/modsecurity/modsecurity.conf

    Örneğin:

    SecRule ARGS "(SELECT|UNION|INSERT|DELETE|DROP)" "id:12345,phase:2,deny,status:403,msg:'SQL Injection Attempt Detected'"
  4. Kuralların Geçerli Olması İçin:
    sudo systemctl restart apache2

2. Cross-Site Scripting (XSS)

  • Önlem: XSS saldırılarını engellemek için Apache’de Content-Security-Policy başlıklarını konfigüre edebilirsiniz. Ayrıca X-XSS-Protection gibi HTTP başlıkları ekleyerek tarayıcı tarafında XSS koruması sağlayabilirsiniz. ModSecurity ile XSS örüntülerini tanımlayıp engelleme kuralları belirleyebilirsiniz.

Adımlar:

  1. Güvenlik Başlıklarını Ekleyin:
    • Dosya: /etc/apache2/sites-available/000-default.conf

    Başlıkları eklemek için VirtualHost bloğuna şunları ekleyin:

    <IfModule mod_headers.c>
       Header set Content-Security-Policy "default-src 'self';"
       Header set X-XSS-Protection "1; mode=block"
    </IfModule>
  2. Apache’yi Yeniden Başlatın:
    sudo systemctl restart apache2

3. DDoS (Distributed Denial of Service) Saldırıları

  • Önlem: DDoS saldırılarını engellemek için mod_evasive modülünü Apache üzerinde kullanabilirsiniz. Bu modül, aynı kaynaktan gelen yüksek sayıda istekleri engelleyerek sunucu kaynaklarını korur. Ayrıca, istek sayısını ve IP bazında erişim sınırını belirleyebilirsiniz.

Adımlar:

  1. Modülü Yükleyin:
    sudo apt install libapache2-mod-evasive
  2. Konfigürasyonu Düzenleyin:
    • Dosya: /etc/apache2/mods-available/evasive.conf

    Bu dosyada aşağıdaki ayarları yapın:

    DOSHashTableSize 3097
    DOSPageCount 2
    DOSSiteCount 50
    DOSPageInterval 1
    DOSSiteInterval 1
    DOSBlockingPeriod 10
  3. Apache’yi Yeniden Başlatın:
    sudo systemctl restart apache2

4. Directory Traversal (Dizin Geçişi)

  • Önlem: Apache konfigürasyon dosyasında Options -Indexes ayarını yaparak dizin listelemesini kapatabilirsiniz. Bu sayede, saldırganların sunucunuzdaki dosya ve dizin yapısını görmesi engellenir.

Adımlar:

  1. Dizin Listelemeyi Devre Dışı Bırakın:
    • Dosya: /etc/apache2/apache2.conf veya sitenizin .conf dosyası.

    Şu satırı ekleyin:

    Options -Indexes
  2. Apache’yi Yeniden Başlatın:
    sudo systemctl restart apache2

5. Brute Force Saldırıları

  • Önlem: Brute force saldırılarına karşı mod_authn modüllerini kullanarak erişim kontrolü uygulayabilirsiniz. Apache üzerinde IP tabanlı kısıtlamalar yaparak, belirli IP’lerden gelen çok sayıda başarısız giriş denemesini engelleyebilirsiniz. Ayrıca, mod_security ile brute force örüntüleri tanımlayarak ekstra güvenlik sağlayabilirsiniz.

Adımlar:

  1. IP Tabanlı Erişim Kısıtlaması:
    • Dosya: /etc/apache2/sites-available/000-default.conf

    Kısıtlamaları eklemek için:

    <Directory "/var/www/html">
       Require ip 192.168.1.0/24
       Require all denied
    </Directory>
  2. Apache’yi Yeniden Başlatın:
    sudo systemctl restart apache2

6. CSRF (Cross-Site Request Forgery)

  • Önlem: CSRF saldırılarına karşı güvenlik belirteçleri kullanarak, isteklerin doğruluğunu kontrol etmek gereklidir. Apache üzerinde mod_rewrite ile CSRF’yi engellemeye yönelik kurallar tanımlayabilir ve belirli istekleri yeniden yönlendirebilirsiniz.

Adımlar:

  1. ModRewrite Kullanarak CSRF Koruması:
    • Dosya: /etc/apache2/sites-available/000-default.conf

    Aşağıdaki kuralları ekleyin:

    <IfModule mod_rewrite.c>
       RewriteEngine On
       RewriteCond %{HTTP_REFERER} !^https://yourdomain.com [NC]
       RewriteRule ^.*$ - [F]
    </IfModule>
  2. Apache’yi Yeniden Başlatın:
    sudo systemctl restart apache2

7. Clickjacking Saldırıları

  • Önlem: Apache’de X-Frame-Options başlığını DENY veya SAMEORIGIN olarak ayarlayarak clickjacking saldırılarını engelleyebilirsiniz. Bu ayar, sitenizin başka sitelerde iframe olarak görüntülenmesini engeller.

Adımlar:

  1. Güvenlik Başlıklarını Ekleyin:
    • Dosya: /etc/apache2/sites-available/000-default.conf

    VirtualHost bloğuna ekleyin:

    <IfModule mod_headers.c>
    Header always append X-Frame-Options DENY
    </IfModule>
  2. Apache’yi Yeniden Başlatın:
    sudo systemctl restart apache2

8. Path Disclosure (Dosya Yolu Bilgisi)

  • Önlem: Apache hata mesajlarının yapılandırmasını yaparak ayrıntılı hata mesajlarının kullanıcıya gösterilmesini engelleyebilirsiniz. ServerSignature ve ServerTokens ayarlarını kapatarak sunucu bilgilerini gizlemek faydalı olacaktır.

Adımlar:

  1. Hata Mesajlarını Gizleyin:
    • Dosya: /etc/apache2/apache2.conf

    Aşağıdaki ayarları yapın:

    ServerSignature Off
    ServerTokens Prod
  2. Apache’yi Yeniden Başlatın:
    sudo systemctl restart apache2

Apache Saldırı Engelleme yöntemleri, sunucunuzun güvenliğini artırarak çeşitli saldırı türlerine karşı önlem almanızı sağlar. Apache sunucu yapılandırmalarında ModSecurity ve mod_evasive gibi modüllerle SQL injection, DDoS ve brute force saldırılarına karşı etkili bir güvenlik sağlanabilir. Bu rehberde, Apache konfigürasyonlarıyla hangi saldırıları nasıl engelleyebileceğinizi, her bir adım için gerekli dosyaları ve komutları en ince ayrıntısına kadar ele aldık.

Apache sunucularını yapılandırarak WordPress için Apache optimizasyonu sağlanabilir. Bu optimizasyon, özellikle performansı artırarak yüksek trafik alan sitelerin güvenlik ve hızını iyileştirebilir. Ayrıca, Apache dışında Nginx kullanıcıları da Nginx brute force engelleme gibi güvenlik ayarları ile sunucularını koruyabilirler. Nginx ileri düzey yapılandırma hakkında bilgi almak isterseniz önceki makalemizi inceleyebilirsiniz.

Ayrıca ModSecurity nedir sorusuna odaklanan ve Nginx kullanıcıları için Nginx modsecurity yapılandırma rehberini içeren makalelerimizde, hem Apache hem de Nginx SQL injection engelleme gibi saldırı türlerine karşı nasıl koruma sağlayabileceğinizi detaylıca açıkladık. Özellikle WordPress gibi popüler içerik yönetim sistemleri için hem performans hem de güvenlik optimizasyonu yapmak isteyen kullanıcılar, Apache ve Nginx için sunduğumuz önceki rehberlere göz atarak kapsamlı bilgi edinebilirler. Bu ayarlarla Apache sunucunuzu pek çok saldırıya karşı koruma altına alabilirsiniz.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir