Apache Header set Komutları ile Güvenlik Başlıkları Ekleme

Apache sunucularında HTTP güvenlik başlıklarını ayarlamak, web uygulamalarınızın güvenliğini önemli ölçüde artıran kritik bir adımdır.

Apache sunucularında HTTP güvenlik başlıklarını ayarlamak, web uygulamalarınızın güvenliğini önemli ölçüde artıran kritik bir adımdır. Header set komutları, Apache’nin mod_headers modülü aracılığıyla yanıt başlıklarını kolayca yapılandırmanıza olanak tanır. Bu başlıkları ekleyerek, clickjacking gibi yaygın saldırılara karşı koruma sağlar, MIME türlerini zorlar ve içerik enjeksiyonlarını önlersiniz. Bu makalede, Apache konfigürasyonunda bu başlıkları nasıl ekleyeceğinizi adım adım inceleyeceğiz. Özellikle kurumsal ortamlarda, PCI DSS veya GDPR gibi uyumluluk gereksinimleri için bu uygulamalar vazgeçilmezdir. Pratik örneklerle, sunucunuzu hemen güçlendirebileceğiniz talimatlar sunacağız.

Apache Header Modülünü Etkinleştirme ve Temel Kullanım

Apache’de güvenlik başlıklarını yönetmek için öncelikle mod_headers modülünün etkinleştirilmesi gerekir. Bu modül, varsayılan olarak çoğu Apache kurulumunda mevcut olsa da, etkin olup olmadığını kontrol edin. Komut satırından a2enmod headers çalıştırarak etkinleştirin ve Apache’yi yeniden başlatın: systemctl restart apache2. Etkinleştirdikten sonra, sanal ana makine (VirtualHost) konfigürasyon dosyasında veya .htaccess dosyasında Header direktiflerini kullanabilirsiniz.

Header set komutu temel syntax’ı şu şekildedir: Header always set Header-Adı "Değer". “always” parametresi, hem başarılı hem de hatalı yanıtlar için başlığı ekler, ki bu güvenlik için idealdir. Örneğin, blokları içinde veya direktifleri altında yerleştirin. Bu yaklaşım, dinamik içerikler için tutarlı koruma sağlar. Konfigürasyon değişikliklerini test etmek üzere apachectl configtest komutunu kullanın, böylece syntax hatalarını önleyin. Bu temel adımlar, tüm güvenlik başlıklarının temeli olur ve sunucu genelinde standartlaşmayı sağlar.

Yaygın Güvenlik Başlıklarının Tanıtımı ve Uygulaması

X-Frame-Options ile Clickjacking Önleme

X-Frame-Options başlığı, sayfanızın iframe içinde gömülmesini engelleyerek clickjacking saldırılarını önler. En güvenli değer “DENY”dir, yani hiçbir framede izin vermez. Apache’de şu şekilde ekleyin: Header always set X-Frame-Options "DENY". Bu, özellikle kurumsal dashboard’lar için kritiktir. “SAMEORIGIN” alternatifi, sadece aynı origin iframe’lere izin verir. Uygulamadan sonra, tarayıcı geliştirici araçlarında Network sekmesinden başlığın eklendiğini doğrulayın. Bu başlık, OWASP Top 10 tehditlerinden birine karşı doğrudan koruma sağlar ve tüm HTTPS trafiğinde zorunludur.

X-Content-Type-Options ile MIME Sniffing Engelleme

X-Content-Type-Options: nosniff, tarayıcının MIME türlerini otomatik algılamasını (sniffing) devre dışı bırakır, böylece zararlı JavaScript enjeksiyonlarını önler. Komut: Header always set X-Content-Type-Options "nosniff". Bu, özellikle kullanıcı tarafından yüklenen dosyalarda etkilidir. Sunucu tarafında Content-Type doğru ayarlanmış olsa bile, tarayıcı sniffing yaparsa güvenlik açığı oluşur. Uygulayın ve curl ile test edin: curl -I https://ornek.com. Çıktıda başlığın göründüğünü teyit edin. Kurumsal sitelerde, statik dosya sunumunda bu başlık standart hale gelmelidir.

Content-Security-Policy ile İleri Düzey Koruma

Content-Security-Policy (CSP), inline script’leri, XSS saldırılarını ve veri enjeksiyonlarını kısıtlar. Basit bir politika: Header always set Content-Security-Policy "default-src 'self'; script-src 'self' https://trusted.com". ‘self’ sadece aynı origin’e izin verir. Politika geliştirirken, report-uri ile ihlalleri loglayın. Apache’de blokları içinde sarın. CSP Level 2/3 için frame-ancestors ekleyin. Uygulama sonrası, tarayıcı konsolunda hataları izleyin ve politikayı iteratif olarak sıkılaştırın. Bu başlık, modern web güvenliğinin temel taşıdır ve performans etkisi minimumdur.

Pratik Konfigürasyon Örnekleri ve En İyi Uygulamalar

Sanal ana makine konfigürasyonunda tüm başlıkları birleştirin. Örnek .conf dosyası parçası:

  • <VirtualHost *:443>
  • Header always set X-Frame-Options "DENY"
  • Header always set X-Content-Type-Options "nosniff"
  • Header always set Content-Security-Policy "default-src 'self'"
  • Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
  • </VirtualHost>

Strict-Transport-Security (HSTS), HTTP Strict Transport Security protokolünü etkinleştirir ve tarayıcıları HTTPS’e zorlar. .htaccess için benzer syntax kullanın, ancak performans için ana konfigürasyonu tercih edin. Çevresel farklılıklar için direktifleri ekleyin, örneğin production’da daha sıkı politikalar. Değişiklikleri aşamalı uygulayın: Önce staging sunucuda test edin.

Ek başlık olarak Referrer-Policy: strict-origin-when-cross-origin ekleyin, referer bilgisini gizleyerek gizliliği artırır. Permissions-Policy ile kamera/mikrofon erişimini kısıtlayın. Bu kombinasyon, kapsamlı bir güvenlik katmanı oluşturur. Düzenli olarak securityheaders.com gibi araçlarla tarayın, ancak manuel doğrulama yapın.

Apache Header set komutlarını kullanarak güvenlik başlıklarını entegre etmek, web sitenizin dayanıklılığını artırır ve uyumluluk sağlar. Bu adımları uygulayarak, yaygın tehditlere karşı proaktif koruma elde edersiniz. Düzenli güncellemelerle konfigürasyonu gözden geçirin ve ekibinize bu pratikleri öğretin. Sonuçta, bu yatırımlar veri ihlallerini önler ve kullanıcı güvenini pekiştirir.

Kategori: Web Sunucu
Yazar: Lorem
çerik: 572 kelime
Okuma Süresi: 4 dakika
Zaman: Bugün
Yayım: 24-02-2026
Güncelleme: 24-02-2026