Quero bloquear determinados URLs para alguns usuários da minha rede interna. Estou usando um proxy explícito baseado em squid para essa finalidade com um redirect_program. Os clientes são configurados para usar um arquivo pac para URLs https, o que os faz rotear suas solicitações https para o proxy explícito.
O problema é que o redirecionamento de qualquer solicitação CONNECT de 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 tive sorte. Por alguns motivos, não quero usar um proxy transparente com SSL bumping.
O Safari apresenta o erro 'O Safari não consegue abrir a página. O erro foi "Ocorreu um problema ao estabelecer um túnel seguro através do servidor proxy da web"'
O Chrome apresenta o erro 'Esta página da web não está disponível. ERR_TUNNEL_CONNECTION_FAILED'.
Aqui está uma linha de access.log parahttps://www.yahoo.com.
07/out/2015:01:41:29 -0500 74 172.0.0.9 TCP_REDIRECT/302 253 CONNECT www.yahoo.com:443 - HIER_NONE/- -
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á uma citação da documentação do redirecionador squid.
"Alterações de URL e principalmente redirecionamentos só são possíveis em determinados métodos, e alguns como POST e CONNECT requerem cuidados especiais."
Não diz que o redirecionamento não é possível para o método CONNECT. No entanto, em nenhum lugar é mencionado como podemos redirecionar POST e CONNECT (estou particularmente interessado em CONNECT) ou qualquer exemplo é dado.
Por favor, oriente-me 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 alternativa para isso com proxy explícito? Obrigado.
Estou usando o squid 3.5.4 no Ubuntu.
Responder1
Infelizmente, isso não é possível sem primeiro descriptografar (descriptografar) a conexão SSL. Os navegadores, por design, negam qualquer carga/redirecionamento adicional de solicitações CONNECT com falha. Para uma descrição mais formal, consulte -http://docs.diladele.com/faq/squid/cannot_connect_to_site_using_https.html.
Se vocêfazerdecidir realizar a descriptografia SSL, então é possível primeiro permitir que a solicitação CONNECT seja bem-sucedida e depois bloquear/redirecionar a próxima solicitação HTTP que passa por este túnel de conexão estabelecido - leve em consideração que se não for HTTP, pois alguns aplicativos usam o túnel proxy CONNECT para seus próprios protocolos (como o Skype, por exemplo).
Também é algo para se ter em mente - se o aplicativo usou a técnica de "fixação SSL" ao fazer solicitações CONNECT ao proxy - ele se recusará a trabalhar com conexões descriptografadas.