Depois de um dia para pesquisar, eu finalmente descobri a maneira de resolver o problema. A dica é: o lado do cliente deve separar em duas seções, como no lado do servidor. Então eu mudo a configuração do lado do cliente para isso:
[local_psk]
client = yes
accept = 127.0.0.1:8443
connect = 192.168.169.152:443
PSKsecrets = psk.txt
[local_proxy]
client = yes
accept = 127.0.0.1:8089
connect = 127.0.0.1:8443
sslVersion = all
options = NO_SSLv2
options = NO_SSLv3
O processo é assim:
browser <--> [local_proxy] <--> [local_psk] <==> [server_psk] <--> [server_proxy] <==> website
em que -
significa tráfego local, =
significa tráfego da Internet e []
significa as seções de configuração no stunnel
E atualizo a configuração do servidor [squid]
section accept
da opção de 8443
para 127.0.0.1:8443
. Este stunnel tell só aceita a conexão do localhost, caso contrário, a seção [PSK]
se tornará inútil. Veja como ficará depois da alteração:
[server_proxy]
accept = 127.0.0.1:8443
connect = 127.0.1:3128
sslVersion = all
ciphers = ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PS
options = NO_SSLv2
options = NO_SSLv3
options = CIPHER_SERVER_PREFERENCE
NOTA
Essas configurações são apenas para desenvolvimento / teste. Se você deseja um servidor proxy anônimo altamente seguro, é necessário definir o debug = 0
para desabilitar o log e o foreground = no
para o daemon no arquivo de configuração stunnel, com uma configuração adequada das regras de configuração do squid e do iptables.