Autenticação "transparente" com pfsense + squid + active directory
-
você já colocou as configurações de autenticação no squid?
O que aparece no access.log?
-
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 winbindAbaixo 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. -
ubezerra,
Bem vindo ao fórum! :)
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á subindoatt,
Marcello Coutinho -
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.9Vou 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?
-
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.
-
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 layoutSerá que você poderia me ajudar?
Obrigado. -
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 -
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. -
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 nameOs que estão em vermelho eu tentei…
-
Os que estão em vermelho eu tentei…
Viu se no log do squid aparece o usuário autenticado?
Já tentou o sarg????
-
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 secrettrabalho parado até aqui.....
-
um tutorial detalhado em inglês a partir deste tópico
http://forum.pfsense.org/index.php/topic,58700.0.html
contribuição: wheelz
-
Olá pessoal,
Alguém criou o procedimento completo no site?
[]'s
-
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. :)
-
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. -
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?
-
Pode desconsiderar o post anterior….
Funcionou aqui!....bobeira minha!!
100% agora!
-
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!
-
Caros,
Tenho um ambiente funcionando com autenticação transparente, em um dominio samba4, via ntlm com ssl.
Meus problemas são quando um usuário ou computador fora do domínio tenta acessar via pop-up, e não autentica. O mesmo ocorre com a VPN, não autentica via pop-up.
Segue abaixo a configuração utilizada.
auth_param ntlm program /usr/local/bin/ntlm_auth –use-cached-creds --domain=GERLAB --helper-protocol=squid-2.5-ntlmssp
auth_param ntlm children 30
auth_param ntlm credentialsttl 4 hours
auth_param basic program /usr/local/bin/ntlm_auth --helper-protocol=squid-2.5-basic
auth_param basic children 30
auth_param basic realm Gerlab
auth_param basic credentialsttl 4 hours
acl password proxy_auth REQUIRED
always_direct allow all
ssl_bump server-first allOutro é que gostaria de tentar a autenticação via kerberos, com o negotiate, mas não consegui/entendi criar a keytab para o squid autenticar-se via kerberos no AD.
-
Olá pessoal,
Alguém publicou o tutorial completo sobre o assunto?
Tenho pfSense 2.1.3 + squid3-dev + squidguard3 + WS2008R2 e gostaria de realizar a implantação da authent modo transparente.