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

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

    Scheduled Pinned Locked Moved Portuguese
    114 Posts 24 Posters 83.9k 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.
    • 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
                                • F
                                  filipe.nanclarez
                                  last edited by

                                  Como devo substituir essa linha do tutorial ?

                                  password server = ad-master.domain.com.au

                                  eu fiz assim, mas fiquei na dúvida

                                  password server = pdc001.virtual.local

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

                                    filipe.nanclarez,

                                    Marque o dns do firewall com o ip do ad, o samba/kerberos precisam saber quem são os hosts do seu domínio.

                                    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:

                                      filipe.nanclarez,

                                      Marque o dns do firewall com o ip do ad, o samba/kerberos precisam saber quem são os hosts do seu domínio.

                                      sim sim, eu já tinha feito, inclusive testei na tela "diagnostics>ping" com o nome e como ip pra saber se estava ok …

                                      alterei algumas coisas nos arquivos que acredito que estavam erradas (eu não interpretei direito) agora está dando "Password incorrect" tem alguma coisa a ver com ser 2008 server ? Nesse site, diz que precisa ser outra config pra o 2008 server ....

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

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

                                        Você pode seguir o tutorial ntlm mais atual do site do squid sem problemas. Toma cuidado só com a questão da localização das pastas.

                                        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:

                                          Você pode seguir o tutorial ntlm mais atual do site do squid sem problemas. Toma cuidado só com a questão da localização das pastas.

                                          então, usei ele só para verificar como deveria fazer as substituições dos valores, mas estou seguindo o seu pra não bagunçar aqui.

                                          estou recebendo o primeiro erro novamente (depois de arrumar o dns, e acertar o ntp):

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

                                          no join, retorna:

                                          Failed to join domain: failed to connect to AD: Operations error

                                          tentei olhar nos não estou achando os arquivos dos logs pra verificar … ???

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

                                            pessoal, alguma luz ?

                                            marcelloc, quando voce conseguiu foi no windows 2003 ?

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