Proxy com autenticação em servidores Samba ou Windows NT

Neste artigo vamos mostrar como preparar um servidor proxy (Squid) para fazer autenticação para acesso à internet usando SMB e mostrar também como fazer o controle de acesso (ACLs) utilizando estes usuários autenticados.

[ Hits: 181.212 ]

Por: Marcos Estival em 12/12/2003


Controle de acesso ACL



Para controlar os acessos dos usuários na internet dentro do Squid utilizando a autenticação que o usuário fez pelo Samba em outro servidor, é necessário criar algumas regras na ACL e as liberações vão depender de cada administrador ou organização, pois você poderá utilizar várias regras de segurança.

Aqui vamos apresentar alguns exemplos. E que sua criatividade trabalhe contigo para que você possa configurar de maneira adequada esses acessos:

Exemplo 1:

acl geral proxy_auth REQUIRED
acl restritos proxy_auth jose maria joao
acl todos src 0/0
http_access allow liberados
http_access deny todos

A primeira linha define uma ACL chamada geral, do tipo proxy_auth (ou seja, exigência de autenticação utilizando o authenticate_program que definimos acima). O parâmetro REQUIRED indica que qualquer usuário será aceito, desde que ele tenha uma senha no domínio.

A linha 2 cria uma ACL chamada liberados, também do tipo proxy_auth, mas desta vez definindo os nomes de 3 usuários que terão tratamento diferenciado.

A linha 3 define outra ACL chamada todos, baseada em endereço IP e abrangendo todos os endereços de origem (src) possíveis.

As linhas de 4 a 5 definem as regras de acesso, pela ordem:
  • A linha 4 dá acesso aos componentes da ACL liberados, sem nenhum qualificativo adicional: jose, maria e joao vão poder utilizar o proxy quando quiserem, desde que informem a senha corretamente.
  • A linha 5 nega acesso à todos. Assim, se um usuário não caiu nas duas regras anteriores, ele simplesmente não poderá usar o proxy.


Exemplo 2:

acl geral proxy_auth REQUIRED
acl proibido url_regex -i "/etc/squid/lista"
acl informatica proxy_auth admin administrador super
acl todos src 0/0
http_access allow informatica
http_access deny proibido
http_access deny todos

A primeira linha define uma ACL chamada geral, do tipo proxy_auth (ou seja, exigência de autenticação utilizando o authenticate_program que definimos acima). O parâmetro REQUIRED indica que qualquer usuário será aceito, desde que ele tenha uma senha no domínio.

A linha 2 cria uma ACL chamada proibido, do tipo url_regex, que lê o arquivo chamado "/etc/squid/lista". Neste arquivo há uma lista de sites que não podem ser acessados.

A linha 3 define outra ACL chamada informatica utilizando o proxy_auth, que vai ser usada para liberar acesso aos usuários referenciados nela.

A linha 4 define outra ACL chamada todos, baseada em endereço IP e abrangendo todos os endereços de origem (src) possíveis.

As linhas de 5 a 7 definem as regras de acesso, pela ordem:
  • A linha 5 dá acesso aos componentes da ACL informatica, sem nenhum qualificativo adicional: admin, administrador e super são usuários que vão poder utilizar o proxy sem nenhuma restrição a sites quando quiserem, desde que informem a senha corretamente.
  • A linha 6 nega acesso à todos, com exceção da ACL informatica aos sites da lista que esta no arquivo "/etc/squid/lista".
  • A linha 7 nega acesso à todos. Assim, se um usuário não caiu nas duas regras anteriores, ele simplesmente não poderá usar o proxy.
Com esses exemplos temos uma visão clara que a autenticação pode ser uma ferramenta muito benéfica pra nós administradores, pois os controles de acesso são variados, desta maneira você poderá criar os controles de acesso conforme a política de acesso determinada.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Configurando o servidor Windows ou Samba
   3. Configurando o servidor proxy Squid
   4. Controle de acesso ACL
   5. Relatórios de acesso
   6. Configurando as estações Windows
