Eu também conheci o requisito semelhante hoje. Depois de algumas pesquisas, parece que esse é um recurso do Squid para evitar um link vulnerável.
Ler o código de link . Intencionalmente evita a procura de DNS por host no modo de intercepção.
Eu configurei um roteador e interceptei o proxy de squid HTTP em diferentes máquinas. Os clientes devem usar o proxy (sem conhecimento) da seguinte maneira:
Cliente - > Roteador (DNATing para servidor proxy) - > Servidor Proxy - > Roteador - > Internet
As solicitações que chegam ao servidor proxy têm os seguintes atributos:
Infelizmente, parece que o squid está tentando encaminhar pacotes para o endereço de destino da solicitação, que é o próprio servidor proxy, e cria um loop infinito. Retirado do cache.log
:
2015/12/18 14:11:50 kid1| WARNING: Forwarding loop detected for:
Como posso configurar o squid para resolver o nome do host na solicitação HTTP via DNS e, em seguida, encaminhar as solicitações para o endereço IP resolvido na porta HTTP padrão 80?
Informações adicionais:
O DNAT é feito pelo iptables no roteador, com a seguinte regra:
iptables -t nat -A PRE_VS_PROXY -p tcp --dport 80 -j DNAT --to-destination 192.168.4.50:3380
Exemplo de entrada de access.log
:
1450444309.741 0 192.168.4.50 TCP_MISS/403 4277 POST http://ocsp.digicert.com/ - HIER_NONE/- text/html
1450444309.742 46 192.168.4.46 TCP_MISS/403 4341 POST http://ocsp.digicert.com/ - ORIGINAL_DST/192.168.4.50 text/html
Configuração efetiva do squid:
http_access allow localhost manager
http_access deny manager
http_access deny to_localhost
cache deny all
http_access allow all
http_access deny all
http_port 3128
http_port 3380 intercept
http_port 3443 intercept
coredump_dir /var/squid/cache/squid
shutdown_lifetime 1 seconds
Olhando para o tráfego DNS usando o tcpdump, posso ver que, na verdade, duas solicitações DNS estão sendo feitas quando o squid está processando solicitações HTTP: uma para resolver o nome do host na solicitação HTTP e outra é uma consulta reversa do destino da solicitação Endereço IP.
link seria um bom ponto de partida.
Não faça DNAT para o proxy, direcione o tráfego para ele marcando os pacotes. O tráfego do proxy usará uma interface diferente. que não tem essa política de roteamento aplicada.