Squid ntlm_auth가 "cache_valid_group 루트"인 경우에만 작동하는 이유

Squid ntlm_auth가 "cache_valid_group 루트"인 경우에만 작동하는 이유

AD 구성원 서버로 구성된 Samba가 포함된 Debian 8 Jessie가 있습니다. Samba+Winbind는 완벽하게 작동합니다. 공유를 생성하고 AD 사용자에게 권한을 할당할 수 있습니다.getent 비밀번호로컬 및 AD 사용자 등을 모두 표시합니다.

다음과 같은 몇 가지 추가 확인 사항이 있습니다.

  • 순 테스트 조인
  • klist 및 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

모두 성공했어요

인증 구성오징어.conf(질문과 관련된 줄만):

...
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
...

나는 또한 사용자를 추가했습니다대리에게winbindd_priv그룹 (여기서 언급한 대로):

gpasswd -a proxy winbindd_priv

Squid를 다시 시작한 후 브라우저(모든 브라우저)에서 사용자 이름과 비밀번호를 묻는 대화 상자가 나타납니다.

내가 설정할 때

cache_effective_group root 

ntlm_auth는 잘 작동합니다. 사용자 이름 및 비밀번호 대화 상자가 없으며 사용자 이름이 자동으로 가져와서 표시됩니다.접속.로그. 제거하면 인증이 작동하지 않습니다.캐시_유효_그룹. 그것은 것 같다ntlm_auth그룹이 유효할 때 권한 있는 파이프를 통해 Winbind에 연결할 수 없습니다.루트가 아닙니다.

나는 몇 가지를 시도했다:

  1. 그룹 소유권 변경/var/run/samba/winbind_privileged에게대리
  2. 허가 변경/var/run/samba/winbind_privileged모든 사용자에게 액세스를 허용하려면
  3. 세트캐시_유효_그룹명시적으로winbindd_priv(그리고 프로세스 목록에서 확인하세요)
  4. 그룹 멤버십을 완전히 변경합니다.대리사용자winbindd_priv

아무것도 도움이 되지 않았습니다

"cache_valid_group 루트"만 도움이 됩니다.

Squid에 루트 그룹을 사용하는 것은 좋은 생각이 아닙니다.

권한 없는 사용자로 실행하려면 무엇을 확인해야 합니까?

답변1

나는 스스로 답을 찾았습니다.

Winbind 특권 파이프의 실제 위치는 다음과 같습니다./var/lib/samba/winbindd_privileged(NOT /var/run/samba/winbind_privileged)

Jessie에서는 다음이 소유했습니다.루트:루트다음과 같은 권리를 갖습니다:0750

소유권을 변경했습니다.

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

이제 "cache_valid_group" 없이도 모든 것이 잘 작동합니다.

추신. 마지막으로 2014년에 보고된 버그가 있습니다 :) https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=754339그건 아직 고쳐지지 않았어

답변2

Squid 3을 사용하여 Ubuntu 16에서 ntlm 인증 문제와 싸우고 있습니다. 이것이 정확한 문제였습니다. 소유권을 변경하자마자 ntlm 인증이 즉시 작동하기 시작했습니다.

답변3

sg on을 사용하여 해결했습니다.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"

관련 정보