As duas redes locais podem se comunicar entre si significa que você ativou o ip_forward. Se as redes locais não puderem fazer ping no endereço IP público, você precisará fazer um mascaramento.
Você é capaz de pingar o endereço IP público desta caixa linux? Se não, então deve haver algum outro problema. Talvez você precise configurar seu roteador em modo de ponte (é apenas um palpite).
Eu suponho que sua máquina linux pode pingar ip público e não há ip público configurado em eth0. Assim, suas máquinas de rede interna não podem ir para fora da Internet com o endereço IP privado, então você precisa fazer o natting. Tente usar o iptables porque é bem simples.
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Se você não tiver o iptables instalado em seu sistema. Deve haver algum firewall instalado por padrão. Qual distro você está usando?