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

    Ajuda para autenticar o squid por grupos do AD [RESOLVIDO] [TUTORIAL]

    Scheduled Pinned Locked Moved Portuguese
    25 Posts 5 Posters 15.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.
    • R
      ricardodru
      last edited by

      Jack

      te enviei um email em particular sobre o assunto

      1 Reply Last reply Reply Quote 0
      • JackLJ
        JackL
        last edited by

        @ricardodru:

        Jack
        te enviei um email em particular sobre o assunto

        O documento em PDF, de autoria do colega Ricardo, já pode ser acessado a partir deste link: http://www.jack.eti.br/www/arquivos/outros_tutoriais/pfsense/autenticacao_grupos_AD_pfsense.pdf

        Abraços!
        Jack

        Treinamentos de Elite: http://sys-squad.com
        Soluções: https://conexti.com.br

        1 Reply Last reply Reply Quote 0
        • JackLJ
          JackL
          last edited by

          @JackL:

          O documento em PDF, de autoria do colega Ricardo, já pode ser acessado a partir deste link: http://www.jack.eti.br/www/arquivos/outros_tutoriais/pfsense/autenticacao_grupos_AD_pfsense.pdf

          Agora o artigo do Ricardo também pode ser acessado diretamente pelo blog: http://www.jack.eti.br/www/?p=3052

          Abraços!
          Jack

          Treinamentos de Elite: http://sys-squad.com
          Soluções: https://conexti.com.br

          1 Reply Last reply Reply Quote 0
          • V
            valtecirgmail.com
            last edited by

            Olá Jack,

            Estamos na luta pra fazer o squid funcionar por grupo do AD, li o seu tuto, o do link abaixo, depois alterei o meu squid.inc. Porém o meu squid não sobe… Fica registrando o erro a seguir no log:

            squid[16863]: Bungled squid.conf line 83: external_acl_type ldap_group children=30

            Onde estou errando?

            Desde já sou muito grato pelas contribuições de todos, pois são foruns como este que nos estimula a utilizar ferramentas em linux, só não aprende quem não quer mesmo…

            Veja abaixo o trecho adicionado no squid.inc

            seguindo –-> http://forum.pfsense.org/index.php/topic,20208.0.html

            ###################################################################### 
            #  Estrutura dentro do AD:
            #  Domínio: srg.net, Servidor: SERVER4, IP: 192.168.1.202
            #  Admin: Users\administrador
            #  Grupos de Internet: g_produtividade, g_total
            #  Unidade Org.: u_internet
            ######################################################################

            #Define a autenticação ldap e os parâmetros usados
            external_acl_type ldap_group children=30
            %LOGIN /usr/local/libexec/squid/squid_ldap_group -v 3 -R -b "dc=srg,dc=net" -D "cn=Administrador,cn=Users,dc=srg,dc=net" -w
            "minha senha" -f "(&(objectclass=person) (sAMAccountName=%v) (memberof=cn=%a,ou=g_internet,dc=srg,dc=net))" -h 192.168.1.202 -p 389

            #Define a ACL do tipo external para usar os grupos do AD
            external_acl_type ldap_group
            %LOGIN /usr/local/libexec/squid/squid_ldap_group -R -b "dc=srg,dc=net" -D "cn=administrador,cn=Users,dc=srg,dc=net" -w
            "minha senha" -f "(&(&(objectClass=person)(sAMAccountName=%u))(memberOf=%g))" -h 192.168.1.202

            #Define uma ACL denominada "produtividade" para um grupo que terá acesso restrito.
            acl gprodutividade external ldap_group CN=g_produtividade, OU= u_internet, DC=srg,dc=net

            #Define uma ACL para acesso restrito aos domínios listados em um arquivo texto
            acl restrito dstdom_regex -i "/var/squid/acl/whitelist.acl"

            #Define a diretiva formada pela combinação das ACLs acima definidas (AND lógico).
            http_access allow gprodutividade restrito

            #Define uma ACL para um grupo com acesso total.
            acl gtotal external ldap_group CN=g_total, OU= u_internet, DC=srg,dc=net

            #Define a diretiva de acesso total.
            http_access allow gtotal

            ######################################################################

            1 Reply Last reply Reply Quote 0
            • JackLJ
              JackL
              last edited by

              @ValterTI11:

              #Define a autenticação ldap e os parâmetros usados
              external_acl_type ldap_group children=30
              %LOGIN /usr/local/libexec/squid/squid_ldap_group -v 3 -R -b "dc=srg,dc=net" -D "cn=Administrador,cn=Users,dc=srg,dc=net" -w
              "minha senha" -f "(&(objectclass=person) (sAMAccountName=%v) (memberof=cn=%a,ou=g_internet,dc=srg,dc=net))" -h 192.168.1.202 -p 389

              @ValterTI11,

              Antes de qualquer coisa, grato pelos elogios…
              No entanto, o artigo foi escrito pelo @ricardodru. Eu apenas o publiquei no meu blog.

              Em relação a sua dúvida, veja que a linha "external_acl_type ldap_group" é inteira, ou seja, deve ser escrito tudo na mesma linha "external_acl_type ldap_group children=30 %LOGIN /usr/local/libexec/squid/squid_ldap_group..."

              Uma pequena correção: O PFSense é baseado no FreeBSD, não no Linux (embora ambos sejam softwares livres, são sistemas operacionais bem diferentes). ;-)

              Abraços!
              Jack

              Treinamentos de Elite: http://sys-squad.com
              Soluções: https://conexti.com.br

              1 Reply Last reply Reply Quote 0
              • V
                valtecirgmail.com
                last edited by

                Fala Jack,

                Era isso mesmo, coloquei tudo em uma linha só e o squid subiu sem problemas.
                Eu sinceramente não sabia que o FreeBSB e Linux não são a mesma coisa… Aprendendo mais uma... vou pesquisar mais a respeito...
                Porém agora estou no 2º Round com o squid + LDAP...
                É o seguinte a estação pede o usuário e senha, mas fica repetindo isso sem para e não navega...

                Grato por mais essa...

                Veja como está as minhas ACLs:

                #Define a ACL do tipo external para usar os grupos do AD
                external_acl_type ldap_group %LOGIN /usr/local/libexec/squid/squid_ldap_group -R -b "dc=srg,dc=net" -D "cn=squid,cn=Users,dc=srg,dc=net" -w  "senha" -f "(&(&(objectClass=person)(sAMAccountName=%v))(memberOf=cn=%a, ou=g_internet, dc=srg, dc=net))" -h 192.168.1.202 -p 389

                #Vincula as ACLs com base nos grupos do AD
                acl gprodutividade external ldap_group g_produtividade
                acl gtotal              external ldap_group g_total       
                acl gbloqueados    external ldap_group g_bloqueados

                #Define uma ACL para acesso restrito aos domínios listados em um arquivo texto produtividade.acl
                acl restrito dstdom_regex -i "/var/squid/acl/produtividade.acl"

                #Define a diretiva formada pela combinação das ACLs acima definidas
                http_access deny  gbloqueados
                http_access deny  gprodutividade !restrito
                http_access allow gtotal

                #######################################################################

                @JackL:

                @ValterTI11:

                #Define a autenticação ldap e os parâmetros usados
                external_acl_type ldap_group children=30
                %LOGIN /usr/local/libexec/squid/squid_ldap_group -v 3 -R -b "dc=srg,dc=net" -D "cn=Administrador,cn=Users,dc=srg,dc=net" -w
                "minha senha" -f "(&(objectclass=person) (sAMAccountName=%v) (memberof=cn=%a,ou=g_internet,dc=srg,dc=net))" -h 192.168.1.202 -p 389

                @ValterTI11,

                Antes de qualquer coisa, grato pelos elogios…
                No entanto, o artigo foi escrito pelo @ricardodru. Eu apenas o publiquei no meu blog.

                Em relação a sua dúvida, veja que a linha "external_acl_type ldap_group" é inteira, ou seja, deve ser escrito tudo na mesma linha "external_acl_type ldap_group children=30 %LOGIN /usr/local/libexec/squid/squid_ldap_group..."

                Uma pequena correção: O PFSense é baseado no FreeBSD, não no Linux (embora ambos sejam softwares livres, são sistemas operacionais bem diferentes). ;-)

                Abraços!
                Jack

                1 Reply Last reply Reply Quote 0
                • R
                  ricardodru
                  last edited by

                  Valter
                  Vou tentar ajuda-lo a resolver isso
                  O que esta acontecendo, é que o squid nao consegue identificar o grupo em que o usuário esta cadastrado.

                  No trecho abaixo, descrito no seu squid.inc, ficou meio confuso.

                  #Vincula as ACLs com base nos grupos do AD
                  acl gprodutividade external ldap_group g_produtividade
                  acl gtotal              external ldap_group g_total       
                  acl gbloqueados    external ldap_group g_bloqueados

                  Por exemplo, no AD, qual o nome do grupo "gprodutividade" ?
                  No AD, este grupo chama-se gprodutividade, ou g_produtividade ?
                  Acho que vc confundiu ai.
                  Veja no meu tutorial, a linha abaixo:
                  acl ldapInternet-TI external ldap_group Internet-TI

                  Eu defini apenas como nome da ACL "ldapInternet-TI", ja no AD, este grupo esta definido como "Internet-TI".
                  A ordem é essa:

                  acl "nomedaACL" external ldap_group "grupo cadastrdo no AD"

                  OBS: Utilizei as aspas "" apenas para referencia, pois na linha de configuração, estas aspas nao devem ser inseridas.
                  Em nome da ACL, vc define qualquer nome, em grupo cadastrado no AD, vc deve inserir o nome correto que esta cadastrado no AD.
                  Lembrando, em ""nome da ACL", deverá colocar um nome diferente do nome do grupo do AD.
                  Faça os testes ai e poste o resultado.

                  1 Reply Last reply Reply Quote 0
                  • V
                    valtecirgmail.com
                    last edited by

                    Olá RicardoDru,

                    É o seguinte:
                    Grupos de Internet no AD: g_produtividade, g_total, g_bloqueados
                    e as ACLs gprodutividade, gtotal, gbloqueados

                    Então escrevi acho certo mesmo. Ok?

                    acl gprodutividade external ldap_group g_produtividade
                    acl gtotal             external ldap_group g_total       
                    acl gbloqueados    external ldap_group g_bloqueados

                    @ricardodru:

                    Valter
                    Vou tentar ajuda-lo a resolver isso
                    O que esta acontecendo, é que o squid nao consegue identificar o grupo em que o usuário esta cadastrado.

                    No trecho abaixo, descrito no seu squid.inc, ficou meio confuso.

                    #Vincula as ACLs com base nos grupos do AD
                    acl gprodutividade external ldap_group g_produtividade
                    acl gtotal             external ldap_group g_total       
                    acl gbloqueados    external ldap_group g_bloqueados

                    Por exemplo, no AD, qual o nome do grupo "gprodutividade" ?
                    No AD, este grupo chama-se gprodutividade, ou g_produtividade ?
                    Acho que vc confundiu ai.
                    Veja no meu tutorial, a linha abaixo:
                    acl ldapInternet-TI external ldap_group Internet-TI

                    Eu defini apenas como nome da ACL "ldapInternet-TI", ja no AD, este grupo esta definido como "Internet-TI".
                    A ordem é essa:

                    acl "nomedaACL" external ldap_group "grupo cadastrdo no AD"

                    OBS: Utilizei as aspas "" apenas para referencia, pois na linha de configuração, estas aspas nao devem ser inseridas.
                    Em nome da ACL, vc define qualquer nome, em grupo cadastrado no AD, vc deve inserir o nome correto que esta cadastrado no AD.
                    Lembrando, em ""nome da ACL", deverá colocar um nome diferente do nome do grupo do AD.
                    Faça os testes ai e poste o resultado.

                    1 Reply Last reply Reply Quote 0
                    • R
                      ricardodru
                      last edited by

                      Ok Valter,
                      Esta certo do jeito que vc fez.
                      Poste a imagem da guia Auth Settings do Squid, e tambem o trecho do squid.inc onde vc personaliza as configurações.

                      Nas linhas de configuração personalizadas, bem como na guia Auth Settings do squid, vc está usando qual usuário para pesquisar no AD ?
                      Se vc leu o meu tutorial, veja que fiz testes na maquina fisica, e tambem em VMs.
                      Na VM, utilizei um usuario comum chamado squid, ja na maquina fisica, isto nao funcionou, tive que utilizar o Administrator.
                      Faça os testes e poste o resultado.

                      1 Reply Last reply Reply Quote 0
                      • V
                        valtecirgmail.com
                        last edited by

                        Fala Ricardo,

                        É o seguinte… seu eu escrever diretor no squid.conf, deixo a guia auth Settings em branco e reiniciar o serviço... Tudo funciona.
                        Depois tento colar no squid.inc e depois reinicio o servidor aí ele não escreve no squid.conf.

                        O que gostaria mesmo era escrever direto no squid.conf e se ele reiniciar um script meu vai lá e copia o meu squid.conf,, mas vai ficar um gambiarra do inferno.... Ou tem um jeito de anular o squid.inc?

                        Esse negócio tá ficando cada vez mais complicado, mas estou aprendendo um bocado... hehehe

                        Mas se
                        @ricardodru:

                        Ok Valter,
                        Esta certo do jeito que vc fez.
                        Poste a imagem da guia Auth Settings do Squid, e tambem o trecho do squid.inc onde vc personaliza as configurações.

                        Nas linhas de configuração personalizadas, bem como na guia Auth Settings do squid, vc está usando qual usuário para pesquisar no AD ?
                        Se vc leu o meu tutorial, veja que fiz testes na maquina fisica, e tambem em VMs.
                        Na VM, utilizei um usuario comum chamado squid, ja na maquina fisica, isto nao funcionou, tive que utilizar o Administrator.
                        Faça os testes e poste o resultado.

                        1 Reply Last reply Reply Quote 0
                        • R
                          ricardodru
                          last edited by

                          Valter, conseguiu resolver o problema?
                          Acho estranho vc alterar o squid.inc, reiniciar o serviço, e o squid.conf nao ser reescrito.
                          É padrão do pfsense (squid.inc) reescrever o squid.conf, sempre que o serviço ou o sistema for reiniciado. A nao ser que vc altere o squid.conf, faça uma copia, e um script se encarrega de repor o squid.conf original quando o sistema for reiniciado.
                          Quando vc reinicia o serviço, vc faz isto via ssh ?
                          Ao invez de reiniciar, ja tentou apenas salvar (clicando no botão), em uma das guias do proxy server ? Isto pode ser feito a guia Access Control.
                          Qual a versão do pfsense que vc esta usando ?

                          1 Reply Last reply Reply Quote 0
                          • V
                            valtecirgmail.com
                            last edited by

                            Oi Ricardo,

                            Agora ficou bom. Coloquei em custom option e deu certo. Eu dei mole com o ";" entre linhas, mas agora foi. (Veja abaixo observe o ";" no final de cada linha).

                            Porém deixei a aba Auth Setting em branco, o parâmetro http_access allow localnet estava aparecendo, então coloquei http_access deny localnet no início do meu código e deu certo. Outro detalhe é que tive que desmarcar a opção Allow users on interface. Testei reiniciando o serviço, depois reiciando o server e ficou 10. Tudo funcionado belezinha.

                            Creio o problema do squid.inc era várias abas do navegador aberta, lá para as 3 da madruga, e mexendo em códigos do squid… lendo email, pfds e vendo HBO, aí nada vai dar certo mesmo...
                            Fui dormir, e depois com calma e com a ajuda do Leandro Bandeira on-line, foi show, tudo 100%.

                            O mais fantástico do open source não é o produto em si, mas a colaboração voluntária dos seus usuários. Eita falei bonito!!!

                            Mais uma vez muito obrigado mesmo...

                            Um forte abraço. Valter


                            access deny localhost;
                            auth_param basic program /usr/local/libexec/squid/squid_ldap_auth -v 3 -R -b dc=srg,dc=net -D cn=Administrador,cn=Users,dc=srg,dc=net -w MinhaSenha -f "sAMAccountName=%s" -u uid -P 192.168.1.202;

                            auth_param basic children 5;
                            auth_param basic realm INTERNET CORPORATIVA;
                            auth_param basic credentialsttl 60 minutes;
                            acl password proxy_auth REQUIRED;

                            external_acl_type ldap_group %LOGIN /usr/local/libexec/squid/squid_ldap_group -R -b "dc=srg,dc=net" -D "cn=Administrador,cn=Users,dc=srg,dc=net" -w "MinhaSenha" -f "(&(&(objectClass=person)(sAMAccountName=%u))(memberOf=%g))" -h 192.168.1.202;

                            acl gprodutividade external ldap_group CN=g_prod,OU=u_internet,DC=srg,DC=net;

                            acl restrito dstdom_regex -i "/var/squid/acl/produtividade.acl";

                            http_access allow gprodutividade restrito;

                            acl gtotal external ldap_group CN=g_total,OU=u_internet,DC=srg,DC=net;

                            http_access allow gtotal;

                            http_access deny all;


                            @ricardodru:

                            Valter, conseguiu resolver o problema?
                            Acho estranho vc alterar o squid.inc, reiniciar o serviço, e o squid.conf nao ser reescrito.
                            É padrão do pfsense (squid.inc) reescrever o squid.conf, sempre que o serviço ou o sistema for reiniciado. A nao ser que vc altere o squid.conf, faça uma copia, e um script se encarrega de repor o squid.conf original quando o sistema for reiniciado.
                            Quando vc reinicia o serviço, vc faz isto via ssh ?
                            Ao invez de reiniciar, ja tentou apenas salvar (clicando no botão), em uma das guias do proxy server ? Isto pode ser feito a guia Access Control.
                            Qual a versão do pfsense que vc esta usando ?

                            1 Reply Last reply Reply Quote 0
                            • R
                              ricardogarcia
                              last edited by

                              Boa noite, pessoal sou novo aqui,
                              Tenho pfsense 2.0 já atualizado, squid, lightsquid e squidGuard
                              A primeira duvida é fazer a autenticação por usuário no AD.  Até ja consegui mas só com usuarios da OU Users
                              Porem, tenho uma OU com o nome ( funcionários ) com 5 usuarios, quando eu faço a alteração para enxergar os 5 usuarios….ex:(cn=squid,cn=FUNCIONARIOS,dc=dominio,dc=com,dc=br).  ele simplesmente não reconhece.

                              A segunda duvida seria criar os grupos de liberação dentro de uma OU..
                              OU - funcionarios   e  dentro desta grupo liberado e grupo bloqueado. nao entendi a parte de colar os codigos dentro do squid.inc

                              Pessoal desde já agradeço a atenção de todos.

                              Att

                              1 Reply Last reply Reply Quote 0
                              • R
                                ricardodru
                                last edited by

                                @ricardogarcia:

                                Boa noite, pessoal sou novo aqui,
                                Tenho pfsense 2.0 já atualizado, squid, lightsquid e squidGuard
                                A primeira duvida é fazer a autenticação por usuário no AD.  Até ja consegui mas só com usuarios da OU Users
                                Porem, tenho uma OU com o nome ( funcionários ) com 5 usuarios, quando eu faço a alteração para enxergar os 5 usuarios….ex:(cn=squid,cn=FUNCIONARIOS,dc=dominio,dc=com,dc=br).  ele simplesmente não reconhece.

                                A segunda duvida seria criar os grupos de liberação dentro de uma OU..
                                OU - funcionarios   e  dentro desta grupo liberado e grupo bloqueado. nao entendi a parte de colar os codigos dentro do squid.inc

                                Pessoal desde já agradeço a atenção de todos.

                                Att

                                Ricardo

                                Primeiramente, sobre as duvidas no arquivo squid.inc, leia o tutorial que escrevi, lá vc entenderá o porque alterar o arquivo squid.inc.
                                O tutorial está em PDF, veja nos posts anteriores o local de acesso ao arquivo.

                                Para trabalhar com os grupos, crie uma OU chamada Internet. Dentro desta OU, vc cria os grupos (e relacione os usuarios aos grupos), e depois relacione estes grupos no squid.inc.

                                Veja o exemplo:

                                external_acl_type ldap_group children=30 %LOGIN /usr/local/libexec/squid/squid_ldap_group -v 3  -R -b "dc=dominio,dc=com,dc=br" -D "cn=squid,cn=Users,dc=dominio,dc=com,dc=br" -w "SENHA" -f "(&(objectclass=person) (sAMAccountName=%v) (memberof=cn=%a,ou=Internet,dc=dominio,dc=com,dc=br))" -h  10.22.5.10 -p 389

                                Neste trecho:  memberof=cn=%a,ou=Internet,dc=dominio,dc=com,dc=br
                                Em ou=Internet, é a OU que contem os grupos a serem autenticados.

                                Depois de criar os grupos e relacionar cada usuario com os grupos, é só seguir o tutorial que eu fiz, indicando os grupos de acesso no squid.inc

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