Apache Güvenlik Ayarları

Apache Güvenlik Ayarları ve Bilgileri Hakkında Bilgiler
#

Apache Güvenlik Ayarları ve Bilgileri

Apache Güvenlik Ayarları

Apache Güvenlik Ayarları ve Bilgileri


Apache’yi Güvenli Hale Getirmenin 20 Yolu

Peter Freitag’in apache konfigürasyonunda yapilacak bazi düzenlemeler hakkindaki, Apache Security kitabindan da alintilar iceren önerileri. 

Not: Önerilerin bir garantisi yoktur. Sunucunuzu daha siki yapacaktir fakat bütün önerileri yaptiktan sonra sunucunuz %100 güvenli olacak diye bir garanti yok. Ayrica önerilerin bazilari sizin ortaminizda performansi düsürebilir veya problemlere yol acabilir. Önerilen degisikliklerin ortaminiza uyup uymayacagina karar vermek size kaliyor. 

1) ilk olarak en son yamalari gectiginize emin olun 
Eger kapiniz acik ise pencerelere kilit koymanin bir mantigi yoktur. Ayni sekilde, eger gerekli yamalari kurmadiysaniz, diger önerilere yamalari gectikten sonra bakin. 

2) Apache sürüm numarasini ve diger bilgileri gizleyin 
Varsayilan olarak, bütün Apache kurulumlari bütün dünyaya hangi Apache sürümünü, isletim sistemini calistirdiginizi ve hatta hangi Apache modüllerinin sunucuda kurulu oldugunu söyleyecektir. Saldirganlar bu bilgileri kullanirlar. Ayrica varsayilan ayarlari ellemediginizi belirten bir mesaj da verilmis olur. 

httpd.conf dosyasinda asagidaki iki direktifi vermeniz gerekiyor: 
ServerSignature Off 
ServerTokens Prod 

ServerSignature direktifi 404 sayfalari, klasör listeleri gibi apache tarafindan yaratilan sayfalarin en altinda bilgilerin görüntülenmesi ile ilgilidir. 
ServerTokens direktifi ise Apache’nin HTTP cevap basliginda Server kismina ne yazacagini belirler. Bunu Prod’a set ederek HTTP cevabinda asagidaki sekilde cevap verdirmek mümkün: 
Server: Apache 
Eger fazla paranoyaksaniz bunu da kaynak kodunda degisiklik yaparak veya mod_security kullanarak (asagida anlatiliyor) degistirebilirsiniz. 

3) Apache’yi kendi kullanici hesabi ve grubunda calistirin 
cesitli apache kurulumlari nobOdy kullanici hesabi ile calisir. Eger hem Apache hem de Eposta sunucunuzun da nobOdy kullanici hesabi ile calistirildigini varsayarsak, Apache’ye yapilan basarili bir saldiri sonrasi eposta sunucusunun da ele gecirilmesi veya bunun tersi mümkün olabilir. 
User apache 
Group apache 

4) Web klasörünün disindaki dosyalara erisimi engelleyin 
Apache’nin web ana klasörü disindaki dosyalara erisimini istemeyiz. Bütün web sitelerinizin ayni klasör altinda oldugunu varsayarsak (örnekte /web olarak geciyor) asagidaki gibi bir ayar yapmalisiniz: 

Order Deny,Allow 
Deny from all 
Options None 
AllowOverride None 

Order Allow,Deny 
Allow from all 

Not: Options None ve AllowOverride None set ettigimiz icin bu sunucunun tüm override islemlerini kapatacaktir. Bu sebeple Option veya Override gerektiren her bir klasör icin elle ekleme yapmaniz gerekir. 

5) Klasör icerigi görüntülemeyi kapatin 
Bunu bir Directory tag’i icerisinde Options ile yapabilirsiniz. Options’i None veya -Indexes olarak set edin: 
Options -Indexes 

6) Sunucu tarafi dahil etmeleri (server side include) kapatin 
Bu da Directory tag’i icerisinde Options ile yapiliyor. Options’i None veya -Includes olacak sekilde ayarlayin: 
Options -Includes 

