From 0960306eb54e17b64a95aed55aff86160b3ba3d6 Mon Sep 17 00:00:00 2001 From: Nilgun Belma Buguner Date: Fri, 10 Oct 2008 05:53:32 +0000 Subject: [PATCH] New Turkish translation MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Translated by: Nilgün Belma Bugüner Reviewed by:  Orhan Berent git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@703325 13f79535-47bb-0310-9956-ffa450edef68 --- docs/manual/misc/index.xml.tr | 81 +++++ docs/manual/mod/mod_suexec.xml.tr | 73 ++++ docs/manual/mod/mod_userdir.xml.tr | 173 +++++++++ docs/manual/mod/prefork.xml.tr | 178 +++++++++ docs/manual/mod/worker.xml.tr | 186 ++++++++++ docs/manual/suexec.xml.tr | 557 +++++++++++++++++++++++++++++ 6 files changed, 1248 insertions(+) create mode 100644 docs/manual/misc/index.xml.tr create mode 100644 docs/manual/mod/mod_suexec.xml.tr create mode 100644 docs/manual/mod/mod_userdir.xml.tr create mode 100644 docs/manual/mod/prefork.xml.tr create mode 100644 docs/manual/mod/worker.xml.tr create mode 100644 docs/manual/suexec.xml.tr diff --git a/docs/manual/misc/index.xml.tr b/docs/manual/misc/index.xml.tr new file mode 100644 index 0000000000..50392483d8 --- /dev/null +++ b/docs/manual/misc/index.xml.tr @@ -0,0 +1,81 @@ + + + + + + + + + + + + Çeşitli Belgeler + + + +

Aşağıda listelenen belgeler de Apache HTTP sunucusu geliştirme projesi + kapsamındadır.

+ + Uyarı +

Aşağıdaki belgeler, Apache HTTP Sunucusunun 2.1 sürümünde yapılmış + değişikliklere göre tam olarak güncellenmemiştir. Hala güncel kalmış + bazı bilgiler olabilir, fakat siz yine de bu belgeleri kullanırken + dikkatli olun.

+
+ +
+
Başarım Arttırma İpuçları - Apache’ye + İnce Ayar Çekilmesi
+ +
+

Yüksek başarım elde etmek için Apache yapılandırmasında (çalışma + anında ve derleme sırasında) yapılacaklar ile ilgili bazı bilgiler + yanında Apache’de bazı şeylerin (bir şeyleri hızlandıran ve + yavaşlatan şeylerin) yapılma ve yapılmama sebepleri + açıklanmıştır.

+
+ +
Güvenlik İpuçları
+ +
+

Apache HTTP sitenizi güvenli kılmak için yapılacaklar ve + yapılmayacaklar.

+
+ +
İlgili Standartlar
+ +
+

Bu belge Apache’nin uyacağı standartların bir çoğuna atıfta + bulunmak amacıyla hazırlanmıştır.

+
+ +
Parola Şifreleme Biçimleri +
+ +
+

Belgede, kimlik doğrulama amacıyla Apache tarafından desteklenen + çeşitli şifreleme tekniklerinden bahsedilmiştir.

+
+
+ +
+ +
diff --git a/docs/manual/mod/mod_suexec.xml.tr b/docs/manual/mod/mod_suexec.xml.tr new file mode 100644 index 0000000000..069df71574 --- /dev/null +++ b/docs/manual/mod/mod_suexec.xml.tr @@ -0,0 +1,73 @@ + + + + + + + + + + +mod_suexec +CGI betiklerinin belli bir kullanıcı ve grubun aidiyetinde +çalışmasını mümkün kılar. +Extension +mod_suexec.c +suexec_module +Apache 2.0 ve sonrasında mevcuttur. + + + +

Bu modül suexec programı ile birlikte CGI + betiklerinin belli bir kullanıcı ve grubun aidiyetinde çalışmasını + mümkün kılar.

+
+ +SuEXEC Desteği + + + +SuexecUserGroup +CGI betiklerini çalıştıracak kullanıcı ve grup belirtilir. + +SuexecUserGroup Kullanıcı Grup +server config +virtual host +Apache 2.0 ve sonrasında mevcuttur. + + +

SuexecUserGroup yönergesi CGI programlarını + çalıştıracak kullanıcı ve grubu belirtmeye yarar. CGI harici istekler + hala User yönergesinde + belirtilen kullanıcı tarafından yerine getirilir. Bu yönerge, Apache + 1.3 yapılandırmasında sanal konak bölümlerindeki User ve + Group yönergelerinin yerini almak üzere tasarlanmıştır.

+ + + Örnek + SuexecUserGroup nobody nogroup + + +
+ +
+
+ diff --git a/docs/manual/mod/mod_userdir.xml.tr b/docs/manual/mod/mod_userdir.xml.tr new file mode 100644 index 0000000000..2b846ae187 --- /dev/null +++ b/docs/manual/mod/mod_userdir.xml.tr @@ -0,0 +1,173 @@ + + + + + + + + + + +mod_userdir +Kullanıcılara özel dizinler +Base +mod_userdir.c +userdir_module + + +

Bu modül kullanıcılara özel dizinlere + http://mesela.dom/~kullanıcı/ sözdizimi kullanılarak + erişilebilmesini mümkün kılar.

+
+ + + URL’lerin Dosya Sistemi ile Eşleştirilmesi + + + + public_html eğitmeni + + + + +UserDir +Kullanıcıya özel dizinlerin yeri +UserDir dizin [dizin] ... +server config virtual +host + + + +

UserDir yönergesi, bir kullanıcıya ait bir + belge için bir istek yapıldığında, isteğin kullanıcının ev dizininde + bulunan belli bir dizinden karşılanmasını sağlar. + dizin olarak şunlar belirtilebilir:

+ +
    +
  • Dizinin ismi veya aşağıdakiler gibi bir kalıp.
  • + +
  • disabled anahtar sözcüğü. enabled anahtar + sözcüğü ile sonradan etkin kılınmadıkça tüm kullanıcı-dizin + dönüşümlerini iptal eder (aşağıya bakınız).
  • + +
  • disabled anahtar sözcüğünü takibeden boşluk ayraçlı + kullanıcı isimleri listesi. Bu listede yer alan kullanıcı isimlerine, + sonradan bir enabled listesinde görünse bile, dizin + dönüşümleri asla uygulanmaz.
  • + +
  • enabled anahtar sözcüğünü takibeden boşluk ayraçlı + kullanıcı isimleri listesi. Genel bir iptal sözkonusu olsa bile, + kullanıcı ismi bir disabled listesinde yer almadıkça, bu + listede yer alan dizinlere dönüşüm uygulanır.
  • +
+ +

Userdir yönergesinde ne enabled ne de + disabled varsa, argüman bir dosya ismi kalıbı olarak ele + alınır ve kullanıcı belge kök dizininin yolunu oluşturmakta kullanılır. + http://mesela.dom/~ali/bir/iki.html şöyle dönüştürülür:

+ + + + + + + + + + +
Kullanılan UserDir yönergesi    Elde edilen yol
UserDir public_html~ali/public_html/bir/iki.html
UserDir /usr/siteler/usr/siteler/ali/bir/iki.html
UserDir /home/*/htdocs/home/ali/htdocs/bir/iki.html
+ +

Aşağıdaki yönergelerle istemciye gönderilecek yönlendirmeler:

+ + + + + + + + + + +
Kullanılan UserDir yönergesi    Elde edilen yönlendirme
UserDir http://mesela.dom/usershttp://mesela.dom/users/ali/bir/iki.html
UserDir http://mesela.dom/*/usrhttp://mesela.dom/ali/usr/bir/iki.html
UserDir http://mesela.dom/~*/http://mesela.dom/~ali/bir/iki.html
+ + + Bu yönergeyi kullanırken dikkatli olun; örneğin, "UserDir + ./" şeklinde bir atama "/~root" isteklerini + "/" dizinine yönlendirir ki bu elbette istenmez. Bu + bakımdan yapılandırmanızda mutlaka bir "UserDir disabled + root" satırının yer almasını tavsiye ederiz. Daha fazla bilgi + için Directory yönergesine ve Güvenlik İpuçları sayfasına + bakınız. + + +

Diğer örnekler:

+ +

Bir kaç kullanıcı hariç kalan herkesin UserDir + dizinlerini iptal etmek için şunu yapabilirsiniz:

+ + + UserDir disabled
+ UserDir enabled birey1 birey2 birey3 +
+ +

Bir kaç kullanıcı hariç kalan herkesin UserDir + dizinlerini etkin kılmak için şunu yapabilirsiniz:

+ + + UserDir enabled
+ UserDir disabled birey4 birey5 birey6 +
+ +

Birden fazla dizin belirtmek de mümkündür:

+ + + Userdir public_html /usr/siteler http://mesela.dom/ + + +

Bu örneğe göre, http://mesela.dom/~ali/bir/iki.html + şeklinde bir istek alındığında sunucu önce + http://mesela.dom/~ali/bir/iki.html yönlendirmesini + deneyecektir. Onu bulamazsa isteği + /usr/siteler/ali/bir/iki.html dosyasını arayacak onu da + bulamazsa istemciyi http://mesela.dom/ali/bir/iki.html + adresine yönlendirecektir.

+ +

Argüman listesine bir yönlendirme ekleyecekseniz, bu, listenin son + elemanı olmalıdır. Apache yönlendirmenin başarılı sonuç verip + vermediğini bilemeyecektir. Bu bakımdan, listede bu yönlendirmeden + sonra bir yönlendirme daha bulunması daha iyi olacaktır.

+ +

Kullanıcı dizini dönüşümü Apache 2.1.4 sürümü ve sonrasında öntanımlı + olarak etkin değildir. Daha önceki sürümlerde bir UserDir yönergesinin yokluğunda + UserDir public_html öntanımlıydı.

+ +
+ + + public_html eğitmeni + + +
+
+ + diff --git a/docs/manual/mod/prefork.xml.tr b/docs/manual/mod/prefork.xml.tr new file mode 100644 index 0000000000..58caeedde3 --- /dev/null +++ b/docs/manual/mod/prefork.xml.tr @@ -0,0 +1,178 @@ + + + + + + + + + + +prefork +Evresiz ön çatallamalı HTTP sunucusu oluşturur +MPM +prefork.c +mpm_prefork_module + + +

Bu çok süreçlilik modülü (MPM) Apache 1.3’ün yaptığı gibi evresiz ve + çocuk süreçlerin önceden çatallandığı bir HTTP sunucusu oluşturur. + Evresiz kütüphanelerle uyumluluk için evrelemeden kaçınma ihtiyacında + olan siteler için uygundur. Ayrıca istekleri birbirlerinden yalıtmak + için en iyi MPM’dir, dolayısıyla herhangi bir istekle ilgili bir sorun + diğerlerini etkilemez.

+ +

Bu MPM kendi kendine her duruma çok iyi uyum sağladığından + yapılandırma yönergeleri ile yapılandırılmaya nadiren ihtiyaç gösterir. + Yönergelerin en önemlisi MaxClients olup, değeri aynı anda almayı umduğunuz istek + sayısını işleyebilecek kadar büyük, fiziksel belleğin tüm süreçlerin + ihtiyaçlarını karşılamasına yetecek kadar da küçük olması gerekir.

