blob: e2e6bfbbebb192ae00b6a194be5ad57dfddca33d [file]
<!DOCTYPE html SYSTEM "about:legacy-compat">
<html lang="tr"><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="width=device-width, initial-scale=1" name="viewport">
<!--
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
This file is generated from xml source: DO NOT EDIT
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-->
<title>G&uuml;venlik İpu&ccedil;ları - Apache HTTP Sunucusu S&uuml;r&uuml;m 2.5</title>
<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet">
<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size">
<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">
<script src="../style/scripts/prettify.min.js">
</script>
<link href="../images/favicon.png" rel="shortcut icon"></head>
<body id="manual-page"><div id="page-header">
<p class="menu"><a href="../mod/">Mod&uuml;ller</a> | <a href="../mod/quickreference.html">Y&ouml;nergeler</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">SSS</a> | <a href="../glossary.html">Terimler</a> | <a href="../sitemap.html">Site Haritası</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p>
<p class="apache">Apache HTTP Sunucusu S&uuml;r&uuml;m 2.5</p>
<img alt="" src="../images/feather.png"></div>
<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif"></a></div>
<div id="path">
<a href="https://www.apache.org/">Apache</a> &gt; <a href="https://httpd.apache.org/">HTTP Sunucusu</a> &gt; <a href="https://httpd.apache.org/docs/">Belgeleme</a> &gt; <a href="../">S&uuml;r&uuml;m 2.5</a> &gt; <a href="./">&Ccedil;eşitli Belgeler</a></div><div id="page-content"><div id="preamble"><h1>G&uuml;venlik İpu&ccedil;ları</h1>
<button aria-label="Toggle language list" class="lang-toggle"><svg xmlns="http://www.w3.org/2000/svg" stroke-width="2" stroke="currentColor" fill="none" viewBox="0 0 24 24" height="16" width="16"><circle r="10" cy="12" cx="12"/><line y2="12" x2="22" y1="12" x1="2"/><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/></svg></button>
<div class="toplang">
<p><span>Mevcut Diller: </span><a href="../en/misc/security_tips.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../es/misc/security_tips.html" hreflang="es" rel="alternate" title="Espa&ntilde;ol">&nbsp;es&nbsp;</a> |
<a href="../fr/misc/security_tips.html" hreflang="fr" rel="alternate" title="Fran&ccedil;ais">&nbsp;fr&nbsp;</a> |
<a href="../ko/misc/security_tips.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="../tr/misc/security_tips.html" title="T&uuml;rk&ccedil;e">&nbsp;tr&nbsp;</a></p>
</div>
<div class="outofdate">Bu &ccedil;eviri g&uuml;ncel olmayabilir. Son değişiklikler i&ccedil;in İngilizce s&uuml;r&uuml;m ge&ccedil;erlidir.</div>
<p>Bir HTTP Sunucusunu ayarlarken dikkat edilmesi gerekenler ve bazı
ipu&ccedil;ları. &Ouml;neriler kısmen Apache'ye &ouml;zel kısmen de genel olacaktır.</p>
</div>
<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif"> <a href="#uptodate">G&uuml;ncel Tutma</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#dos">Hizmet Reddi (DoS) Saldırıları</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#serverroot"><code>ServerRoot</code> Dizinlerinin İzinleri</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#ssi">Sunucu Taraflı İ&ccedil;erik Yerleştirme</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#cgi">CGI Genelinde</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#nsaliasedcgi"><code>ScriptAlias</code>'sız CGI</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#saliasedcgi"><code>ScriptAlias</code>'lı CGI</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#dynamic">Devingen i&ccedil;erikli kaynaklar</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#dynamicsec">Devingen i&ccedil;eriğin g&uuml;venliği</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#systemsettings">Sistem Ayarlarının Korunması</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#protectserverfiles">Sunucu dosyalarının &ouml;ntanımlı olarak korunması</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#watchyourlogs">G&uuml;nl&uuml;klerin İzlenmesi</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#merging">Yapılandırma b&ouml;l&uuml;mlerinin birleştirilmesi</a></li>
</ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="uptodate">G&uuml;ncel Tutma <a title="Permanent link" href="#uptodate" class="permalink">&para;</a></h2>
<p>Apache HTTP Sunucusu iyi bir g&uuml;venlik sicilinin yanında g&uuml;venlik
konularıyla olduk&ccedil;a ilgili bir geliştirici topluluğuna sahiptir. Fakat,
bir yazılımın dağıtılmasının ardından k&uuml;&ccedil;&uuml;k ya da b&uuml;y&uuml;k bazı sorunların
keşfedilmesi ka&ccedil;ınılmazdır. Bu sebeple, yazılım g&uuml;ncellemelerinden
haberdar olmak olduk&ccedil;a &ouml;nem kazanır. HTTP sunucunuzu doğrudan
Apache'den temin ediyorsanız yeni s&uuml;r&uuml;mler ve g&uuml;venlik g&uuml;ncellemeleri
ile ilgili bilgileri tam zamanında alabilmek i&ccedil;in <a href="http://httpd.apache.org/lists.html#http-announce">Apache
HTTP Sunucusu Duyuru Listesi</a>ne mutlaka &uuml;ye olmanızı &ouml;neririz.
Apache yazılımının &uuml;&ccedil;&uuml;nc&uuml; parti dağıtımlarını yapanların da buna benzer
hizmetleri vardır.</p>
<p>Ş&uuml;phesiz, bir HTTP sunucusu, sunucu kodunda bir sorun olmasa da
tehlike altındadır. Eklenti kodları, CGI betikleri hatta işletim
sisteminden kaynaklanan sorunlar nedeniyle bu ortaya &ccedil;ıkabilir. Bu
bakımdan, sisteminizdeki t&uuml;m yazılımların sorunları ve g&uuml;ncellemeleri
hakkında bilgi sahibi olmalısınız.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="dos">Hizmet Reddi (DoS) Saldırıları <a title="Permanent link" href="#dos" class="permalink">&para;</a></h2>
<p>T&uuml;m ağ sunucuları, istemcilerin sistem kaynaklarından yararlanmalarını
engellemeye &ccedil;alışan hizmet reddi saldırılarına (HRS) maruz kalabilir.
Bu t&uuml;r saldırıları tamamen engellemek m&uuml;mk&uuml;n değildir, fakat
yarattıkları sorunları azaltmak i&ccedil;in bazı şeyler yapabilirsiniz.</p>
<p>&Ccedil;oğunlukla en etkili anti-HRS aracı bir g&uuml;venlik duvarı veya başka bir
işletim sistemi yapılandırmasıdır. &Ouml;rneğin, &ccedil;oğu g&uuml;venlik duvarı
herhangi bir IP adresinden aynı anda yapılan bağlantıların sayısına bir
sınırlama getirmek &uuml;zere yapılandırılabilir. B&ouml;ylece basit saldırılar
engellenebilir. Ancak bunun dağıtık hizmet reddi saldırılarına (DHRS)
karşı bir etkisi olmaz.</p>
<p>Bunların yanında Apache HTTP Sunucusunun da sorunları azaltıcı
tedbirler alınmasını sağlayacak bazı yapılandırmaları vardır:</p>
<ul>
<li><code class="directive"><a href="../mod/mod_reqtimeout.html#requestreadtimeout">RequestReadTimeout</a></code>
y&ouml;nergesi bir istemcinin isteği g&ouml;ndermek i&ccedil;in harcadığı zamanı
sınırlamayı sağlar.</li>
<li>HRS'ye maruz kalması olası sitelerde <code class="directive"><a href="../mod/core.html#timeout">TimeOut</a></code> y&ouml;nergesinin değeri d&uuml;ş&uuml;r&uuml;lmelidir. Birka&ccedil;
saniye gibi m&uuml;mk&uuml;n olduğunca d&uuml;ş&uuml;k bir ayar uygun olabilir. Ancak
<code class="directive"><a href="../mod/core.html#timeout">TimeOut</a></code> başka işlemlerde de
kullanıldığından &ccedil;ok d&uuml;ş&uuml;k değerler, &ouml;rneğin, uzun s&uuml;re &ccedil;alışan CGI
betiklerinde sorunlar &ccedil;ıkmasına sebep olabilir.</li>
<li>HRS'ye maruz kalması olası sitelerde <code class="directive"><a href="../mod/core.html#keepalivetimeout">KeepAliveTimeout</a></code> y&ouml;nergesinin değeri de d&uuml;ş&uuml;r&uuml;lebilir.
Hatta bazı siteler başarımı arttırmak amacıyla <code class="directive"><a href="../mod/core.html#keepalive">KeepAlive</a></code> y&ouml;nergesi &uuml;zerinden kalıcı
bağlantıları tamamen kapatabilirler.</li>
<li>Zaman aşımıyla ilgili y&ouml;nergeler bakımından diğer mod&uuml;ller de
araştırılmalıdır.</li>
<li><code class="directive"><a href="../mod/core.html#limitrequestbody">LimitRequestBody</a></code>,
<code class="directive"><a href="../mod/core.html#limitrequestfields">LimitRequestFields</a></code>,
<code class="directive"><a href="../mod/core.html#limitrequestfieldsize">LimitRequestFieldSize</a></code>,
<code class="directive"><a href="../mod/core.html#limitrequestline">LimitRequestLine</a></code> ve
<code class="directive"><a href="../mod/core.html#limitxmlrequestbody">LimitXMLRequestBody</a></code> y&ouml;nergeleri,
istemci girdileri ile tetiklenen &ouml;zkaynak t&uuml;ketimini sınırlamak i&ccedil;in
yapılandırılırken dikkatli olunmalıdır.</li>
<li>İşletim sisteminiz desteklediği takdirde, işletim sisteminin isteği
işleyen kısmını y&uuml;ks&uuml;z bırakmak i&ccedil;in <code class="directive"><a href="../mod/core.html#acceptfilter">AcceptFilter</a></code> y&ouml;nergesinin etkin olmasını sağlamalısınız.
Bu, Apache HTTP Sunucusunda zaten &ouml;ntanımlı olarak etkindir.
Yapacağınız şey işletim sistemi &ccedil;ekirdeğini buna g&ouml;re yapılandırmak
olacaktır.</li>
<li>Sunucu tarafından &ouml;zkaynakları t&uuml;ketmeden aynı anda işlenebilecek
bağlantıların sayısını sınırlamak i&ccedil;in <code class="directive"><a href="../mod/mpm_common.html#maxrequestworkers">MaxRequestWorkers</a></code> y&ouml;nergesini kullanın. Ayrıca, <a href="perf-tuning.html">başarım arttırma belgesine</a> de
bakabilirsiniz.</li>
<li>HRS'lerin etkilerini azaltmak i&ccedil;in aynı andaki bağlantı sayısını
arttırabilecek evreli <a href="../mpm.html">MPM</a>'lerden birini
kullanmak iyi olabilir. Dahası, <code class="module"><a href="../mod/event.html">event</a></code> MPM'i
her bağlantıya yeni bir evre atanmaması i&ccedil;in eşzamansız işlem yapar.
OpenSSL k&uuml;t&uuml;phanesinin doğası nedeniyle
<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
s&uuml;zge&ccedil;leri ile hen&uuml;z uyumlu değildir. Bu durumlarda,
<code class="module"><a href="../mod/worker.html">worker</a></code> MPM'inin davranışına geri d&ouml;ner.</li>
<li><a href="http://modules.apache.org/">http://modules.apache.org/</a>
adresinde, belli istemci davranışlarını sınırlayacak ve HRS ile
ilgili sorunları azaltmaya yardımcı olacak &uuml;&ccedil;&uuml;nc&uuml; parti mod&uuml;ller
bulunabilir.</li>
</ul>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="serverroot"><code>ServerRoot</code> Dizinlerinin İzinleri <a title="Permanent link" href="#serverroot" class="permalink">&para;</a></h2>
<p>Normalde, Apache root kullanıcı tarafından başlatılır ve hizmetleri
sunarken <code class="directive"><a href="../mod/mod_unixd.html#user">User</a></code> y&ouml;nergesi
tarafından tanımlanan kullanıcının aidiyetinde &ccedil;alışır. Root tarafından
&ccedil;alıştırılan komutlarda olduğu gibi, root olmayan kullanıcıların
yapacakları değişikliklerden korunmak konusunda da dikkatli
olmalısınız. Dosyaların sadece root tarafından yazılabilir olmasını
sağlamak yeterli değildir, bu dizinler ve &uuml;st dizinler i&ccedil;in de
yapılmalıdır. &Ouml;rneğin, sunucu k&ouml;k dizininin
<code>/usr/local/apache</code> olmasına karar verdiyseniz, bu dizini
root olarak ş&ouml;yle oluşturmanız &ouml;nerilir:</p>
<div class="example"><p><code>
mkdir /usr/local/apache <br>
cd /usr/local/apache <br>
mkdir bin conf logs <br>
chown 0 . bin conf logs <br>
chgrp 0 . bin conf logs <br>
chmod 755 . bin conf logs
</code></p></div>
<p><code>/</code>, <code>/usr</code>, <code>/usr/local</code>
dizinlerinde sadece root tarafından değişiklik yapılabileceği kabul
edilir. <code class="program"><a href="../programs/httpd.html">httpd</a></code> &ccedil;alıştırılabilirini kurarken de benzer
bir &ouml;nlemin alındığından emin olmalısınız:</p>
<div class="example"><p><code>
cp httpd /usr/local/apache/bin <br>
chown 0 /usr/local/apache/bin/httpd <br>
chgrp 0 /usr/local/apache/bin/httpd <br>
chmod 511 /usr/local/apache/bin/httpd
</code></p></div>
<p>Diğer kullanıcıların değişiklik yapabileceği bir dizin olarak bir
<code>htdocs</code> dizini oluşturabilirsiniz. Bu dizine root
tarafından &ccedil;alıştırılabilecek dosyalar konulmamalı ve burada root
tarafından hi&ccedil;bir dosya oluşturulmamalıdır.</p>
<p>Diğer kullanıcılara root tarafından yazılabilen ve &ccedil;alıştırılabilen
dosyalarda değişiklik yapma hakkını tanırsanız, onlara root
kullanıcısını ele ge&ccedil;irilebilme hakkını da tanımış olursunuz. &Ouml;rneğin,
biri <code class="program"><a href="../programs/httpd.html">httpd</a></code> &ccedil;alıştırılabilirini zararlı bir programla
değiştirebilir ve o programı tekrar &ccedil;alıştırdığınız sırada program
yapacağını yapmış olur. G&uuml;nl&uuml;kleri kaydettiğiniz dizin herkes
tarafından yazılabilen bir dizin olduğu takdirde, birileri bir g&uuml;nl&uuml;k
dosyasını bir sistem dosyasına sembolik bağ haline getirerek root
kullanıcısının bu dosyaya ilgisiz şeyler yazmasına sebep olabilir.
G&uuml;nl&uuml;klerin dosyaları herkes tarafından yazılabilir olduğu takdirde ise
birileri dosyaya yanıltıcı veriler girebilir.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="ssi">Sunucu Taraflı İ&ccedil;erik Yerleştirme <a title="Permanent link" href="#ssi" class="permalink">&para;</a></h2>
<p>SSI sayfaları bir sunucu y&ouml;neticisi a&ccedil;ısından &ccedil;eşitli olası risklere
kaynaklık edebilir.</p>
<p>İlk risk, sunucu y&uuml;k&uuml;ndeki artış olasılığıdır. T&uuml;m SSI sayfaları, SSI
kodu i&ccedil;ersin i&ccedil;ermesin Apache tarafından &ccedil;&ouml;z&uuml;mlenir. Bu k&uuml;&ccedil;&uuml;k bir artış
gibi g&ouml;r&uuml;n&uuml;rse de bir paylaşımlı sunucu ortamında &ouml;nemli bir y&uuml;k haline
gelebilir.</p>
<p>SSI sayfaları, CGI betikleriyle ilgili riskleri de taşır. <code>exec
cmd</code> elemanı kullanılarak bir SSI sayfasından herhangi bir CGI
betiğini veya bir sistem programını Apache'nin aidiyetinde olduğu
kullanıcının yetkisiyle &ccedil;alıştırmak m&uuml;mk&uuml;nd&uuml;r.</p>
<p>SSI sayfalarının yararlı &ouml;zelliklerinden yararlanırken g&uuml;venliğini de
arttırmanın bazı yolları vardır.</p>
<p>Sunucu y&ouml;neticisi, bir başıbozuk SSI sayfasının sebep olabileceği
zararları bertaraf etmek i&ccedil;in <a href="#cgi">CGI Genelinde</a>
b&ouml;l&uuml;m&uuml;nde a&ccedil;ıklandığı gibi <a href="../suexec.html">suexec</a>'i etkin
kılabilir.</p>
<p>SSI sayfalarını <code>.html</code> veya <code>.htm</code>
uzantılarıyla etkinleştirmek tehlikeli olabilir. Bu &ouml;zellikle
paylaşımlı ve y&uuml;ksek trafikli bir sunucu ortamında &ouml;nemlidir. SSI
sayfalarını normal sayfalardan farklı olarak <code>.shtml</code> gibi
bildik bir uzantıyla etkinleştirmek gerekir. Bu, sunucu y&uuml;k&uuml;n&uuml; asgari
d&uuml;zeyde tutmaya ve risk y&ouml;netimini kolaylaştırmaya yarar.</p>
<p>Diğer bir &ccedil;&ouml;z&uuml;m de SSI sayfalarından betik ve program &ccedil;alıştırmayı
iptal etmektir. Bu, <code class="directive"><a href="../mod/core.html#options">Options</a></code>
y&ouml;nergesine değer olarak <code>Includes</code> yerine
<code>IncludesNOEXEC</code> vererek sağlanır. Ancak, eğer betiklerin
bulunduğu dizinde <code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code>
y&ouml;nergesiyle CGI betiklerinin &ccedil;alışması m&uuml;mk&uuml;n kılınmışsa,
kullanıcıların <code>&lt;--#include virtual="..." --&gt;</code> ile bu
betikleri &ccedil;alıştırabileceklerine dikkat ediniz.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="cgi">CGI Genelinde <a title="Permanent link" href="#cgi" class="permalink">&para;</a></h2>
<p>Herşeyden &ouml;nce ya CGI betiğini/programını yazanlara ya da kendinizin
CGI'deki g&uuml;venlik a&ccedil;ıklarını (ister kasıtlı olsun ister tesad&uuml;fi)
yakalama becerinize g&uuml;venmek zorundasınız. CGI betikleri esasen
sisteminizdeki komutları site kullanıcılarının izinleriyle
&ccedil;alıştırırlar. Bu bakımdan dikkatle denenmedikleri takdirde olduk&ccedil;a
tehlikeli olabilirler.</p>
<p>CGI betiklerinin hepsi aynı kullanıcının aidiyetinde &ccedil;alışırsa diğer
betiklerle aralarında &ccedil;elişkilerin ortaya &ccedil;ıkması ister istemez
ka&ccedil;ınılmazdır. &Ouml;rneğin A kullanıcısının B kullanıcısına garezi varsa
bir betik yazıp B'nin CGI veritabanını silebilir. Bu gibi durumların
ortaya &ccedil;ıkmaması i&ccedil;in betiklerin farklı kullanıcıların aidiyetlerinde
&ccedil;alışmasını sağlayan ve 1.2 s&uuml;r&uuml;m&uuml;nden beri Apache ile dağıtılan <a href="../suexec.html">suEXEC</a> diye bir program vardır. Başka bir yol
da <a href="http://cgiwrap.sourceforge.net/">CGIWrap</a> kullanmaktır.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="nsaliasedcgi"><code>ScriptAlias</code>'sız CGI <a title="Permanent link" href="#nsaliasedcgi" class="permalink">&para;</a></h2>
<p>Kullanıcıların sitenin her yerinde CGI betiklerini &ccedil;alıştırmalarına
izin vermek ancak şu koşullarda m&uuml;mk&uuml;n olabilir:</p>
<ul>
<li>Kullanıcılarınızın kasıtlı ya da kasıtsız sistemi saldırıya a&ccedil;ık
hale getirecek betikler yazmayacaklarına tam g&uuml;veniniz vardır.</li>
<li>Sitenizin g&uuml;venliği zaten o kadar k&ouml;t&uuml;d&uuml;r ki, bir delik daha
a&ccedil;ılmasının mahzuru yoktur.</li>
<li>Sitenizin sizden başka kullanıcısı yoktur ve sunucunuzu sizden
başka hi&ccedil; kimsenin ziyaret etmesi m&uuml;mk&uuml;n değildir.</li>
</ul>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="saliasedcgi"><code>ScriptAlias</code>'lı CGI <a title="Permanent link" href="#saliasedcgi" class="permalink">&para;</a></h2>
<p>CGI'yi belli dizinlerle sınırlamak y&ouml;neticiye bu dizinlerde daha iyi
denetim imkanı sağlar. Bu ka&ccedil;ınılmaz olarak <code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code>'sız CGI'den &ccedil;ok daha
g&uuml;venlidir, ancak bu dizinlere yazma hakkı olan kullanıcılarınız
g&uuml;venilir kişiler olması ve site y&ouml;neticisinin de olası g&uuml;venlik
a&ccedil;ıklarına karşı CGI betiklerini ve programlarını denemeye istekli
olması şartıyla.</p>
<p>&Ccedil;oğu site y&ouml;neticisi <code>ScriptAlias</code>'sız CGI yerine bu
yaklaşımı se&ccedil;er.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="dynamic">Devingen i&ccedil;erikli kaynaklar <a title="Permanent link" href="#dynamic" class="permalink">&para;</a></h2>
<p>Sunucunun bir par&ccedil;ası gibi &ccedil;alışan, <code>mod_php</code>,
<code>mod_perl</code>, <code>mod_tcl</code> ve <code>mod_python</code>
gibi g&ouml;m&uuml;l&uuml; betik &ccedil;alıştırma se&ccedil;enekleri sunucuyu &ccedil;alıştıran
kullanıcının aidiyetinde &ccedil;alışırlar (<code class="directive"><a href="../mod/mod_unixd.html#user">User</a></code> y&ouml;nergesine bakınız). Bu bakımdan bu betik
yorumlayıcılar tarafından &ccedil;alıştırılan betikler, sunucu kullanıcısının
eriştiği herşeye erişebilirler. Bazı betik yorumlayıcıların getirdiği
bazı sınırlamalar varsa da bunlara pek g&uuml;venmemek, gerekli sınamaları
yine de yapmak gerekir.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="dynamicsec">Devingen i&ccedil;eriğin g&uuml;venliği <a title="Permanent link" href="#dynamicsec" class="permalink">&para;</a></h2>
<p><code>mod_php</code>, <code>mod_perl</code> veya
<code>mod_python</code> gibi devingen i&ccedil;eriği yapılandırırken
g&uuml;venlikle ilgili değerlendirmelerin &ccedil;oğu <code>httpd</code>'nin
kapsamından &ccedil;ıkar ve bu mod&uuml;llerin belgelerini incelemek ihtiyacı
duyarsınız. &Ouml;rneğin, PHP &ccedil;oğu zaman kapalı tutulan
<a href="http://www.php.net/manual/en/ini.sect.safe-mode.php">G&uuml;venli
Kip</a> ayarını etkin kılmanızı &ouml;nerir. Daha fazla g&uuml;venlik i&ccedil;in bir
diğer &ouml;rnek bir PHP eklentisi olan
<a href="http://www.hardened-php.net/suhosin/">Suhosin</a>'dir. Bunlar
hakkında daha ayrıntılı bilgi i&ccedil;in her projenin kendi belgelerine
başvurun.</p>
<p>Apache seviyesinde, <a href="http://modsecurity.org/">mod_security</a>
adı verilen mod&uuml;l&uuml; bir HTTP g&uuml;venlik duvarı gibi ele alabilir, devingen
i&ccedil;eriğin g&uuml;venliğini arttırmanıza yardımcı olmak &uuml;zere inceden inceye
yapılandırabilirsiniz.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="systemsettings">Sistem Ayarlarının Korunması <a title="Permanent link" href="#systemsettings" class="permalink">&para;</a></h2>
<p>G&uuml;venliği ger&ccedil;ekten sıkı tutmak istiyorsanız, kullanıcılarınızın
yapılandırmanızdaki g&uuml;venlik ayarlarını ge&ccedil;ersiz kılmak i&ccedil;in
<code>.htaccess</code> dosyalarını kullanabilmelerinin de &ouml;n&uuml;ne
ge&ccedil;melisiniz. Bunu yapmanın tek bir yolu vardır.</p>
<p>Sunucu yapılandırma dosyanıza şunu yerleştirin:</p>
<div class="example"><p><code>
&lt;Directory /&gt;
<span class="indent">
AllowOverride None
</span>
&lt;/Directory&gt;
</code></p></div>
<p>B&ouml;ylece, belli dizinlerde &ouml;zellikle etkinleştirilmedik&ccedil;e b&uuml;t&uuml;n
dizinlerde <code>.htaccess</code> dosyalarının kullanımını engellemiş
olursunuz.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="protectserverfiles">Sunucu dosyalarının &ouml;ntanımlı olarak korunması <a title="Permanent link" href="#protectserverfiles" class="permalink">&para;</a></h2>
<p>Apache'nin ister istemez yanlış anlaşılan y&ouml;nlerinden biri &ouml;ntanımlı
erişim &ouml;zelliğidir. Yani siz aksine bir şeyler yapmadık&ccedil;a, sunucu normal
URL eşleme kurallarını kullanarak bir dosyayı bulabildiği s&uuml;rece onu
istemciye sunacaktır.</p>
<p>&Ouml;rneğin, aşağıdaki durumu ele alalım:</p>
<div class="example"><p><code>
# cd /; ln -s / public_html
</code></p></div>
<p>Ve, tarayıcınıza <code>http://localhost/~root/</code> yazın.</p>
<p>B&ouml;ylece, istemcilerin t&uuml;m dosya sisteminizi gezmelerine izin vermiş
olursunuz. Bu işlemin sonu&ccedil;larının &ouml;n&uuml;n&uuml; almak i&ccedil;in sunucu yapılandırma
dosyanıza şunları yazın:</p>
<div class="example"><p><code>
&lt;Directory /&gt;
<span class="indent">
Order Deny,Allow <br>
Deny from all
</span>
&lt;/Directory&gt;
</code></p></div>
<p>Bu suretle, dosya sisteminize &ouml;ntanımlı erişimi yasaklamış olursunuz.
Erişime izin vermek istediğiniz dizinler i&ccedil;in uygun <code class="directive"><a href="../mod/core.html#directory">Directory</a></code> b&ouml;l&uuml;mleri eklemeniz yeterli
olacaktır. &Ouml;rnek:</p>
<div class="example"><p><code>
&lt;Directory /usr/users/*/public_html&gt;
<span class="indent">
Order Deny,Allow <br>
Allow from all
</span>
&lt;/Directory&gt; <br>
&lt;Directory /usr/local/httpd&gt;
<span class="indent">
Order Deny,Allow <br>
Allow from all
</span>
&lt;/Directory&gt;
</code></p></div>
<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&ouml;nergelerinin etkileşimine de
&ouml;zellikle &ouml;nem vermelisiniz; &ouml;rneğin <code>&lt;Directory /&gt;</code>
erişimi yasaklarken bir <code>&lt;Location /&gt;</code> y&ouml;nergesi bunu
ortadan kaldırabilir.</p>
<p><code class="directive"><a href="../mod/mod_userdir.html#userdir">UserDir</a></code> y&ouml;nergesi de size
buna benzer bir oyun oynayabilir; y&ouml;nergeye <code>./</code> atamasını
yaparsanız, root kullanıcısı s&ouml;z konusu olduğunda yukarıda ilk &ouml;rnekteki
durumla karşılaşırız. Sunucu yapılandırma dosyanızda aşağıdaki satırın
mutlaka bulunmasını &ouml;neririz:</p>
<div class="example"><p><code>
UserDir disabled root
</code></p></div>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="watchyourlogs">G&uuml;nl&uuml;klerin İzlenmesi <a title="Permanent link" href="#watchyourlogs" class="permalink">&para;</a></h2>
<p>Sunucunuzda olup biteni g&uuml;n&uuml; g&uuml;n&uuml;ne bilmek istiyorsanız <a href="../logs.html">g&uuml;nl&uuml;k dosyalarına</a> bakmalısınız. G&uuml;nl&uuml;k dosyaları
sadece olup biteni raporlamakla kalmaz, sunucunuza ne t&uuml;r saldırılar
yapıldığını ve g&uuml;venlik seviyenizin yeterli olup olmadığını anlamanızı da
sağlarlar.</p>
<p>Bazı &ouml;rnekler:</p>
<div class="example"><p><code>
grep -c "/jsp/source.jsp?/jsp/ /jsp/source.jsp??" access_log <br>
grep "client denied" error_log | tail -n 10
</code></p></div>
<p>İlk &ouml;rnek, <a href="http://online.securityfocus.com/bid/4876/info/">Apache Tomcat Source.JSP Bozuk İstek Bilgilerini İfşa A&ccedil;ığı</a>nı
istismar etmeyi deneyen saldırıların sayısını verirken ikinci &ouml;rnek,
reddedilen son on istemciyi listeler; &ouml;rnek:</p>
<div class="example"><p><code>
[Thu Jul 11 17:18:39 2002] [error] [client foo.example.com] client denied
by server configuration: /usr/local/apache/htdocs/.htpasswd
</code></p></div>
<p>G&ouml;rd&uuml;ğ&uuml;n&uuml;z gibi g&uuml;nl&uuml;k dosyaları sadece ne olup bittiğini raporlar, bu
bakımdan eğer istemci <code>.htpasswd</code> dosyasına erişebiliyorsa <a href="../logs.html#accesslog">erişim g&uuml;nl&uuml;ğ&uuml;n&uuml;zde</a> şuna benzer bir
kayıt g&ouml;r&uuml;rs&uuml;n&uuml;z:</p>
<div class="example"><p><code>
foo.example.com - - [12/Jul/2002:01:59:13 +0200] "GET /.htpasswd HTTP/1.1"
</code></p></div>
<p>Bu, sunucu yapılandırma dosyanızda aşağıdaki yapılandırmayı iptal
ettiğiniz anlamına gelir:</p>
<div class="example"><p><code>
&lt;Files ".ht*"&gt;
<span class="indent">
Order allow,deny <br>
Deny from all
</span>
&lt;/Files&gt;
</code></p></div>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="merging">Yapılandırma b&ouml;l&uuml;mlerinin birleştirilmesi <a title="Permanent link" href="#merging" class="permalink">&para;</a></h2>
<p>Yapılandırma b&ouml;l&uuml;mlerinin birleştirilmesi karmaşık bir işlem olup bazı
durumlarda y&ouml;nergelere bağlıdır. Y&ouml;nergeleri bir araya getirirken
aralarındaki bağımlılıkları daima sınayın.</p>
<p><code class="directive">mod_access_compat</code> gibi hen&uuml;z y&ouml;nerge katıştırma
mantığını ger&ccedil;eklememiş mod&uuml;ller i&ccedil;in sonraki b&ouml;l&uuml;mlerdeki davranış, bu
mod&uuml;llerin y&ouml;nergelerini i&ccedil;erip i&ccedil;ermemesine bağlıdır. Yapılandırmada
y&ouml;nergelerin <em>yerleri değiştirildiğinde</em> fakat bir katıştırma
yapılmadığında, yapılandırma bir değişiklik yapılana kadar miras
alınır.</p>
</div></div>
<div class="bottomlang">
<p><span>Mevcut Diller: </span><a href="../en/misc/security_tips.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../es/misc/security_tips.html" hreflang="es" rel="alternate" title="Espa&ntilde;ol">&nbsp;es&nbsp;</a> |
<a href="../fr/misc/security_tips.html" hreflang="fr" rel="alternate" title="Fran&ccedil;ais">&nbsp;fr&nbsp;</a> |
<a href="../ko/misc/security_tips.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="../tr/misc/security_tips.html" title="T&uuml;rk&ccedil;e">&nbsp;tr&nbsp;</a></p>
</div><div id="footer">
<p class="apache">Copyright 2026 The Apache Software Foundation.<br><a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> adı altında lisanslıdır.</p>
<p class="menu"><a href="../mod/">Mod&uuml;ller</a> | <a href="../mod/quickreference.html">Y&ouml;nergeler</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">SSS</a> | <a href="../glossary.html">Terimler</a> | <a href="../sitemap.html">Site Haritası</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p></div><script><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
prettyPrint();
}
var langToggle = document.querySelector('.lang-toggle');
var topLang = document.querySelector('.toplang');
if (langToggle && topLang) {
langToggle.addEventListener('click', function() { topLang.classList.toggle('open'); });
}
var qv = document.getElementById('quickview');
if (qv) {
document.body.appendChild(qv);
var qvBtn = document.createElement('button');
qvBtn.className = 'qv-toggle';
qvBtn.setAttribute('aria-label', 'Toggle page navigation');
qvBtn.innerHTML = '&#9776;';
document.body.appendChild(qvBtn);
qvBtn.addEventListener('click', function() {
var isOpen = qv.classList.toggle('open');
if (isOpen) {
qv.style.top = window.scrollY + 10 + 'px';
}
});
window.addEventListener('scroll', function() { qv.classList.remove('open'); });
}
//--><!]]></script>
</body></html>