Assuming that the required software is installed, we need to configure NFS to mount the fonts and operating system for our thin client workstations, configure XFree86 to provide remote display access, configure our Xsession to deliver our choice of window manager to our client systems.
In order to load the configuration information, base system fonts, and os image from the host machine using NFS, you need to provide read access to the directory or directories where that data is located. To do this, you will need to edit the /etc/exports file.
/etc/exports is an access control list which provides an entry for any directory that can be exported to an NFS client using the exportfs command. Configuring /etc/exports is easy.
To provide read access to any system which requests resources in /home/ncbridge, you would enter the following line into /etc/exports:
For better security, you can also specify access to individual client systems. To do this, simply enter:
/home/ncbridge client1.yourdomain.com (ro) /home/ncbridge client2.yourdomain.com (ro) /home/ncbridge client3.yourdomain.com (ro)
/etc/exports also provides facilities such as globbing for grouping like named groups together. For example, to provide read-only access to similarly named clients:
/home/ncbridge client*.yourdomain.com (ro)
The X Display manager is a program which authenticates, authorizes and manages sessions for an X server. The standard configuration from the X Consortium is appropriate for use with X Terminals.. However, this file needs to be configured to not use display :0 as the default console, and XDM should be configured to listen for XDMCP requests.
In /etc/X11/xdm/xdm-config make the following configuration changes - Comment out the lines which would set display :0 as the console:
! The following three resources set up display :0 as the console. !DisplayManager._0.setup: /etc/X11/xdm/Xsetup_0 !DisplayManager._0.startup: /etc/X11/xdm/GiveConsole !DisplayManager._0.reset: /etc/X11/xdm/TakeConsole
Comment out the line which sets the requestPort for the display manager to :0.
Xaccess is a file which XDM reads to determine which X Terminals can login and access software running on the host machine. An X Terminal sends a request to XDM which in turn runs an Xsetup script which sets up the login screen and displays the xlogin widget which handles authentication and on successful authentication sets up a session between client applications on a host machine and an X Terminal.
The only configuration changes typically needed here involve setting up the access control to restrict global access to the xserver, and to add individual authorized hosts by ip address. Assuming that you are allowing multiple clients to log in, your configuration should look something like this:
#* # Allow any X server can get a login window 126.96.36.199 # Only allow specific systems to login. 188.8.131.52 184.108.40.206 220.127.116.11 18.104.22.168 !* # Prevent all other systems from using XDM
If you are not running terminals from a DNS server and/or are not allocating IP addresses using DHCP (as we are not), you will need to add an entry for each X Terminal in /etc/hosts on the Linux host machine.
22.214.171.124 # One system per line with optional 126.96.36.199 # parameters for lprhost and loghost 188.8.131.52 184.108.40.206 220.127.116.11
The X Font Server (xfs) provides system fonts to X display servers. It is the only way to provide anti-aliased fonts such as freetype to most X Terminals.
On most Linux systems, xfs is started from a script in /etc/init.d, and/or on startup from one or more scripts, /etc rc.d/init.d or in one of the run-level initialization scripts in /etc/rc[0-6].d. The most important thing to verify is that the X Terminal and the X Host are broadcasting and listening on the same port. Some X Terminals use the default xfs port, 7100, for other services, so xfs can be run on an unassigned port, such as 7102, in order to avoid a conflict.
On most systems, the configuration for XFS is in /etc/X11/fs/config. In order to enable XFS to be accessed remotely, comment out the no-listen = tcp directive from the configuration file. Be sure to set a max client limit equal to or greater than the total number of clients you will be serving.
The Xsession file controls much of the information regarding a particular host machines X environment. Examples of things that might be set in this file includes logging, which desktop manager to run, and which keyboard mappings to use. These settings are highly environment specific, and for that reason will not be addressed in this document. Suffice to say that you will want to decide whether to use user-level or global preferences for the desktop environment and that those configuration changes must be made in this file and in a .xsession file in the user's home directory.