Következő Előző Tartalom

6. Mire van szükség a NIS üzembe helyezéséhez?

6.1 Határozzuk meg, hogy Szerver, Szolga vagy Kliens vagy

Ahhoz, hogy válaszolni tudj e kérdésre, két esetet kell megvizsgálni:

  1. A géped egy már NIS szervereket tartalmazó hálózat része lesz
  2. Még nincs NIS szervered a hálózatban

Az első esetben csak a kliens programokra van szükséged (ypbind, ypwhich, ypcat, yppoll, ypmatch). A legfontosabb program az ypbind. Ennek a programnak állandóan futnia kell, ami azt jelenti, hogy mindig szerepelnie kell a folyamatok listájában (list of processes). Ez egy démon folyamat, és a rendszer indító állományaiból kell indítani (pl. /etc/init.d/nis, /sbin/init.d/ypclient, /etc/rc.d/init.d/ypbind, /etc/rc.local). Amint fut az ypbind, a géped máris NIS klienssé válik.

A második esetben, ha még nincs NIS szervered, akkor a NIS szerver programokra is szükséged lesz (általában ypserv-nek hívják). A Setting up a NIS Server fejezet mutatja be, hogy hogyan kell a Linux gépedre NIS szervert telepíteni Peter Eriksson és Thorsten Kukuk "ypserv" változatával. Jegyezzük meg, hogy ez a megvalósítás a 0.14-es változattól kezdve támogatja a mester-szolga koncepciót, amiről a 4.1-es fejezetben esik szó.

Elérhető egy másik szabad NIS szerver, amit "yps"-nek hívnak, Tobias Reber írta Németországban, támogatja a mester-szolga koncepciót, de van néhány más korlátozása, és jóideje nincs rá támogatás.

6.2 A Szoftver

A NIS kliens és szerver szoftver sikeres lefordításához minden szükséges rendszerhívás megtalálható a "/usr/lib/libc.a" (version 4.4.2 és újabb) rendszerkönyvtárban, vagy a "/lib/libc.so.x" oszott könyvtárban. A GNU C Könyvtár 2-höz (glibc 2.x), a /lib/libnsl.so.1 is szükséged lesz.

Néhányan jelezték, hogy a NIS csak 4.5.21 és újabb "/usr/lib/libc.a" változatokkal működik, tehát ha biztonságosan szeretnéd használni, ne használj régebbi libc-ket. A NIS kliens szoftver beszerezhető az alábbi helyekről:

  Hely                  Könyvtár                         Állomány neve

  ftp.kernel.org        /pub/linux/utils/net/NIS         yp-tools-2.2.tar.gz
  ftp.kernel.org        /pub/linux/utils/net/NIS         ypbind-mt-1.4.tar.gz
  ftp.kernel.org        /pub/linux/utils/net/NIS         ypbind-3.3.tar.gz
  ftp.kernel.org        /pub/linux/utils/net/NIS         ypbind-3.3-glibc5.diff.gz
  ftp.uni-paderborn.de  /linux/local/yp                  yp-clients-2.2.tar.gz

Amint megszerezted a szoftvert, kérlek, kövesd a szoftverrel kapott utasításokat. Az yp-clients-2.2 libc4-el és libc5-el használható 5.4.20-ig. A libc5.4.21-hez és glibc 2.x-hez yp-tools-1.4.1-re vagy újabbra lesz szükséged. Az új yp-tools-2.2-nek minden Linux libc-vel működnie kell. Mivel volt egy hiba a NIS kódban, ne használj libc-5.4.21-5.4.35 közötti változatot. Használj inkább 5.4.36-os vagy frisebb libc-t, vagy a a legtöbb YP program nem fog működni. Az ypbind 3.3 is működni fog minden könyvtárral. Ha gcc-2.8.x-et vagy nagyobbat használsz, egcs-t vagy glibc-2.x-t, hozzá kell adnod az ypbind-3.3-glibc5.diff toldást az ypbind-3.3-hoz. Kérlek, soha ne használd az yp-clients-2.2 beli ypbind-et. Az ypbind-mt egy új, többszálú démon. 2.2-es Linux kernel kell hozzá, és 2.1-es vagy újabb glibc.

6.3 Az ypbind démon

Miután sikeresen lefordítottad a szoftvert, készen állsz a telepítésére. Az ypbind démon számára megfelelő hely a /usr/sbin könyvtár. Néhányan mondhatnák, hogy nincs szükséged ypbind-re NYS-t tartalmazó rendszerben. Tévednek. ypwhich-re és ypcat-ra mindig szükség van.

Ezt természetesen root-ként kell elvégezned. A többi bináris-t (ypwhich, ypcat, yppasswd, yppoll, ypmatch) olyan könyvtárba kell tenni, ami minden felhasználó számára elérhető, általában a /usr/bin könyvtárba.

Újabb ypbind változatok /etc/yp.conf nevű konfigurációs állománnyal rendelkeznek. Bedrótozhatsz ide egy NIS szervert - további információkért nézd meg az ypbind(8) manuál oldalt. Erre az állományra a NYS esetén is szükséged van. Például:

  ypserver voyager
  ypserver defiant
  ypserver ds9

Ha a rendszer fel tudja oldani a gépneveket NIS nélül, használhatsz gépnevet, különben IP címet kell használnod. Az ypbind-3.3-ban van egy hiba, és csak a legutoldó bejegyzést használja (ypserver ds9 a példában). Minden más bejegyzést figyelmen kívül hagy. Az ypbind-mt helyesen kezeli ezt, és azt használja, amelyik először válaszol.

Jó ötlet kipróbálni az ypbind-et, mielőtt beleteszed az indító állományokba. Az ypbind kipróbálásához a következőket kell tenned:

Ettől a ponttól kezdve használhatod az olyan NIS kliens programokat, mint például az ypcat, stb... Például "ypcat passwd.byname" visszaadja neked a teljed NIS jelszó adatbázist.

FONTOS: Ha kihagytad a tesztelő eljárást, győződj meg róla, hogy beállítottad a körzet nevét, és létrehoztad a következő könyvtárat:

    /var/yp

Ennek a könyvtárnak léteznie KELL az ypbind sikeres indulásához.

Ahhoz, hogy leellenőrizd, hogy a körzetnév helyes, használd a /bin/ypdomainname programot az yp-tools-2.2-ből. Ez az yp_get_default_domain() függvényt használja, ami sokkal szigorúbb. Nem engedélyezi például a "(semmi)" körzetnevet, ami az alapértelmezett Linux alatt, és sok probléma okozója.

Ha a teszt működik, most érdemes megváltoztatnod az indító démon állományokat, hogy az ypbind a rendszer indulásakor indulhasson, és a rendszered NIS kliensként viselkedjen. Győződj meg róla, hogy a körzetnév az ypbind indítása előtt beállításra kerül!

Nos, ennyi. Indítsd újra a géped, és nézd meg a rendszer-üzeneteket, hogy az ypbind elindult-e.

6.4 NIS Kliens beállítása Hagyományos NIS használatával

Gépnév feloldáshoz be kell állítanod (vagy hozzá kell adnod) a "nis"-t a feloldás sorrendjének sorához a /etc/host.conf állományban. Nézd meg a "resolv+.8" manuált a részletes leírásért.

Add hozzá a NIS kliensed /etc/passwd állományához a következő sort:

+::::::

Használhatod a + és a - karaktereket felhasználó hozzáadásához/kizárásához vagy megváltoztatásához. Ha a vendég felhasználót szeretnéd kizárni, csak add hozzá a /etc/passwd állományodhoz a -guest -et. Más parancsértelmezőt (pl. ksh) szeretnél használtatni a "linux" felhasználóval? Nem probléma, egyszerűen add hozzá a "+linux::::::/bin/ksh" (idézőjelek nélkül) sort a /etc/passwd állományodhoz. Azokat a mezőket, amelyeket nem akarsz használni, üresen kell hagyni. Használhatod a Netgroups-t felhasználó szabályozáshoz.

Például ahhoz hogy csak miquels, dth és ed, valamint a sysadmin hálózati csopotz számára engedélyezd a bejelentkezés-hozzáférést, és a többiek számára megmaradjon az azonosító, a következőket kell megadnod:

      +miquels:::::::
      +ed:::::::
      +dth:::::::
      +@sysadmins:::::::
      -ftp
      +:*::::::/etc/NoShell

Jegyezzük meg, hogy Linux rendszerben a jelszó mezőt is felül lehet bírálni ugyanúgy, ahogy ebben a példában tettük. Eltávolítottuk az "ftp" felhasználót is, tehát itt többé nem létezik, azaz az anonymous ftp nem fog többé működni.

A hálózati csoport így fog kinézni:

sysadmins (-,software,) (-,kukuk,)

FONTOS: A hálózati csoport jellemző a 4.5.26-os libc változattól kezdve használható. Ha 4.5.26-os libc-nél korábbi változatod van, minden NIS jelszó-adatbázisban szereplő felhasználó hozzáférhet a linux gépedhez, ha "ypbind"-et futtatsz!

6.5 NIS Kliens beállítása NYS használatával

Mindössze csak arra van szükséged, hogy a NIS konfigurációs állomány (/etc/yp.conf) a helyes szerver(ek)re mutasson az információkért. Ezen kívül a Név Szolgáltatás Kapcsoló konfigurációs állományát (/etc/nsswitch.conf) helyesen be kell állítani.

Az ypbind-et fel kell még telepítened. Erre nem a libc-nek, hanem a NIS(YP) tools-nak van szüksége.

Ha szeretnéd használni a felhasználók hozzáadása/kizárása jellemzőt (+/-guest/+@admins), "passwd: compat"-t és "group: compat"-t be kell az nsswitch.conf-ba tenned. Jegyezzük meg, hogy nincs "shadow: compat"! "shadow: files nis"-t kell használnod ebben az esetben.

A NYS források nem részei az 5-ös libc forrásnak. Ha a configure-t futtatod, mondj első alkalommal "NO"-t a "Values correct" kérdésre, és utána "YES"-t a "Build a NYS libc from nys".

6.6 NIS Kliens beállítása glibc 2.x segítségével

A glibc a "hagyományos NIS"-t használja, tehát el kell indítanod az ypbind-et. A Név Szolgáltatás Kapcsoló konfigurációs állományát (/etc/nsswitch.conf) helyesen be kell állítani. Ha a compat módot használod a passwd-hez, shadow-hoz vagy a group-hoz, hozzá kell adnod ezen állományok végéhez a "+"-t, és használhatod a felhasználó hozzáadás/kizárás jellemzőt. A beállítás ugyanilyen Solaris 2.x esetén is.

6.7 Az nsswitch.conf állomány

A Hálózati Szolgáltatások kapcsoló állomány (/etc/nsswitch.conf) határozza meg egy meghatározott információ csoport lekérdezésekor a feloldások sorrendjét, hasonlóan ahogy a /etc/host.conf állomány meghatározza, hogy milyen módon történjen a gépnév feloldása. Például a

    hosts: files nis dns

sor megmondja, hogy a gépnév feloldás függvény először a helyi /etc/hosts állományt nézze, majd NIS feloldás kövesse, végül a körzetnév szolgáltatáson keresztül oldja fel (/etc/resolv.conf és named). Ennél a pontnál, ha nincs találat, hibával tér vissza. Ezt az állományt minden felhasználó számára olvashatóvá kell tenni! Több információt találsz még erről a nsswitch.5, vagy a nsswitch.conf.5 manuálokban.

Egy NIS számára jó /etc/nsswitch.conf állomány például:

#
# /etc/nsswitch.conf
#
# Egy példa Név Szolgáltatás Kapcsoló konfigurációs állomány. Ezt az
# állományt úgy kell rendezni, hogy a leginkább használt szolgáltatás
# kerüljön az elejére.
#
# A '[NOTFOUND=return]' bejegyzés azt jelenti, hogy egy bejegyzés
# keresése be kell, hogy fejeződjön, ha az előző bejegyzés keresése 
# nem adott vissza semmit. Jegyezzük meg, hogy ha a keresés más
# okból hibás (mondjuk nem válaszol NIS szerver), akkor a keresés
# folytatódik a következő bejegyzéssel.
#
# Lehetséges bejegyzések:
#
#       nisplus                 Használj NIS+ -t (NIS 3-as verzió)
#       nis                     Használj NIS-t   (NIS 2-es verzió), YP-nek is hívják
#       dns                     Használj DNS-t   (Domain Name Service: Körzet Név Szolgáltatás)
#       files                   Használd a helyi állományokat
#       db                      Használd a /var/db adatbázist
#       [NOTFOUND=return]       Hagyd abba a keresést, ha nem találod
#

passwd:     compat
group:      compat
# libc5 esetén shadow: files nis -t kell használod
shadow:     compat

passwd_compat: nis
group_compat: nis
shadow_compat: nis

hosts:      nis files dns

services:   nis [NOTFOUND=return] files
networks:   nis [NOTFOUND=return] files
protocols:  nis [NOTFOUND=return] files
rpc:        nis [NOTFOUND=return] files
ethers:     nis [NOTFOUND=return] files
netmasks:   nis [NOTFOUND=return] files
netgroup:   nis
bootparams: nis [NOTFOUND=return] files
publickey:  nis [NOTFOUND=return] files
automount:  files
aliases:    nis [NOTFOUND=return] files

A passwd_compat, group_compat és shadow_compat csak glibc 2.x alatt támogatott. Ha nincs shadow szabály a /etc/nsswitch.conf állományban, glibc a passwd szabályt fogja alkalmazni a feloldáshoz. Van még néhány feloldó modul a glibc-hez, mint például a hesoid. Bővebb információért olvasd el a glibc dokumentációját.

6.8 Árnyék jelszavak NIS-sel

A NIS feletti árnyék jelszavak használata mindig rossz ötlet. Elveszted az árnyék által biztosított biztonságot, és csak néhány Linux C könyvtár támogatja. Egy jó módszer arra, hogy elkerüld az árnyék jelszavak használatát NIS felett, hogy csak a helyi felhasználók esetén használsz árnyék jelszót a /etc/shadow állományban. Vedd ki a NIS felhasználó bejegyzéseket az árnyék adatbázisból, és tedd vissza a jelszót a passwd állományba. Így tehát használhatod az árnyék jelszót a root bejelentkezéshez, és a hagyományos passwd-t a NIS felhasználóhoz. Ennek a módszernek megvan az az előnye, hogy minden NIS kliens esetén működni fog.

Linux

Az egyetlen Linux libc, amely támogatja az árnyék jelszavak NIS feletti használatát a GNU C 2.x könyvtár. A Linux libc5-ben nincs ehhez támogatás. A Linux libc5 engedélyezett NYS-sel lefordítva tartalmaz némi kódot hozzá. Azonban ez a kód hibásan törött néhány esetben, és nem működik minden helyesen árnyék bejegyzéssel.

Solaris

Solaris nem támogatja a NIS feletti árnyékjelszavakat.

PAM

PAM nem támogatja a NIS feletti árnyék jelszavakat, különösen a pam_pwdb/libpwdb. Ez elég nagy probléma a RedHat 5.x felhasználók számára. Ha van glibc-d és PAM-od, meg kell változtatnod a /etc/pam.d/* bejegyzéseket. Cseréld ki az összed pam_pwdb szabályt a pam_unix_* modulokban. Egy pam_unix_auth.so modul beli hiba miatt ez a modul nem mindig működik.

A /etc/pam.d/login állomány például így néz ki:

#%PAM-1.0
auth       required     /lib/security/pam_securetty.so
auth       required     /lib/security/pam_unix_auth.so
auth       required     /lib/security/pam_nologin.so
account    required     /lib/security/pam_unix_acct.so
password   required     /lib/security/pam_unix_passwd.so
session    required     /lib/security/pam_unix_session.so

Az auth-hoz (hitelesítés) a pam_unix_auth.so modult, az account-hoz (azonosító) a pam_unix_acct.so modult, a password-höz (jelszó) a pam_unix_passwd.so modult és a session-höz (folyamat) a pam_unix_session.so modult kell használnod.


Következő Előző Tartalom