Compilação do Squid 3 no Debian Wheezy

Um breve artigo sobre compilação do Squid 3 (com suporte a SSL e autenticação) no Debian Wheezy.

[ Hits: 51.006 ]

Por: Buckminster em 27/05/2013


Introdução e preparação



O Squid, 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).

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

Foi utilizada a versão 3.3.3 do Squid no Debian Wheezy 7.0.0, 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, essa compilação é simples nela mesma.

Essa configuração instala o Squid habilitado para SSL e autenticação. Mas, se você quiser usar depois como proxy transparente, também pode.

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

Caso você já tenha o Squid instalado, sugiro primeiro desinstalar ele, 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 você quiser acrescentar e/ou tirar algumas opções no "./configure" adiante, sugiro primeiro ler a página do Squid para ver o que cada opção faz. Os links estão no final.

Todos os comandos abaixo devem ser executados como root.

1. Verifique o teu arquivo "/etc/apt/sources.list".

Deixo aqui um sources.list básico, mas foi com ele que fiz instalação/compilação. Aliás, é esse que estou usando no Wheezy.

# vim /etc/apt/sources.list # Usei o Vim, mas você pode usar o teu editor de texto preferido

#deb cdrom:[Debian GNU/Linux 7.0.0 _Wheezy_ - Official amd64 DVD Binary-1 20130504-14:44]/ wheezy contrib main
#deb cdrom:[Debian GNU/Linux 7.0.0 _Wheezy_ - Official amd64 DVD Binary-1 20130504-14:44]/ wheezy contrib main


deb http://security.debian.org/ wheezy/updates main contrib non-free # Este repositório é preciso ter; se não tiver, acrescente-o
deb-src http://security.debian.org/ wheezy/updates main contrib non-free # Este repositório é preciso ter; se não tiver, acrescente-o

# wheezy-updates, previously known as 'volatile'
# A network mirror was not selected during install. The following entries
# are provided as examples, but you should amend them as appropriate
# for your mirror of choice.

deb http://ftp.br.debian.org/debian/ wheezy main contrib non-free

deb http://ftp.br.debian.org/debian/ wheezy-updates main contrib non-free
deb-src http://ftp.br.debian.org/debian/ wheezy-updates main contrib non-free

deb http://ftp.debian.org/debian/ wheezy main contrib non-free

deb http://ftp.debian.org/debian/ wheezy-updates main contrib non-free

#deb http://ftp.debian.org/debian/ wheezy-backports main contrib non-free # O backports está comentado, pois somente se deve descomentá-lo para a instalação de algum pacote em específico.

deb http://www.deb-multimedia.org/ wheezy main non-free

deb http://http.us.debian.org/debian/ wheezy main contrib non-free # Este repositório é preciso ter; se não tiver, acrescente-o


Salve e saia do arquivo.

Execute:

# apt-get update

Caso der erro pedindo a instalação de alguma chave, execute:

# apt-get install deb-multimedia-keyring
# aptitude safe-upgrade


    Próxima página

Páginas do artigo
   1. Introdução e preparação
   2. Instalação dos pacotes e compilação
Outros artigos deste autor

Compilando kernel no Debian Squeeze

Instalar Minecraft, League of Legends e Fortnite no Linux

Tradução do artigo do filósofo Gottfried Wilhelm Leibniz sobre o sistema binário

Entendendo o que é URI, URL, URN e conhecendo as diferenças entre POST e GET

Problema no GRUB no Debian Squeeze 6.0.7 [Resolvido]

Leitura recomendada

Filtro de conteúdo autenticado com níveis de privilégio

SQUID autenticado - Bloqueando o acesso dos usuários por grupos

Squid + Sarg + IPtables - Configuração rápida

DansGuardian versões 2.9.3.0 e superiores em Debian 5.01

Bloqueando conteúdo com Squid no RedHat 9

  
Comentários
[1] Comentário enviado por Carlos_Cunha em 28/05/2013 - 00:54h

