İçeriğe geç
Yeni yazı çıkınca e-posta · 4.812 abone 242 rehber · 78 ipucu · 58 komut RSS GitHub LinkedIn İletişim
Ara Ctrl K Bültene katıl
Tüm arşiv · 242 rehber →
Tüm araçlar · 75 üreteç →
Web Sunucu

Web sunucusu sertleştirme: başlıklar ve sessiz sızıntılar

Sürüm bilgisi sızıntısı, dizin listesi, yükleme dizininde kod çalıştırma, güvenlik başlıklarının hangisinin gerçekten işe yaradığı ve TLS yapılandırması.

Mustafa Çelik 27 Ağustos 2026 · 6 dk okuma

Web sunucusu sertleştirme, uzun kontrol listeleriyle anlatılan ama pratikte birkaç kararla belirlenen bir iştir. Etkiyi büyükten küçüğe sıralamak, listeyi ezberlemekten daha işe yarar.

Önce yüzeyi daraltın

En büyük kazanç, en sıkıcı adımdadır: sunucunun ne servis ettiğini sınırlamak.

Üç kontrol vardır.

Dizin listesi kapalı olmalıdır. Açık bırakıldığında, dizin içeriği tarayıcıda listelenir. Bir yedek dosyası, bir yapılandırma kopyası ya da bir günlük dosyası burada görünür.

Yükleme dizininde kod çalıştırılmamalıdır. Kullanıcıların dosya yükleyebildiği bir dizinde betik çalıştırma açıksa, saldırgan bir dosya yükleyip sunucuda kod çalıştırır. Bu, en sık istismar edilen yapılandırma hatasıdır.

Gizli dosyalar servis edilmemelidir. Sürüm kontrol dizinleri, yedek uzantılı dosyalar ve düzenleyicilerin bıraktığı geçici kopyalar — hepsi indirilebilir olabilir. Bu dosyaların içinde çoğu zaman veritabanı parolası bulunur.

Genel sunucu sertleştirmenin çerçevesi sunucu sertleştirme: 300 maddelik listeye bakmadan önce yazısında.

Sürüm bilgisi neden önemli

Web sunucuları ve uygulama katmanları, öntanımlı olarak sürümlerini yanıt başlıklarında ilan eder. Hata sayfalarında da aynı bilgi görünür.

Bu, tek başına bir açık değildir. Ama saldırgan için hedef seçimini kolaylaştırır: bilinen bir açığı olan sürüm, otomatik taramalarda doğrudan işaretlenir.

Kapatmanın maliyeti sıfırdır. Yanına iki şey daha eklenir: hata sayfalarının ayrıntı içermemesi ve öndeki vekilin arka uç başlıklarını temizlemesi; yöntemi ters vekil nedir yazısında.

Güvenlik başlıkları: hangisi gerçekten işe yarıyor

Uzun bir liste dolaşır; etkisi birbirinden çok farklıdır.

Katı taşıma güvenliği en yüksek getirisi olanıdır. Tarayıcıya, bu siteye yalnızca şifreli bağlanmasını söyler ve ilk isteğin şifresiz gitmesini engeller. Dikkat: süresi uzun ayarlandığında geri dönüş zordur; önce kısa süreyle başlanmalıdır.

İçerik türü koklamayı engelleme ucuz ve etkilidir. Tarayıcının, sunucunun bildirdiği türü göz ardı edip içeriği tahmin etmesini durdurur — bu tahmin, yüklenen bir dosyanın betik olarak çalıştırılmasına yol açabilir.

Çerçeveleme kısıtı, sitenizin başka bir sayfada görünmez bir çerçeveye konup kullanıcının tıklamalarının çalınmasını engeller.

İçerik güvenlik ilkesi en güçlüsüdür ve en zor kurulanıdır: sayfanın hangi kaynaklardan betik ve stil yükleyebileceğini belirler. Doğru kurulduğunda, bir betik enjeksiyonu bile çalışmaz.

Bu sonuncusu, doğrudan katı kurulursa siteyi bozar. Doğru yol, önce yalnızca rapor kipinde çalıştırıp neyin engelleneceğini görmek, sonra zorlamaya geçmektir. Aynı kademeli yaklaşımın başka bir örneği koşullu erişimi rapor modundan yayına geçirmek yazısında.

