Como redirecionar o Https CONNECT Request com o Squid Explicit Proxy

2

Eu quero bloquear determinados URLs para alguns usuários da minha rede interna. Eu estou usando um proxy explícito baseado em squid para este propósito com um redirect_program. Os clientes são configurados para usar um arquivo pac para URLs https, o que faz com que eles roteiem suas solicitações https para o proxy explícito.

O problema é que o redirecionamento de qualquer solicitação CONNECT para um URL https para um URL de página bloqueada falha. Tentei URLs de páginas bloqueadas baseadas em http e https, mas não consegui encontrar nenhuma sorte. Por alguns motivos, não quero usar um proxy transparente com SSL Bumping.

  1. O Safari apresenta o erro "O Safari não pode abrir a página. O erro foi "Ocorreu um problema ao estabelecer um túnel seguro através do servidor proxy da web" '

  2. O Chrome apresenta o erro "Esta página da Web não está disponível. ERR_TUNNEL_CONNECTION_FAILED '.

Aqui está uma linha do access.log para o link .

07 / out / 2015: 01: 41: 29 -0500 74 172.0.0.9 TCP_REDIRECT / 302 253 CONNECT www.yahoo.com:443 - HIER_NONE / - -

Eu li em algum lugar que o navegador espera iniciar um handshake SSL / TLS após a solicitação de conexão e é por isso que está falhando. Aqui está um qoute da documentação do redirecionador de squid.

"As alterações de URL e particularmente o redirecionamento só são possíveis em determinados métodos, e alguns como o POST e o CONNECT exigem cuidados especiais."

Ele não diz que o redirecionamento não é possível para o método CONNECT. No entanto, não onde é mencionado que como podemos redirecionar POST e CONNECT (estou particularmente interessado em CONECTAR) ou qualquer exemplo é dado.

Por favor me guie sobre como redirecionar solicitações de conexão https para uma página bloqueada. Se isso não for possível, existe uma solução para isso com o proxy explícito? Obrigado.

Estou usando o squid 3.5.4 no Ubuntu.

    
por 4_dev 07.10.2015 / 10:01

1 resposta

2

Infelizmente, isso não é possível sem bater (descriptografar) a conexão SSL primeiro. Os navegadores por design negam qualquer carga / redirecionamento adicional de solicitações CONNECT com falha. Para uma descrição mais formal, consulte o link .

Se você fizer decidir executar a descriptografia SSL, é possível primeiro permitir que a solicitação CONNECT seja bem-sucedida e, posteriormente, bloquear / redirecionar a próxima solicitação HTTP que passa por esse túnel de conexão estabelecido - leve em consideração que talvez nem seja HTTP, pois alguns aplicativos usam o encapsulamento proxy CONNECT para seus próprios protocolos (como o Skype, por exemplo).

Além disso, é necessário ter em mente: se o aplicativo usar a técnica de "fixação de SSL" ao fazer solicitações CONNECT ao proxy, ele se recusará a trabalhar com conexões descriptografadas.

    
por 08.10.2015 / 09:09