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).

[ Hits: 11.284 ]

Por: Buckminster em 05/01/2016


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.:

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


Página anterior    

Páginas do artigo
   1. Compilando o Squid3
   2. Passos finais
Outros artigos deste autor

Manual traduzido do Squid - Parte 3

Problema no GRUB no Debian Squeeze 6.0.7 [Resolvido]

Manual traduzido do Squid - Parte 2

Compilando kernel no Debian Squeeze

DHCP com controle de IP e compartilhamento no Debian Squeeze

Leitura recomendada

Limitando acesso ao Team Viewer com Squid e IPTables

Instalação e configuração do Squid 2.6 Stable

Instalando o MySAR no CentOS 5.5

Direcionando log Squid para banco MySQL

Fazendo hierarquia proxy/Squid

  
Comentários
[1] Comentário enviado por danniel-lara em 05/01/2016 - 08:32h

Parabéns muito bom o artigo

[2] Comentário enviado por wagnerfs em 05/01/2016 - 17:56h

Parabéns por compartilhar o conhecimento.
_________________________
Wagner F. de Souza
Técnico/Instrutor de Informática
"GNU/Linux for human beings."
LPI ID: LPI000297782

[3] Comentário enviado por Buckminster em 05/01/2016 - 19:13h

Obrigado Daniel e Wagner.

[4] Comentário enviado por Campacci em 06/01/2016 - 09:56h

Muito bem detalhado.
Logo vou usar ele em ambiente de teste e produção.
Federal o artigo, parabéns!

[5] Comentário enviado por jere2001 em 07/01/2016 - 12:04h

Não entendi a parte do "transparent", e "intercept"...

[6] Comentário enviado por Buckminster em 07/01/2016 - 12:16h


[5] Comentário enviado por jere2001 em 07/01/2016 - 12:04h

Não entendi a parte do "transparent", e "intercept"...


Aqui nessas linhas

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

Até a versão 3.0 do Squid3 se usava a palavra 'transparent' para proxy transparente, a partir da versão 3.1 os desenvolvedores mudaram para 'intercept'.

[7] Comentário enviado por thiagosabo em 11/01/2016 - 07:22h

E a prevenção contra a Dengue e a Zika?? o_O

Muito bom! hehe

[8] Comentário enviado por dolivervl em 13/01/2016 - 17:48h

Parabéns !!
Esse foi o artigo mais zueiro que já li aqui no VOL !!

[9] Comentário enviado por Buckminster em 14/01/2016 - 19:13h

The zuera never ends.

[10] Comentário enviado por Athila_Augusto em 18/03/2016 - 09:59h

Consegui fazer tudo certinho até a parte de criar o banco de dados "ssl_db", pois o arquivo não ssl_crtd não esta na pasta /lib/squid3/.
Verifiquei o ./configure e vi que coloquei sim a opção "--libexecdir=/lib/squid3".
Alguém pode me ajudar???

[11] Comentário enviado por Buckminster em 18/03/2016 - 11:12h


[10] Comentário enviado por Athila_Augusto em 18/03/2016 - 09:59h

Consegui fazer tudo certinho até a parte de criar o banco de dados "ssl_db", pois o arquivo não ssl_crtd não esta na pasta /lib/squid3/.
Verifiquei o ./configure e vi que coloquei sim a opção "--libexecdir=/lib/squid3".
Alguém pode me ajudar???



Execute

# updatedb
depois
# locate ssl_crtd | less

para ver se o arquivo existe e onde ele está.

Aqui o arquivo ssl_crtd foi criado e está dentro de /lib/squid3.

Caso o arquivo ssl_crtd (é um executável) não esteja mesmo dentro de /lib/squid3 aconselho a deletar as pastas criadas com o Squid3 e refazer o processo.
Talvez tu tenhas copiado e colado os parâmetros do ./configure, aconselho a digitá-los.

[12] Comentário enviado por rbonfim em 02/04/2016 - 11:21h

Buckminster =D

__#$
[email protected]:/#apt-get install -y brain
"Conhecimento é livre"


Contribuir com comentário