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.
    • R
      rolsite
      last edited by

      Funcionou com o pacote squid3-dev 3.3.10 pkg 2.2.6 no pfSense 2.1.4, mas tive que fazer os seguintes passos:

      1 - Editar o arquivo samba3.inc e no bloco [libdefaults] acrescentar a linha

      allow_weak_crypto = true
      

      2 - Rodar  manualmente os comandos

      kinit usuario_admin
      net ads join -U usuario_admin
      

      3 - Modificar o arquivo squid.inc e squid_auth.xml com as alterações do arquivo squid_with_ntlm.patch manualmente

      squid.inc_original.txt
      squid.inc_corrigido.txt
      squid_auth.xml_original.txt
      squid_auth.xml_corrigido.txt

      1 Reply Last reply Reply Quote 0
      • J
        jadertc
        last edited by

        Bom dia a todos, sei que deve existir um tutorial de como fazer essa autenticação transparente do openldap com o samba e squid no pfsense… porém não achei nada na internet, só achei com o Active Directory do Windows, já intalei a ultima versão do pfsense e o samba nele mesmo, e tenho tudo rodando certinho, porém pede naquele popup o usuário e senha para logar...

        Muito obrigado

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

          Bom dia a todos! Primeiramente, parabéns e obrigado por tudo que fazem pelo software livre.

          Estou com o pfSense 2.1.5 com autenticação NTLM funcionando perfeitamente. Autenticação por grupos, squidguard, tudo como eu queria, exceto um porém: máquinas fora do domínio (visitantes) não funciona a autenticação. Tenho no meu squid.conf as linhas abaixo:

          #Para autenticação NTLM
          auth_param ntlm program /usr/local/bin/ntlm_auth –domain=TBM.COM.BR --helper-protocol=squid-2.5-ntlmssp
          auth_param ntlm children 200
          auth_param ntlm keep_alive on

          #Para autenticação fora do dominio
          auth_param basic program /usr/local/bin/ntlm_auth --domain=TBM.COM.BR --helper-protocol=squid-2.5-basic
          auth_param basic children 200
          auth_param basic realm Proxy User
          auth_param basic credentialsttl 5 minutes
          auth_param basic casesensitive off

          Obs: Uso squid3-dev e squidguard-squid3.

          1 Reply Last reply Reply Quote 0
          • T
            tomaswaldow
            last edited by

            @digaovaa:

            exceto um porém: máquinas fora do domínio (visitantes) não funciona a autenticação.

            Neste caso é melhor para visitantes ter uma rede separada, mais segurança.

            Tomas @ 2W Consultoria

            1 Reply Last reply Reply Quote 0
            • G
              grazzianos
              last edited by

              Tomas, eu entendo a necessidade do digaovaa. Eu estou na mesma situação.

              Temos os usuários cadastrados no AD e também controlamos o acesso de visitantes à internet através do Proxy (para que não hajam acessos indevidos e para que possamos monitorar o que estão acessando).

              Claro que a maneira mais "prática" e mais "segura", seria isolar fisicamente as redes e pronto. Porém entramos em outra seara, que é a processual; acaso, por exemplo, alguém acesse "livremente" por um link separado de internet, conteúdos ilegais (pirataria, pornografia, etc.) dentro da empresa, e a empresa seja auditada em escala civil, os links de internet estarão registrados em nome da empresa e ela será responsabilizada por isso.

              Portanto, mais seguro para ambas as partes, seria controlar o que os visitantes (fora do domínio) acessam.

              Existe algum procedimento que seja necessário realizar nessa configuração? Algum ponto falho?

              1 Reply Last reply Reply Quote 0
              • T
                tomaswaldow
                last edited by

                Mas o que eu quis dizer era fazer por exemplo uma VLAN para a rede visitante e nela colocar o proxy para controlar o conteúdo.
                Não pensei em deixar a rede visitante sem controle, mas deixar isolada da rede interna por questões de segurança e fora da autenticação pelo AD.
                Você poderia colocar um Captive Portal nessa rede visitante e cadastrar os usuários ou gerar Voucher para acesso temporário registrado.

                Tomas @ 2W Consultoria

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

                  @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?

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

                  Help a community developer! ;D

                  1 Reply Last reply Reply Quote 0
                  • 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
                                            • First post
                                              Last post
                                            Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.