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, zal je nodig hebben: 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 2. Hardware en Documentatie 2.1 Hardware 2.2 Documentatie 3. Server setup 3.1 Controleer je netwerkservices op je server 3.2 Instellen van een dhcpd daemon 3.3 Tftpd setup 3.4 Kernel-image 3.5 Beveiliging 4. Client setup 5. Network File System 5.1 Server specifiek 5.2 client specifiek 6. X-terminal 7. Erkenningen & meer oefeningen ______________________________________________________________________ 1. Introductie · Linux maakt het mogelijk iedere redelijk nieuwe computer als een server voor één of meerdere thin-clients 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