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.
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.
[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???
[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"
[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.
[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).
[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
[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?
[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?
[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.
[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?
[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.
[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.
[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.
[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?
[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 ?
[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?
[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.