我將 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不是根。
我嘗試了一些:
- 更改群組所有權/var/run/samba/winbind_privileged到代理人
- 更改權限/var/run/samba/winbind_privileged允許任何用戶訪問
- 放快取有效組明確地winbindd_priv(並在進程列表中檢查它)
- 徹底改變組成員身份代理人用戶至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"