| <?xml version="1.0" encoding="UTF-8" ?> |
| <!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd"> |
| <?xml-stylesheet type="text/xsl" href="./style/manual.tr.xsl"?> |
| <!-- English Revision: 1874169 --> |
| <!-- ===================================================== |
| Translated by: Nilgün Belma Bugüner <nilgun belgeler.org> |
| Reviewed by: Orhan Berent <berent belgeler.org> |
| ========================================================== --> |
| |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| |
| <manualpage metafile="suexec.xml.meta"> |
| |
| <title>SuEXEC Desteği</title> |
| |
| <summary> |
| <p><strong>SuEXEC</strong> özelliği, Apache HTTP Sunucusu kullanıcılarına |
| <strong>CGI</strong> ve <strong>SSI</strong> programlarını sunucunun |
| aidiyetinde çalıştığı kullanıcıdan farklı bir kullanıcının aidiyetinde |
| çalıştırma olanağı verir. Normalde, <strong>CGI</strong> ve |
| <strong>SSI</strong> programlarını çalıştıranla sunucuyu çalıştıran |
| aynı kullanıcıdır.</p> |
| |
| <p>Gerektiği gibi kullanıldığında bu özellik, kullanıcılara |
| <strong>CGI</strong> ve <strong>SSI</strong> programlarını çalıştırma |
| ve geliştirmeye izin vermekle ortaya çıkan güvenlik risklerini azaltır. |
| Bununla birlikte, <strong>suEXEC</strong> 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 <em>setuid |
| root</em> programları yönetmekte bilgi ve deneyim sahibi değilseniz |
| <strong>suEXEC</strong> kullanmayı kesinlikle düşünmemenizi |
| öneririz.</p> |
| </summary> |
| |
| <section id="before"><title>Başlamadan önce</title> |
| |
| <p>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.</p> |
| |
| <p>Öncelikle, üzerinde <strong>setuid</strong> va <strong>setgid</strong> |
| 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.</p> |
| |
| <p>İkinci olarak, bilgisayarınızın güvenliği ve yönetimi ile ilgili bazı |
| temel kavramları bildiğinizi kabul ediyoruz. Buna |
| <strong>setuid/setgid</strong> işlemlerinin sisteminiz ve güvenlik |
| seviyesi üzerindeki etkilerini bilmek dahildir.</p> |
| |
| <p>Üçüncü olarak, <strong>suEXEC</strong> kodunun |
| <strong>değiştirilmemiş</strong> 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.</p> |
| |
| <p>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.</p> |
| |
| <p>Hala bizimle misiniz? Evet mi? Pekala, o halde devam!</p> |
| </section> |
| |
| <section id="model"><title>SuEXEC Güvenlik Modeli</title> |
| |
| <p>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.</p> |
| |
| <p><strong>suEXEC</strong> 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.</p> |
| |
| <p>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.</p> |
| |
| <ol> |
| <li> |
| <strong>Setuid programı çalıştıran kullanıcı sistemin geçerli |
| kullanıcılarından biri mi?</strong> |
| |
| <p class="indent">Bu, setuid programı çalıştıran kullanıcının |
| sistemin gerçek bir kullanıcısı olduğunudan emin olunmasını sağlar. |
| </p> |
| </li> |
| |
| <li> |
| <strong>Setuid program yeterli sayıda argümanla çağrılmış mı? |
| </strong> |
| |
| <p class="indent">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.</p> |
| </li> |
| |
| <li> |
| <strong>Bu geçerli kullanıcının bu setuid programı çalıştırma |
| yetkisi var mı?</strong> |
| |
| <p class="indent">Sadece tek bir kullanıcı (Apache’nin aidiyetinde |
| çalıştığı kullanıcı) bu programı çalıştırmaya yetkilidir.</p> |
| </li> |
| |
| <li> |
| <strong>Hedef CGI veya SSI programı hiyerarşik olarak güvenliği |
| bozacak bir dosya yolu üzerinde mi?</strong> |
| |
| <p class="indent">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 |
| <code>--with-suexec-docroot=<em>DİZİN</em></code> seçeneğine |
| bakınız).</p> |
| </li> |
| |
| <li> |
| <strong>Hedef kullanıcı ismi geçerli mi?</strong> |
| |
| <p class="indent">Hedef kullanıcı mevcut mu?</p> |
| </li> |
| |
| <li> |
| <strong>Hedef grup ismi geçerli mi?</strong> |
| |
| <p class="indent">Hedef grup mevcut mu?</p> |
| </li> |
| |
| <li> |
| <strong>Hedef kullanıcı <code>root</code> değil, değil mi?</strong> |
| |
| <p class="indent">Mevcut durumda, <code>root</code> kullanıcısının |
| CGI/SSI programlarını çalıştırmasına izin verilmemektedir.</p> |
| </li> |
| |
| <li> |
| <strong>Hedef kullanıcı kimliği asgari kullanıcı numarasından |
| <em>BÜYÜK</em> mü?</strong> |
| |
| <p class="indent">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.</p> |
| </li> |
| |
| <li> |
| <strong>Hedef grup <code>root</code> değil, değil mi?</strong> |
| |
| <p class="indent"><code>root</code> grubunun CGI/SSI |
| programlarını çalıştırmasına izin verilmemektedir.</p> |
| </li> |
| |
| <li> |
| <strong>Hedef grup numarası asgari grup numarasından |
| <em>BÜYÜK</em> mü?</strong> |
| |
| <p class="indent">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.</p> |
| </li> |
| |
| <li> |
| <strong>Apache’nin artalanda çağırdığı setuid program hedef |
| kullanıcı ve grubun aidiyetine geçebildi mi?</strong> |
| |
| <p class="indent">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.</p> |
| </li> |
| |
| <li> |
| <strong>Hedef CGI/SSI programının bulunduğu dizine geçebildik mi? |
| </strong> |
| |
| <p class="indent">Dizin mevcut değilse dosyaları da içeremez. Hedef |
| dizine geçemiyorsak bu, dizin mevcut olmadığından olabilir.</p> |
| </li> |
| |
| <li> |
| <strong>Hedef dizin Apache için izin verilen yerlerden biri mi? |
| </strong> |
| |
| <p class="indent">İ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, <directive module="mod_userdir" |
| >UserDir</directive> ile belirtilen dizinin altında mı? (<a |
| href="#install">suEXEC’in yapılandırma seçeneklerine</a> |
| bakınız).</p> |
| </li> |
| |
| <li> |
| <strong>Hedef dizin başkaları tarafından yazılabilen bir dizin değil, |
| değil mi?</strong> |
| |
| <p class="indent">Başkaları da yazabilsin diye bir dizin açmıyoruz; |
| dizin içeriğini sadece sahibi değiştirebilmelidir.</p> |
| </li> |
| |
| <li> |
| <strong>Hedef CGI/SSI programı mevcut mu?</strong> |
| |
| <p class="indent">Mevcut değilse çalıştırılamaz.</p> |
| </li> |
| |
| <li> |
| <strong>Hedef CGI/SSI program dosyasına başkaları tarafından |
| yazılamıyor, değil mi?</strong> |
| |
| <p class="indent">Hedef CGI/SSI programının dosyasına sahibinden |
| başka kimsenin bir şeyler yazmasını istemeyiz.</p> |
| </li> |
| |
| <li> |
| <strong>Hedef CGI/SSI program setuid veya setgid <em>değil</em>, |
| değil mi?</strong> |
| |
| <p class="indent">UID/GID‘i tekrar değiştirecek programlar |
| çalıştırmayı istemeyiz.</p> |
| </li> |
| |
| <li> |
| <strong>Hedef kullanıcı/grup, programın kullanıcı/grubu ile aynı mı? |
| </strong> |
| |
| <p class="indent">Hedef kullanıcı dosyanın sahibi mi?</p> |
| </li> |
| |
| <li> |
| <strong>İşlemlerin güvenle yapılabilmesi için süreç ortamını |
| başarıyla temizleyebildik mi?</strong> |
| |
| <p class="indent">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.</p> |
| </li> |
| |
| <li> |
| <strong>Hedef CGI/SSI programı haline gelip çalışabildik mi?</strong> |
| |
| <p class="indent">Burası suEXEC’in bitip CGI/SSI programının |
| başladığı yerdir.</p> |
| </li> |
| </ol> |
| |
| <p>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.</p> |
| |
| <p>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 <a |
| href="#jabberwock">"Uyarılar ve Örnekler"</a> bölümüne bakınız.</p> |
| </section> |
| |
| <section id="install"><title>suEXEC’in Yapılandırılması ve Kurulumu</title> |
| |
| <p>Eğlence başlıyor.</p> |
| |
| <p><strong>suEXEC yapılandırma seçenekleri</strong><br /> |
| </p> |
| |
| <dl> |
| <dt><code>--enable-suexec</code></dt> |
| |
| <dd>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 |
| <code>--enable-suexec</code> seçeneğinin yanında en azından bir tane |
| de <code>--with-suexec-xxxxx</code> seçeneği belirtilmiş |
| olmalıdır.</dd> |
| |
| <dt><code>--with-suexec-bin=<em>YOL</em></code></dt> |
| |
| <dd>Güvenlik sebebiyle <code>suexec</code> çalıştırılabilirinin |
| bulunduğu yer sunucu koduna yazılır. Bu seçenekle öntanımlı yol |
| değiştirilmiş olur. Örnek:<br /> |
| <code>--with-suexec-bin=/usr/sbin/suexec</code></dd> |
| |
| <dt><code>--with-suexec-caller=<em>KULLANICI</em></code></dt> |
| |
| <dd>Normalde httpd’nin aidiyetinde çalıştığı <a |
| href="mod/mpm_common.html#user">kullanıcı</a>dır. Bu, suEXEC |
| çalıştırıcısını çalıştırmasına izin verilen tek kullanıcıdır.</dd> |
| |
| <dt><code>--with-suexec-userdir=<em>DİZİN</em></code></dt> |
| |
| <dd><p>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 <directive module="mod_userdir" |
| >UserDir</directive> yönergesi kullanıyorsanız ( içinde “*” |
| bulunmayan), bunun aynı dizin olması gerekir. Eğer burada belirtilen |
| dizin, <code>passwd</code> dosyasında kullanıcı için belirtilmiş |
| dizinin altında <directive module="mod_userdir">UserDir</directive> |
| yönergesinde belirtilen dizin olmadığı takdirde suEXEC işini |
| gerektiği gibi yapmayacaktır. Öntanımlı değer |
| <code>public_html</code>’dir.</p> |
| |
| <p>Eğer, sanal konaklarınızın herbiri farklı <directive |
| module="mod_userdir">UserDir</directive> yönergeleri içeriyorsa |
| burada belirtilecek dizinin üst dizininin hepsinde aynı olması |
| gerekir. <strong>Aksi takdirde, "~<em><code>kullanıcı</code></em>" |
| istekleri düzgün çalışmayacaktır.</strong></p></dd> |
| |
| <dt><code>--with-suexec-docroot=<em>DİZİN</em></code></dt> |
| |
| <dd>httpd için belge kök dizinini belirler. Bu, (<directive |
| module="mod_userdir" >UserDir</directive>’lardan başka) suEXEC için |
| kullanılacak tek hiyerarşi olacaktır. Öntanımlı dizin sonuna |
| "<code>/htdocs</code>" eklenmiş <code>--datadir</code> dizinidir. |
| Yani, seçeneği "<code>--datadir=/home/apache</code>" olarak |
| belirtmişseniz suEXEC çalıştırıcısı için belge kök dizini |
| "<code>/home/apache/htdocs</code>" olur.</dd> |
| |
| <dt><code>--with-suexec-uidmin=<em>UID</em></code></dt> |
| |
| <dd>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.</dd> |
| |
| <dt><code>--with-suexec-gidmin=<em>GID</em></code></dt> |
| |
| <dd>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.</dd> |
| |
| <dt><code>--with-suexec-logfile=<em>DOSYA</em></code></dt> |
| |
| <dd>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 |
| "<code>suexec_log</code>" olup yeri (<code>--logfiledir</code> |
| seçeneği ile belirtilen) günlük dosyaları dizinidir.</dd> |
| |
| <dt><code>--with-suexec-safepath=<em>YOL</em></code></dt> |
| |
| <dd>CGI çalıştırılabilirlerine aktarılacak güvenilir <code>PATH</code> |
| ortam değişkeninin değerini tanımlar. |
| "<code>/usr/local/bin:/usr/bin:/bin</code>" öntanımlıdır.</dd> |
| </dl> |
| |
| <section> |
| <title>SuEXEC çalıştırıcısının derlenmesi ve kurulumu</title> |
| |
| <p>SuEXEC özelliğini <code>--enable-suexec</code> seçeneği ile |
| etkinleştirdiyseniz <code>make</code> komutunu verdiğinizde httpd |
| ile birlikte <code>suexec</code> çalıştırılabilir dosyası da |
| derlenecektir.</p> |
| |
| <p>Tüm bileşenler derlendikten sonra <code>make install</code> komutunu |
| vererek kurulumu tamamlayabilirsiniz. <code>suexec</code> |
| çalıştırılabilir dosyası <code>--sbindir</code> seçeneği ile |
| tanımlanan dizine kurulacaktır; öntanımlı yeri |
| <code>/usr/local/apache2/bin/</code> dizinidir.</p> |
| |
| <p>Kurulum adımında <strong><em>root yetkisine</em></strong> 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 <code><em>root</em></code> tarafından yapılması |
| önemlidir.</p> |
| </section> |
| |
| <section> |
| <title>Paranoyak yetkilendirme</title> |
| |
| <p>SuEXEC çalıştırıcısı kendini çalıştıran kullanıcının |
| <program>configure</program> betiğine |
| <code>--with-suexec-caller</code> 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.</p> |
| |
| <p>Örneğin, sunucunuz şöyle yapılandırılmışsa:</p> |
| |
| <highlight language="config"> |
| User www |
| Group webgroup |
| </highlight> |
| |
| <p>Ve <program>suexec</program> çalıştırılabilir de |
| <code>/usr/local/apache2/bin/</code> dizinine kurulmuşsa şu komutları |
| vermelisiniz:</p> |
| |
| <example> |
| chgrp apache-grup /usr/local/apache2/bin/suexec<br /> |
| chmod 4750 /usr/local/apache2/bin/suexec<br /> |
| </example> |
| |
| <p>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.</p> |
| </section> |
| </section> |
| |
| <section id="enable"> |
| <title>suEXEC’in etkin kılınması ve iptal edilmesi</title> |
| |
| <p>httpd başlatıldığı sırada <program>suexec</program> çalıştırıcısı için |
| <code>--sbindir</code> seçeneği ile tanımlanan dizine bakar (seçeneğin |
| öntanımlı değeri <code>/usr/local/apache/sbin/suexec</code>’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:</p> |
| |
| <example> |
| [notice] suEXEC mechanism enabled (wrapper: <var>/dosya/yolu/suexec</var>) |
| </example> |
| |
| <p>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 <em>setuid</em> biti |
| <em>root</em> tarafından etkin kılınmamıştır.</p> |
| |
| <p>SuEXEC mekanizmasını etkin kılmak istediğiniz sunucu çalışmaktaysa |
| sunucuyu önce öldürmeli sonra yeniden başlatmalısınız. Basit bir |
| <code>HUP</code> veya <code>USR1</code> sinyali ile yeniden başlamasını |
| sağlamak yeterli olmayacaktır.</p> |
| |
| <p>SuEXEC mekanizmasını iptal etmek için ise <program>suexec</program> |
| dosyasını sildikten sonra httpd'yi öldürüp yeniden başlamalısınız.</p> |
| </section> |
| |
| <section id="usage"><title>SuEXEC’in kullanımı</title> |
| |
| <p>CGI programlarına yapılan isteklerin suEXEC çalıştırıcısı tarafından |
| yerine getirilebilmesi için sanal konağın bir <directive |
| module="mod_suexec">SuexecUserGroup</directive> yönergesi içermesi veya |
| isteğin <module>mod_userdir</module> tarafından işleme konulması |
| gerekir.</p> |
| |
| <p><strong>Sanal Konaklar:</strong><br />SuEXEC çalıştırıcısını farklı |
| bir kullanıcı ile etkin kılmanın tek yolu <directive |
| module="core">VirtualHost</directive> bölümleri içinde <directive |
| module="mod_suexec">SuexecUserGroup</directive> 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 <em>kullanıcı</em> ve |
| <em>grup</em> 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.</p> |
| |
| <p><strong>Kullanıcı dizinleri:</strong><br /> |
| <module>mod_userdir</module> 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 <a href="#model">güvenlik sınamalarından</a> |
| geçebilmesidir. Ayrıca, <code>--with-suexec-userdir</code> <a |
| href="#install">derleme</a> seçeneğinin açıklamasına da bakınız.</p> |
| </section> |
| |
| <section id="debug"><title>SuEXEC ve hata ayıklama</title> |
| |
| <p>SuEXEC çalıştırıcısı yukarıda değinildiği gibi günlük bilgilerini |
| <code>--with-suexec-logfile</code> 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.</p> |
| |
| </section> |
| |
| <section id="jabberwock"> |
| <title>Uyarılar ve Örnekler</title> |
| |
| <p><strong>UYARI!</strong> Bu bölüm henüz bitmedi.</p> |
| |
| <p>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.</p> |
| |
| <p><strong>suEXEC ile ilgili önemli noktalar</strong></p> |
| <ul> |
| <li>Hiyerarşik sınırlamalar |
| |
| <p class="indent">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).</p> |
| </li> |
| |
| <li>SuEXEC'in <code>PATH</code> ortam değişkeni |
| |
| <p class="indent">Bunu değiştirmek tehlikeli olabilir. Bu değişkende |
| tanımladığınız her yolun <strong>güvenli</strong> 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.</p> |
| </li> |
| |
| <li>SuEXEC kodunda değişiklik |
| |
| <p class="indent">Gerçekte ne yaptığınızı bilmiyorsanız bu, |
| <strong>büyük bir sorun</strong> olabilir. Böyle şeyler yapmaktan |
| mümkün olduğunca uzak durmalısınız.</p> |
| </li> |
| </ul> |
| |
| </section> |
| |
| </manualpage> |