+
+ +Apache’nin kullandığı adres ve portların +ayarlanması + +
Nasıl çalışır? +

Bağlantıları dinleyip gerektiğinde onlara hizmet sunan çocuk süreçleri + devreye almak tek bir denetim sürecinin sorumluluğundadır. Apache + daima, gelen isteklere hizmet vermeye hazır bekleyen en fazla sayıda + sunucu sürecini yedekte tutmaya veya boşta bekletmeye + çalışır. Bu suretle, istemcilere isteklerinin sunulması için yeni çocuk + süreçlerin çatallanmasını beklemek gerekmez.

+ +

Ana sürecin istekleri sunacak çocuk süreçleri oluşturma işlemini nasıl + gerçekleştireceği StartServers, MinSpareServers, MaxSpareServers ve MaxClients yönergeleri ile düzenlenir. Apache + kendiliğinden her duruma çok iyi uyum sağladığından, genelde, çoğu + sitenin bu yönergelerin öntanımlı değerlerini değiştirmesi gerekmez. + Aynı anda 256’dan fazla isteğe hizmet sunacak sitelerin MaxClients değerini arttırmaları + gerekebilir. Ancak, fiziksel belleği yeterli olmayan sitelerin de + sunucunun belleği diske takaslamasını önlemek için bu değeri + azaltmaları gerekebilir. Süreç oluşturmanın ayarlanması ile ilgili daha + fazla bilgi edinmek için başarım + arttırma ipuçları belgesine bakınız.

+ +

Unix altında 80. portu dinleyebilmek için ana sürecin + root tarafından çalıştırılmış olması gerekirse de çocuk + süreçler Apache tarafından daha az yetkili bir kullanıcının aidiyetinde + çalıştırılırlar. Apache’nin çocuk süreçlerinin kullanıcı ve gruplarını + ayarlamak için User ve + Group yönergeleri + kullanılır. Çocuk süreçlerin sunacakları içeriği okumaya yetkili + olmaları gerekir, fakat bu yetkinin mümkün olduğunca kısıtlı + tutulmasına çalışılmalıdır.

+ +

MaxRequestsPerChild + yönergesi ana sunucunun eski süreçleri öldürüp yenilerini oluşturmayı + ne kadar sıklıkla yapacağını denetler.

+
+ +CoreDumpDirectory + +EnableExceptionHook + +PidFile + +Listen + +ListenBacklog + +LockFile + +MaxClients + +MaxMemFree + +MaxRequestsPerChild + +ScoreBoardFile + +ReceiveBufferSize + +SendBufferSize + +ServerLimit + +StartServers + +User + +Group + +AcceptMutex + + + +MaxSpareServers +Boştaki çocuk süreçlerin azami sayısı +MaxSpareServers sayı +MaxSpareServers 10 +server config + + +

MaxSpareServers yönergesi boştaki + çocuk sunucu süreçlerinin azami sayısını belirler. Boştaki süreç, o an + bir isteğe hizmet sunmayan süreçtir. Eğer + MaxSpareServers sayıda süreçten daha fazla boşta + süreç varsa ana süreç bu fazlalıkları öldürecektir.

+ +

Bu parametrenin ayarlanması sadece çok meşgul siteler için gerekli + olabilir. Bu parametreye çok büyük bir değerin atanması oldukça kötü + bir fikirdir. Eğer bu değeri MinSpareServers değerine eşit veya daha küçük bir değere + ayarlarsanız, Apache bu değeri kendiliğinden MinSpareServers + 1 olarak + değiştirecektir.

+
+MinSpareServers +StartServers +
+ + +MinSpareServers +Boştaki çocuk süreçlerin asgari sayısı +MinSpareServers sayı +MinSpareServers 5 +server config + + +

MinSpareServers yönergesi boştaki + çocuk sunucu süreçlerinin asgari sayısını belirler. Boştaki süreç, o an + bir isteğe hizmet sunmayan süreçtir. Eğer + MinSpareServers sayıda süreçten daha az boşta + süreç varsa ana süreç sayıyı tamamlamak için saniyede en fazla 1 süreç + olmak üzere yeni çocuk süreçler oluşturacaktır.

+ +

Bu parametrenin ayarlanması sadece çok meşgul siteler için gerekli + olabilir. Bu parametreye çok büyük bir değerin atanması oldukça kötü + bir fikirdir.

+
+MaxSpareServers +StartServers +
+ +
+ diff --git a/docs/manual/mod/worker.xml.tr b/docs/manual/mod/worker.xml.tr new file mode 100644 index 0000000000..c79e538c88 --- /dev/null +++ b/docs/manual/mod/worker.xml.tr @@ -0,0 +1,186 @@ + + + + + + + + + +worker +Çok evreli ve çok süreçli melez bir HTTP sunucusu oluşturan çok +süreçlilik modülü. +MPM +worker.c +mpm_worker_module + + +

Bu çok süreçlilik modülü (MPM) hem çok süreçli hem de çok evreli + olabilen melez bir sunucu oluşturur. İstekleri sunmak için evreleri + kullanması sebebiyle çok süreçli bir sunucudan daha az sistem kaynağı + harcayarak daha çok isteğe hizmet sunabilir. Bununla birlikte, herbiri + çok sayıda evreye sahip çok sayıda süreci canlı tutarak bir çok süreçli + sunucu kadar kararlı olur.

+ +

Bu MPM’i denetim altında tutmakta kullanılan en önemli yönergeler, her + çocuk süreç için konuşlandırılacak evre sayısını belirleyen ThreadsPerChild yönergesi ile devreye + sokulacak toplam evre sayısının azamisini belirleyen MaxClients yönergesidir.

+
+Apache’nin kullandığı adres ve portların +ayarlanması + +
Nasıl çalışır? +

Çocuk süreçleri devreye almaktan tek bir süreç (ana süreç) sorumludur. + Her çocuk süreç ThreadsPerChild yönergesinde belirtilen sayıda evre + konuşlandırır. Bunlardan ayrı olarak, bir dinleyici evre bağlantıları + dinleyip gelenleri işlenmek üzere bu sunucu evrelerinden birine + aktarır.

+ +

Apache daima, gelen isteklere hizmet sunmaya hazır yedek + veya boştaki sunucu evrelerinden oluşan bir havuzu canlı tutmaya + çalışır. Bu suretle, istemcilere isteklerinin sunulması için yeni çocuk + süreçlerin çatallanmasını, dolayısıyla yeni evrelerin + konuşlandırılmasını beklemek gerekmez. Başlangıçta çalıştırılacak çocuk + süreçlerin sayısı StartServers yönergesinde belirtilir. + Apache, çalışma süresi boyunca MinSpareThreads ve MaxSpareThreads yönergeleri ile belirtilen sınırlar + dahilinde kalmak üzere gerektiğinde süreçleri öldürerek gerektiğinde + yenilerini devreye alarak tüm süreçlerdeki toplam evre sayısını sabit + tutmaya çalışır. Bu işlem kendiliğinden çok iyi yürüdüğünden bu + yönergelere öntanımlı değerlerinden farklı değerlerin atanması nadiren + gerekli olur. Aynı anda hizmet sunulabilecek istemcilerin sayısı (yani, + tüm süreçlerin toplam evre sayısı) MaxClients yönergesi ile belirlenir. Etkin çocuk + süreçlerin sayısı ise MaxClients yönergesindeki değerin ThreadsPerChild yönergesindeki değere + bölünmesi ile elde edilir.

+ +

Bu iki yönerge aynı anda etkin olabilecek çocuk süreçlerin ve her + çocuk süreçteki sunucu evreleri sayısının üst sınırını belirler ve bu + sınır sadece ana sunucu tamamen durdurulup yeniden başlatılarak + değiştirilebilir. ServerLimit yönergesinin değeri etkin çocuk süreç + sayısının üst sınırı olup MaxClients yönergesindeki değerin ThreadsPerChild yönergesindeki değere + bölünmesi ile elde değere eşit veya bundan küçük olması gerekir. + ThreadLimit yönergesinin + değeri ise sunucu evreleri sayısının üst sınırını belirler ve ThreadsPerChild yönergesindeki değerden + büyük veya ona eşit olması gerekir.

+ +

Sonlandırma sırasında etkin çocuk süreçlere ek olarak mevcut istemci + bağlantılarını işleme sokmaya çalışan tek bir sunucu evresinden başka + fazladan bir çocuk süreç etkin kalabileceği gibi sonlandırılacak süreç + sayısının en fazla MaxClients olması gerekirse de gerçekte sayı bundan küçük + olabilir. Şöyle bir işlemle tek bir çocuk sürecin sonlandırılması + iptal edilerek bu gibi durumlara karşı önlem alınabilir:

+ +
    +
  • MaxRequestsPerChild + yönergesinin değeri sıfır yapılır.
  • + +
  • MaxSpareThreads ve + MaxClients yönergelerinin + değerleri birbirine eşitlenir.
  • +
+ +

worker modülünün öntanımlı süreç-evre yapılandırması + genelde şöyledir:

+ + + ServerLimit 16
+ StartServers 2
+ MaxClients 150
+ MinSpareThreads 25
+ MaxSpareThreads 75
+ ThreadsPerChild 25 +
+ +

Unix altında 80. portu dinleyebilmek için ana sürecin root tarafından + çalıştırılmış olması gerekirse de çocuk süreçler ve evreler Apache + tarafından daha az yetkili bir kullanıcının aidiyetinde + çalıştırılırlar. Apache’nin çocuk süreçlerinin kullanıcı ve gruplarını + ayarlamak için User ve Group yönergeleri kullanılır. Çocuk süreçlerin + sunacakları içeriği okumaya yetkili olmaları gerekir, fakat bu yetkinin + mümkün olduğunca kısıtlı tutulmasına çalışılmalıdır. Bundan başka, + suexec kullanılmadığı takdirde, bu yönergeler CGI + betikleri tarafından miras alınacak yetkili kullanıcı ve grubu da + ayarlarlar.

+ +

MaxRequestsPerChild + yönergesi ana sunucunun eski süreçleri öldürüp yenilerini oluşturmayı + ne kadar sıklıkla yapacağını denetler.

+
+ +AcceptMutex + +CoreDumpDirectory + +EnableExceptionHook + +Group + +PidFile + +Listen + +ListenBacklog + +LockFile + +MaxClients + +MaxMemFree + +MaxRequestsPerChild + +MaxSpareThreads + +MinSpareThreads + +ScoreBoardFile + +ReceiveBufferSize + +SendBufferSize + +ServerLimit + +StartServers + +ThreadLimit + +ThreadsPerChild + +ThreadStackSize + +User + + +
diff --git a/docs/manual/suexec.xml.tr b/docs/manual/suexec.xml.tr new file mode 100644 index 0000000000..d5977600b8 --- /dev/null +++ b/docs/manual/suexec.xml.tr @@ -0,0 +1,557 @@ + + + + + + + + + + + SuEXEC Desteği + + +

SuEXEC özelliği, Apache kullanıcılarına + CGI ve SSI programlarını sunucunun + aidiyetinde çalıştığı kullanıcıdan farklı bir kullanıcının aidiyetinde + çalıştırma olanağı verir. Normalde, CGI ve + SSI programlarını çalıştıranla sunucuyu çalıştıran + aynı kullanıcıdır.

+ +

