Nginx Güvenliği

Nginx Güvenliği

Nginx güvenliği daha fazla nasıl artar diye bir çok kişiden soru aldım. Bu işlem için birkaç önemli adım vardır. Aşağıda Nginx güvenlik ayarlarını nasıl yapacağınızı adım adım anlatıyorum. Kendinize ait bir sanal sunucunuz varsa ve Nginx kurulumunu makalemizdeki gibi yaptıysanız sırasıyla güvenlik adımlarına geçelim;

1. Gereksiz Modülleri Devre Dışı Bırakma

Nginx güvenliği için Nginx, varsayılan olarak birçok modülle gelir, ancak bazıları kullanılmıyorsa devre dışı bırakılmalıdır. Gereksiz modüllerin yüklenmemesi, saldırı yüzeyini küçültür.

Örnek Komutlar:

  • Nginx’i derlerken kullanmadığınız modülleri devre dışı bırakabilirsiniz. Bu, Nginx’i kaynak koddan derlerken yapılır.

2. Server Tokens Bilgisini Gizleme

Server tokens, Nginx’in sürüm bilgisini içerir ve potansiyel saldırganlara bilgi verebilir. Bu bilgiyi gizlemek, sunucunun hangi Nginx sürümünü çalıştırdığını saklar.

Dosya yolu: /etc/nginx/nginx.conf

Yapılacak Değişiklik:

server_tokens off;

3. Yasaklı Dosya Türlerine Erişimi Engelleme

Belirli dosya türlerinin istemcilere sunulmasını engelleyerek, sunucunuzun güvenliğini artırabilirsiniz.

Dosya yolu: /etc/nginx/nginx.conf veya sitenize özel yapılandırma dosyası

location ~* \.(htaccess|htpasswd|env|ini|log|sh)$ {
deny all;
}

4. Güvenli SSL/TLS Yapılandırması

SSL/TLS yapılandırmasını doğru yapmak, veri iletimi sırasında güvenliği sağlar. Güvenli şifrelemeler ve sertifikalar kullanılmalıdır.

Dosya yolu: SSL yapılandırmasını içeren dosya (örn. /etc/nginx/sites-available/default)

Yapılacak Değişiklikler:

ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384';
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;

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

DDoS saldırılarını engellemek için taleplerin hızını sınırlayabilirsiniz. Nginx benim gözümde ucu bucağı olmayan bir dünya gibi, her geçen gün farklı komutlar ile kendini kanıtlayan bir web server. Bunların içinde en hassas olduğum nokta ise Nginx güvenliği için DDoS, Layer katman saldırılarını engellemek. Bununla ilgilide siz okurlarıma ilerleyen zamanalrda Nginx hakkında tüm bilgimi paylaşacağımdan emin olabilirsiniz.

Dosya yolu: Sitenize özel yapılandırma dosyası (örn. /etc/nginx/sites-available/default)

Yapılacak Değişiklikler:

limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;

server {
location / {
limit_req zone=one burst=5;
}
}

6. HTTP Güvenlik Başlıklarını Uygulama

Güvenlik başlıkları, XSS ve clickjacking gibi saldırılara karşı koruma sağlar.

Dosya yolu: Sitenize özel yapılandırma dosyası (örn. /etc/nginx/sites-available/default)

Yapılacak Değişiklikler:

add_header X-Content-Type-Options nosniff;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

7. Sınırlı Erişim İçin IP Beyaz Listesi

Belirli IP adreslerine erişim izni vererek, güvenliği artırabilirsiniz.

Dosya yolu: Sitenize özel yapılandırma dosyası (örn. /etc/nginx/sites-available/default)

Yapılacak Değişiklikler:

location /admin {
allow 192.168.1.1;
deny all;
}

8. Güncellemeleri Düzenli Olarak Yapma

Nginx ve bağlı olduğu kütüphaneler düzenli olarak güncellenmelidir. Bu, bilinen güvenlik açıklarının kapatılmasını sağlar.

Uygulamanız Gereken Komutlar:

sudo apt update
sudo apt upgrade nginx

Bu adımları izleyerek Nginx sunucunuzun güvenliğini artırabilirsiniz. Her değişiklikten sonra Nginx’i yeniden başlatmanız gerektiğini unutmayın:

sudo systemctl restart nginx

Bir yanıt yazın

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