Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    Tutorial - SquidGuard + LdapGroup (permissão por grupo no ad)

    Scheduled Pinned Locked Moved Portuguese
    202 Posts 30 Posters 93.6k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • marcellocM
      marcelloc
      last edited by

      @helberttavares:

      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.

      Treinamentos de Elite: http://sys-squad.com

      Help a community developer! ;D

      1 Reply Last reply Reply Quote 0
      • H
        helberttavares
        last edited by

        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?

        Helbert Tavares
        OTNE - Gestão em TI

        1 Reply Last reply Reply Quote 0
        • marcellocM
          marcelloc
          last edited by

          @helberttavares:

          O que pode ser?

          Provavelmente seu squid não esta autenticando os usuários.

          Já verificou o access.log do squid?

          Treinamentos de Elite: http://sys-squad.com

          Help a community developer! ;D

          1 Reply Last reply Reply Quote 0
          • H
            helberttavares
            last edited by

            Bom dia!!

            Marcelloc, eu estou usando proxy transparente.
            Tem algum problema, o script funciona com o squid em modo transparente?

            Helbert Tavares
            OTNE - Gestão em TI

            1 Reply Last reply Reply Quote 0
            • marcellocM
              marcelloc
              last edited by

              @helberttavares:

              Marcelloc, eu estou usando proxy transparente…

              Não vai funcionar, proxy transparente não autentica.

              Treinamentos de Elite: http://sys-squad.com

              Help a community developer! ;D

              1 Reply Last reply Reply Quote 0
              • H
                helberttavares
                last edited by

                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…

                Helbert Tavares
                OTNE - Gestão em TI

                1 Reply Last reply Reply Quote 0
                • marcellocM
                  marcelloc
                  last edited by

                  @helberttavares:

                  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

                  Treinamentos de Elite: http://sys-squad.com

                  Help a community developer! ;D

                  1 Reply Last reply Reply Quote 0
                  • H
                    helberttavares
                    last edited by

                    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?

                    Helbert Tavares
                    OTNE - Gestão em TI

                    1 Reply Last reply Reply Quote 0
                    • marcellocM
                      marcelloc
                      last edited by

                      @helberttavares:

                      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)

                      @helberttavares:

                      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.

                      Treinamentos de Elite: http://sys-squad.com

                      Help a community developer! ;D

                      1 Reply Last reply Reply Quote 0
                      • L
                        lgcosta
                        last edited by

                        VEJA ATUALIZAÇÃO DESSE PATCH EM:

                        http://forum.pfsense.org/index.php/topic,59242.0.html

                        @Luiz:

                        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

                        Luiz Gustavo - Suporte pfSense no Brasil
                        mundounix.com.br

                        1 Reply Last reply Reply Quote 0
                        • H
                          helberttavares
                          last edited by

                          Obrigado Luiz e Marcelloc pelos esclarecimentos.

                          Helbert Tavares
                          OTNE - Gestão em TI

                          1 Reply Last reply Reply Quote 0
                          • F
                            fcruzcoelho
                            last edited by

                            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

                            1 Reply Last reply Reply Quote 0
                            • marcellocM
                              marcelloc
                              last edited by

                              @fcruzcoelho:

                              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

                              Treinamentos de Elite: http://sys-squad.com

                              Help a community developer! ;D

                              1 Reply Last reply Reply Quote 0
                              • F
                                fcruzcoelho
                                last edited by

                                @ccesario:

                                @marcelloc:

                                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

                                1 Reply Last reply Reply Quote 0
                                • F
                                  fcruzcoelho
                                  last edited by

                                  @marcelloc:

                                  @fcruzcoelho:

                                  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

                                  @marcelloc:

                                  @fcruzcoelho:

                                  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

                                  @ccesario:

                                  @marcelloc:

                                  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!

                                  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

                                  1 Reply Last reply Reply Quote 0
                                  • marcellocM
                                    marcelloc
                                    last edited by

                                    fcruzcoelho, até onde você conseguiu configurar?

                                    Criou os grupos com o mesmo nome do grupo no ad?

                                    Treinamentos de Elite: http://sys-squad.com

                                    Help a community developer! ;D

                                    1 Reply Last reply Reply Quote 0
                                    • F
                                      fcruzcoelho
                                      last edited by

                                      @helberttavares:

                                      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?

                                      @ccesario:

                                      @marcelloc:

                                      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

                                      1 Reply Last reply Reply Quote 0
                                      • marcellocM
                                        marcelloc
                                        last edited by

                                        @fcruzcoelho:

                                        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?

                                        Treinamentos de Elite: http://sys-squad.com

                                        Help a community developer! ;D

                                        1 Reply Last reply Reply Quote 0
                                        • F
                                          fcruzcoelho
                                          last edited by

                                          @marcelloc:

                                          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 Coutinho

                                          Marcelo, 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…done

                                          Tem algum limite no script??

                                          Fico no aguardo

                                          1 Reply Last reply Reply Quote 0
                                          • marcellocM
                                            marcelloc
                                            last edited by

                                            @fcruzcoelho:

                                            Tem algum limite no script??

                                            Não, pode ter no campo do squidguard.

                                            Algumas mensagens de erro durante a varredura da arvore do ad pode justificar a mensagem
                                            Warning: Invalid argument supplied for foreach() in /etc/scripts/squidguard_ldap.php on line 40

                                            O seu grupo do ad está identico ao grupo do squidguard?

                                            Treinamentos de Elite: http://sys-squad.com

                                            Help a community developer! ;D

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post
                                            Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.