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

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