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.
    • C
      cristianonix
      last edited by

      Bom refiz todo o processo, criei os arquivos olha ai, mas deu problema, nao mostra os usuários e grupos utilizando wbinfo -u e grupos, wbinfo -g, mas wbinfo -t  e wbinfo -p  funciona. Já consegui adicionar o servidor no AD, pois aparece meu netbios name no computers do Ad, só que nao listo usuário no meu servidor linux. SAbe oque pode ser?

      cat /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 = FREESOLUTIONS.INFO
         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]
      
         FREESOLUTIONS.INFO = {
                 kdc = 192.168.100.181:88
                 admin_server = 192.168.100.181:749
                 default_domain = domain.
         }
      
      [domain_realm]
      
      .domain. = FREESOLUTIONS.INFO
      domain. = FREESOLUTIONS.INFO
      
      [kdc]
      
      profile = /var/heimdal/kdc.conf
      
      [appdefaults]
         pam = {
                 debug = false
                 ticket_lifetime = 36000
                 renew_lifetime = 36000
                 forwardable = true
                 krb4_convert = false
         }
      
      

      cat /usr/local/etc/smb.conf

      [global]
        netbios name = FREEBSD
        workgroup = FREESOLUTIONS
        realm = FREESOLUTIONS.INFO
        server string = Domain Proxy Server
        encrypt passwords = yes
        security = ADS

      wins server = 192.168.100.181

      password server = 192.168.100.181

      password server = FREESOLUTIONS.INFO

      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
      hosts allow = 192.168

      –------------

      cat /var/heimdal/kadm5.acl

      */administrador@FREESOLUTIONS.INFO     *

      –-----

      cat /var/heimdal/kdc.conf

      [kdcdfefaults]
             acl_file = /var/heimdal/kadm5.acl
             dict_file = /usr/share/dict/words
             admin_keytab = /var/heimdal/kadm5.keytab
             v4_mode = noreauth
      [libdefaults]
             default_realm = FREESOLUTIONS.
      [realms]
             FREESOLUTIONS. = {
                     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
                  }

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

        Onde você quer listar estes usuarios?

        Se a maquina já esta no ad, coloque as regras do squid,squidguard/dansguardian e pronto.

        att,
        Marcello Coutinho

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

        Help a community developer! ;D

        1 Reply Last reply Reply Quote 0
        • C
          cristianonix
          last edited by

          quando digito  wbinfo -u

          não aparece nada no pfsense.

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

            você já colocou as configurações de autenticação no squid?

            O que aparece no access.log?

            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,

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