Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
tree: 8d89273e47
Fetching contributors…

Octocat-spinner-32-eaf2f5

Cannot retrieve contributors at this time

file 188 lines (158 sloc) 8.321 kb
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
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.tr.xsl"?>
<!-- English Revision: 1174747:1332626 (outdated) -->
<!-- =====================================================
 Translated by: Nilgün Belma Bugüner <nilgun belgeler.org>
   Reviewed by: Orhan Berent <berent belgeler.org>
========================================================== -->

<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements. See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
 The ASF licenses this file to You under the Apache License, Version 2.0
 (the "License"); you may not use this file except in compliance with
 the License. You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
-->

<manualpage metafile="dns-caveats.xml.meta">

  <title>Apache HTTP Sunucusu ve DNS ile ilgili Konular</title>

  <summary>
    <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ı sanal konakların diğerlerine giden sayfaları çalma
      olasılığı dahil) saldırılarına açık hale gelebilir.</p>
  </summary>

  <section id="example">
    <title>Basit Bir Örnek</title>

    <example>
      # Bu yetersiz bir yapılandırma örneğidir, sunucunuzda kullanmayın. <br />
      &lt;VirtualHost falan.fesmekan.dom&gt;
      <indent>
        ServerAdmin filanca@fesmekan.dom <br />
        DocumentRoot /siteler/fesmekan
      </indent>
      &lt;/VirtualHost&gt;
    </example>

    <p>httpd’nin beklendiği gibi işlemesi için her sanal konak için iki
      veriye mutlaka ihtiyacı vardır: <directive module="core"
      >ServerName</directive> 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> 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>

    <example>
      # Bu yetersiz bir yapılandırma örneğidir, sunucunuzda kullanmayın. <br />
      &lt;VirtualHost 192.168.2.1&gt; <br />
      <indent>
        ServerAdmin filanca@fesmekan.dom <br />
        DocumentRoot /siteler/fesmekan
      </indent>
      &lt;/VirtualHost&gt;
    </example>

    <p>Ancak, bu sefer de bu sanal konağın sunucu ismini öğrenmek için
      httpd’nin bir ters DNS sorgusu yapması gerekecektir. Eğer bu sorgu
      başarısız olursa kısmi bir yapılandırmaya gidilir.
      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 (örneğin, bir Redirect varlığında olduğu gibi) 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>

    <example>
      &lt;VirtualHost 192.168.2.1&gt; <br />
      <indent>
        ServerName falan.fesmekan.dom <br />
        ServerAdmin filanca@fesmekan.dom <br />
        DocumentRoot /siteler/fesmekan
      </indent>
      &lt;/VirtualHost&gt;
    </example>
  </section>

  <section id="denial">
    <title>Hizmet Reddi</title>

    <p>Şöyle bir yapılandırmanız olsun:</p>

    <example>
      &lt;VirtualHost falan.fesmekan.dom&gt;<br />
      <indent>
        ServerAdmin filanca@fesmekan.dom <br />
        DocumentRoot /siteler/fesmekan
      </indent>
      &lt;/VirtualHost&gt;<br />
      <br />
      &lt;VirtualHost misal.mesela.dom&gt;<br />
      <indent>
        ServerAdmin falanca@mesela.dom<br />
        DocumentRoot /siteler/mesela<br />
      </indent>
      &lt;/VirtualHost&gt;
    </example>

    <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>
  </section>

  <section id="main">
    <title>"Ana Sunucu" Adresi</title>

    <p><a href="vhosts/name-based.html">İsme dayalı sanal konak
      desteği</a>, httpd’nin çalıştığı makinenin IP adres(ler)ini de bilmesini
      gerektirir. Bu adresi elde etmek için sunucu, ya sunucu genelinde geçerli
      <directive module="core">ServerName</directive> 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, httpd’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 <module>mod_env</module>
      kullanmıyorsanız, CGI’ler de bundan etkilenir. En iyisi işletim
      sisteminizin SSS belgelerini ve kılavuz sayfalarını okumaktır.</p>
  </section>

  <section id="tips">
    <title>Bu Sorunlardan Kaçınmak için İpuçları</title>

    <ul>
      <li><directive module="core">VirtualHost</directive> yönergelerinizde
        IP adresleri kullanınız.</li>

      <li><directive module="mpm_common">Listen</directive> yönergelerinizde
        IP adresleri kullanınız.</li>

      <li>Tüm sanal konakların ayrı birer <directive module="core"
        >ServerName</directive> yönergesi olsun.</li>

      <li>Hiçbir sayfa sunulmayan bir <code>&lt;VirtualHost
        _default_:*&gt;</code> sanal konağınız olsun.</li>
    </ul>
  </section>

</manualpage>
Something went wrong with that request. Please try again.