1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" lang="tr" xml:lang="tr"><head><!--
4 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
5 This file is generated from xml source: DO NOT EDIT
6 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
8 <title>Güvenlik İpuçları - Apache HTTP Sunucusu</title>
9 <link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
10 <link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
11 <link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
12 <script src="../style/scripts/prettify.js" type="text/javascript">
15 <link href="../images/favicon.ico" rel="shortcut icon" /></head>
16 <body id="manual-page"><div id="page-header">
17 <p class="menu"><a href="../mod/">Modüller</a> | <a href="../mod/directives.html">Yönergeler</a> | <a href="http://wiki.apache.org/httpd/FAQ">SSS</a> | <a href="../glossary.html">Terimler</a> | <a href="../sitemap.html">Site Haritası</a></p>
18 <p class="apache">Apache HTTP Sunucusu Sürüm 2.5</p>
19 <img alt="" src="../images/feather.gif" /></div>
20 <div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
22 <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Sunucusu</a> > <a href="http://httpd.apache.org/docs/">Belgeleme</a> > <a href="../">Sürüm 2.5</a> > <a href="./">Çeşitli Belgeler</a></div><div id="page-content"><div id="preamble"><h1>Güvenlik İpuçları</h1>
24 <p><span>Mevcut Diller: </span><a href="../en/misc/security_tips.html" hreflang="en" rel="alternate" title="English"> en </a> |
25 <a href="../fr/misc/security_tips.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
26 <a href="../ko/misc/security_tips.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
27 <a href="../tr/misc/security_tips.html" title="Türkçe"> tr </a></p>
29 <div class="outofdate">Bu çeviri güncel olmayabilir. Son değişiklikler için İngilizce sürüm geçerlidir.</div>
31 <p>Bir HTTP Sunucusunu ayarlarken dikkat edilmesi gerekenler ve bazı
32 ipuçları. Öneriler kısmen Apache’ye özel kısmen de genel olacaktır.</p>
34 <div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#uptodate">Güncel Tutma</a></li>
35 <li><img alt="" src="../images/down.gif" /> <a href="#dos">Hizmet Reddi (DoS) Saldırıları</a></li>
36 <li><img alt="" src="../images/down.gif" /> <a href="#serverroot"><code>ServerRoot</code> Dizinlerinin İzinleri</a></li>
37 <li><img alt="" src="../images/down.gif" /> <a href="#ssi">Sunucu Taraflı İçerik Yerleştirme</a></li>
38 <li><img alt="" src="../images/down.gif" /> <a href="#cgi">CGI Genelinde</a></li>
39 <li><img alt="" src="../images/down.gif" /> <a href="#nsaliasedcgi"><code>ScriptAlias</code>’sız CGI</a></li>
40 <li><img alt="" src="../images/down.gif" /> <a href="#saliasedcgi"><code>ScriptAlias</code>’lı CGI</a></li>
41 <li><img alt="" src="../images/down.gif" /> <a href="#dynamic">Devingen içerikli kaynaklar</a></li>
42 <li><img alt="" src="../images/down.gif" /> <a href="#dynamicsec">Devingen içeriğin güvenliği</a></li>
43 <li><img alt="" src="../images/down.gif" /> <a href="#systemsettings">Sistem Ayarlarının Korunması</a></li>
44 <li><img alt="" src="../images/down.gif" /> <a href="#protectserverfiles">Sunucu dosyalarının öntanımlı olarak korunması</a></li>
45 <li><img alt="" src="../images/down.gif" /> <a href="#watchyourlogs">Günlüklerin İzlenmesi</a></li>
46 <li><img alt="" src="../images/down.gif" /> <a href="#merging">Yapılandırma bölümlerinin birleştirilmesi</a></li>
47 </ul><ul class="seealso"><li><a href="#comments_section">Yorum</a></li></ul></div>
48 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
50 <h2><a name="uptodate" id="uptodate">Güncel Tutma</a></h2>
52 <p>Apache HTTP Sunucusu iyi bir güvenlik sicilinin yanında güvenlik
53 konularıyla oldukça ilgili bir geliştirici topluluğuna sahiptir. Fakat,
54 bir yazılımın dağıtılmasının ardından küçük ya da büyük bazı sorunların
55 keşfedilmesi kaçınılmazdır. Bu sebeple, yazılım güncellemelerinden
56 haberdar olmak oldukça önem kazanır. HTTP sunucunuzu doğrudan
57 Apache’den temin ediyorsanız yeni sürümler ve güvenlik güncellemeleri
58 ile ilgili bilgileri tam zamanında alabilmek için <a href="http://httpd.apache.org/lists.html#http-announce">Apache
59 HTTP Sunucusu Duyuru Listesi</a>ne mutlaka üye olmanızı öneririz.
60 Apache yazılımının üçüncü parti dağıtımlarını yapanların da buna benzer
61 hizmetleri vardır.</p>
63 <p>Şüphesiz, bir HTTP sunucusu, sunucu kodunda bir sorun olmasa da
64 tehlike altındadır. Eklenti kodları, CGI betikleri hatta işletim
65 sisteminden kaynaklanan sorunlar nedeniyle bu ortaya çıkabilir. Bu
66 bakımdan, sisteminizdeki tüm yazılımların sorunları ve güncellemeleri
67 hakkında bilgi sahibi olmalısınız.</p>
69 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
71 <h2><a name="dos" id="dos">Hizmet Reddi (DoS) Saldırıları</a></h2>
74 <p>Tüm ağ sunucuları, istemcilerin sistem kaynaklarından yararlanmalarını
75 engellemeye çalışan hizmet reddi saldırılarına (HRS) maruz kalabilir.
76 Bu tür saldırıları tamamen engellemek mümkün değildir, fakat
77 yarattıkları sorunları azaltmak için bazı şeyler yapabilirsiniz.</p>
79 <p>Çoğunlukla en etkili anti-HRS aracı bir güvenlik duvarı veya başka bir
80 işletim sistemi yapılandırmasıdır. Örneğin, çoğu güvenlik duvarı
81 herhangi bir IP adresinden aynı anda yapılan bağlantıların sayısına bir
82 sınırlama getirmek üzere yapılandırılabilir. Böylece basit saldırılar
83 engellenebilir. Ancak bunun dağıtık hizmet reddi saldırılarına (DHRS)
84 karşı bir etkisi olmaz.</p>
86 <p>Bunların yanında Apache HTTP Sunucusunun da sorunları azaltıcı
87 tedbirler alınmasını sağlayacak bazı yapılandırmaları vardır:</p>
90 <li><code class="directive"><a href="../mod/mod_reqtimeout.html#requestreadtimeout">RequestReadTimeout</a></code>
91 yönergesi bir istemcinin isteği göndermek için harcadığı zamanı
92 sınırlamayı sağlar.</li>
94 <li>HRS’ye maruz kalması olası sitelerde <code class="directive"><a href="../mod/core.html#timeout">TimeOut</a></code> yönergesinin değeri düşürülmelidir. Birkaç
95 saniye gibi mümkün olduğunca düşük bir ayar uygun olabilir. Ancak
96 <code class="directive"><a href="../mod/core.html#timeout">TimeOut</a></code> başka işlemlerde de
97 kullanıldığından çok düşük değerler, örneğin, uzun süre çalışan CGI
98 betiklerinde sorunlar çıkmasına sebep olabilir.</li>
100 <li>HRS’ye maruz kalması olası sitelerde <code class="directive"><a href="../mod/core.html#keepalivetimeout">KeepAliveTimeout</a></code> yönergesinin değeri de düşürülebilir.
101 Hatta bazı siteler başarımı arttırmak amacıyla <code class="directive"><a href="../mod/core.html#keepalive">KeepAlive</a></code> yönergesi üzerinden kalıcı
102 bağlantıları tamamen kapatabilirler.</li>
104 <li>Zaman aşımıyla ilgili yönergeler bakımından diğer modüller de
105 araştırılmalıdır.</li>
107 <li><code class="directive"><a href="../mod/core.html#limitrequestbody">LimitRequestBody</a></code>,
108 <code class="directive"><a href="../mod/core.html#limitrequestfields">LimitRequestFields</a></code>,
109 <code class="directive"><a href="../mod/core.html#limitrequestfieldsize">LimitRequestFieldSize</a></code>,
110 <code class="directive"><a href="../mod/core.html#limitrequestline">LimitRequestLine</a></code> ve
111 <code class="directive"><a href="../mod/core.html#limitxmlrequestbody">LimitXMLRequestBody</a></code> yönergeleri,
112 istemci girdileri ile tetiklenen özkaynak tüketimini sınırlamak için
113 yapılandırılırken dikkatli olunmalıdır.</li>
115 <li>İşletim sisteminiz desteklediği takdirde, işletim sisteminin isteği
116 işleyen kısmını yüksüz bırakmak için <code class="directive"><a href="../mod/core.html#acceptfilter">AcceptFilter</a></code> yönergesinin etkin olmasını sağlamalısınız.
117 Bu, Apache HTTP Sunucusunda zaten öntanımlı olarak etkindir.
118 Yapacağınız şey işletim sistemi çekirdeğini buna göre yapılandırmak
121 <li>Sunucu tarafından özkaynakları tüketmeden aynı anda işlenebilecek
122 bağlantıların sayısını sınırlamak için <code class="directive"><a href="../mod/mpm_common.html#maxrequestworkers">MaxRequestWorkers</a></code> yönergesini kullanın. Ayrıca, <a href="perf-tuning.html">başarım arttırma belgesine</a> de
125 <li>HRS’lerin etkilerini azaltmak için aynı andaki bağlantı sayısını
126 arttırabilecek evreli <a href="../mpm.html">MPM</a>’lerden birini
127 kullanmak iyi olabilir. Dahası, <code class="module"><a href="../mod/event.html">event</a></code> MPM’i
128 her bağlantıya yeni bir evre atanmaması için eşzamansız işlem yapar.
129 OpenSSL kütüphanesinin doğası nedeniyle
130 <code class="module"><a href="../mod/event.html">event</a></code> MPM’i <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> ve diğer girdi
131 süzgeçleri ile henüz uyumlu değildir. Bu durumlarda,
132 <code class="module"><a href="../mod/worker.html">worker</a></code> MPM'inin davranışına geri döner.</li>
134 <li><a href="http://modules.apache.org/">http://modules.apache.org/</a>
135 adresinde, belli istemci davranışlarını sınırlayacak ve HRS ile
136 ilgili sorunları azaltmaya yardımcı olacak üçüncü parti modüller
139 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
140 <div class="section">
141 <h2><a name="serverroot" id="serverroot"><code>ServerRoot</code> Dizinlerinin İzinleri</a></h2>
144 <p>Normalde, Apache root kullanıcı tarafından başlatılır ve hizmetleri
145 sunarken <code class="directive"><a href="../mod/mod_unixd.html#user">User</a></code> yönergesi
146 tarafından tanımlanan kullanıcının aidiyetinde çalışır. Root tarafından
147 çalıştırılan komutlarda olduğu gibi, root olmayan kullanıcıların
148 yapacakları değişikliklerden korunmak konusunda da dikkatli
149 olmalısınız. Dosyaların sadece root tarafından yazılabilir olmasını
150 sağlamak yeterli değildir, bu dizinler ve üst dizinler için de
151 yapılmalıdır. Örneğin, sunucu kök dizininin
152 <code>/usr/local/apache</code> olmasına karar verdiyseniz, bu dizini
153 root olarak şöyle oluşturmanız önerilir:</p>
155 <div class="example"><p><code>
156 mkdir /usr/local/apache <br />
157 cd /usr/local/apache <br />
158 mkdir bin conf logs <br />
159 chown 0 . bin conf logs <br />
160 chgrp 0 . bin conf logs <br />
161 chmod 755 . bin conf logs
164 <p><code>/</code>, <code>/usr</code>, <code>/usr/local</code>
165 dizinlerinde sadece root tarafından değişiklik yapılabileceği kabul
166 edilir. <code class="program"><a href="../programs/httpd.html">httpd</a></code> çalıştırılabilirini kurarken de benzer
167 bir önlemin alındığından emin olmalısınız:</p>
169 <div class="example"><p><code>
170 cp httpd /usr/local/apache/bin <br />
171 chown 0 /usr/local/apache/bin/httpd <br />
172 chgrp 0 /usr/local/apache/bin/httpd <br />
173 chmod 511 /usr/local/apache/bin/httpd
176 <p>Diğer kullanıcıların değişiklik yapabileceği bir dizin olarak bir
177 <code>htdocs</code> dizini oluşturabilirsiniz. Bu dizine root
178 tarafından çalıştırılabilecek dosyalar konulmamalı ve burada root
179 tarafından hiçbir dosya oluşturulmamalıdır.</p>
181 <p>Diğer kullanıcılara root tarafından yazılabilen ve çalıştırılabilen
182 dosyalarda değişiklik yapma hakkını tanırsanız, onlara root
183 kullanıcısını ele geçirilebilme hakkını da tanımış olursunuz. Örneğin,
184 biri <code class="program"><a href="../programs/httpd.html">httpd</a></code> çalıştırılabilirini zararlı bir programla
185 değiştirebilir ve o programı tekrar çalıştırdığınız sırada program
186 yapacağını yapmış olur. Günlükleri kaydettiğiniz dizin herkes
187 tarafından yazılabilen bir dizin olduğu takdirde, birileri bir günlük
188 dosyasını bir sistem dosyasına sembolik bağ haline getirerek root
189 kullanıcısının bu dosyaya ilgisiz şeyler yazmasına sebep olabilir.
190 Günlüklerin dosyaları herkes tarafından yazılabilir olduğu takdirde ise
191 birileri dosyaya yanıltıcı veriler girebilir.</p>
192 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
193 <div class="section">
194 <h2><a name="ssi" id="ssi">Sunucu Taraflı İçerik Yerleştirme</a></h2>
197 <p>SSI sayfaları bir sunucu yöneticisi açısından çeşitli olası risklere
198 kaynaklık edebilir.</p>
200 <p>İlk risk, sunucu yükündeki artış olasılığıdır. Tüm SSI sayfaları, SSI
201 kodu içersin içermesin Apache tarafından çözümlenir. Bu küçük bir artış
202 gibi görünürse de bir paylaşımlı sunucu ortamında önemli bir yük haline
205 <p>SSI sayfaları, CGI betikleriyle ilgili riskleri de taşır. <code>exec
206 cmd</code> elemanı kullanılarak bir SSI sayfasından herhangi bir CGI
207 betiğini veya bir sistem programını Apache’nin aidiyetinde olduğu
208 kullanıcının yetkisiyle çalıştırmak mümkündür.</p>
210 <p>SSI sayfalarının yararlı özelliklerinden yararlanırken güvenliğini de
211 arttırmanın bazı yolları vardır.</p>
213 <p>Sunucu yöneticisi, bir başıbozuk SSI sayfasının sebep olabileceği
214 zararları bertaraf etmek için <a href="#cgi">CGI Genelinde</a>
215 bölümünde açıklandığı gibi <a href="../suexec.html">suexec</a>’i etkin
218 <p>SSI sayfalarını <code>.html</code> veya <code>.htm</code>
219 uzantılarıyla etkinleştirmek tehlikeli olabilir. Bu özellikle
220 paylaşımlı ve yüksek trafikli bir sunucu ortamında önemlidir. SSI
221 sayfalarını normal sayfalardan farklı olarak <code>.shtml</code> gibi
222 bildik bir uzantıyla etkinleştirmek gerekir. Bu, sunucu yükünü asgari
223 düzeyde tutmaya ve risk yönetimini kolaylaştırmaya yarar.</p>
225 <p>Diğer bir çözüm de SSI sayfalarından betik ve program çalıştırmayı
226 iptal etmektir. Bu, <code class="directive"><a href="../mod/core.html#options">Options</a></code>
227 yönergesine değer olarak <code>Includes</code> yerine
228 <code>IncludesNOEXEC</code> vererek sağlanır. Ancak, eğer betiklerin
229 bulunduğu dizinde <code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code>
230 yönergesiyle CGI betiklerinin çalışması mümkün kılınmışsa,
231 kullanıcıların <code><--#include virtual="..." --></code> ile bu
232 betikleri çalıştırabileceklerine dikkat ediniz.</p>
234 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
235 <div class="section">
236 <h2><a name="cgi" id="cgi">CGI Genelinde</a></h2>
239 <p>Herşeyden önce ya CGI betiğini/programını yazanlara ya da kendinizin
240 CGI'deki güvenlik açıklarını (ister kasıtlı olsun ister tesadüfi)
241 yakalama becerinize güvenmek zorundasınız. CGI betikleri esasen
242 sisteminizdeki komutları site kullanıcılarının izinleriyle
243 çalıştırırlar. Bu bakımdan dikkatle denenmedikleri takdirde oldukça
244 tehlikeli olabilirler.</p>
246 <p>CGI betiklerinin hepsi aynı kullanıcının aidiyetinde çalışırsa diğer
247 betiklerle aralarında çelişkilerin ortaya çıkması ister istemez
248 kaçınılmazdır. Örneğin A kullanıcısının B kullanıcısına garezi varsa
249 bir betik yazıp B’nin CGI veritabanını silebilir. Bu gibi durumların
250 ortaya çıkmaması için betiklerin farklı kullanıcıların aidiyetlerinde
251 çalışmasını sağlayan ve 1.2 sürümünden beri Apache ile dağıtılan <a href="../suexec.html">suEXEC</a> diye bir program vardır. Başka bir yol
252 da <a href="http://cgiwrap.sourceforge.net/">CGIWrap</a> kullanmaktır.</p>
254 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
255 <div class="section">
256 <h2><a name="nsaliasedcgi" id="nsaliasedcgi"><code>ScriptAlias</code>’sız CGI</a></h2>
259 <p>Kullanıcıların sitenin her yerinde CGI betiklerini çalıştırmalarına
260 izin vermek ancak şu koşullarda mümkün olabilir:</p>
263 <li>Kullanıcılarınızın kasıtlı ya da kasıtsız sistemi saldırıya açık
264 hale getirecek betikler yazmayacaklarına tam güveniniz vardır.</li>
265 <li>Sitenizin güvenliği zaten o kadar kötüdür ki, bir delik daha
266 açılmasının mahzuru yoktur.</li>
267 <li>Sitenizin sizden başka kullanıcısı yoktur ve sunucunuzu sizden
268 başka hiç kimsenin ziyaret etmesi mümkün değildir.</li>
271 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
272 <div class="section">
273 <h2><a name="saliasedcgi" id="saliasedcgi"><code>ScriptAlias</code>’lı CGI</a></h2>
276 <p>CGI’yi belli dizinlerle sınırlamak yöneticiye bu dizinlerde daha iyi
277 denetim imkanı sağlar. Bu kaçınılmaz olarak <code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code>’sız CGI’den çok daha
278 güvenlidir, ancak bu dizinlere yazma hakkı olan kullanıcılarınız
279 güvenilir kişiler olması ve site yöneticisinin de olası güvenlik
280 açıklarına karşı CGI betiklerini ve programlarını denemeye istekli
283 <p>Çoğu site yöneticisi <code>ScriptAlias</code>’sız CGI yerine bu
286 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
287 <div class="section">
288 <h2><a name="dynamic" id="dynamic">Devingen içerikli kaynaklar</a></h2>
291 <p>Sunucunun bir parçası gibi çalışan, <code>mod_php</code>,
292 <code>mod_perl</code>, <code>mod_tcl</code> ve <code>mod_python</code>
293 gibi gömülü betik çalıştırma seçenekleri sunucuyu çalıştıran
294 kullanıcının aidiyetinde çalışırlar (<code class="directive"><a href="../mod/mod_unixd.html#user">User</a></code> yönergesine bakınız). Bu bakımdan bu betik
295 yorumlayıcılar tarafından çalıştırılan betikler, sunucu kullanıcısının
296 eriştiği herşeye erişebilirler. Bazı betik yorumlayıcıların getirdiği
297 bazı sınırlamalar varsa da bunlara pek güvenmemek, gerekli sınamaları
298 yine de yapmak gerekir.</p>
300 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
301 <div class="section">
302 <h2><a name="dynamicsec" id="dynamicsec">Devingen içeriğin güvenliği</a></h2>
305 <p><code>mod_php</code>, <code>mod_perl</code> veya
306 <code>mod_python</code> gibi devingen içeriği yapılandırırken
307 güvenlikle ilgili değerlendirmelerin çoğu <code>httpd</code>'nin
308 kapsamından çıkar ve bu modüllerin belgelerini incelemek ihtiyacı
309 duyarsınız. Örneğin, PHP çoğu zaman kapalı tutulan
310 <a href="http://www.php.net/manual/en/ini.sect.safe-mode.php">Güvenli
311 Kip</a> ayarını etkin kılmanızı önerir. Daha fazla güvenlik için bir
312 diğer örnek bir PHP eklentisi olan
313 <a href="http://www.hardened-php.net/suhosin/">Suhosin</a>'dir. Bunlar
314 hakkında daha ayrıntılı bilgi için her projenin kendi belgelerine
317 <p>Apache seviyesinde, <a href="http://modsecurity.org/">mod_security</a>
318 adı verilen modülü bir HTTP güvenlik duvarı gibi ele alabilir, devingen
319 içeriğin güvenliğini arttırmanıza yardımcı olmak üzere inceden inceye
320 yapılandırabilirsiniz.</p>
322 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
323 <div class="section">
324 <h2><a name="systemsettings" id="systemsettings">Sistem Ayarlarının Korunması</a></h2>
327 <p>Güvenliği gerçekten sıkı tutmak istiyorsanız, kullanıcılarınızın
328 yapılandırmanızdaki güvenlik ayarlarını geçersiz kılmak için
329 <code>.htaccess</code> dosyalarını kullanabilmelerinin de önüne
330 geçmelisiniz. Bunu yapmanın tek bir yolu vardır.</p>
332 <p>Sunucu yapılandırma dosyanıza şunu yerleştirin:</p>
334 <div class="example"><p><code>
336 <span class="indent">
342 <p>Böylece, belli dizinlerde özellikle etkinleştirilmedikçe bütün
343 dizinlerde <code>.htaccess</code> dosyalarının kullanımını engellemiş
346 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
347 <div class="section">
348 <h2><a name="protectserverfiles" id="protectserverfiles">Sunucu dosyalarının öntanımlı olarak korunması</a></h2>
351 <p>Apache’nin ister istemez yanlış anlaşılan yönlerinden biri öntanımlı
352 erişim özelliğidir. Yani siz aksine bir şeyler yapmadıkça, sunucu normal
353 URL eşleme kurallarını kullanarak bir dosyayı bulabildiği sürece onu
354 istemciye sunacaktır.</p>
356 <p>Örneğin, aşağıdaki durumu ele alalım:</p>
358 <div class="example"><p><code>
359 # cd /; ln -s / public_html
362 <p>Ve, tarayıcınıza <code>http://localhost/~root/</code> yazın.</p>
364 <p>Böylece, istemcilerin tüm dosya sisteminizi gezmelerine izin vermiş
365 olursunuz. Bu işlemin sonuçlarının önünü almak için sunucu yapılandırma
366 dosyanıza şunları yazın:</p>
368 <div class="example"><p><code>
370 <span class="indent">
371 Order Deny,Allow <br />
377 <p>Bu suretle, dosya sisteminize öntanımlı erişimi yasaklamış olursunuz.
378 Erişime izin vermek istediğiniz dizinler için uygun <code class="directive"><a href="../mod/core.html#directory">Directory</a></code> bölümleri eklemeniz yeterli
379 olacaktır. Örnek:</p>
381 <div class="example"><p><code>
382 <Directory /usr/users/*/public_html>
383 <span class="indent">
384 Order Deny,Allow <br />
387 </Directory> <br />
388 <Directory /usr/local/httpd>
389 <span class="indent">
390 Order Deny,Allow <br />
396 <p><code class="directive"><a href="../mod/core.html#location">Location</a></code> ve <code class="directive"><a href="../mod/core.html#directory">Directory</a></code> yönergelerinin etkileşimine de
397 özellikle önem vermelisiniz; örneğin <code><Directory /></code>
398 erişimi yasaklarken bir <code><Location /></code> yönergesi bunu
399 ortadan kaldırabilir.</p>
401 <p><code class="directive"><a href="../mod/mod_userdir.html#userdir">UserDir</a></code> yönergesi de size
402 buna benzer bir oyun oynayabilir; yönergeye <code>./</code> atamasını
403 yaparsanız, root kullanıcısı söz konusu olduğunda yukarıda ilk örnekteki
404 durumla karşılaşırız. Sunucu yapılandırma dosyanızda aşağıdaki satırın
405 mutlaka bulunmasını öneririz:</p>
407 <div class="example"><p><code>
408 UserDir disabled root
411 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
412 <div class="section">
413 <h2><a name="watchyourlogs" id="watchyourlogs">Günlüklerin İzlenmesi</a></h2>
416 <p>Sunucunuzda olup biteni günü gününe bilmek istiyorsanız <a href="../logs.html">günlük dosyalarına</a> bakmalısınız. Günlük dosyaları
417 sadece olup biteni raporlamakla kalmaz, sunucunuza ne tür saldırılar
418 yapıldığını ve güvenlik seviyenizin yeterli olup olmadığını anlamanızı da
421 <p>Bazı örnekler:</p>
423 <div class="example"><p><code>
424 grep -c "/jsp/source.jsp?/jsp/ /jsp/source.jsp??" access_log <br />
425 grep "client denied" error_log | tail -n 10
428 <p>İlk örnek, <a href="http://online.securityfocus.com/bid/4876/info/">Apache Tomcat Source.JSP Bozuk İstek Bilgilerini İfşa Açığı</a>nı
429 istismar etmeyi deneyen saldırıların sayısını verirken ikinci örnek,
430 reddedilen son on istemciyi listeler; örnek:</p>
432 <div class="example"><p><code>
433 [Thu Jul 11 17:18:39 2002] [error] [client foo.example.com] client denied
434 by server configuration: /usr/local/apache/htdocs/.htpasswd
437 <p>Gördüğünüz gibi günlük dosyaları sadece ne olup bittiğini raporlar, bu
438 bakımdan eğer istemci <code>.htpasswd</code> dosyasına erişebiliyorsa <a href="../logs.html#accesslog">erişim günlüğünüzde</a> şuna benzer bir
439 kayıt görürsünüz:</p>
441 <div class="example"><p><code>
442 foo.example.com - - [12/Jul/2002:01:59:13 +0200] "GET /.htpasswd HTTP/1.1"
445 <p>Bu, sunucu yapılandırma dosyanızda aşağıdaki yapılandırmayı iptal
446 ettiğiniz anlamına gelir:</p>
448 <div class="example"><p><code>
450 <span class="indent">
451 Order allow,deny <br />
456 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
457 <div class="section">
458 <h2><a name="merging" id="merging">Yapılandırma bölümlerinin birleştirilmesi</a></h2>
462 <p>Yapılandırma bölümlerinin birleştirilmesi karmaşık bir işlem olup bazı
463 durumlarda yönergelere bağlıdır. Yönergeleri bir araya getirirken
464 aralarındaki bağımlılıkları daima sınayın.</p>
466 <p><code class="directive">mod_access_compat</code> gibi henüz yönerge katıştırma
467 mantığını gerçeklememiş modüller için sonraki bölümlerdeki davranış, bu
468 modüllerin yönergelerini içerip içermemesine bağlıdır. Yapılandırmada
469 yönergelerin <em>yerleri değiştirildiğinde</em> fakat bir katıştırma
470 yapılmadığında, yapılandırma bir değişiklik yapılana kadar miras
473 <div class="bottomlang">
474 <p><span>Mevcut Diller: </span><a href="../en/misc/security_tips.html" hreflang="en" rel="alternate" title="English"> en </a> |
475 <a href="../fr/misc/security_tips.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
476 <a href="../ko/misc/security_tips.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
477 <a href="../tr/misc/security_tips.html" title="Türkçe"> tr </a></p>
478 </div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Yorum</a></h2><div class="warning"><strong>Notice:</strong><br />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 again 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 Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
479 <script type="text/javascript"><!--//--><![CDATA[//><!--
480 var comments_shortname = 'httpd';
481 var comments_identifier = 'http://httpd.apache.org/docs/trunk/misc/security_tips.html';
483 if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
484 d.write('<div id="comments_thread"><\/div>');
485 var s = d.createElement('script');
486 s.type = 'text/javascript';
488 s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
489 (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
492 d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
494 })(window, document);
495 //--><!]]></script></div><div id="footer">
496 <p class="apache">Copyright 2012 The Apache Software Foundation.<br /><a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> altında lisanslıdır.</p>
497 <p class="menu"><a href="../mod/">Modüller</a> | <a href="../mod/directives.html">Yönergeler</a> | <a href="http://wiki.apache.org/httpd/FAQ">SSS</a> | <a href="../glossary.html">Terimler</a> | <a href="../sitemap.html">Site Haritası</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
498 if (typeof(prettyPrint) !== 'undefined') {