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.

[ Hits: 91.455 ]

Por: Wanderson Berbert em 27/12/2003


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.

    Próxima página

Páginas do artigo
   1. Introdução
   2. Obtendo o identd
   3. Instalando
   4. Configurando o Squid
   5. Finalizando
Outros artigos deste autor

Mascarando conexões VPN com iptables

Bugzilla (Bug Tracking System)

Migrando do ipchains para o iptables

Implementando auto-resposta utilizando o Exim

Criando relatórios estatísticos com o webalizer

Leitura recomendada

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

Configurando o Squid no Slackware

Proxy transparente com Squid 2.6 e FWBuilder

Manual traduzido do Squid

Squid autenticando em base Active Directory

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

[13] Comentário enviado por schina35 em 06/09/2004 - 14:27h

Esqueçam o ident.
Edite o sarg.usertab.
vejam como fica depois de ptonto
http://200.228.78.29:8080/squid-reports/2004Sep04-2004Sep04/index.html

[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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts