Por que o Squid ntlm_auth funciona somente quando o “cache_effective_group root”

1

Eu tenho o Debian 8 Jessie com o Samba configurado como servidor membro do AD. O Samba + Winbind funciona perfeitamente: posso criar compartilhamentos e atribuir direitos para usuários do AD; getent passwd mostra os usuários locais e do AD, etc.

Algumas verificações adicionais, como:

  • net testjoin
  • klist e klist -k /etc/krb5.keytab
  • wbinfo -t
  • wbinfo -a mydomain \ myuser% mypasswd
  • wbinfo -u
  • / usr / local / bin / ntlm_auth --helper-protocol = squid-2.5-basic

todos são aprovados

Configuração de autenticação no squid.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
...

Também adicionei o proxy ao winbindd_priv group ( como mencionado aqui ):

gpasswd -a proxy winbindd_priv

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

Quando eu defino

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 em access.log . A autenticação não funciona quando eu removo cache_effective_group . Parece que o ntlm_auth não pode se conectar ao Winbind via pipe privilegiado quando o grupo efetivo não é root .

Eu tentei alguns:

  1. alterar a propriedade do grupo de / var / run / samba / winbind_privileged para o proxy
  2. altere a permissão de / var / run / samba / winbind_privileged para permitir o acesso a qualquer usuário
  3. defina cache_effective_group explicitamente como winbindd_priv (e verifique na lista de processos)
  4. altere completamente a participação no grupo do usuário proxy para winbindd_priv

Nada ajudou

Apenas "cache_effective_group root" ajuda

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

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

    
por Yumashka 09.10.2015 / 18:04

3 respostas

1

Eu encontrei uma resposta sozinho:

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

Em Jessie, ele é propriedade de root: root e tem direitos: 0750

Eu alterei a propriedade:

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

Agora tudo funciona bem sem "cache_effective_group"

PS. Finalmente, há um bug relatado em 2014 :) link que ainda não foi corrigido

    
por 09.10.2015 / 22:35
0

Já lutei um problema com a autenticação ntlm no Ubuntu 16 com o squid 3. Esse era o meu problema exato. Assim que alterei a propriedade, o ntlm auth começou a funcionar imediatamente.

    
por 25.08.2017 / 16:10
0

Eu resolvi usar o sg em squid.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"
    
por 13.10.2018 / 22:15