Boa noite!
Parabéns pelo tópico, ficou bem explicado e uti, mas ao meu ver so tem vantagens conpilar programas quando se tem muito ganho de desempenho u em ultimo caso pois se não e melhor usar um gerenciador de pacotes como aptitude ou yum, pois alem de se a resolução de pendência, para actualização e remoção e muito mais rápido e simples....
Abraço

[2] Comentário enviado por Buckminster em 28/05/2013 - 13:44h


[1] Comentário enviado por PretooOO em 28/05/2013 - 00:54h:

Boa noite!
Parabéns pelo tópico, ficou bem explicado e uti, mas ao meu ver so tem vantagens conpilar programas quando se tem muito ganho de desempenho u em ultimo caso pois se não e melhor usar um gerenciador de pacotes como aptitude ou yum, pois alem de se a resolução de pendência, para actualização e remoção e muito mais rápido e simples....
Abraço


Obrigado.
Concordo com você.
Mas certas funções, como a habilitação à SSL e certas autenticações, por exemplo, não vem por padrão no Squid.
E se você quer essas funções, deve compilar para habilitá-las.
E a compilação tem muito pouco a ver com desempenho.
O que dará desempenho ou não é o uso das ACLs, o hardware disponível, o tráfego na rede, etc.

[3] Comentário enviado por Buckminster em 28/05/2013 - 19:48h




[4] Comentário enviado por SK5_RJ em 29/05/2013 - 20:22h

Cara sempre que procuro algo vejo em teus artigos as repostas XD me ajudou pakas ( eu usava usuario SK5) obrigadao veio!!!!

[5] Comentário enviado por Buckminster em 30/05/2013 - 06:42h


[4] Comentário enviado por Malheiros_XSB em 29/05/2013 - 20:22h:

Cara sempre que procuro algo vejo em teus artigos as repostas XD me ajudou pakas ( eu usava usuario SK5) obrigadao veio!!!!


De nada e obrigado, antigo SK5 e agora Malheiros_XSB.

[6] Comentário enviado por viniciusraupp em 03/06/2013 - 20:41h

Ótimo tutorial!
Tenho squid3 compilado semelhante ao tutorial, normalmente utilizo os comandos apt-get update && apt-get upgrade -y pra manter atualizado todo o debian, o problema é que com squid3 compilado, posteriormente atualizo o debian com o upgrade, então squid3 do repositório sobrescreve o squid3 compilado sendo assim perdendo a função SSL, alguma dica pra resolver isto ?

[7] Comentário enviado por Buckminster em 03/06/2013 - 21:25h


[6] Comentário enviado por viniciusraupp em 03/06/2013 - 20:41h:

Ótimo tutorial!
Tenho squid3 compilado semelhante ao tutorial, normalmente utilizo os comandos apt-get update && apt-get upgrade -y pra manter atualizado todo o debian, o problema é que com squid3 compilado, posteriormente atualizo o debian com o upgrade, então squid3 do repositório sobrescreve o squid3 compilado sendo assim perdendo a função SSL, alguma dica pra resolver isto ?


Obrigado.
É estranho, isso não deveria estar acontecendo.
O apt-get upgrade atualiza todos os pacotes para as versões mais recentes (tem que dar um update primeiro para atualizar a informação sobre os pacotes), além disso,
ele efetua uma comparação entre os pacotes que estão instalados em sua maquina e se na lista houver um pacote com a versão mais nova ele faz o download a faz a atualização e o Squid dos respositórios do Debian é da versão 3.1, ou seja, é de uma versão mais antiga.
Eu nunca tive esse problema, apesar de que sempre uso o apt-get update e aptitude safe-upgrade.
Talvez seja alguma coisa com os teus repositórios.
Você desinstalou a versão antiga primeiro como eu recomendo no artigo?
É a primeira vez que ouço falar disso. Vou dar uma pesquisada.
Qual é o Debian: Squeeze ou Wheezy?

