Bom, dei uma pesquisada boa ontem e hoje no google, porém, a falta de experiência com o Squid e a falta de tempo pra se aprofundar não me levou a descoberta do problema.
Instalei o Ubuntu 14.04, o qual nos repositórios do APT tem a versão 3.3.8.
O teste foi feito com uma instalação limpa do Ubunto, o Squid (apt-get install squid3) e alterações do basico necessário na configuração do Squid.
No Squid adicionei uma acl chamada localnet
Código :
acl localnet src 10.50.50.0/24
Adicionei uma linha para dar acesso a essa acl (essa linha ficou logo acima da "http_access deny all")
Código :
http_access allow localnet
E alterei o Squid para trabalhar NATiado, que é quando as requisições são passadas para ele por DNAT (ou dst-nat), mudando o destino do pacote, sem mascarar a origem
Após isso só configurei um IP na eth0, 10.0.0.2/30 e uma rota padrão para o 10.0.0.1
Testei usando uma RB450
ether0 192.168.11.220/24 (rede com acesso a internet)
ether1 10.0.0.1/30 (ligado ao servidor Squid)
ether3 10.50.50.1/24 (entrada de clientes).
Gateway: 192.168.11.1
No NAT adicionei uma regra para redirecionar todo o trafego da porta 80 para o Squid, quando a requisição não vinha do próprio Squid.
Código :
/ip firewall nat add chain=dstnat src-address=!10.0.0.2 protocol=tcp port=80 action=dst-nat to-address=10.0.0.2 to-ports=3129
CONCLUSÃO: Não funciona.
Logo após, instalei o Debian Wheezy (7.8). Depois de uma instalação limpa, configurei o seguinte repositório no APT (/etc/apt/sources.list)
Código :
deb http://ftp.br.debian.org/debian/ stable main contrib
A RB450 ficou exatamente com a mesma configuração, e no Debian coloquei os mesmos IPs e rotas.
CONCLUSÃO: Não funciona.
Porém, fui verificar a versão do Squid, e no Debian estava com a versão 3.4.x (não lembro exatamente qual era o x). Sendo que eu tenho um servidor Squid rodando e funcionando, eu sabia que tinha que funcionar. Porém, meu servidor Squid está na versão 3.1.2.
Então, eu mudei o /etc/apt/sources.list para
Código :
deb http://ftp.br.debian.org/debian/ wheezy main contrib
Logo após, desinstalei o Squid3 que era o 3.4 com os comandos:
Código :
apt-get --purge remove squid3 squid3-commom
Atualizei a lista de pacotes, devido a mudança do repositório:
E instalei novamente o Squid:
Agora a minha versão do Squid passou para a 3.1.20 nesse Debian novo, e
Voilá, a porra funciona.
CONCLUSÃO: Alguma alteração foi feita no funcionamento do Squid quando esta trabalhando em modo "intercept" (recebendo requisições sem mascaramento), e eu sou muito nabo para descobrir o porque.
FICA A DICA FINAL: Quem quiser fazer funcionar em modo transparent com o Squid guardando log dos IPs cliente final, e não só do IP mikrotik, basta usar um Debian 7.8 com Squid 3.1.2 que vai tranquilo.