Outros artigos deste autor

Ferramentas de administração remota

Leitura recomendada

Manual traduzido do Squid - Parte 3

Instalação do Squid 3.2.0.14 no Slackware com execução em ambiente chroot

Colocando senha nos gerenciadores do Squid (SARG e MYSAR) de forma simples

Integrando autenticação do Squid ao Active Directory

Proxy em paralelo com o mikrotik

  
Comentários
[1] Comentário enviado por fabio em 12/12/2003 - 00:31h

Muito bom seu artigo Estival! Agora me tire uma dúvida, a autenticação do proxy num servidor Windows necessariamente precisa ser num NT ou pode ser realizada através de um Win2k também?

[2] Comentário enviado por thiagosc em 12/12/2003 - 09:36h

Muito bom este artigo consegui configurar o squid pelo kurumin, está funcionando legal, vou testar agora em conectiva, uma observação neste artigo a poorta padrão do squid não é a 3180? uma abraço

[3] Comentário enviado por gustavo_marcon em 15/12/2003 - 11:26h

Cara, muito bom este artigo mas ao invéz de usar o samba eu gostaria que meu servidor fosse pppoe... Como eu faria p/ que os usuários fizessem uma autenticação pppoe no servidor linux e o squid comanda-se as regras de ACL corretamente???

O que eu teria que alterar?

[4] Comentário enviado por gustavo_marcon em 17/12/2003 - 17:21h

Pessoal configurei o squid p/ funcionar c/ autenticação ncsa_auth. Fiz tudo como manda o tutorial da conectiva... A autenticação funciona perfeitamente em 2 micros da rede mas no terceiro micro ele só volta a pedir senha novamente se for feito logoff.. deveria pedir cada vez que abrir o browser, como acontece nos outros micros. Alguem sabe como configurar um timeout pro squid?

[5] Comentário enviado por cbgrando em 13/01/2004 - 16:37h

Distro: Red Hat 9
Samba: 3.0
Estou tendo o seguinte problema,
Quando coloco "/usr/local/bin/smb_auth -W MEUDOMINIO -U xxx.xxx.xxx.xxx -d" e entro com user e senha da "ERR". O usuario tem permissão para leitura da pasta e dos arquivos da netlogon. Mas mesmo assim dá erro. Tem como depurar melhor o erro´. Só o "-d" nao adianta... nao consigo nada substancial pra depurar.
Obrigado.

[6] Comentário enviado por fabio em 14/01/2004 - 18:44h

Estival mandou para mim ao invés de para cá, lá vai:
---
vc instalou o smb-client, o mesmo é necessário na maquina.
outra coisa vc tem que usar o smb_auth que vem no SQUID
"/usr/lib/squid/smb_auth"

Espero ter ajudado.
---

[7] Comentário enviado por altairneto em 20/02/2004 - 14:20h

Excelente matéria, o squid é muito bom, mas eu tenho problemas com usuários "expertos" que simplesmete desabilitam a opção do proxy nas propriedades do Internet Explorer, fazendo assim que não se autentiquem no squid e com isso acessando as páginas livremente, sem passar pela política adotada no Squid. Pergunta: tem alguma maneira de bloquear isso? tipo restrigindo o acesso a essas configurações? sei que no Win2K é possível, mas nas estações 98 não achei nada....se alguém tiver uma solução me mande um e-mail: neto@benarros.com.br Abraços a todos

[8] Comentário enviado por string em 06/03/2004 - 15:09h

Caro altair, vai ai uma solucao pros espertinhos do win98, insira no logon.bat dos usuarios o seguinte:

regedit /s \\servidor\netlogon\protege.reg

no qual vai ter no arquivo protege.reg o seguinte.
REGEDIT4
[HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Control Panel]
"Proxy"=dword:00000001

Este desabilitara a opcao de mexer na configuracao do proxy no propriedades do IE.

valeu.
Geomar

[9] Comentário enviado por alphainfo em 03/05/2004 - 11:58h

Aê Geomar, esse script teu é bem legal...
valew

[10] Comentário enviado por ofmaciel em 17/05/2004 - 15:00h

Excelentes artigos. Gostaria de uma dica: se é possível, como fazer com que somente alguns usuários( ou alguns IPS, ou alguns endereços MAC) sejam obrigados à autenticação para acesso à internet, via squid, enquanto todos os demais sejam livres ( sem logon).

Grato, ofmaciel

[11] Comentário enviado por gamaj em 30/05/2004 - 13:33h

Pessoal,

Também estou com o memso problema do amigo cbgrando.

Também optei pela autenticação via Samba, no Servido tenho Inatalado o pacote do Samba 3.0.2 do Slack 9.1 será que neste pacote já não esta incluso o samba-client.

quando tento o comando
#/usr/lib/squid/smb-auth -W LINUX -U 192.168.0.1 -d
valdir Tempra22
Domain name: LINUX
Pass-through authentication: no
Query address options: -U 192.168.0.1 -R
/usr/local/smb_auth-0.05//smb_auth.sh: line 1: /etc/samba/bin/nmblookup: No such file or directory
Domain controller IP address:
ERR

Como posso resolver isso?

Conto com a colaboração do amigos:


[12] Comentário enviado por scoscis em 13/09/2004 - 11:21h

eu uso o slackware e estava acontecendo isso com o meu tb...
faz assim...
primeiro procura onde esta o nmblookup..

find / -iname nmblookup

> no meu caso era /usr/local/bin/nmblookup

ai eh soh editar o arquivo smb_auth.sh, todo o lugar onde estiver '/blabla/blabla/nmblookup' voce troca para o lugar que voce encotrou com o find..

IMPORTANTE

soh mude o que esta dentro das ' '
ficaria assim ' /usr/local/bin/nmlookup' ...

valeu

Thiago Debia
th.debia@ig.com.br


[13] Comentário enviado por alehm em 30/09/2004 - 10:36h

Ola Pessoal,
meu nome eh Alexandre havia configurado meu squid + smb_auth em um slackware e estava funcionando na boa, mas depois que fiz um upgrade de pacotes, parou de funcionar, qdo faco:
# /usr/lib/squid/smb-auth -W EXEMPLO -U 10.62.1.1 -d --> ENTER
usuário "senha" --> ENTER
fica parado e nao da nenhuma informacao.

alguem poderia me dar uma dica do que pode estar acontecendo?

agradeco a colaboracao de todos

Alexandre

[14] Comentário enviado por alehm em 30/09/2004 - 10:37h

Ola Pessoal,
meu nome eh Alexandre havia configurado meu squid + smb_auth em um slackware e estava funcionando na boa, mas depois que fiz um upgrade de pacotes, parou de funcionar, qdo faco:
# /usr/lib/squid/smb-auth -W EXEMPLO -U 10.62.1.1 -d --> ENTER
usuário "senha" --> ENTER
fica parado e nao dah nenhuma mensagem.

alguem poderia me dar uma dica do que pode estar acontecendo?

agradeco a colaboracao de todos

Alexandre

[15] Comentário enviado por germano_silva em 26/02/2005 - 23:49h

Caro Alexandre;

Deu uma olhada no man pq devido a troca de versoes as vezes pode ocorrer de certos comandos serem trocados

Abraços

Germano Silva

[16] Comentário enviado por mazzaropi em 19/05/2005 - 10:15h

Funcionou na Slackware, mas tenho uma dúvida. Seria possível eu liberar apenas alguns sites para determinado usuário ou grupo de usuário, proibindo-o de ver o resto?
Obrigado.

[17] Comentário enviado por lucasfs em 23/11/2005 - 11:11h

Estou com o mesmo problema, olhem o resultado:

/usr/lib/squid/smb_auth -W type -U 192.168.200.1 -d
user suporte
Domain name: type
Pass-through authentication: no
Query address options: -U 192.168.200.1 -R
Domain controller IP address: 192.168.200.1
Domain controller NETBIOS name: SERVIDOR
Contents of //SERVIDOR/NETLOGON/proxyauth:
ERR

O arquivo proxyauth está criado e dentro dele contém "allow" apenas

[18] Comentário enviado por jasonn em 15/12/2005 - 17:11h

é facil de resolver isso cara, faça isso aqui:
entre no arquivo:
vim /usr/lib/squid/smb_auth.sh

e coloque essa chave da forma que esta aqui:

export SAMBAPREFIX=/usr
read DOMAINNAME
read PASSTHROUGH
read NMBADDR
read NMBCAST
read AUTHSHARE
read AUTHFILE
read SMBUSER
read SMBPASS

Depois que fizer isso, dê o comando export

pronto teste:

/usr/lib/squid/smb_auth -W type -U 192.168.200.1 -d
maria 123456

claro que maria e a senha 123456 é uma ilusoria.
esta resolvido seu problema.
Abraços do amigo jasonnfedora.
Comunidade Fedora Brasil

Aqui esta a minha configuracao:

[root@fedorabrasil netlogon]# /usr/lib/squid/smb_auth -W fbrasil -U 192.168.1.1 -d
jasonnfedora toaquitola
Domain name: fbrasil
Pass-through authentication: no
Query address options: -U 192.168.1.1 -R
Domain controller IP address: 192.168.1.1
Domain controller NETBIOS name: SMB_FBRASIL
Contents of //SMB_FBRASIL/NETLOGON/proxyauth: allow
OK

[19] Comentário enviado por obochecha em 04/01/2006 - 11:07h

Tava tão bom, tudo dando certo, o dominio ta dando como ok sem erros nenhum usando o smb_auth, sendo que quando vou autenticar
ele nao aceita
fica na mesma tela de ligoin.
e depois de umas 5 tentativas da como acesso negado
o usuario ta cadastrado e a senha esta correta.
pq isso tá acontecendo?

[20] Comentário enviado por jgama em 08/02/2006 - 02:25h

Olá pessoal, depois de muito tempo voltei a fazer o teste da autenticação via samba, e desta vez deu tudo certo, o problema anterior era permissão.

batou eu dar permissão no arquivo exemplo:

#chmod 755 /home/samba/netlogn/proxyauth

agora o teste deu certo

[root@servidor laide]# /usr/lib/squid/smb_auth -W LINUXGAMA -U 192.168.0.1 -d
julia Palio145
Domain name: LINUXGAMA
Pass-through authentication: no
Query address options: -U 192.168.0.1 -R
Domain controller IP address: 192.168.0.1
Domain controller NETBIOS name: SERVIDOR
Contents of //SERVIDOR/NETLOGON/proxyauth: allow
OK

Abraço a todos



[21] Comentário enviado por cleitão em 01/03/2006 - 15:38h

Legal pra caramba este artigo só gostaria de saber se alguém já teve sucesso implementando ele em uma distro baseada no Debian........

Valeu galera!!!!!!!!1

[22] Comentário enviado por amendes em 21/03/2006 - 16:41h

Olá pessoal,

Fiz todas as configurações, conforme indicado, criei o arquivo proxyauth, dei permissão, via linha de comando funciona normalmente, mas quando faço via Internet Explorer ele não autentica, a tela de usuário e senha sempre volta.

Alguma dica?

[23] Comentário enviado por Estival em 22/03/2006 - 11:28h

Gente algumas Ditribuições podem ter problemas utilizando o smb_auth da internet: http://www.hacom.nl/~richard/software/smb_auth.html, muito antigo (1999).

se a versão que vem com a distribuição for mais nova utilizem-na.
se for compilar observe bem as variaveis SAMBAPREFIX e INSTALLBIN

e como o jgama falou nao esqueça das permissões:

#chmod 755 /home/samba/netlogn/proxyauth

Até Mais...

Marcos Estival

[24] Comentário enviado por amendes em 29/03/2006 - 08:11h

Pessoal, percebi problemas na distribuição do Fedora 3, ela não identifica a opção ident quando é criada uma ACL e também o smb_auth não funciona.
Ao instalar o RedHat 9 e baixar o smb_auth da internet funcionou normalmente.

Valeu Estival

[25] Comentário enviado por jssandim em 13/09/2006 - 17:30h

Pessoal,
Estou com um problema no meu smb_auth. Ele funcina ok, faço o teste de autenticação de usuario (smb_auth -W LAB.FUMEC.BR) dá ok. Mas quando usuario loga no Domain controler (Samba) e depois vai colocar sua senha no Internet explorer para autenticar no squid, não é aceito. Ai se o usuario logar primeiro no ie sem passar pela autenticação dominio samba, funciona. Outras duas observações:
-O usuário logado no dominio primeiro, ele é removido e adcionado novamente(userdel fulano ,useradd fulano), funciona a autenticação no internet explorer com usuario ainda logado no dominio.
-O usuario que é administrador loga no dominio e depois no ie e não acontece o erro.
Aguardo uma resposta.
Obrigado.

[26] Comentário enviado por valberaguiar em 24/10/2006 - 18:19h

gerando relatório por usuário autenticado com SARG

[27] Comentário enviado por valberaguiar em 24/10/2006 - 18:20h

Qual a configuração para gerar relatório por usuário autenticado com SARG?

[28] Comentário enviado por hdfogo em 07/11/2006 - 16:40h

Estou tambem com problema para fazer autenticação e já fiz tudo o que foi sugerido aqui sera que alguem pode me ajudar este é o erro

root@fwsvr:~# /usr/libexec/smb_auth -W DOMINIO -U 192.168.0.1 -d
usuario senha
Domain name: DOMINIO
Pass-through authentication: no
Query address options: -U 192.168.0.1 -R
Domain controller IP address: 192.168.0.1
Domain controller NETBIOS name: SERVER
Contents of //SERVER/NETLOGON/proxyauth:
ERR

o arquivo proxyauth foi criado na pasta de compartilhamento netlogon e com allow e esta com permissão para todos não sei mais o que fazer

Aguadro uma resposta

Muito obrigado

[29] Comentário enviado por super7 em 14/05/2007 - 20:40h


.

[30] Comentário enviado por super7 em 14/05/2007 - 20:44h

Ola Pessoal, por favor me SOCORRAM!! Estou com o debian etch, o problema é q ja fiz de tudo. A maquina Squid ja esta incluida no Dominio Linux, o arquivo proxyauth ja esta com as permissoes 755, o compartilhamento "netlogon" esta funcionando certinho, testei manualmente pelo smbclient e funcionou, mas qdo rodo o /usr/lib/squid/smb_auth -W DOMINIO -U IP-DOSERVER -d só aparece a mensagem ERR nada mais. Acho q é algum problema no smb_auth.sh, q tb ja mexi em tudo , e nem sei mais aonde mexer. Por favor me ajudem, deve ser algum caminho q mudou no etch. Um abraço e desde ja muito obrigado e parabens por esse Artigo Estival.

[31] Comentário enviado por angkor em 13/06/2007 - 14:22h

Ola pessoal, estou com alguns problemas obviamente por não ter o samba (ou algum módulo) instalado. A pergunta é:
O que é que tenho que instalar no meu proxy para esse esquema de altenticação funcionar?
Se for o samba, qual a opção devo habilitar?

Atenciosamente,
Angkor

[32] Comentário enviado por Estival em 21/06/2007 - 09:10h

Ola Angkor, vc precisa do samba-client para que funcione, use o debug para verificar se tem conexão:
/usr/lib/squid/smb_auth -W DOMINIO -U IP-DOSERVER -d