[8] Comentário enviado por Buckminster em 07/06/2013 - 13:39h




[9] Comentário enviado por removido em 09/06/2013 - 21:25h


[6] Comentário enviado por viniciusraupp em 03/06/2013 - 20:41h:

Ótimo tutorial!
Tenho squid3 compilado semelhante ao tutorial, normalmente utilizo os comandos apt-get update && apt-get upgrade -y pra manter atualizado todo o debian, o problema é que com squid3 compilado, posteriormente atualizo o debian com o upgrade, então squid3 do repositório sobrescreve o squid3 compilado sendo assim perdendo a função SSL, alguma dica pra resolver isto ?


Ora se você compilou o Squid (seja por esse método ou por outro) porque manter o pacote .deb instalado? mas tem um jeito de contornar isto:

# echo "NOME_DO_PACOTE hold"|dpkg --set-selections

Isso impedira que o pacote seja atualizado, para voltar atrás use:

# echo "NOME_DO_PACOTE install"|dpkg --set-selections

[10] Comentário enviado por striteiro em 11/06/2013 - 09:58h

Bom dia, amigo, tentei compilar o squid 3.3 utilizando seu artigo, porem esta me retornando um erro quando executo a linha do ./configure, retorna assim:
configure: error: invalid variable name: `--sysconfdir'

O que fazer?

[11] Comentário enviado por striteiro em 11/06/2013 - 10:06h


[10] Comentário enviado por striteiro em 11/06/2013 - 09:58h:

Bom dia, amigo, tentei compilar o squid 3.3 utilizando seu artigo, porem esta me retornando um erro quando executo a linha do ./configure, retorna assim:
configure: error: invalid variable name: `--sysconfdir'

O que fazer?


Digitei a linha inteira sem copiar,e passou sem erro, obrigado! ;)

[12] Comentário enviado por muzykaum em 26/06/2013 - 16:38h

Rapaiz, segui todos os seus passos. Coloquei abaixo de http_port 3128 intercept a tag: https_port 3130 intercept. Mas ele me retorna o seguinte erro:

FATAL: tproxy/intercept on https_port requires ssl-bump which is missing.
FATAL: Bungled squid.conf line 60: https_port 3130 intercept
Squid Cache (Version 3.3.3): Terminated abnormally.

Estou com Debian Wheezy 7.1.0, instalação limpa feita do 0 zero.

vlew...

[13] Comentário enviado por Buckminster em 27/06/2013 - 17:23h


[12] Comentário enviado por muzykaum em 26/06/2013 - 16:38h:

Rapaiz, segui todos os seus passos. Coloquei abaixo de http_port 3128 intercept a tag: https_port 3130 intercept. Mas ele me retorna o seguinte erro:

FATAL: tproxy/intercept on https_port requires ssl-bump which is missing.
FATAL: Bungled squid.conf line 60: https_port 3130 intercept
Squid Cache (Version 3.3.3): Terminated abnormally.

Estou com Debian Wheezy 7.1.0, instalação limpa feita do 0 zero.

vlew...


Você precisa gerar o certificado. Essa parte eu não tratei no artigo, pois era somente de compilação.
Veja isto:

http://djosino.blogspot.com.br/2012/03/entendendo-e-configurando-squid.html

http://www.vivaolinux.com.br/artigo/Filtragem-de-paginas-SSL-(443)-no-Squid-transparente

[14] Comentário enviado por brunoleorj em 04/07/2013 - 13:37h

Dando um Ctrl+C, Ctrl+V nas linhas de comando do tutorial estava dando erro, só consegui fazer depois de editar os comandos, caso alguém esteja tendo dificuldades segue os comandos com a sintaxe correta:

