為什麼 Squid ntlm_auth 只在「cache_ effective_group root」時才起作用

為什麼 Squid ntlm_auth 只在「cache_ effective_group root」時才起作用

我將 Debian 8 Jessie 與 Samba 設定為 AD 成員伺服器。 Samba+Winbind完美配合:我可以為AD使用者建立共享並分配權限;取得密碼顯示本地用戶和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

一切都成功了

身份驗證配置在魷魚設定檔(僅與問題相關的行):

...
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_ effective_group root」有幫助

對我來說,為 Squid 使用 root 群組並不是一個好主意。

要以非特權用戶身份運行它還需要檢查什麼?

答案1

我自己找到了答案:

Winbind 特權管道的真正位置是/var/lib/samba/winbindd_privileged不是 /var/run/samba/winbind_privileged

在 Jessie 中,它的擁有者是根:根並擁有以下權利:第0750章

我改變了所有權:

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

現在沒有「cache_ effective_group」一切正常

附言。 2014 年終於回報了一個錯誤:) https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=754339尚未修復

答案2

一直在使用魷魚 3 在 Ubuntu 16 上解決 ntlm auth 問題。一旦我更改了所有權,ntlm auth 就立即開始工作。

答案3

我已經解決了使用 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"

相關內容