Tutorial - SquidGuard + LdapGroup (permissão por grupo no ad)
-
pegando o bonde andando…. eu fiz um script um tempo atras exatamente para suprir a necessidade de um cliente com isso, fazer acl por grupo, segue então como fiz:
Aplicar o patch no pfsense (com o pacote já instalado), com o comando abaixo:
fetch -q -o /tmp/ http://www.mundounix.com.br/~gugabsd/squidguard-ldap-search.patch && cd /usr/local/pkg && patch -p0 < /tmp/squidguard-ldap-search.patch
Execute em Diagnostics > command prompt
Vai aparecer uma opção nova na configuração do squidguard, conforme a figura abaixo:
Configure o seu Ldap DN e senha (igual ao do squid)
E crie uma acl baseada na da figura abaixo:
No exemplo acima, o grupo é o CN=ti (é tudo uma linha só, sem quebra)
Qualquer dúvida, da um grito ai.
Abraços
-
Excelente patch Luiz Gustavo! :)
Depois de aplicado, o squidguard vai buscar no ad o grupo do usuário a cada acesso ou a lista é extraída e aplicada nos arquivos?
De qualquer forma, lista de acesso por grupo já está 100% compatível com squidguard e dansguardian, basta escolher.
OFF topic:
Você tem alguma carta na manga para autenticar/logar o usuário do captive portal no squid/squidguard/dansguardian?O pfsense esta ficando monstruosamente poderoso ::)
-
Depois de aplicado, o squidguard vai buscar no ad o grupo do usuário a cada acesso ou a lista é extraída e aplicada nos arquivos?
OFF topic:
Você tem alguma carta na manga para autenticar/logar o usuário do captive portal no squid/squidguard/dansguardian?Depois de aplicado, ele busca na consulta, da forma original documentada no squidguard (http://www.squidguard.org/Doc/authentication.html)
o src fica sendo uma consulta ldap, na verdade, pode ser qualquer tipo de consulta, não só de grupo.
No exemplo que dei é exatamente pra ver se o cara bate no grupo especificado.
Você tem alguma carta na manga para autenticar/logar o usuário do captive portal no squid/squidguard/dansguardian?
Não entendi ? usando que base ? é fazer ficar transparente ? tipo o usuário do captive portal já estar logado no squid?
-
Não entendi ? usando que base ? é fazer ficar transparente ? tipo o usuário do captive portal já estar logado no squid?
Aproveitar a autenticação ja feita no captive portal, logando o usuário no squid sem precisar abrir outra tela de usuário e senha.
Uma mistura de auth_ident com consulta a base de usuários ativos do captive portal.
-
Luiz Gustavo!!!
Ótima notícia!!!!Muito interessante :)
Qual a possibilidade disso ser incorporado ao pacote oficial!?
Obrigado
att,
-
Qual a possibilidade disso ser incorporado ao pacote oficial!?
Não sei, depende do mantenedor, eu fiz o patch para atender uma necessidade localizada de cliente.
Eu vou postar na lista gringa e vamos ver o que o mantenedor acha.
Apesar que seria legal mexer nesse patch para filtrar melhor o campo do search do ldap.
-
Boa noite, Gustavo! Como vai?
Como você explicou, eu estou aplicando o seu script, mas não está aparecendo nenhuma opção do LDAP. O que você acha que pode ser fera?
Fique com Deus! Bom final de semana!
-
Foi mal pessoal, consegui resolver aqui. Apareceu a opção do LDAP, mas eu estacionei aqui. Help!?
Alguém poderia me ajudar, por favor?
Obrigado!
-
Foi mal pessoal, consegui resolver aqui. Apareceu a opção do LDAP, mas eu estacionei aqui. Help!?
Alguém poderia me ajudar, por favor?
Obrigado!
Como esta o seu cenário ? já tem o squid autenticando via ldap (no AD) e funcionando ?
A ideia do patch é ter uma opção de filtragem no squidguard baseada em consulta ldap, no caso da configuração no squidguard, é colocar uma entrada de usuário com permissão para listar a arvore do ldap e criar uma acl baseada em uma busca via ldap, conforme a documentação do proprio squidguard [1].
[1] http://www.squidguard.org/Doc/authentication.html (veja item 2 da documentação)
-
Obrigado pela ajuda Luis Gustavo!
A base eu entendi. A minha dúvida é, eu tenho que replicar os meus grupos do AD manualmente no Squidguard?
Ex: Tenho um grupo no AD chamado: Programação | Tenho que ir no Group ACL do Squidquard e criá-lo também?
Bom final de semana! E obrigado pela atenção!
-
A base eu entendi. A minha dúvida é, eu tenho que replicar os meus grupos do AD manualmente no Squidguard?
Ex: Tenho um grupo no AD chamado: Programação | Tenho que ir no Group ACL do Squidquard e criá-lo também?
Não, basta criar uma entrada conforme o print que mandei anteriormente apontando para o seu grupo no AD que ele vai verificar se o usuário logado pelo o squid esta no grupo ou não para validar a ACL que você esta criando.
Entendeu, a ideia é filtrar (ACL) por grupo do AD (ldap), dessa forma você consegue por exemplo, criar um bloqueio de sites para o grupo XYZ no AD, assim, basta no windows você selecionar quem faz parte ou não do grupo.
É usar a imaginação.
E isso não se limita a grupo, pode ser uma arvore do AD diferente, uma outra abordagem de DN, etc….. é uma busca ldap, o exemplo que citei é para grupos, mas pode ser qualquer coisa.
Abraços
-
Replico o que eu disse na lista pfsense-pt:
Show,
Mas adianto que o patch ainda é muito cru, eu fiz para consolidar uma
necessidade de um cliente, mas de qualquer forma, do jeito que esta, ele
é funcional e não só para fazer consulta a grupo do AD e sim para
qualquer tipo de busca via ldap.Assim que puder, eu vou mexer um pouco mais no patch, para filtrar
melhor aquela string do ldapsearch e fazer uma abordagem melhor na
entrada de dados.Abraços
-
Você alterou a regra do campo onde fica a string do ldap?
Quanto estava testando o outro patch ele me pareceu bem restritivo.
Este patch foi feito em cima da última versão do pacote?
att,
Marcello Coutinho -
Obrigado irmão!
Estarei fazendo os testes e postando os resultados, assim que possível.
Fique na santa paz, Luis Gustavo!
-
Você alterou a regra do campo onde fica a string do ldap?
Quanto estava testando o outro patch ele me pareceu bem restritivo.
Este patch foi feito em cima da última versão do pacote?
Sim, claro ! senão não funciona….
olha o código que você vai ver a serie de "ifs" que coloquei para tratar a entrada da string do ldap (é nessa parte que eu digo que tenho que melhorar, até para evitar strings gigantes e pensar em poder colocar mais de uma string de busca na acl)
E sim, esta para a ultima versão, se não o patch falha ;)
abraços
-
Obrigado pela ajuda Marcello.
Pessoal, quem testar, por favor comente aqui :)
[]s
Carlos
Oi people,
Estou testando o squidguard_ldap.php, tenho os grupos na AD iguaizinhos aos grupos no squidguard, e está dando o seguinte erro:
Warning: Invalid argument supplied for foreach() in /usr/local/pkg/squidguard_ldap.php on line 40
Group : GRP_ExternoWarning: Invalid argument supplied for foreach() in /usr/local/pkg/squidguard_ldap.php on line 40
Group : Usrs_LimitadoWarning: Invalid argument supplied for foreach() in /usr/local/pkg/squidguard_ldap.php on line 40
user list from LDAP is different from current group, applying new configuration…doneApesar de aparecer a mensagem "applying new configuration...done" nada é actualizado nos Groups ACL.
Agradeço desde já a vossa ajuda.
-
Bom dia ppl,
Instalei o script squidguard_ldap.php, e ao executá-lo, ele vai ler penso que correctamente a arvore na minha AD, mas vai criar o ficheiro config.xml.bad e não vai actualizar os Group ACL's, que são igualzinhos aos grupos na AD.
Fiz isso num pfsense 2.0.1. Alguém pode ajudar???Obrigado desde já,
-
Flicid,
Qual procedimento você usou entre o seus últimos posts?
Você saiu de um erro de script para uma aparente recuperação automática de configuração do pfsense.
Você pode executar um diff /conf/config.xml /conf/config.xml.bad ?
-
Flicid,
Qual procedimento você usou entre o seus últimos posts?
Você saiu de um erro de script para uma aparente recuperação automática de configuração do pfsense.
Você pode executar um diff /conf/config.xml /conf/config.xml.bad ?
Marcelo, eu tentei ajudá-lo, mas não consegui identificar a causa do problema.
O script está lendo perfeitamente a base Ldap, porém ao escrever é gerado esse config.bad.xml -
O config.bad.xml é criado automaticamente pelo pfsense quando é identificado um xml corrompido ou mau gerado. O diff do arquivo de produção para o arquivo .bad pode ajudar a identificar o problema.