Autenticando Squid no AD utilizando grupos do AD como base para o acesso, de forma que podemos habilitar a utilização do proxy ou não para os usuários, liberando ou não a utilização do MSN para os usuários também e permitindo que os administradores ou a diretoria navegue sem restrições.
# Libera sites sem autenticacao
http_access allow sites_sem_autenticacao
# Libera acesso total para administradores
http_access allow proxyadmins
# Controle de uso do MSN
http_access deny msn_urls !proxymsn #http_access deny msn_ips !proxymsn
# Controle de downloads
http_access deny downloads_proibidos !downloads_permitidos !sites_permitidos !urls_permitidas
# Controle de palavras
http_access deny palavras_proibidas !sites_permitidos !urls_permitidas
# Controle de sites
http_access deny sites_proibidos
# Controle de URL's
http_access deny urls_proibidas !urls_permitidas
# Libera acesso para usuarios autenticados
http_access allow password proxyusers
# Example rule allowing access from your local networks. Adapt # to list your (internal) IP networks from where browsing should # be allowed
http_access allow localhost
# And finally deny all other access to this proxy
http_access deny all
[3] Comentário enviado por ctavares em 12/04/2010 - 12:29h
Para Mim simplesmente não funcionou a autenticação por grupos, se eu liberar o site na ACL sem autenticação ou nas demais ele funciona mas pelo visto meu squid não consegue buscar informações sobre os grupos. Quando você coloca memberof=cn=%a,ou=groups,dc=dominio,dc=local = Local onde foi criado os 3 grupos no AD;
na verdade eu só preciso alterar depois de ou= né como no exemplo abaixo tudo antes fica igual ao que você escreve certo?
[5] Comentário enviado por ctavares em 12/04/2010 - 14:04h
Veja Bem, é uma OU Unidade Organizacional chamada squid, dentro dela tem um usuário chamado squid também dei a ele a senha squid para facilitar os testes. Eu estou usando DC Windows 2008 R2 e Ubuntu 9.04 para o squid que é a versão 2.7 stable 6, eu já havia feito a mudança do nome do binário e localização dele de squid_ldap_auth que no Ubuntu chama diferente e está em outro local. Eu testei com a autenticação por usuário e ela funciona só não funciona na autenticação em grupo.
[6] Comentário enviado por czelusniak em 12/04/2010 - 15:03h
Ok, e dentro desta OU estão os grupos correto? O nome dos grupos estão idênticos (Letras maiúsculas e minúsculas)? cola a linha da ldap_group e as acls aí. para ver o que esta acontecendo.
auth_param basic children 5
auth_param basic realm Forneça seu nome de usuário e senha para navegar.
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
# Apache mod_gzip and mod_deflate known to be broken so don't trust
# Apache to signal ETag correctly on such responses
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
# TAG: extension_methods
# Squid only knows about standardized HTTP request methods.
# You can add up to 20 additional "extension" methods here.
extension_methods REPORT MERGE MKACTIVITY CHECKOUT
[8] Comentário enviado por czelusniak em 12/04/2010 - 22:57h
Carlos,
na linha onde contem o usuário que vai autenticar esta assim "cn=squid,cn=squid,dc=galaxia,dc=net" mas pelo que você me passou onde o usuário squid esta é um OU e não um CN, na minha vm (com Ubuntu ) também não havia funcionado então troquei para OU e funcionou outra coisa mudei a regra "http_access allow proxyusers", coloquei ela mais para baixo, é a ultima antes do "http_access deny all" assim ele consegue efetuar as restrições. Da uma olhada para ver não é isto amigo, aqui funcionou com o seu script.
[9] Comentário enviado por ctavares em 14/04/2010 - 08:58h
czelusniak,
Me Desculpa eu estava afirmando que estava como OU quando na verdade estava como CN, depois das modificações funcionou perfeitamente, muito obrigado pelo ótimo trabalho e por ter me ajudado.
[11] Comentário enviado por rogawa em 26/07/2010 - 17:25h
Olá Robinson. Excelente artigo, muito bem explicado!
Bem, estou usando o Samba4 aqui como Domain Controller, apliquei seu artigo e as restrições funcionaram. Entretanto, resolvi fazer um teste. Através de um PC fora do domínio, eu consegui logar e navegar usando qualquer nome de usuário que estivesse previamente cadastrado no AD e dentro do grupo PROXY_USERS. Gostaria que isso não acontecesse, pois pretendo aplicar uma série de restrições usando GPOs, então pensei em usar na ACL, o computador logado no domínio ao invés do usuário. Essa abordagem é possível? Eu pretendo fazer um teste, alterando o parâmetro (&(objectclass=person) para (&(objectclass=computer). Não sei se fui claro o suficiente, mas resumidamente seria alterar a autenticação de "usuário" para "computador". Qualquer ajuda é bem-vinda e mais uma vez parabéns pelo artigo!
[12] Comentário enviado por czelusniak em 31/07/2010 - 16:38h
Obrigado Rui,
Nunca fiz este teste mas acredito que se você tirar o objectclass=person ninguém irá logar pois ele é uma classe de usuário, e se você colocar o objectclass=computer talvez a autenticação só acontecerá se você você passar uma conta de computar e não de um usuário, mas mesmo assim uma máquina fora do domínio poderá logar, uma forma de você restringir isto é utilizando NTLM com o squid dai o proxy não pede autenticação mas só libera a navegação se você estiver logado com uma conta do domínio. Estou terminando um artigo com NTLM, quero ver se até a metade do mês disponibilizo, o problema é o tempo meu amigo, mas no próprio VOL você pode encontrar algumas alternativas. Espero ter ajudado.
[16] Comentário enviado por czelusniak em 06/08/2010 - 21:59h
Boa noite Rui,
pelo que vi do link que você colocou aí, é isto mesmo estou indo na mesma base no meu artigo.
No pdf que você postou ele fala sobre o horário do servidor isto tem que estar sincronizado com o AD senão dá problemas mesmo, outro ponto é o DNS, mas é muito tranquilo, boa sorte na sua jornada aí e se tiver tempo posta aí o resultado ou se tiver problema posta aí também numa dessa posso ajudar.
[17] Comentário enviado por leonavegador em 15/10/2010 - 16:22h
Caro Amigo czelusniak,
Segui o seu tutoria, fazendo as alterações necessárias para meu domínio com meu grupos enfim. O usuario se autentica redondo. Mas o que ocorre. Segundo seu tutoria se o usuário não for membro de nenhum grupo do AD ele não navegaga correto? No meu caso aqui mesmo ele não estando cadastrado no grupo para controle de conteudo ele consegue navegar. O que pode estar ocorrendo. Agaurdo seu retorno.
[18] Comentário enviado por nelsinho em 10/12/2010 - 15:55h
Boa tarde
Caro Amigo czelusniak,
Minha duvida é a seguinte estou fazendo uns teste aqui na minha VM antes de implementar na minha rede.
Meu squid esta instalado no Debian 5 e eu nao conseguir localizar o arquivo squid_ldap_auth de forma nenhuma.
Gostaria da Ajuda de voces para que eu possa seguir o tutorial.
[19] Comentário enviado por gean.souza em 21/03/2011 - 12:32h
Bom dia a todos,
Fiz este procedimento e funcionou certinho, mas preciso de uma ajuda. Eu gostaria de limitar o número de conexões por usuário, porém alguns deles devem ter conexão livre. Pergunta! Eu consigo limitar o número de conexões apenas para um grupo X, enquanto o grupo Y não possui limite?
[21] Comentário enviado por rbortholin em 25/02/2013 - 14:37h
Galera !
Preciso de uma ajuda !
Eu a príncipio fiz uma instalação básica do squid por #aptitude install squid, ai consegui fazr funcionar e tal, porém é necessário que ele se integre com o AD assim como ensinado neste tutorial !
Meu linux já está no dominio e e comunicando, porém preciso configrar essa linha
[23] Comentário enviado por jonnatha_faria em 03/03/2016 - 03:22h
Amigo, excelente iniciativa, só tenho um comentário, se puder postar os confs mais simplificados, acho que fica mais fácil das pessoas aprenderem. Só uma crítica construtiva, parabéns!