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

    Pfsense + Squid + NTLM (Autenticação AD transparente)

    Scheduled Pinned Locked Moved Portuguese
    108 Posts 41 Posters 64.7k 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.
    • D
      digaovaa
      last edited by

      @marcelloc:

      @digaovaa:

      máquinas fora do domínio (visitantes) não funciona a autenticação. Tenho no meu squid.conf as linhas abaixo:

      Já olhou o cache.log para ver o que está acontecendo de errado?

      Obrigado pelo retorno de todos. Vou verificar isso..

      Mas continuando na minha lógica de raciocínio deveria funcionar, pelo menos no squid com iptables no CentOS funcionava com aqueles parâmetros que informei no post… Gostaria disso funcionando também em função dos dispositivos móveis da diretoria (Smartphones, Tablets, etc)

      1 Reply Last reply Reply Quote 0
      • D
        digaovaa
        last edited by

        Olhando o /var/squid/log/cache.log não identifiquei nenhuma anormalidade.

        O que acho estranho é que no micro fora do domínio, aparecem 2 telas diferentes de login. Anexei elas abaixo. A primeira, que tem usuário preenchido, aparece "moz-proxy". Se eu cancelar o login dela, abre a outra, escrito Proxy-user, que é a mensagem que está definida no meu squid.

        tem como eu usar NTLM e autenticação local?

        por exemplo, fazer a autenticação ntlm normal e caso não esteja logado no domínio, peça usuário local:

        Conteúdo do Squid.inc

        case 'ntlm':
                                        if ($settings['ntlmssp'] == 'on') {
                                                $domain_samba4 = (($settings['ntlm_domain'] <> "") ? "–domain={$settings['ntlm_domain']} " : "");
                                                $ntlm_proc = (isset($settings['ntlm_proc']) ? "{$settings['ntlm_proc']}" : "20");
                                                $conf .= "auth_param ntlm program /usr/local/bin/ntlm_auth " . $domain_samba4 . "--helper-protocol=squid-2.5-ntlmssp\n";
                                                $conf .= "auth_param ntlm children {$ntlm_proc}\n";    
                                                $conf .= "auth_param ntlm keep_alive on\n";
                                        }
                                        $conf .= 'auth_param basic program '.SQUID_LOCALBASE.'/libexec/squid/basic_ncsa_auth ' . SQUID_PASSWD . "\n";

        break;

        ![Snap 16.22.25.png](/public/imported_attachments/1/Snap 16.22.25.png)
        ![Snap 16.25.18.png](/public/imported_attachments/1/Snap 16.25.18.png)
        ![Snap 16.22.25.png_thumb](/public/imported_attachments/1/Snap 16.22.25.png_thumb)
        ![Snap 16.25.18.png_thumb](/public/imported_attachments/1/Snap 16.25.18.png_thumb)

        1 Reply Last reply Reply Quote 0
        • U
          ubezerra
          last edited by

          @digaovaa:

          Olhando o /var/squid/log/cache.log não identifiquei nenhuma anormalidade.

          O que acho estranho é que no micro fora do domínio, aparecem 2 telas diferentes de login. Anexei elas abaixo. A primeira, que tem usuário preenchido, aparece "moz-proxy". Se eu cancelar o login dela, abre a outra, escrito Proxy-user, que é a mensagem que está definida no meu squid.

          tem como eu usar NTLM e autenticação local?

          por exemplo, fazer a autenticação ntlm normal e caso não esteja logado no domínio, peça usuário local:

          Conteúdo do Squid.inc

          case 'ntlm':
                                          if ($settings['ntlmssp'] == 'on') {
                                                  $domain_samba4 = (($settings['ntlm_domain'] <> "") ? "–domain={$settings['ntlm_domain']} " : "");
                                                  $ntlm_proc = (isset($settings['ntlm_proc']) ? "{$settings['ntlm_proc']}" : "20");
                                                  $conf .= "auth_param ntlm program /usr/local/bin/ntlm_auth " . $domain_samba4 . "--helper-protocol=squid-2.5-ntlmssp\n";
                                                  $conf .= "auth_param ntlm children {$ntlm_proc}\n";    
                                                  $conf .= "auth_param ntlm keep_alive on\n";
                                          }
                                          $conf .= 'auth_param basic program '.SQUID_LOCALBASE.'/libexec/squid/basic_ncsa_auth ' . SQUID_PASSWD . "\n";

          break;

          Assim como o amigo acima, estou com o mesmo problema. Contudo, meu squidconf está como abaixo, na área de autenticação

          #Kerberos negotiate
          auth_param negotiate program /usr/local/libexec/squid/negotiate_wrapper_auth -d –ntlm /usr/local/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp --domain=DOMINIO.local --kerberos /usr/local/libexec/squid/negotiate_kerberos_auth -d -s HTTP/firewall@DOMINIO.LOCAL
          auth_param negotiate children 20
          auth_param negotiate keep_alive on

          #Via NTLM
          #Mantenha-o
          auth_param ntlm program /usr/local/bin/ntlm_auth --domain=DOMINIO.local --helper-protocol=squid-2.5-ntlmssp
          auth_param ntlm children 30

          Via LDAP

          auth_param basic program /usr/pbi/squid-amd64/libexec/squid/basic_ldap_auth -v 3 -b OU=Domain,DC=DOMINIO,DC=local -D cn=pfsense,cn=Users,dc=DOMINIO,dc=local -w XXX-f "sAMAccountName=%s" -u uid -P domainserver.DOMINIO.local:389
          auth_param basic children 20
          auth_param basic realm DOMINIO
          auth_param basic credentialsttl 5 minutes
          auth_param basic casesensitive off
          acl password proxy_auth REQUIRED

          Tenho alguns problemas aqui.

          Primeiro, que usando ntlm tenho o problema do amigo acima, principalmente estações fora do domínio
          Segundo, que com o kerberos, preciso fazer um reload do samba, pois do "nada" ele perde a autenticação. Vi que o kerberos usa um ticket e precisa ter um refresh para continuar autenticando

          Por ultimo, quando um pc fora do domínio entra, mesmo com um usuário e senha para visitantes, ele me pede 3 vezes no caso a autenticação, e não autentica

          1 Reply Last reply Reply Quote 0
          • A
            amaica
            last edited by

            Parabéns ideia maravilhosa

            1 Reply Last reply Reply Quote 0
            • V
              victorfmaraujo
              last edited by

              @ubezerra:

              Tenho alguns problemas aqui.

              Primeiro, que usando ntlm tenho o problema do amigo acima, principalmente estações fora do domínio
              Segundo, que com o kerberos, preciso fazer um reload do samba, pois do "nada" ele perde a autenticação. Vi que o kerberos usa um ticket e precisa ter um refresh para continuar autenticando

              Se eu não me engano, esse tempo é de 20 minutos.  Isso faz com que, por exemplo.  Um computador utilizado por duas pessoas, um de manhã e outro de tarde.  Se às 11:55 o cara acessa a internet (ele tendo um perfil de internet totalmente liberado) abra o navegador, a autenticação é realizada com sucesso.  E ele vai embora as 12:00 e faz logoff.  QUando o próximo usuário (Este com acesso totalmente bloqueado) fizer login e abrir o navegador, vai continuar com a sessão do antigo tendo 15 minutos de alegria rsrs.

              Se eu não me engano, este "ticket" que eu prefiro chamar de "Token", atrela o Usuário ao IP da máquina, fazendo com que a autenticação NTLM não seja a ideal em ambientes com servidores Thin Client.

              Por ultimo, quando um pc fora do domínio entra, mesmo com um usuário e senha para visitantes, ele me pede 3 vezes no caso a autenticação, e não autentica

              Esse comportamento creio ser normal.  Se você for ver nos logs de segurança do windows server, irá encontrar 3 logs relacionados a logon do mesmo usuário/computador.  Como a máquina está fora do domínio, ele pede 3 vezes.

              1 Reply Last reply Reply Quote 0
              • E
                eduardogd
                last edited by

                Segui o tutorial que encontre aqui: http://www.dev2infra.com/pfsense-squid-squidguard-autenticacao-transparente/

                mas estou com problemas, ocorre o erro abaixo ao tentar configurar o Samba (AD):

                "Fatal error: Call-time pass-by-reference has been removed; If you would like to pass argument by reference, modify the declaration of validate_form_samba3(). in /usr/local/www/pkg_edit.php(147) : eval()'d code on line 1"

                Estou usando o pfSense 2.2, squid 2.7.9 e squidguard devel 1.5_beta. Alguém sabe como resolver?

                1 Reply Last reply Reply Quote 0
                • I
                  igmotta
                  last edited by

                  Estou com o mesmo problema que nosso amigo acima, estou no ponto de remover o pfsense e refazer tudo, porém esse pfsense está em produção.

                  Além do erro acima que o amigo descreveu o meu está dando também o seguinte erro:

                  Fatal error: Call to undefined function curl_init() in /etc/inc/pfsense-utils.inc on line 1701

                  Segui o mesmo tutorial do site www.dev2infra.com/pfsense-squid-squidguard-autenticacao-transparente

                  1 Reply Last reply Reply Quote 0
                  • E
                    eduardogd
                    last edited by

                    Acho que o projeto nao foi adaptado pras novas versões…

                    1 Reply Last reply Reply Quote 0
                    • I
                      igmotta
                      last edited by

                      Refiz a configuração em um ambiente de teste e aparentou o mesmo erro.

                      Instalei o pfsense do zero, com squid e squidguard.

                      Tem alguém ai que tem uma solução?

                      Já vasculhei o fórum em busca de solução e nada até o momento.

                      1 Reply Last reply Reply Quote 0
                      • E
                        eduardogd
                        last edited by

                        @igmotta:

                        Refiz a configuração em um ambiente de teste e aparentou o mesmo erro.

                        Instalei o pfsense do zero, com squid e squidguard.

                        Tem alguém ai que tem uma solução?

                        Já vasculhei o fórum em busca de solução e nada até o momento.

                        Estou tentando com uma versão mais antiga, estou baixando a 2.1.5 pra testar, talvez funcione com ela.

                        1 Reply Last reply Reply Quote 0
                        • I
                          igmotta
                          last edited by

                          A questão é que a pessoa aqui quer com o pfsense mais atualizado.
                          Vou fazer mais alguns testes e se não der certo vou partir para outro caminho.
                          Se descobrir como resolver posto a solução aqui para todos.

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

                            Parabéns pela iniciativa!! Muito show de bola!!!!

                            1 Reply Last reply Reply Quote 0
                            • E
                              eduardogd
                              last edited by

                              Acho que a solução pode começar abrindo o codigo do patch e verificando o que ele faz efetivamente, assim teremos que adaptar a versão atual, mas claro, se o Luiz concordar, afinal ele é o pai da criança e pelo visto, o único que fez tal projeto…

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

                                Olá!

                                Bom vamos lá, vou tentar ajudar aqui.

                                Desenvolvimento do Samba para pfSense
                                Esse tópico tem sido muito polêmico, a posição da ESF a respeito é que o Samba supostamente traz muitos problemas de segurança para o pfSense. Na prática, o perigo está em usar o Samba como controlador de dominio, não como membro para autenticar os usuários. Muito debate correu, mas eles estão inflexiveis.
                                E chega a ser duro dizer, como a ESF mudou completamente a relação com os desenvolvedores de pacotes, muitos deixaram a comunidade.
                                O Luiz Gustavo por exemplo não atualizou mais a versão do Samba 3 e a versão do Samba 4 não foi concluida. Eu não culpo ele, também perdi parte do interesse aqui.
                                Apenas uma explicação de realidade, mas vamos lá.

                                Problemas conhecidos e recomendações:

                                • Sempre use o Samba3 com o Squid 2.7 e SquidGuard Stable, há muitos problemas com a versão mais nova do Squid, provavelmente pelo patch aplicado ao Squid na instalação.
                                • Realmente há o problema de TTL Token como já foi citado, por isso ajuste o intervalo de autenticação de acordo com a frequência que os computadores são usados por diferentes usuários, é a única solução para isso por enquanto.
                                • O serviço do Samba3 tem alguns problemas na versão 2.1.x do pfSense. Se não houver um controlador de domínio disponível ele simplesmente não tenta conectar novamente depois.
                                • Conteúdo Online do Office 2013 pode apresentar problemas de autenticação.

                                Tenho uma rede de convidados
                                Você pode entrar no inferno de telas de autenticação, por isso eu recomendo não usar o Squid para os convidados…
                                1 - Convidados por questão de segurança já deveriam ficar em uma subrede separada com regras de Firewall para controlar exatamente o que eles devem acessar da rede interna.
                                2 - Utilize o Captive portal ligado a fonte interna de autenticação(a do próprio PFSense ou adicione uma com o AD). Nisso contas de convidado ou até Vouchers.
                                3 - A subrede separada, mas sem proxy ou autenticação.

                                –

                                Luiz Fernando Cavalcanti
                                IT Manager
                                Arriviera Technology Group

                                1 Reply Last reply Reply Quote 0
                                • E
                                  eduardogd
                                  last edited by

                                  @LFCavalcanti:

                                  Olá!

                                  Bom vamos lá, vou tentar ajudar aqui.

                                  Desenvolvimento do Samba para pfSense
                                  Esse tópico tem sido muito polêmico, a posição da ESF a respeito é que o Samba supostamente traz muitos problemas de segurança para o pfSense. Na prática, o perigo está em usar o Samba como controlador de dominio, não como membro para autenticar os usuários. Muito debate correu, mas eles estão inflexiveis.
                                  E chega a ser duro dizer, como a ESF mudou completamente a relação com os desenvolvedores de pacotes, muitos deixaram a comunidade.
                                  O Luiz Gustavo por exemplo não atualizou mais a versão do Samba 3 e a versão do Samba 4 não foi concluida. Eu não culpo ele, também perdi parte do interesse aqui.
                                  Apenas uma explicação de realidade, mas vamos lá.

                                  Problemas conhecidos e recomendações:

                                  • Sempre use o Samba3 com o Squid 2.7 e SquidGuard Stable, há muitos problemas com a versão mais nova do Squid, provavelmente pelo patch aplicado ao Squid na instalação.
                                  • Realmente há o problema de TTL Token como já foi citado, por isso ajuste o intervalo de autenticação de acordo com a frequência que os computadores são usados por diferentes usuários, é a única solução para isso por enquanto.
                                  • O serviço do Samba3 tem alguns problemas na versão 2.1.x do pfSense. Se não houver um controlador de domínio disponível ele simplesmente não tenta conectar novamente depois.
                                  • Conteúdo Online do Office 2013 pode apresentar problemas de autenticação.

                                  Tenho uma rede de convidados
                                  Você pode entrar no inferno de telas de autenticação, por isso eu recomendo não usar o Squid para os convidados…
                                  1 - Convidados por questão de segurança já deveriam ficar em uma subrede separada com regras de Firewall para controlar exatamente o que eles devem acessar da rede interna.
                                  2 - Utilize o Captive portal ligado a fonte interna de autenticação(a do próprio PFSense ou adicione uma com o AD). Nisso contas de convidado ou até Vouchers.
                                  3 - A subrede separada, mas sem proxy ou autenticação.

                                  Obrigado pela resposta LFCavalcanti, qual sua recomendação no caso de uma rede com AD? Queria usar o Squid 2.7 + SquidGuard para autenticar por grupos do AD, mas acho que vou acabar criando algo independente do AD, o que acham?

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

                                    @eduardogd:

                                    Obrigado pela resposta LFCavalcanti, qual sua recomendação no caso de uma rede com AD? Queria usar o Squid 2.7 + SquidGuard para autenticar por grupos do AD, mas acho que vou acabar criando algo independente do AD, o que acham?

                                    Eu tenho 3 clientes rodando nesse cenário atualmente, ambos com ACL baseada em grupos no SquidGuard.

                                    Você só precisa usar queries para buscar os grupos no AD, como essa:

                                    
                                    ldapusersearch ldap://192.168.0.1:3268/DC=dominio,DC=local?sAMAccountName?sub?(&(sAMAccountName=%s)(memberOf=CN=INTERNET%2cOU=Grupos%2cDC=dominio%2cDC=local))
                                    
                                    

                                    No código acima, o grupo do Squid irá incluir usuários do Grupo "INTERNET" que fica na OU "Grupos" no controlador do dominio "dominio.local".

                                    –

                                    Luiz Fernando Cavalcanti
                                    IT Manager
                                    Arriviera Technology Group

                                    1 Reply Last reply Reply Quote 0
                                    • E
                                      eduardogd
                                      last edited by

                                      @LFCavalcanti:

                                      @eduardogd:

                                      Obrigado pela resposta LFCavalcanti, qual sua recomendação no caso de uma rede com AD? Queria usar o Squid 2.7 + SquidGuard para autenticar por grupos do AD, mas acho que vou acabar criando algo independente do AD, o que acham?

                                      Eu tenho 3 clientes rodando nesse cenário atualmente, ambos com ACL baseada em grupos no SquidGuard.

                                      Você só precisa usar queries para buscar os grupos no AD, como essa:

                                      
                                      ldapusersearch ldap://192.168.0.1:3268/DC=dominio,DC=local?sAMAccountName?sub?(&(sAMAccountName=%s)(memberOf=CN=INTERNET%2cOU=Grupos%2cDC=dominio%2cDC=local))
                                      
                                      

                                      No código acima, o grupo do Squid irá incluir usuários do Grupo "INTERNET" que fica na OU "Grupos" no controlador do dominio "dominio.local".

                                      Me diga uma coisa, nesses seus clientes você possui quais pacotes? Squid, SquidGuard apenas? Não fez o patch do samba? É isso? Se tiver um tempo pra explicar pra gente como é o cenário e a implantação ficaríamos agradecidos, pelo menos para nos dar um norte…

                                      1 Reply Last reply Reply Quote 0
                                      • V
                                        victorfmaraujo
                                        last edited by

                                        @eduardogd:

                                        @LFCavalcanti:

                                        @eduardogd:

                                        Obrigado pela resposta LFCavalcanti, qual sua recomendação no caso de uma rede com AD? Queria usar o Squid 2.7 + SquidGuard para autenticar por grupos do AD, mas acho que vou acabar criando algo independente do AD, o que acham?

                                        Eu tenho 3 clientes rodando nesse cenário atualmente, ambos com ACL baseada em grupos no SquidGuard.

                                        Você só precisa usar queries para buscar os grupos no AD, como essa:

                                        
                                        ldapusersearch ldap://192.168.0.1:3268/DC=dominio,DC=local?sAMAccountName?sub?(&(sAMAccountName=%s)(memberOf=CN=INTERNET%2cOU=Grupos%2cDC=dominio%2cDC=local))
                                        
                                        

                                        No código acima, o grupo do Squid irá incluir usuários do Grupo "INTERNET" que fica na OU "Grupos" no controlador do dominio "dominio.local".

                                        Me diga uma coisa, nesses seus clientes você possui quais pacotes? Squid, SquidGuard apenas? Não fez o patch do samba? É isso? Se tiver um tempo pra explicar pra gente como é o cenário e a implantação ficaríamos agradecidos, pelo menos para nos dar um norte…

                                        Com certeza fez, já que para funcionar o ntlm precisa do samba+kerberos.

                                        1 Reply Last reply Reply Quote 0
                                        • S
                                          santello
                                          last edited by

                                          o tutorial na primeira página do tópico ainda funciona NA VERSÃO TESTADA. O pessoal tem que se atentar a isto.

                                          Na 2.2 muda o pacote samba, o processo é outro.

                                          1 Reply Last reply Reply Quote 0
                                          • M
                                            marcosmassa
                                            last edited by

                                            Bom dia a todos,
                                            realmente na versão 2.2.X e superiores não esta funcionando.

                                            Também testei em versões x64 ( 2.1.5 ) e não foi ….

                                            Uma informação para futuros problemas, sempre lembrar de verificar o nome do grupode ad ( wbinfo - g > grupo ), por vezes mesmo configurando o nome todo em maiusculas, o squid busca e traz o nome em minusculas ....
                                            logo, a conf de grupo do squidguard deve estar com o nome do grupo conforme for exibido no comando acima.

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