Portál AbcLinuxu, 7. května 2025 07:28

NFS+NIS+LTSP - přihlašování na server - II

26. 4. 2005 | Zdeněk Štěpánek
Články - NFS+NIS+LTSP - přihlašování na server - II  

Nastavení NIS na serveru a stanici, instalace LTSP.

Nastavení NIS na serveru

Na Red Hatu je potřeba mít nainstalovaný balíček "ypserv" a "nis-utils". Nastavení je v souboru /etc/ypserv.conf, ale já osobně jsem v něm nemusel změnit ani řádek. Dále je potřeba nastavit NIS-doménu, ta je v Red Hatu v /etc/sysconfig/network; přidejte řádek NISDOMAIN:

cat /etc/sysconfig/network

NETWORKING=yes
HOSTNAME=server.domena.tld
GATEWAY=192.168.1.1
NISDOMAIN=domena.tld

Pak ještě do /var/yp/ypservers dejte celé hostname NIS serveru:

cat /var/yp/ypservers

server.domena.tld

Nakonec ve /var/yp/Makefile nastavte proměnnou ALIASES podle toho, jaký používáte poštovní server, a kde máte soubor aliases. V mém případě /etc/postfix/aliases. Je také možné použít symlink /etc/alises.

Nyní můžeme provést sestavení NIS databáze:

/usr/lib/yp/ypinit -m

Zkusíme ještě updatovat NIS databázi. Tento update je nutný pro promítnutí změn z lokálních souborů (/etc/passwd, ...) do NIS databáze.

cd /var/yp/
make
gmake[1]: Entering directory `/var/yp/domena.tld'
Updating passwd.byname...
Updating passwd.byuid...
Updating group.byname...
Updating group.bygid...
Updating netid.byname...
gmake[1]: Leaving directory `/var/yp/domena.tld'

Pokud vše dobře dopadne, nastavte, aby se služby ypserv a yppasswd spouštěly při startu. Yppasswd slouží ke změnám hesla ze stanice. Změna hesla ze stanice se vlastně provádí síťově a právě démon yppasswd to obhospodařuje na serveru.

Nastavení NIS na stanici

Na stanici je potřeba nainstalovat balíček "yptools". Nastavení je v několika souborech:

cat /etc/defaultdomain

domena.tld

a

cat /etc/yp.conf

domain domena.tld server 192.168.1.2

V souvislosti s /etc/yp.conf jsem objevil chybu. Nevím, kdo nebo co, ale pokaždé při bootu bylo v tomto souboru:

domain domena.tld broadcast

Název domény byl správně, ale namísto server 192.168.1.2 tam bylo broadcast. Zřejmě by to fungovalo v případě, že by NIS server byl na lokálním subnetu. Ale to není můj případ, a tak jsem tuto chybu obešel následujícím kódem, která se spouští v /etc/rc.d/rc.inet2 ještě před připojováním NIS serveru:

echo "Soucasny stav yp.conf:"
cat /etc/yp.conf
echo "Zapisuji spravny yp.conf."
echo "domain domena.tld server 192.168.1.2" > /etc/yp.conf

Data z NIS serveru pak připojíme takto:

/etc/rc.d/rc.yp

Interně se spouští program ypbind.

Funkčnost NISu ověríme takto:

ypcat passwd.byname

Začne se vypisovat soubor passwd, který je na serveru. Všimněte si, že je jednak seřazený jinak než originál, a zadruhé jsou uvnitř i kryptovaná hesla. NIS vznikl původně na Solarisu, dávno před vznikem nějakého /etc/shadow. V how-to se dokonce doporučuje na serveru stínová hesla zrušit, nicméně v mém případě to nečinilo sebemenší potíže. Zřejmě mám novější verzi, než je popisovaná v how-to.

O démonu yppasswd jsme již mluvili. Síťovou změnu hesel na straně klienta zajišťuje nečekaně program yppasswd. Doporučuje se nahradit jím stávající passwd, práce je s ním identická.

mv /usr/bin/passwd /usr/bin/passwd.old
ln /usr/bin/yppasswd /usr/bin/passwd -s

Dále je potřeba nastavit soubor /etc/nsswitch.conf. Tam se definuje, která data půjdou z lokálu, a která z NIS serveru. Obsah tohoto souboru je v mém případě následující:

cat /etc/nsswitch.conf

passwd:     nis files
shadow:     nis files
group:      nis files
hosts:      files dns nis
services:   files nis
networks:   files nis
protocols:  files nis
rpc:        files nis
ethers:     files nis
netmasks:   files nis
bootparams: files nis
netgroup:   files nis
publickey:  files nis
automount:  files nis
aliases:    files nis

A jako poslední věc doplníme do /etc/passwd a /etc/group virtuální uživatele a skupiny z NISu. Některé řádky jsem vynechal, ale jedná se o zcela standardní soubory ze standardní instalace, jediný rozdíl je v posledním řádku. Záznamy, které jsou v těchto souborech, mají zřejmě vyšší prioritu než data z NISu; minimálně root má stále heslo z lokálu a ne ze serveru.

cat /etc/passwd

root:x:0:0::/root:/bin/bash
bin:x:1:1:bin:/bin:
daemon:x:2:2:daemon:/sbin:
...
...
sshd:x:33:33:sshd:/:
gdm:x:42:42:GDM:/var/state/gdm:/bin/bash
pop:x:90:90:POP:/:
nobody:x:99:99:nobody:/:
+::::::

a>

cat /etc/group

root::0:root
bin::1:root,bin,daemon
daemon::2:root,bin,daemon
...
...
nobody::98:nobody
nogroup::99:
users::100:
console::101:
+:::

Nyní zkuste restartovat počítač a přihlásit se jako nějaký uživatel, který je na serveru. Pokud to jde, můžete si pogratulovat. Zkuste ještě, jestli funguje změna hesla, a hotovo.

Více o NIS lze najít na http://www.linux-nis.org/ a v The Linux NIS(YP)/NYS/NIS+ HOWTO.

LTSP - Linux Terminal Server Project

LTSP není třeba představovat. Ale jestli se ptáte, proč to sem motám, tak proto, že v práci (střední škola) máme server, kde jsou domácí adresáře, ale provozovat LTSP server by už nezvládl, a tak jsem výše zmíněným způsobem stvořil aplikační server.

Přesněji řečeno, prozatím to běží na mém osobním kompu, který serveru nesahá ani po kolena. Mimochodem, víte, že z grantů ministerstva školství musí jít minimálně 50 % peněz na nákup softwaru? Takže když chci server za 100 000 Kč, tak musím najít SW za dalších 100 000 Kč. A asi jste v televizi už slyšeli, co se děje, když někdo použije grant na něco jiného, než byl určen. Nemám slov...

No a na tento "aplikační server" jsem nainstaloval LTSP. Článků už bylo napsáno dost, takže jen v rychlosti.

LTSP vyžaduje minimálně 3 služby: tftp, dhcp a nfs. Přes tftp se nahrává jádro na klienta, DHCP rozdává klientům IP adresy a přes NFS se exportuje root filesystém pro klienta. DHCP samozřejmě vůbec nemusí být na LTSP serveru, může být na jakémkoliv počítači v subnetu.

Funkční konfigurace DHCP pro jednoho LTSP klienta:

cat /etc/dhcpd.conf

option domain-name "domena.tld";
option domain-name-servers 192.168.1.2;
option netbios-name-servers 192.168.1.2;
ddns-update-style none;

option subnet-mask 255.0.0.0;
default-lease-time 43200;
max-lease-time 518400;
option root-path "10.0.0.1:/opt/ltsp/i386";

subnet 192.168.5.0 netmask 255.255.255.0 { not authoritative; }

subnet 10.0.0.0 netmask 255.0.0.0 {
  option broadcast-address 10.255.255.255;
  range dynamic-bootp 10.0.0.100 10.0.0.254;
  option routers 10.0.0.1;
  use-host-decl-names on;
  option log-servers 10.0.0.1;

  host xklient  {
    hardware ethernet 00:30:4f:07:af:01;
    fixed-address       10.0.0.2;
#    next-server        10.0.0.254;
#    urcuje TFTP server, je odlisny od
"routers"
    filename "/tftpboot/lts/vmlinuz.ltsp";
    }
}

Zmínil bych snad jen parametr next-server. LTSP standardně hledá TFTP server na IP adrese brány subnetu option routers 10.0.0.1;. Tato direktiva zařídí, že jako TFTP server se použije 10.0.0.254. V tomto konkrétním případě ale není potřeba.

TFTP server se spustí příkazem:

/usr/sbin/in.tftpd -l /

Root filesystém bezdiskového klienta vyexportujeme takto:

cat /etc/exports

/opt/ltsp/i386 10.0.0.0/255.0.0.0(ro,no_root_squash,sync)

Osobně doporučuji použít instalační program LTSP k nainstalování balíčků, ale konfiguraci služeb si udělat ručně. Na LTSP serveru nutně musí být jen NFS. DHCP může být kdekoliv na subnetu a TFTP v podstatě také. Cílem tohoto článku není instalace LTSP, krom toho je dost jednoduchá, takže vás odkáži jen na následující odkazy:

Více o LTSP lze najít zde:

Související články

NFS+NIS+LTSP - přihlašování na server - I
Domácí síť
Linuxové DMZ
Soukromá síť
Stavíme bezdrátovou síť
Linux Terminal Server Project
Nastavení poštovního subsystému v Linuxu
Chroot prostředí
Čo keď nechodí sieť?
Ako funguje e-mail
Mailserver s odvirováním pošty
Jemný úvod do adresace v protokolu IP verze 4

Další články z této rubriky

V sobotu se uskuteční konference CryptoFest
Pozor na androidové aplikace
Silent Circle představil bezpečný smartphone Blackphone 2
Android je bezpečnější, řada hrozeb však stále přetrvává
Avast varuje před nebezpečnými aplikacemi v Google Play

Diskuse k tomuto článku

26.4.2005 13:56 lubos
Rozbalit Rozbalit vše 50% na software
Odpovědět | Sbalit | Link | Blokovat | Admin
K tomu se uz neda rict nic vic jenom, ze zodpovedni dostali neco hezkyho od jiste nejmenovane firmy.
29.4.2005 10:42 H
Rozbalit Rozbalit vše Re: 50% na software
V nejhorsim se za ty penize da koupit Matlab, Mathematica, Maple, a podobne. Jsou to uzitecne programy a pod Linuxem funguji.
26.4.2005 15:15 Zdeněk Štěpánek | skóre: 57 | blog: uz_mam_taky_blog | varnsdorf
Rozbalit Rozbalit vše 50
Odpovědět | Sbalit | Link | Blokovat | Admin
Zdravim

Konkretnejsi informace lze najit zde:

http://www.e-gram.cz/Documents/MP28885.pdf

Bod 9.3

Zdenek
www.pirati.cz - s piráty do parlamentu i jinam www.gavanet.org - czfree varnsdorf
26.4.2005 16:47 petr_p
Rozbalit Rozbalit vše Re: 50
Tak si ten doplnek do 100 % daji do OPPP. (Kdyby tohle vedeli dodavatele, tak by byl GNU software vsude.)
26.4.2005 20:33 tvi | skóre: 3 | Brno
Rozbalit Rozbalit vše Re: 50
Mimochodem, víte, že z grantů ministerstva školství musí jít minimálně 50 % peněz na nákup softwaru?

Nemusí, ale může. V tom je určitý rozdíl. Pokyn M$MT říká akorát to, že můžete použít maximálně 50% dotace na hardware. Zbytek můžete použít buď na SW (ne nutně systémový a ne nutně od M$), odměny řešitelům projektu (bohužel jen formou dohod) a další náklady, ale tak tomu bývá u většiny grantů, nejen u těch v rámci SIPVZ.

Jiná věc je, jak se ministerstvo chová v reálu, zejména k projektům založeným na Open Source a Free Software. Projekty jsou bohužel dosud jedinou cestou jak na OSS/FS ve školách získat nějaké finance (to se částečně změní od tohoto roku, kdy i tzv. "červené školy" začnou od státu dostávat určitý příspěvek, o který je před tím okrádali indošisté) a z hlediska předkladatelů je to svého druhu loterie s armádou byrokratických klacků pod nohama. Ale to už je jiná pohádka...

Mimochodem - když už vzpomínáte LTSP, zrovna před týdnem vyšla nová verze 4.1.1, která vypadá docela kůůůl - podle changelogu má mít konečně vyřešeno lokální připojování USB zařízení a další vychytávky. Ještě jsem ji teda nezkoušel, ale už se docela těším.
Dobrej Indoš je jen mrtvej Indoš

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.