web-dev-qa-db-ja.com

Squidプロキシ認証-最も簡単な方法

わかりました、タイトルは本当にそれをすべて言います。

最終目標は、エンドユーザーのプロキシ認証を実装することです。ユーザーのシステムはほとんど(95%)Windowsベースであり、プロキシはsquid2.7を実行するDebianLennyです。

最初にntlm_authヘルパーを使用して実装する方法を調査しました。これはLennyのsquid2.7に付属していますが、失敗します。一部のユーザーは正常に認証され、一部のユーザーは何らかの理由で認証されません。相関関係を見つけることができませんでした。wiresharkを使用して実際のsmbパケットフローを調べても役に立ちませんでした。完全にランダムに見えます。さまざまな物理マシン/アカウントで試したので、除外されました。

次に、2つの可能なルートが利用可能であるようです。 winbind(sambaを使用)を使用し、ldap + kerberosを使用します。

私は個人的にsambaの使用に反対しています。なぜなら、最初にドメインへの参加などの特定のフープをジャンプする必要があり、次に(そしてこれはクランチャーです)-私は必要ありませんsambaが提供するすべての機能。そのマシンに、Windowsのような共有などのすべての機能を搭載することは望ましくありません。 sambaの使用に頼る必要がある場合は、機能の可能な限り最小限のサブセットのみを使用したいと思います。これは、sambaのntlm_auth(winbindを使用)を取得してユーザーを認証するのに十分な量です。誰かがこの種のセットアップの経験がありますか?

私は読んだ この質問 (実際には質問ではない:P)そして私は私が見たものが本当に好きでした-kerberosは可能な解決策のようであり、フットプリントはそれほど大きくありません。問題は、これをWindows-2000バージョンのドメインで実行することは可能ですか?そして、ブラウザはどのようにサポートされていますか?

2
shylent

ActiveDirectoryサーバーを使用していると思います。私たちは同様のことをしました、そして最も簡単な方法はこのようなntlm_authヘルパー(私のsquid.confの一部)を使うことでした:

auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
auth_param ntlm children 10
auth_param ntlm keep_alive on

Sambaをインストールして、Windowsドメインに参加する必要があります。 smb.confは次の設定を使用する必要があります。

security = ADS
realm = your-dns-domain
password server = your-active-directory-server
winbind enum groups = yes
winbind enum users = yes
winbind uid = 10000-20000
winbind gid = 10000-20000
winbind use default domain = yes

/etc/krb5.confも変更する必要があると思います。

[libdefaults]
default_realm = your-dns-domain

[realms]
your-dns-domain = {
kdc = your-ad-server
}

その後、Windowsドメインに参加できるようになります。

net rpc join -S PDC-U管理者

最終的には、Windowsからのシングルサインログインを使用するセットアップが必要です。 Internet Explorer(真剣に使用する必要がある場合)とFirefoxの両方が、認証資格情報を送信する方法を知っています。

NTLMを知らないアプリケーションの場合は、基本認証にもフォールバックを追加する必要があります。私はまだそれをテストしていません。

リンク:

7
Signum