New and Improved Router on a Floppy Disk: Freesco in 2003

By Carla Schroder | Apr 10, 2003 | Print this Page
http://www.enterprisenetworkingplanet.com/netos/article.php/2184011/New-and-Improved-Router-on-a-Floppy-Disk--Freesco-in-2003.htm

We took an initial two-part look at Freesco way back in May, 2002. Here's a quick recap from our initial article. Freesco, which stands for FREE ciSCO, is a "single floppy distribution" of Linux that is intended to be a replacement for minor Cisco routers. It can be run from a single floppy disk, from a hard disk, or on RAM disks. It is easy to configure, has minimal system requirements, and is adaptable to all kinds of uses. Versions 0.3.0 and later require a little more hardware muscle than earlier versions -- v0.2.7, for example, could run on a 386 with 6 megabytes of RAM, whereas v0.3.x needs at least a 486 with 8MB of RAM. (Don't landfill those old PCs -- they are still good for some things.)

The authors of Freesco have done a wonderful job with the interface, as it is logical and easy to learn. Don't be fooled by the apparent simplicity of the interface, though; Freesco's ease of use and relatively limited learning curve does not mean it is a simple, limited program. Freesco, in fact, is quite sophisticated and powerful.

Features
Freesco has continued to improve and evolve since our initial look; most recently, version 0.3.1 was released in February with substantial improvements. In addition to the expected bridging, routing, and firewall capabilities, Freesco has these additional features:

  • Version 2.0.39 Linux kernel
  • Ability to run entirely from RAM (A minimum of 17 MB physical RAM is required, and RAM Disks need to be enabled)
  • Extensible, with support for adding third-party packages
  • An Ident server
  • Limited support for SCSI hard drives (requires custom kernel compilation to add your drivers)
  • PPPoE (Point-to-Point Protocol over Ethernet) support
  • A Netmeeting module
  • New, updated set of NIC drivers
  • Support for up to ten modems (up to four regular modems, or Unix 4/8 port modems)
  • Support for up to ten networks
  • Support for up to five printers (although at least two would have to be serial printers). IP restrictions can be enabled for each printer
  • PPTP (Point-to-Point Tunneling Protocol) support
And much more...that's a lot of functionality for such a tiny program.

Features Lacking in Freesco
Features worth noting that are not currently present in Freesco include:

  • No USB support
  • No ISDN PCI card support (the 2.0.39 Linux kernel cannot support them)
A "Scary" Feature
Freesco uses BIND 4. Use this for internal DNS only! It is completely unsafe to use as a public service or for connecting to any untrusted networks.

Page 2: Packages

Packages
Freesco has supported packages since version 0.2.7. There are a huge number of third-party packages now available. Why have packages? As it says on the Freescosoft website, "Now that you have your Freesco box up and running, you are probably asking yourself, 'What do I do with it now?' 'How do I use all of the extra idle time that my Freesco box has?' 'What can I do with the extra hard drive space that is not used?'" Well, packages are a great place to start when it comes to answering these questions.

The packages in the Freescosoft repository vary wildly in quality and usefulness. They are helpfully labeled according to their beta/version status, according to whether they are official Freesco releases or third-party packages, and according to their supported platform(s). Included in v0.3.x are three commands for managing packages: listpkg, installpkg, and removepkg. Run listpkg to see the official Freesco packages, or visit the repository to see all of them. Obviously, adding any packages requires running Freesco from a hard drive.

There is more to creating these packages than just slapping them together, as they may need to be modified to run on the 2.0.39 kernel. This is an old kernel -- the current stable kernel is 2.4. So why use the 2.0.39 kernel? Simple, because it fits on a floppy disk. Here is a sampling of available packages for v0.3.x:

  • Edna, a streaming MP3 web server. It's very "beta," so use at your own risk. Freesco also makes a nice MP3 server.
  • Junkbuster, the famous filtering proxy server. Use Junkbuster to block banner ads, block specific URLs and IPs, and more.
  • Perl 5. Yes, Perl 5 is yesterday's news; however, it is stable and works fine with Freesco.
  • Samba and SWAT. Modern Linuxes are big, making them difficult to pare down for specialized uses. Running Samba on Freesco is a dandy way to build a lean Samba server.
  • IPtraf, an IP network monitor. This is a real nice utility that tracks items like TCP connection packet and byte counts, interface statistics and activity indicators, TCP/UDP traffic breakdowns, and LAN station packet and byte counts. IPtraf supports a large range of network protocols and network interfaces. IPtraf is one of easiest-to-use network monitors, with a quick, flexible system for setting up filters to monitor specific events.
  • Mech, a multiple-channel IRC bot. Doesn't everyone need one of these? Mech is efficient, uses minimal system resources, and is fairly easy to set up and configure.
New packages for v0.3.x are always appearing, and Freescosoft also has documentation detailing how to make and distribute your own packages.

Random Tips and Tricks
Here are a few tricks I've come across that will allow you to use Freesco more effectively:

  • To make the DHCP server assign a static IP address based on the client's MAC address, you first need to find the MAC address from the DHCP lease.

    cat /etc/dhcpd.leases

    Next, find the machine you want and make a note of the "hardware ethernet" address. The next step is to edit /mnt/router/etc/dhcpd.conf:

    host client_name {
    fixed-address 192.168.1.100
    hardware ethernet 00:03:6D:00:83:CF;
    }

    Make sure the fixed address is outside the lease range. Save the changes and then restart the DHCP server:

    rc_dhcpd restart

    The client machine will receive the new assignment at reboot or after a network restart.


  • HOW-TO: VNC secure tunneling using Windows PuttY ssh client is an excellent "How To" for an oft-requested feature.

  • If the system hangs while futzing with Freesco, alt+F2 takes you directly to the login screen.

Support and Documentation
Freesco.org has experienced a bit of drama the past year. First, the domain was lost, then retrieved, and next bounced around various locations and mirrors for awhile. Fortunately, they're back on track now, and you can find all the documentation, downloads, and links to Freescosoft and the support forums at freesco.org. This is a great program and one that you can use with confidence. The forums are very helpful as well; just remember to mind your manners -- search the forums for answers before posting your questions, and always be nice.

Resources
Freesco
FreeSCO: Build A Router With A 386 And A Floppy Disk
Build A Router With A 386 And A Floppy Disk, Part 2
Freesco package repository


» See All Articles by Columnist Carla Shroder