Pular para o conteúdo

Identificando usuários Squid com o IDENTD

Neste artigo mostrarei como utilizar o programa identd juntamente com o SQUID. O ident é um programa que auxilia a identificar o usuário que está utilizando o Windows/Linux e com isso nos oferece uma ótima possibilidade de criarmos regras de acesso personalizadas por usuário.
Wanderson Berbert wberbert
Hits: 93.196 Categoria: Linux Subcategoria: Squid
  • Indicar
  • Impressora
  • Denunciar

Introdução

O identd é um programa que é executado em máquinas clientes e que fornece o nome do usuário que está logado naquela máquina no momento em que ela faz um acesso ao proxy squid.

Com o nome do usuário, o administrador Linux poderá criar regras ACL diferenciadas por usuário ou por grupos de usuários.

O identd sozinho não pode ser considerado um programa de autenticação, pois ele apenas informa o login do usuário que está utilizando a máquina, sendo assim não se pode confiar nas informações fornecidas pelo identd em máquinas não controladas pelo administrador da rede.

O identd utiliza a porta 113 para comunicação com o SQUID. Existem versões do identd para o Windows 95/98/ME, Windows 2000/XP e Linux, que devem utilizadas em seus respectivos sistemas operacionais.

   1. Introdução
   2. Obtendo o identd
   3. Instalando
   4. Configurando o Squid
   5. Finalizando

Nagios - Um poderoso programa de monitoramento de rede (parte 1)

Nagios - Um poderoso programa de monitoramento de rede (parte final)

Migrando do ipchains para o iptables

OneOrZero Helpdesk

Configurando servidor IMAP

Instalação do Squid com autenticação NTLM e Kerberos

Squid avançado + OpenLDAP

A verdade sobre as ACLs do Squid

Gerenciando relatórios do SARG

Squid + HTB Tools - Cache indo a FULL!

#1 Comentário enviado por dougld em 05/01/2004 - 12:12h
Cara eu segui conforme os passos q vc indicou no seu artigo , só q deu erro de acl tipo

ACL usuarios ident administrador

ele da erro q nao foi criada a acl identd

não tem algum parametro q tem q habilitar no squid.conf pra ele saber q está utilizando o identd , como ele vai saber q eh o identd q está fornecendo o login pra ele saber quem eh o usuário
#2 Comentário enviado por wberbert em 05/01/2004 - 13:10h
Oi , tudo bom

Este erro que vc reportou não acontece comigo, talvez seja porque vc colocou ACL em maiusculo eu aqui uso o
Squid Cache: Version 2.4.STABLE6 e funciona corretamente sem a necessidade de informar nenhum parâmetro adicional e quanto ao identd ele sabe que esá utilizando o identd pois este se utiliza da porta 113 para comunicação e também utiliza um padrão intenacional RFC 1413.
#3 Comentário enviado por dougld em 05/01/2004 - 14:58h
eu verifiquei o erro aki :

errado
acl usuarios IDENTD administrador

certo
acl usuarios IDENT administrador

eu escrevi errado
valeu
dougld
#4 Comentário enviado por rivus_marchetti em 20/07/2004 - 13:05h
na verdade quero criar um servidor proxy para os micros que eu administro, porém esses micros e a cpu que vai servir como o servidor proxy rodam o windows 2000. Gostaria se possivel se me passe os passos para a instalação e configuração desse produto no S.O windows. Lembrando que o squid é um produto desenvolvido para a plataforma Linux.
#5 Comentário enviado por wberbert em 20/07/2004 - 13:37h
Primeiro tem de saber se o iis tem suporte ao identd.
Nunca tentei utilizar o identd no iis por isso não poderei te ajudar melhor.
Mas o que posso dizer é que o programa identd é o mesmo.

O windows não tem autenticação via active directoy para fazer este tipo de verificação, se sim nem precisará do identd.

[]'s Wanderson
#6 Comentário enviado por chrsouza em 22/07/2004 - 09:33h
Estou tendo um problema com o ident.
Possuo um servidor com Fedora Core 2, rodando o squid-2.5-stable5, na porta 3128, iptables e Sarg para relatorios. Esta funcionando perfeitamente.
Porem nos relatorios aparecem nomes de maquinas, e eu gostaria que mostrasse o usuario que esta conectado na estação Windows.
Como não usuamos autenticação, achei que a melhor formar seria o ident, conforme esse exelente artigo acima.
Mas estou tendo o seguinte problema quando incluo a ACL do ident no squid.conf, aparece o seguinte erro ao "stopar" o servico.

squid.conf line 3: acl aclident ident user
2004/07/22 09:38:39| aclParseAclLine: Invalid ACL type 'ident'

