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.

[ Hits: 199.548 ]

Por: Robinson Czelusniak em 25/09/2006


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:

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

    Próxima página

Páginas do artigo
   1. Instalação e configuração
   2. Criando usuários do Squid
Outros artigos deste autor

Squid autenticando no Windows utilizando grupos do AD

Openfire no SLES 10 autenticando no Active Directory

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

SUSE Linux - Squid autenticando no Active Directory (AD)

Configurando o OpenVPN no SuSE Linux Enterprise Server (SLES)

Leitura recomendada

Projeto Squid

Squid autenticado no Active Directory com Winbind

Fazendo hierarquia proxy/Squid

Autenticando usuários do Squid em um banco de dados MySQL

Squid autenticando em base Active Directory

  
Comentários
[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 merda 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!

[15] Comentário enviado por minduim em 07/04/2009 - 17:36h

Socorro alguém poderia me ajudar? Estou com um problema com Squid e autenticação de usuários. Alguém poderia me ajudar? http://www.vivaolinux.com.br/topico/Servidores-Linux-para-iniciantes/Problemas-com-autenticacao-de-s...

[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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts