Linux Sunucularda Apache Zayıf Şifreleme Takımları Nasıl Kapatılır
Önem derecesiYüksek
enRead this article in EnglishÇoğu sistemde varsayılan paket önyüklemeleri zafiyetler içerebilmektedir. Bu çoğunlukla geriye dönük uyumluluğu sağlamak için üreticiler tarafından tercih edilmektedir. Nginx ve IIS’de olduğu gibi Apache’de de standart kurulum üzerine SSL yapılandırması olduğu gibi bırakılırsa, yarardan çok zarar getirecektir.
Not: Eski tarayıcı ve mobil iş istasyonları yeni geliştirilmiş olan TLS 1.2 gibi şifreleme takımlarını desteklemeyebilir.
Web tarayıcıları ile sunucu arasında SSL/TLS iletişimi kurulduğu zaman öncelikli olarak sunucu tarafı hangi şifreleme takımları ile iletişim kurabileceğini tarayıcıya iletir. Modern web tarayıcıları, eğer yapılarında bir değişiklik yapılmadıysa, sunucunun önerdiği en güncel şifreleme takımlarını kullanmayı deneyecektir. Bir saldırgan ise sunucunun önermiş olduğu tüm şifreleme takımlarını listeleyebilir ve bunların arasında açığı olduğu bilinen şifreleme takımları ile iletişim kurmaya çalışır. Bu şifreleme takımları arasında kesinlikle açıkları olduğu bilinen SSLv3 ve TLSv1.0 da bulunmaktadır.
Yapılandırma
Yapılandırma dosyanız Virtual Host direktifi içeriyorsa, Virtual Host yapılandırması altında, içermiyorsa nginx.conf dosyasında aşağıdaki değişiklikleri yapınız. Standart yapılandırmanın içeriğine aşağıdakileri eklemeniz gerekecektir:
Protocols h2 http/1.1
Header always set Strict-Transport-Security "max-age=63072000"
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
SSLHonorCipherOrder off
SSLSessionTickets off
SSLUseStapling On
SSLStaplingCache "shmcb:logs/ssl_stapling(32768)"
Protocols: Modern binary protokolü aktive eder. ssl_session_cache shared: Tüm proseslerin paylaştığı bir ön bellek mekanizmasıdır, yerleşik olan bellek mekanizması (builtin) hafıza parçalanması oluşturduğu için önerilmemektedir. SSLSessionTickets: SSL oturumunun yeniden başlatılmasını engeller. SSLProtocol: SSL şifreleme protokolleri, sadece TLSv1.2’ ve TLS1.3’e izin verilmiştir. SSLCipherSuite: Tarayıcıya sunulan şifreleme takımları. Bkz: https://ssl-config.mozilla.org/ Header always set Strict-Transport-Security “max-age=63072000”: Tarayıcıya güvenli iletişim kurarak bu site ile iletişime geçmesi direktifini verir. ssl_stapling: Hem güvenliği hem de performansı artırmak için kullanır. Bu ayar aktive edildiğinde tarayıcının CA otoritesine sertifika durumunu sormasına gerek kalmaz. SSLHonorCipherOrder: Normalde SSL iletişimi kurulurken tarayıcının tercih ettiği sıra önceliklidir, açık olduğunda sunucu tercihleri geçerlidir.
TLSv1.3 RedHat Enterprise Linux 8 ya da benzeri işletim sistemi gerektirebilir. OpenSSL’in TLSv1.3’ü destekleyen sürümü 7 sürümünde gelmemektedir.
Yapılandırma dosyasının tamamı aşağıdaki gibi olmalıdır, eğer Apache önünde nginx reverse proxy kullanıyorsanız Apache’de SSL yapılandırması yapmanıza gerek kalmayacaktır, bu durumda nginx TLS yapılandırması makalemize bakabilirsiniz. Aşağıdaki örnek standart kurulum yapılandırması üzerine derlenmiştir, eğer httpd dışında bir kullanıcı kullanıyorsanız değiştirmeniz gerekir. Sertifikaların /etc/pki/tls/ dizininde olduğu varsayılarak:
<VirtualHost *:80>
RewriteEngine On
RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]
</VirtualHost>
<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /etc/pki/tls/server.crt
SSLCertificateKeyFile /etc/pki/tls/server.key
Protocols h2 http/1.1
Header always set Strict-Transport-Security "max-age=63072000"
</VirtualHost>
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
SSLHonorCipherOrder off
SSLSessionTickets off
SSLUseStapling On
SSLStaplingCache "shmcb:logs/ssl_stapling(32768)"
Yapılandırmayı kaydettikten sonra Apache sunucusunu yeniden başlatın
systemctl restart httpd
Onlayer üzerinden sisteminizi tekrar kontrol ettiğinizde PCI Uyumluluğun olduğunu göreceksiniz.

Yasal Uyarı
Copyright (c) 2019 – 2026 ONLAYER Bilişim Teknolojileri A.Ş.
Bu sayfadaki içeriğin kullanımı sadece bu sayfaya link ile atıf yapılarak mümkündür. Yazılı izin olmadan değiştirilemez ve alıntı yapılamaz.
Kullanım Uyarısı: Burada belirtilen direktifler olduğu gibidir ve uygulanması sonucunda oluşabilecek servis kesintileri ve veri kaybından ONLAYER sorumlu değildir. Sistemlerin daha iyi çalışabileceği ya da daha güvenli olacağına dair hiç bir garanti verilmemektedir. Ne firma ne de yazar kullanımdan dolayı hiçbir sorumluluk kabul etmemektedir.