./configure --prefix=/usr --localstatedir=/var --srcdir=. --includedir=/usr/include --datadir=/usr/share/squid --bindir=/usr/sbin --libexecdir=/usr/lib/squid --sysconfdir=/etc/squid --mandir=/usr/share/man --with-default-user=proxy --with-logdir=/var/log --with-pidfile=/var/run/squid.pid --enable-delay-pools --enable-ssl --enable-ssl-crtd --enable-ipf-transparent --enable-linux-netfilter --enable-eui --enable-snmp --enable-err-language="Portuguese" --enable-default-err-language="Portuguese" --enable-storeio="aufs,diskd,ufs" --enable-snmp --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,AD_group,LM_group,session" --enable-auth-ntlm="fake,smb_lm,SSPI" --enable-auth-negotiate="kerberos,SSPI,wrapper" --enable-auth-basic="getpwnam,NCSA,MSNT,PAM,LDAP,RADIUS,fake,DB" --enable-auth

Caso ainda assim de não funcione segue o txt da sintaxe acima sem os espaços que ocorrem ao copiar do tutorial: https://dl.dropboxusercontent.com/u/149350274/compila%C3%A7%C3%A3o%20squid.txt

[15] Comentário enviado por viniciusraupp em 30/07/2013 - 21:00h


[9] Comentário enviado por edps em 09/06/2013 - 21:25h:


[6] Comentário enviado por viniciusraupp em 03/06/2013 - 20:41h:

Ótimo tutorial!
Tenho squid3 compilado semelhante ao tutorial, normalmente utilizo os comandos apt-get update && apt-get upgrade -y pra manter atualizado todo o debian, o problema é que com squid3 compilado, posteriormente atualizo o debian com o upgrade, então squid3 do repositório sobrescreve o squid3 compilado sendo assim perdendo a função SSL, alguma dica pra resolver isto ?

Ora se você compilou o Squid (seja por esse método ou por outro) porque manter o pacote .deb instalado? mas tem um jeito de contornar isto:

# echo "NOME_DO_PACOTE hold"|dpkg --set-selections

Isso impedira que o pacote seja atualizado, para voltar atrás use:

# echo "NOME_DO_PACOTE install"|dpkg --set-selections


Funcionou, obrigado.

[16] Comentário enviado por pardalz em 07/11/2013 - 16:17h

Maravilha, aqui foi certinho. valeu! Muito bem objetivo e funcional!

[17] Comentário enviado por perucio em 20/03/2014 - 13:46h

Fiz a compilação dele ele está funcionando porém não criou o executável:

service squid restart
squid: unrecognized service

invoke-rc.d squid restart
invoke-rc.d: unknown initscript, /etc/init.d/squid not found.

SO Debian 7


[18] Comentário enviado por Buckminster em 22/03/2014 - 19:31h


[17] Comentário enviado por perucio em 20/03/2014 - 13:46h:

Fiz a compilação dele ele está funcionando porém não criou o executável:

service squid restart
squid: unrecognized service

invoke-rc.d squid restart
invoke-rc.d: unknown initscript, /etc/init.d/squid not found.

SO Debian 7



Leia na página 2:

Para iniciar o Squid, é só digitar o comando squid como root no terminal:

# squid

Para reiniciar, após alguma alteração no "squid.conf":

# squid -k reconfigure

Para parar:

# squid -k kill

Para ver se tem algum erro no arquivo "squid.conf":

# squid -k parse

Para não ter que iniciar manualmente a todo reinicio da máquina, coloque o comando squid dentro do arquivo "/etc/rc.local", antes de "exit 0", assim:


squid
exit 0


Ou, crie um script para você.

[19] Comentário enviado por regismeneses em 22/05/2014 - 14:26h

Posso usar esses procedimentos deste tutorial para atualizar o Squid 2.7 para o Squid 3.4.5. Senão, como devo fazer? Tenho um servidor com Debian Squeeze.

Obrigado.

[20] Comentário enviado por Buckminster em 30/06/2014 - 10:04h


[19] Comentário enviado por regismeneses em 22/05/2014 - 14:26h:

Posso usar esses procedimentos deste tutorial para atualizar o Squid 2.7 para o Squid 3.4.5. Senão, como devo fazer? Tenho um servidor com Debian Squeeze.