Gerektiği gibi kullanıldığında bu özellik, kullanıcılara + CGI ve SSI programlarını çalıştırma + ve geliştirmeye izin vermekle ortaya çıkan güvenlik risklerini azaltır. + Bununla birlikte, suEXEC gerektiği gibi + yapılandırılmadığı takdirde bazı sorunlara yol açabilir ve bilgisayar + güvenliğinizde yeni delikler ortaya çıkmasına sebep olabilir. + Güvenlikle ilgili mevcut sorunlarla başa çıkmada ve setuid + root programları yönetmekte bilgi ve deneyim sahibi değilseniz + suEXEC kullanmayı kesinlikle düşünmemenizi + öneririz.

+
+ +
Başlamadan önce + +

Belgeye balıklama dalmadan önce, Apache Grubu ve bu belge ile ilgili + kabuller hakkında bilgi sahibi olmalısınız.

+ +

Öncelikle, üzerinde setuid va setgid + işlemlerinin yapılabildiği Unix türevi bir işletim sistemi + kullandığınızı varsayıyoruz. Tüm komut örnekleri buna dayanarak + verilmiştir. Bu desteğe sahip başka platformlar varsa onlardaki + yapılandırma burada anlattığımız yapılandırmadan farklı olabilir.

+ +

İkinci olarak, bilgisayarınızın güvenliği ve yönetimi ile ilgili bazı + temel kavramları bildiğinizi kabul ediyoruz. Buna + setuid/setgid işlemlerinin sisteminiz ve güvenlik + seviyesi üzerindeki etkilerini bilmek dahildir.

+ +

Üçüncü olarak, suEXEC kodunun + değiştirilmemiş bir sürümünü kullandığınızı + varsayıyoruz. Tüm suEXEC kodu, geliştiricilerin yanında sayısız beta + kullanıcısı tarafından dikkatle incelenmiş ve denenmiştir. Kodların hem + basit hem de sağlam bir şekilde güvenli olması için gerekli tüm + önlemler alınmıştır. Bu kodun değiştirilmesi beklenmedik sorunlara ve + yeni güvenlik risklerine yol açabilir. Özellikle güvenlikle ilgili + programlarda deneyimli değilseniz suEXEC kodunda kesinlikle bir + değişiklik yapmamalısınız. Değişiklik yaparsanız kodlarınızı gözden + geçirmek ve tartışmak üzere Apache Grubu ile paylaşmanızı öneririz.

+ +

Dördüncü ve son olarak, Apache Grubunun suEXEC’i öntanımlı Apache + kurulumunun bir parçası yapmama kararından bahsetmek gerekir. Bunun + sonucu olarak, suEXEC yapılandırması sistem yöneticisinin ayrıntılı bir + incelemesini gerektirir. Gerekli incelemeden sonra yönetici tarafından + suEXEC yapılandırma seçeneklerine karar verilip, normal yollardan + sisteme kurulumu yapılır. Bu seçeneklerin belirlenmesi, suEXEC + işlevselliğinin kullanımı sırasında sistem güvenliğini gerektiği gibi + sağlamak için yönetici tarafından dikkatle saptanmayı gerektirir. Bu + sürecin ayrıntılarının yöneticiye bırakılma sebebi, Apache Grubunun + suEXEC kurulumunu, suEXEC’i dikkatle kullanacak yeterliliğe sahip + olanlarla sınırlama beklentisidir.

+ +

Hala bizimle misiniz? Evet mi? Pekala, o halde devam!

+
+ +
SuEXEC Güvenlik Modeli + +

SuEXEC yapılandırması ve kurulumuna girişmeden önce biraz da + gerçekleşmesini istediğiniz güvenlik modelinin ayrıntıları üzerinde + duralım. Böylece, suEXEC’in içinde olup bitenleri ve sisteminizin + güvenliği için alınacak önlemleri daha iyi anlayabilirsiniz.

+ +

suEXEC işlevselliği, Apache HTTP Sunucusu tarafından + gerektiği takdirde artalanda çalıştırılan bir setuid programa dayanır. + Bu program, bir CGI veya SSI betiğine bir HTTP isteği yapıldığı zaman, + bu betiği, yöneticinin ana sunucunun aidiyetinde çalıştığı kullanıcıdan + farklı olarak seçtiği bir kullanıcının aidiyetinde çalıştırmak için + çağrılır. Böyle bir istek geldiğinde, Apache artalandaki setuid + programına, HTTP isteği yapılan programın ismiyle beraber aidiyetinde + çalışacağı kullanıcı ve grup kimliklerini de aktarır.

+ +

Artalanda çalıştırılan setuid program başarıyı ve başarısızlığı + aşağıdaki süreci izleyerek saptar. Bunlardan herhangi biri başarısız + olursa program başarısızlık durumunu günlüğe kaydeder ve bir hata + vererek çıkar. Aksi takdirde çalışmaya devam eder.

