<PRE>
SmoothWall: summary.txt

28-08-2000	aslak	Started

Introduction

SmoothWall is a self-contained, stripped down Linux distribution for providing
Internet access via modem, ISDN, and cable to a LAN. Web pages configure PPP,
etc. It runs on a 386 with 8meg and up. No prior knowledge is required to use
SmoothWall.

Once installed, SmoothWall is configured via a number of webpages, such as the
page for configuring PPP, and the page for setting passwords. The main page
features buttons for triggering a dial attempt, and hanging up the link. Status
info, such as the state of the PPP link, including how long the link has been
active for, is also displayed here. All configuration can be performed via the
web frontend.

Telnet and ftp access can also be enabled or disabled, should either be
needed. In a nomral installation, noone need even know they are there. 
tcp_wrappers prevents connections from the Internet. No services are available
from the external interface.

SmoothWall differes from single-floppydisk approaces to the problem of Internet
access for a LAN in that it is an expandable "appliance". Because it runs
apache, it can be made extremely easy to configure. Because it is installed
onto a harddisk, full logging can be done and much more space is available to
support more hardware.

The base system files are from VA-Linux 6.2.1 (which is more or less RedHat 6.2)

Components

1. Installation

The end-user downloadable files will be a 1440K floppy disk image (called
disk1), and an ISO image for burning into CDROM (called cdrom). An additioanl
floppy disk image contains network drivers for doing a network (HTTP or FTP)
based install (called disk2). Currently the contents of disk2 are identical to
the cdrom, except that the installation tarball is missing.

Disk1 contains the bare minimum files in order to start the installation
program. The disk contains two filesystems: one for lilo (which basically only
contains the kernel and lilo config), and a root filesystem, which is loaded as
an initial ramdisk. Scripts have been written for automating the building of
disk1.

The installation program itself uses libnewt, a library written by RedHat for
it's own installation program.

The installation process, and how the install programs work (and what more needs
to be done) is written about in install.txt.

2. Linux distribution.

I made this by first installing VA Linux and then cutting it down as much as I
could, but still leaving a working system. Basic shell tools are kept. In a
working system, no login accounts except root should be needed. The primary
peices of software installed are apache and perl, which are needed by the cgi
config scripts. The distrib is currently around 40meg once installed.

See distrib.txt for more info.

3. CGI configuration.

"On top" of the, essentailly general-purpose, linux distribution are the files
needed to handle configuration and operation of the dialup connection, logging,
and such. These files can in theory be installed onto any distribution layed
out roughly like RedHat in order to turn it into a SmoothWall, without having to
install our specially tweaked linux distrib.

These files are spread throughout the filesystem. The main ones are in
/home/httpd/cgi-bin. The scripts are written in perl and use no perl modules. 
CGI.pm was initially used, until it was discovered how painfully slow it is on a
486. The settings (ppp and other) live under /var/smoothwall. /etc/ppp
contains ppp scripts which the cgis use to control the link. In order for
apache to be able to write settings out, certain files, such as chap-secrets are
symlinked into /var/smoothwall (which is fully accessable by user nobody).

See cgis.txt for more info.

Current state. (as of 28-08-2000)

The CGIs are complete, but waiting to be security checked. The distribution is
more or less done. More files could probably be trimmed away. The installation
is two-thirds finished. I will need a CD burner to test CDROM the install.

Ideas for the future.

1. Support for ISDN. This is critical for the success of SmoothWall.
2. Support for ASDL / cable modems.
3. DHCP server.
4. Web proxy/cache.
5. DNS forwarder.
6. More sophisticated access control. eg: denying network access via ipchains
for users until they have prevented login details.
</PRE>