Squid 3.5: Evitando o ciclo de encaminhamento no modo de interceptação

2

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:

  • Endereço IP de origem: endereço IP do cliente original
  • Porta de origem: porta do cliente original
  • Endereço IP de destino: endereço IP do servidor proxy (192.168.4.50)
  • Porta de destino: 3380

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.

    
por Cybran 18.12.2015 / 14:34

2 respostas

2

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.

    
por 12.10.2018 / 08:05
1

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.

    
por 18.12.2015 / 16:00