+ +
    +
  1. + Setuid programı çalıştıran kullanıcı sistemin geçerli + kullanıcılarından biri mi? + +

    Bu, setuid programı çalıştıran kullanıcının + sistemin gerçek bir kullanıcısı olduğunudan emin olunmasını sağlar. +

    +
  2. + +
  3. + Setuid program yeterli sayıda argümanla çağrılmış mı? + + +

    Apache’nin artalanda çağırdığı setuid program + ancak yeterli sayıda argüman sağlandığı takdirde çalışacaktır. + Argümanların sayısını ve sırasını Apache HTTP sunucusu bilir. Eğer + setuid program yeterli sayıda argümanla çağrılmamışsa ya + kendisinde bir değişiklik yapılmıştır ya da kurulu Apache + çalıştırılabilirinin suEXEC ile ilgili kısmında yanlış giden bir + şeyler vardır.

    +
  4. + +
  5. + Bu geçerli kullanıcının bu setuid programı çalıştırma + yetkisi var mı? + +

    Sadece tek bir kullanıcı (Apache’nin aidiyetinde + çalıştığı kullanıcı) bu programı çalıştırmaya yetkilidir.

    +
  6. + +
  7. + Hedef CGI veya SSI programı hiyerarşik olarak güvenliği + bozacak bir dosya yolu üzerinde mi? + +

    Hedef CGI veya SSI programının dosya yolu '/' veya + '..' ile başlıyor mu? Buna izin verilmez. Hedef CGI veya SSI + programı suEXEC’in belge kök dizininde yer almalıdır (aşağıda + --with-suexec-docroot=DİZİN seçeneğine + bakınız).

    +
  8. + +
  9. + Hedef kullanıcı ismi geçerli mi? + +

    Hedef kullanıcı mevcut mu?

    +
  10. + +
  11. + Hedef grup ismi geçerli mi? + +

    Hedef grup mevcut mu?

    +
  12. + +
  13. + Hedef kullanıcı root değil, değil mi? + +

    Mevcut durumda, root kullanıcısının + CGI/SSI programlarını çalıştırmasına izin verilmemektedir.

    +
  14. + +
  15. + Hedef kullanıcı kimliği asgari kullanıcı numarasından + BÜYÜK mü? + +

    Asgari kullanıcı numarası yapılandırma sırasında + belirtilir. Böylece CGI/SSI programlarını çalıştırmasına izin + verilecek olası en düşük kullanıcı numarasını belirlemeniz mümkün + kılınmıştır. Bu bazı “sistem” hesaplarını devreden çıkarmak için + yararlıdır.

    +
  16. + +
  17. + Hedef grup root değil, değil mi? + +

    Mevcut durumda, root grubunun CGI/SSI + programlarını çalıştırmasına izin verilmemektedir.

    +
  18. + +
  19. + Hedef grup numarası asgari grup numarasından + BÜYÜK mü? + +

    Asgari grup numarası yapılandırma sırasında + belirtilir. Böylece CGI/SSI programlarını çalıştırmasına izin + verilecek olası en düşük grup numarasını belirlemeniz mümkün + kılınmıştır. Bu bazı “sistem” hesaplarını devreden çıkarmak için + yararlıdır.

    +
  20. + +
  21. + Apache’nin artalanda çağırdığı setuid program hedef + kullanıcı ve grubun aidiyetine geçebildi mi? + +

    Bu noktadan itibaren program setuid ve setgid + çağrıları üzerinden hedef kullanıcı ve grubun aidiyetine geçer. + Erişim grubu listesi de ayrıca kullanıcının üyesi olduğu tüm + gruplara genişletilir.

    +
  22. + +
  23. + Hedef CGI/SSI programının bulunduğu dizine geçebildik mi? + + +

    Dizin mevcut değilse dosyaları da içeremez. Hedef + dizine geçemiyorsak bu, dizin mevcut olmadığından olabilir.

    +
  24. + +
  25. + Hedef dizin Apache için izin verilen yerlerden biri mi? + + +

    İstek sunucunun normal bir bölümü için yapılmış + olsa da istenen dizin acaba suEXEC’in belge kök dizini altında mı? + Yani, istenen dizin, suEXEC’in aidiyetinde çalıştığı kullanıcının + ev dizini altında bulunan, UserDir ile belirtilen dizinin altında mı? (suEXEC’in yapılandırma seçeneklerine + bakınız).

    +
  26. + +
  27. + Hedef dizin başkaları tarafından yazılabilen bir dizin değil, + değil mi? + +

    Başkaları da yazabilsin diye bir dizin açmıyoruz; + dizin içeriğini sadece sahibi değiştirebilmelidir.

    +
  28. + +
  29. + Hedef CGI/SSI programı mevcut mu? + +

    Mevcut değilse çalıştırılamaz.

    +
  30. + +
  31. + Hedef CGI/SSI program dosyasına başkaları tarafından + yazılamıyor, değil mi? + +

    Hedef CGI/SSI programının dosyasına sahibinden + başka kimsenin bir şeyler yazmasını istemeyiz.

    +
  32. + +
  33. + Hedef CGI/SSI program setuid veya setgid değil, + değil mi? + +

    UID/GID‘i tekrar değiştirecek programlar + çalıştırmayı istemeyiz.

    +
  34. + +
  35. + Hedef kullanıcı/grup, programın kullanıcı/grubu ile aynı mı? + + +

    Hedef kullanıcı dosyanın sahibi mi?

    +
  36. + +
  37. + İşlemlerin güvenle yapılabilmesi için süreç ortamını + başarıyla temizleyebildik mi? + +

    suEXEC, sürecin çalışacağı ortama güvenli bir + program çalıştırma yolu sağlamaktan başka, yapılandırma sırasında + oluşturulan güvenli ortam değişkenleri listesinde isimleri bulunan + ortam değişkenlerinden başkasını aktarmayacaktır.

    +
  38. + +
  39. + Hedef CGI/SSI programı haline gelip çalışabildik mi? + +

    Burası suEXEC’in bitip CGI/SSI programının + başladığı yerdir.

    +
  40. +
+ +

Bu süreç suEXEC güvenlik modelinin standart işlemlerini oluşturur. + Biraz zorlayıcı ve CGI/SSI tasarımına yeni kurallar ve sınırlamalar + getiriyor olsa da düşünülen güvenliği adım adım sağlayacak şekilde + tasarlanmıştır.

+ +

Düzgün bir suEXEC yapılandırmasının hangi güvenlik risklerinden + kurtulmayı sağladığı ve bu güvenlik modelinin sunucu yapılandırmasıyla + ilgili sorumluluklarınızı nasıl sınırlayabildiği hakkında daha + ayrıntılı bilgi edinmek için bu belgenin "Uyarılar ve Örnekler" bölümüne bakınız.

+
+ +
suEXEC’in Yapılandırılması ve Kurulumu + +

Eğlence başlıyor.

+ +

suEXEC yapılandırma seçenekleri
+

+ +
+
--enable-suexec
+ +
Bu seçenek, hiçbir zaman öntanımlı olarak kurulmayan ve + etkinleştirilmeyen suEXEC özelliğini etkin kılar. suEXEC özelliğini + kullanma isteğinizi Apache’nin kabul edebilmesi için + --enable-suexec seçeneğinin yanında en azından bir tane + de --with-suexec-xxxxx seçeneği belirtilmiş + olmalıdır.
+ +
--with-suexec-bin=YOL
+ +
Güvenlik sebebiyle suexec çalıştırılabilirinin + bulunduğu yer sunucu koduna yazılır. Bu seçenekle öntanımlı yol + değiştirilmiş olur. Örnek:
+ --with-suexec-bin=/usr/sbin/suexec
+ +
--with-suexec-caller=KULLANICI
+ +
Normalde Apache’nin aidiyetinde çalıştığı kullanıcıdır. Bu, bu programı + çalıştırmasına izin verilen tek kullanıcıdır.
+ +
--with-suexec-userdir=DİZİN
+ +

Kullanıcıların ev dizinleri altında suEXEC’in erişmesine izin + verilen alt dizinin yerini tanımlar. Bu dizin altında suEXEC + kullanıcısı tarafından çalıştırılacak tüm programlar "güvenilir" + olmalıdır. Eğer “basit” bir UserDir yönergesi kullanıyorsanız ( içinde “*” + bulunmayan), bunun aynı dizin olması gerekir. Eğer burada belirtilen + dizin, passwd dosyasında kullanıcı için belirtilmiş + dizinin altında UserDir + yönergesinde belirtilen dizin olmadığı takdirde suEXEC işini + gerektiği gibi yapmayacaktır. Öntanımlı değer + public_html’dir.

+ +

Eğer, sanal konaklarınızın herbiri farklı UserDir yönergeleri içeriyorsa + burada belirtilecek dizinin üst dizininin hepsinde aynı olması + gerekir. Aksi takdirde, "~kullanıcı" + istekleri düzgün çalışmayacaktır.

+ +
--with-suexec-docroot=DİZİN
+ +
Apache için belge kök dizinini belirler. Bu, (UserDir’lardan başka) suEXEC için + kullanılacak tek hiyerarşi olacaktır. Öntanımlı dizin sonuna + "/htdocs" eklenmiş --datadir dizinidir. + Yani, seçeneği "--datadir=/home/apache" olarak + belirtmişseniz suEXEC çalıştırıcısı için belge kök dizini + "/home/apache/htdocs" olur.
+ +
--with-suexec-uidmin=UID
+ +
suEXEC kullanıcısının kullanıcı kimliği olarak izin verilen en + düşük değeri belirler. Çoğu sistemde bu ya 500’dür ya da 100; 100 + öntanımlıdır.
+ +
--with-suexec-gidmin=GID
+ +
suEXEC kullanıcısının grup kimliği olarak izin verilen en düşük + değeri belirler. Çoğu sistemde bu 100 olup, seçeneğin de öntanımlı + değeridir.
+ +
--with-suexec-logfile=DOSYA
+ +
suEXEC hareketlerinin ve hatalarının kaydedileceği günlük + dosyasının adını belirler (denetim ve hata ayıklama için + kullanışlıdır). Öntanımlı günlük dosyası ismi + "suexec_log" olup yeri (--logfiledir + seçeneği ile belirtilen) günlük dosyaları dizinidir.
+ +
--with-suexec-safepath=YOL
+ +
CGI çalıştırılabilirlerine aktarılacak güvenilir PATH + ortam değişkeninin değerini tanımlar. + "/usr/local/bin:/usr/bin:/bin" öntanımlıdır.
+
+ +
+ SuEXEC çalıştırıcısının derlenmesi ve kurulumu + +

SuEXEC özelliğini --enable-suexec seçeneği ile + etkinleştirdiyseniz make komutunu verdiğinizde Apache + ile birlikte suexec çalıştırılabilir dosyası da + derlenecektir.

+ +

Tüm bileşenler derlendikten sonra make install komutunu + vererek kurulumu tamamlayabilirsiniz. suexec + çalıştırılabilir dosyası --sbindir seçeneği ile + tanımlanan dizine kurulacaktır; öntanımlı yeri + /usr/local/apache2/bin/ dizinidir.

+ +

Kurulum adımında root yetkisine sahip + olmanız gerektiğini unutmayın. Çalıştırıcıya kullanıcı kimliğinin + atanabilmesi ve dosyanın sahibi olan kullanıcı kimliği ile + çalıştırılabilmesini mümkün kılan bitinin etkin kılınabilmesi için + kurulumun root tarafından yapılması + önemlidir.

+
+ +
+ Paranoyak yetkilendirme + +

SuEXEC çalıştırıcısı kendini çalıştıran kullanıcının + configure betiğine + --with-suexec-caller seçeneği ile belirtilen kullanıcı + olup olmadığına bakacaksa da, bu sınamanın da bir sistem veya + kütüphane çağrısı ile istismar edilmiş olma ihtimali gözardı + edilmemelidir. Bunun meydana gelmesini önlemek için ve genelde + yapıldığı gibi dosyanın izinlerini suEXEC çalıştırıcısı sadece Apache + sunucusunun aidiyetinde çalıştığı kullanıcı tarafından çalıştırılacak + şekilde ayarlayınız.

+ +

Örneğin, sunucunuz şöyle yapılandırılmışsa:

