Site icon Netopsiyon Online

Nginx ve Apache Güvenliği

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:

sudo nano /etc/apache2/apache2.conf

Aşağıdaki ayarları ekleyin veya düzenleyin:

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:

sudo systemctl restart apache2

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

Nginx için /etc/nginx/nginx.conf dosyasını düzenleyin:

sudo nano /etc/nginx/nginx.conf

Aşağıdaki satırları ekleyin veya güncelleyin:

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:

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:

sudo nano /var/www/html/.htaccess

Şu satırları ekleyin:

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:

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:

SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite HIGH:!aNULL:!MD5
SSLHonorCipherOrder on

Apache’yi yeniden başlatın:

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:

ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;

Nginx’i yeniden başlatın:

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:

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:

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:

sudo apt install libapache2-mod-evasive -y

/etc/apache2/mods-available/evasive.conf dosyasına şu satırları ekleyin:

DOSHashTableSize 2048
DOSPageCount 10
DOSSiteCount 50
DOSBlockingPeriod 600

Apache’yi yeniden başlatın:

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:

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:

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!

Exit mobile version