you should be able to do this using NAT and dnsmasq, to provide NAT from your internet connection to a specified interface. i'm currently running something like this to share dialup to my laptop via an Ethernet connection. i don't really know what i'm doing when setting up NAT (on a pc) to be perfectly honest and i've used a guide each time.
try googling: NAT internet sharing linux
or something like that.