Tutorial - SquidGuard + LdapGroup (permissão por grupo no ad)
-
Bom dia!!
Pessoal, estou com uma duvida tremenda.
Estou tentando executar os passos com o script criado pelo Marcelloc e pelo Ccesario no post http://forum.pfsense.org/index.php/topic,47100.msg248200.html#msg248200
Não entendi em qual pasta o arquivo "squiguard_ldap.php" deve ficar depois de alterado para as configurações do meu AD.
Fiz os passos abaixo:
1º- Instalar os pacotes "FILER" e "Cron"
3º- Criar no sguidGuard um grupo ex: "Acesso_Full"
4º- Criar no AD Windows um grupo com o mesmo nome
5º- Ir em Diagnostics>Filer -File: squiguard_ldap.php
-Description: –-
-Permissions: –-
-File Contents: script criado por você (com as informações do meu AD)
-Script: ?
-Execute mode: ?
6º- Ir no Cron e deixar e configurar: */5 * * * * root /usr/local/bin/php -q /root/squidguard_ldap.phpParei aqui…
Se puder esclarecer as minhas duvidas, ficarei muito agradecido.
-
Não entendi em qual pasta o arquivo "squiguard_ldap.php" deve ficar depois de alterado para as configurações do meu AD.
o 6º passo dá a resposta… ;) /root/squidguard_ldap.php
Mas é claro que você pode colocar em qualquer outra pasta.
Não recomendo deixar em /usr/local/www uma vez que pode ser chamado via browser. -
Obrigado Marcelloc!
Deu certo, os usuários membros dos grupos no AD aparecem em Client source no SquidGuard mas os bloqueios/acessos não estão saindo pelas permissões dos grupos mas apenas pelo Common ACL.
O que pode ser?
-
O que pode ser?
Provavelmente seu squid não esta autenticando os usuários.
Já verificou o access.log do squid?
-
Bom dia!!
Marcelloc, eu estou usando proxy transparente.
Tem algum problema, o script funciona com o squid em modo transparente? -
Marcelloc, eu estou usando proxy transparente…
Não vai funcionar, proxy transparente não autentica.
-
Marcelloc, para o meu cenario teria que ser os passos indicados no link abaixo?
http://forum.pfsense.org/index.php/topic,47532.msg249812.html#msg249812
No meu cenario tenho que usar proxy transparente…
-
Marcelloc, para o meu cenario teria que ser os passos indicados no link abaixo?
http://forum.pfsense.org/index.php/topic,47532.msg249812.html#msg249812
No meu cenario tenho que usar proxy transparente…
A configuração deste tópico exige a configuração do proxy, via WAP ou direto no browser.
O que fica transparente é a autenticação, que não aparece tela de usuário e login.att,
Marcello Coutinho -
Boa tarde!!
Obrigado pelo esclarecimento Marcelloc.Só mais algumas perguntas…
Provavelmente seu squid não esta autenticando os usuários.
Nunca trabalhei com proxy não transparente o que preciso fazer para o squid autenticar os usuários? Tenho que criar os usuarios no squid?
Já fiz todos os passos…os usuários e grupos do AD ja estão sincronizados com o squidguard, o que esta faltando para finalizar essa configuração?
-
O que preciso fazer para o squid autenticar os usuários? Tenho que criar os usuarios no squid?
Depois de dar uma boa olhada nos tutoriais, você pode escolher qual metodo de autenticação você quer usar no squid e configura o proxy nos usuarios(via WAP, GPO ou na mão)
Já fiz todos os passos…os usuários e grupos do AD ja estão sincronizados com o squidguard, o que esta faltando para finalizar essa configuração?
Falta finalizar o procedimento da pergunta acima.
-
VEJA ATUALIZAÇÃO DESSE PATCH EM:
http://forum.pfsense.org/index.php/topic,59242.0.html
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
-
Obrigado Luiz e Marcelloc pelos esclarecimentos.
-
Pessoal, Boa tarde,
Estou implementando o squid com squidGuard onde eu trabalho, e gostaria de uma ajuda referente o squidguard com grupos do AD, vi que o pessoal conseguiu com o script postado aqui no forum, algume poderia me auxiliar como eu configuro o squidguard, para verificar os grupos com o script postato.
Obrigado
-
Pessoal, Boa tarde,
Estou implementando o squid com squidGuard onde eu trabalho, e gostaria de uma ajuda referente o squidguard com grupos do AD, vi que o pessoal conseguiu com o script postado aqui no forum, algume poderia me auxiliar como eu configuro o squidguard, para verificar os grupos com o script postato.
Obrigado
fcruzcoelho,
Bem vindo ao fórum! :)Leia este tópico para entender como aplicar as configurações. Aqui tem duas soluções, uma via script e outra via patch.
Boa leitura.
att,
Marcello Coutinho -
Você conseguiu testar?
Acho que da forma que o script ficou é até mais econômico na questão de consumo de recursos já que ele não vai no ad a cada acesso para verificar o grupo.
Olá Marcello!
Testado e aprovado.
Coloquei no cron a cada 1 minuto.
Ficou ótimo!
Obrigado pela ajuda!
ccesario, Boa noite
Poderia me ajudar, pois estou utilizando o script mas não obtive sucesso, não consigo fazer as regras baseada nos grupos do ad.
Obrigado
-
Pessoal, Boa tarde,
Estou implementando o squid com squidGuard onde eu trabalho, e gostaria de uma ajuda referente o squidguard com grupos do AD, vi que o pessoal conseguiu com o script postado aqui no forum, algume poderia me auxiliar como eu configuro o squidguard, para verificar os grupos com o script postato.
Obrigado
fcruzcoelho,
Bem vindo ao fórum! :)Leia este tópico para entender como aplicar as configurações. Aqui tem duas soluções, uma via script e outra via patch.
Boa leitura.
att,
Marcello CoutinhoPessoal, Boa tarde,
Estou implementando o squid com squidGuard onde eu trabalho, e gostaria de uma ajuda referente o squidguard com grupos do AD, vi que o pessoal conseguiu com o script postado aqui no forum, algume poderia me auxiliar como eu configuro o squidguard, para verificar os grupos com o script postato.
Obrigado
fcruzcoelho,
Bem vindo ao fórum! :)Leia este tópico para entender como aplicar as configurações. Aqui tem duas soluções, uma via script e outra via patch.
Boa leitura.
att,
Marcello CoutinhoVocê conseguiu testar?
Acho que da forma que o script ficou é até mais econômico na questão de consumo de recursos já que ele não vai no ad a cada acesso para verificar o grupo.
Olá Marcello!
Testado e aprovado.
Coloquei no cron a cada 1 minuto.
Ficou ótimo!
Obrigado pela ajuda!
Marcello, Boa Noite
eu tentei as duas formas, e não tive sucesso, via script precisa usar qual configuração no campo client source, para a pesquisa do usuario dentro do grupo??.
Obrigado
-
fcruzcoelho, até onde você conseguiu configurar?
Criou os grupos com o mesmo nome do grupo no ad?
-
Obrigado Marcelloc!
Deu certo, os usuários membros dos grupos no AD aparecem em Client source no SquidGuard mas os bloqueios/acessos não estão saindo pelas permissões dos grupos mas apenas pelo Common ACL.
O que pode ser?
Você conseguiu testar?
Acho que da forma que o script ficou é até mais econômico na questão de consumo de recursos já que ele não vai no ad a cada acesso para verificar o grupo.
Olá Marcello!
Testado e aprovado.
Coloquei no cron a cada 1 minuto.
Ficou ótimo!
Obrigado pela ajuda!
Pessoal me ajuda não conseguir sincronizar os grupos com os usuario no squidguard. estou utilizando o metodo no script oq precisa fazer a mais. fico no agurado
-
Pessoal me ajuda não conseguir sincronizar os grupos com os usuario no squidguard. estou utilizando o metodo no script oq precisa fazer a mais. fico no agurado
Qual o retorno do comando quando você roda ele na console?
-
Pessoal,
O ccesario começou a alterar um script que extrai os usuarios de um grupo específico para aplica nas acls do squidguard.
Peguei com ele hoje e consegui integrar o script no pfsense.
squidguard_ldap.php
// based on http://samjlevy.com/2011/02/using-php-and-ldap-to-list-of-members-of-an-active-directory-group/ // pfsense integration by marcelloc and ccesario # AD HOST (required) $ldap_host = "192.168.3.1"; # AD DIRECTORY DN(required) $ldap_dn = "DC=domain,DC=local"; # BIND USER(required) $user_bind = "cn=squidguard,cn=Users,DC=domain,DC=local"; # PASSWORD BIND(required) $password = "super_secret_password"; #if you need to apply any prefix or sufix to retreived user #example: prefix user with domain(required) #$user_mask="DOMAIN\USER"; $user_mask="USER"; #################### # End of user options # #################### require_once("/etc/inc/util.inc"); require_once("/etc/inc/functions.inc"); require_once("/etc/inc/pkg-utils.inc"); require_once("/etc/inc/globals.inc"); #mount filesystem writable conf_mount_rw(); function explode_dn($dn, $with_attributes=0) { $result = ldap_explode_dn($dn, $with_attributes); foreach($result as $key => $value) { $result[$key] = $value; } return $result; } function get_ldap_members($group,$user,$password) { global $ldap_host; global $ldap_dn; $LDAPFieldsToFind = array("member"); $ldap = ldap_connect($ldap_host) or die("Could not connect to LDAP"); // OPTIONS TO AD ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION,3); ldap_set_option($ldap, LDAP_OPT_REFERRALS,0); ldap_bind($ldap, $user, $password) or die("Could not bind to LDAP"); $results = ldap_search($ldap,$ldap_dn,"cn=" . $group,$LDAPFieldsToFind); $member_list = ldap_get_entries($ldap, $results); $group_member_details = array(); foreach($member_list[0] as $list) if (is_array($list)) foreach($list as $member) { $member_dn = explode_dn($member); $member_cn = str_replace("CN=","",$member_dn[0]); $member_search = ldap_search($ldap, $ldap_dn, "(CN=" . $member_cn . ")"); $member_details = ldap_get_entries($ldap, $member_search); $group_member_details[] = array($member_details[0]['samaccountname'][0]); } ldap_close($ldap); array_shift($group_member_details); return $group_member_details; } // Read Pfsense config global $config,$g; $id=0; $apply_config=0; if (is_array ($config['installedpackages']['squidguardacl']['config'])) foreach($config['installedpackages']['squidguardacl']['config'] as $group) { $members=""; echo "Group : " . $group['name']."\n"; $result = get_ldap_members($group['name'],$user_bind,$password); foreach($result as $key => $value) { if (preg_match ("/\w+/",$value[0])) $members .= "'".preg_replace("/USER/",$value[0],$user_mask)."' "; } if (!empty($members)) if($config['installedpackages']['squidguardacl']['config'][$id]['source'] != $members){ $config['installedpackages']['squidguardacl']['config'][$id]['source'] = $members; $apply_config++; } $id++; } if ($apply_config > 0){ print "user list from LDAP is different from current group, applying new configuration..."; write_config(); include("/usr/local/pkg/squidguard.inc"); squidguard_resync(); print "done\n"; } #mount filesystem read-only conf_mount_ro(); ?>
Para executar o script no squiguard:
-
Copie/crie o arquivo par ao seu pfsense
-
Edite os parametros do inicio do script
-
Altere o nome dos grupos do squidguard para o mesmo nome do grupo no ad
-
execute o script via console
O procedimento no squidguard é manual/via cron para não 'atrapalhar' o timeline de um pacote suportado pelo core team(eu acho).
Claro que para o dansguardian, o script já estará integrado na interface gráfica e com suporte a multiplos servidores LDAP. ;)
att,
Marcello CoutinhoMarcelo, Bom dia
Estou utilizando o script para importar os usuarios do meu ad para o pfsense, me deparei com um problema referente uma grande quantidade de usuario em um grupo, tenho uma grupo G_BASICO com 1800 Usuarios, quando eu rodo o script ele não importa os usuarios desse grupo e retorna o error
Warning: Invalid argument supplied for foreach() in /etc/scripts/squidguard_ldap.php on line 40
user list from LDAP is different from current group, applying new configuration…doneTem algum limite no script??
Fico no aguardo
-