squid + tproxy não está funcionando corretamente ao usar o url_rewriter e o script do apache local para o cache do youtube

2

Estou usando o proxy transparente do squid para o cache e também tenho o cache do youtube feito com o url_rewrite e o script do apache em execução na mesma máquina que o squid.

Tudo estava funcionando bem, até que decidi ir com o TPROXY, já que tem muitos benefícios. Quando eu implementei as regras do tproxy no iptables, tudo continuou a funcionar, exceto a reprodução de vídeos do youtube - onde o script url_rewriter e o script apache entram em cena. O url_rewriter redireciona as solicitações do youtube para um script local .php trabalhando no Apache (na mesma máquina)

Eu acho que tem algo a ver com como o squid se comunica com o processo apache local (onde o software para o cache do youtube funciona) e de alguma forma o tproxy está estragando isso, porque depois de implementar o tproxy os pedidos para o Apache são enviados com o USER-IP (anterior sem o tproxy, estava com o SQUID-IP) e a resposta do script apache provavelmente vai diretamente ao usuário, ao invés de retornar pelo processo do squid.

Além disso, o script apache deve ser capaz de se comunicar livremente com os servidores reais do youtube, para buscar o vídeo de lá.

Aqui estão as minhas regras para o tproxy, mas acho que elas são bem padronizadas:

iptables -t mangle -N DIVERT 
iptables -t mangle -A DIVERT -j MARK --set-mark 1 
iptables -t mangle -A DIVERT -j ACCEPT 
iptables -t mangle -A PREROUTING -p tcp -m socket -j DIVERT 
iptables -t mangle -A PREROUTING -i eth1 -p tcp --dport 80 -j TPROXY --tproxy-mark 0x1/0x1 --on-port 8081 


echo 1 > /proc/sys/net/ipv4/ip_forward 
ip rule add fwmark 1 lookup 100 
ip route add local 0.0.0.0/0 dev lo table 100 

O sistema é o UBUNTU 12.04 com a versão 3.1.19 do squid.

Alguém experimentou o mesmo problema e, eventualmente, alguma solução alternativa com as opções do Squid ou com as regras do iptables?

    
por Marlow 18.04.2012 / 18:27

0 respostas

Tags