Este erro aparece ao tentar autenticar um usuário por linha de comando usando
/usr/lib/squid/smb_auth ou na autenticação de usuários no
Squid. Veja abaixo o erro em linha de comando:
# /squid/smb_auth -W DOMINIO -U IP_DO_SERVIDOR -d
usuário senha
Domain name: DOMINIO
Pass-through authentication: no
Query address options: -U IP_DO_SERVIDOR -R
Domain controller IP address: IP_DO_SERVIDOR
Domain controller NETBIOS name: LINUX
Contents of //LINUX/NETLOGON/proxyauth:
ERR
Note que na frente de Contents of //LINUX/NETLOGON/proxyauth deveria aparecer a palavra allow e na linha debaixo OK ao invés de ERR.
Vou partir do princípio que seu compartilhamento NETLOGON já está configurado, que seu proxyauth já esta criado e com a palavra "allow" (sem aspas), e que você já deu pelo menos a permissão padrão no arquivo proxyauth (644).
O problema está na sintaxe do comando
smbclient da nova versão 3.3 do
Samba. Então, para resolver o problema, modifique a linha como no exemplo abaixo no arquivo /usr/bin/smb_auth.sh.
Linha original:
authinfo=`$SAMBAPREFIX/bin/smbclient "//$dcname/$AUTHSHARE" -I $dcip -d$ 0 -E -W "$DOMAINNAME" -c
"get $authfilebs -" 2>/dev/null`
Linha modificada:
authinfo=`$SAMBAPREFIX/bin/smbclient "//$dcname/$AUTHSHARE" -U $USER -I $dcip -d 0 -E -W "$DOMAINNAME" -c
"get $authfilebs -" 2>/dev/null`
Repare que o parâmetro -U $USER no comando smbclient foi adicionado.
Agora insira a linha export SAMBAPREFIX=/usr, como no exemplo abaixo, bem no início do arquivo:
export SAMBAPREFIX=/usr
read DOMAIN
read PASSTHROUGH
read NMBADDR
read NMBCAST
read AUTHSHARE
A terceira parte do problema é com o módulo smb_auth, onde o problema são os arquivos "nmblookup" e "smbclient" que não são encontrados pelo módulo, possivelmente a equipe de desenvolvimento do Samba mudou a localização dos arquivos. Para corrigir execute os comandos abaixo:
# mkdir -p /usr/local/samba/bin
# ln -s /usr/bin/nmblookup /usr/local/samba/bin/nmblookup
# ln -s /usr/bin/smbclient /usr/local/samba/bin/smbclient
Agora é só testar de novo e o resultado é:
# /squid/smb_auth -W DOMINIO -U IP_DO_SERVIDOR -d
usuário senha
Domain name: DOMINIO
Pass-through authentication: no
Query address options: -U IP_DO_SERVIDOR -R
Domain controller IP address: IP_DO_SERVIDOR
Domain controller NETBIOS name: LINUX
Contents of //LINUX/NETLOGON/proxyauth: allow
OK
Tomara que ajude bastante gente.