ntlm_auth — Winbind 機構の NTLM 認証機能を外部から利用可能とするツール
ntlm_auth
[-d debuglevel] [-l logdir] [-s
このツールは samba(7) システムの一部である。
ntlm_auth
はユーザを NTLM 認証方式で認証するためのヘルパーユーティリティである。ユーザ認証が成功した場合 0 を返し、アクセスが拒否された 場合は 0 を返す。ntlm_auth は winbind を使用してドメインのユーザと認証データに アクセスする。このユーティリティは外部プログラム(現在は Squid と mod_ntlm_winbind) で用いることを目的としている。
多くの機能については、 winbindd(8) デーモンが機能している必要がある。
幾つかの機能については、上記に加えて $LOCKDIR
中の winbindd_privileged
ディレクトリへアクセスできることも必要である。 これには、コマンドを root で実行するか、 winbindd_privileged
ディレクトリにアクセス可能なグループに所属させる必要がある。 セキュリティ上、 このディレクトリは誰もがアクセス可能にすべきでない。
標準入出力を用いるヘルパープログラムとして動作させる。 認識可能なプロトコルは以下のとおり:
Squid 2.4 のベーシック(平文)認証で用いるためのサーバ側ヘルパー
Squid 2.5 のベーシック(平文)認証で用いるためのサーバ側ヘルパー
Squid 2.5 の NTLMSSP 認証で用いるためのサーバ側ヘルパー
これは、 $LOCKDIR
内の winbindd_privileged
ディレクトリへのアクセスが必要である。 利用されるプロトコルについての詳細は http://devel.squid-cache.org/ntlm/squid_helper_protocol.html を参照のこと。 このプロトコルでは YR
コマンドの引数として NTLMSSP のネゴシエートパケットが含まれるように拡張されている。 (これにより、プロトコル情報の交換における情報の消失を回避している)。
Samba の NTLMSSP 認証の結果を用いる任意の外部プログラムのためのクライアント側ヘルパー
このヘルパーはクライアントであり、任意のユーザから実行可能である。 用いられるプロトコルは前述したプロトコルを逆転させたものである。 YR
コマンド (引数無し) により、 認証情報の交換が開始される。
GSS-SPNEGO を実装するサーバ側ヘルパー。 これは squid-2.5-ntlmssp
とほぼ同様のプロトコルを用いるが、微妙な違いがある。この違いについては現時点ではドキュメント化されておらず、ソースコードを確認するしかない。
これは、 $LOCKDIR
内の winbindd_privileged
ディレクトリへのアクセスが必要である。
GSS-SPNEGO を実装するクライアント側ヘルパー。 これは前述したヘルパーとほぼ同様のプロトコルを用いる。 現在のところドキュメント化されていない。
RADIUS サーバ、もしくは pppd の「winbind」プラグインに、 MSCHAP や MSCHAPv2 認証を提供するために用いられるサーバ側ヘルパー。
このプロトコルは、以下の形式の行からなる: Parameter: 値
および Paramter:: Base64エンコード値
。単独のピリオド( .
) は、(ヘルパーがユーザ認証を行なう際に) 一方が他方へ提供するデータの終了を意味する。
外部プログラムからヘルパーに情報を提供するために現在実装されているパラメータは以下のとおりである:
ユーザ名。これは Samba の unix charset でエンコードされているとみなされる。
ユーザの所属するドメイン。これは Samba の unix charset でエンコードされているとみなされる。
完全なユーザ名。これは Samba の unix charset でエンコードされているとみなされる。 また、ディリミタには winbind separator が用いられる。
8 バイトの LANMAN Challenge
の値。 これはサーバ側でランダムに生成されるか、サーバとクライアントの双方である規則に従って生成される(MSCHAPv2 の場合)。
24 バイトの LANMAN Response
の値。 これはユーザのパスワードと提供された LANMAN Challenge
から計算される。 通常、この値は認証を受けようとするクライアントからネットワーク経由で提供される。
24 バイト以上の NT Response
。 これはユーザのパスワードと提供された LANMAN Challenge
から計算される。 通常、この値は認証を受けようとするクライアントからネットワーク経由で提供される。
ユーザのパスワード。 これは、ヘルパーが平文のパスワードを用いるレガシーな環境で用いられている場合に、ネットワーククライアントから提供される。
認証に成功した際に、ログインに対応するユーザのセッション鍵を返却するか。
認証に成功した際に、ログインに対応する LANMAN セッション鍵を返却するか。
認証するユーザのユーザ名を指定する
認証するユーザのドメイン名を指定する
認証するユーザが使用するワークステーション名を指定する
NTLM チャレンジ (HEXADECIMAL エンコード)
チャレンジに対する LM レスポンス (HEXADECIMAL エンコード)
チャレンジに対する NT もしくは NTLMv2 レスポンス (HEXADECIMAL エンコード)
ユーザの平文パスワード
コマンドラインでこの指定がない場合、必要時にはプロンプトが表示される。
NTLMSSPベースのサーバロールのために、このパラメータは拡張 されたパスワードを指定し、winbinddの動作なしでテストすることを可能 にする。
LMセッションキーの検索
NTキーの要求
認証チェーン上での診断の実行。 --password
によるパスワードを使うか、 パスワード要求のプロンプトを出す。
成功のために、認証のために指定したグループ (かSIDの名前)のメンバとなるユーザを要求する。
level
は0から10までの整数値である。既定値の値は、パラメータが設定されていなければ0である。
この値を大きくするほど、サーバの動作に関するより詳細な情報がログファイルに記録される。レベル 0 では、致命的なエラーと重大な警告のみが記録される。レベル 1 は日々の運用に適しており、少量の稼働状況に関する情報を生成する。
1 より上のレベルは大量のログが生成されるので、問題解決の時にのみ使用すべきである。 3 より上のレベルは開発者だけが利用するように設計されており、莫大な量のログデータが生成される。そのほとんどは非常に謎めいた内容となっている
プログラムのバージョン番号を表示する。
サーバーが必要とする詳細な設定を含む設定ファイルを指定する。このファイルには、サーバーが提供するサービスに関する記述や、どの printcap ファイルを利用するかといった情報が含まれている。詳細はsmb.conf
を参照のこと。設定ファイルの名前の既定値は、コンパイル時に決定される。
ログ/デバッグファイルのファイル名。拡張子として".progname"
が追加される(例えば log.smbclient,log.smbd,など)。ログファイルはクライアントによって削除されることはない。
コマンドラインオプションの要約を表示する。
基本とNTLMSSP認証の両方でsquid 2.5用に設定するには、 squid.conf
ファイル中に以下を設定する。
auth_param ntlm program ntlm_auth --helper-protocol=squid-2.5-ntlmsspauth_param basic program ntlm_auth --helper-protocol=squid-2.5-basicauth_param basic children 5auth_param basic realm Squid proxy-caching web serverauth_param basic credentialsttl 2 hours
この例は、ntlm_authのパスが通っていることと、それが、上記で説明 されている、winbindd_privileged
上のグループ パーミッションが設定されていることを仮定している。
上記の例で、グループ制限を追加して、squid 2.5用にntlm_auth をセットアップするには、以下の記述を、squid.conf
に書く。
auth_param ntlm program ntlm_auth --helper-protocol=squid-2.5-ntlmssp --require-membership-of='WORKGROUP\Domain Users'auth_param basic program ntlm_auth --helper-protocol=squid-2.5-basic --require-membership-of='WORKGROUP\Domain Users'
もしも、ntlm_authの、NTLMSSP認証ヘルパ (--helper-protocol=squid-2.5-ntlmssp) に対して、MS Windows 9X または Millenium Edition 配下で MSIEを動かして認証の問題が発生したら、 の、Microsoft Knowledge Baseの#239869を見て,そこに書いてある ことを実行すること。