Isso pode ser feito com a configuração parent-proxy
:
/ip proxy
set parent-proxy=<IP of Squid machine> parent-proxy-port=3128
O RouterOS docs mostra como fazer proxy transparente de todo o tráfego da web através do proxy HTTP embutido no RouterOS:
/ip firewall nat
add in-interface=ether1 dst-port=80 protocol=tcp action=redirect to-ports=8080 chain=dstnat
/ip proxy
set enabled=yes port=8080
Gostaria de executar um proxy em outra máquina, para que eu possa aproveitar as regras de filtragem mais sofisticadas disponíveis no Squid ou algo semelhante. No entanto, se eu usar o NAT para redirecionar o tráfego para outra máquina que esteja executando o Squid, isso não funcionará, já que a solicitação HTTP precisará ser reescrita para ser uma solicitação HTTP de proxy; apenas redirecionando o tráfego dá erros de solicitação incorreta do Squid.
Não há necessidade de definir proxy no RouterOS. Você pode rotear todo o tráfego HTTP de saída para o servidor diretamente através do NAT:
ip firewall nat add in-interface=eth1 src-address=!<IP of Squid machine> dst-port=80 protocol=tcp action=dst-nat to-addresses=<IP of Squid machine> to-ports=8080
O último parâmetro "src-address =! ..." é necessário no caso de a máquina de squid se comunicar através da mesma interface que as outras máquinas. Caso contrário, seria assim:
/ip proxy
set parent-proxy=<IP of Squid machine> parent-proxy-port=3128
/ip firewall nat
chain=dstnat src-address=!<IP of Squid machine> protocol=tcp dst-port=80 src-address-list=<IP of Local machine> action=redirect to-ports=8080
Tags http-proxy mikrotik routeros