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.
    • U
      ubezerra
      last edited by

      Caros,

      Consegui inserir o Firewall no domínio, iniciar o samba, sem erros, e configurar o seu serviço para reconhecer o winbind, que também é iniciado
      Porém estou parado justamente no winbind

      Abaixo seguem meus arquivos de configuração

      SAMBA

      
      [global]
      
      netbios name = FIREWALL
      workgroup = DEVPARTNER
      realm = DEVPARTNER.LOCAL
      server string = Domain Proxy Server
      encrypt passwords = yes
      security = ADS
      password server = server01.devpartner.local
      log level = 3
      log file = /var/log/samba/%m.log
      max log size = 50
      socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
      printcap name = /etc/printcap
      preferred master = No
      dns proxy = No
      ldap ssl = no
      idmap uid = 10000-20000
      idmap gid = 10000-20000
      idmap backend = idmap_rid:DEVPARTNER=10000-20000
      winbind use default domain = yes
      winbind separator = /
      winbind enum users = yes
      winbind enum groups = yes
      cups options = raw
      
      

      krb5

      [logging]
              default = FILE:/var/log/krb5libs.log
              kdc = FILE:/var/log/krb5kdc.log
              admin_server = FILE:/var/log/ksadmind.log
      
      [libdefaults]
          default_realm = DEVPARTNER.LOCAL
          dns_lookup_kdc = true
          dns_lookup_realm = true
          ticket_lifetime = 24h
          forwardable = yes
      ; for Windows 2003
      ;    default_tgs_enctypes = rc4-hmac des-cbc-crc des-cbc-md5
      ;    default_tkt_enctypes = rc4-hmac des-cbc-crc des-cbc-md5
      ;    permitted_enctypes = rc4-hmac des-cbc-crc des-cbc-md5
      
      ; for Windows 2008 with AES
          default_tgs_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-
      md5
          default_tkt_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-
      md5
          permitted_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md
      5
      
      [realms]
          DEVPARTNER.LOCAL = {
              kdc = 192.168.0.10:88
              admin_server = server01.devpartner.local.:749
              default_domain = devpartner.
          }
      
      [domain_realm]
          .devpartner.local = DEVPARTNER.LOCAL
          devpartner.local = DEVPARTNER.LOCAL
      [kdc]
              profile = /var/heimdal/kdc.conf
      [appdefaults]
              pam = {
                      debug = false
              ticket_lifetime = 36000
              renew_lifetime = 36000
              forwardable = true
              krb4_convert = false
              }
      
      

      kdc

      [kdcdefaults]
      acl_file = /var/heimdal/kadm5.acl
              dict_file = /usr/share/dict/words
              admin_keytab = /var/heimdal/kadm5.keytab
              v4_mode = noreauth
      [libdefaults]
              default_realm = DEVPARTNER.
      [realms]
              DEVPARTNER. = {
                      master_key_type = des-cbc-crc
                      supported_enctypes = des3-hmac-sha1:normal arcfour-hmac:normal d
      es-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal
      des-cbc-crc:v4 des-cbc-crc:afs3
      
      

      kadm.acl

      */administrator@DEVPARTNER.LOCAL        *
      
      

      serviço do samba

      #!/bin/sh
      #
      # $FreeBSD: ports/net/samba36/files/samba.in,v 1.2 2012/01/14 08:56:26 dougb Exp $
      #
      
      # PROVIDE: nmbd smbd
      # PROVIDE: winbindd
      # REQUIRE: NETWORKING SERVERS DAEMON ldconfig resolv
      # BEFORE: LOGIN
      # KEYWORD: shutdown
      #
      # Add the following lines to /etc/rc.conf.local or /etc/rc.conf
      # to enable this service:
      #
      samba_enable="YES"
      # or, for fine grain control:
      nmbd_enable="YES"
      smbd_enable="YES"
      # You need to enable winbindd separately, by adding:
      winbindd_enable="YES"
      #
      # Configuration file can be set with:
      samba_config="/usr/local/etc/smb.conf"
      #
      
      . /etc/rc.subr
      
      name="samba"
      rcvar=samba_enable
      
      # Defaults
      samba_enable=${samba_enable:=NO}
      samba_config_default="/usr/local/etc/smb.conf"
      samba_config=${samba_config="${samba_config_default}"}
      command_args=${samba_config:+-s "${samba_config}"}
      # Fetch parameters from configuration file
      testparm_command="/usr/local/bin/testparm"
      smbcontrol_command="/usr/local/bin/smbcontrol"
      samba_parm="${testparm_command} -s -v --parameter-name"
      samba_idmap=$(${samba_parm} 'idmap uid' "${samba_config}" 2>/dev/null)
      samba_lockdir=$(${samba_parm} 'lock directory' "${samba_config}" 2>/dev/null)
      # Load configuration
      load_rc_config "${name}"
      # Setup dependent variables
      if [ -n "${rcvar}" ] && checkyesno "${rcvar}"; then
          nmbd_enable=${nmbd_enable=YES}
          smbd_enable=${smbd_enable=YES}
          # Check that winbindd is actually configured
          if [ -n "${samba_idmap}" ]; then
      	winbindd_enable=${winbindd_enable=YES}
          fi
      fi
      # XXX: Hack to enable check of the dependent variables
      eval real_${rcvar}="\${${rcvar}:=NO}"	${rcvar}=YES
      # nmbd
      rcvar=nmbd_enable
      nmbd_enable=${nmbd_enable:=NO}
      nmbd_flags=${nmbd_flags="-D"}
      # smbd
      rcvar=smbd_enable
      smbd_enable=${smbd_enable:=NO}
      smbd_flags=${smbd_flags="-D"}
      # winbindd
      rcvar=winbindd_enable
      winbindd_enable=${winbindd_enable:=NO}
      winbindd_flags=${winbindd_flags=''}
      # Custom commands
      extra_commands="reload status"
      start_precmd="samba_start_precmd"
      start_cmd="samba_cmd"
      stop_cmd="samba_cmd"
      status_cmd="samba_cmd"
      restart_precmd="samba_checkconfig"
      reload_precmd="samba_checkconfig"
      reload_cmd="samba_reload_cmd"
      rcvar_cmd="samba_rcvar_cmd"
      #
      samba_daemons="nmbd smbd"
      samba_daemons="${samba_daemons} winbindd"
      # Requirements
      required_files="${samba_config}"
      required_dirs="${samba_lockdir}"
      
      samba_checkconfig() {
          echo -n "Performing sanity check on Samba configuration: "
          if ${testparm_command} -s ${samba_config:+"${samba_config}"} >/dev/null 2>&1; then
      	echo "OK"
          else
      	echo "FAILED"
      	return 1
          fi
          return 0
      }
      
      samba_start_precmd() {
          # XXX: Never delete winbindd_idmap, winbindd_cache and group_mapping
          if [ -n "${samba_lockdir}" -a -d "${samba_lockdir}" ]; then
      	echo -n "Removing stale Samba tdb files: "
      	for file in brlock.tdb browse.dat connections.tdb gencache.tdb \
      		    locking.tdb messages.tdb namelist.debug sessionid.tdb \
      		    unexpected.tdb
      	do
      	    rm "${samba_lockdir}/${file}" /dev/null && echo -n '.'
      	done
      	echo " done"
          fi
      }
      
      samba_rcvar_cmd() {
          local rcvar
          rcvar=${name}_enable
          eval ${rcvar}=\${real_${rcvar}}
          # Prevent recursive calling
          unset "${rc_arg}_cmd" "${rc_arg}_precmd" "${rc_arg}_postcmd"
          # Check master variable
          run_rc_command "${_rc_prefix}${rc_arg}" ${rc_extra_args}
      }
      
      samba_reload_cmd() {
          local name rcvar command pidfile
          # Prevent recursive calling
          unset "${rc_arg}_cmd" "${rc_arg}_precmd" "${rc_arg}_postcmd"
          # Apply to all daemons
          for name in ${samba_daemons}; do
          	rcvar=${name}_enable
      	command="/usr/local/sbin/${name}"
      	pidfile="/var/run/samba/${name}${pid_extra}.pid"
      	# Daemon should be enabled and running
      	if [ -n "${rcvar}" ] && checkyesno "${rcvar}"; then
      	    if [ -n "$(check_pidfile "${pidfile}" "${command}")" ]; then
      		debug "reloading ${name} configuration"
      		echo "Reloading ${name}."
      		# XXX: Hack with pid_extra
      		${smbcontrol_command} "${name}${pid_extra}" 'reload-config' ${command_args} >/dev/null 2>&1
      	    fi
      	fi
          done
      }
      
      samba_cmd() {
          local name rcvar rcvars v command pidfile samba_daemons result
          # Prevent recursive calling
          unset "${rc_arg}_cmd" "${rc_arg}_precmd" "${rc_arg}_postcmd"
          # Stop processes in the reverse order
          if [ "${rc_arg}" = "stop" ] ; then
      	samba_daemons=$(reverse_list ${samba_daemons})
          fi
          # Assume success
          result=0
          # Apply to all daemons
          for name in ${samba_daemons}; do
      	rcvar=${name}_enable
      	# XXX
      	rcvars=''; v=''
      	command="/usr/local/sbin/${name}"
      	pidfile="/var/run/samba/${name}${pid_extra}.pid"
      	# Daemon should be enabled and running
      	if [ -n "${rcvar}" ] && checkyesno "${rcvar}"; then
      	    run_rc_command "${_rc_prefix}${rc_arg}" ${rc_extra_args}
      	    # If any of the of the commands failed, take it as a total result
      	    result=$((${result} || $?))
      	fi
          done
          return ${result}
      }
      
      run_rc_command "$1"
      
      

      Ao testar o wbinfo -u -t -g ele apresenta o erro que o domínio winbind não foi encontrado.
      Além disso a autenticação com o AD não está funcional.
      Outra dúvida, gostaria de integrar essa autenticação com permissões de grupos do AD. Vi no blog pauloxmachado que isso era possível, mas não sem a janela de autenticação do popup.

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

        ubezerra,

        Bem vindo ao fórum! :)

        @ubezerra:

        Ao testar o wbinfo -u -t -g ele apresenta o erro que o domínio winbind não foi encontrado.

        No arquivo de inicialização do samba, troque todos os NO por YES e tente denovo.
        O winbind provavelmente não está subindo

        att,
        Marcello Coutinho

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

        Help a community developer! ;D

        1 Reply Last reply Reply Quote 0
        • U
          ubezerra
          last edited by

          Caros,

          Me basta agora montar um documento mostrando os passos para o meu sucesso. Agradeço as informações de todos nesse post.
          Minha solução foi checar o serviço do samba em /usr/local/etc/rc.d/samba para iniciar todos os serviços. Porém sem prestar atenção ao SMB.conf personalizado, o winbind não inicia. Precisei efetuar a alteração de dns no krb5.conf para que ele efetuasse a busca pelo dns na seção de kdc.

          Em minha solução adotei
          VM com Windows 2008 R2 e AD 2008 R2
          VM pfsense 2.0.1
          Squidguard 1.4 e squid 2.7.9

          Vou agora realizar os testes com a versão estável, sem vários pacotes instalados no meio do caminho.

          Estou com uma dúvida justamente nesse squid, queria por o 3, mas com o squidguard. é possível, desde que com a gui de configuração?

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

            @ubezerra:

            Estou com uma dúvida justamente nesse squid, queria por o 3, mas com o squidguard. é possível, desde que com a gui de configuração?

            Sim, basta instalar o squid3 por último.

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

            Help a community developer! ;D

            1 Reply Last reply Reply Quote 0
            • M
              mzambretti
              last edited by

              marcelloc boa tarde.
              Tenho o Squid + NTLM + AD no proxy atual (CentOS).
              Estou com dificuldade em algum ponto do seu tutorial.
              Estou migrando o meu servidor para o pfSense, parei na etapa de ingressar o pfSense no AD, mas recebo a seguinte mensagem:

              [2.0.1-RELEASE][admin@meudominio]/usr/local/etc(42): net ads -u meuusuario@MEUDOMINIO
              /libexec/ld-elf.so.1: /usr/local/lib/libiconv.so.3: unsupported file layout

              Será que você poderia me ajudar?
              Obrigado.

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

                @mzambretti:

                Será que você poderia me ajudar?

                mzambretti, bem vindo ao fórum! :)

                Aparentemente seu erro está na instalação de pacotes de outra arquitetura, por exemplo pacotes i386 no pfsense amd64.

                att,
                Marcello Coutinho

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

                Help a community developer! ;D

                1 Reply Last reply Reply Quote 0
                • M
                  mzambretti
                  last edited by

                  Marcello, obrigado pela ajuda.
                  Comecei do zero e passei daquele ponto.
                  Agora estou com problema ao ingressar no domínio utilizando o net ads e recebo o seguinte erro:

                  Host is not configured as a member server.
                  Invalid configuration.  Exiting….
                  Failed to join domain: This operation is only allowed for the PDC of the domain.

                  Como contorno isso?
                  Obrigado mais uma vez.

                  1 Reply Last reply Reply Quote 0
                  • D
                    Daniel Herzer
                    last edited by

                    Segui o tutorial e todas as dicas dos amigos e consegui realizar a autenticação mostrada aqui…

                    No entanto não consegui fazer com que no pacote "Lightsquid" fosse mostrado o nome dos usuários logados nos logs, só mostra o endereço IP do mesmo.

                    Será que há como fazer com que o Lightsquid entenda/descubra esses IPs também?

                    Obs: No Lightsquid ele dá algumas opções para resolver as informações que ele vai mostrar nos logs:

                    IP - return IP
                    Demo - return AUTHNAME, else DNSNAME, else IP
                    DNS - return DNSNAME
                    Simple - return AUTHNAME else IP
                    SMB - return SMB name of pc
                    Squidauth - return AUTHNAME else IP, allow cyrilyc name

                    Os que estão em vermelho eu tentei…

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

                      @Daniel:

                      Os que estão em vermelho eu tentei…

                      Viu se no log do squid aparece o usuário autenticado?

                      Já tentou o sarg????

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

                      Help a community developer! ;D

                      1 Reply Last reply Reply Quote 0
                      • P
                        pfarias
                        last edited by

                        Olá sou novo por aqui mas vamos lá..

                        Fiz as configurações conforme manda o tutorial, consegui executar o kinit para ingressa-lo no dominio.. tudo certinho…
                        mas como o comando "wbinfo -t" ele me retorna esse erro abaixo:

                        could not obtain winbind interface details: WBC_ERR_WINBIND_NOT_AVAILABLE
                        could not obtain winbind domain name!
                        checking the trust secret for domain (null) via RPC calls failed
                        failed to call wbcCheckTrustCredentials: WBC_ERR_WINBIND_NOT_AVAILABLE
                        Could not check secret

                        trabalho parado até aqui.....

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

                          um tutorial detalhado em inglês a partir deste tópico

                          http://forum.pfsense.org/index.php/topic,58700.0.html

                          contribuição: wheelz

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

                          Help a community developer! ;D

                          1 Reply Last reply Reply Quote 0
                          • N
                            neo_X
                            last edited by

                            Olá pessoal,

                            Alguém criou o procedimento completo no site?

                            []'s

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

                              @neo_X:

                              Alguém criou o procedimento completo no site?

                              Você diz se alguém tem isso funcionando?

                              Se for essa a pergunta, respondo que sim, eu tenho.  :)

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

                              Help a community developer! ;D

                              1 Reply Last reply Reply Quote 0
                              • R
                                rafarfc2
                                last edited by

                                Desculpe te incomodar, mas fiz todos os passos daquele tutorial gringo que foi feito junto com o seu e tive algumas duvidas que não vi respondidas no fórum, o Meu squid não funciona, somente o dansguardian e mesmo assim não aceita as filtragens por grupos do AD, um detalhe é que os comandos para os testes retornam sem erro! não sei o que estou fazendo de errado! já estou ficando maluco!
                                Pode me dizer se nessa configuração o squid realmente não faz nada além de ajudar na autenticação, ou fiz algum besteira? eu já refiz essa configuração 3x, já estou quase desistindo.

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

                                  Olá!

                                  cheguei até o mesmo ponto do rafarfc2…tudo rodou certinho....o wbinfo -u lista os usuários do AD....até aqui tudo certo! agora acho que parei na parte dos detalhes!

                                  Para teste desabilitei o SquidGuard...assim validar autenticação direta e a passagem pelo Squid puro...
                                  Fiz a alteração no Windows 7 para autenticação ntlm....

                                  A primeira dúvida é como tem que ficar a parte de autenticação do squid no gui....antes estava usando LDAP version 3.... mudei para ntlm e coloquei o ip do servidor em authentication server...esta correto?

                                  loguei em uma estação com o proxy setado....quando abro o navegador ela demora um pouco e apresenta a mensagem que não foi possível conectar ao servidor proxy....

                                  Alguem tem idéia de que pode ser?

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

                                    Pode desconsiderar o post anterior….

                                    Funcionou aqui!....bobeira minha!!

                                    100% agora!

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

                                      Dando continuidade na questão!!!! rs

                                      Tenho um PFSense 32bit em que esta acontecendo o seguinte:

                                      Quando executo kinit administrator@MYDOMAIN.LOCAL…coloco a senha e autentica normal...

                                      quando vou para o próximo passo: net ads join -U administrator@MYDOMAIN.LOCAL ele apresenta a seguinte linha de erro...

                                      /libexec/ld-elf.so.1: Shared object "libtalloc.so.2" not found, required by "net"

                                      Em outros 2 servidores funcionou tudo normal…só este que enroscou!

                                      Alguém sabe o que pode ser?

                                      Já removi e reinstalei todos os pacotes para ver se resolvia....mas não!

                                      1 Reply Last reply Reply Quote 0
                                      • U
                                        ubezerra
                                        last edited by

                                        Caros,

                                        Tenho um ambiente funcionando com autenticação transparente, em um dominio samba4, via ntlm com ssl.

                                        Meus problemas são quando um usuário ou computador fora do domínio tenta acessar via pop-up, e não autentica. O mesmo ocorre com a VPN, não autentica via pop-up.

                                        Segue abaixo a configuração utilizada.

                                        auth_param ntlm program /usr/local/bin/ntlm_auth –use-cached-creds --domain=GERLAB --helper-protocol=squid-2.5-ntlmssp
                                        auth_param ntlm children 30
                                        auth_param ntlm credentialsttl 4 hours
                                        auth_param basic program /usr/local/bin/ntlm_auth --helper-protocol=squid-2.5-basic
                                        auth_param basic children 30
                                        auth_param basic realm Gerlab
                                        auth_param basic credentialsttl 4 hours
                                        acl password proxy_auth REQUIRED
                                        always_direct allow all
                                        ssl_bump server-first all

                                        Outro é que gostaria de tentar a autenticação via kerberos, com o negotiate, mas não consegui/entendi criar a keytab para o squid autenticar-se via kerberos no AD.

                                        1 Reply Last reply Reply Quote 0
                                        • N
                                          neo_X
                                          last edited by

                                          Olá pessoal,

                                          Alguém publicou o tutorial completo sobre o assunto?

                                          Tenho pfSense 2.1.3 + squid3-dev + squidguard3 + WS2008R2 e gostaria de realizar a implantação da authent modo transparente.

                                          1 Reply Last reply Reply Quote 0
                                          • machadomallM
                                            machadomall
                                            last edited by

                                            Olá a todos,

                                            Essa documentação cairia muito bem,
                                            Eu já tenho um laboratório com pfSense 2.1.3 + squid3-dev + squidguard3, autenticando no windows (AD) em modo transparente então seria perfeito.

                                            Abraços a todos.

                                            Márcio Machado
                                            Analista de Suporte Técnico
                                            Brasília-DF

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