7) CGI calistirmayi kapatin 
Eger CGI kullanmiyorsaniz Directory tag’i icerisinde Options’da set ederek kapatin. Options’i None veya -ExecCGI olarak set edin: 
Options -ExecCGI 

8) Apache’nin sembolik link’leri takip etmesine izin vermeyin 
Bu da Directory tag’i icerisinde Options ile yapiliyor. Options’i None veya -FollowSymLinks olacak sekilde ayarlayin: 
Options -FollowSymLinks 

9) Bütün Options özelliklerinin kapatilmasi 
Bütün Options’lari kapatmak istiyorsaniz, 
Options None 
olarak set edin. Birden fazla özellik kapatmak isterseniz ayni satir icerisinde bosluk vererek belirtin: 
Options -ExecCGI -FollowSymLinks -Indexes 

10) .htaccess dosyalari icin destegin kaldirilmasi 
Bu Directory tag’i icerisinde AllowOverride direktifi ile yapiliyor. None olacak sekilde ayarlayin: 
AllowOverride None 

Eger Overrides’a ihtiyaciniz varsa indirilemediklerinden (download) ve/veya isimlerini .htaccess’den baska bir seye degistirin. Örnegin .httpdoverride olarak degistirelim ve .ht ile baslayan bütün dosyalarin indirilmesini engelleyelim: 
AccessFileName .httpdoverride 

Order allow,deny 
Deny from all 
Satisfy All 

11) mod_security calistirin 
mod_security, Apache Security kitabinin da yazari olan Ivan Ristic tarafindan hazirlanmis yararli bir Apache modülüdür. 
mod_security ile asagidakileri yapabilirsiniz: 
* Basit filtreleme 
* Regular Expression tabanli filtreleme 
* URL kodlama kontrolü 
* Unicode kodlama kontrolü 
* Denetim (Auditing) 
* Null byte saldirisi önleme 
* Upload hafiza sinirlari 
* Sunucu kimligi maskeleme 
* Dahili chroot destegi 
* ve dahasi 

12) Gereksiz modülleri kapatin 
Apache tipik olarak cesitli modüllerle birlikte kurulmaktadir. Apache modül dokümantasyonuna göz atarak hangi modülün ne yaptigini ögrenin. Aktif durumda olan bazi modüllere ihtiyaciniz olmayabilir. 
httpd.conf dosyasinda LoadModüle iceren satirlara bakin. Bir modülü devre disi birakmak icin basitce satirin basina bir # isareti koyun (comment out). Modülleri aratmak icin 
grep LoadModule httpd.conf 
komutunu calistirin. 
Genelde aktif olan fakat ihtiyac duyulmayan modüllere örnek olarak, 
mod_imap, mod_include, mod_info, mod_userdir, mod_status, mod_cgi, mod_autoindex 
verilebilir. 

13) Apache’nin konfigürasyon ve calistirilabilir dosyalarina sadece root’un okuma izni olsun 
Eger Apache kurulumunuzun /usr/local/apache oldugunu varsayarsak: 
chown -R root:root /usr/local/apache 
chmod -R o-rwx /usr/local/apache 

14) Timeout degerini düsürün 
Timeout (zaman asimi) süresi varsayilan olarak 300 saniyeye ayarlidir. Servis kullanimi engelleme saldirilarinin (DoS) potansiyel etkilerini azaltmak icin bunu düsürebilirsiniz: 
Timeout 45 

15) Büyük boyutlu isteklerin sinirlanmasi 
Apache bir http isteginin boyutunu sinirlamaniza izin veren cesitli direktifler sunar. Bu özellik de servis kullanimi engelleme saldirilarinin etkilerini azaltmak icin kullanilabilir. 
Baslangic olarak LimitRequestBOdy direktifi kullanilabilir. Bu direktif varsayilan olarak unlimited/sinirsiz olarak ayarlidir. Eger 1mb’in üzerinde dosya gönderimine izin vermiyorsaniz bunu: 
LimitRequestBOdy 1048576 
olarak set edebilirsiniz. Eger dosya gönderimlerine (upload) izin vermiyorsaniz daha da düsük tutabilirsiniz. 
Bakilabilecek diger direktifler ise LimitRequestFields, LimitRequestFieldSize ve LimitRequestLine. Bu direktifler cogu sunucu icin varsayilan olarak makul degerlere ayarlidir fakat ihtiyaclariniza göre degisiklik yapabilirsiniz. Detayli bilgi icin Apache dokümanina göz atin. 

