Tenho uma rede sem acesso direto à Internet onde tenhoLula 3.5.9como umproxy transparenteouvindo tcp/8080
HTTP e tcp/8443
HTTPS (redirecionado via iptables
tcp/80 e tcp/443 respectivamente).
Este Squid também não tem acesso direto à Internet, mas pode conversar com um Squid pai em outra parte da rede que tenha acesso à Internet.
Com HTTP funciona bem - o cliente faz uma solicitação parahttp://www.exemplo.com(porta 80), roteador e iptables redirecionam a conexão para a porta 8080 do Squid, que intercepta a solicitação e faz uma solicitação ao proxy upstream que a atende normalmente. Aqui estão as opções de configuração usadas:
http_port 8080 intercept
cache_peer proxy-upstream parent 3128 0 no-query
never_direct allow all
Isso funciona bem. Agora eu queria fazer algo semelhante para HTTPS:
https_port 8443 intercept ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB cert=/etc/squid/myCA.pem
sslcrtd_program /usr/lib64/squid/ssl_crtd -s /var/lib/ssl_db -M 4MB
sslcrtd_children 5
ssl_bump bump all
Sem cache_peer
ele funciona conforme o esperado, ou seja, gera automaticamente um certificado SSL falso e faz uma conexão direta com o destino.
Porém com cache_peer
isso não funciona. Recebo erro HTTP/503 do proxy:
1446684476.877 0 proxy-client TAG_NONE/200 0 CONNECT 198.51.100.10:443 - HIER_NONE/- -
1446684476.970 3 proxy-client TCP_MISS/503 4309 GET https://secure.example.com/ - FIRSTUP_PARENT/proxy-upstream text/html
Alternativamente, se eu alterar a ssl_bump
configuração para isto:
acl step1 at_step SslBump1
ssl_bump peek step1
ssl_bump bump all
Recebo uma mensagem de travamento em cache.log:
2015/11/05 01:07:11 kid1| assertion failed: PeerConnector.cc:116: "peer->use_ssl"
Quando utilizo este proxy no modo não transparente, ou seja, configurando o proxy no cliente para proxy-test:3128, funciona:
1446684724.879 141 proxy-client TCP_TUNNEL/200 1886 CONNECT secure.example.com:443 - FIRSTUP_PARENT/proxy--upstream -
Então, preciso de alguma forma transformar a HTTPS
solicitação que chegateste de proxyna CONNECT
solicitação que é encaminhada paraproxy-upstream. Se o Squid não puder fazer isso, existe algum outro software proxy transparente para não transparente que possa fazer isso?
Obrigado!