Obrigado.


Faça um backup (cópia) do squid.conf, desinstala a versão antiga e compila a versão nova (3.4.5).
Depois talvez tenha que somente adaptar alguma coisa ou outra no squid.conf, mas nada que atrapalhe.

[21] Comentário enviado por rodrigocontrib em 15/08/2014 - 16:35h

Erros encontrados no meu squid squid-3.4.6

make[3]: *** [squid] Error 1
make[3]: Leaving directory `/opt/squid-3.4.6/src'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/opt/squid-3.4.6/src'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/opt/squid-3.4.6/src'
make: *** [all-recursive] Error 1

[22] Comentário enviado por Buckminster em 16/08/2014 - 18:22h


[21] Comentário enviado por rodrigo.root.rj em 15/08/2014 - 16:35h:

Erros encontrados no meu squid squid-3.4.6

make[3]: *** [squid] Error 1
make[3]: Leaving directory `/opt/squid-3.4.6/src'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/opt/squid-3.4.6/src'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/opt/squid-3.4.6/src'
make: *** [all-recursive] Error 1


Isso está me parecendo erro do make ou do compilador gcc.
Tu instalou todas as dependências antes de instalar o Squid?
Atualizou o sistema com apt-get update e aptitude safe-upgrade?

[23] Comentário enviado por nelsonlucas em 11/11/2014 - 15:33h

Galera, fui reiniciar meu squid e exibiu este erro >>
Alguem pode me dizer o que pode ter acontecido?

FATAL: Bungled squid.conf line 71: refresh_pattern .
Squid Cache (Version 3.3.3): Terminated abnormally.
CPU Usage: 0.008 seconds = 0.000 user + 0.008 sys
Maximum Resident Size: 17616 KB
Page faults with physical i/o: 0
root@SRV03:~/squid-3.3.3#

[24] Comentário enviado por Buckminster em 12/11/2014 - 08:47h


[23] Comentário enviado por nelsonlucas em 11/11/2014 - 15:33h:

Galera, fui reiniciar meu squid e exibiu este erro >>
Alguem pode me dizer o que pode ter acontecido?

FATAL: Bungled squid.conf line 71: refresh_pattern .
Squid Cache (Version 3.3.3): Terminated abnormally.
CPU Usage: 0.008 seconds = 0.000 user + 0.008 sys
Maximum Resident Size: 17616 KB
Page faults with physical i/o: 0
root@SRV03:~/squid-3.3.3#


FATAL estragado squid.conf linha 71: refresh_pattern <<< verifique essa linha no teu squid.conf

[25] Comentário enviado por rodrigocontrib em 04/12/2014 - 20:37h

Estou montando o squid 3> no meu lab, cara, só não entendo o porque do squid mudar alguns detalhes tão superficiais, como o intercept no lugar de transparent,
Na verdade tem algumas diferenças do conf. do 2 para o 3 e do 3 para o proprio 3.
Corrijam-me se eu estiver errado, mas isso não faz muito sentido, tratando-se de conf, de ambientes.

[26] Comentário enviado por SK5_RJ em 27/04/2015 - 14:24h


Parabéns pelo Artigo. Me ajudou muito um tempo atras. Hoje estou tentando atualiza para a versão 3.5 (compilei como no exemplo), mas pelo que parece ela vai para outro diretório, e continuo com a Squid 3.1 instalado. Estou tentando atualizar, pois estou tendo problema com a squid e Dansguardian.

[27] Comentário enviado por Bande em 29/04/2015 - 10:19h

Bom dia senhores
estou usando esse procedimento com o squid 3.5.3, esta me retornando esse erro:

configure: error: Basic auth helper MSNT ... not found , retirei o MSNT da sentença e o erro passa a ser esse:

configure: error: Digest auth helper eDirectory ... found but cannot be built


[28] Comentário enviado por diogospace em 26/05/2017 - 08:58h

Olá amigos bom dia.

Segui a risca o procedimento mais está me retornando esse erro.

minha distro é "Debian GNU/Linux 8 (jessie)"

este é o erro :

2017/05/26 08:57:54| FATAL: tproxy/intercept on https_port requires ssl-bump which is missing.
FATAL: Bungled squid.conf line 61: https_port 3129 intercept
Squid Cache (Version 3.3.3): Terminated abnormally.
CPU Usage: 0.004 seconds = 0.000 user + 0.004 sys
Maximum Resident Size: 28736 KB
Page faults with physical i/o: 0



esse é o retorno do meu squid -k parse

root@Debian:/etc/squid# squid -k parse
2017/05/26 08:58:20| Startup: Initializing Authentication Schemes ...
2017/05/26 08:58:20| Startup: Initialized Authentication Scheme 'basic'
2017/05/26 08:58:20| Startup: Initialized Authentication Scheme 'digest'
2017/05/26 08:58:20| Startup: Initialized Authentication Scheme 'negotiate'
2017/05/26 08:58:20| Startup: Initialized Authentication Scheme 'ntlm'
2017/05/26 08:58:20| Startup: Initialized Authentication.
2017/05/26 08:58:20| Processing Configuration File: /etc/squid/squid.conf (depth 0)
2017/05/26 08:58:20| Processing: acl localnet src 10.20.30.0/24 # RFC1918 possible internal network
2017/05/26 08:58:20| Processing: acl localnet src fc00::/7 # RFC 4193 local private network range
2017/05/26 08:58:20| Processing: acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines
2017/05/26 08:58:20| Processing: acl SSL_ports port 443
2017/05/26 08:58:20| Processing: acl Safe_ports port 80 # http
2017/05/26 08:58:20| Processing: acl Safe_ports port 21 # ftp
2017/05/26 08:58:20| Processing: acl Safe_ports port 443 # https
2017/05/26 08:58:20| Processing: acl Safe_ports port 70 # gopher
2017/05/26 08:58:20| Processing: acl Safe_ports port 210 # wais
2017/05/26 08:58:20| Processing: acl Safe_ports port 1025-65535 # unregistered ports
2017/05/26 08:58:20| Processing: acl Safe_ports port 280 # http-mgmt
2017/05/26 08:58:20| Processing: acl Safe_ports port 488 # gss-http
2017/05/26 08:58:20| Processing: acl Safe_ports port 591 # filemaker
2017/05/26 08:58:20| Processing: acl Safe_ports port 777 # multiling http
2017/05/26 08:58:20| Processing: acl CONNECT method CONNECT
2017/05/26 08:58:20| Processing: http_access allow localhost manager
2017/05/26 08:58:20| Processing: http_access deny manager
2017/05/26 08:58:20| Processing: http_access deny !Safe_ports
2017/05/26 08:58:20| Processing: http_access deny CONNECT !SSL_ports
2017/05/26 08:58:20| Processing: http_port 3128 intercept
2017/05/26 08:58:20| Starting Authentication on port [::]:3128
2017/05/26 08:58:20| Disabling Authentication on port [::]:3128 (interception enabled)
2017/05/26 08:58:20| Disabling IPv6 on port [::]:3128 (interception enabled)
2017/05/26 08:58:20| Processing: https_port 3129 intercept
2017/05/26 08:58:20| Starting Authentication on port [::]:3129
2017/05/26 08:58:20| Disabling Authentication on port [::]:3129 (interception enabled)
2017/05/26 08:58:20| Disabling IPv6 on port [::]:3129 (interception enabled)
2017/05/26 08:58:20| FATAL: tproxy/intercept on https_port requires ssl-bump which is missing.
FATAL: Bungled squid.conf line 61: https_port 3129 intercept
Squid Cache (Version 3.3.3): Terminated abnormally.
CPU Usage: 0.004 seconds = 0.004 user + 0.000 sys
Maximum Resident Size: 28736 KB
Page faults with physical i/o: 0


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts