Sunucu Güvenliği : Apache temel ayarları

Bir takım saldırı türlerini ( xss, csrf, sql injection ) ve bunlardan sunucu ve kodlar üzerinde yapacağımız ayarlarla nasıl kurtulabileceğimizi anlattım. Şimdi biraz apache ayarlarına değinelim.

Apache2 için ayarlar ubuntu server kurulumlarında /etc/apache2/apache.conf dosyasında saklanıyor. Bu dosyaya tıpkı PHP’de olduğu gibi (require, include komutlari) başka dosyaları cağarak aktifleştirebiliyorsunuz.

Güvenlik amaçlı ayarlar konusunda ilk olarak saldırganlara ipucu vermemek adına apache sürümünü gizleyelim. Apache sürümünü gizleme işini bence arama motorlarının crawler programları dahil kimseyi ilgilendirmediği için tüm virtualhostlarda gizlemeliyiz.

Bunun için;

dosyasında;

satırlarını girmelisiniz. Benzer satırlar zaten varsa bu şekilde güncelleyin. Bu da arama motorlarında belirli bir apache sürümünü arayan saldırgandan kurtulmanız demek. İlk komut dizin listelemeleri ve hata gösterimlerinde apache sürümünü gizleyecek. İkincisi dosyaların header bilgileri içinde sürümsüz olarak sadece apache sunucu kullanıldığını belirtecek.

Apache dokümanlarında TraceEnable özelliği hakkında güvenlik açığı değildir yazmakta. Fakat aynı zamanda HTTP 1.1 belirtimine ait bir özellik olduğunu söylemekteler. Yani eski bir HTTP protokolünde yazılmıştır. Ayrıca HTTPOnly ile XSS ataklarına karşı güvenli hale getirmeye calıştığımız cookie bilgilerinin riske edebilir. Bu yüzden kapatılması iyi bir fikirdir.

Zaman aşımı apachede önemli bir kritere dönüşebilir. Sık ziyaret edilen ve cache ile sunulan bir sayfada kullanıcının dakikalarca beklemeyeceğini varsayarız. Apache ise bunu 300 saniyeye default olarak ayarlamıştır. 5 dakika uzun olduğu ve DoS ataklarını da düşünerek 45 saniye yapmak mantıklıdır.

Apache haliyle bir sunucu ve isteklere cevap vermeye çalışıyor. Çalışıyor diyorum, çünkü bazı isteklere direkt olarak hata dönderirken bazılarını zaman aşımı kapsamında askıda tutarak veri alışverişi bitene kadar sistem kaynaklarını meşgul ediyor. İşte bu noktada sunucuların alıp vermesi gereken verinin miktarini tam bilmesekte buna limit koymakta fayda var.

Bu sayede apache için sınırız olarak ayarlanmış bu kısım artık limitlenir ki emin olun cok mantıklı. Bu şekilde yaklaşık 1 megabyte ile sınırlama yaparsınız.

Bu noktada PHP kullanıcıları php.ini ile bunun yapılabildigini bilir. Fakat php.ini ile yapilacak ayar birden çok dille çalışan apache ile yapılan genel ayardan haliyle farklı olacak, PHP kapsamında kalacaktır. Yine bu ayarı PHP’yi apache dışından kullanıyorsanız php.ini içinden yaparsınız. Buna genelde cpanelde vb panellerde rastlanıyor.

Bu ayarları apache.conf dosyasında ekledikten veya güncelledikten sonra apache restart etmeyi unutmayın.

Bu ayarlar dışında ubuntuda bir indeks dosyası konulmamış dizinler icin apache otomatik listelemesini iptal etmek mantıklıdır. Dosya listesini saldırgana göstermek kullandığımız framework, kütüphaneler vb. bilgiler hakkında saldırganı bilgilendirmek demektir.

komutunu terminalde  kullanarak autoindex özelliğini kapatın.

Temel olarak yapılabilecek basit ayarlara değindik. Bir dahaki sefer OWASP güvenlik kriterleri ve mod_security ile ilgili yazacağım.

Herkese iyi çalışmalar.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir