Thin Client: Nieuwe Gebruikershandleiding

Stephen Noble stephen7 at bigfoot.com,

Vertaald door: Ellen Bokhorst, bokkie@nl.linux.org 30 november 1999

1. Hoe goedkope niet meer gebruikte computers in snelle terminals om te zetten door de kracht van je hoofdcomputer te gebruiken. Hiervoor heb je nodig: Een snelle computer die als Server kan fungeren: een client computer (oud en niet meer gewild), Linux compatibele netwerkkaarten, een connectie tussen computers. 2. Hoe systeembeheer met behulp van NFS te centraliseren, d.w.z. door het gehele bestandssysteem van een snellere client op de server te plaatsen.

Inhoudsopgave

1 Introductie 1

2 Hardware en Documentatie 2 2.1 Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2.2 Documentatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

3 Server setup 3 3.1 Controleer je netwerkservices op je server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3.2 Instellen van een dhcpd daemon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3.3 Tftpd setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 3.4 Kernel-image . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 3.5 Beveiliging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

4 Client setup 5

5 Network File System 5 5.1 Server specifiek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 5.2 client specifiek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

6 X-terminal 7

7 Erkenningen & meer oefeningen 8

1 Introductie

• Linux maakt het mogelijk iedere redelijk nieuwe computer als een server voor één of meerdere thinclients te gebruiken. Deze thin-clients kunnen goedkope verouderde computers zijn. Voor een console terminal heb je een 386’r met 4-8mb ram en voor een X-Terminal een 486/66 met 8-16mb ram nodig.

• Één optie is er één zonder harddisk, het maakt minder lawaai en vereenvoudigt het beheer aangezien je slechts één systeem hoeft te beheren.

• Als je veroudere applicaties hebt, kun je ze op de harddisk plaatsen met het verouderde besturingssysteem

• Deze howto is bedoeld voor degenen waar Unix/Linux nieuw voor is, het zal ingaan op essentiële gebieden waar je je bewust van zou moeten zijn en je verwijzen naar andere documentatie op dat gebied waar je je bekend mee zou moeten maken.

• Je zal dit waarschijnlijk nodig hebben als hulp bij de http://www.slug.org.au/etherboot/ documentatie, ik zal wat meer voorbeeld-configuratiebestanden opnemen, en vele van de andere mogelijkheden van etherboot als een oefening aan de lezer overlaten.

• Als je client krachtig genoeg is, hoef je alleen het bestandssysteem te sharen, applicaties kunnen op het client-systeem worden gedraaid. (zeg een 233 32mb ram). Installeer op de server een applicatie en alle clients hebben er toegang toe.

2 Hardware en Documentatie

2.1 Hardware

Wanneer je begint, heb je op z’n minst het volgende nodig

• een computer om als een Server te laten fungeren,

• een client computer, ik ontdeed de harddisk van de stroomtoevoer en deactiveerde de disk in de bios om een diskloze computer te emuleren

• compatibele netwerkkaarten

• connectie tussen computers, ik gebruikte twisted pair ethernet met RJ45 terminators

• Voor twee computers volstaat een cross-over kabel , en ’t bespaart een ander stroompunt.

• Voor twee of meer clients, heb je een hub nodig, een kit met een 10 mb 4 poort hub, 2 kaarten wordt verkocht voor nog minder dan A$150, waarschijnlijk kan het voor nog minder, Het lukt mij aan tweedehandskaarten te komen voor $5, 3m kabel voor $6, een nieuwe hub voor $40, een gevonden monitor en een pentium 75 voor $60

2.2 Documentatie

Wellicht dat je je eerst wat in de linux-documentatie wilt verdiepen, voor een overzicht kun je in ieder geval het volgende (vluchtig) doornemen:

• /usr/doc/HOWTO/mini/Diskless - een vergelijkbare howto waarin dit probleem wordt aangepakt

• Networking Overview HOWTO - Netwerkcapaciteiten van Linux

• Ethernet HOWTO - Informatie over Ethernet hardware compatibiliteit

• NET-3 HOWTO - Hoe TCP/IP netwerken onder Linux te configureren.

