Bu doküman Apache 2.2 sürümüne göre düzenlenmiştir.

Bu makalede  Internet ortamında en çok tercih edilen web server olan Apache’nin Centos linux dağıtımı üzerine nasıl kurulup konfigüre edileceğini anlatmaya çalışacağız.

Kurulum

yum paket yöneticini güncelleyin

yum -y update

Apache’yi Yükleyin

yum -y install httpd mod_ssl

Apache Kofigürasyonu

Konfigürasyon dosyası için

vi /etc/httpd/conf/httpd.conf

komutunu verin ve aşağıdaki ayarları uygulayın. Bu ayarların etkin olabilmesi için Apache’yi yeniden başlatmanız gerekmektedir (“service httpd restart”)

ServerSignature
Apache’nin hata sayfalarında Apache versiyonu ve İşletim sistemi versiyonunu göstermemesi için httpd.conf dosyasındaki ServerSignature değerini off yapmanız tavsiye edeilir.

ServerSignature Off

ServerTokens
Apache’nin canlı (Production) ortamda çalıştığını bilmesi için ServerTokens’ın Prod olarak ayarlanması gerekmektedir. Böylelike Apache http isteklerinde daha az header bilgisi ile çalışacaktır.

ServerTokens Prod

Directory Browsing
Bu özellik web sitenizde açılış dosyası olmadığı zaman tüm klasör ve dosyaları ziyaretçiye gösterecek şekilde listeler. İstenmeyen bir dosyaya ulaşışmasını sağlayan bu özelliğin kapatılması güvenlik yüzeyini azaltacaktır.

Options -Indexing

Symbolic Links
Sembolik linkler çoğu webshell’inin kullandığı kritik bir yöntemdir. Apache web server’a sembolik linkerin izlenmeyeceğini belirttiğiniz taktirde sembolik link zaafiyetlerinden korunmuş olursunuz.

Options -FollowSymLinks

Server Side Include
Sunucu tarafında *.shtml dosyalarının başka bir dosya içine enjete edilmesini sağlayan bir özelliktir. Bu özellikte güvenlik için sömürülebiliyor. Kapatmanızı öneririz.

ExecCGI
Cgi scriptlerinin direkt çalıştırılmasını sağlayn bu özelliği gerekmedikçe kapatmanızı öneririz.

Options -ExecCGI

TraceEnable
Apache web server’ı varsayılan olarak TRACE isteklerine cevap vermektedir. Production ortamında çalışan Apache’de buna gerek duymazsınız. Kapatılması önerilmektedir.

TraceEnable Off

SSLProtocol
Global etki yaratan SSL açıkları ile birlikte web serverlarda bu konu ile ilgilide ayarlamalar yapmanız gerekir. Örneğin Poodle açığından korunmak için SSLv3’ü kapatmalısınız ve güncel TLS sürümleri ile haberleşmeye izin vermelisiniz. Buna göe Apache’nin desteklediği SSL protokollerini aşağıdaki gibi düzenlemenizi öneririz.

SSLProtocol -ALL -SSLv2 -SSLv3 +TLSv1.1 +TLSv1.2
SSLCipherSuite ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM

FileETag
Apache Etag özelliği bir çok hassas bilgiyide beraberinde istemciye taşıyabilmektedir (inode sayısı, Mime Type ve ChildProcess header’ları gibi) Etag bilgilerinin kötü niyetli kullanılmaması içinbu özelliği kapatmanızı tavsiye ederiz.

FileETag None

LimitRequestBody
Apache varsayılan olarak web isteklerinin boyutunu limitlemez. Bazı kötü niyetli kullanıcılar servisi engellemek için bunu sömürebilirler. LimitRequestBody ile web isteklerinin boyutunu limitleyebilirsiniz. Bu aynı zamanda kullanıcının upload edeceği dosya boyutunuda belirler. Aşağıdaki direktif 25MB’lık bir upload limiti tanımlar.

LimitRequestBody 2560000

LimitRequestFields
Bazı saldırı tipleri direkt HTTP headerlarını kullanmaktadır. Apache’nin varsayılan HTTP Header limiti 100 dür. Sunucunun alacağı istek tiplerine göre 100’den daha düşük bir değer olması önerilir.

Örnek httpd.conf

MaestroPanel’de kullandığımız Apache konfigürasyonuna aşağdaki adresten ulaşabilirsiniz

Yazar