Pular para o conteúdo

Squid com autenticação

Este artigo trata da configuração do Squid para liberar acesso à internet somente através de autenticação de usuário/senha. Aqui utilizaremos o ncsa_auth para tal tarefa.
Robinson Czelusniak czelusniak
Hits: 200.972 Categoria: Linux Subcategoria: Squid
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Instalação e configuração

Instalação do Squid:

# apt-get install squid

Se você não usa distribuição baseada em apt, baixe o pacote do Squid pelo site:
Verifique a distribuição que você está usando e baixe o pacote. Feito isso instale o pacote que baixou com o comando:

# rpm -ivh squid-2.5.STABLE*.rpm
(nome do pacote que foi baixado)

Configuração do Squid


Depois de instalado, o Squid cria o diretório /etc/squid com os arquivos de configuração e são eles que vamos usar, digite:

# cd /etc/squid

Faça uma cópia do squid.conf:

# cp squid.conf squid.conf.old

Agora vamos editar o arquivo squid.conf:

# vi squid.conf

Procure a linha:

#http_port 3128

E descomente ela, deixando assim:

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
# porta pela qual o Squid libera o acesso
http_port 3128

Localize a linha:

#auth_param basic program /usr/libexec/ncsa_auth /usr/etc/passwd

E descomente ela também, deixando assim:

auth_param basic program /usr/bin/ncsa_auth /etc/squid/passwd

Descomente as seguinte linhas também:

auth_param basic children 5
auth_param basic realm Digite sua senha
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off

Feito isso é só salvar e fechar o arquivo.

Vamos localizar o arquivo ncsa_auth:

# find / -name ncsa_auth

Depois de localizá-lo, copie-o para o diretório /usr/bin:

# cp /usr/sbin/ncsa_auth /usr/bin/ncsa_auth

(no meu caso o arquivo estava neste diretório, mas pode variar de distribuição para distribuição)

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
   1. Instalação e configuração
   2. Criando usuários do Squid

SUSE Linux - Squid autenticando no Active Directory (AD)

Configurando o OpenVPN no SuSE Linux Enterprise Server (SLES)

Squid autenticando no Windows utilizando grupos do AD

Instalando Postfix e Dovecot no SLES 11 e autenticando em um diretório da Novell (Edir)

Openfire no SLES 10 autenticando no Active Directory

Problemas com o Squid

Squid 2.6 com autenticação e bloqueio de sites, downloads, Orkut, MSN, vídeos e googletalk

Squid3 com bloqueio HTTPS [que realmente funciona] - Versão 3.5.22

Controlando acesso às páginas do Apache na rede interna

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

#1 Comentário enviado por rafamb em 25/09/2006 - 11:50h
Oi Robinson, tudo bem.

Seguinte cara seu artigo está bem legal, ficam aqui meus parabéns.

Só queria dar uma dica:
É mais interessante fazer um link simbólico (ln -s) do que copiar um binário de um lugar para o outro. Neste caso se houver uma atualização de segurança no ncsa_auth, não corres o risco de esquecer de copiar o novo executável.

Mas estás de parabéns mesmo assim, continue por este caminho.

Abraçod
#2 Comentário enviado por nick em 25/09/2006 - 16:36h
NO meu squid.conf nao tem esse lance de auth_param
#3 Comentário enviado por rodolfomedina1 em 26/09/2006 - 14:33h
Td bem cara.
Estou entrando neste mundo agora... deixando o windows de lado.. estou montanto a minha primeira rede autenticado. E achei exc esse artigo..
Meus parabens!!!

Abr Sgt Rodolfo
#4 Comentário enviado por x em 26/09/2006 - 20:07h
pow show de bola esse artigo cara !!
eu ja vou utilizar isso numa rede que estou montando na minha escola !!!!
Abraço
#5 Comentário enviado por czelusniak em 27/09/2006 - 09:06h
Vlw ai galera, so peço que qdo vcs forem utilizar o artigo vejam a dica do rafamb. Abraços
#6 Comentário enviado por dmmlopes em 27/09/2006 - 14:42h
Oi pessoal, meu squid está uncionando direitinho com filtros por dominio/palavras/ips/nomes de users apenas a autenticação que não está funcionando alguem tem alguma idéia do que pode ser ?
Já veriquei todas as linhas necessárias e aparentemente está certa.
Atualmente estou usando a ultima distribuição do debian
Se puderem me ajudar eu agradeço ???
#7 Comentário enviado por czelusniak em 05/10/2006 - 10:24h
Oi dmmlopes blz? Cara vc verificou se o caminho do ncsa_auth esta correto? Nas estacoes ele chega pedir usuario e senha ou nem isso?, se puder poste seu conf ai pra que possamos ajuda-lo. Um abraço
#8 Comentário enviado por removido em 27/10/2006 - 21:07h
KeopKEA com essa [*****] de tutorial duvido que alguem consegiu, nem sei como isso passa pela moderação, mais ai vai né pra ajudar.

