]> granicus.if.org Git - apache/blob - docs/manual/misc/security_tips.html.tr.utf8
xforms
[apache] / docs / manual / misc / security_tips.html.tr.utf8
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
7       -->
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">
13 </script>
14
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="&lt;-" alt="&lt;-" src="../images/left.gif" /></a></div>
21 <div id="path">
22 <a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">HTTP Sunucusu</a> &gt; <a href="http://httpd.apache.org/docs/">Belgeleme</a> &gt; <a href="../">Sürüm 2.5</a> &gt; <a href="./">Çeşitli Belgeler</a></div><div id="page-content"><div id="preamble"><h1>Güvenlik İpuçları</h1>
23 <div class="toplang">
24 <p><span>Mevcut Diller: </span><a href="../en/misc/security_tips.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
25 <a href="../fr/misc/security_tips.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
26 <a href="../ko/misc/security_tips.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
27 <a href="../tr/misc/security_tips.html" title="Türkçe">&nbsp;tr&nbsp;</a></p>
28 </div>
29 <div class="outofdate">Bu çeviri güncel olmayabilir. Son değişiklikler için İngilizce sürüm geçerlidir.</div>
30
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>
33   </div>
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>
49 <div class="section">
50 <h2><a name="uptodate" id="uptodate">Güncel Tutma</a></h2>
51
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>
62
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>
68
69   </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
70 <div class="section">
71 <h2><a name="dos" id="dos">Hizmet Reddi (DoS) Saldırıları</a></h2>
72     
73
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>
78
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>
85
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>
88
89     <ul>
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>
93
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>
99
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>
103
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>
106
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>
114
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
119         olacaktır.</li>
120
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
123         bakabilirsiniz.</li>
124
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>
133
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
137         bulunabilir.</li>
138     </ul>
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>
142     
143
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>
154
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
162     </code></p></div>
163
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>
168
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
174     </code></p></div>
175
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>
180
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>
195     
196
197     <p>SSI sayfaları bir sunucu yöneticisi açısından çeşitli olası risklere
198       kaynaklık edebilir.</p>
199
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
203       gelebilir.</p>
204
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>
209
210     <p>SSI sayfalarının yararlı özelliklerinden yararlanırken güvenliğini de
211       arttırmanın bazı yolları vardır.</p>
212
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
216       kılabilir.</p>
217
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>
224
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>&lt;--#include virtual="..." --&gt;</code> ile bu
232       betikleri  çalıştırabileceklerine dikkat ediniz.</p>
233
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>
237     
238
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>
245
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>
253
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>
257     
258
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>
261
262     <ul>
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>
269     </ul>
270
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>
274     
275
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
281       olması şartıyla.</p>
282
283     <p>Çoğu site yöneticisi <code>ScriptAlias</code>’sız CGI yerine bu
284       yaklaşımı seçer.</p>
285
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>
289     
290
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>
299
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>
303     
304
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
315       başvurun.</p>
316
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>
321
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>
325     
326
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>
331
332     <p>Sunucu yapılandırma dosyanıza şunu yerleştirin:</p>
333
334     <div class="example"><p><code>
335       &lt;Directory /&gt;
336       <span class="indent">
337         AllowOverride None
338       </span>
339       &lt;/Directory&gt;
340     </code></p></div>
341
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ş
344       olursunuz.</p>
345
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>
349     
350
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>
355
356     <p>Örneğin, aşağıdaki durumu ele alalım:</p>
357
358     <div class="example"><p><code>
359       # cd /; ln -s / public_html
360     </code></p></div>
361
362     <p>Ve, tarayıcınıza <code>http://localhost/~root/</code> yazın.</p>
363
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>
367
368     <div class="example"><p><code>
369       &lt;Directory /&gt;
370       <span class="indent">
371         Order Deny,Allow <br />
372         Deny from all
373       </span>
374       &lt;/Directory&gt;
375     </code></p></div>
376
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>
380
381     <div class="example"><p><code>
382       &lt;Directory /usr/users/*/public_html&gt;
383       <span class="indent">
384         Order Deny,Allow <br />
385         Allow from all
386       </span>
387       &lt;/Directory&gt; <br />
388       &lt;Directory /usr/local/httpd&gt;
389       <span class="indent">
390         Order Deny,Allow <br />
391         Allow from all
392       </span>
393       &lt;/Directory&gt;
394     </code></p></div>
395
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>&lt;Directory /&gt;</code>
398       erişimi yasaklarken bir <code>&lt;Location /&gt;</code> yönergesi bunu
399       ortadan kaldırabilir.</p>
400
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>
406
407     <div class="example"><p><code>
408       UserDir disabled root
409     </code></p></div>
410
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>
414     
415
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
419       sağlarlar.</p>
420
421     <p>Bazı örnekler:</p>
422
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
426     </code></p></div>
427
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>
431
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
435     </code></p></div>
436
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>
440
441     <div class="example"><p><code>
442       foo.example.com - - [12/Jul/2002:01:59:13 +0200] "GET /.htpasswd HTTP/1.1"
443     </code></p></div>
444
445     <p>Bu, sunucu yapılandırma dosyanızda aşağıdaki yapılandırmayı iptal
446       ettiğiniz anlamına gelir:</p>
447
448     <div class="example"><p><code>
449       &lt;Files ".ht*"&gt;
450       <span class="indent">
451         Order allow,deny <br />
452         Deny from all
453       </span>
454       &lt;/Files&gt;
455     </code></p></div>
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>
459
460     
461
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>
465
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
471       alınır.</p>
472   </div></div>
473 <div class="bottomlang">
474 <p><span>Mevcut Diller: </span><a href="../en/misc/security_tips.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
475 <a href="../fr/misc/security_tips.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
476 <a href="../ko/misc/security_tips.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
477 <a href="../tr/misc/security_tips.html" title="Türkçe">&nbsp;tr&nbsp;</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&amp;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';
482 (function(w, d) {
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';
487         s.async = true;
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);
490     }
491     else {
492         d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
493     }
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') {
499     prettyPrint();
500 }
501 //--><!]]></script>
502 </body></html>