Proxy Squid “Redefinição de conexão” em sites HTTPS

0

Estou usando um Linode e Squid3 como proxy, mas não consigo trabalhar com sites https. Está funcionando em http, mas quando tento visitar um site com https, digamos link , acabei de receber uma:

The connection was reset
The connection to the server was reset while the page was loading.

Atualização: parece que estou tendo apenas esses problemas em minha rede doméstica. Tentando compartilhar para o meu telefone e em outra rede (em um ISP diferente) ele funciona. Não tenho certeza como depurar isso. Verifique o roteador? O ISP pode bloquear o tráfego de proxy? (Parece nozes)

Estou usando Ubuntu 12.10 e estava usando inicialmente o squid3 instalado com apt-get install squid3 . squid -v mostrou:

Squid Cache: Version 3.1.20
configure options:  '--build=i686-linux-gnu' '--prefix=/usr' '--includedir=${prefix}/include' '--mandir=${prefix}/share/man' '--infodir=${prefix}/share/info' '--sysconfdir=/etc' '--localstatedir=/var' '--libexecdir=${prefix}/lib/squid3' '--srcdir=.' '--disable-maintainer-mode' '--disable-dependency-tracking' '--disable-silent-rules' '--datadir=/usr/share/squid3' '--sysconfdir=/etc/squid3' '--mandir=/usr/share/man' '--with-cppunit-basedir=/usr' '--enable-inline' '--enable-async-io=8' '--enable-storeio=ufs,aufs,diskd' '--enable-removal-policies=lru,heap' '--enable-delay-pools' '--enable-cache-digests' '--enable-underscores' '--enable-icap-client' '--enable-follow-x-forwarded-for' '--enable-auth=basic,digest,ntlm,negotiate' '--enable-basic-auth-helpers=LDAP,MSNT,NCSA,PAM,SASL,SMB,YP,DB,POP3,getpwnam,squid_radius_auth,multi-domain-NTLM' '--enable-ntlm-auth-helpers=smb_lm,' '--enable-digest-auth-helpers=ldap,password' '--enable-negotiate-auth-helpers=squid_kerb_auth' '--enable-external-acl-helpers=ip_user,ldap_group,session,unix_group,wbinfo_group' '--enable-arp-acl' '--enable-esi' '--enable-zph-qos' '--enable-wccpv2' '--disable-translation' '--with-logdir=/var/log/squid3' '--with-pidfile=/var/run/squid3.pid' '--with-filedescriptors=65536' '--with-large-files' '--with-default-user=proxy' '--enable-linux-netfilter' 'build_alias=i686-linux-gnu' 'CFLAGS=-g -O2 -fPIE -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wall' 'LDFLAGS=-Wl,-Bsymbolic-functions -fPIE -pie -Wl,-z,relro -Wl,-z,now' 'CPPFLAGS=-D_FORTIFY_SOURCE=2' 'CXXFLAGS=-g -O2 -fPIE -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security' --with-squid=/build/buildd/squid3-3.1.20

Em minhas tentativas de resolver esses problemas, notei que o squid3 não foi compilado com --enable-ssl . Então criei a partir do código-fonte com --enable-ssl e agora squid3 -v mostra:

Squid Cache: Version 3.1.20
configure options:  '--build=i686-linux-gnu' '--prefix=/usr' '--includedir=${prefix}/include' '--mandir=${prefix}/share/man' '--infodir=${prefix}/share/info' '--sysconfdir=/etc' '--localstatedir=/var' '--libexecdir=${prefix}/lib/squid3' '--srcdir=.' '--disable-maintainer-mode' '--disable-dependency-tracking' '--disable-silent-rules' '--datadir=/usr/share/squid3' '--sysconfdir=/etc/squid3' '--mandir=/usr/share/man' '--with-cppunit-basedir=/usr' '--enable-inline' '--enable-async-io=8' '--enable-storeio=ufs,aufs,diskd' '--enable-removal-policies=lru,heap' '--enable-delay-pools' '--enable-cache-digests' '--enable-underscores' '--enable-icap-client' '--enable-follow-x-forwarded-for' '--enable-auth=basic,digest,ntlm,negotiate' '--enable-basic-auth-helpers=LDAP,MSNT,NCSA,PAM,SASL,SMB,YP,DB,POP3,getpwnam,squid_radius_auth,multi-domain-NTLM' '--enable-ntlm-auth-helpers=smb_lm,' '--enable-digest-auth-helpers=ldap,password' '--enable-negotiate-auth-helpers=squid_kerb_auth' '--enable-external-acl-helpers=ip_user,ldap_group,session,unix_group,wbinfo_group' '--enable-arp-acl' '--enable-esi' '--enable-zph-qos' '--enable-wccpv2' '--enable-ssl' '--disable-translation' '--with-logdir=/var/log/squid3' '--with-pidfile=/var/run/squid3.pid' '--with-filedescriptors=65536' '--with-large-files' '--with-default-user=proxy' '--with-open-ssl=/etc/ssl/openssl.cnf' '--enable-linux-netfilter' 'build_alias=i686-linux-gnu' 'CFLAGS=-g -O2 -fPIE -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wall' 'LDFLAGS=-Wl,-Bsymbolic-functions -fPIE -pie -Wl,-z,relro -Wl,-z,now' 'CPPFLAGS=-D_FORTIFY_SOURCE=2' 'CXXFLAGS=-g -O2 -fPIE -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security' --with-squid=/root/squid3-3.1.20