auth_param basic program /balbalbalballb/ncsa_auth /etc/squid/passwd
acl password proxy_auth REQUIRED
http_access allow password

tenta acrecentar essas linhas ai na sua config
#9 Comentário enviado por alexpoa em 03/12/2006 - 17:36h
Acho que faltou informação neste tutorial!
Tipo acl e http_access
#10 Comentário enviado por dmmlopes em 31/01/2007 - 14:50h
Opa iae galera, consegui resolver o problema, eu dei uma vacilada pois tinha liberado via nat no firewall porisso nao pedia autenticação...tirei a linha e tudo funcionou....
Agora estou com outra duvida...

Estou com o squid e iptables instalados..
Está tudo funcionando perfeitamente com autenticação....criei uma acl badwords, baddomains e inclui vária palavras e varios dominios e neguei o uso, posteriormente criei uma acl valid domains e inclui os nomes de dominios válidos que eu quero que o usuário tenha acesso, na sequencia criei uma outra acl users com os nomes dos usuários permitindo a navegação ... até ai tudo bem, todo o dominio ou palavra que contiver nas acls criadas ele bloqueará, agora as que não estão listadas nos arquivos badwords e baddomains ele navega normal ai está a chave da questão... como faço para esses usuários usarem somente os sites na qual eu liberei na acl validdomains ????

Ex:

acl badwords url_regex"/etc/squid/badwords"
acl baddomains dstdomain "/etc/squid/baddomains"
acl validdomains dstdomain"/etc/squid/validdomains"
acl users proxy_auth "/etc/squid/users"

http_access deny badwords
http_access deny baddomains
http_access allow validdomains
http_access allow users

Para resolver essa questão pensei em criar grupos de usuários mas não tentei ainda...
#11 Comentário enviado por s3n1ck em 13/07/2007 - 17:46h
DNLDAS2K100:/etc/squid# htpasswd -c passwd rcz
-bash: htpasswd: command not found


pq ?
#12 Comentário enviado por czelusniak em 15/07/2007 - 10:50h
s3n1ck tente usar o htpasswd2 isso depende da versao do apache qeu voce esta usando se for apache2 digite htpasswd2 -c .....
#13 Comentário enviado por xandexaxa em 06/12/2007 - 11:54h
Para resolver esse problema de negar alguns dominios e permitir outros tente mudar suas linhas de http_access assim:

http_access deny badwords !validdomains
http_access deny badwords
http_access allow users

Acho que isso deve te ajudar, teste para ver se vai dar certo e não esqueça que no fial do squid.conf tem que ter a linha assim:

http_access deny all (que nega todo o resto que passou pelas politicas de acesso ok)
#14 Comentário enviado por rjdiniz em 24/07/2008 - 15:19h
Um pouco,vago mas já deu pra clarear as idéias... Valeu mano!
#16 Comentário enviado por Saya-jin4 em 18/08/2009 - 09:52h
Olá!!! eu fiz todo o procedimento sertinho e deu certo! todos os usuarios da minha rede estão felizes, + eu não pois se 10 clientes se conectarem com o mesmo login eles navegão. O que fazer para concertar isso?!
Atenciosamente!
#17 Comentário enviado por rsferreira2007 em 22/03/2010 - 13:26h
Estou precisando de ajuda ao iniciar o squid aparece as sguintes falhas.
Por favor sou iniciante no linux e estou precisando muito montar este servidor Proxy.
Vejam as erros abaixo:
Desde já agradeço a todos.

ricardo@RicServer:~$ sudo /etc/init.d/squid start
* Starting Squid HTTP proxy squid * Creating squid cache structure
2010/03/22 13:16:19| unrecognised basic auth scheme parameter 'chidren'
FATAL: auth_param basic program /user/lib/squid/ncsa_auth: (2) No such file or directory
Squid Cache (Version 2.7.STABLE6): Terminated abnormally.
CPU Usage: 0.004 seconds = 0.000 user + 0.004 sys
Maximum Resident Size: 0 KB
Page faults with physical i/o: 0
Aborted
2010/03/22 13:16:19| unrecognised basic auth scheme parameter 'chidren'
FATAL: auth_param basic program /user/lib/squid/ncsa_auth: (2) No such file or directory
Squid Cache (Version 2.7.STABLE6): Terminated abnormally.
CPU Usage: 0.004 seconds = 0.004 user + 0.000 sys
Maximum Resident Size: 0 KB
Page faults with physical i/o: 0
Aborted
#18 Comentário enviado por czelusniak em 22/03/2010 - 17:51h
Olá rsferreira2007, o problema parece que esta no caminho do arquivo ncsa_auth digita lá no teu linux "find / -iname ncsa_auth" como root e veja qual o caminho completo dele e adicione no arquivo /etc/squid/sqcuid.conf onde tem a linha

auth_param basic program /user/lib/squid/ncsa_auth

Isto deve funcionar

Pelo que vi do seu erro o diretório não deve ser /user/lib/squid/ e sim /usr/lib/squid/

Este diretório /usr/ não significa user e sim Unix Resource System (USR).

Espero ter ajudado.
#19 Comentário enviado por Blitz em 07/04/2010 - 11:22h
É possível eu fazer autenticação de apenas algumas máquinas da rede? Tenho o Squid rolando redondo aqui sem autenticação e como algumas máquinas são acessadas por muitas pessoas, gostaria de fazer com que apenas elas solicitem autenticação para navegar. Obrigado por qualquer ajuda.
#20 Comentário enviado por overlock em 12/07/2010 - 16:55h
oi amigo tudo joia?!
gostaria de saber se isso substitui um portal captive (ou como já vi um captive portal).

ele gera alguma página pra pessoa inserir usr e senha??

da pra fazer com proxy transparente??

abraços e parabéns pelo artigo!
#21 Comentário enviado por czelusniak em 13/07/2010 - 13:03h
Olá Overlock, o Captive Portal e o squid são duas ferramentas distintas, o captive portal permite o acesso a rede toda dependendo da configuracão, no squid você libera apenas o acesso a internet (ex.: HTTP, HTTPS), com o proxy transparente você não consegue utilizar autenticacão de usuários.

Espero ter ajudado.
#22 Comentário enviado por g4briel juarez em 08/08/2013 - 11:15h
o comando htpasswd -c passwd não esta criando usuario
ele estar rescrevendo em cima do usuario existente
por exemplo


htpasswd -c passwd usr1
digito a senha e ok

quero criar o usr2

digito
htpasswd -c passwd usr2
digito senha e ok

quando entro no arquivo "passwd" só existe o usuário usr2 e o usr1 ele apaga!!!,
porque isso ocorre?
#23 Comentário enviado por czelusniak em 08/08/2013 - 11:22h
Gabriel,

a opção "-c" é para criar o arquivo de senhas só use ela na primeira vez depois use apenas "htpasswd passwd Nome_do_usuário".

Tenta assim que vai funcionar.
#24 Comentário enviado por g4briel juarez em 08/08/2013 - 11:50h
obrigado meu amigo czelusniak deu certo!!
#25 Comentário enviado por josias2010 em 09/03/2014 - 21:13h
Amigo, ótima iniciativa.

Mas meu squid parou de funcionar depois que descomentei as linhas citada.
#26 Comentário enviado por czelusniak em 09/03/2014 - 22:00h
Olá josias2010 quais linhas que você descomentou? Posta os logs do squid para que possamos te ajudar.
#27 Comentário enviado por oneb em 22/11/2014 - 09:10h
Bom dia czelusniak, estou com um problema que não sei bem quando iniciou, comecei a trabalhar em um lugar ao qual eles tinham configurado squid3 com ldap, samba4 para autenticação com ad, pois bem, de repente a internet parou de funcionar, como não tenho conhecimento profundo em linux e squid, procurei alguns foruns e vi que era preciso desabilitar o ipv6 pois o mesmo conflitava com ipv4 na resolução de dns, só que me acarretou em outro problema, agora toda vez que algum usuario entra em uma maquina no browser fica pedindo autenticação excessivamente, ja olhei inclusive as linhas sitadas por vc neste artigo e nada, olhei toda a configuração e nao achei nada de irregular, ate mesmo pq o proxy estava funcionando normalmente, fazendo uma autenticação a cada 4 horas, vc pode me ajudar ou alguem pelo amor de Deus pai todo poderoso, rs, abraço a todos.

Contribuir com comentário

Entre na sua conta para comentar.