Sayfayı Yazdır | Pencereyi Kapat

Apache Ayarlarinizi Guvenli Hale Getirmenin 20 Yolu

Nereden Yazdırıldığı: Bilginin Adresi
Kategori: Bilgisayar Güvenliði / Computer Security
Forum Adı: Güvenlik / Security Makaleleri
Forum Tanımlaması: Bilgisayarýnýzý Her Türlü Saldýrýya Karþý Korumak Ýçin Yapmanýz Gerekenler
URL: https://www.bilgineferi.com/forum/forum_posts.asp?TID=7966
Tarih: 07-07-2024 Saat 04:03


Konu: Apache Ayarlarinizi Guvenli Hale Getirmenin 20 Yolu
Mesajı Yazan: megabros
Konu: Apache Ayarlarinizi Guvenli Hale Getirmenin 20 Yolu
Mesaj Tarihi: 24-08-2009 Saat 00:02

Konu baþlýklarý

·    1 Ýlk olarak en son yamalarý geçtiðinize emin olun
·    2 Apache sürüm numarasýný ve diðer bilgileri gizleyin
·    3 Apache”yi kendi kullanýcý hesabý ve grubunda çalýþtýrýn
·    4 Web klasörünün dýþýndaki dosyalara eriþimi engelleyin
·    5 Klasör içeriði görüntülemeyi kapatýn

·    6 Sunucu tarafý dahil etmeleri (server side include) kapatýn
·    7 CGI çalýþtýrmayý kapatýn
·    8 Apache”nin sembolik link”leri takip etmesine izin vermeyin
·    9 Bütün Options özelliklerinin kapatýlmasý
·    10 .htaccess dosyalarý için desteðin kaldýrýlmasý
·    11 mod_security çalýþtýrýn
·    12 Gereksiz modülleri kapatýn
·    13 Apache”nin konfigürasyon ve çalýþtýrýlabilir dosyalarýna sadece root”un okuma izni olsun
·    14 Timeout deðerini düþürün
·    15 Büyük boyutlu isteklerin sýnýrlanmasý
·    16 XML Body boyutunu sýnýrlamak
·    17 Ayný anda kullaným (concurrency) sýnýrlamasý
·    18 Eriþimleri IP”ye göre kýsýtlama
·    19 KeepAlive ayarlarý
·    20 Apache”yi chroot ortamýnda çalýþtýrýn

Ýlk olarak en son yamalarý geçtiðinize emin olun

Eðer kapýnýz açýk ise pencerelere kilit koymanýn bir mantýðý yoktur. Ayný þekilde, eðer gerekli yamalarý kurmadýysanýz, diðer önerilere yamalarý geçtikten sonra bakýn.
Apache sürüm numarasýný ve diðer bilgileri gizleyin
Varsayýlan olarak, bütün Apache kurulumlarý bütün dünyaya hangi Apache sürümünü, iþletim sistemini çalýþtýrdýðýnýzý ve hatta hangi Apache modüllerinin sunucuda kurulu olduðunu söyleyecektir. Saldýrganlar bu bilgileri kullanýrlar. Ayrýca varsayýlan ayarlarý ellemediðinizi belirten bir mesaj da verilmiþ olur.
httpd.conf dosyasýnda aþaðýdaki iki direktifi vermeniz gerekiyor:
ServerSignature Off
ServerTokens Prod
ServerSignature direktifi 404 sayfalarý, klasör listeleri gibi apache tarafýndan yaratýlan sayfalarýn en altýnda bilgilerin görüntülenmesi ile ilgilidir. ServerTokens direktifi ise Apache”nin HTTP cevap baþlýðýnda Server kýsmýna ne yazacaðýný belirler. Bunu Prod”a set ederek HTTP cevabýnda aþaðýdaki þekilde cevap verdirmek mümkün:

Server: Apache

Eðer fazla paranoyaksanýz bunu da kaynak kodunda deðiþiklik yaparak veya mod_security kullanarak (aþaðýda anlatýlýyor) deðiþtirebilirsiniz.
Apache”yi kendi kullanýcý hesabý ve grubunda çalýþtýrýn
Çeþitli apache kurulumlarý nobody kullanýcý hesabý ile çalýþýr. Eðer hem Apache hem de Eposta sunucunuzun da nobody kullanýcý hesabý ile çalýþtýrýldýðýný varsayarsak, Apache”ye yapýlan baþarýlý bir saldýrý sonrasý eposta sunucusunun da ele geçirilmesi veya bunun tersi mümkün olabilir.

User apache
Group apache

Web klasörünün dýþýndaki dosyalara eriþimi engelleyin
Apache”nin web ana klasörü dýþýndaki dosyalara eriþimini istemeyiz. Bütün web sitelerinizin ayný klasör altýnda olduðunu varsayarsak (örnekte /web olarak geçiyor) aþaðýdaki gibi bir ayar yapmalýsýnýz:

Order Deny,Allow
Deny from all
Options None
AllowOverride None
Order Allow,Deny
Allow from all

Not: Options None ve AllowOverride None set ettiðimiz için bu sunucunun tüm override iþlemlerini kapatacaktýr. Bu sebeple Option veya Override gerektiren her bir klasör için elle ekleme yapmanýz gerekir.

Klasör içeriði görüntülemeyi kapatýn


Bunu bir Directory tag”i içerisinde Options ile yapabilirsiniz. Options”ý None veya -Indexes olarak set edin:

Options -Indexes
Sunucu tarafý dahil etmeleri (server side include) kapatýn
Bu da Directory tag”i içerisinde Options ile yapýlýyor. Options”ý None veya -Includes olacak þekilde ayarlayýn:
Options -Includes

CGI çalýþtýrmayý kapatýn
Eðer CGI kullanmýyorsanýz Directory tag”i içerisinde Options”da set ederek kapatýn. Options”ý None veya -ExecCGI olarak set edin:
Options -ExecCGI

Apache”nin sembolik link”leri takip etmesine izin vermeyin
Bu da Directory tag”i içerisinde Options ile yapýlýyor. Options”ý None veya -FollowSymLinks olacak þekilde ayarlayýn:
Options -FollowSymLinks

Bütün Options özelliklerinin kapatýlmasý
Bütün Options”larý kapatmak istiyorsanýz,
Options None
olarak set edin. Birden fazla özellik kapatmak isterseniz ayný satýr içerisinde boþluk vererek belirtin:
Options -ExecCGI -FollowSymLinks -Indexes
.htaccess dosyalarý için desteðin kaldýrýlmasý
Bu Directory tag”i içerisinde AllowOverride direktifi ile yapýlýyor. None olacak þekilde ayarlayýn:

AllowOverride None

Eðer Overrides”a ihtiyacýnýz varsa indirilemediklerinden (download) ve/veya isimlerini .htaccess”den baþka bir þeye deðiþtirin. Örneðin .httpdoverride olarak deðiþtirelim ve .ht ile baþlayan bütün dosyalarýn indirilmesini engelleyelim:
AccessFileName .httpdoverride
Order allow,deny
Deny from all

Satisfy All
mod_security çalýþtýrýn
mod_security, Apache Security kitabýnýn da yazarý olan Ivan Ristic tarafýndan hazýrlanmýþ yararlý bir Apache modülüdür. mod_security ile aþaðýdakileri yapabilirsiniz:

·    Basit filtreleme
·    Regular Expression tabanlý filtreleme
·    URL kodlama kontrolü
·    Unicode kodlama kontrolü
·    Denetim (Auditing)
·    Null byte saldýrýsý önleme
·    Upload hafýza sýnýrlarý
·    Sunucu kimliði maskeleme
·    Dahili chroot desteði
·    ve dahasý
Gereksiz modülleri
kapatýn
Apache tipik olarak çeþitli modüllerle birlikte kurulmaktadýr. Apache modül dokümantasyonuna göz atarak hangi modülün ne yaptýðýný öðrenin. Aktif durumda olan bazý modüllere ihtiyacýnýz olmayabilir. httpd.conf dosyasýnda LoadModüle içeren satýrlara bakýn. Bir modülü devre dýþý býrakmak için basitçe satýrýn baþýna bir # iþareti koyun (comment out). Modülleri aratmak için
grep LoadModule httpd.conf

komutunu çalýþtýrýn. Genelde aktif olan fakat ihtiyaç duyulmayan modüllere örnek olarak, mod_imap, mod_include, mod_info, mod_userdir, mod_status, mod_cgi, mod_autoindex verilebilir.
Apache”nin konfigürasyon ve çalýþtýrýlabilir dosyalarýna sadece root”un okuma izni olsun

Eðer Apache kurulumunuzun /usr/local/apache olduðunu varsayarsak:
chown -R root:root /usr/local/apache
chmod -R o-rwx /usr/local/apache
Timeout deðerini düþürün
Timeout (zaman aþýmý) süresi varsayýlan olarak 300 saniyeye ayarlýdýr. Servis kullanýmý engelleme saldýrýlarýnýn (DoS) potansiyel etkilerini azaltmak için bunu düþürebilirsiniz:
Timeout 45

Büyük boyutlu isteklerin sýnýrlanmasý

Apache bir http isteðinin boyutunu sýnýrlamanýza izin veren çeþitli direktifler sunar. Bu özellik de servis kullanýmý engelleme saldýrýlarýnýn etkilerini azaltmak için kullanýlabilir. Baþlangýç olarak LimitRequestBody direktifi kullanýlabilir. Bu direktif varsayýlan olarak unlimited/sýnýrsýz olarak ayarlýdýr. Eðer 1mb”ýn üzerinde dosya gönderimine izin vermiyorsanýz bunu:
LimitRequestBody 1048576

olarak set edebilirsiniz. Eðer dosya gönderimlerine (upload) izin vermiyorsanýz daha da düþük tutabilirsiniz. Bakýlabilecek diðer direktifler ise LimitRequestFields, LimitRequestFieldSize ve LimitRequestLine. Bu direktifler çoðu sunucu için varsayýlan olarak makul deðerlere ayarlýdýr fakat ihtiyaçlarýnýza göre deðiþiklik yapabilirsiniz. Detaylý bilgi için Apache dokümanýna göz atýn.

XML Body boyutunu sýnýrlamak

Eðer mod_dav kullanýyorsanýz bir XML isteðinin gövedesinin maksimum boyutunu sýnýrlamak isteyebilirsiniz. LimitXMLRequestBody sadece Apache 2″de var ve varsayýlan deðeri 1 milyon byte (yaklaþýk 1mb). Çoðu makalede eðer WebDAV kullanýyor ve büyük dosyalar upload ediliyorsa, bu deðeri 0″a set ederek boyut sýnýrlamasýnýn kaldýrýlmasýndan bahsedilir. Fakat sadece kaynak (source) kontrol için kullanýyorsanýz bu deðeri 10mb gibi bir deðerle sýnýrlayabilirsiniz:

LimitXMLRequestBody 10485760

Ayný anda kullaným (concurrency) sýnýrlamasý
Apache ayný anda yapýlan istekleri iþleme ile ilgili olarak çeþitli konfigürasyon ayarlarý sunar. MaxClients isteklere hizmet için maksimum olarak kaç child process”in yaratýlacaðýný belirler. Eðer sunucunuzun çok sayýda concurrent isteði karþýlayacak kadar hafýzasý yoksa bu deðeri yüksek tutmak isteyebilirsiniz. MaxSpaceServer, MaxRequestsPerChild ve Apache2 deki ThreadsPerChild, ServerLimit, ve MaxSpareThreads direktifleri de iþletim sistemi ve donanýmýnýza uyacak þekilde ayarlanabilir.
Eriþimleri IP”ye göre kýsýtlama

Eðer sadece belirli bir aðdan veya IP adresinden eriþilmesi gereken kaynaklarýnýz varsa bunu apache konfigürasyonunda ayarlayabilirsiniz. Örneðin intranet”inize sadece 176.16 aðýndan eriþim yapýlmasýný istiyorsanýz:
Order Deny,Allow
Deny from all
Allow from 176.16.0.0/16
veya IP kýsýtlamasý:
Order Deny,Allow
Deny from all
Allow from 127.0.0.1

KeepAlive ayarlarý

Apache dokümantasyonuna göre HTTP Keep Alive özelliði istemci performansýný %50 oranýnda artýrmaktadýr. Bu sebeple bu ayarlarý deðiþtirirken dikkatli olun, servis kullanýmý engelleme saldýrýsýna karþý az bir koruma saðlarken performans”dan önemli ölçüde ödün verebilirsiniz. KeepAlive varsayýlan olarak aktiftir ve açýk býrakabilirsiniz, fakat varsayýlan olarak 100 olan MaxKeepAliveRequests deðerini ve 15″e ayarlý olan KeepAliveTimeout deðerini deðiþtirebilirsiniz.Log dosyalarýnýzý analiz ederek uygun deðerleri bulmaya çalýþýn.

Apache”yi chroot ortamýnda çalýþtýrýn
chroot programlarý kendi ayrýþtýrýlmýþ hapishanelerinde (jail) çalýþtýrmanýzý saðlar. Bu da bir servisin kýrýlma durumunda sunucudaki diðer þeyleri etkilemesini engeller.

Yukarýda mod_security modülünün kendisinin chroot desteði olduðunu söylemiþtim. Bu modül sayesinde aþaðýdaki direktifi eklemek yeterli:
 
Saygýlar..
 



Sayfayı Yazdır | Pencereyi Kapat