1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
|
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="tr" xml:lang="tr"><head><!--
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
This file is generated from xml source: DO NOT EDIT
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-->
<title>Apache ve DNS ile ilgili Konular - Apache HTTP Sunucusu</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 href="./images/favicon.ico" rel="shortcut icon" /></head>
<body id="manual-page"><div id="page-header">
<p class="menu"><a href="./mod/">Modüller</a> | <a href="./mod/directives.html">Yönergeler</a> | <a href="./faq/">SSS</a> | <a href="./glossary.html">Terimler</a> | <a href="./sitemap.html">Site Haritası</a></p>
<p class="apache">Apache HTTP Sunucusu Sürüm 2.0</p>
<img alt="" src="./images/feather.gif" /></div>
<div class="up"><a href="./"><img title="<-" alt="<-" src="./images/left.gif" /></a></div>
<div id="path">
<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.0</a></div><div id="page-content"><div id="preamble"><h1>Apache ve DNS ile ilgili Konular</h1>
<div class="toplang">
<p><span>Mevcut Diller: </span><a href="./en/dns-caveats.html" hreflang="en" rel="alternate" title="English"> en </a> |
<a href="./es/dns-caveats.html" hreflang="es" rel="alternate" title="Español"> es </a> |
<a href="./fr/dns-caveats.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
<a href="./ja/dns-caveats.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
<a href="./ko/dns-caveats.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
<a href="./tr/dns-caveats.html" title="Türkçe"> tr </a></p>
</div>
<p>Bu sayfanın konusu şöyle özetlenebilirdi: Yapılandırma dosyalarınızda
DNS sorguları yapılmasını gerektirecek ayarlamalardan kaçınınız. Eğer
yapılandırma dosyalarınızda DNS sorgusu yapılarak çözümlenebilecek
adresler bulunursa sunucunuz beklenmedik davranışlar (hiç
başlamayabilir) gösterebileceği gibi hizmet reddi veya hizmet
hırsızlığı (bazı kullanıcıların diğerlerine giden sayfaları çalma
olasılığı dahil) saldırılarına açık hale gelebilir.</p>
</div>
<div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#example">Basit Bir Örnek</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#denial">Hizmet Reddi</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#main">"Ana Sunucu" Adresi</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#tips">Bu Sorunlardan Kaçınmak için İpuçları</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#appendix">Ek: Ufuk Turu</a></li>
</ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="example" id="example">Basit Bir Örnek</a></h2>
<div class="example"><p><code>
<VirtualHost falan.fesmekan.dom>
<span class="indent">
ServerAdmin filanca@fesmekan.dom <br />
DocumentRoot /siteler/fesmekan
</span>
</VirtualHost>
</code></p></div>
<p>Apache’nin beklendiği gibi işlemesi için her sanal konak için iki
veriye mutlaka ihtiyacı vardır: <code class="directive"><a href="./mod/core.html#servername">ServerName</a></code> ve sunucunun bağlantı kabul edip hizmet
sunacağı en az bir IP adresi. Yukarıdaki örnekte IP adresi
bulunmamaktadır, dolayısıyla Apache, <code>falan.fesmekan.dom</code>
adresi için bir DNS sorgusu yapmak zorundadır. Eğer sunucu,
yapılandırma dosyasını çözümlediği sırada bir sebeple DNS sunucusuna
erişemezse bu sanal konak <em>yapılandırılmayacak</em> (hApache 1.2
öncesinde sunucu hiç başlatılmazdı) ve bu sanal konağa yapılan
isteklere yanıt verilemeyecektir.</p>
<p><code>falan.fesmekan.dom</code>’un 192.168.2.1 IP adresine sahip
olduğunu varsayarsak yapılandırma şöyle olurdu:</p>
<div class="example"><p><code>
<VirtualHost 192.168.2.1> <br />
<span class="indent">
ServerAdmin filanca@fesmekan.dom <br />
DocumentRoot /siteler/fesmekan
</span>
</VirtualHost>
</code></p></div>
<p>Ancak, bu sefer de bu sanal konağın sunucu ismini öğrenmek için
Apache’nin bir ters DNS sorgusu yapması gerekecektir. Eğer bu sorgu
başarısız olursa kısmi bir yapılandırmaya gidilir (Apache 1.2 öncesinde
sunucu hiç başlatılmazdı). Eğer sanal konak isme dayalı ise sanal konak
kısmen bile yapılandırılmaz. IP’ye dayalı sanal konaklar büyük oranda
çalışır, fakat sunucu ismini içeren tam bir adres üretilmesini
gerektiren bir durumda, sunucu geçerli bir adres üretemez.</p>
<p>Her iki sorunu da çözen yapılandırma şöyle olurdu:</p>
<div class="example"><p><code>
<VirtualHost 192.168.2.1> <br />
<span class="indent">
ServerName falan.fesmekan.dom <br />
ServerAdmin filanca@fesmekan.dom <br />
DocumentRoot /siteler/fesmekan
</span>
</VirtualHost>
</code></p></div>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="denial" id="denial">Hizmet Reddi</a></h2>
<p>Hizmet reddinin meydana gelebilecek (en az) iki türü vardır.
Apache’nin 1.2 öncesi bir sürümünü kullanıyorsanız sanal
konaklarınızdan herhangi biri için yukarıdaki iki sorgudan biri
başarısız olursa sunucunuzu asla başlatamazsınız. Bazı durumlarda, DNS
sorgularından alınacak yanıtlar sizin denetiminizde olmayabilir;
örneğin <code>fesmekan.dom</code> müşterilerinizden birine aitse ve
kendi DNS sunucuları varsa <code>falan.fesmekan.dom</code> kaydını
silerek sunucunuzun hiç başlatılamamasına (1.2 öncesi) sebep
olabilirler.</p>
<p>Diğer türü biraz daha sinsidir. Şöyle bir yapılandırmanız olsun:</p>
<div class="example"><p><code>
<VirtualHost falan.fesmekan.dom><br />
<span class="indent">
ServerAdmin filanca@fesmekan.dom <br />
DocumentRoot /siteler/fesmekan
</span>
</VirtualHost><br />
<br />
<VirtualHost misal.mesela.dom><br />
<span class="indent">
ServerAdmin falanca@mesela.dom<br />
DocumentRoot /siteler/mesela<br />
</span>
</VirtualHost>
</code></p></div>
<p><code>falan.fesmekan.dom</code>’a 192.168.2.1,
<code>misal.mesela.dom</code>’a 192.168.2.2 atadığınızı fakat,
<code>mesela.dom</code>’un DNS kaydının sizin denetiminizde olmadığını
varsayalım. Bu yapılandırmayla, <code>mesela.dom</code>’u
<code>fesmekan.dom</code>’a giden tüm trafiği çalabilecek duruma
getirirsiniz. Bunu gerçekleştirmek için DNS kaydında
<code>misal.mesela.dom</code>’a 192.168.2.1 adresinin atanması
yeterlidir. Kendi DNS’lerine sahip olduklarından dolayı
<code>misal.mesela.dom</code>’a istedikleri IP adresini atamaktan
onları alıkoyamazsınız.</p>
<p>192.168.2.1’e gelen isteklerin hepsine
(<code>http://falan.fesmekan.dom/biryer</code> şeklinde yazılan
adresler dahil) <code>mesela.dom</code> sanal konağınca hizmet
sunulacaktır. Apache’nin gelen istekleri sunduğu sanal konaklarla nasıl
eşleştirdiğini bilirseniz bunun sebebini kolayca anlarsınız. Bunu
kabataslak açıklayan <a href="vhosts/details.html">bir belgemiz
mevcuttur</a>.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="main" id="main">"Ana Sunucu" Adresi</a></h2>
<p>Apache 1.1’de <a href="vhosts/name-based.html">isme dayalı sanal konak
desteği</a>ne ek olarak, Apache’nin, <code class="program"><a href="./programs/httpd.html">httpd</a></code>’nin
çalıştığı makinenin IP adres(ler)ini de bilmeye ihtiyacı vardır. Bu
adresi elde etmek için sunucu, ya sunucu genelinde geçerli <code class="directive"><a href="./mod/core.html#servername">ServerName</a></code> yönergesine bakar ya da bir C
işlevi olan <code>gethostname</code>’i kullanır (işlev, komut
isteminden <code>hostname</code> komutuna dönen yanıtın aynısını
döndürür) ve ardından bu adresle ilgili olarak bir DNS sorgusu yapar.
Bu sorgudan kaçınmanın henüz bir yolu yoktur.</p>
<p>Eğer bu sorgunun (DNS sunucusunun çökmüş olması gibi bir nedenle)
başarısız olabileceğinden korkuyorsanız, makine ismini ve IP adresini
<code>/etc/hosts</code> dosyanıza yazabilirsiniz (Makinenizin düzgün
olarak açılabilmesi için zaten bu kaydı yapmış olmanız gerekir).
Kullandığınız işletim sistemine bağlı olarak bu kaydın
<code>/etc/resolv.conf</code> veya <code>/etc/nsswitch.conf</code>
dosyasında bulunması gerekebilir.</p>
<p>Herhangi bir nedenle sunucunuz bir DNS sorgusu yapmıyorsa veya
yapmamalıysa, Apache’yi <code>HOSTRESORDER</code> ortam değişkenine
"<code>local</code>" değerini atadıktan sonra çalıştırabilirsiniz. Bu
tamamen işletim sistemine ve kullandığınız çözümleyici kütüphanelere
bağlıdır. Ayrıca, ortamı denetlemek için <code class="module"><a href="./mod/mod_env.html">mod_env</a></code>
kullanmıyorsanız, CGI’ler de bundan etkilenir. En iyisi işletim
sisteminizin SSS belgelerini ve kılavuz sayfalarını okumaktır.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="tips" id="tips">Bu Sorunlardan Kaçınmak için İpuçları</a></h2>
<ul>
<li><code class="directive"><a href="./mod/core.html#virtualhost">VirtualHost</a></code> yönergelerinizde
IP adresleri kullanınız.</li>
<li><code class="directive"><a href="./mod/mpm_common.html#listen">Listen</a></code> yönergelerinizde
IP adresleri kullanınız.</li>
<li>Tüm sanal konakların ayrı birer <code class="directive"><a href="./mod/core.html#servername">ServerName</a></code> yönergesi olsun.</li>
<li>Hiçbir sayfa sunulmayan bir <code><VirtualHost
_default_:*></code> sanal konağınız olsun.</li>
</ul>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="appendix" id="appendix">Ek: Ufuk Turu</a></h2>
<p>DNS ile ilgili durum hiç de arzu edildiği gibi değildir. Apache 1.2
için, DNS sorguları başarısız olsa bile sunucunun başlatılabilmesini
sağlamaya çalıştık, fakat belki yapabildiğimizden daha da iyisi
mümkündür. Günümüz Genel Ağ’ında IP adresleri sık sık değiştiğinden
yapılandırma dosyasına doğrudan IP adresini yazma gerekliliği asla arzu
edilen davranış değildir.</p>
<p>Yukarıda nasıl yapıldığı açıklanan hizmet hırsızlığı saldırısına karşı
önlem olarak, normal sorgudan dönen IP adresine bir ters DNS sorgusu
yapıp bu iki sonucu karşılaştırmak ve eşleşmeme durumunda sanal konağı
iptal etmek bir çözüm olabilir. Fakat bunun mümkün olabilmesi için
uygun bir ters DNS kaydına ihtiyaç vardır. (FTP sunucuları ve TCP
sarmalayıcılar tarafından yapılan çifte ters DNS sorgusu kullanımından
dolayı çoğu ağ yöneticisi bu konuda zaten bilgi sahibidir.)</p>
<p>Her halükarda, IP adreslerinin kullanılmaması nedeniyle yapılan DNS
sorgularının başarısız olması durumunda sanal konaklı bir sunucuyu
düzgün bir şekilde başlatmak olası görünmektedir. Yapılandırmayı kısmen
iptal etmek gibi kısmi çözümler, sunucudan beklentinizin ne olduğuna
bağlı olarak sunucuyu hiç başlatmamaktan daha iyi olabilir.</p>
<p>HTTP/1.1’de belirtildiği gibi <code>Host</code> başlığını göndererek
işlem yapabilen tarayıcılar ve vekiller IP’ye dayalı sanal konak
kullanımını tamamen ortadan kaldırmanın mümkün olabileceğini
göstermektedir. Bu durumda yapılandırmanın çözümlenmesi aşamasında DNS
sorgusu yapma gereği kalmayacaktır. Fakat 1997 Mart’ından beri önemli
sunucular üzerinde bunların yeterince geniş bir uygulama alanı
bulmadığı görülmektedir.</p>
</div></div>
<div class="bottomlang">
<p><span>Mevcut Diller: </span><a href="./en/dns-caveats.html" hreflang="en" rel="alternate" title="English"> en </a> |
<a href="./es/dns-caveats.html" hreflang="es" rel="alternate" title="Español"> es </a> |
<a href="./fr/dns-caveats.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
<a href="./ja/dns-caveats.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
<a href="./ko/dns-caveats.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
<a href="./tr/dns-caveats.html" title="Türkçe"> tr </a></p>
</div><div id="footer">
<p class="apache">Copyright 2009 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>
<p class="menu"><a href="./mod/">Modüller</a> | <a href="./mod/directives.html">Yönergeler</a> | <a href="./faq/">SSS</a> | <a href="./glossary.html">Terimler</a> | <a href="./sitemap.html">Site Haritası</a></p></div>
</body></html>
|