8 Ağustos 2018 Çarşamba

/etc/hosts Dosyası ve NSS Nedir?

Hosts Dosyası Nedir?


    Hosts dosyası makine adlarını IP adreslerine eşleyen, metin editörü ile açılıp düzenlenebilen bir işletim sistemi dosyasıdır. İnternet sitelerinin isimlerini IP adresleri ile eşleştirir de diyebiliriz.
Makine adları için statik bir tablo araması yapar.
  • Makine adlarını çözümleme işlevinde, yerel sistemlerde kullanılmak üzere hosts dosyası herhangi bir makine adını veya alan adını tanımlamak için kullanılabilir.
  • Bazı web servisleri, geliştiriciler veya yöneticiler şirketin iç kaynaklarına erişmek, bunları test etmek gibi çeşitli amaçlar için alanı sadece yerel alan ağı içinde tanımlar.
    Örneğin; sadece bir şirket içinde -şirketin yerel alan ağında- kullanılan bir panelimiz olsun. Bunu hosts dosyasında tanımlayarak bağlanabiliriz.
  • Hosts dosyası çevrimiçi reklamcılığı, casus yazılımı, reklam yazılımı veya diğer kötü amaçlı yazılımları içerdiği bilinen zararlı kaynakların ve sunucuların etki alanlarını engellemek için kullanılabilir.
  • DNS hizmetinde bir sorun, engel yada yönlendirme varsa hosts dosyasında belirli alan adlarını IP adresleriyle birlikte değiştirerek açık hale getirebiliriz.

Makine Adı ve IP Adreslerini Eşleme

    Hosts dosyası içerisinde her makine için tek satır ayrılmıştır ve bu satırların yazımı aşağıdaki formattadır:

IP_address    canonical_hostname    [aliases ...]

Dosya içerisinde;
  • her alan bir boşluk karakteriyle veya tab karakteri ile birbirinden ayrılır.
  • IP_address diye belirtilen alan, o makine adı için kullanılacak olan IP adresidir. 
  • canonical_hostname ile belirtilen alan, IP adresiyle ilişkili yerel olarak bilinen sunucu adlarını belirtir. Genel yapıya göre IP adresinden sonraki ilk alan tam nitelikli alan adıdır. Yabi bu makinenin/sunucunun resmi adıdır. 
  • aliases diye belirtilen diğer alanlar, tanımlanan IP adresi için diğer adlar veya alternatif adlardır.
  • tamamen boş satırlar yok sayılır.

 /etc/hosts düz metin dosyasıdır ve iki türde satırlara izin verilir:
  • Makine/sunucu adı tanımlaması
  • Boş satırlar veya yorum satırları
Yorum sayırları '#' ile başlamalıdır.,


Hosts Dosyasının Konumu

    Dosya sistemi hiyerarşisi işletim sistemine göre değişir. Ancak bu dosya genellikle 'hosts' olarak isimlendirir.
Unix ve Unix-benzeri sistemlerde /etc/hosts konumunda bulunur. 

Örnek hosts dosyası:

       # The following lines are desirable for IPv4 capable hosts
       127.0.0.1       localhost

       # 127.0.1.1 is often used for the FQDN of the machine
       127.0.1.1       thishost.mydomain.org  thishost
       192.168.1.10    foo.mydomain.org       foo
       192.168.1.13    bar.mydomain.org       bar
       146.82.138.7    master.debian.org      master
       209.237.226.90  www.opensource.org

       # The following lines are desirable for IPv6 capable hosts
       ::1             localhost ip6-localhost ip6-loopback
       ff02::1         ip6-allnodes
       ff02::2         ip6-allrouters



    Bazı işletim sistemlerinde hosts dosyasının içeriği, DNS gibi diğer ad çözümleme yöntemleri için kullanılır ancak birçok sistem özelleştirme sağlamak için -Linux ve Unix için nsswitch.conf gibi-  
NSS (name server switch) kullanır. Uzak DNS çözümleyicisinin aksine, hosts dosyası yerel bilgisayar yöneticisinin doğrudan denetimi altındadır.

Peki Nedir Bu NSS?

    NSS ortak yapılandırma veritabanları ve ad çözümleme mekanizmaları için çeşitli kaynaklar sağlayan Unix-benzeri işletim sistemlerinde kullanılan bir servistir. Bu kaynaklar yerel işletim sistemi dosyalarını (/etc/group, /etc/passwd, /etc/hosts gibi), DNS, NIS ve LDAP'ı içerir.
NSS bir istemcinin veya uygulamanın ağ bilgilerini nasıl aldığını kontrol eder. 
nsswitch.conf dosyası ile yapılandırılabilir.

/etc/nsswitch.conf Dosyası

    Bu dosya GNU C kütüphanesi tarafından, çeşitli kategorilerde name-service hizmeti bilgileri elde etmek için hangi kaynaklardan ve hangi sırayla alınacağını belirlemek için kullanılan düz metin dosyasıdır. Bu yapılandırma dosyası, bir işlem -hosts, users, groups gibi- hakkında bilgi içeren çeşitli veritabanlarını nasıl incelediğini kontrol eder. Her bilgi kategorisi bir veritabanı adıyla tanımlanır. 
İlk sütun veritabanı adını belirtir. Kalan sütunlar, sorgulanacak kaynakların sırasını ve arama sonucuyla gerçekleşebilecek sınırlı bir eylemler kümesini tanımlar.
Sisteminizde desteklenen servis özellikleri, paylaşılan kütüphanelerin varlığına bağlıdır ve bu yüzden genişletilebilir. Örneğin hosts veritabanı için ek olarak 'dns', passwd ve shadow veritabanları için ek olarak 'compat' seçeneği belirtebilirsiniz.

    nsswitch.conf dosyasındaki her girdi, bir veritabanı adı ve ayrılmış kaynak listesinden oluşur. Her kaynak, bir sonraki listelenen kaynağın kullanılıp kullanılmayacağını belirleyen isteğe bağlı bir sonlandırma ölçütüne sahip olabilir veya arama mevcut kaynakta sona erer.

Örnek nsswitch.conf dosyası:

           passwd:         compat
           group:           compat
           shadow:        compat

           hosts:            dns [!UNAVAIL=return] files
           networks:      nis [NOTFOUND=return] files
           ethers:           nis [NOTFOUND=return] files
           protocols:     nis [NOTFOUND=return] files
           rpc:               nis [NOTFOUND=return] files
           services:       nis [NOTFOUND=return] files

Hiç yorum yok:

Yorum Gönder