16) XML BOdy boyutunu sinirlamak 
Eger mod_dav kullaniyorsaniz bir XML isteginin gövedesinin maksimum boyutunu sinirlamak isteyebilirsiniz. LimitXMLRequestBOdy sadece Apache 2’de var ve varsayilan degeri 1 milyon byte (yaklasik 1mb). cogu makalede eger WebDAV kullaniyor ve büyük dosyalar upload ediliyorsa, bu degeri 0’a set ederek boyut sinirlamasinin kaldirilmasindan bahsedilir. Fakat sadece kaynak (source) kontrol icin kullaniyorsaniz bu degeri 10mb gibi bir degerle sinirlayabilirsiniz: 
LimitXMLRequestBOdy 10485760 

17) Ayni anda kullanim (concurrency) sinirlamasi 
Apache ayni anda yapilan istekleri isleme ile ilgili olarak cesitli konfigürasyon ayarlari sunar. MaxClients isteklere hizmet icin maksimum olarak kac child process’in yaratilacagini belirler. Eger sunucunuzun cok sayida concurrent istegi karsilayacak kadar hafizasi yoksa bu degeri yüksek tutmak isteyebilirsiniz. 
MaxSpaceServer, MaxRequestsPerChild ve Apache2 deki ThreadsPerChild, ServerLimit, ve MaxSpareThreads direktifleri de isletim sistemi ve donaniminiza uyacak sekilde ayarlanabilir. 

18) Erisimleri IP’ye göre kisitlama 
Eger sadece belirli bir agdan veya IP adresinden erisilmesi gereken kaynaklariniz varsa bunu apache konfigürasyonunda ayarlayabilirsiniz. Örnegin intranet’inize sadece 176.16 agindan erisim yapilmasini istiyorsaniz: 

Order Deny,Allow 
Deny from all 
Allow from 176.16.0.0/16 

veya IP kisitlamasi: 
Order Deny,Allow 
Deny from all 
Allow from 127.0.0.1 

19) KeepAlive ayarlari 
Apache dokümantasyonuna göre HTTP Keep Alive özelligi istemci performansini %50 oraninda artirmaktadir. Bu sebeple bu ayarlari degistirirken dikkatli olun, servis kullanimi engelleme saldirisina karsi az bir koruma saglarken performans’dan önemli ölcüde ödün verebilirsiniz. 
KeepAlive varsayilan olarak aktiftir ve acik birakabilirsiniz, fakat varsayilan olarak 100 olan MaxKeepAliveRequests degerini ve 15’e ayarli olan KeepAliveTimeout degerini degistirebilirsiniz.Log dosyalarinizi analiz ederek uygun degerleri bulmaya calisin. 

20) Apache’yi chroot ortaminda calistirin 
chroot programlari kendi ayristirilmis hapishanelerinde (jail) calistirmanizi saglar. Bu da bir servisin kirilma durumunda sunucudaki diger seyleri etkilemesini engeller. 

Yukarida mod_security modülünün kendisinin chroot destegi oldugunu söylemistim. Bu modül sayesinde asagidaki direktifi eklemek yeterli: 
SecChrootDir /chroot/apache

"WHM Destek"


İlk yorumu yapan sen ol!



Yorum Bırak

Site İçi Genel Arama


Sosyel Medya Paylaşım



Bazı Paylaşımlar
  • Adres: Levent İstanbul, Turkiye
  • Email: info@unpoo.com


  • Hafta içi: 10:00-17:00
Sosyal Medya

Bu siteyi kullanarak sitenin ve site üzerinde kullanılan diğer sitelerin çerez politikalarını kabul etmiş sayılırsınız.
Copyright © 1998-2016 UnPoo! All rights reserved. Sayfa 0,1400sn de yüklendi.