Por que o Squid ntlm_auth funciona apenas quando "cache_efficient_group root"

Por que o Squid ntlm_auth funciona apenas quando "cache_efficient_group root"

Tenho o Debian 8 Jessie com Samba configurado como servidor membro do AD. Samba+Winbind funciona perfeitamente: posso criar compartilhamentos e atribuir direitos para usuários AD;obter senhamostra usuários locais e AD, etc.

Algumas verificações adicionais como:

  • junção de teste líquido
  • klist e klist -k /etc/krb5.keytab
  • wbinfo -t
  • wbinfo -a meudomínio\meuusuário%minhasenha
  • wbinfo -você
  • /usr/local/bin/ntlm_auth --helper-protocol=squid-2.5-basic

todos foram bem sucedidos

Configuração de autenticação emsquid.conf(apenas linhas relacionadas à pergunta):

...
auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
auth_param ntlm children 16 startup=5 idle=5
...
acl AuthorizedUsers proxy_auth REQUIRED
http_access allow AuthorizedUsers
http_access deny all
...

Eu também adicionei usuárioprocuradorparawinbindd_privgrupo (como mencionado aqui):

gpasswd -a proxy winbindd_priv

Depois de reiniciar o Squid, recebo uma caixa de diálogo solicitando nome de usuário e senha no navegador (qualquer navegador).

Quando eu definir

cache_effective_group root 

ntlm_auth funciona bem: sem caixas de diálogo de nome de usuário e senha, o nome de usuário é obtido automaticamente e exibido emacesso.log. Auth não funciona quando eu removocache_efetivo_grupo. Parece quentlm_authnão é possível conectar-se ao Winbind via canal privilegiado quando o grupo é efetivonão é raiz.

Eu tentei alguns:

  1. alterar a propriedade do grupo de/var/run/samba/winbind_privilegedparaprocurador
  2. alterar permissão de/var/run/samba/winbind_privilegedpara permitir acesso a qualquer usuário
  3. definircache_efetivo_grupoexplicitamente parawinbindd_priv(e verifique na lista de processos)
  4. mudar completamente a associação ao grupo deprocuradorusuário parawinbindd_priv

Nada ajudou

Apenas "cache_efficient_group root" ajuda

Não é uma boa ideia usar o grupo raiz para o Squid.

O que mais verificar para executá-lo como usuário sem privilégios?

Responder1

Eu encontrei uma resposta sozinho:

O verdadeiro lugar para o pipe privilegiado do Winbind é/var/lib/samba/winbindd_privileged(NÃO /var/run/samba/winbind_privileged)

Em Jessie, é propriedade deraiz: raize tem direitos:0750

Mudei de propriedade:

chown root:winbindd_priv /var/lib/samba/winbindd_privileged/

Agora tudo funciona bem sem "cache_efficient_group"

PS. Finalmente há um bug relatado em 2014 :) https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=754339isso ainda não foi corrigido

Responder2

Estou lutando contra um problema com autenticação ntlm no Ubuntu 16 com o squid 3. Esse foi exatamente o meu problema. Assim que mudei a propriedade, o ntlm auth começou a funcionar imediatamente.

Responder3

Eu resolvi usando sg onsquid.conf

auth_param ntlm program /usr/bin/sg winbindd_priv -c "/usr/bin/ntlm_auth --diagnostics --helper-protocol=squid-2.5-ntlmssp --require-membership-of=MYDOMAINNAME+WEBGROUPS"

informação relacionada