Nginx ile Web Sunucunuzu Güçlendirin: Temel Güvenlik Başlıkları Rehberi 🛡️

devron

Üye
Katılım
14 Mart 2026
Mesajlar
2
Nginx ile Web Sunucunuzu Güçlendirin: Temel Güvenlik Başlıkları Rehberi 🛡️

Selam sistemciler! 🐧 Bugün terminalin başında, sadece bir web sunucusu değil, aynı zamanda sağlam bir kale inşa etmenin inceliklerinden bahsedeceğiz. Nginx, performansıyla öne çıksa da doğru yapılandırılmadığında güvenlik açıklarına davetiye çıkarabilir. Gelin, Nginx konfigürasyonumuza birkaç temel ama kritik güvenlik başlığı ekleyerek saldırı yüzeyimizi küçültelim.

Neden Bu Başlıklar Önemli?

Tarayıcılar, sunucunuzla iletişim kurarken güvenliği artırmak için çeşitli HTTP başlıklarını destekler. Bu başlıkları doğru şekilde ayarlamak, clickjacking, MIME tipi sızıntısı gibi saldırıları ve kötü amaçlı script'lerin yüklenmesini engellemeye yardımcı olur. Basit bir `add_header` direktifi ile büyük farklar yaratabiliriz.

Hazırlık: Nginx Yapılandırma Dosyanızı Bulun

Öncelikle, üzerinde çalışacağımız dosyayı bulalım. Bu genellikle sitenizin `server` bloğunun bulunduğu dosyadır. Örneğin:
Bash:
sudo nano /etc/nginx/sites-available/siteniz.com

Ya da tüm sitelerde global olarak uygulamak için:
Bash:
sudo nano /etc/nginx/nginx.conf

ÖNEMLİ UYARI: Herhangi bir değişiklik yapmadan önce config dosyanızın sözdizimini mutlaka kontrol edin!
Bash:
sudo nginx -t

Koruma Kalkanlarını Ekleyelim: HTTP Başlıkları

Şimdi, `server` bloğunuzun içine (genellikle `location /` bloğundan önce veya içine) aşağıdaki başlıkları ekleyelim. Bu başlıklar, tarayıcıya nasıl daha güvenli davranması gerektiğini söyler. 🖥️

NGINX:
server {
    listen 80;
    server_name siteniz.com www.siteniz.com;
    # ... diğer ayarlarınız ...

    # Güvenlik Başlıkları
    add_header X-Frame-Options "SAMEORIGIN" always;
    add_header X-Content-Type-Options "nosniff" always;
    add_header Referrer-Policy "strict-origin-when-cross-origin" always;
    add_header Permissions-Policy "geolocation=(), microphone=(), camera=()" always;

    # Modern tarayıcılar için ekstra güvenlik (İsteğe bağlı, test edin)
    add_header X-XSS-Protection "1; mode=block" always;

    location / {
        # ... root, index vb. ayarlarınız ...
    }
}

Bu Başlıklar Ne Yapar?

  • X-Frame-Options "SAMEORIGIN": Sitelerinizin başka bir web sitesi içinde `<frame>`, `<iframe>`, `<embed>` veya `<object>` ile yüklenmesini kontrol eder. `SAMEORIGIN` sadece aynı site içinde çerçevelenmeye izin vererek clickjacking saldırılarını engeller.
  • X-Content-Type-Options "nosniff": Tarayıcının, sunucunun belirttiği `Content-Type` dışında dosya türlerini "koklayarak" (sniffing) tespit etmeye çalışmasını engeller. Bu, özellikle kullanıcı yüklemesi yapılan sitelerde kötü amaçlı script'lerin yürütülmesini önlemeye yardımcı olur.
  • Referrer-Policy "strict-origin-when-cross-origin": Kullanıcı başka bir siteye tıkladığında veya bir kaynak istediğinde, tarayıcının "Referer" başlığında ne kadar bilgi göndereceğini kontrol eder. Bu politika, hassas URL yol bilgilerinin (path) sızdırılmasını engellerken, güvenli (HTTPS) kaynaklara referans bilgisini korur.
  • Permissions-Policy: Tarayıcı özelliklerine (coğrafi konum, mikrofon, kamera, bildirimler vb.) erişimi sınırlar. Yukarıdaki örnek, bu özellikleri tamamen devre dışı bırakır. İhtiyacınıza göre özelleştirebilirsiniz (örn: `microphone=(self "
    Bu bağlantı ziyaretçiler için gizlenmiştir. Görmek için lütfen giriş yapın veya üye olun.
    ")`).
  • X-XSS-Protection: Daha eski tarayıcılarda XSS saldırılarını engellemeye yönelik bir filtreyi etkinleştirir. Modern tarayıcılar bunun yerine Content Security Policy (CSP) kullanır, ancak geriye dönük uyumluluk için eklenebilir.

Bir Sonraki Seviye: Content Security Policy (CSP)

Eğer daha fazla güvenlik istiyorsanız, Content Security Policy (CSP) başlığını eklemek altın standarttır. CSP, sitenizin hangi kaynaklardan (script, stil, resim, font vb.) yükleme yapabileceğini beyaz liste yöntemiyle tanımlar. ⚙️ Ancak dikkatli kurulmalıdır, aksi takdirde siteniz bozulabilir.

Basit bir test CSP'si şöyle olabilir (kendi kaynaklarınızla değiştirin):
NGINX:
add_header Content-Security-Policy "default-src 'self'; script-src 'self' https://trusted.cdn.com; style-src 'self' 'unsafe-inline'; img-src 'self' data: https://*.imgyukle.com;" always;

Not: CSP'yi canlı sisteme eklemeden önce, tarayıcı geliştirici konsolunda (`Content-Security-Policy-Report-Only` başlığı ile) hata almadan test etmenizi şiddetle tavsiye ederim.

Değişiklikleri Aktif Etme ve Test Etme

Tüm ayarları yaptıktan sonra:
1. Config'i test edin: `sudo nginx -t`
2. Nginx'i yeniden yükleyin: `sudo systemctl reload nginx` veya `sudo service nginx reload`

Başlıkların düzgün çalışıp çalışmadığını kontrol etmek için tarayıcınızın Geliştirici Araçları'nı (F12) açın, "Network" sekmesine gidin ve sitenizi yenileyin. İstek başlıklarında (Response Headers) yeni eklediğiniz başlıkları görmelisiniz. 🌐

Son Söz

Bu başlıklar, web sunucu güvenliğiniz için hızlı ve etkili bir ilk savunma hattıdır. Her biri belirli bir saldırı vektörünü kapatmaya yardımcı olur. Unutmayın, güvenlik bir kerelik bir işlem değil, sürekli bir süreçtir.

Peki ya siz? Sunucularınızda hangi favori Nginx güvenlik ipuçlarını veya püf noktalarını kullanıyorsunuz? Yorumlarda deneyimlerinizi paylaşın, birlikte öğrenelim! 🚀
 

Tema özelleştirme sistemi

Bu menüden forum temasının bazı alanlarını kendinize özel olarak düzenleye bilirsiniz.

Zevkine göre renk kombinasyonunu belirle

Tam ekran yada dar ekran

Temanızın gövde büyüklüğünü sevkiniz, ihtiyacınıza göre dar yada geniş olarak kulana bilirsiniz.

Geri