+ + + User apache
+ Group apache-grup
+
+ +

Ve suexec çalıştırılabilir de + /usr/local/apache2/bin/ dizinine kurulmuşsa şu komutları + vermelisiniz:

+ + + chgrp apache-grup /usr/local/apache2/bin/suexec
+ chmod 4750 /usr/local/apache2/bin/suexec
+
+ +

Böylece suEXEC çalıştırıcısını Apache’yi çalıştıran grubun + üyelerinden başkasının çalıştıramayacağından emin olabilirsiniz.

+
+
+ +
+ suEXEC’in etkin kılınması ve iptal edilmesi + +

Apache başlatıldığı sırada suexec çalıştırıcısı + için --sbindir seçeneği ile tanımlanan dizine bakar + (seçeneğin öntanımlı değeri + /usr/local/apache/sbin/suexec’tir). Apache düzgün + yapılandırılmış bir suEXEC çalıştırıcısı bulduğu takdirde hata + günlüğüne şöyle bir ileti yazacaktır:

+ + + [notice] suEXEC mechanism enabled (wrapper: /dosya/yolu/suexec) + + +

Sunucu başlatıldığında bu ileti yazılmazsa sunucu ya çalıştırıcı + programı umduğu yerde bulamamıştır ya da dosyanın setuid biti + root tarafından etkin kılınmamıştır.

+ +

SuEXEC mekanizmasını etkin kılmak istediğiniz sunucu çalışmaktaysa + sunucuyu önce öldürmeli sonra yeniden başlatmalısınız. Basit bir + HUP veya USR1 sinyali ile yeniden başlamasını + sağlamak yeterli olmayacaktır.

+ +

SuEXEC mekanizmasını iptal etmek için ise suexec + dosyasını sildikten sonra Apache sunucusunu öldürüp yeniden + başlamalısınız.

+
+ +
SuEXEC’in kullanımı + +

CGI programlarına yapılan isteklerin suEXEC çalıştırıcısı tarafından + yerine getirilebilmesi için sanal konağın bir SuexecUserGroup yönergesi içermesi veya + isteğin mod_userdir tarafından işleme konulması + gerekir.

+ +

Sanal Konaklar:
SuEXEC çalıştırıcısını farklı + bir kullanıcı ile etkin kılmanın tek yolu VirtualHost bölümleri içinde SuexecUserGroup yönergesini + kullanmaktır. Bu yönergede ana sunucuyu çalıştıran kullanıcıdan farklı + bir kullanıcı belirterek ilgili sanal konak üzerinden CGI kaynakları + için yapılan tüm isteklerin belirtilen kullanıcı ve + grup tarafından çalıştırılması sağlanır. Bu yönergeyi + içermeyen sanal konaklar için ana sunucunun kullanıcısı + öntanımlıdır.

+ +

Kullanıcı dizinleri:
+ mod_userdir tarafından işleme sokulan tüm istekler için + suEXEC çalıştırıcısı istek yapılan kullanıcı dizininin sahibinin + aidiyetinde çalıştırılacaktır. Bu özelliğin çalışması için tek + gereklilik, kullanıcının SuEXEC çalıştırıcısı için etkin kılınmış olması + ve çalıştırıcının yukarıdaki güvenlik sınamalarından + geçebilmesidir. Ayrıca, --with-suexec-userdir derleme seçeneğinin açıklamasına da bakınız.

+
+ +
SuEXEC ve hata ayıklama + +

SuEXEC çalıştırıcısı yukarıda değinildiği gibi günlük bilgilerini + --with-suexec-logfile seçeneği ile belirtilen dosyaya + yazacaktır. Çalıştırıcıyı doğru yapılandırarak kurduğunuzdan emin olmak + istiyorsanız, yolunda gitmeyen şeyler var mı diye bu günlük dosyasına + bakmayı ihmal etmeyin.

+ +
+ +
+ Uyarılar ve Örnekler + +

UYARI! Bu bölüm henüz bitmedi. Bu bölümün son hali + için çevrimiçi + belgelere bakınız.

+ +

SuEXEC çalıştırıcısından dolayı sunucu ayarlarına bazı sınırlamalar + getiren bir kaç önemli nokta mevcuttur. SuEXEC ile ilgili hata + bildiriminde bulunmadan önce bunlara bir göz atmalısınız.

+ +
    +
  • suEXEC ile ilgili önemli noktalar
  • + +
  • Hiyerarşik sınırlamalar + +

    Güvenlik ve verimlilik adına, tüm suEXEC + isteklerinin sanal konaklar için üst düzey belge kökünün altındaki + dosyalarla, kullanıcı dizinleri için ise üst düzey bireysel belge + köklerinin altındaki dosyalarla sınırlı kalması gerekir. Örneğin, + dört sanal konağınız varsa ve suEXEC çalıştırıcısının + getirilerinden faydalanmak istiyorsanız, sanal konaklarınızın belge + kök dizinlerini ana sunucunun belge kök dizininin altında kalacak + şekilde yapılandırmanız gerekir (örnek yolda).

    +
  • + +
  • SuEXEC'in PATH ortam değişkeni + +

    Bunu değiştirmek tehlikeli olabilir. Bu değişkende + tanımladığınız her yolun güvenli bir dizini işaret + ettiğinden emin olmalısınız. Başkalarının oralarda bir truva atı + çalıştırmasını istemiyorsanız buna çok dikkat ediniz.

    +
  • + +
  • SuEXEC kodunda değişiklik + +

    Gerçekte ne yaptığınızı bilmiyorsanız bu, + büyük bir sorun olabilir. Böyle şeyler yapmaktan + mümkün olduğunca uzak durmalısınız.

    +
  • +
+ +
+ +
-- 2.50.1