E ainda recebo o mesmo erro. Meu arquivo de configuração é assim:

via off
forwarded_for delete
follow_x_forwarded_for deny all
acl SSL method CONNECT
auth_param basic program /usr/lib/squid3/ncsa_auth /etc/squid3/passwd
acl theUser proxy_auth myuser
http_access allow theUser
acl manager proto cache_object
acl localhost src 127.0.0.1/32 ::1
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1
acl SSL_ports port 443
acl Safe_ports port 80      # http
acl Safe_ports port 21      # ftp
acl Safe_ports port 443     # https
acl Safe_ports port 70      # gopher
acl Safe_ports port 210     # wais
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 280     # http-mgmt
acl Safe_ports port 488     # gss-http
acl Safe_ports port 591     # filemaker
acl Safe_ports port 777     # multiling http
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access deny all
http_port 1153
coredump_dir /var/spool/squid3
refresh_pattern ^ftp:       1440    20% 10080
refresh_pattern ^gopher:    1440    0%  1440
refresh_pattern -i (/cgi-bin/|\?) 0 0%  0
refresh_pattern (Release|Packages(.gz)*)$      0       20%     2880
refresh_pattern .       0   20% 4320
cache_effective_user proxy
cache_effective_group proxy
https_port 1153 cert=/etc/squid3/ssl/squid.crt key=/etc/squid3/ssl/squid.key vhost

Eu brinquei com o número https_port e todas as portas estão abertas, pois posso telnet <IP> 1153 e obter uma conexão.

Não sei bem o que tentar ou fazer. Eu só quero poder visitar sites https / ssl com o proxy. Preciso de outros módulos ou isso é um problema de configuração? Eu não preciso de nenhum cache ou nada, pois isso é apenas uma configuração simples de proxy do navegador.

Aqui estão as configurações de proxy no firefox:

    
por ErikPerik 05.01.2013 / 13:05

1 resposta

1

Como este servidor proxy é externo à rede da qual você está testando, parece provável que seu ISP (mais provável) ou roteador esteja bloqueando qualquer tráfego que contenha a diretiva CONNECT , que é o que você precisa para uma sessão SSL via um proxy.

Se você se conectar ao proxy usando SSL (colocando de volta a linha https_port ), eles não verão o conteúdo da sessão e, portanto, não verão o CONNECT .

No entanto, é difícil conectar-se a um servidor proxy por meio de https. Uma abordagem seria estabelecer um túnel VPN ou SSL para o servidor proxy e acessar o proxy pelo túnel, evitando a necessidade de obter o proxies https funcionando. Isso também serviria como um bom teste para confirmar que é o seu ISP causando a desconexão. Você pode fazer isso usando ssh:

ssh -L1153:127.0.0.1:1153 proxy

Em seguida, defina o servidor proxy do seu navegador como 127.0.0.1 e port 1153 . Qualquer tráfego enviado para a porta local 1153 será enviado pelo túnel ssh para a porta 1153 no proxy.

Existem maneiras de acessar um servidor proxy em SSL, existe um extensão para o Firefox . Há também algumas maneiras de fazer isso com o Google Chrome, ou executá-lo usando:

chrome --proxy-server=https://proxy:1153

Ou use o script de configuração automática de proxy com um proxy https definido:

function FindProxyForURL(url, host) { return "HTTPS proxy:1153"; }

Você pode usar o mesmo truque que nos comentários para se certificar de que os certificados ssl do squid estão ok:

openssl s_client -connect proxy:1153
    
por 07.01.2013 / 00:03