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

Por: Buckminster em 05/01/2016


Compilando o Squid3



O Squid3, acredito que a maioria interessada conheça, assim como o Debian, não vou me deter com explicações sobre esses dois. Suas reputações os precedem (falei bonito, de novo).

Leia o texto até o final antes de sair executando comandos, pois há duas configurações abaixo, uma mais simples para habilitar bloqueio HTTPS e outra um pouco mais complexa com várias opções extras, escolha uma das duas... ou faça uma mescla entre as duas, mas depois se der alguma coisa errada não me venha chorar nos ouvidos.

A compilação aqui apresentada foi feita para fins de habilitar opções extras no Squid3 e, é também, sobre sua instalação a partir do zero.

Foi utilizada a versão 3.5.12 (versão mais atual até o momento, dezembro de 2015) do Squid3 no Debian Jessie 8.1 64 bits, mas nada impede que essa compilação seja feita em outras distribuições, com algumas poucas alterações.

Também não vou me deter aqui com explicações básicas, até porque esta compilação é simples nela mesma.

Lembre-se: na versão 3.0 do Squid ainda é "transparent", a partir da versão 3.1 é "intercept".

Caso tu já tenhas qualquer versão do Squid instalada, sugiro primeiro desinstalar, reiniciar a máquina e depois realizar o procedimento abaixo. Antes, faça um backup do teu "squid.conf" e você poderá utilizá-lo novamente, com algumas adaptações, dependendo da versão que estava instalada.

Se tu quiser acrescentar e/ou tirar algumas opções no "./configure" sugiro primeiro ler a página do Squid3 para ver o que cada opção faz. Os links estão no final.

Todos os comandos abaixo devem ser executados como root.

# apt-get update
# aptitude safe-upgrade


Instalando pacotes (tem mais pacotes do que o necessário, mas instale todos):

# aptitude install binutils build-essential wget udev libaal-dev libncurses5-dev gzip dpatch

# aptitude install devscripts libssl-dev libcap-dev gawk gcc-multilib automake gdebi-core python3-uno


# apt-get install openssl* <<< Aqui tem um asterisco e deve ser usado o apt-get

# aptitude build-dep squid3 <<< verificando as dependências do Squid3

Os pacotes abaixo NÃO são necessários caso tu queiras somente habilitar o bloqueio de HTTPS:

# aptitude install libc6 libc6-dev libpam-modules libpam-chroot libpam0g libpam0g-dev

# aptitude install slapd ldap-utils libnss-ldap libpam-ldap <<< durante o processo de instalação irá pedir para digitar a senha, nas outras opções vá dando enter caso não queira configurar o LDAP agora

Baixando a versão mais recente do Squid3 (dezembro de 2015):

# wget http://www.squid-cache.org/Versions/v3/3.5/squid-3.5.12.tar.gz

Para quem quiser baixar usando um navegador acesse o link http://www.squid-cache.org/Versions/v3/ e escolha outra versão ou baixe a mais atual mesmo (recomendado).

Descompactando:

# tar xvzf squid-3.5.12.tar.gz

Copiando para a pasta /usr/src:

# cp -R squid-3.5.12 /usr/src
# cd /usr/src
# ls
# cd squid-3.5.12


Nesta página do squid-cache.org vemos que para habilitar a opção https_port (para bloqueio HTTPS) é necessário compilar o Squid3 com um dos seguintes parâmetros:

Requer: --with-gnutls ou --with-openssl

# ./configure --help <<< para ver as opções de configuração

As configurações (./configure) abaixo são para quem deseja compilar o Squid3 somente para habilitar o bloqueio de HTTPS.

Configurando:

# ./configure --prefix=/usr --localstatedir=/var --srcdir=. --includedir=/usr/include --datadir=/usr/share/squid3 --bindir=/usr/sbin --libexecdir=/lib/squid3 --sysconfdir=/etc/squid3 --mandir=/usr/share/man --infodir=/usr/share/info --enable-icap-client --enable-ssl --enable-ssl-crtd --with-openssl --with-default-user=squid "CONFIGURE_EXTRA_FLAGS=--with-cppunit-basedir=/usr" --with-logdir=/var/log/squid3 --with-pidfile=/var/run/squid3.pid

Após o ./configure acima ignore o conteúdo a seguir e pule para os PASSOS FINAIS.

Caso tu sejas um "Gorilão da Bola Azul" e deseja compilar o Squid3 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), utilize o próximo ./configure no lugar do outro acima.

Antes vamos rodar o comando abaixo para ver quais os novos nomes dos helpers para configurar esses parâmetros no Squid3:

# ls -1 helpers/*/ <<< esse comando dará uma lista dos helpers

Configurando:

# ./configure --prefix=/usr --localstatedir=/var --srcdir=. --includedir=/usr/include --datadir=/usr/share/squid3 --bindir=/usr/sbin --libexecdir=/lib/squid3 --sysconfdir=/etc/squid3 --mandir=/usr/share/man --infodir=/usr/share/info --with-openssl --with-default-user=squid --with-logdir=/var/log/squid3 --with-pidfile=/var/run/squid3.pid "CONFIGURE_EXTRA_FLAGS=--with-cppunit-basedir=/usr" --with-pthreads --with-filedescriptors=128000 --enable-delay-pools --enable-ssl --enable-ssl-crtd --enable-icap-client --enable-cpu-profiling --enable-x-accelerator-vary --enable-eui --enable-snmp --enable-err-language="Portuguese" --enable-default-err-language="Portuguese" --enable-storeio="aufs,diskd,ufs" --enable-snmp –enable-icmp --enable-removal-policies="heap,lru" --enable-cache-digests --enable-underscores --enable-auth-digest="file,LDAP,eDirectory" --enable-external-acl-helpers="file_userip, unix_group, wbinfo_group, kerberos_ldap_group, LDAP_group, SQL_session, session" --enable-auth-ntlm="fake,smb_lm" --enable-auth-negotiate="kerberos,wrapper" --enable-auth-basic="LDAP,NCSA,PAM,SMB,NIS,getpwnam,MSNT-multi-domain,SASL,DB,RADIUS,fake"

Depois de usar o ./configure acima siga os passos finais abaixo.

    Próxima página

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

Instalação do PAP (PostgreSL, Apache2 e PHP7) no Debian Jessie

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

kernel Linux otimizado - Compilação e teste

Manual traduzido do Squid - Parte 3

Compilação do Kernel

Leitura recomendada

ECache - O cache efetivo

Compilando o Squid com autenticação PAM

Bloqueando Windows Live Messenger com Squid (Debian ou Ubuntu)

Implementação de um proxy/cache para ganho de conexão

Squid - Bloqueando definitivamente o MSN Messenger e Orkut

  
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