From 6beeb1b708550be0d4a53b272283e17e5e35fe17 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 17:01:30 +0200 Subject: Adding upstream version 2.4.57. Signed-off-by: Daniel Baumann --- docs/manual/suexec.html.tr.utf8 | 580 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 580 insertions(+) create mode 100644 docs/manual/suexec.html.tr.utf8 (limited to 'docs/manual/suexec.html.tr.utf8') diff --git a/docs/manual/suexec.html.tr.utf8 b/docs/manual/suexec.html.tr.utf8 new file mode 100644 index 0000000..ca5787c --- /dev/null +++ b/docs/manual/suexec.html.tr.utf8 @@ -0,0 +1,580 @@ + + + + + +SuEXEC Desteği - Apache HTTP Sunucusu Sürüm 2.4 + + + + + + + +
<-
+

SuEXEC Desteği

+
+

Mevcut Diller:  en  | + fr  | + ja  | + ko  | + tr 

+
+ +

SuEXEC özelliği, Apache HTTP Sunucusu 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.

+
+ +
top
+
+

Başlamadan önce

+ +

Belgeye balıklama dalmadan önce, suexec'i kullanacağınız ortam ve + kendiniz hakkında yapılmış çeşitli 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 HTTP Sunucusu geliştirme ekibi ile + paylaşmanızı öneririz.

+ +

Dördüncü ve son olarak, Apache HTTP Sunucusu geliştirme ekibinin + suEXEC’i öntanımlı httpd 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, suEXEC kurulumunu, suEXEC’i dikkatle kullanacak yeterliliğe sahip + olanlarla sınırlama beklentimizdir.

+ +

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

+
top
+
+

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 httpd 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 HTTP Sunucusunun 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 httpd + ç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? + +

    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.

+
top
+
+

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 httpd’nin aidiyetinde çalıştığı kullanıcıdır. Bu, suEXEC + çalıştırıcısını ç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
+ +
httpd 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 httpd + 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 + httpd'nin aidiyetinde çalıştığı grup tarafından çalıştırılacak + şekilde ayarlayınız.

+ +

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

+ +
User www
+Group webgroup
+ + +

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ı httpd’yi çalıştıran grubun + üyelerinden başkasının çalıştıramayacağından emin olabilirsiniz.

+ +
top
+
+

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

+ + +

httpd 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). httpd + 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 httpd'yi öldürüp yeniden başlamalısınız.

+
top
+
+

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.

+
top
+
+

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.

+ +
top
+
+

Uyarılar ve Örnekler

+ + +

UYARI! Bu bölüm henüz bitmedi.

+ +

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.

    +
  • +
+ +
+
+

Mevcut Diller:  en  | + fr  | + ja  | + ko  | + tr 

+
top

Yorumlar

Notice:
This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
+
+ \ No newline at end of file -- cgit v1.2.3