Sarı Sayfalar 3: Sunucu Tarafı

ArticleCategory:

System Administration

AuthorImage:

[Frederic]

TranslationInfo:[Author + translation history. mailto: or http://homepage]

Original in frFrédéric Raynal

fr to deBernhard Spanyar

de to enGuido Socher

en to en Lorne Bailey

en to tr Ceyhun Elmas

AboutTheAuthor:

Frédéric Raynal INRIA 'da bilgisayar bilimlerinde final tezini hazırlıyor. Sık sık "16 Horse Power" 'ın son albümünü (çok iyi ve güçlü) ve "The for carnation" dinliyor, biraz ağır ama oldukça iyi.

Abstract:

Bu yazıda adım adım NIS sunucusunun nasıl kurulduğunu göreceğiz. Gerekli yazılımlara , yapılandırma dosyalarına ve veri tabanının nasıl oluşturulduğuna bakacağız.

ArticleIllustration:

[Illustration]

ArticleBody:

Introduction

Bir önceki yazıda NIS istemcinin nasıl yapılandırıldığını gördük. Bu servis çalıştırıldığında oluşabilecek güvenlik açıklarından bahsettik. Gerçekten bir güvenlik açığı gerekli mi sorusu sorulabilir. Bence NIS'in geliştiricileri NIS tasarlandığında LAN ve ağ dağılımını ateşduvarlarıyla kapatıyorlardı ve güvenlikten gerçek anlamda sözedilmiyordu.

Bu yazıda sunucu tarafının nasıl yapılandırıldığını göreceğiz ve NIS'in kullanımıyla ilgili bazı ipuçları vereceğiz.

NIS ve NYS

NIS'in iki biçimi bulunuyor, "geleneksel NIS" ve NYS - ancak pek çok insan her ikisine de NIS diyor. Yönetici için sunucu ve istemcinin aynı yolla yapılandırıldığından beri her ikisi arasında büyük bir ayırım yoktu. Yeni sürüm, NYS, "gölge şifreler" gibi bazı özellikleri destekliyor.

Bu yazıda ypserv'in yeni sürümünden bahsedeceğiz. Önerdiğimiz sürüm gölge şifreleri desteklediğinden beri 1.3.2'den sonrası. Diğer bir deyişle, biz gerçekten NYS'den bahsedeceğiz, "geleneksel NIS" değil, hernekadar tüm yazıda NIS sözcüğü kullansak da...

NIS sunucu

İki sunucu var : ypserv ve yps.NIS-HOWTO'nun yazarına göre ikisi arasında gerçek bir fark yok, ancak bu yazar yps'den çok bahsetmiyor, bu nedenle biz yalnızca ypserv'den bahsedeceğiz.

İlk olarak yükleme için gerekli adımları açıklayacağız. Bu yazıda "charly" olarak adlandırılan konak üzerinde çalışacağız. NIS alan adı "bosley" ve köle sunucular "iron1", "iron2" ve "iron3".

Kurulum

İlk adım olarak,portmap daemon çalıştığından emin olmalıyız. E?er çalışmıyorsa başlatmak zorundasınız.

Sonra, NIS alan adına karar vermelisiniz. Bu DNS'den bir alan değil ama Sari Sayfalar bölgesi için bir isim olmalı. Güvenlik nedenleriyle bu isim NIS sunucusunun isminden farklı olmalı.

Alan domainname komutu ile isimlendirilir. :-) Bizim örnerimizde :

root@charly >> /bin/domainname bosley
Bu komut NIS alan adını yalnızca RAM'de tutar.Kalıcı yapmak için aşağıdaki satırı /etc/sysconfig/network dosyasına eklemelisiniz:
NISDOMAIN=bosley
Bu birsonraki açılışta NIS alan adını otomatik olarak verecektir.

Önce ypserv daemon'u başlatabiliriz, bunu /etc/ypserv.conf dosyasını değiştirerek yapılandırmalıyız. Bu aşağıdaki dizgide bir ASCII dosyasıdır:

  1. Komutlar: bu satırlar #-işareti ile başlar.
  2. Daemon için seçenekler: Söz dizimi aşağıda görünüyor.
    option: [yes|no]
    Olası seçenekler dns, sunucu FONT face= "Courier New, Courier, monospace">hosts-maps dosyasında olmayan istemciyi bulmak için DNS'e soracaktır. sunos_kludge, eski ve xfr_check_port sunucu için aşağıdaki 1024 portu kullanmaya (benimsenmiş değer evet).
  3. İleri kurallar: Biçimi:
    host:map:security:mangle[:field]
    Bu kurallar hangi bilginin görülebileceğine karar verir.
ypserv.conf'un man sayfaları tüm seçenekleri ve olasılıkları çok anlaşılır biçimde açıklıyor.

şimdi sunucuyu ba?latabiliriz:

root@charly >> /etc/rc.d/init.d/ypserv start
Açılışta sunucunun otomatik olarak koşması için rc.d dosyasını düzenlemelisiniz ya da Redaht altında bu komutu çalıştırmalısınız:
root@charly >> /sbin/chkconfig --level 345 ypserv on
Herşeyin çalıştığını denetlemek için:
root@charly >> /usr/sbin/rpcinfo -u localhost ypserv
program 100004 version 1 ready and waiting
program 100004 version 2 ready and waiting
Ayrıntılara girmeden önce ilk yazıda öğrendiklerimizi hatırlamalıyız. İki çeşit sunucu var : efendi(master) ve köle(slave). Köle sunucular yalnızca efendi sunucunun veritbanının bir kopyasına sahiptir. Bu sunucular istemci taleplerinin karşılanması uzun zaman aldığında ya da efendi sunucu göçtüğünde devreye girerler.Veritabanı yalnızca efendi tarafından yönetilmelidir. Bu istemciler üzerine kopyalanır.

şimdi herşey hazır ... veritabanı dışında. İlk olarak bunu oluşturmalıyız. Oluşturmaktan kasıt,Makefile kullanmaktır ;-] Makefile bir önhazırlıktır ve bundan sonra yalnızca bir kaç satırı değiştirmemiz gerekiyor.Makefile /var/yp dizini altındadır ve açık bir komuttur. En önemli satır map'lerin tanımlandığı yerdir :

all: passwd group hosts rpc services netid protocols mail shadow
# netgrp publickey
# networks ethers bootparams printcap \
# amd.home auto.master auto.home passwd.adjunct
Benimsenmiş değere gölge şifreyi elle eklemelisiniz. Bunu yapmak için "passwd" ve "shadow" dosyaların listesine eklemelisiniz ve değişkenin değerini vermelisiniz MERGE_PASSWD doğru. MERGE_PASSWD karar verir eğer /etc/passwd ve /etc/shadow dosyaları birleşmişse.

Sunucuyu başlatmadan önce son ayrıntı: Yazma hakları. Hakları denetlemk için iki yol vardır. Bunlardan biri ypserv'in kendi yolu diğeri de tcp_wrapper. Biz ypserv'in kendi güvenlik yöntemlerinden bahsedeceğiz.

Eğer ypserv'in yalnızca ikili kod dosyasına sahipseniz -v seçeneği ypserv 'in derlendiği yapılandırma seçeneklerini gösterecektir. ypserv'in kendi hak denetimi kullanmak için "securenets" seçeneğine gereksinimimiz var.

root@charly >> /usr/sbin/ypserv -v
ypserv - NYS YP Server version 1.3.9 (with securenets)
/var/yp/securenets dosyası sunucu erişim haklarını denetleyebileceğimiz netmask/network çiftinin sayılarını içerir. Benimsenmiş değeri:
0.0.0.0          0.0.0.0
Bu dünyadaki herkes için erişim hakkı sağlar. Bunu değiştirmek zorundayız. 131.234.223.0 ağından sağlanan her konak bağlantısı için bunu yazabilirisiniz :
255.255.255.0      131.234.223.0
Bu dosyada yalnızca IP adreslerine sahip olduğunuza dikkat edin. Konak isimlerini kullanmak olanaklı değil.

?imdi NIS-Veritabanını ypinit komutuyla oluşturabiliriz. Benimsenmiş değer tarafından (Makefile içinde tanımlanır) dosyaları /etc altından okuyacaktır ve /var/yp altına yazacaktır. Dosyalar kendi veritabanımız içine gidecektir ; /etc/passwd, /etc/group, /etc/hosts, /etc/networks, /etc/services, /etc/protocols, /etc/netgroup, /etc/rpc.

-m seçeneği sunucunuzu karakter verisi olarak başlatmayı sağlar (-m efendi sunucu içindir), -s seçeneği efendi veritabanını köleye kopyalar (-s köle sunucu için).

Kendi veritabanımızı aşağıdaki gibi başlatabiliriz :

root@charly >> /usr/lib/yp/ypinit -m

Bu noktada ,üzerinde NIS koşacak konakların listesine sahip olmalıyız.
servers.  localhost NIS sunucunun konak listesi içindedir.   Lütfen eklemeye devam edin
diğer konakların isimleri, her satıra bir adet. 
listeyi <control D>. ile bitiriyorsunuz
        next host to add:  localhost
        next host to add:  iron1
        next host to add:  iron2
        next host to add:  iron3
        next host to add:
NIS sunucuların mevcut listesi böyle görünür:

localhost
iron1
iron2
iron3