[33] Comentário enviado por celsomagela12 em 30/06/2007 - 11:44h

Olá gente!
sou novato por aqui e preciso de ajuda:
resolvi trocar o servidor de internet, instalei o CentOS.
o IP do servidor de internet é 192.168.0.66
o IP do servidor samba é 192.168.0.67
Minha máquina 66 conecta na internet Ok, mas não consigo rodar a autenticação no samba.
mudei recentemente o IP do Servidor Samba de 118 para 67, quando eu testo a autenticação, fica assim:

root@CentOs:# /usr/local/bin/smb_auth -W DOMINIO -U 192.168.0.67 -d
usuario senha
Domain name: DOMINIO
Pass-through authentication: no
Query address options: -U 192.168.0.68 -R
Domain controller IP address: 192.168.0.118 (aqui aparece errado)
Domain controller NETBIOS name: SERVER
Contents of //SERVER/NETLOGON/proxyauth:
ERR

preciso alterar o IP no "Domain controller IP address:" e não sei onde.
o arquivo proxyauth está no diretrório /home/netlogon do samba

[34] Comentário enviado por phmonteiro_df em 08/08/2007 - 12:49h

Estival...todas as opções dão certo...o squid starta ok...a autenticação no diretório samba...mas na hora de abrir o I E ele não pede senha....o que pode ser ?

[35] Comentário enviado por celsomagela12 em 08/08/2007 - 14:31h

O IE está com a opção "usar servidor proxy" marcada???

[36] Comentário enviado por adalmar em 05/10/2007 - 12:50h

Eu vi seu artigo mais não tenho servidor de autenticação, eu uso o linux red hat 9, essa regra:
auth_param basic program /usr/bin/ncsa_auth /etc/squid/squid_passwd
acl password proxy_auth REQUIRED
http_access allow password

depois executei #htpasswd -c /etc/squid/squid_passwd adalmar
criei a senha e tudo
quando vou acessar a internet abre a tela de autenticação mais não reconhece o usuário, existe algun procedimento errado?

[37] Comentário enviado por Estival em 08/10/2007 - 14:34h

verifique o caminho do ncsa_auth... no meu esta noutra pasta "/usr/lib/squid"

[38] Comentário enviado por tiagomello em 29/11/2007 - 14:18h

o amigo ali em cima reclamou sobre usuarios espertos que desabilitam o proxy e passam por fora, acessando tudo que quiser, uma solução foi dada(desabilitar as opções firewall) mas em qualquer canto da internet podemos encontrar dicas de como reverter isso. A dica que eu vou dar é de se bloquear via firewall a porta 80 para saida, e somente sairia via porta 3128 do squid. aih amigo, nao tem jeito, pra burlar isso só com a senha do root do servidor com o squid

[39] Comentário enviado por manguetiz em 11/12/2007 - 11:25h

Gostei do seu artigo, porém, estou com problema... faço o teste por linha de comando para autenticação no AD da minha rede e retorna as informações abaixo:

Domain name: MEU_DOMINIO
Pass-through authentication: no
Query address options: -U XXX.XXX.XXX.XXX -R
Domain controller IP address:
ERR

Já criei o arquivo "proxyauth" dento da pasta NETLOGON no servidor com apenas a linha "allow" (sem as aspas, logico), dei permissão de leitura a principio para todos para poder realizar os testes.
O que pode estar acontecendo ???
Desde já agradeço e aguardo ajuda.

[40] Comentário enviado por Estival em 12/12/2007 - 14:20h

Tente colocar o -d de DEBUG :

/usr/lib/squid/smb_auth -W DOMINIO -U 1.1.1.1 -d
usuario senha
Domain name: DOMINIO
Pass-through authentication: no
Query address options: -U 1.1.1.1 -R
Domain controller IP address: 1.1.1.1
Domain controller NETBIOS name: SMBSERVER
Contents of //SMBSERVER/NETLOGON/proxyauth: allow
OK


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts