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 84.0k 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.
    • 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
                                          • A
                                            Augusto
                                            last edited by

                                            Dando continuidade na questão!!!! rs

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

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

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

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

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

                                            Alguém sabe o que pode ser?

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

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