Vermoedelijk staan er in de directory /usr/doc/LDP tevens

• De System Administrators’ Guide • De Network Administrators’ Guide

• Linux Installation and Getting Started

De verplichte link

• http://www.magma.ca/˜ bklimas hulp voor nieuwe linux-gebruikers.

En nog als laatste

• mijn netwerkserver is snoball , mijn client is elite en mijn (local)domain is gundog.net. Vervang daar waar van toepassing de namen voor je computers.

3 Server setup

De server moet om de client te kunnen herkennen op een aantal wijzen worden ingesteld.

3.1 Controleer je netwerkservices op je server

Start het commando /sbin/ifconfig; als je uitvoer vergelijkbaar is met wat hieronder staat, dan zijn je loopback en ethernetkaart juist geconfigureerd.

[cassie@snoball cassie]$ /sbin/ifconfig
lo        Link encap:Local Loopback
     inet addr:127.0.0.1  Bcast:127.255.255.255  Mask:255.0.0.0
     UP BROADCAST LOOPBACK RUNNING  MTU:3584  Metric:1
     RX packets:854 errors:0 dropped:0 overruns:0 frame:0
     TX packets:854 errors:0 dropped:0 overruns:0 carrier:0
     collisions:0
eth0      Link encap:Ethernet  HWaddr 00:AA:00:BB:BD:09
     inet addr:192.168.53.1  Bcast:192.168.53.255  Mask:255.255.255.0
     UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
     RX packets:190369 errors:0 dropped:0 overruns:0 frame:0
     TX packets:249267 errors:0 dropped:0 overruns:0 carrier:1
     collisions:4793           Interrupt:5 Base address:0x320

Als ...

• loopback niet voorkomt, moet je het tijdens het opstarten activeren,

• de ethernetkaart niet wordt gedetecteerd, is de driver een module

• je kunt deze instellen in linuxconf of netcfg

3.2 Instellen van een dhcpd daemon

Hier geeft de server IP-nummers op verzoek van de clients

• als DHCPD is geïnstalleerd, moet je mogelijk (als root) slechts ntsysv uitvoeren en het tijdens de systeemstart op laten starten • dit /etc/dhcpd.conf bestand kent statische IP-nummers toe als je een overeenkomend MAC-adres

hebt. Een Mac-adres is een uniek ’nummer’ welke aan de NIC wordt gegeven. Het begin van het ’nummer’ is gebaseerd op de fabrikant, als er geen sticker op de kaart zit, probeer het rom-image dan vanuit eprom of diskette te laden en kijk wat het rapporteert. (zie client-setup)

#/etc/dhcpd.conf
subnet 192.168.35.0 netmask 255.255.255.0 {
    option domain-name "gundog.net";
    range dynamic-bootp 192.168.35.128 192.168.35.255;
    default-lease-time 21600;
    max-lease-time 43200;
    }
host 286 {
        filename "/tftpboot/kermit.nb";
        hardware ethernet 00:80:c8:22:ae:de;
        fixed-address 192.168.35.70;
        }
host elite {
    filename "/tftpboot/vmlinuz.xterm";
    hardware ethernet 00:00:79:80:34:c9;
    fixed-address 192.168.35.23;
        option host-name "elite";

• het bestand /etc/hosts zet IP-nummers om in hostnamen

#etc/hosts
127.0.0.1       localhost    localhost.localdomain
192.168.53.1    snoball      snoball.gundog.net
192.168.53.23   elite        elite.gundog.net

3.3 Tftpd setup

trivial ftp - als je client het IP-nummer heeft, verzoekt het om een kernel, deze wordt over ethernet bezorgd.

• Installeer tftpd, verzerker jezelf ervan dat het is geactiveerd, in /etc/inetd.conf zie je een regel met,

tftp dgram udp wait root /usr/sbin/tcpd in.tftpd -s /tftpboot

Herstart inetd, kill -HUP "proces-id van inetd".

3.4 Kernel-image

Je moet een kernel voor de Client compileren waarin ondersteuning voor NFS en de NIC-driver voor die client is meegecompileerd (niet als modules). Antwoord yes op Root file system on NFS? en BOOTP support?

Draai na het bouwen van de kernel mknbi-linux vanaf de Etherboot-distributie. (het mknbi programma in de netboot/linux directory). Installeer tagged image als /tftpdir/"vmlinuz.xterm".

zie etherboot-4.2/doc/html/README-3.html

zal ik een kopie van die van mij ergens voor download RH6.0 ne2000 NIC beschikbaar stellen.

3.5 Beveiliging

Het eenvoudigst is het om alles en iedereen toe te staan services en processen op je computer uit te laten voeren, maar op een dag zul je daar spijt van krijgen. Je beperkt dit door je /etc/hosts.deny en herstelt bijzondere rechten in het bestand /etc/hosts.allow, voorbeelden:

#hosts.deny
# alles behalve die in hosts.allow
ALL:ALL

#hosts.allow
#alleen hosts binnen mijn domein en mijn host thuis.
ALL:LOCAL, 192.168.53.       #<-- noot:geen spatie achter :

Meer beveiliging - kijk voor meer informatie in de ldp-howto’s en als je gebruik maakt van etherboot, in de security howto daarvan.

4 Client setup

Netwerk loader

Een klein programma dat als een BIOS-uitbreiding wordt uitgevoerd, kan vanaf een diskette worden geladen, of je kunt een eprom-chip branden en het voor een geheel diskloze client op je netwerkkaart voegen. Het handelt het DHCPD-verzoek en het laden van TFTP af en het geeft de controle dan over aan het geladen image. Het maakt gebruik van het TCP/IP protocol.

Er zijn twee gratis implementaties TCP/IP net-loaders: Etherboot en Netboot: Etherboot maakt gebruik van ingebouwde drivers terwijl Netboot gebruik maakt van Packet drivers.

• zie etherboot-4.2/doc/html/README-2.html,

• Ik compileerde de optie naar local of Network te vragen en de standaard na 5 seconden op local over te gaan

• het maken van een bootrom-diskette, floppyload.bin was lastig te vinden, ik kopieerde het naar de directory gecompileerde rom-images

     cat floppyload.bin ne2000.lzrom > /dev/fd0

5 Network File System

De Client doet een verzoek /tftpboot/<IP-adres van client> te mounten als zijn / door NFS vanaf de server. Je moet dit exporteren vanaf de server, (misschien veiligheidshalve een symlink maken naar /tftpboot/client ).

NFS is een uitgebreid onderwerp waarvoor een HOWTO en twee mini-HOWTO’s zijn.

Ten eerste heb je een kopie van je huidige systeem onder /tftpboot nodig. Ken heeft twee scripts geschreven waarmee de helft van al het werk wordt gedaan, ik noemde ze makefirst en makecopy. Mijn eerste client neemt 20-30mb. Ik gebruikte du -h om te zoeken naar grote onnodige bestanden.

zie etherboot-4.2/doc/html/diskless-5.html

naar het schijnt zijn de volgende bestanden hier kritiek:

5.1 Server specifiek

#/etc/exports
/tftpboot/elite             elite(rw,no_root_squash)
/tftpboot/elite             gordon(rw,no_root_squash)
/usr                        *.gundog.net(ro)
/home                       *.gundog.net(rw)
/mnt/cdrom                  (ro)
draai exportfs -a  om het bestand exports na de wijzigingen opnieuw in te
lezen
/usr/sbin/exportfs --help

#/etc/sysconfig/network
NETWORKING=yes
FORWARD_IPV4="no"
HOSTNAME="snoball"         <-----------
GATEWAYDEV=""
GATEWAY=""

#/etc/sysconfig/network-scripts/ifcfg-eth0
IPADDR="192.168.53.1"            <-----------
BOOTPROTO=none

5.2 client specifiek

#tftpboot/elite/etc/fstab
snoball:/tftpboot/elite    /               nfs rw  1 1
none                    /proc proc          defaults   0 0
snoball:/usr           /usr                 nfs     ro  1 1
snoball:/home          /home                nfs     rw  1 1

#tftpboot/elite/etc/sysconfig/network
NETWORKING=yes
FORWARD_IPV4=nomore
HOSTNAME=elite
GATEWAYDEV=
GATEWAY="192.168.53.1"       <-----------

#/tftpboot/elite/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
USERCTL=yes
ONBOOT=yes
BOOTPROTO=none
BROADCAST=192.168.53.255
NETWORK=192.168.53.0
NETMASK=255.255.255.0

IPADDR=192.168.53.23         <-----------

<! – #odd fiddles #itemize> #item>fast... #item>cp /usr/bin/xargs /tftpboot/client/bin/xargs #/itemize> –>

6 X-terminal

Zonder verdere wijzigingen zou je client nu op de CLIENT pc moeten booten, het deelt zijn bestaden via NFS

Je hebt nu een console terminal. Je hoeft slechts nog een paar wijzigingen aan te brengen om het zodanig te wijzigen dat het X kan draaien.

• X Configureren Draai als root op de client Xconfigurator en mouseconfig. Als dit niet lukt, gebruik XF86Setup dan om je dir met RPMS op je CD te controleren (bv.ls *Setup*)

• X Font Server

#controleer hoe xfs start op server /etc/rc.d/init.d/xfs
  start)
    echo -n "Starten van X Font Server: "
    rm -fr /tmp/.font-unix
    daemon --check xfs su xfs -c xfs -s /bin/sh
    touch /var/lock/subsys/xfs
    echo
    ;;
#wijzig XF86Config voor alle computers
    FontPath  "tcp/snoball:7100"

• Console login Alles is nu zo ingesteld voor een console login naar de client PC. Je maakt nu gebruik van het geheugen en de processor van de client, Voor console programma’s is dit voldoende, programmeer in python, email met pine of browse met lynx. Je kunt X nog steeds van hieruit starten, maak de wijzigingen voor de server in de volgende sectie, typ achter de prompt X -query snoball en je zal de loginbox naar de server krijgen

• Grafische login Server setup

1. Zorg ervoor dat de client overeenkomt met een clausule in /etc/X11/xdm/Xaccess
*   CHOOSER BROADCAST   #iedere indirecte host kan een chooser krijgen

2. Plaats een commentaarteken voor de :0 in /etc/X11/xdm/Xservers
#:0 local /usr/X11R6/bin/X
3. Zorg er dan voor dat xdm vanuit de init-scripts wordt uitgevoerd
#etc/inittab
id:5:initdefault:

en
# Draai xdm in runlevel 5
# xdm is nu een aparte service
x:5:respawn:/etc/X11/prefdm -nodaemon
xdm:5:respawn:/usr/X11R6/bin/xdm -nodaemon

• Op de client Krijg de langzame PC’s zover dat ze op de server draaien. Snelle PC’s (bv 166mhz 32mb ram) kunnen prima op hun eigen CPU en geheugen draaien. Het deel gemarkeerd met WARNING werkt nog niet echt, maar ik ben er dichtbij de juiste syntax te verkrijgen, gebruik in de tussentijd de uit twee fasen bestaande methode via de console in te loggen.

#/tftpboot/elite/etc/inittab
id:5:initdefault:                                    #WARNING
x:5:respawn:/usr/X11R6/bin/Xwrapper -query snoball   #WARNING
OF om uit te voeren op client ??
id:3:initdefault:                                    #runlevel 3 dwz console
x:5:respawn:/etc/X11/prefdm -nodaemon

7 Erkenningen & meer oefeningen

Markus Gutschke en Ken Yap de auteurs van het programma Etherboot.

Breid je systeem met de volgende programma’s uit

• squid - cache je web browsing voor anderen op je netwerk

• junkbuster - banish web banner hulpmiddelen

• mailman - mailinglist ;setup via e-mail of web

• imp - op web gebaseerde email (met een java geactiveerde browser)

• python - voor een aantal zijn Java en C te moeilijk

• sgmltools - ontdoe je van meerdere versies van je docs

• suggesties ?

stephen7 at bigfoot.com