我有 Debian 8 Jessie,其中 Samba 配置为 AD 成员服务器。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
全部成功
身份验证配置squid配置文件(仅与问题相关的行):
...
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
...
我还添加了用户代理人到私钥团体 (正如这里提到的):
gpasswd -a proxy winbindd_priv
重新启动 Squid 后,我会在浏览器(任何浏览器)中看到询问用户名和密码的对话框。
当我设置
cache_effective_group root
ntlm_auth 工作正常:没有用户名和密码对话框,用户名自动获取并显示在访问日志. 删除后 Auth 不起作用缓存有效组。 这好像是ntlm_auth有效组时无法通过特权管道连接到 Winbind不是 root。
我尝试了一些:
- 更改群组所有权/var/运行/samba/winbind_privileged到代理人
- 更改权限/var/运行/samba/winbind_privileged允许任何用户访问
- 放缓存有效组明确地私钥(并在进程列表中检查)
- 彻底改变团体成员身份代理人用户私钥
没什么帮助
只有“cache_effective_group root”有帮助
对于我来说,使用 Squid 的 root 组并不是一个好主意。
还需要检查什么才能以非特权用户身份运行它?
答案1
我自己找到了答案:
Winbind 特权管道的真正位置是在 /var/lib/samba/winbindd_privileged(不是 /var/run/samba/winbind_privileged)
在杰西它拥有根:根并拥有以下权利:0750
我已改变所有权:
chown root:winbindd_priv /var/lib/samba/winbindd_privileged/
现在没有“cache_effective_group”一切正常
PS. 终于在 2014 年报告了一个错误 :) https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=754339尚未修复
答案2
一直在与 Ubuntu 16 上使用 squid 3 的 ntlm auth 问题作斗争。这正是我的问题。一旦我更改所有权,ntlm auth 就会立即开始工作。
答案3
我已经解决了使用 sgsquid.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"