[LinuxFocus-icon]
Ev  |  Eriþimdüzeni  |  Ýçindekiler  |  Arama

Duyumlar | Belgelikler | Baðlantýlar | LF Nedir
[an error occurred while processing this directive]
convert to palmConvert to GutenPalm
or to PalmDoc

[Frederic]
tarafýndan Frédéric Raynal
<pappy(at)users.sourceforge.net>

Yazar hakkýnda:
Frédéric RaynalINRIA '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.

Türkçe'ye çeviri:
Ceyhun Elmas <ceyhun.elmas(at)linuxfocus.org>

Ýçerik:

 

Sarý Sayfalar 3: Sunucu Tarafý

[Illustration]

Özet:

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.



 

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.


 

Bu yazý için görüþ bildiriminde bulunabilirsiniz

Her yazý kendi görüþ bildirim sayfasýna sahiptir. Bu sayfaya yorumlarýnýzý yazabilir ve diðer okuyucularýn yorumlarýna bakabilirsiniz.
 talkback page 

Görselyöre sayfalarýnýn bakýmý, LinuxFocus Editörleri tarafýndan yapýlmaktadýr
© Frédéric Raynal, FDL
LinuxFocus.org

Burayý klikleyerek hatalarý rapor edebilir ya da yorumlarýnýzý LinuxFocus'a gönderebilirsiniz
Çeviri bilgisi:
fr --> -- : Frédéric Raynal <pappy(at)users.sourceforge.net>
fr --> de: Bernhard Spanyar <bspa(at)gmx.de>
de --> en: Guido Socher (homepage)
en --> en: Lorne Bailey <sherm_pbody(at)yahoo.com>
en --> tr: Ceyhun Elmas <ceyhun.elmas(at)linuxfocus.org>

2001-12-07, generated by lfparser version 2.22