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: 15.033 ]

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

Como utilizar de forma correta os repositórios e pacotes Backports

Enviar mensagem ao usuário trabalhando com as opções do php.ini

DHCP com controle de IP e compartilhamento no Debian Squeeze

Descritores de Arquivos e Swappiness

Como um monte de letras de um código fonte transforma-se em voltagens?

Leitura recomendada

Configurando Squid para liberação de messenger em horário específico, dentre outros

Limitando download com Squid

Proxy Squid Transparente

Filtragem de páginas SSL (443) no Squid transparente

Squid autenticando em base Active Directory

  
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 vchacal 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

__#$
root@human:/#apt-get install -y brain
"Conhecimento é livre"


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts