Portál AbcLinuxu, 27. května 2024 08:31

Domácí síť - III

14. 5. 2003 | Vlastimil Ott
Články - Domácí síť - III  

Závěrečný díl miniseriálu vám pomůže proměnit vaše staré pentium v plně grafického síťového klienta.

V minulém díle jsme navázali spojení mezi Serverem a Stanicí. Dnes instalaci dokončíme a proměníme Stanici v grafický terminál. Tato část je poněkud namáhavá na čas, protože "vyladění" provozu vyžaduje jistou trpělivost při zkoušení mnoha nastavení. Ale je možné, že vám se to povede rychleji než mně.

Ještě k NFS a bezpečnosti

Kromě toho, že budete na Stanici pracovat v grafickém prostředí, můžete pochopitelně využívat i další konzole systému. Tam oceníte Midnight Commander a, pokud máte na Stanici zvukovou kartu, můžete také poslouchat hudbu v mp3 (program mpg123). Máte tedy možnost přimountovat si adresáře s hudbou do adresářové struktury Stanice. (O zvuku vizte níže.) Pro případ, že se potřebujete z konzole dostat do adresářové struktury na Serveru, oceníte program ssh (a pochopitelně server sshd běžící na obou počítačích). Je nevhodné spouštět na serveru služby telnet nebo ftp, protože tím nabízíte obsah harddisku celému světu. Zde je na místě alespoň krátce se zmínit o bezpečnosti. Základním principem je: aktivovat pouze služby/servery, které potřebujete. To určitě není ftp a telnet. Zamezte tedy jejich spuštění při startu systému. Dále je vhodné nakonfigurovat soubory /etc/inetd.conf, hosts.deny a další, nemluvě o instalaci firewallu. Pro základní informační přehled o tom, co "nabízíte" všem zájemcům, spusťte jako root příkaz nmapfe.

Průzkumník portů
nmap

Jak vidíte, na můj počítač můžete poslat své dokumenty k tisku (tiskový systém CUPS na portu 631), můžete se pokusit připojit pomocí šifrovaného spojení (ssh), odesílat přes mě své maily (smtp), připojit se k mému x-window systému a nebo používat mé freetype fonty. Tohle není pozvánka! Naštěstí jsem modemový uživatel, kterému přiděluje IP adresu provider náhodně, ale existují automaty, které testují i takové uživatele. Už jsem měl několik návštěv přes ftp. Bezpečnost je citlivé téma, které se nevyplatí podceňovat! (Pro mě je to oblast, na které budu pro svůj klid pracovat v nejbližší budoucnosti.) ;-)

Konečně login?

Pojďme k hlavnímu cíli. Jak donutit grafický přihlašovací manažer, aby naslouchal požadavkům ze sítě (Stanice), příp. aby požadavky vysílal (Server)? V Linuxu se používá standardní xdm. Obě majoritní prostředí (GNOME a KDE) nabízejí své manažery (kdm a gdm), které jsou velmi přívětivé. Jejich konfigurace pro naše účely je téměř nulová; musíme pouze nastavit, aby povolily protokol XDMCP, tj. aby přijímaly požadavky na připojení ze sítě. Nezáleží na tom, který z nich používáte; vyberte si ten, který se vám více líbí. Jejich základní konfiguraci si krátce probereme níže.

Konfigurace gdm

Stanice

Předpokládejme, že na Stanici máte nainstalované pouze XFree se standardními součástmi, mezi které patří i xdm. Soubor /etc/X11/xdm/xdm-config musí obsahovat (mimo jiné!) následující řádek (obvykle bývá zakomentovaný "vykřičníkem" a je uveden jako poslední):

DisplayManager.requestPort: 0

Tím nastavíme systém x-window tak, aby naslouchal XDMCP nabídkám k připojení.

Server

xdm

Tento správce přihlášení má celkem významnou nevýhodu: nezobrazuje možná sezení, která si můžete vybrat. Spustí tedy to, které je nastaveno jako standardní (/etc/X11/xinit/xinitrc). Pro správnou komunikaci proveďte následující nastavení:

Soubor /etc/X11/xdm/Xaccess musí obsahovat řádek

*     CHOOSER BROADCAST   #any indirect host can get a chooser

Česky řečeno: nabízej možnost grafického připojení všem, kdo projeví zájem. Jak jistě chápete, hrozí tu možnost zneužití či útoku. Místo hvězdičky je tedy vhodné zadat IP adresu počítače, který se smí připojit. Pokud by toto nastavení nefungovalo, použijte pouze "hvězdičku" příp. IP adresu.

kdm

Pro konfigurační soubor kdm (/opt/kde/share/config/kdm/Xaccess) platí totéž, co pro výše uvedený konfigurační soubor xdm:

*     CHOOSER BROADCAST
#*       # NEBO hvězdička (všichni) pro případ, že předchozí nefuguje

Ujistěte se, že v souboru /opt/kde/share/config/kdm/kdmrc je v sekci [XDMCP] položka enable=true.

gdm

V souboru /etc/X11/gdm/gdm.conf je v sekci [XDMCP] položka enable=true. Narozdíl od předchozích dvou správců neřeší gdm bezpečnost speciálním souborem Xaccess, ale prostřednictvím systémových souborů /etc/hosts.allow a /etc/hosts.deny. V nich je vhodné a nutné! specifikovat klienty, kteří se mohou připojit. Ale nejen to, je také vhodné realizovat zde základní bezpečnostní opatření (opravdu jen základní!). Např.

ALL:ALL EXCEPT LOCAL, .byt

v souboru /etc/hosts.deny zakáže přístup ke všem službám všem klientům kromě počítačů z domény .byt. Pokud ale znovu spustíte program nmapfe, zjistíte, že se mnoho nezměnilo -- počítač je pořád "dokořán", protože doméně .byt nabízíme všechny služby. Ale alespoň víte, že tady jste udělali maximum. Znovu připomínám: bezpečnost se zajišťuje jinými způsoby.

Konečně login!

Pokud na serveru běží x-window systém (a také některý ze zmíněných správců), pokusíme se ze Stanice připojit. Pro testovací účely použijme příkaz X -broadcast. Spustí se XFree, hledá v síti pomocí XDMCP server, ke kterému by se mohl přihlásit. Pokud jej najde, zobrazí jeho okno přihlášení. Pokud jej nenajde, spustí se "čisté" XFree s křížovým kurzorem. Standardně neprobíhá žádné bezpečnostní ověření! Pokud nic nenajde, žádný server nevysílá do sítě (bude nutno restartovat manažer přihlášení na Serveru), nebo klient není autorizován. Pokud se zobrazí přihlašovací okno se jmény uživatelů na Serveru (kdm, gdm), máte vyhráno. Ukončete server klávesovou kombinací Ctrl-Alt-Backspace. Nyní je vhodné změnit na Stanici runlevel číslo 4 (grafické režim) tak, aby se po startu systému automaticky hledaly počítače v síti, ke kterým je možné se připojit a zobrazilo se přihlašovací okno. Soubor /etc/rc.d/rc.4 obsahuje tyto příkazy:

#!/bin/sh
#
# rc.4     This file is executed by init(8) when the system is being
#          initialized for run level 4 (XDM)
#
# Version:    @(#)/etc/rc.d/rc.4 2.00 02/17/93
#
# Author:     Fred N. van Kempen,
# At least 47% rewritten by: Patrick J. Volkerding
#

# Tell the viewers what's going to happen...
echo "Starting up X11 session manager..."

if [ -x /usr/X11R6/bin/X ]; then
  exec /usr/X11R6/bin/X -broadcast
fi

Tím tedy získáte možnost připojit se ke všem počítačům, které připojení v daném segmentu sítě nabízejí. Připojení ke konkrétnímu počítači (třeba i do internetu) se realizuje parametrem -query IP_adresa_pocitace.

Písma

Ze Serveru...

Předpokládáme, že na Stanici nejsou nainstalovány fonty pro X-window (kromě základních 100dpi- a 75dpi-fontů). Zpřístupníme tedy freetype/truetype fonty ze Serveru. Podmínkou toho je, že na serveru běží X Font Server (xfs). Ten je schopen exportovat katalogy fontů "do sítě"; na Stanici běží XFree (nejlépe verze 4.3.0), které je schopno s těmito písmy pracovat. Ověřme si na Serveru, že xfs běží:

ps aux | grep xfs

root    260  0.0  1.1  7128 5748 ? S   10:07 0:01 /usr/X11R6/bin/xfs -daemon

X font server je někdy nutné také nakonfigurovat. (Pozn. pro uživatele KDE: "Instalátor písem" v Ovládacím centru KDE to za vás neudělá! Ten pouze nainstaluje písma do prostředí KDE, ale už ne do samotného XFree.) Protože je konfigurační soubor trochu delší, přikládám jej jako přílohu (jedná se o soubor /etc/X11/fs/config). V každém adresáři, který zařazujeme do katalogu písem, musí existovat soubory fonts.dir a fonts.scale. O jejich vytvoření vizte články o truetype fontech v Mozille; je pravděpodobné, že je vše v pořádku.

...na Stanici

Na Serveru tedy běží xfs a poskytuje katalog písem. Na Stanici musí být XFree nastaveno tak, aby dokázalo tento seznam adresářů použít ve svých vlastních katalozích písem. Zde už xfs běžet nemusí; pouze nastavíme několik parametrů v souboru /etc/X11/XF86Config (jedná se o případ XFree 4.3.0!). Do cesty písem (FontPath) přidáme adresu počítače, na kterém běží font server (192.168.1.10), a specifikujeme port, na kterém naslouchá (obvykle 7100). Více man xfs. Nesmíme zapomenout také na načtení modulů, které umožňují práci s těmito fonty (sekce "Module" a názvy "freetype", "xtt" a další).


...
Section "Files"
   RgbPath    "/usr/X11R6/lib/X11/rgb"
   ModulePath "/usr/X11R6/lib/modules"
   FontPath   "tcp/192.168.1.10:7100"
   FontPath   "/usr/X11R6/lib/X11/fonts/misc/"
   FontPath   "/usr/X11R6/lib/X11/fonts/75dpi/"
   FontPath   "/usr/X11R6/lib/X11/fonts/100dpi/"
EndSection

Section "Module"
   Load "record"
   Load "extmod"
   Load "dbe"
   Load "dri"
   Load "glx"
   Load "xtrap"
   Load "xtt"
   Load "freetype"
   Load "type1"
   Load "speedo"
EndSection
...

Další informace o font serveru získáte příkazy xfsinfo, fslsfonts, showfont, xlsfonts a pochopitelně xfontsel. Následuje ukázka tohoto programu sejmutá na Stanici, tedy v "odlehčeném" x-systému.

Všechna písma v systému X-window

Všechna písma dostupná na Serveru i Stanici.

Písma v kódování ISO8859-2

Všechna písma v kódování ISO8859-2 dostupná na Serveru i Stanici.

Pokud používáte na Stanici jiné prostředí/správce plochy než GNOME nebo KDE (což vřele doporučuji), budou se vám ta písma hodit. Na obrázku je můj Blackbox vyvedený v Microsoft Verdaně (když ještě byla volně přístupná...).

Ukázka
Blackbox menu

Zvuk

Zásadní slabinou představeného řešení je zvuk. Pokud si totiž pustíte např. xmms, zvuk se ozve (vedle) na Serveru! Jasně, vy jste na serveru; nemůže přece hrát Stanice! Ale aby to nebylo tak jasné, chcete-li si na Stanici pustit video (mplayer) ze Serveru, ohlásí vám, že nebylo nalezeno zařízení /dev/video -- protože jste fyzicky na Stanici! Nepochopil jsem, jak to tedy ve skutečnosti je. Která zařízení se použijí ze Serveru a která ze Stanice? Nevím. Všechno, co jsem se zatím dozvěděl, směřuje k faktu, že zatím neexistuje jednotný protokol pro přenos zvuku po síti. Situaci lze řešit za pomoci démonů artsd (z KDE) nebo esd (GNOME), ale nevím jak uspokojivě. Proto jsem vám doporučil, abyste si nainstalovali např. mpeg123: pokud si připojíte adresář s empétrojkami do adresáře na Stanici, můžete hudbu poslouchat lokálně spuštěným programem z konzole (stejně tak např. rádio nainstalované na Stanici uslyšíte jen tam).

Tak a je to!

Pro vaši informaci uvádím údaje o svých strojích a softwaru, abyste si udělali představu:

Server

Původní konfigurace

Nynější konfigurace

Stanice

