私は Samba を AD メンバー サーバーとして構成した 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
すべて成功しました
認証設定squid.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
...
ユーザーも追加しましたプロキシにプライベートグループ (ここで述べたように):
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あらゆるユーザーにアクセスを許可する
- セットキャッシュ有効グループ明示的にプライベート(プロセスリストで確認)
- グループメンバーシップを完全に変更するプロキシユーザーにプライベート
何も役に立たなかった
「cache_effective_group root」のみが役立ちます
Squid にルート グループを使用するのは良い考えではありません。
権限のないユーザーとして実行するために他に確認すべきことは何ですか?
答え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 認証の問題と格闘しています。これがまさに私の問題でした。所有権を変更するとすぐに ntlm 認証が機能し始めました。
答え3
sgを使って解決しました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"