Yeah.. it's the easiest way. I know what you mean though.
Of course, I dont know your network setup, but in BSD, there is the natd (nat daemon), and I can say if you look for something similar (or one of the ip tools already built in your distro) for linux you won't have to look too far. There are all sorts of different things you could do in relation to NAT, etc. If your linux box has two NICs then you could use one going into the hub and one going into your connection (which in essence will get what you want and would work just like the router more or less). I think if you play with it you can get it, but indeed the router is probably the easiest way.
Hope that helps.
Cheers,
Metty