O Openwrt tem um bom suporte a apache / squid. Eu usei o apache até mesmo para proxy reverso. A única coisa que você precisa, era um roteador compatível com openwrt.
Segunda coisa, você precisa configurar o apache (sugiro o apache para isso) neste método especial de trabalho de proxy. Não é tão difícil quanto parece. Se você quiser, fiquei feliz em copiar e colar algum exemplo de configuração neste post.
Não há muito problema sobre a necessidade de um proxy desse tipo - a maioria dos roteadores não tem uma CPU muito strong - porque o que uma configuração hw / sw faz, não é mais como se fossem enviados apenas pacotes. Não há tais coisas intensivas em CPU como por exemplo. php-interpretation ou jvm, e o apache pode rodar com seu "worker" mpm, no modo threaded, que é muito rápido.