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

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