wmismail Posted May 26, 2009 Share Posted May 26, 2009 üvenlik ile performans ya da işlevsellik birçok bilgi sistemi varlığında olduğu gibi Apache web sunucusunda da bazı yapılandırma seçeneklerinde karşı karşıya gelmektedir. Bunlardan birisi de FollowSymLinks parametresidir. Apache web sunucusu FollowSymLinks parametresi ile işletim sistemi üzerinde oluşturulmuş kısa yolları takip ederek web üzerinden istemcilere sunabilir. Dizin tabanlı yapılandırmada Options parametresine girdi olarak verilen bu seçenek, aşağıda örneği verilen direktif ile aktif hale getirilir. <Directory Dizin_Ismi> Options +FollowSymLinks </Directory> Güvenlik bakış açısından düşünüldüğünde, işletim sisteminde oluşturulan kısa yolların takip edilmesi aşağıdaki problemlere yol açabilir: Saldırgan, herhangi bir açıklığı kullanarak web’den sunulan bir dizine yazma hakkı elde ettiğinde bu dizinde bir kısa yol oluşturabilir ve bu kısa yol ile web sunucusunu çalıştıran kullanıcının işletim sistemi üzerinde okuma hakkına sahip olduğu tüm dosyalara web üzerinden erişim sağlayabilir. Aynı dizinde Include seçeneği aktif ise farklı dizinlerde yer alan SSI (Server Side Include) dosyalarını, ExecCGI özelliği aktif ise CGI dosyalarını çalıştırarak sistem üzerinde komutlar yürütebilir. Bu sebeple FollowSymLinks özelliğinin tüm dizinlerden kaldırılması en güvenli çözümdür. Öte yandan bu çözüm aşağıda sıralanan sebeplerden ötürü tercih edilmez. Öncelikle FollowSymLinks özelliği mod_rewrite modülünün çalışması için gereklidir [1]. Eğer bu modülün kullanılması gerekiyorsa ilgili dizinde FollowSymLinks yerine SymLinksifOwnerMatch özelliği etkinleştirilmelidir. Bu şekilde, erişim sadece kısa yolun sahibi olan kullanıcının sahibi olduğu dosyalara kısıtlanır. Örneğin kısa yol wwwrun kullanıcısı adına oluşturuluyor ise /etc/passwd gibi sahibi root olan bir dosyaya verilen linkler çalışmaz. Böylece risk azaltılmış olur. Aşağıda örnek bir kullanım yer almaktadır. <Directory Dizin_Ismi> Options SymLinksifOwnerMatch RewriteEngine on RewriteRule tahsin.html$ index.php </Directory> İkinci sebep ise FollowSymLinks seçeneğinin kullanılmamasının performansa olan etkileridir [2][3][4]. Kök dizininde (/) FollowSymLinks özelliği kaldırılırsa ya da SymLinksifOwnerMatch özelliği devreye alınırsa /usr/local/apache/htdocs dizini altında yer alan bir dosya, istemci tarafından çağırıldığında Apache # /usr # /usr/local # /usr/local/apache # /usr/local/apache/htdocs dizinlerinin her birinin kısa yol olup olmadığının kontrolünü yapar. Bu bilgileri ön bellekte tutmadığı için her çağrıda tekrarlar. Sonuç olarak bir performans problemi yaşanır. FollowSymLinks parametresinin güvenlik ve performans üzerine olan bu etkileri düşünüldüğünde uygulanacak en iyi çözüm kök dizininde kısa yollara izin verip web’den erişime açık dizinlerde kapatmak, ihtiyaç varsa SymLinksIfOwnerMatch parametresini devreye almaktır. Aşağıda bir örnek yer almaktadır: DocumentRoot /webroot/docs <Directory /> Options FollowSymLinks </Directory> <Directory /usr/local/apache/htdocs> Options -FollowSymLinks +SymLinksIfOwnerMatch </Directory> Gerek Apache konfigürasyon yapılandırmalarında gerekse işletim sistemi seviyesinde kısa yollar hakkında bilinmesi gerekli diğer hususlar şunlardır: Kısa yolların erişim hakları chmod ya da chown komutları ile düzenlenmek istenirse bu komutların kısa yol üzerinde değil hedef dosya üzerinde çalıştırıldığı unutulmamalıdır [5][6]. Aşağıda örneği gösterilmektedir. [komut_satiri]# ls -l /hedef_dosya.html link.html lrwxrwxrwx 1 root root 11 May 18 09:42 link.html -> /hedef_dosya.html -rw-r–r– 1 root root 1972 Mar 2 11:21 hedef_dosya.html [komut_satiri]# chown oracle link.html [komut_satiri]# ls -l /hedef_dosya.html link.html lrwxrwxrwx 1 root root 11 May 18 09:42 link.html -> /hedef_dosya.html -rw-r–r– 1 oracle root 1972 Mar 2 11:21 /hedef_dosya.html Kısa yolun kendisinin erişim haklarını değiştirmek mümkün değildir. Öte yandan kısa yolun kullanıcı ve grup sahipleri değiştirilebilir. Bunun için chown komutu -h parametresiyle çalıştırılmalıdır. Options parametresinde başında + ya da - olmadan bir seçenek verilirse kök ya da diğer dizin yapılandırmalarından gelen değerler sıfırlanır. Bu işaretlerle beraber kullanılırsa mevcut yapılandırmanın üzerine ekleme ya da çıkarma yapılır. mod_rewrite modülü aşağıdaki şekilde sadece TRACE metodunu engelleme amacıyla kullanıyorsa FollowSymLinks özelliğinin etkin olmasına gerek yoktur. RewriteEngine On RewriteCond %{REQUEST_METHOD} ^TRACE RewriteRule .* - [F] Referanslar: [1] http://fantomaster.com/faarticles/modrewrite01.txt [2] http://httpd.apache.org/docs/2.0/misc/perf-tuning.html [3] http://linuxgazette.net/123/vishnu.html [4] http://www.ulakbim.gov.tr/dokumanlar/sunucuayar/ApacheHizlandirma.uhtml [5] http://www.die.net/doc/linux/man/man1/chmod.1.html [6] http://www.die.net/doc/linux/man/man1/chown.1.html Link to comment Share on other sites More sharing options...
HaYTo Posted May 26, 2009 Share Posted May 26, 2009 Sağol cok yararlı paylaşım Link to comment Share on other sites More sharing options...
*TOYGAR* Posted June 16, 2009 Share Posted June 16, 2009 İSmail Abi Bide Apache Kurulum Anlatsan Windwos İçin? Biz Arkadaşlarla Küçük bir MuServer Denemesi Yapacağız .Register İçin Bitane Site Kurmak Gerekli Sql Localde Çalışacak Sitede Localde Çalışıp Sql Üye Kayıt Edecek. Bu Apache Kurlumu Çok Lazım Yani Link to comment Share on other sites More sharing options...
wmismail Posted June 16, 2009 Author Share Posted June 16, 2009 Kendi bilgisayarınızı server mi yapacaksınız ? Link to comment Share on other sites More sharing options...
esmer1881 Posted June 17, 2009 Share Posted June 17, 2009 PHP - APACHE - MYSQL üçünü bir arada kurulumu; Please register to see this content. Link to comment Share on other sites More sharing options...
arslan178 Posted June 17, 2009 Share Posted June 17, 2009 Eğer scriptiniz safemod'a gerek duymuyorsa on durmasında fayda var ve asla config dosyalarını 777 de tutmayın. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.