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

    Autenticação "transparente" com pfsense + squid + active directory

    Portuguese
    24
    114
    80.0k
    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.
    • marcellocM
      marcelloc
      last edited by

      Senhores,

      Seguindo um tutorial um pouco antigo sobre squid+ntlm, compilei o kerberos(heimdal) e o samba(3.6.3) para o pfsense e consegui autenticar sem popup de tela de autenticação.

      Estou agora adaptando este tutorial do site para o squid3 usando negotiate com kerberos e ldap.

      http://wiki.squid-cache.org/ConfigExamples/Authenticate/WindowsActiveDirectory

      Os pacotes necessarios no pfsense são:

      i386
      http://e-sac.siteseguro.ws/packages/8/All/samba36-3.6.3.tbz
      http://e-sac.siteseguro.ws/packages/8/All/heimdal-1.4_1.tbz

      amd64
      http://e-sac.siteseguro.ws/packages/amd64/8/All/samba36-3.6.3.tbz
      http://e-sac.siteseguro.ws/packages/amd64/8/All/heimdal-1.4_1.tbz

      Algo que já percebi é que os keytabs serão gerados no proprio ad e transferidos para o pfsense.

      Não gosto de instalar o samba no pfsense por ele ser um firewall, mas existem situações onde o cliente só tem uma maquina para isso.

      Se eu conseguir finalizar o procedimento posto aqui.
      Se alguem já conseguiu isso no pfsense, pode postar aqui tambem  ;)

      att,
      Marcello Coutinho

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

      Help a community developer! ;D

      1 Reply Last reply Reply Quote 1
      • F
        fneto
        last edited by

        Então Marcello, eu não consegui configurar isso no pfSense, minha solução para uma máquina só foi instalar o vmware no host e criar 2 máquinas virtuais, uma com pfSense e outra com o Squid no modo NTLM.

        Se conseguir fazer iso com uma máquina só vai agilizar e muito minha vida, então mais do que nunca já me disponho a ajudar como testador ou de outra maneira que você precise, compilando gerando algum script ou etc…

        Atenciosamente...

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

          fneto,

          Com ntlm eu já consegui, estou tentando via negociate e keytab.

          Segui este tutorial antigo com o squid do pfsense apenas prestando atenção nas pastas.

          /etc/krb5.conf ok
          mude /var/kerberos/krb5kdc/kdc.conf para /var/heimdal/kdc.conf
          mude /var/kerberos/krb5kdc/kadm5.acl para /var/heimdal/kadm5.acl
          mude gpasswd -a proxy winbindd_priv para chgrp proxy /var/run/squid/windindd_priv…

          squid_auth_ad.pdf.txt

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

          Help a community developer! ;D

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

            O arquivo do tutorial não está legal, não consegui abrir nem como TXT nem como PDF, aparece todo zoado!

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

              tenta neste link

              https://docs.google.com/open?id=1PAhHvC1jtC9lrLpEmr47vpQqBYeB9zW5Zq4bD1gsfrwzbicQIR_ooAGnZN45

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

              Help a community developer! ;D

              1 Reply Last reply Reply Quote 0
              • F
                filipe.nanclarez
                last edited by

                Então, olá para todos, boa noite.

                Bem eu estou a procura exatamente disso, fazer o ntlm funcionar no squid do pfsense. Abri até um tópico para isso.

                Lí o arquivo abaixo, mas parece que o ambiente é diferente.

                Eu preciso instalar todos esses pacotes, mesmo na distribuição no pfSense ?

                Ou basta alterar esses arquivos ?

                Seria interessante nos ajudar, já que voce já conseguiu fazer funcionar …

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

                  Filipe,

                  Juntando tudo em um único post, fica assim:

                  Instale os pacotes no seu pfsense através da console/ssh respeitando a plataforma instalada e por garantia, copie algumas libs necessárias para gssapi e kerberos que não estão incluídas no pfsense

                  i386

                  
                  pkg_add -r http://e-sac.siteseguro.ws/packages/8/All/samba36-3.6.3.tbz
                  pkg_add -r http://e-sac.siteseguro.ws/packages/8/All/heimdal-1.4_1.tbz
                  cd /usr/local/lib
                  fetch http://e-sac.siteseguro.ws/pfsense/8/All/ldd/libasn1.so.10
                  fetch http://e-sac.siteseguro.ws/pfsense/8/All/ldd/libgssapi.so.10
                  fetch http://e-sac.siteseguro.ws/pfsense/8/All/ldd/libheimntlm.so.10
                  fetch http://e-sac.siteseguro.ws/pfsense/8/All/ldd/libhx509.so.10
                  fetch http://e-sac.siteseguro.ws/pfsense/8/All/ldd/libkrb5.so.10
                  fetch http://e-sac.siteseguro.ws/pfsense/8/All/ldd/libroken.so.10
                  
                  

                  amd64

                  pkg_add -r http://e-sac.siteseguro.ws/packages/amd64/8/All/samba36-3.6.3.tbz
                  pkg_add -r http://e-sac.siteseguro.ws/packages/amd64/8/All/heimdal-1.4_1.tbz
                  cd /usr/local/lib
                  fetch http://e-sac.siteseguro.ws/pfsense/8/amd64/All/ldd/libasn1.so.10
                  fetch http://e-sac.siteseguro.ws/pfsense/8/amd64/All/ldd/libgssapi.so.10
                  fetch http://e-sac.siteseguro.ws/pfsense/8/amd64/All/ldd/libheimntlm.so.10
                  fetch http://e-sac.siteseguro.ws/pfsense/8/amd64/All/ldd/libhx509.so.10
                  fetch http://e-sac.siteseguro.ws/pfsense/8/amd64/All/ldd/libkrb5.so.10
                  fetch http://e-sac.siteseguro.ws/pfsense/8/amd64/All/ldd/libroken.so.10
                  
                  

                  Siga este tutorial antigo com o squid do pfsense instalado acertando os caminhos de pastas/comandos por conta da divergência entre os sistemas operacionais.

                  /etc/krb5.conf está ok
                  mude /var/kerberos/krb5kdc/kdc.conf para /var/heimdal/kdc.conf
                  mude /var/kerberos/krb5kdc/kadm5.acl para /var/heimdal/kadm5.acl
                  mude gpasswd -a proxy winbindd_priv para chgrp proxy /var/db/samba/winbindd_privileged

                  Quando estiver com o pfsense no domínio e conseguindo fazer os testes via kinit/klist e wbinfo -t, acesse:

                  services -> proxy server -> general settings -> custom options

                  e cole estas linhas

                  auth_param ntlm program /usr/local/bin/ntlm_auth --use-cached-creds --helper-protocol=squid-2.5-ntlmssp;auth_param ntlm children 30;auth_param ntlm keep_alive on;acl password proxy_auth REQUIRED;http_access allow password
                  

                  Agora no cliente, basta marcar o proxy no browser.

                  NOTA IMPORTANTE PARA WINDOWS 7

                  No windows 7 são implementadas uma série de novas politicas de segurança , uma delas inclusive barra a autenticação transparente que usamos em nossos proxys. Para resolver este problema siga este pequeno manual que orienta como dever ser feita esta liberação

                  Antes de mais nada , para rodar este procedimento é necessário que você seja administrador da máquina local.
                  Execute o Execute o comando "gpedit.msc" e navegue na arvore seguindo esta sequencia:

                  • Diretiva computador local

                  • Configurações do windows

                  • Configurações de segurança

                  • Diretivas locais

                  • Opções de segurança

                  • Segurança de rede: nível de autenticação lan manager

                  • Marque a opção: enviar lm e ntlm - usar nivel de segurança NTLMv2

                  att,
                  Marcello Coutinho

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

                  Help a community developer! ;D

                  1 Reply Last reply Reply Quote 0
                  • F
                    filipe.nanclarez
                    last edited by

                    Ok, muito obrigado pela atenção.  ;D

                    Vou fazer os testes já agora, e posto aqui os resultados ….

                    1 Reply Last reply Reply Quote 0
                    • F
                      filipe.nanclarez
                      last edited by

                      Marcelo, o primeiro arquivo quando fui procurar, não achei …

                      /etc/krb5.conf está ok

                      Voce escreveu que está ok, significa que preciso criá-lo ?

                      Essa parte de atentar para mudança, não entendi muito bem, quer dizer que no tutorial, onde estiver esses nomes, o caminho dos arquivos será diferente por causa da versão, mas o conteudo devemos alterar de acordo com o tutorial ?

                      O arquivo smb.samba.conf tambem está aparecendo como novo.

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

                        @filipe.nanclarez:

                        Marcelo, o primeiro arquivo quando fui procurar, não achei …

                        /etc/krb5.conf está ok

                        Voce escreveu que está ok, significa que preciso criá-lo ?

                        Isso mesmo

                        @filipe.nanclarez:

                        Essa parte de atentar para mudança, não entendi muito bem, quer dizer que no tutorial, onde estiver esses nomes, o caminho dos arquivos será diferente por causa da versão, mas o conteudo devemos alterar de acordo com o tutorial ?

                        certo denovo, onde voce encontrar no doc a referencia para /var/kerberos/krb5kdc/kdc.conf leia e configure como /var/heimdal/kdc.conf

                        @filipe.nanclarez:

                        O arquivo smb.samba.conf tambem está aparecendo como novo.

                        procure o arquivo com este comando
                        find / -name smb.conf
                        Não estou perto da maquina agora para conferir o caminho.

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

                        Help a community developer! ;D

                        1 Reply Last reply Reply Quote 0
                        • F
                          filipe.nanclarez
                          last edited by

                          Ok, os que não achei, fui criando segundo seu caminho, os que achei, editei conforme o tutorial. Mas antes de inserir o pf no dominio, o comando kinit está dadno "not found".

                          Seguem abaixo os conteúdos dos meus arquivos com a minhas configurações tentando seguir o tutorial.

                          Estou fazendo em um ambiente virtual, antes de por em produção

                          Ip do meu pdc = 192.168.15.2
                          nome do meu PDC = pdc001
                          OS do pdc = W2K8R2 x64
                          FQDN do dominio = virtual.local
                          Nome Admin = Administrator
                          senha admin = 1@abcde

                          /usr/local/etc/smb.conf
                          [global]
                          netbios name = pdc001
                          workgroup = virtual
                          realm = virtual.local
                          server string = Domain Proxy Server
                          encrypt passwords = yes
                          security = ADS
                          password server = pdc001.virtual.local
                          log level = 3
                          log file = /var/log/samba/%m.log
                          max log size = 50
                          socket options = TCP_NODELAY SO_SNDBUF=8192
                          printcap name = /etc/printcap
                          preferred master = no
                          dns proxy = no
                          ldap ssl = no
                          idmap uid = 10000-20000
                          idmap gid = 10000-20000
                          winbind use default domain = yes
                          cups options = raw

                          /etc/krb5.conf
                          [logging]
                            default = FILE:/var/log/krb5libs.log
                            kdc = FILE:/var/log/krb5kdc.log
                            admin_server = FILE:/var/log/ksadmind.log
                          [libdefaults]
                            default_realm = virtual.local.
                            dns_lookup_realm = false
                            dns_lookup_kdc = false
                            ticket_lifetime = 24h
                            forwardable = yes
                            default_tgs_enctypes = DES-CBC-CRC DES-CBC-MD5 RC4-HMAC
                            default_tkt_enctypes = DES-CBC-CRC DES-CBC-MD5 RC4-HMAC
                            preferred_enctypes = DES-CBC-CRC DES-CBC-MD5 RC4-HMAC
                          [realms]
                            virtual.local = {
                                    kdc = pdc001.virtual.local.:88
                                    admin_server = pdc001.virtual.local.:749
                                    default_domain = domain.
                            }
                          [domain_realm]
                            .domain. = virtual.local.
                            domain. = virtual.local.
                          [kdc]
                            profile = /var/kerberos/krb5kdc/kdc.conf
                          [appdefaults]
                            pam = {
                                    debug = false
                                    ticket_lifetime = 36000
                                    renew_lifetime = 36000
                                    forwardable = true
                                    krb4_convert = false
                            }

                          /var/heimdal/kdc.conf
                          [kdcdfefaults]
                                 acl_file = /var/kerberos/krb5kdc/kadm5.acl
                                 dict_file = /usr/share/dict/words
                                 admin_keytab = /var/kerberos/krb5kdc/kadm5.keytab
                                 v4_mode = noreauth
                          [libdefaults]
                                 default_realm = virtual.
                          [realms]
                                 virtual. = {
                                         master_key_type = des-cbc-crc
                                         supported_enctypes = des3-hmac-sha1:normal arcfour-hmac:normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal
                          des-cbc-crc:v4 des-cbc-crc:afs3
                                      }

                          /var/heimdal/kadm5.acl
                          */administrator@virtual.local     *

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

                            Depois que você instalou o heimdal e o samba você fez um logoff em seguida logon para ele atualizar o path dos binários?

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

                            Help a community developer! ;D

                            1 Reply Last reply Reply Quote 0
                            • F
                              filipe.nanclarez
                              last edited by

                              @marcelloc:

                              Depois que você instalou o heimdal e o samba você fez um logoff em seguida logon para ele atualizar o path dos binários?

                              Ops, não.

                              Estou reiniciando …

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

                                Só um logoff na console já resolve, não precisa de boot.  ;)

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

                                Help a community developer! ;D

                                1 Reply Last reply Reply Quote 0
                                • F
                                  filipe.nanclarez
                                  last edited by

                                  @marcelloc:

                                  Só um logoff na console já resolve, não precisa de boot.  ;)

                                  Ok, confesso, não sei como fazer logoff no pfsense, mas já tá reiniciado. Vou tentar o kinit agora …

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

                                    @filipe.nanclarez:

                                    Ok, confesso, não sei como fazer logoff no pfsense, mas já tá reiniciado. Vou tentar o kinit agora …

                                    Sem problema :). Para fazer o logoff basta digitar exit

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

                                    Help a community developer! ;D

                                    1 Reply Last reply Reply Quote 0
                                    • F
                                      filipe.nanclarez
                                      last edited by

                                      agora recebo o seguinte erro:

                                      kinit: krb5_get_init_creds: unable to reach any KDC in realm virtual.local

                                      teria alguma coisa a ver com colocar o ip no arquivo hosts para ele achar ?

                                      editado

                                      coloquei o seguinte conteudo no meu /etc/hosts

                                      127.0.0.1 localhost localhost.localdomain
                                      192.168.15.101 pfsense.localdomain pfsense
                                      192.168.15.2    pdc001.virtual.local pdc001

                                      mas mesmo assim, o erro permanece …

                                      1 Reply Last reply Reply Quote 0
                                      • F
                                        filipe.nanclarez
                                        last edited by

                                        Tentei ignorar esse passo, e dar o join

                                        net ads join -U Administrator@virtual.local
                                        retorna a seguinte mensagem

                                        kinit succeeded but ads_sasl_spnego_krb5_bind failed: Invalid credentials
                                        Failed to join domain: failed to connect do AD: Invalid credentials

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

                                          Não vejo a hora de arrumar tempo pra testar o ambiente!

                                          1 Reply Last reply Reply Quote 0
                                          • F
                                            filipe.nanclarez
                                            last edited by

                                            @Thiago:

                                            Não vejo a hora de arrumar tempo pra testar o ambiente!

                                            Estou tentando com pf 2.0.1 e Windows 2008 Server R2 …

                                            marcelloc, o seu ambiente era esse mesmo ?

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