Compilando o Squid3
uma mais simples com suporte a bloqueio HTTPS e outra mais complexa com quase tudo que tenha direito (HTTPS, alguns tipos de autenticações, controle de banda, suporte a LDAP, geração de chaves e certificados, aumento dos descritores de arquivos, armazenamento em cache, suporte para mais ACLs externas, prevenção contra dengue, zika vírus etc).
Parte 2: Passos finais
Pare o Squid:
# service squid3 stop <<< não dará mensagem nenhuma ou dará uma mensagem indicando que o serviço não está rodando (not running)
Compilando:
# make <<< demorará de 10 a 20 minutos dependendo dos parâmetros escolhidos no ./configure e do poder de processamento da sua máquina
Terminará parecido como abaixo:
make[1]: Entering directory '/usr/src/squid-3.5.12'
make[1]: Nothing to be done for 'all-am'.
make[1]: Leaving directory '/usr/src/squid-3.5.12'
Instalando:
# make install
A partir daqui, o que está entre quotes, por pura preguiça e também porque não há o que mudar, descaradamente copiei e colei do artigo do Renato Cesar Ribeiro Bonfim Jr.:
# service squid3 stop <<< não dará mensagem nenhuma ou dará uma mensagem indicando que o serviço não está rodando (not running)
Compilando:
# make <<< demorará de 10 a 20 minutos dependendo dos parâmetros escolhidos no ./configure e do poder de processamento da sua máquina
Terminará parecido como abaixo:
make[1]: Entering directory '/usr/src/squid-3.5.12'
make[1]: Nothing to be done for 'all-am'.
make[1]: Leaving directory '/usr/src/squid-3.5.12'
Instalando:
# make install
A partir daqui, o que está entre quotes, por pura preguiça e também porque não há o que mudar, descaradamente copiei e colei do artigo do Renato Cesar Ribeiro Bonfim Jr.:
Adicione o usuário "squid" e modifique o proprietário da pasta /var/log/squid3:
# useradd squid && chown -R squid:squid /var/log/squid3
A opção "-R" refere-se à modificação de forma recursiva, todo novo arquivo criado em /var/log/squid3 será de propriedade do usuário squid.
Um dos principais objetivos de realizar a compilação tendo o Squid3 já instalado é a possibilidade da cópia dos binários:
# mv /usr/sbin/squid3 /usr/sbin/squid3.old && mv /usr/sbin/squid /us/sbin/squid3
Crie na pasta do Squid 3 em /etc/squid3 uma pasta para criação dos certificados que depois serão importados para os navegadores dos clientes:
# cd /etc/squid3 && mkdir ssl_cert && cd ssl_cert
# openssl req -new -newkey rsa:1024 -days 365 -nodes -x509 -keyout myCA.pem -out myCA.pem
Durante o processo de compilação do Squid foi setada a opção "--libexecdir=/lib/squid3" nesta pasta estão os arquivos necessários à execução, um destes arquivos, ssl_crtd será usado para a criação de certificados dinâmicos:
# /lib/squid3/ssl_crtd -c -s /var/lib/ssl_db -M 4MB
Mude o proprietário do arquivo:
# chown -R squid:squid /var/lib/ssl_db
A partir deste ponto o Squid3 estará apto a realizar os bloqueios na porta 443, lembrando que a partir da versão 3.1 não se usa mais a opção transparent e sim a intercept:
http_port 3128 intercept
https_port 3127 intercept ssl_bump generate_host_certificates=on dynamic_cert_mem_cache_size=4MB cert=/etc/squid3/ssl_cert/myCA.pem
ssl_bump none localhost
ssl-bump server-first all
sslcrtd_program /lib/squid3/ssl_crtd -s /var/lib/ssl_db -M 4 MB
sslcrtd_children 5
Adicione ao script do firewall as linhas:
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 443 -j REDIRECT --to-port 3127
iptables -I INPUT -p tcp -m tcp --dport 3127 -j ACCEPT
Reinicie a execução do Squid3:
# service squid3 restart
Para aqueles que usam o Sarg é necessário modificar o sarg.conf, atualizando a TAG access_log:
access_log /var/log/squid3/access.log
Com isso o Squid3 poderá realizar o bloqueio do tão famigerado HTTPS. Espero que estas dicas ajudem à todos aqueles que passam pelo problema do HTTPS e àqueles que puderem contribuir com alguma melhora neste pequeno how-to, fiquem à vontade e sirvam-se.
O conhecimento sempre é livre!
Referências
- http://wiki.squid-cache.org/ConfigExamples
- http://wiki.squid-cache.org/SquidFaq/CompilingSquid
- https://www.vivaolinux.com.br/dica/Squid-3-com-bloqueio-HTTPS
- https://www.vivaolinux.com.br/artigo/Compilacao-do-Squid-3-no-Debian-Wheezy/
- http://www.abelworld.com/squid3-proxy-linux-debian-jessie-8/
- http://thejimmahknows.com/squid-3-1-caching-proxy-with-ssl/