TLS yapılandırması

Sertifikanın olması yetmez; nasıl kullanıldığı da yapılandırma konusudur.

Üç karar vardır. Eski protokol sürümleri kapatılmalıdır. Zayıf şifre takımları listeden çıkarılmalıdır. Ve şifresiz bağlantı, şifreliye yönlendirilmelidir.

Üçüncüsünde bir incelik vardır: yönlendirme, otomatik sertifika yenilemesinin doğrulama yolunu kapsamamalıdır. Kapsadığında yenileme sessizce durur; nedeni sertifikayı otomatik yenilemek yazısında.

Eski istemcileri dışarıda bırakmak bilinçli bir karardır. Hangi istemcilerin bağlandığını bilmeden yapılan sıkılaştırma, bir grup kullanıcıyı sessizce dışarıda bırakır — ve bu, günlüklere bakılmadan fark edilmez.

Sınırlar ve hız

Sınırsız bırakılan bir web sunucusu, tek bir istemci tarafından tüketilebilir.

Dört sınır tanımlanır: istek gövdesinin en büyük boyutu, başlıkların en büyük boyutu, bağlantı başına zaman aşımı ve adres başına eşzamanlı bağlantı sayısı.

Üstüne hız sınırlama eklenir. Bunu uygulama katmanında değil önde yapmak gerekir; arkadaki uygulamaya hiç ulaşmayan istek, tüketilmemiş kaynaktır.

Hız sınırı kurarken gerçek istemci adresinin doğru okunduğundan emin olun — okunmuyorsa tüm kullanıcılar tek bir adres sayılır ve sınır ya hiç çalışmaz ya herkesi keser.

Çalıştığını doğrulamak

Sertleştirme, doğrulanmadan tamamlanmış sayılmaz. Üç kontrol yeterlidir.

Dışarıdan bir istek gönderip yanıt başlıklarını okuyun: sürüm bilgisi gitmiş mi, güvenlik başlıkları geliyor mu?

Bir dizin adresi isteyin: listeleme kapalı mı?

Bilinen gizli bir dosya yolunu isteyin: reddediliyor mu?

Üçü de temizse asıl adımlar tamamlanmıştır. Kalanlar iyileştirmedir.

Yapılandırmayı sürüm kontrolünde tutun

Sertleştirme adımlarının tamamı, elle düzenlenen dosyalarda yaşıyorsa kalıcı değildir.

Bir sunucu yeniden kurulduğunda ya da ikinci bir sunucu eklendiğinde, aynı ayarların tekrar yapılması gerekir — ve bir kısmı unutulur. Belirti, “iki sunucumuz var ama biri farklı davranıyor” olur.

Yapılandırmanın sürüm kontrolünde tutulması iki şey sağlar: değişikliğin ne zaman ve neden yapıldığının kaydı, ve yeni bir sunucunun aynı durumda ayağa kalkması. Yaklaşım sürüm kontrolü nedir ve yapılandırma yönetiminde idempotans yazılarında.

Kısaca

Sertleştirmenin en büyük payı başlıklarda değil, sunucunun ne servis ettiğini sınırlamaktadır: dizin listesi kapalı, yükleme dizininde kod çalışmıyor, gizli dosyalar erişilemez.

Başlıklar arasında en yüksek getiri katı taşıma güvenliği ve içerik türü koklamasını engellemededir. İçerik güvenlik ilkesi en güçlüsüdür ama önce rapor kipinde çalıştırılmadan yayına alınmamalıdır.

Mustafa Çelik

Altyapı ve Operasyon Müdürü, İstanbul. 25 yıldır BT altyapısı, sistem yönetimi ve ağ altyapısıyla uğraşıyor; öğrendiklerini bu blogda üretim ortamında denenmiş rehberlere çeviriyor.

Hakkımda

Bu rehber işinize yaradıysa, sonrakini kaçırmayın.

Yeni yazı yayınlandığında tek e-posta. Takvim yok, dilediğiniz an çıkabilirsiniz.

Bülten sağlayıcısı henüz bağlanmadı. Bağlanana kadar e-posta ile yazabilirsiniz ya da RSS akışını takip edebilirsiniz.