A friend of mine pointed me in the direction of this software that will allow you to share out your Internet connection more reliably and faster than Window's ICS. After two days battling with the software I finally emerged as the victor with a working router/firewall. Some of the things I have noticed that work (that didn't through ICS) are that I can receive and send IRC DCC file transfers, ICQ transfers now work again and a noticeable difference using the internet in general.
This is a small guide written to guide you on your journey of setting up a Linux router/firewall. It'll allow you to share your Internet connection and provide some protection to your home network.
Requirements
Hardware:
The oldest computer you can get your hands on (within reason). Just couldn't convince yourself the old 486 is really obsolete? Well, here is a good use for it. I personally am using a P75 with a 500MB hard drive. The hard drive is optional. You will need at least 8MB of RAM.
Two network interface cards (NICs). I prefer using ISA network cards as you can set the hardware address and know exactly where they are. Also since most of you can't afford an Internet connection over 10Mb/s it should be plenty fast.
Software:
Go to , follow their download link and grab the newest version (0.3.0 at this writing), though 0.2.7 was used for this guide. Unzip the package into a directory and you should see this in your directory:

Setup
At this point you will need to find yourself a floppy to use to write the disk image to. Go to the freesco directory and double click the make_fd.bat file. A command window will come up. Place a formatted floppy in your A: drive and hit Enter.

Wait for the image to extract and now we are ready to boot your router for the first time!
At this point I would like to mention that it is a good thing to already have your hardware set up and the addresses on your NICs set. The ISA NICs that I have used (3com 3c509 and Linksys EtherLAN) cards have an executable that comes with the drivers to set the memory address and the IRQ. BE SURE TO WRITE THESE DOWN. You will need them. You will also need to have the information to hook up your Internet connection. While this program does support sharing a dialup connection I will not be covering that aspect. This will be for xDSL or cable connections only. You will need the computer name that was assigned by your provider and that is it if you are using DHCP. If you have a static address you will also need the IP, default gateway and your primary and secondary DNS servers.
Once you have all of the above information together put the floppy into the floppy drive and boot your machine up. If all goes well you will see the freesco header and below it you will see the prompt:
Boot:
At this prompt you will need to type 'setup' and hit enter to begin the configuration process.
Wait for the kernel to load and when it comes to the login prompt type in "root". By default the password is root (you will be able to change that later).
This is the first configuration screen. Since we are setting it up for the first time we want to choose #2.

Next we want to select "e" to start the setup of an Ethernet router.

The first step is to enter the name for your computer given to you by your ISP, known as your host name.
Next you will need to provide a domain name for your router. The domain name isn't too important at this point so just use your imagination.
Next you can autodetect any modems attached to your system. This is for if you want to be able to dial into your network from outside. You can experiment and set this up later on your own.

The next step is to start configuring your network cards.
Note: This is where you need the settings I told you to save earlier.
The setup will ask how many network adapters you have. Since this is a simple instruction set we will answer 2.
Next question is what I/O address your first network adapter is at (this is the one connected to the internet). In my case it is 0x300.
Another Note: I/O addresses are given in hex format. Meaning before the number there is a '0x'.
Next you will need to enter the IRQ of the adapter. Repeat the last two steps for the 2nd adapter as well.
NEXT