30 Nisan 2025 - 07:32
Nginx ve Apache Güvenliği Görseli
Sunucu Yönetimi

Nginx ve Apache Güvenliği

Yorumlar
Web sunucuları, siber saldırganların en çok hedef aldığı sistemlerden biridir. Nginx ve Apache, dünyanın en popüler web sunucuları arasında yer alırken, bu sistemlerin güvenliğini sağlamak büyük önem taşır. Yanlış yapılandırılmış bir web sunucusu, DDoS saldırılarına, yetkisiz erişimlere ve veri sızıntılarına yol açabilir.

1. Varsayılan Ayarları Güçlendirme

Varsayılan web sunucu yapılandırmaları genellikle güvenlik açısından eksik olabilir. İlk adım, temel yapılandırmaları güçlendirmek olmalıdır.

1.1. Apache İçin Varsayılan Ayarları Güçlendirme

Apache’nin güvenliğini artırmak için /etc/apache2/apache2.conf veya /etc/httpd/conf/httpd.conf dosyasını düzenleyin:
BASH
sudo nano /etc/apache2/apache2.conf
Aşağıdaki ayarları ekleyin veya düzenleyin:
INI
ServerTokens Prod  # Sunucu hakkında minimum bilgi gösterir
ServerSignature Off  # Hata sayfalarında Apache bilgilerini gizler
TraceEnable Off  # TRACE HTTP metodunu devre dışı bırakır
Options -Indexes  # Dizin listelemeyi devre dışı bırakır
Header always unset X-Powered-By  # PHP ve Apache sürüm bilgisini gizler
Yapılandırma değişikliklerini kaydettikten sonra Apache’yi yeniden başlatın:
BASH
sudo systemctl restart apache2

1.2. Nginx İçin Varsayılan Ayarları Güçlendirme

Nginx için /etc/nginx/nginx.conf dosyasını düzenleyin:
BASH
sudo nano /etc/nginx/nginx.conf
Aşağıdaki satırları ekleyin veya güncelleyin:
INI
server_tokens off;  # Nginx sürüm bilgisini gizler
add_header X-Frame-Options SAMEORIGIN;  # Clickjacking saldırılarını önler
add_header X-XSS-Protection '1; mode=block';  # XSS saldırılarına karşı koruma sağlar
add_header X-Content-Type-Options nosniff;  # MIME tipi sahtekarlığını önler
Nginx’i yeniden başlatın:
BASH
sudo systemctl restart nginx

2. Yetkisiz Erişimi Önleme

Yetkisiz erişim, saldırganların sunucuya giriş yapmasını ve hassas verileri ele geçirmesini sağlayabilir.

2.1. Apache İçin Yetkisiz Erişimi Kısıtlama

Önemli dizinlere yetkisiz erişimi engellemek için .htaccess dosyasını kullanabilirsiniz:
BASH
sudo nano /var/www/html/.htaccess
Şu satırları ekleyin:
INI
Order Deny,Allow
Deny from all
Allow from 192.168.1.100  # Sadece belirli IP adreslerine izin ver

2.2. Nginx İçin Yetkisiz Erişimi Kısıtlama

Özel bir IP adresine erişimi sınırlandırmak için server bloğuna aşağıdaki satırları ekleyin:
INI
location /admin {
    allow 192.168.1.100;
    deny all;
}
Bu ayar, yalnızca 192.168.1.100 IP adresinin /admin dizinine erişmesine izin verecektir.

3. Güçlü SSL/TLS Yapılandırması

HTTPS kullanımı, web sunucularının güvenliğini artırmanın en önemli yollarından biridir.

3.1. Apache İçin SSL/TLS Güçlendirme

SSL kullanımını zorunlu hale getirmek için /etc/apache2/sites-available/default-ssl.conf dosyasını düzenleyin:
BASH
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite HIGH:!aNULL:!MD5
SSLHonorCipherOrder on
Apache’yi yeniden başlatın:
BASH
sudo systemctl restart apache2

3.2. Nginx İçin SSL/TLS Güçlendirme

/etc/nginx/sites-available/default dosyasına aşağıdaki satırları ekleyin:
INI
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
Nginx’i yeniden başlatın:
BASH
sudo systemctl restart nginx

4. Güvenlik Duvarı ile Web Sunucusunu Koruma

Nginx ve Apache, güvenlik duvarı kurallarıyla daha güvenli hale getirilebilir.

4.1. UFW Kullanarak Web Sunucusunu Koruma

Ubuntu/Debian sistemlerinde UFW kullanarak yalnızca belirli portları açabilirsiniz:
BASH
sudo ufw allow 80/tcp  # HTTP
sudo ufw allow 443/tcp  # HTTPS
sudo ufw enable

4.2. iptables Kullanarak Web Sunucusunu Koruma

Alternatif olarak iptables kullanarak yalnızca HTTP ve HTTPS bağlantılarını kabul edebilirsiniz:
BASH
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo iptables -A INPUT -j DROP  # Diğer tüm trafiği engeller

5. DDoS Saldırılarına Karşı Koruma

Web sunucunuzu DDoS saldırılarından korumak için rate limiting (hız sınırlandırma) kuralları ekleyebilirsiniz.

5.1. Apache İçin DDoS Koruma

mod_evasive modülüyle Apache’ye hız sınırlama ekleyebilirsiniz:
BASH
sudo apt install libapache2-mod-evasive -y
/etc/apache2/mods-available/evasive.conf dosyasına şu satırları ekleyin:
INI
DOSHashTableSize 2048
DOSPageCount 10
DOSSiteCount 50
DOSBlockingPeriod 600
Apache’yi yeniden başlatın:
BASH
sudo systemctl restart apache2

5.2. Nginx İçin DDoS Koruma

Nginx’in limit_req_zone modülüyle hız sınırlandırma ekleyebilirsiniz:
INI
http {
    limit_req_zone $binary_remote_addr zone=one:10m rate=5r/s;
}

server {
    location / {
        limit_req zone=one burst=10 nodelay;
    }
}
Nginx’i yeniden başlatın:
BASH
sudo systemctl restart nginx

  • 💡 Unutmayın: Web sunucularını düzenli olarak güncellemek ve güvenlik açıklarını taramak, en iyi güvenlik uygulamalarından biridir!

Benzer Yazılar

Yorumlar ()

Henüz yorum yok. İlk yorum yapan sen ol!

Yorum Yap