me parece que ele nao esta reconhecendo o tipo de ACL ident.
Ja testei com outras versões do squid como 2.5-stable6 e tb ocorre o mesmo erro.

Grato
#7 Comentário enviado por chrsouza em 22/07/2004 - 09:37h
Esta eh a configuracao.

#squid -v
Squid Cache: Version 2.5.STABLE5
configure options: --host=i386-redhat-linux --build=i386-redhat-linux --target=i386-redhat-linux-gnu --program-prefix= --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib --libexecdir=/usr/libexec --localstatedir=/var --sharedstatedir=/usr/com --mandir=/usr/share/man --infodir=/usr/share/info --exec_prefix=/usr --bindir=/usr/sbin --libexecdir=/usr/lib/squid --localstatedir=/var --sysconfdir=/etc/squid --enable-poll --enable-snmp --enable-removal-policies=heap,lru --enable-storeio=aufs,coss,diskd,null,ufs --enable-ssl --with-openssl=/usr/kerberos --enable-delay-pools --enable-linux-netfilter --with-pthreads --enable-ntlm-auth-helpers=SMB,winbind --enable-external-acl-helpers=ip_user,ldap_group,unix_group,wbinfo_group,winbind_group --enable-auth=basic,ntlm --with-winbind-auth-challenge --enable-useragent-log --enable-referer-log --disable-dependency-tracking --enable-cachemgr-hostname=localhost --disable-ident-lookups --enable-truncate --enable-underscores --datadir=/usr/share --enable-basic-auth-helpers=LDAP,MSNT,NCSA,PAM,SMB,YP,getpwnam,multi-domain-NTLM,SASL,winbind

alguma sugestao?
#8 Comentário enviado por wberbert em 22/07/2004 - 10:57h
o que eu pude ver é que vc está colocando o acl na terceira linha.
squid.conf line 3: acl aclident ident user
seria interessante vc mover para a linha onde estão definidos os outros acls...
e o que pude notar é que vc utilizou a palavra user...se não me engano user é uma palavra reservada, talvez seja isto.
Tente isto e veja se funciona.
#9 Comentário enviado por flipe em 19/08/2004 - 17:23h
aqui eu iniciei o ident assim

oidentd -o UNIX -m -P 192.168.1.251 -u nobody -a 192.168.1.251

e no squid coloquei as linhas..
.
acl usus ident fulan ciclano
http_access deny usus

e no oident.users coloquei as linha assim

x.x.x.x fulano UNIX
x.x.x.x ciclano UNIX

e ele não quer funcionar...

sabe o q falta?
#10 Comentário enviado por flipe em 20/08/2004 - 12:29h
e enquanto ao log.. o ident não tem?
#11 Comentário enviado por wberbert em 20/08/2004 - 13:19h
O log fica no squid, vc pode usar um sarg ou um webalizer para extrair informações dele.
#12 Comentário enviado por wberbert em 20/08/2004 - 13:24h
Tudo bom flipe, em relação a pergunta sobreo identd eu geralmente inicio sem parametros, como vc está usando o oidentd provavelmente o que está dando problema é o parämero -u que vc está colocando. Quando o oidetnd tenta se conectar ao squid ele manda como usuário nobody, o que nao bate com nenhuma regra definida por você. oq vc tem que fazer é instruir seu programa para que o mesmo envie o logiin do usuário que está logado no sistema no momento da conexão com o squid. Taslvez tirando o parâmetro -u resolva seu problema.
#14 Comentário enviado por jgama em 02/12/2004 - 23:46h
Olá wberbet, achei legar seu tuto, estou querendo aplicar para fazer alguns teste.

A principio estou com Um servidor com Slack 10 e o squid + Samba PDC, estou a procurando de um autenticador para usar no squid, já fiz o teste com smb_auth, algunstutorias mostra que este tipo de autenticação não força as estações ficar sempre digirando o logui e senha todas as vezes que for acessar o browser, só que aui faz o contrário.

Por isso gostaria que vc mostrasse qual é a posição das linha que devo coloca o identd nos ACL e http_access.

Por ex: no ACL a linha do identd fica depois de ou antes de o mesmo para o http_access.
Já que o squid tem que configurar as suas linhas nos devido lugares.

Vc pode ajudar?


#15 Comentário enviado por wberbert em 03/12/2004 - 08:35h
Clique sobre o meu nome no vol e procure nos meus confs enviados, um dele é uma conf do squid já alterado para utilizar o identd, dê uma olhada e se ainda permanecerem dúvidas estarei disposto a ajudar.

Wanderson Berbert
#16 Comentário enviado por gamaj em 25/12/2004 - 23:51h
Olá wberbet desejo um Feliz Natal e um prospero ano novo para vc e familia.

Amigo, andei bem ocupado com outros projetos e só agora estou voltando a reconfigurar o squid, e ainda estou naquele impasse com o identd.

