NIS
Önceki TCP/IP Sonraki
NIS
NIS Network Information Service kelimelerinin baş harflerinden oluşmaktadır. Amacı bir ağ üzerindeki bütün makinalara, bütün ağ tarafından bilinmek kaydıyla bilgi akışı sağlamaktır. NIS tarafından dağıtılacak bilgiler, hesap isimleri, parolalar, kullanıcı dizinleri ve grup bilgileri olabilir.
NIS yardımıyla, örneğin size ait parola NIS veri tabanında kayıtlı ise, ağ üzerinde NIS istemci programlarını çalıştıran bütün makinalara girebilirsiniz.
NIS'in biraz daha gelişmiş bir sürümü olan NIS+ , verileri korumak amacıyla şifreleme yöntemi kullanır. Bu avantajına rağmen NIS+ 'ın kurulumu ve kullanımı daha zordur.
NIS'in Çalışma Prensipleri
Bir ağ üzerinde en az bir makina NIS sunucusu olmak zorundadır. İster herbiri farklı NIS ``domain'' lerine hizmet eden çoklu NIS sunucularına sahip olabilirsiniz ya da beraber çalışan NIS sunucularınız olur. Bu durumda sunuculardan biri ana NIS sunucusu, diğerleri ise ikincil (slave) NIS sunucusu olabilirler.
İkincil sunucular sadece NIS veritabanının kopyalarına sahiptirler ve bu kopyaları ana NIS sunucusunda bulunan veri tabanlarında değişiklik yapıldığı zaman ana sunucudan alırlar. Ağ üzerinde bulunan makina sayısına ve ağ güvenliğine bağlı olarak bir veya daha fazla ikincil sunucu kurulabilir. Bir NIS sunucusu kapandığında veya çok yavaş cevap verdiğinde, diğer NIS istemcileri çalışan veya daha hızlı bir sunucu bulmaya çalışacaktır.
NIS veritabanları DBM adı verilen yapıdadır ve bu yapı ASCII veritabanlarından çıkarılır. Ana NIS sunucusu hem ASCII veritabanlarını hemde DBM veritabanlarını içermelidir. NIS sunucusu, ASCII yapıdaki /etc/passwd gibi veri tabanlarını DBM veri tabanına çevirerek /var/yp dizini altında tutar.
İkincil sunucular NIS haritalarında oluşacak değişikliklerden yppush programı aracılığıyla haberdar edilecek ve veritabanlarını senkronize etmek için otomatik olarak gereken değişiklikleri alacaklardır. NIS istemcilerinin bunu yapmasına gerek yoktur çünkü sunucudaki DBM veritabanlarında bulunan bilgileri okumak için devamlı olarak NIS sunucusu ile bağlantı kurmaktadır. İkincil sunuculara gayet büyük ağlar üzerinde ihtiyaç duyulur.
NIS İstemcisi
NIS'i kurmak için herşeyden önce /usr/sbin/rpc.portmap programını çalıştırmanız gerekir. Bazı Linux dağıtımları (örneğin Slackware) bu daemon'u çalıştırmak için gereken kodu /etc/rc.d/rc.inet2 dosyasında barındırırlar.
RPC portmapper (man 8 portmap) programı bir sunucu olup RPC program numaralarını TCP/IP (veya UDP/IP) protokol port numaralarına çevirir. RPC portmapper o makina üzerinde RPC çağrılarını (NIS istemci yazılımının yaptığı iş) RPC sunucularına (NIS sunucuları gibi) yapılabilmesi için çalışıyor olmalıdır. Bir RPC sunucusu başladığı zaman, portmap'a hangi port numarasını dinlediğini ve hangi RPC program numaralarına hizmet edeceğini bildirir. Bir istemci verilen bir program numarasına RPC çağrısı yapmak istediği zaman, ilk önce sunucu makina üzerindeki portmap ile bağlantı kurarak RPC paketlerinin nereye gönderileceğini belirler.
Normal olarak, bazı RPC sunucuları inetd(8) tarafından başlatılır, bu yüzden portmap, inetd'den önce çalıştırılmalıdır.
NIS kurmadan önce, yukarıda da belirtildiği gibi iki durumu değerlendirmek zorundasınız. Ya sizin makinanız halihazırdaki NIS sunucularının bulunduğu bir ağın parçası olacaktır ya da henüz ağınızda herhangi bir NIS sunucusu yoktur.
Birinci durumda, sadece istemci programlara (ypbind, ypwhich, ypcat, yppoll, ypmatch) ihtiyacınız vardır. En önemli program ypbind'dır. Bu programı her zaman çalıştırıyor olmalısınız. ypbind çalışır çalışmaz, makinanız bir NIS istemcisi durumuna gelir.
İkinci durumda, eğer NIS sunucularınız yoksa, bir de NIS sunucu programına (ypserv) ihtiyacınız vardır.
NIS İstemcisi Kurulması
Slackware dağıtımıyla gelen NIS yazılımını daha önce kurmamışsanız, sisteminize yükleyin. NIS istemcisi için ypbind dışındaki çalıştırılabilir dosyalar (ypwhich, yppoll, ypmatch) bütün kullanıcılar tarafından erişilebilir bir dizinde bulunmalıdır. Öncelikle yapılması gereken ypbind'ı test etmektir. Bunun için,
  • Domain adınızı belirlediğinizden emin olun. Bunun için,
    /bin/domainname-yp nis.domain
    /bin/domainname-yp > /etc/defaultdomain
    
    komutunu girin. İkinci satırda, sistemde daha sonra kullanılmak üzere /etc/defaultdomain dosyasına domain adı yazılır. Yukarıdaki komutta nis.domain herhangi bir kelime olabilir.
  • Eğer çalışmıyorsa /usr/sbin/rpc.portmap programını çalıştırın.
  • /usr/sbin/ypbind programını çalıştırın.
  • rpcinfo -p localhost komutunu kullanarak ypbind programının portmapper'da servislerini kayıt ettirdiğini kontrol edin. rpcinfo şöyle bir çıktı üretmelidir:
    program vers    proto   port
    100000  2       tcp     111     portmapper
    100000  2       udp     111     portmapper
    100007  2       udp     637     ypbind
    100007  2       tcp     639     ypbind
    300019  1       udp     660
    
  • Ayrıca rpcinfo -u localhost ypbind komutunu da çalıştırabilirsiniz. Bu komut ise şöyle bir çıktı verir:
    program 100007 version 2 ready and waiting
    
  • En son olarak, makina isim taramaları (host lookup) için /etc/host.conf dosyasında lookup sırasına nis bilgisini ekleyin. Bu dosyada yeralan order satırını istediğiniz gibi düzenleyebilirsiniz. Daha fazla bilgi için resolv(8) man sayfasına bakın.
    $ cat /etc/host.conf
    order nis, bind, hosts
    multi on
    
Bu noktadan sonra ypcat, vb gibi NIS istemci programları kullanılabilir. Örneğin, ypcat passwd komutu bütün NIS parola veritabanını gösterir.
Şimdi sistemde bulunan /etc/rc.d/rc.inet2 dosyasını ypbind programının sistem açılırken çalışması ve sisteminizin bir NIS istemcisi olarak görev yapması için değiştirmek gerekir. Ayrıca, /etc/rc.d/rc.inet2 dosyasını açın ve ypbind'ı çalıştıran ve domain adını belirleyen satırların başındaki # işaretini kaldırın.
# domainname

if [ -r /etc/defaultdomain ] ; then
domainname-yp `cat /etc/defaultdomain`
fi

# Start the ypbind daemon

if [ -f ${NET}/ypbind -a -d /var/yp ]; then
  echo -n " ypbind"
  ${NET}/ypbind
fi
NIS'i çalıştırmak için /etc/passwd ve /etc/group dosyalarının sonuna ``+:*:0:0:::'' satırını ekleyin. ypbind'ı öldürüp yeniden çalıştırın.
NIS Sunucusu Kurulması
NIS aracılığı ile kullanıma açık olacak dosyalardan ihtiyacınız olanların belirlenmesi gerekir. /var/yp/Makefile/ dosyasında gerekli ekleme/çıkartmaları yapın. NIS veri tabanını aşağıdaki satırı yazarak oluşturun:
$ cd /var/yp; make
Bu programın çalıştırılmasından sonra /var/yp dizini altında NIS domain adıyla bir dizin yaratılır ve tüm veri tabanları burada tutulur. portmapper programının (rpc.portmap) çalıştığından emin olduktan sonra ypserv sunucusunu çalıştırın. rpcinfo komutu ile ypserv'in çalışmasını kontrol edin.
$ rpcinfo -u localhost ypserv
program 100004 version 2 ready and waiting
Artık sunucu çalışmaktadır.
yppasswdd Programı
NIS parola veritabanının güvenilir olması için ``yppasswd daemon'' gereklidir. Kullanıcılar yppasswd komutu yardımıyla sunucu üzerindeki parolalarını değiştirebilirler. yppasswd daemon (kısaca yppasswdd) bu değişikliklerin doğru bir şekilde yapılmasını ve bu parola değiştirme sürecini kontrol eden sunucudur.
NIS'in Kontrol Edilmesi
NIS, birkaç basit komut ile kontrol edilebilir.
$ ypwhich
ypwhich NIS sunucusunun hangi makina olduğunu söyleyecektir. Bu komut ise
$ ypmatch userid passwd
(userid herhangi bir kullanıcının login adı olmak kaydıyla) size bu kullanıcının NIS parola dosyasındaki bilgilerini verir. ypwhich ve ypmatch programları NIS dağıtımı içinde gelirler. Bir NIS sunucusu kapandığı ve tekrar başladığı zaman ypbind aşağıdaki gibi bir mesaj ile başlayabilir:
yp_match: clnt_call:RPC: Unable to receive; errno = Connection refused
ve NIS veritabanında kayıtlı olanlar sisteme giremezler. root olarak sisteme girmeyi deneyin ve başarılı olursanız ypbind işlemini öldürüp yeniden başlatın.
Önceki Üst Ana Başlık Sonraki
Linux'ta Örnek Ağ Uygulamaları Başlangıç DNS (Alan İsimlendirme Sistemi)
Bir Linux Kitaplığı Sayfası