rgtobr
(usa CentOS)
Enviado em 16/06/2014 - 15:42h
renato_pacheco escreveu:
Sobre a config do squid, tá correta. Agora é mitigar o lance.
- Olhe nos logs do squid pra saber se ele está tratando (/var/log/squid/access.log)
- Use o tcpdump no servidor squid pra saber se ele tá enviando os pacotes de volta pra máquina solicitante (tcpdump ip dst 192.168.0.100 and src port 3128)
- Veja, no firewall, se ele tá recebendo o pacote de volta do servidor squid (tcpdump ip src 192.168.0.2) e se ele tá conseguindo repassar o pacote para o destino (tcpdump ip dst 192.168.0.100).
Um desses passos vai falhar e ae a gente v o q tá ocorrendo.
Pessoal, resolvi!
Renato, valeu pelas dicas. Era o que eu estava imaginando, o Squid está configurado correto, o Iptables era o problema, vou explicar como solucionei, segue as regras:
1. Logo que o pacote chega na eth0, exceto se vier do squid, destinado a porta 80, encaminhar para o squid porta 3128:
# iptables -t nat -A PREROUTING -i eth0 -s ! 192.168.0.2 -p tcp --dport 80 -j DNAT --to 192.168.0.2:3128
2. Após o roteamento, o que sair da eth0 vindo da rede local com destino ao squid, receber no próprio roteador:
# iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/22 -d 192.168.0.2 -j SNAT --to 192.168.0.5
3. Então aceita todos os pacotes da rede local com destino ao squid, que entram pela eth0 e saem pela eth0 na porta 3128:
# iptables -A FORWARD -s 192.168.0.0/22 -d 192.168.0.2 -i eth0 -o eth0 -p tcp --dport 3128 -j ACCEPT
Ufa! Agora só falta eu descobrir como fazer autenticação no proxy transparente, se é que é possível.