Não é possível conectar-se a sites HTTPS via proxy do squid

2

Acabei de tentar criar um servidor proxy em um VPS do OpenVZ no CentOS7. Tudo bem, mas eu não consigo acessar sites https como o google, instagram, facebook, etc., diz timeout, demorou muito para responder.

Gerei um certificado myCA.pem e usando o ssl_bump, vinculei o certificado assinado sem erros (verifiquei com systemctl status squid ) e, agora, tudo quando estou tentando conectar-me aos sites listados acima não me dá nenhuma erro na internet:

1 http://i.prntscr.com/9c443500cf84450cb128b7a52e858cf7.png

Abaixo está meu squid.conf e aqui meu cache.log link

acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
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 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 all
http_port 3128 ssl-bump \
 generate-host-certificates=on \
 dynamic_cert_mem_cache_size=4MB \
 key=/etc/squid/ssl_cert/myCA.pem \
 cert=/etc/squid/ssl_cert/myCA.pem

# SSL Bump Config
always_direct allow all
ssl_bump server-first all
sslproxy_cert_error deny all
sslproxy_flags DONT_VERIFY_PEER
sslcrtd_program /usr/lib64/squid/ssl_crtd -s /var/lib/ssl_db -M 4MB    sslcrtd_children 8 startup=1 idle=1

hierarchy_stoplist cgi-bin ?
coredump_dir /var/spool/squid
cache deny all

refresh_pattern ^ftp:        1440    20%    10080
refresh_pattern ^gopher:    1440    0%    1440
refresh_pattern -i (/cgi-bin/|\?) 0    0%    0
refresh_pattern .        0    20%    4320

icp_port 3130

forwarded_for off

request_header_access Allow allow all
request_header_access Authorization allow all
request_header_access Proxy-Authorization allow all
request_header_access Proxy-Authenticate allow all
request_header_access Cache-Control allow all
request_header_access Content-Encoding allow all
request_header_access Content-Length allow all

Eu adicionei a porta 3128 na zona pública usando firewall-cmd

    
por Alex Lucaci 06.10.2016 / 03:48

2 respostas

3

Para o meu propósito, não é necessário usar o sslbump, então eu o deletei e resolvi adicionando essa linha no squid.conf dns_v4_first on

    
por 06.10.2016 / 18:55
1

Você registra a seguinte linha:

 (ssl_crtd): Failed to initialize /var/lib/ssl_db/index.txt file for writing

O que significa que você cometeu erros na sua configuração do sslbump.

O problema com sua configuração é que você não pode ter /var/lib/ssl_db como seu armazenamento sslbump, pois você não poderá inicializá-lo com o seguinte comando /usr/lib64/squid/ssl_crtd -c -s /var/lib/ssl_db . O ssl_db dir não deveria existir antes de você emitir o comando ou ele falhará. Mas o usuário squid não pode criar o diretório em /var/lib devido às permissões. Então você precisa mudar o diretório para /var/lib/squid/ssl_db fazendo os seguintes comandos (start as as root!):

  1. sudo su (ou qualquer outro meio para obter shell root)
  2. mkdir /var/lib/squid/
  3. chown -R squid:squid /var/lib/squid/
  4. su -l squid -s /bin/bash (o próximo comando deve ser executado como squid user, portanto, esta etapa é importante)
  5. /usr/lib64/squid/ssl_crtd -c -s /var/lib/squid/ssl_db

Se você é bem sucedido, a saída deve exibir:

 Initialization SSL db...
 Done

Agora você muda seu squid.conf para o novo diretório ssl_db:

sslcrtd_program /usr/lib64/squid/ssl_crtd -s /var/lib/squid/ssl_db -M 4MB

E esta diretiva deve ir de uma nova linha, você tem um erro no seu arquivo de configuração:

sslcrtd_children 8 startup=1 idle=1

Espero que isso ajude (a menos que você esteja fazendo alguma censura, então espero que não:)

P.S. Este não é o seu caso, mas vou acrescentar, no entanto:

Diferentes distros colocam o comando ssl_crtd em diretórios diferentes, mas as pessoas têm a tendência de copiar arquivos de configuração sem verificar sua existência primeiro. O lançamento de /usr/lib64/squid/ssl_crtd as squid user deve exibir:

Uninitialized SSL certificate database directory: . To initialize, run "ssl_crtd -c -s ".

Se ele diz que command not found , ssl_crtd pode estar localizado em /usr/libexec/squid/ssl_crtd

P.P.S. Depois de uma sessão de skype de duas horas tentando consertar o unfixable, a solução foi encontrada - desabilitando o ipv6, configurado incorretamente pelo provedor de hospedagem:)

Quem teria pensado que tudo seria quebrado nos seguintes comandos:

 sysctl -w net.ipv6.conf.all.disable_ipv6=1
 sysctl -w net.ipv6.conf.default.disable_ipv6=1
 sysctl -w net.ipv6.conf.lo.disable_ipv6 = 1

E adicionando:

 dns_v4_first on

no squid.conf

    
por 06.10.2016 / 14:17

Tags