Qual é o paramentro dentro do sarg que aundo eu rodar o relatório seja informa o usuario e não o IP da máqina.

Outra coisa vamos supor que u usuario derek não possa navegar na internet, como ficaria a regar no squid.

Abraço amigo

valdir
#17 Comentário enviado por klimber em 17/01/2005 - 14:57h
Bom dia.
Aqui na faculdade onde trabalho fazemos autenticação de usuários com ldap, e o proxy é transparente jogando direto para a porta 3128 do squid.

o Browser não pede senha para acesso a net.

nesta configiração o ident deveria funcionar com o tutorial acima?


Obrigado
#18 Comentário enviado por klimber em 25/01/2005 - 17:44h
O ident só estra trazendo o nome do usuário se eu coloco manualmente configurações do proxy no Browser.

se eu fazer transparente pelo firewall não resolve.

estas linhas estão sendo usadas....

echo "1"> /proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -i eth1 -p tcp -m multiport -s 10.0.90.0/24 --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

alguem tem alguma idéia de como usar transparente?
#19 Comentário enviado por ximex em 31/05/2005 - 10:08h
Tenho o squid autendicado com o ncsa_auth, como posso utilizar o ident para fazer que por exempo o usuario "linux" acesse apenas o site que eu quero.
#20 Comentário enviado por wberbert em 31/05/2005 - 13:41h
sim pode sim. É para isso que utilizo o ident. O único problema do ident é que não é considerado um método de autenticação segura e é necessário que exista um programa identd client rodando na máquina que vai acessar a internet.
#21 Comentário enviado por alepaes em 04/06/2005 - 21:20h
Eu estava pensando em desenvolver algo assim (talvez Delphi e python):

1) Cliente Windows (que fique em 'tray' e rode como serviço)
2) Quando o usuário for navegar pela primeira vez, ele clica no ícone e fornece usuário e senha
3) Essas informações são enviadas a um daemon no linux que autentica de alguma forma (PAM, por exemplo), devolvendo ao cliente se está OK
4) Ao tentar usar o navegador, o squid utulizaria um helper para confirmar se esse IP está logado com um usuário válido

Isso seria muito produtivo, pois não necessitáriamos de efetuar um logoff para trocar de usuário (auth NTLM), nem ficar com essa chateação do usuário digitar nome e senha toda vez que abre uma janela do IE ou recebe uma mensagem HTML no Outlook.
Tenho clientes que tem políticas de usuário assim:

usuário banco: pode acessar apenas os bancos
usuário financeiro: pode acessar apenas o site x, y, z

O problema é que a mesma pessoa é quem usa esses dois logins...

Abraços!
#22 Comentário enviado por klebermarra em 20/05/2006 - 13:04h
Caro amigo, estou usando as configurações acima citadas, uso proxy transparente e acontece o seguinte problema:

2006/05/20 13:08:27| aclParseAclLine: Invalid ACL type 'ident'
FATAL: Bungled squid.conf line 29: acl superusuarios ident "/etc/squid/superusuarios"
Squid Cache (Version 2.5.STABLE11): Terminated abnormally.

Ja fiz de tudo e nao adiantou nada, esse erro perciste.
Sou novato em linux mas um dia chego la.

Please quem puder ajudar eu agradeço.
#23 Comentário enviado por mariondh em 27/10/2006 - 10:34h
Bom dia Wanderson,

Estou tentando implementar a sua solução.

No XP já coloquei o ident como um serviço.

No Squid já configurei corretamente as regras.

Mas não está funcionando.

Tenho que colocar mais alguma coisa no ar no Linux ? ... o oidentd tem que estar no ar ou o Squid fala diretamente com o ident do Windows ?

Tenho algum utilitario no Linux para testar se o ident do Windows está fornecendo o usuário corretamente ?

Aguardo o seu retorno.
#24 Comentário enviado por removido em 18/02/2010 - 19:16h
Amigo.

Essa solucao se aplica para servidor WTS?

Por exemplo tenho aqui na empresa tudo thinclient, e preciso controlar a internet de forma individual dentro da sessao de WTS no Windows 2003.
Por IP naturalmente nao consigo fazer, porque o IP dos usuarios é o mesmo do servidor WTS.

Valeu
#25 Comentário enviado por danielrsj em 26/05/2010 - 12:02h
Essa solução funciona com o proxy transparente ?
Outra coisa, eu posso usar em vez do nome dos usuários grupos do domínio?

Por exemplo, em vez de eu ir no squid configurar nome por nome dos usuários eu adicionar o grupo do domínio e quando eu criar um usuário novo no domínio eu inseri-lo nesse grupo?

Contribuir com comentário

Entre na sua conta para comentar.