Doufám, že jsem vám svým (víceméně laickým) návodem pomohl k postavení domácí sítě a že vám to nedalo moc námahy. Pokud máte nějaké dotazy, které budu schopen zodpovědět, ptejte se v diskuzi. Ať vám slouží!

Související články

Domácí síť - I
Domácí síť - II

AbcSeriály: Linux Terminal Server Project
Nastavení síťové karty

Odkazy a zdroje

Linux Documentation Project (PDF, 11,5 MB)

HOWTO:

Networking HOWTO
XDMCP-HOWTO
XFree86-HOWTO

mini-HOWTO:

Home-Network-mini-HOWTO
Remote-X-Apps
TT-XFree86
XDM-Xterm
Xterminals
Thinclient-HOWTO

Seriál Domácí síť (dílů: 3)

První díl: Domácí síť - I, poslední díl: Domácí síť - III.
Předchozí díl: Domácí síť - II

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

PowerDNS – přívětivý a jednoduchý DNS server
Bootování ze sítě: pxelinux a kořenový adresář na NFS
Těžký život Do Not Track
OpenAFS – servery
Architektura IPv6 – konfigurace adres a objevování sousedů (2)

Diskuse k tomuto článku

14.5.2003 08:41 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Proc konfigurovat xdm na stanici?
Odpovědět | Sbalit | Link | Blokovat | Admin
Muj overeny postup pro RH9 je zde :-)

X Terminal Server

Jak jednoduše nastavit vzdálené přihlašování ne server.

Vzdálené přihlášení

Fontserver

Všeobecně

Na serveru je pochopitelně nutné, pokud tam běží nějaký firewall, povolit příslušné porty.
Zvuk jsem vubec neresil, je to tady na praci a ne na diskoteku, pro domaci pouziti samozrejme neplati vypnuti X serveru na serveru a pod. Navic taham uplne vsechny fonty se serveru, nejen freetype. Jinak Woknoidni fonty jdou pry stahnout z sourceforge.net Nejaky dobrak je stahnul, jeste kdyz to slo a nechal je tam vystavene ;-)
XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
14.5.2003 08:47 Robert Krátký | skóre: 94 | blog: Robertův bloček
Rozbalit Rozbalit vše Proc konfigurovat xdm na stanici?
moc hezky 'komentar' :-).
14.5.2003 10:22 Vlastimil Ott | skóre: 66 | blog: Plastique | Opava
Rozbalit Rozbalit vše Proc konfigurovat xdm na stanici?
Tak to jsi ten článek mohl napsat rovnou sám, ne? :-) O těch fontech vím, ale už je mám, taxem nehledal, kde jsou. Jenom jsem nepochopil, jestli tvoje řešení je lepší, rychlejší, bezpečnější nebo XX než to moje? Je jasné, že všechno jde řešit různě. Ja nabízím jednu možnost. --vo
Práce: Liberix, o.p.s. | Blog: OpensourceBlog.cz | Online kurz Zlatý WordPress
14.5.2003 11:31 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Proc konfigurovat xdm na stanici?
No to jsem nemoh. Ja jsem v tom clanku nasel spoustu programu co jsem jeste neznal. Taky mam problem zjistit k cemu vsechno uz jsou GUI nastavovatka tak jsem na ne rezignoval a vsechno radsi konfiguruju primo v textacich a tohle reseni se mi libi, protoze je to vastne o uprave na mene nez deseti mistech ve 4 textovych souborech a zajem je pouzit na strane stanice co nejmene prostredku. Na stanici pak v extremnim pripade nemusi byt nic silnejsiho nez 486 s 16MB RAM bez disku. Jen poradna grafika, monitor a uzivatel ani nepozna u ceho to vlastne sedi, ale v praxi se jedna nejcasteji o P166 a vice s 32-64MB RAM. Co se tyce bezpecnosti tak je problem X protokol - asi by se dal tunelovat pres ssh, ale zatim na to nebyl pozadavek, tak jsem to neresil. Pak jeste font server, jestli ma v sobe nejakou diru nevim. Na stanici potom bezi jen X server a nic vic. Z principu pokud je to diskless je pres nfs namountovanej jen ro root fs stanice a /etc /var /tmp do ram disku. Slysel jsem, ze arts (z KDE) se da nastavit po siti. Jinak prehravani videa se da po xv, x11, nebo sdl (taky jsem si s tim moc nehral a mplayer odbornici by ti rekli vic). Takze na serveru nemusi krome bootp, xdmpc, xfs a nfs na jeden ro adresar bezet vubec nic - tolik k te bezpecnosti. Na stanici potom bezi jen X server a utrum. Otazka je potom zabezpeceni serveru vuci lokalnim utokum, ale to je jina pisnicka. P.S.: V Linuxu jsem uplny zacatecnik, vzdyt jsem s tim zacal teprve pred 2 mesici :-)
XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
14.5.2003 11:47 Daniel Smolik | skóre: 15 | blog: marvin
Rozbalit Rozbalit vše Zvuk
Odpovědět | Sbalit | Link | Blokovat | Admin
Jenom k tomu zvuku. Tak samozrejme to jde a mam to vyzkousene pro artsd. Staci na terminalu nainstalovat NAS (doporucuji verzi 1.6) a pak zkompilovat artsd s podporou NAS. Zaskrtnout ze output device je NAS a je to.
15.5.2003 19:10 TombStone
Rozbalit Rozbalit vše jednicka s hvezdickou
Odpovědět | Sbalit | Link | Blokovat | Admin
autor u me ma jednicku s hvezdickou za pouzivani BlackBoxu :)))
16.5.2003 08:10 Tomáš Tatoušek | skóre: 8
Rozbalit Rozbalit vše Povedlo se !
Odpovědět | Sbalit | Link | Blokovat | Admin
Byl jsem neskutečně překvapen, že to funguje. OpenOffice otevřely během 20 sec. a napodruhé 3 sec. Děkuji autorovi za "user friendly" manual prezentovaný navíc velmi přehlednou formou. Je to idealní řešení pro menší firmu a kancelářské aplikace. Trochu jsem se zapotil v pasáži "Konečně login!".Tady jsem si neuvědomil, že příkaz X -broadcast nutno zadávat logicky na stanici z příkazového řádku bez běžícího X-window systems. Proto bylo nutno upravit řádek v RedHat tak, aby přihlašování nenaběhlo rovnou do grafického řežimu. /etc/inittab x:3:respawn:/etc/X11/prefdm -nodaemon init q Po restartu a přihlášení již kdm po zadání X -broadcast s vyběrem uživatelů naběhlo. Konfigurační soubor pro kdm je v RedHat v /etc/X11/xdm/kdmrc. Fonty nebylo nutno vůbec konfigurovat a tisk jakbysmet. Jenom toho Tuxracera si musím na stanici odpustit :-) .
4.7.2003 02:34 robrob
Rozbalit Rozbalit vše fici to paradne ;))
Odpovědět | Sbalit | Link | Blokovat | Admin
Dakujem, aj vdaka vasmu navodu sa mi to poadrilo rozbehat v MDK 9.1, aj ked som velku cast vyklikal (linuxconf) ide to uplne bezproblemovo :)) neexistuje nejaky sposob aby sa lepsie vyuzivala graficka karta na terminaly ? myslim tym 3d podobne, ak sa nemylim vsetko pocita cpu servera bod po bode, ci nie ?
14.7.2003 11:52 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše fici to paradne ;))
OpenGL (tuším GLX modul X serveru), pak to 3D běží jen na stanici a nezatěžuje to síť. Opačný postup, aby se renderovalo na serveru, mi přijde obtížnější dosáhnout (abych pravdu řekl, tak nevím vůbec jak na to ;-) ).
XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
17.4.2005 08:46 JanM | skóre: 28
Rozbalit Rozbalit vše Vzdalene zapnuti/vypnuti serveru z klienta
Odpovědět | Sbalit | Link | Blokovat | Admin

Už je to trochu starší diskuze, ale přece to zkusím:

Přesně v duchu článku plánuji pořízení pracovní stanice, ovšem navíc bych rád, aby server nemusel stále běžet. Takže by to mělo fungovat asi takto:

Mám představu, že by na serveru mohl běžet nějaký daemon na vzdálený přístup s nastavenými pravidly pro vypnutí, byl by ovládán příkazy ze stanic. Jak zařídit zapnutí serveru v případě bezdiskové stanice, to nevím. Možná bootovat z diskety?

Zkoušel to někdo? Nějaké odkazy?

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