If you've got to get this running but you can't find a second Ethernet card or you're plagued with horrible IRQ conflicts, you can get this working with one network card. You just need to configure a second IP address on your existing network card with this command:
/sbin/ifconfig eth0:1 192.168.1.1 netmask 255.255.255.0 arp broadcast 192.168.1.255
This creates an IP alias so your one network card now has two identities. Add the following to your rc.local file:
echo 1 > /proc/sys/net/ipv4/ip_forward
/sbin/ifconfig eth0:1 192.168.1.1 netmask 255.255.255.0 arp broadcast 192.168.1.255
/sbin/ipchains -P forward DENY
/sbin/ipchains -A forward -s 192.168.1.0/255.255.255.0 -j MASQ
#If you telnet a lot, this will stop your connections from timing out at
#inconvenient times.
/sbin/ipchains -M -S 7200 10 60
Configuring client systems is simple. Your default gateway should be 192.168.1.1, which is the address assigned to the second network card on the Linux machine. Subnet mask is 255.255.255.0, and nameservice is your ISP's nameserver (or your local nameserver if you have one).
And that about does it. You'll be able to live life to the fullest once again.
If you need more information, check out the IP Masquerade homepage or Paul Russel's IPCHAINS-HOWTO.
Thanks to Paul and to Ambrose Au, and David Ranch for their info.
If you would like to do something similar to IP Masquerade but you have to use commercial software with a nice graphical interface, check out Vicom Software's Internet Gateway.