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.
    • I
      Ivanbarbosab
      last edited by

      Quando uso o comando net ads join -U administrador dá a mensagem de erro. net: Command found o que faço para corrigir.
      Obrigado.

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

        @Ivanbarbosab:

        Quando uso o comando net ads join -U administrador dá a mensagem de erro. net: Command found o que faço para corrigir.
        Obrigado.

        Provavelmente o teu samba nao veio com o ads compilado (aconteceu comigo). Veja nos logs se e isso mesmo.

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

          ja tem o pacote pronto para 2.4.2 ou 2.3.5?

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

            Alguma previsão para a versão 2.4.4 ?

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

              @julianoxt tem sim... até a versão 2.4.3 segue o link com o passo a passo.
              https://pf2ad.mundounix.com.br/pt/index.html

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

                com a atualização parou de funcionar o squid e tive que reinstalar, porém sem autenticação transparente. Nem instalando a versão 2.4.3 não rola a instalação do squid.
                To preso na 2.4.4 sem autenticação no samba4 (NTLM)
                existe alguma outra ofrma de por pra funcionar com NTLM (autenticação transparente)?

                1 Reply Last reply Reply Quote 0
                • M
                  mcury Rebel Alliance
                  last edited by mcury

                  Não seria melhor utilizar autenticação SSO por Kerberos? Já que não precisa utilizar nenhum pacote extra?

                  SETSPN:

                  Criar usuário svc_quid no AD

                  C:\WINDOWS\system32>setspn -S HTTP/pfsense.local.lan svc_squid
                  Verificando o domínio DC=local,DC=lan

                  Depois, através do samba-tools, ou através diretamente do AD, através do ktpass

                  sudo samba-tool domain exportkeytab mykeytab.keytab --principal=HTTP/pfsense.local.lan

                  Squid:

                  acl whitelist dstdomain .local.lan
                  auth_param negotiate program /usr/local/libexec/squid/negotiate_kerberos_auth -k /usr/local/etc/squid/mykeytab.keytab
                  auth_param negotiate children 100
                  auth_param negotiate keep_alive on
                  http_access allow whitelist
                  acl auth proxy_auth REQUIRED
                  http_access deny !auth
                  http_access allow auth

                  Squidguard

                  ldapusersearch ldap://raspsrv.local.lan:3268/dc=local,dc=lan?userPrincipalName?sub?(&(memberof=CN=internet_group%2cCN=Users%2cDC=local%2cDC=lan)(userPrincipalName=%s))

                  Depois de configurado, loguem novamente no AD, e chamem o proxy pelo nome, ele deve associar ao ticket kerberos.
                  Digitem klist no CMD do DOS para ver se ele foi adicionado corretamente.

                  Maiores detalhes:

                  https://journeyofthegeek.com/2017/12/30/pfsense-squid-kerberos/

                  dead on arrival, nowhere to be found.

                  F 1 Reply Last reply Reply Quote 1
                  • F
                    fabiogleao @mcury
                    last edited by

                    @mcury
                    Meu DC é samba4 vou pesquisar se encontro um guia pra ele, vlw pela dica

                    1 Reply Last reply Reply Quote 0
                    • M
                      mcury Rebel Alliance
                      last edited by

                      Olá Fabio,

                      Esse tutorial que pus ali em cima, funciona para samba 4.
                      Funciona em AD de servidor Windows tambem.

                      dead on arrival, nowhere to be found.

                      F 1 Reply Last reply Reply Quote 1
                      • F
                        fabiogleao @mcury
                        last edited by

                        @mcury

                        quando vou criar o keytab me retorna esse erro:
                        ktpass : O termo 'ktpass' não é reconhecido como nome de cmdlet, função, arquivo de script ou programa
                        operável. Verifique a grafia do nome ou, se um caminho tiver sido incluído, veja se o caminho está
                        correto e tente novamente.
                        No linha:1 caractere:1

                        • ktpass -out c:\pfsense.keytab -princ HTTP/pfsense.dominio.lan@DOMINIO ...

                        Estou tentando pelo CMD no windows (membro do dominio)

                        1 Reply Last reply Reply Quote 0
                        • M
                          mcury Rebel Alliance
                          last edited by

                          O seu comando ktpass está igualzinho lá no link que eu passei?
                          https://journeyofthegeek.com/2017/12/30/pfsense-squid-kerberos/

                          Caso queira dar uma aprofundada no ktpass:
                          https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/ktpass

                          Caso não funcione pelo ktpass, voce pode extrair a chave utilizando o samba-tools:
                          Abaixo segue o comando que eu usei no meu domínio:

                          sudo samba-tool domain exportkeytab mykeytab.keytab --principal=HTTP/pfsense.local.lan

                          Quando fiz esse comando, o meu samba 4 era o domain controller
                          Depois copiei a chave para a pasta do pfsense /usr/local/etc/squid/mykeytab.keytab

                          dead on arrival, nowhere to be found.

                          F 1 Reply Last reply Reply Quote 1
                          • F
                            fabiogleao @mcury
                            last edited by fabiogleao

                            @mcury
                            Obrigado pelas dicas.
                            Eu fiz pelo samba-tools, mas agora o navegador fica solicitando login infinitamente.
                            não importa o que eu use ele fica solicitando e não deixa navegar.

                            usei: samba-tool domain exportkeytab pfsense.keytab --principal=HTTP/pfsense.dominio.lan

                            qual seria o comando pra gerar o spn no samba-tools? vou tentar fazendo tudo por ele.

                            squid ficou assim:
                            auth_param negotiate program /usr/local/libexec/squid/negotiate_kerberos_auth -d -k /usr/local/etc/squid/pfsense.keytab
                            auth_param negotiate children 1000
                            auth_param negotiate keep_alive on
                            acl auth proxy_auth REQUIRED
                            http_access deny !auth
                            http_access allow auth

                            ps.: o PC pfsense precisa estar adicionado ao dominio?
                            antes com o pf2ad ele adicionava e agora q não tem não está adicionado.

                            1 Reply Last reply Reply Quote 0
                            • M
                              mcury Rebel Alliance
                              last edited by

                              Olá Fabio, o pfsense não precisa estar no domínio.
                              O que aparece nos logs do Squid/Squidguard durante os acessos?

                              O comando que eu utilizei foi exatamente esse:

                              sudo samba-tool domain exportkeytab mykeytab.keytab --principal=HTTP/pfsense.local.lan

                              Você configurou o krb5.conf no /etc/ do samba server?
                              Ele também precisa ser configurado conforme no link que te mandei.

                              Eu infelizmente agora não estou em casa, mas assim que chegar copio o meu krb5.conf aqui pra ajudar.

                              Teste inicialmente um usuário com uma senha simples (sem caracteres especiais), e se possível, que seja membro de um grupo de AD onde o caminho da arvore não tenha espaços ou caracteres especiais.

                              Isso me atrapalhou bastante no inicio.

                              Até breve

                              dead on arrival, nowhere to be found.

                              1 Reply Last reply Reply Quote 1
                              • M
                                mcury Rebel Alliance
                                last edited by

                                Segue:

                                Estou utilizando o mesmo domínio do exemplo acima.
                                O que está em maiúsculo precisa ficar em maiúsculo, exatamente como está aí embaixo, ok?

                                pi@raspsrv:~ $ cat /etc/krb5.conf
                                [libdefaults]
                                default_realm = LOCAL.LAN
                                dns_lookup_realm = false
                                dns_lookup_kdc = true
                                [realms]
                                LOCAL.LAN = {
                                kdc = raspsrv.local.lan
                                admin_server = raspsrv.local.lan
                                default_domain = local.lan
                                }
                                [domain_realm]
                                .local.lan = LOCAL.LAN
                                local.lan = LOCAL.LAN

                                dead on arrival, nowhere to be found.

                                F 1 Reply Last reply Reply Quote 0
                                • F
                                  fabiogleao @mcury
                                  last edited by fabiogleao

                                  @mcury
                                  Bom dia amigo.

                                  o usuário do pFsense é pfsense e a senha é somente com números e fica no Users do AD.

                                  qual seria o comando que indica o usuário como SPN para que depois se exporte a keytab? o correspondente ao comando do windows "setspn".

                                  no log do meu squid:

                                  Date IP Status Address User Destination
                                  24.10.2018 08:29:59 10.0.2.106 TCP_DENIED/407 clients4.google.com:443 - -

                                  Date-Time Message
                                  31.12.1969 21:00:00 negotiate_kerberos_auth: WARNING: received type 1 NTLM token
                                  31.12.1969 21:00:00 negotiate_kerberos_auth: DEBUG: Decode 'TlRMTVNTUAABAAAAl4II4gAAAAAAAAAAAAAAAAAAAAAKAO5CAAAADw==' (decoded length: 40).

                                  Krb5.conf (PFSENSE)

                                  [logging]
                                  default = FILE:/var/log/krb5libs.log
                                  kdc = FILE:/var/log/krb5kdc.log
                                  admin_server = FILE:/var/log/kadmind.log

                                  [libdefaults]
                                  default_realm = DOMINIO.LAN
                                  dns_lookup_realm = false
                                  dns_lookup_kdc = true
                                  ticket_lifetime = 48h
                                  forwardable = yes
                                  ; for Windows 2008 with AES
                                  default_tgs_enctypes = aes128-cts-hmac-sha1-96 aes256-cts-hmac-s
                                  ha1-96 rc4-hmac des-cbc-crc des-cbc-md5
                                  default_tkt_enctypes = aes128-cts-hmac-sha1-96 aes256-cts-hmac-s
                                  ha1-96 rc4-hmac des-cbc-crc des-cbc-md5
                                  permitted_enctypes = aes128-cts-hmac-sha1-96 aes256-cts-hmac-sha
                                  1-96 rc4-hmac des-cbc-crc des-cbc-md5

                                  [appdefaults]
                                  pam = {
                                  debug = false
                                  ticket_lifetime = 36000
                                  renew_lifetime = 36000
                                  forwardable = true
                                  krb4_convert = false
                                  }

                                  [realms]
                                  DOMINIO.LAN = {
                                  kdc = ad-dc.dominio.lan
                                  admin_server = ad-dc.dominio.lan
                                  default_domain - dominio.lan

                                  }

                                  [domain_realm]
                                  .dominio.lan = DOMINIO.LAN
                                  dominio.lan = DOMINIO.LAN

                                  Krb5.conf (AD)

                                  [libdefaults]
                                  default_realm = DOMINIO.LAN
                                  dns_lookup_realm = false
                                  dns_lookup_kdc = true

                                  [realms]
                                  DOMINIO.LAN = {
                                  kdc = ad-dc.dominio.lan

                                  }

                                  [domain_realm]
                                  .dominio.lan = DOMINIO.LAN
                                  dominio.lan = DOMINIO.LAN

                                  1 Reply Last reply Reply Quote 0
                                  • M
                                    mcury Rebel Alliance
                                    last edited by

                                    Infelizmente o setspn só pode ser feito no Windows, com o pacote RSAT.
                                    Já o ktpass pode ser usado tanto no samba como no Windows Server.

                                    Primeiro ponto:

                                    O pfsense está com domain override no DNS para o seu dominio, e apontando pro DNS do AD?
                                    Ou o pfsense está configurado para utilizar apenas o DNS do AD?

                                    Tudo que for relacionado ao seu AD, inclusive as atividades do Kerberos, precisam resolver corretamente, portanto precisa de uma dessas configurações.

                                    Segundo ponto:

                                    O /etc/krb5.conf do PFSENSE precisa estar da forma abaixo, observe que removi alguns parâmetros de criptografia para facilitar (dessa forma funciona), pois existem diferenças entre o MIT e o Heimdal, que não vem ao caso agora.

                                    [2.4.4-RELEASE][root@pfsense.local.lan]/root: cat /etc/krb5.conf
                                    [libdefaults]
                                    default_realm = LOCAL.LAN
                                    dns_lookup_realm = false
                                    dns_lookup_kdc = true

                                    [realms]
                                    LOCAL.LAN = {
                                    kdc = raspsrv.local.lan
                                    }

                                    [domain_realm]
                                    .local.lan = LOCAL.LAN
                                    local.lan = LOCAL.LAN

                                    [logging]
                                    kdc = FILE:/var/log/kdc.log
                                    Default = FILE:/var/log/krb5lib.log

                                    A configuração do smb.conf localizado no AD, eu já postei anteriormente.

                                    Após ter feito essas configurações, você já pode testar com o kinit svc_squid ou pfsense como você criou diretamente do PFSENSE.

                                    Caso funcione, você conseguirá listar o ticket com o comando klist em seguida.

                                    Depois desse passo, você segue com as configurações que já citei acima ok?

                                    dead on arrival, nowhere to be found.

                                    F 2 Replies Last reply Reply Quote 1
                                    • F
                                      fabiogleao @mcury
                                      last edited by

                                      This post is deleted!
                                      1 Reply Last reply Reply Quote 0
                                      • F
                                        fabiogleao @mcury
                                        last edited by

                                        @mcury

                                        Consegui, muito obrigado.

                                        no navegador estava o IP do proxy e ao mudar pro nome funcionou.
                                        NS Lookup funcionando e reconhecendo normalmente quando informo o nome do PC, não entendi pq não encontrou com o IP e somente com o nome.

                                        Agora vou pra 2a etapa que é com o sarg. Vou seguir as suas orientações. Obrigado

                                        1 Reply Last reply Reply Quote 0
                                        • M
                                          mcury Rebel Alliance
                                          last edited by

                                          De nada Fabio, é um prazer ajudar.
                                          Agora, SSO sem precisar alterar os pacotes originais do Pfsense.

                                          Saiu atualização, voce atualiza, sem se preocupar com samba.

                                          Abraços.

                                          dead on arrival, nowhere to be found.

                                          F 1 Reply Last reply Reply Quote 0
                                          • F
                                            fabiogleao @mcury
                                            last edited by fabiogleao

                                            @mcury
                                            agora pode atualizar sem preocupação, bem melhor.

                                            Mas o Squidguard não tá bloqueando reconhece o usuário, mas não faz o bloqueio.

                                            segue as configs dele:
                                            0_1540558367651_ead44ee6-fd4f-44dd-a7f5-b1f11d72acfd-image.png

                                            0_1540559908872_ae4bcc86-7ffc-40e1-b576-4fc36970217c-image.png
                                            com ip ou nome não bloqueia

                                            .

                                            usuário abaixo era pra ser bloqueado o acesso no grupo Internet_L0:

                                            0_1540558562748_7f69719b-b1e1-4ba2-a023-77b3590c4707-image.png

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