Bu doğru mu?  [y/n: y]  y
Veritabanını oluşturmak için  bir kaç dakikaya gereksinimimiz var...
Building /var/yp/bosley/ypservers...
Running /var/yp/Makefile...
gmake[1]: Entering directory `/var/yp/bosley'
Updating passwd.byname...
Updating passwd.byuid...
Updating group.byname...
Updating group.bygid...
Updating hosts.byname...
Updating hosts.byaddr...
Updating rpc.byname...
Updating rpc.bynumber...
Updating services.byname...
Updating netid.byname...
Updating protocols.bynumber...
Updating protocols.byname...
Updating mail.aliases...
Updating shadow.byname...
# shadow publickey # networks ethers bootparams printcap \
# amd.home auto.master auto.home passwd.adjunct
gmake[1]: Leaving directory `/var/yp/bosley'

işte, veritabanı hazır :). Her köle sunucuda aşağıdaki komutu çalıştırmanız gerekiyor:
root@iron3 >> /usr/lib/yp/ypinit -s charly
Sistemi test etmek için sunuculardan birisini istemci gibi kullanın ve talepte bulunun :
root@iron3 >> ypcat passwd mulder:x:500:100::/home/mulder:/bin/csh scully:x:501:100::/home/scully:/bin/bash
Ayrıca gölge şifrelerin çalıştığını da görebilirsiniz. şifrenin olması gereken yerlerde "x" var. böyle olmalı :)
NIS-Sunucunun yüklenmesi
  1. Ba?latma portmap
  2. NIS-Alan ismi tanımlama
  3. NIS sunucusu üzerinde yapılandırma dosyalarını hazırlama: /etc/ypserv.conf
  4. ypserv daemon başlatma
  5. /var/yp/Makefile içinde map'ler tanımlama
  6. /var/yp/securenets içinde NIS sunucu erişim haklarını belirleme
  7. ypinit -mkomutuyla NIS efendi sunucu veritabanını oluşturma
  8. ypinit -s <master server>komutuyla NIS köle sunucu oluşturma

NIS veritabanının güncellenmesi

Yakın bir zaman içinde map'lerden birisi değişebilir, örneğin yeni bir sunucu ya da kullanıcı eklendiğinde NIS veritabanı güncellenmelidir.

Yeni köle sunucu eklemek için ,yeni sunucu üzerinde bu komutu kullanmalısınız :
/usr/lib/yp/ypinit -s charly
ve efendi sunucu üzerinde /var/yp/ypservers dosyasına yeni sunucuyu eklemelisiniz.

E?er yeni bir kullanıcı eklenirse pek çok map bundan etkilenir(passwd, shadow, alias, etc ...).

Map değiştirildikten sonra /var/yp/ efendi sunucu üzerinde bu dizin altında make komutunu çalıştırmalısınız. Bu veritabanını güncelleycek ve yeni veriyi köle sunuculara dağıtacaktır.(köllere dağıtma işlemini yppush) kullanarak yapacaktır.

rpc.ypxfrd programı efendiden kopyalayarak ve kölede yeniden oluşturarak efendi ve köle sunucular arasındaki işlemleri hızlandırabilir. rpc.ypxfrd ypserv ile aynı zamanda başlamalıdır. Eğer çok büyük map'ler sözkonusu ise bu programa gereksiniminiz olacaktır.

Bir kaç yolgösterme

Herkes NIS'in güvenli olmadığını bilir. Bununla birlikte birden fazla konağın olduğu bir ortamda çok kullanışlı bir servistir.Bu nedenle, bazı ileri güvenlik önlemleri almalısınız.

Şifrelerin bilinebilmesi gibi NIS alan ismi de tahmin edilebilir. Makina isimleri açık olarak bellidir ve ypwhich komutuyla test edilebilir.

NIS alan adı farklı yerlerde görünebilir, özellikle /var/yp dizini altında ve altdizinlerinde. Bunlar root dışındaki kimselerce okunamamalıdır ve NFS yoluyla paylaştırılmamalıdır.

tcp_wrapper kullanımı bunu kırmaz ek olarak /var/yp/securenets pormap işlemlerini denetlemelidir.

NIS sunucusu üzerinde bir defaultroute olmaması ve istemci ve kölelere ulaşmada statik routing kullanımı sizin için bir kazanımdır. Bu yolla sunucu bilinmeyen konaklardan gelen talepleri yanıtlamaz.

Ateşduvarı kısıtlamaları da NIS sunuculara erişimi denetleyen etkili bir yoldur.

Bu güvenlik yolları NIS'in kendi güvenliğini geliştirmez ancak çalışma alanı çevresinde bunu sağlar. Bu problemlere karışn NIS çok değerli bir araçtır.

Kaynaklar

  1. NIS-HOWTO : tüm HOWTO'lar gibi çok iyi
  2. http://www.suse.de/~kukuk/ : NIS ve NIS+ üzerine çalışıyor. Sayfasında pek çok soru/cevap bulunuyor.
  3. The Network Administrators' Guide http://www.linuxdoc.org/LDP/nag adresinde bulunabilir.