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:
- ModSecurity Kurulumu:
- ModSecurity’yi Etkinleştirin:
- 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:
- Kuralların Geçerli Olması İçin:
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ıcaX-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:
- 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: - Dosya:
- Apache’yi Yeniden Başlatın:
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:
- Modülü Yükleyin:
- Konfigürasyonu Düzenleyin:
- Dosya:
/etc/apache2/mods-available/evasive.conf
Bu dosyada aşağıdaki ayarları yapın:
- Dosya:
- Apache’yi Yeniden Başlatın:
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:
- Dizin Listelemeyi Devre Dışı Bırakın:
- Dosya:
/etc/apache2/apache2.conf
veya sitenizin.conf
dosyası.
Şu satırı ekleyin:
- Dosya:
- Apache’yi Yeniden Başlatın:
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:
- IP Tabanlı Erişim Kısıtlaması:
- Dosya:
/etc/apache2/sites-available/000-default.conf
Kısıtlamaları eklemek için:
- Dosya:
- Apache’yi Yeniden Başlatın:
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:
- ModRewrite Kullanarak CSRF Koruması:
- Dosya:
/etc/apache2/sites-available/000-default.conf
Aşağıdaki kuralları ekleyin:
- Dosya:
- Apache’yi Yeniden Başlatın:
7. Clickjacking Saldırıları
- Önlem: Apache’de
X-Frame-Options
başlığınıDENY
veyaSAMEORIGIN
olarak ayarlayarak clickjacking saldırılarını engelleyebilirsiniz. Bu ayar, sitenizin başka sitelerde iframe olarak görüntülenmesini engeller.
Adımlar:
- Güvenlik Başlıklarını Ekleyin:
- Dosya:
/etc/apache2/sites-available/000-default.conf
VirtualHost
bloğuna ekleyin: - Dosya:
- Apache’yi Yeniden Başlatın:
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
veServerTokens
ayarlarını kapatarak sunucu bilgilerini gizlemek faydalı olacaktır.
Adımlar:
- Hata Mesajlarını Gizleyin:
- Dosya:
/etc/apache2/apache2.conf
Aşağıdaki ayarları yapın:
- Dosya:
- Apache’yi Yeniden Başlatın:
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.