I have been using LTSP for a while to turn old PCs into X terminals. LTSP works well for a desktop PC that can use PXE or Etherboot. LTSP does not work as cleanly on old laptops with PCMCIA network cards. In these cases, the kernel has to be installed on the laptop hard disk, but the rest of the LTSP installation runs from the server. When upgrading LTSP, the kernel on the hard disk gets out of sync with the modules on the server, and the laptops stop working as terminals.

I’ve been looking for a simpler setup for a laptop X terminal, and I’ve found ThinStation. It is a customizable Linux distribution designed for building terminals. The entire terminal image can run locally, from the hard drive or a bootable CD. The typical image takes up 5 to 10 megabytes. In this way, the server software can change versions, but the terminal is still standalone for its software versions. Thinstation does support centralized configuration files, giving you centralized control of options without linked dependencies.

Thinstation comes with software for several terminal types, including X Windows, VNC, NX, and Windows RDP.

Limiting web browsing on LTSP terminals

Running Linux
Amazon | Powells

With LTSP, all applications run on the server. This is great for the low maintenance involved: install an application program once, and it is available immediately on all terminals.

However, some times you may want to discriminate between different terminals. For example, you may want to restrict web browsing at one terminal or another.

Because the browsers run on the server, all outgoing HTTP connections come from the same machine. This means you cannot just restrict by IP address. You need a finer grain of control, by X display.

There is no easy perfect solution for this problem. The best solution would be to have two different terminal servers, and have the two classes of terminals connect to the appropriate server.

I’ll describe my hack attempt to solve this problem. My approach was to set browser proxy settings based on the X display.

First, you must decide how you want to limit the browser. In my case, I created two browser proxy configure scripts, which are usable by Netscape, Mozilla, Opera, and Internet Explorer browsers.

Script for allowing internet access: “proxy.pac”

function FindProxyForURL(url, host) { if (isPlainHostName(host)