COST
Linux - low COST firewall
Software
- COST Linux kernel 2.4
- DHCPD
- DHCP client for dynamic IP from broadband provider
- SSH for secure login
- Shorewall for iptables configuration (www.shorewall.net)
- Shell and vi (busybox).
Hardware
- Thin clients or network computers.
- Criteria:
- Must have at least 1 NIC and 1 USB port.
- USB port can be used as a network interface if attached to a
USB NIC. RoadRunner's latest cable modem has a USB connection that
can be connected directly to computer's USB.
- Solid State Device for storage (DiskOnChip, DiskOnModule,
Compact Flash)
- BIOS must be willing to accept GRUB or Linux kernel.
- Small form factor, fanless CPU.
- Cheap (many are sold on eBay for $10-$100).
- List of known working hardware (search for "thin client" on eBay):
- Netier SL and XL series (DiskOnChip).
- Capio II 2992 (DiskOnChip).
- Acute Network Technology (DiskOnChip).
- GTC Allwell (DiskOnChip).
- IBM NetVista N2200 8363 E models (Compact Flash).
- Single Board Computers (DiskOnChip).
- Others (not yet hacked).
IBM NetVista N2200 8363 thin client
- Two types of network interface: token ring (T models) and
ethernet (E models). Two types of OS supported: Windows and Linux.
- Can boot remote kernel or local kernel on Compact Flash.
Configurable from BIOS.
- Built-in 32MB memory. No PS2 keyboard, USB only.
Other USB can be used for NIC.
- No hardward clock. Must get time from a time server.
- Has IBM's proprietary BIOS and bootloader. Can be
re-flashed. Need Linux BIOS to boot Linux kernel.
- BIOS boots kernel directly hence initrd may not be
possible. Some hacking required:
- (Linux) bootloader looks for a kernel file named kernel.2x00 in
/dev/hda1/. It's an uncompressed kernel image. When compile
kernel, make vmlinux should do it.
- Partition CF into 3 partitions:
- /dev/hda1: stores the kernel.2x00 image and utilities to boot
strap a RAM file system. Treat this like and initrd file
system. Size is about 2MB (kernel.2x00 takes up most space).
- /dev/hda2: stores system configuration files (to mount on
/etc/sysconfig). Size is about 100KB, depending on need.
- /dev/hda3: stores the (RAM) "real" root file system and local
file system.
- Optional /dev/hda4 to store local file system if local is not
in RAM.
- mke2fs /dev/hda[1-3]. Mount them.
- Prepare file systems on a work station. Copy images and
files onto CF.
- When kernel.2x00 is loaded, it will assume /dev/hda1 as root
file system. We can use init to prepare the RAM file systems,
mount the new root file system onto a directory on /dev/hda1, then
perform pivot_root to the new root.
Wish list/ToDo
- Web interface configuration.
- VPN (FreeSwan).
- DHCPCD homing capability.
- More broadband (DSL, ADSL) ISP support.
- Hack more hardware.