Sarı Sayfalar 2 : İstemci Tarafı
ArticleCategory:
System Administration
AuthorImage:
TranslationInfo:
Original in fr Frédéric
Raynal
fr to en Jo
Simons
en to tr:Ceyhun Elmas
AboutTheAuthor:
Frédéric
Raynal tezini INRIA 'da bilgi teknolojilerinde yazıyor.
Okumayı (Tolkien 'den Balzac'a) ve müzik dinlemeyi(Mozart'dan Philip Glass ve
Led Zeppelin'den Massive Attack ,Björk ve Boris Vian 'a kadar,
ancak rap, techno ve diğer gürültülü türlerden uzak durur. ;-)
Abstract:
Bir önceki yazıda sarı sayfalar'ın ne olduğuna yönelik bir giriş yapıldı.Bu yazıda ise istemcinin
nasıl yapılandırıldığını , basit bir örnekle nasıl çalıştığını ve farklı araçların sunumunu göreceğiz.
Yazının sonunda NIS+'dan kısaca sözedeceğiz.
ArticleIllustration:
ArticleBody:
Giriş
Sarı Sayfalar'a servisin istemci tarafı gerçekte
ypbind daemon'ıdır : talepleri YP sunucusuna gönderir.
İlk olarak bunun nasıl çalıştığını ve nasıl yapılandırıldığını açıklayacağız.
Sonra NIS protokolünün nasıl çalıştığını göreceğiz.Yazının son konusunda farklı YP araçlarına değiniliyor.
NIS istemcinizin yapılandırılası
NIS istemcisini çalıştırmak için tek yapmanız gereken makina üzerinde
ypbind daemon'nını çalıştırmak.
ypbind
ypbind istemci ve sunucu arasında bir bağlantı kurar.
Bağlantı /var/yp/binding1 altında saklıdır, doysa genellikle domainadı.sürüm. biçimindedir.
Yalnızca desteklenen sürüm 2 dir.Dolayısıyla eğer domain adı "messiah" ise dosya ismi mesiah.2 olacaktır.
ypbind programı süper kullanıcıya uyumludur (örnek olarak root) dolayısıyla yeri
/sbin, ya da in /usr/sbin altındadır.
ypbind'ı çalıştırdığınızda program
/etc/yp.conf dosyasına bakacaktır.Bu dosya şu bilgileri içerir:
- domain nisdomain sunucu konakadı : istemci konakadı için hostname'e ,
domain için nisdomain'e bakacaktır.
;
- domain nisdomain broadcast : istemci yerel ağa nisdomain ile ilgili genel yayın yapacaktır.
;
- ypserver hostname : istemci adresi
konakadı doğrudan yerel domain içindir.Bu yapılandırmada , sunucunun IP aderesi /etc/hosts dosyası içindedir.
Eğer yapılandırma dosyası yok ya da eksikse,
ypbind genel yayın yapacak2 ağ üzerinde
yerel ağ için yerel domain'nin NIS sunucusunu arayacaktır.
Bazı basit devinimler bize ypbind'ın doğru yapılandırıldığını gösterir.
- /etc/yp.conf dosyasını oluşturun;
- portmap'in doğruluğuna bakın,
çalışıyor mu ? (ps aux | grep portmap). Eğer çalışmıyorsa, bunu çalıştırmak isteyeceğiz.
Bu program bilgisayarların TCP/IP (ya da UDP/IP) portlarını programlarla birleştirir.
RPC sunucusunun başlaması anında,portmap'e sintal gönderir.
Portlar bunu ve program sayılarını dinleyecektir ve çalıştırmak isteyecektir.
İstemci RPC talebi yolladığında bir program sayısı verir, bu ilk olarak portmap
ile karşılaşır.Buradaki amaç hangi portun RPC paketleri gönderdiğini bilmektir.
Bu açıklama gösteriyor ki ypbind çalışmadan önce
portmap'in olması zorunludur ;
- /var/yp dizini oluşturulur ;
- ypbind'ı çalıştırın ;
-
rpcinfo komutuyla ypbind'ın doğru çalıştığına emin olun :
-
"rpc -p localhost" aşağıdaki bilgileri vermelidir :
program |
vers |
proto |
port |
|
100000 |
2 |
tcp |
111 |
portmapper |
100000 |
2 |
udp |
111 |
portmapper |
100007 |
2 |
tcp |
637 |
ypbind |
100007 |
2 |
udp |
639 |
ypbind |
or
program |
vers |
proto |
port |
|
100000 |
2 |
tcp |
111 |
portmapper |
100000 |
2 |
udp |
111 |
portmapper |
100007 |
2 |
udp |
758 |
ypbind |
100007 |
1 |
udp |
758 |
ypbind |
100007 |
2 |
tcp |
761 |
ypbind |
100007 |
1 |
tcp |
761 |
ypbind |
ya da şunu deneyebilirsiniz:
-
"rpcinfo -u localhost ypbind" komutu şunu vermeli :
program 100007 version 2 ready and waiting |
ou
program 100007 version 1 ready and waiting |
program 100007 version 2 ready and waiting |
ypbind'ın sürümüne bağlıdır. Önemli bir mesaj sürüm 2 hakkındadır.
Şimdi ypbind doğru çalışıyor, makinanız bir NIS istemcisi oldu.
Dolayısıyla bunu sunucunuza talepte bulunmak için kullanabilirsiniz. Örneğin , "ypcat
passwd.byname" size tüm şifreleri verecektir, kullanıcı isimlerini uygun dizinler altında sıralar.
Son ayrıntı
Bazı dosyalar YP'nin eksiksiz çalışması için henüz küçük degişimlere gereksinim duyar :
- /etc/host.conf : konak aramaları için "nis" 'i ekleyin ;
- /etc/passwd : şu satırı ekleyin:
+::::::
Bu, sunucuda yeralan tüm kullanıcılara yetki verir.
+ ve - sembolleriyle yetkilendrimeyi arındırabilir ya da istemci erişimini yasaklayabiliriz.
Misafir kullanıcıya yasak getirmek için şu satırı ekleyebilirsiniz :
-guest::::::
Alanlar değiştirilmek istenmez, boş kalmalı.Bununla birlikte daha fazlası olabilir :
+me::::::/bin/ksh
"me" kullanıcısı will ksh kullanmak yerine kendi kullanıcı kabuğunu kullanıyor (NIS sunucusunun /etc/passwd dosyasında tanımlı olan).
Son olarak önemli bir not, NIS 'in kusursuz desteklediği netgroup desteğini vermek istiyorum.
3
+@sysadmins:::::::
sysadmin netgrubunun üyelerine yetki verecektir.
- /etc/group (ve/veya /etc/shadow libc'nin kesin sürümleri için) :
/etc/passwd'de olduğu gibi eklemelisiniz,
+:
Üstelik grup yetkileriyle de + ve - kullanarak oynayabilirsiniz.
-
/etc/nsswitch.conf : Ağ Servisleri Değiştiricisi (Network Services Switch) aramada bilgilerin nereden sağlanacağını
tanımlamaya yarar, benzer yol /etc/host.conf için de geçerlidir. Seçimler :
nisplus |
lookup via NIS+ (NIS+ ile bakma, örnek: NIS sürüm 3, NIS'in güvenlik sürümüdür) |
nis |
lookup via NIS (NIS ile bakma, örnek: NIS sürüm 2, diğer adı YPs) |
dns |
lookup via a DNS (Domain İsim Sunucusu) |
files |
lookup in the local files (yerel dosyalar) |
db |
lookup in the database /var/db (veritabanında) |
Her bakma seçeneğinden sonra, aşağıdaki biçimde komut kullanabilirsiniz
`[' ( `!'? STATUS `=' ACTION )+ `]'
- STATUS => "success" veya "notfound" veya "unavail" veya
"tryagain"
- ACTION => "return" veya "continue"
libc 'nin kullanılan sürümüne bağlıdır, bakma yümü için aynı değildir.
Örneğin, shadow şifreleri libc5 ile yönetilmez. Makina üzerinde desteklenen servisler /lib/libnss_SERVICE.so.X
kitaplığını kullanır. Bu servis üzerine daha fazla bilgiyi nsswitch.conf 'un man sayfalarından bulabilirsiniz.
NIS üzerinde shadow şifreleri yalnızca glibc2.x ile sağlanır. Bunların nsswitch.conf içinde belirlendiğini hatırlayın .
NIS Protoklü
Şimdi NIS istemcilerimiz bütünüyle işlenebilir, gereksinimimiz olan bilgileri nasıl edineceğimizi göreceğiz.
İstemci Yps haritlarında yer alan bazı bilgilere gereksinim duyduğunda, bunu aramaya YP sunucusundan başlar.
. Birini bulmak için , yerel ypbind bir TCP bağlantısı açar.
İstemci hangi domain'nin uygun olduğu konusunda bilgi verir ve
ypbind RPC YPPROC_DOMAIN_NOACK fonksiyonu anlamına gelen gelen yayın yapar.
Bu yayına yalnızca bu domain için olan NIS sunucuları ACK ile yanıt verir.Diğerleri sessizliğini korur.
ypbind istemcinin bakma sonuçlarını (başarılı ya da başarısız) gönderir ve
eğer başarırsa ilk YP sunucusu yanıt verir. İstemci artık taleplerini sunucudan karşılayabilir.
Bu protokol TCP bağlantısı kullandığından beri yavaştır.Bazı şeyleri olumsuz etkiler ve pek çok soket kullanır.
Bundan kaçınmak için,
ypbind sunucuyu bulmadan bağlantı için beklemez.
Aslında her domain için sunucuların listesi /var/yp/binding/<domainename>.<sürümü>
düzenli olarak denetlenir.
yp-araçları
Bo kısımda yp-tools paketi ile ilgili kısaca bilgi verilecek.
package. Daha fazlasını öğrenmek için man sayfalarına bakabilirsiniz, her araç için oldukça geniş açıklamalar bulunmaktadır. ;-P
- domainname : NIS domain ismini tekrarlar ya da düzeltir (seçeneğe bağlı olarak)
- ypcat : NIS haritalarında sunulan değerleri görmeye yarar.
- ypmatch : NIS haritalarındaki bir ya da daha fazla bilgiyi görmeye yarar.
- ypset : ypbind istenilen bir NIS sunucusuna bağlantı kurar.
- ypwhich : NIS sunucusunun ismini verir. -m ile harita ismini verir, ana harita ismini tekrarlar.
- yppoll : haritaların argümanlarını alır ve ana sunucunun domain ismini tekrarlar.
NIS+ üzerine bir kaç söz
Şu ana kadar NIS'in değişik biçimlerinden bahsetmedik.Ağ üzerinde NIS kullanımı büyük bir güvenlik riski demektir.
Örneğin NIS sunucusu kötü korunuyorsa ve bazı kişilerin kötü niyeti varsa şunlar keşfedilebilir :
- NIS domain ismi
- NIS istemcilerin IP adresleri
çok kolay bir lokma olacaktır.Makinaların IP adresleri ve
ypcat passwd komutuyla şifreler kolaylıkla ele geçirilecektir. :-(
NIS+, açkıların değişimi ve veri kodlama üzerine yetkilendirme protokolü tabanlı
güvenlik katmanlarına sahiptir.
Bilgi farklı dizinlerdeki tablolarda korunur.Tablonun her kolonu özel bir başlığa sahiptir, örneğin
herhangi bir "hasas durum" verisi , ikili taban biçimi,
gibi ...
Bir önceki yapıda dizin ve tablo üzerindeki ve elbette tablo üzerindeki kolonlara erişim yetkileri kolaylıkla sağlanır.
Bu durum NIS+ üzerinde yetki sahibi olmayan herhangi bir kullanıcının şifre tablolarına erişimi
yasaklamasına olanak tanıdığı anlamına geliyor. Fakat bu tüm yetkili kullanıcıların "passwd" alanı dışında
şifre tabloları üzerinde giriş yapmalarını sağlar.Yalnızca "passwd" 'nin sahibi bunu düzeltebilir.
4 güvenlik katmanı vardır :
- Nobody : Kullanıcı yetkilendirilmez ;
- Owner : Kullanıcı sahip olarak yetkilendirilir ;
- Group : Kullanıcı yetkilendirilir ve uygun gruba bu nesneye erişim sağlanır ;
- World : Kullanıcı yetkilendirilir fakat sahibi değildir ve uygun gruba nesneye erişim sağlanmaz.
Bu yapılandırmada, root yalnızca bir diğer kullanıcı ... ya da,
neredeyse ;-) Eğer yetkiler düzgün verilmemişse ,diğer kullanıcıların şifrelerini artık göremeyecektir.
Dolayısıyla diğer kullanıclar gibi yetkilendirilmek istemeyecektir ... fakat hanüz kolaylıkla
su yapabilir :)
Password dışında ağ üzerinde veri dağılmı şifrelenmiş olmayacaktır.Ağda açık yazı tabanlı okunabilir bir Password
dosyası olmayacaktır.
NIS+ güçlü bir araçtır ... fakat yapılandırılması zordur. Thorsten
Kuduk şunları yazmıştır : (NIS, NIS+, NIS-HOWTO üzerine çalışıyor ... dolayısıyla neden bahsettiğini iyi biliyor ;-) :
"NIS ve NIS+ arasındaki seçimi yapmak çok kolaydır: eğer güvenlik kaygınız yoksa NIS kullanın.
NIS+ 'ın yönetimi çok daha problemli olacaktır (özellikle sunucu tarafında)"
Sonuç
NIS sunucusunun zaten kurulu olduğu bir ağa nasıl makina ekleneceğini öğrendik.
Bundan sonraki yazıda sunucunun nasıl yapılandırılacağını ve nasıl çalışacağını göreceğiz
Kısa notlar
- ... var/yp/binding1
- Dosyanın doğru yeri bir dağıtımdan diğerine genellikle çok farklı değildir.
Örneğin,
ypbind daemon'nın kurulumu
başlangıç anında : /etc/init.d/nis, /sbin/init.d/ypclient,
/etc/rc.d/init.d/ypbind, /etc/rc.local dosyalarıyladır
- ... genel yayın(broadcast)2
- Bulunulan ağda mesaj, belirli bir hedef adresi olmaksızın gönderilir(X.Y.0.0 gibi).
- ... netgroup3
- /etc/netgroup dosyası üçlü gruplar tanımlar
(host, user, domain), uzaktan erişim komutları kullandığınızda yetkilendirmeleri denetler (uzaktan erişim, kabuk ya da mount gibi).
Ayrıntılar için man sayfalarına bakın.