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