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.
    • L
      lgcosta
      last edited by

      @LFCavalcanti:

      Eu reparei que há o Samba 3 e o 4 no diretório.

      Basicamente, qual a diferença entre os pacotes que você desenvolveu, não no samba em si, na integração com o PFSense e com o Squid.

      samba4 = com as novas versões 2.1.x, algumas libs necessárias para o funcionamento do samba4 quebraram, eu tenho um esquema dele rodando em jail, etc… mas é versão alpha, gama, beta, xyz.... nem pensar ainda em colocar algo publico pq não esta tão funcional.

      samba3 = Mais simples, menos lib e mais funcional para atuar como membro do AD, 100% funcional.

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

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

        @Luiz:

        @LFCavalcanti:

        Eu reparei que há o Samba 3 e o 4 no diretório.

        Basicamente, qual a diferença entre os pacotes que você desenvolveu, não no samba em si, na integração com o PFSense e com o Squid.

        samba4 = com as novas versões 2.1.x, algumas libs necessárias para o funcionamento do samba4 quebraram, eu tenho um esquema dele rodando em jail, etc… mas é versão alpha, gama, beta, xyz.... nem pensar ainda em colocar algo publico pq não esta tão funcional.

        samba3 = Mais simples, menos lib e mais funcional para atuar como membro do AD, 100% funcional.

        E presumo que isso não tenha subido pro repositório por conta dessa turbulência toda envolvendo a ESF. Andei lendo os tópicos hoje e a coisa me parece feia entre a ESF e os colaboradores da comunidade.

        –

        Luiz Fernando Cavalcanti
        IT Manager
        Arriviera Technology Group

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

          ok!
          Help!

          To ficando louco com isso aqui.

          Não consigo fazer funcionar no PFSense 2.0.3 e eu preciso!

          O PFSense 2.0.3 não vêm com o PBI Manager. A versão do FreeBSD é a 8.1, instalei o PBI Manager da 8.3, rodo o script pra versão samba 3, roda a instalação numa boa, mas não sobre Winbind.

          Tentei instalando manualmente o Samba 3.6.16_1 que está rodando no outro servidor, não consigo subir o serviço, dando erro de dependencia, a biblioteca libz.so.6. Já criei link para o libz.so, ai dá erro com a versão ZLIB 1.2.4.0.

          Alguém poderia dizer como raios colocar esse Samba 3 pra rodar no PFSense 2.0.3?

          –

          Luiz Fernando Cavalcanti
          IT Manager
          Arriviera Technology Group

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

            Consegui…

            Tive que instalar o PBI Manager do FreeBSD 8.3 no PFSense 2.0.3(FreeBSD 8.1).

            Depois rodei o Script do Luiz Gustavo para o Samba 3.

            Instalei o Samba 3.6.16_1 usando o "pkg_add -r".

            Removi o Samba 3.6.16_1.

            Reinstalei o Squid para limpar o Patch do Samba 3 do Luiz Gustavo.

            Instalei usando o Script do Luiz Gustavo novamente.

            –

            Luiz Fernando Cavalcanti
            IT Manager
            Arriviera Technology Group

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

              Bom dia eu posso seguir esse tutorial aonde ?

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

                @aluizlinspereira:

                Bom dia eu posso seguir esse tutorial aonde ?

                Olá!

                Qual tutorial você se refere?

                –

                Luiz Fernando Cavalcanti
                IT Manager
                Arriviera Technology Group

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

                  Galera blz?

                  Como está o Status desse projeto? Precisando de alguma auxilio? Abraços…

                  Tenho conhecimento em Linux, e estou a 1 ano trabalhando com PFSense, o que eu puder ajudar estou a disposição.

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

                    Ae Galerinha,

                    Script testado em ambiente Virtual de Testes…

                    Como  os sources foram para o mundolinux... alterei:

                    --- inicio do script -----

                    #!/bin/sh

                    arch="uname -p"

                    fetch -o /tmp -q http://www.mundounix.com.br/~gugabsd/pfsense/pbi-2_1/samba-3.6.18-${arch}.pbi
                    pbi_add --no-checksig /tmp/samba-3.6.18-${arch}.pbi
                    rm -rf /tmp/samba-3.6.18-${arch}.pbi

                    fetch -o /usr/local/pkg -q http://www.mundounix.com.br/~gugabsd/pfsense/samba3/samba3.inc
                    fetch -o /usr/local/pkg -q http://www.mundounix.com.br/~gugabsd/pfsense/samba3/samba3.xml
                    fetch -o /usr/local/www -q http://www.mundounix.com.br/~gugabsd/pfsense/samba3/fbegin.inc
                    fetch -o /usr/local/www/javascript -q http://www.mundounix.com.br/~gugabsd/pfsense/samba3/jquery-1.9.1.min.js

                    fetch -o - -q http://www.mundounix.com.br/~gugabsd/pfsense/samba3/samba-libs-${arch}.tar.gz | tar -C / -zxpf -

                    echo 'samba_enable="YES"' > /etc/rc.conf.local
                    echo 'winbindd_enable="YES"' >> /etc/rc.conf.local

                    cd /usr/local/etc/rc.d/
                    ln -s samba samba.sh

                    fetch -o /tmp -q http://www.mundounix.com.br/~gugabsd/pfsense/samba3/squid_with_ntlm.patch
                    cd /usr/local/pkg
                    patch -p0 < /tmp/squid_with_ntlm.patch

                    mkdir -p /var/db/samba/winbindd_privileged
                    chown -R :proxy /var/db/samba/winbindd_privileged
                    chmod -R 0750 /var/db/samba/winbindd_privileged

                    ln -s /usr/pbi/samba-${arch}/etc/smb.conf /usr/local/etc/smb.conf

                    --- fim do script ---

                    Configurei na aba do Proxy Server, mas ficava pedindo autentição ainda no navegador do Cliente.
                    Entrei no Srv AD, e vi que ainda o fw nao tinha sido inserindo no dominio...

                    Executei os processos na mão:

                    kinit usuario_admin
                    net ads join -U usuario_admin

                    Tudo funcional.

                    Vi que no samba3.inc, tem a função net ads que rodei na mão, mas se não estou enganado, para ingressar no dominio, não precisa pegar um ticket primeiro (kinit)?

                    Obrigado.

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

                      @s3ri4l:

                      Configurei na aba do Proxy Server, mas ficava pedindo autentição ainda no navegador do Cliente.
                      Entrei no Srv AD, e vi que ainda o fw nao tinha sido inserindo no dominio…

                      Executei os processos na mão:

                      kinit usuario_admin
                      net ads join -U usuario_admin

                      Tudo funcional.

                      Vi que no samba3.inc, tem a função net ads que rodei na mão, mas se não estou enganado, para ingressar no dominio, não precisa pegar um ticket primeiro (kinit)?

                      Obrigado.

                      Essa função é executada quando você acessa, pela WebGUI em Services > Samba(AD), ao salvar ele faz a integração ao dominio.

                      –

                      Luiz Fernando Cavalcanti
                      IT Manager
                      Arriviera Technology Group

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

                        Tive que fazer manual pq nao funcionou.
                        Mas agora tá ok funcionando… (apos fazer na mao). Versao 3 do samba.

                        Vou montar o ambiente com a 4.

                        Abracos.

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