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.
    • JackLJ
      JackL
      last edited by

      @filipe.nanclarez:

      Mas não sei como fazer (aqui no fórum) ….
      O que preciso ? Já tenho ele pronto porque estava preparando um tutorial para o meu funcionário fazer lá na empresa ...

      filipe.nanclarez, basta acessar no Blog da Comunidade Brasileira do pfSense (http://www.pfsense-br.org/blog/), se registrar (criar uma conta) e postar o tutorial por lá… Você pode usar links, imagens e tudo que julgar necessário para ilustrar o tutorial.

      Assim que tiver publicado por lá,  basta avisar por aqui que o marcelloc insere uma chamada ao seu tutorial nos links fixos que ficam aqui em cima (área "sticky" do fórum).

      Abraços!
      Jack

      Treinamentos de Elite: http://sys-squad.com
      Soluções: https://conexti.com.br

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

        @JackL:

        @filipe.nanclarez:

        Mas não sei como fazer (aqui no fórum) ….
        O que preciso ? Já tenho ele pronto porque estava preparando um tutorial para o meu funcionário fazer lá na empresa ...

        filipe.nanclarez, basta acessar no Blog da Comunidade Brasileira do pfSense (http://www.pfsense-br.org/blog/), se registrar (criar uma conta) e postar o tutorial por lá… Você pode usar links, imagens e tudo que julgar necessário para ilustrar o tutorial.

        Assim que tiver publicado por lá,  basta avisar por aqui que o marcelloc insere uma chamada ao seu tutorial nos links fixos que ficam aqui em cima (área "sticky" do fórum).

        Abraços!
        Jack

        Ok, obrigado. Assim que eu terminar aviso aqui.

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

          Galera alguem poderia post um tutorial, porque tentei fazer do geito que sta no topico mais nao conseguir

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

            @alanjhone:

            Galera alguem poderia post um tutorial, porque tentei fazer do geito que sta no topico mais nao conseguir

            Estou fazendo, assim que terminar eu aviso aqui …

            Qual erro que deu no seu setup ?

            1 Reply Last reply Reply Quote 0
            • W
              wilsaojr
              last edited by

              Filipe, Bom dia.

              Cara, estou apannhando feio aqui para implementar esse cenário, dê um help por favor.

              Instalei os pacotes conforme dicas do Marcello, porém quando instalo o samba via pkg_add ele não instala o suporte a ADS, como você fez para instala-lo?

              mesmo sem o suporte ao ADS, quando teste via kinit mesmo tendo certeza que coloco a senha correta ele retorna kinit: password incorrect

              dê uma luz por favor, nobre mortal que já passou por isso!!!

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

                Olá pessoal estou com problema, nao estou conseguindo achar o arquivos de configuração do heimdal mesmo reiniciando ou fazendo logout.
                Alguem sabe porque acontece, e qual a solução?

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

                  cristianonix,

                  Bem vindo ao fórum!  :)

                  Você instalou o pacote seguiu o procedimento?

                  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

                    Obrigado , estou feliz em entrar no fórum pfsense, espero ajudar muito e  ser ajudado.
                    Gostaria de agradecer pelo seu excelente trabalho Marcello Coutinho, pelo que voce fez no dansguardian.Muito Fera.

                    Uso pfsense 2.0.1  64bits.

                    Instalei o seguintes pacotes, e instalei as bibliotecas do do procedimento.
                    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

                    Reiniciei e fiz logout, mesmo assim não funcionou

                    Não acho os arquivos de confs do kerberos, só achei o do samba.
                    Preciso disso para autenticar no dominio, via ntlm.

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

                      @cristianonix:

                      Não acho os arquivos de confs do kerberos, só achei o do samba.

                      Se me recordo bem do tutorial, alguns arquivos são criados na mão.

                      leia o post de novo com mais atenção ainda.
                      O procedimento não é trivial mas também não é impossivel  :)

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

                      Help a community developer! ;D

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

                        Ok, vou ler novamente.

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