Páginas não são bloqueadas com o Squid por HTTPS

1

Eu configurei o Squid para bloquear páginas no meu próprio sistema (ou seja, não em uma rede), e estou tentando fazer o SSL funcionar com o bloqueio de páginas. Para isso, configurei o ssl-bump e instalei o certificado no meu navegador.

Eu quero bloquear *.reddit.com/* (em HTTPS e HTTP), mas desejo permitir o URL filho *.reddit.com/r/LearnJapanese (em HTTP e HTTPS)

Aqui faz parte do meu arquivo squid.conf:

acl bad_domain url_regex "/usr/local/squid/etc/block.acl"
acl good_domain url_regex "/usr/local/squid/etc/allow.acl"

http_access deny bad_domain !good_domain
http_access allow good_domain

http_access allow localnet
http_access allow localhost

http_access deny all

# Squid normally listens to port 3128
http_port 3128 ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=10MB cert=/usr/local/squid/etc/squid.pem

ssl_bump allow all

sslproxy_cert_error allow all
sslproxy_flags DONT_VERIFY_PEER

Conteúdo do block.acl:

^http(s)?://(.+)?reddit\.com(.+)?$

Conteúdo de allow.acl:

^http(s)?://(.+)?reddit\.com/r/LearnJapanese(.+)?$

Funciona bem com HTTP (por exemplo, reddit.com/r/LearnJapanese pode ser acessado, mas o resto do Reddit não pode), mas eu não tenho a mesma sorte com HTTPS.

Quando eu acesso o Reddit via HTTPS, as páginas não são bloqueadas, mas devem ser (exceto para o reddit.com/r/LearnJapanese, é claro).

Como posso bloquear o acesso a todo o Reddit (além de .reddit.com / r / LearnJapanese / ) sobre HTTP e HTTPS? Obrigado.

    
por q3d 15.03.2015 / 20:35

2 respostas

1

Corrigi meu problema escrevendo ssl_bump server-first all e removendo ssl_bump allow all . Não tenho certeza se isso contribuiu para corrigir o problema, mas também coloquei essas linhas no meu terminal:

/sbin/iptables -t nat -A PREROUTING -p TCP -s 127.0.0.1 --dport 80 -j REDIRECT --to-port 3128
/sbin/iptables -t nat -A PREROUTING -p TCP -s 127.0.0.1 --dport 443 -j REDIRECT --to-port 3128

Embora isso não produza a mensagem "Acesso negado" quando tento navegar para páginas na lista negra com HTTPS, ele me "servidor proxy está recusando conexões" quando eu configurei o Firefox para usar o proxy Squid para todos os protocolos (ou seja, HTTP e HTTPS) e eu adicionei o certificado raiz que eu criei anteriormente ( /usr/local/squid/etc/squid.pem ).

    
por 16.03.2015 / 23:13
2

Devido ao fato de o SSL ser uma criptografia de ponta a ponta, um proxy como o Squid normalmente sabe muito menos sobre uma solicitação HTTPS do que sobre HTTP ( link ):

[Many] common parts of the request URL do not exist in a CONNECT request:

  • the URL scheme or protocol (e.g., http://, https://, ftp://, voip://, itunes://, or telnet://),
  • the URL path (e.g., /index.html or /secure/images/),
  • and query string (e.g. ?a=b&c=d)

Para saber mais do que isso sobre uma solicitação HTTPS, o Squid teria que executar o que é basicamente um ataque man-in-the-middle em seus clientes. A documentação do Squid explica como fazê-lo, mas observe que isso vem com algumas questões relacionadas à privacidade (sua os usuários devem confiar em você com suas informações normalmente criptografadas, e os navegadores da Web podem avisar sobre o ataque).

    
por 15.03.2015 / 21:34