Thanks for your response. Sorry I didn't reply but by the time you posted I'd already caved in and give him the windows CDs. I was up to my neck with college work and didn't have the time to read up on how to get it fixed, which is why I posted for help. Anyway, with that essay is done I've had time over the last two days to get this sorted out. LFS is built. I bought a new ethernet card and another crossover cable so I could connect my sons computer to mine and work out how to do masquerading with two normal computers and then applied what I learned to the xbox. I didn't need the dhcp server, the settings that worked were these firewall/nat/masquerading rules
iptables -A INPUT -i lo -j ACCEPT
iptables -P OUTPUT ACCEPT
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.1.2/32 -j MASQUERADE
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state NEW -i ! ppp0 -j ACCEPT
iptables -P INPUT DROP
iptables -A FORWARD -i ppp0 -o ppp0 -j REJECT
and these routing details (the xbox is on eth1 now because I bought another card)
ifconfig eth1 192.168.1.1 netmask 255.255.255.0 &&
route add -host 255.255.255.255 dev ppp0 &&
echo 1 > /proc/sys/net/ipv4/ip_forward
On the xbox I manually entered our ISP's nameserver numbers, set the xbox's address as 192.168.1.2 with a netmask of 255.255.255.0 and 192.168.1.1 (the PC) as the gateway.
It's good to be rid of windows. It was through msn messenger he was getting infected with stuff. Gaim works fine and in the unlikely event that anything bad happens, on Linux he only has write permission in his home folder, which limits the damage.