Name

ntlm_auth — Winbind 機構の NTLM 認証機能を外部から利用可能とするツール

Synopsis

ntlm_auth [-d debuglevel] [-l logdir] [-s <smb config file>]

説明

このツールは samba(7) システムの一部である。

ntlm_auth はユーザを NTLM 認証方式で認証するためのヘルパーユーティリティである。ユーザ認証が成功した場合 0 を返し、アクセスが拒否された 場合は 0 を返す。ntlm_auth は winbind を使用してドメインのユーザと認証データに アクセスする。このユーティリティは外部プログラム(現在は Squidmod_ntlm_winbind) で用いることを目的としている。

その他の必要条件

多くの機能については、 winbindd(8) デーモンが機能している必要がある。

幾つかの機能については、上記に加えて $LOCKDIR 中の winbindd_privileged ディレクトリへアクセスできることも必要である。 これには、コマンドを root で実行するか、 winbindd_privileged ディレクトリにアクセス可能なグループに所属させる必要がある。 セキュリティ上、 このディレクトリは誰もがアクセス可能にすべきでない。

オプション

--helper-protocol=PROTO

標準入出力を用いるヘルパープログラムとして動作させる。 認識可能なプロトコルは以下のとおり:

squid-2.4-basic

Squid 2.4 のベーシック(平文)認証で用いるためのサーバ側ヘルパー

squid-2.5-basic

Squid 2.5 のベーシック(平文)認証で用いるためのサーバ側ヘルパー

squid-2.5-ntlmssp

Squid 2.5 の NTLMSSP 認証で用いるためのサーバ側ヘルパー

これは、 $LOCKDIR 内の winbindd_privileged ディレクトリへのアクセスが必要である。 利用されるプロトコルについての詳細は http://devel.squid-cache.org/ntlm/squid_helper_protocol.html を参照のこと。 このプロトコルでは YR コマンドの引数として NTLMSSP のネゴシエートパケットが含まれるように拡張されている。 (これにより、プロトコル情報の交換における情報の消失を回避している)。

ntlmssp-client-1

Samba の NTLMSSP 認証の結果を用いる任意の外部プログラムのためのクライアント側ヘルパー

このヘルパーはクライアントであり、任意のユーザから実行可能である。 用いられるプロトコルは前述したプロトコルを逆転させたものである。 YR コマンド (引数無し) により、 認証情報の交換が開始される。

gss-spnego

GSS-SPNEGO を実装するサーバ側ヘルパー。 これは squid-2.5-ntlmssp とほぼ同様のプロトコルを用いるが、微妙な違いがある。この違いについては現時点ではドキュメント化されておらず、ソースコードを確認するしかない。

これは、 $LOCKDIR 内の winbindd_privileged ディレクトリへのアクセスが必要である。

gss-spnego-client

GSS-SPNEGO を実装するクライアント側ヘルパー。 これは前述したヘルパーとほぼ同様のプロトコルを用いる。 現在のところドキュメント化されていない。

ntlm-server-1

RADIUS サーバ、もしくは pppd の「winbind」プラグインに、 MSCHAP や MSCHAPv2 認証を提供するために用いられるサーバ側ヘルパー。

このプロトコルは、以下の形式の行からなる: Parameter: 値 および Paramter:: Base64エンコード値。単独のピリオド( .) は、(ヘルパーがユーザ認証を行なう際に) 一方が他方へ提供するデータの終了を意味する。

外部プログラムからヘルパーに情報を提供するために現在実装されているパラメータは以下のとおりである:

Warning

実装の際は、改行文字のような微妙なデータが混入されることを考慮して、すべてのデータ(ユーザ名やパスワードを含む)を base64 エンコードするように考慮すべきである。 ただしこの場合、ヘルパー側で base64 でエンコードされている文字列をデコードする必要が発生する。
Username

ユーザ名。これは Samba の unix charset でエンコードされているとみなされる。



NT-domain

ユーザの所属するドメイン。これは Samba の unix charset でエンコードされているとみなされる。



Full-Username

完全なユーザ名。これは Samba の unix charset でエンコードされているとみなされる。 また、ディリミタには winbind separator が用いられる。



LANMAN-Challenge

8 バイトの LANMAN Challenge の値。 これはサーバ側でランダムに生成されるか、サーバとクライアントの双方である規則に従って生成される(MSCHAPv2 の場合)。


LANMAN-Response

24 バイトの LANMAN Response の値。 これはユーザのパスワードと提供された LANMAN Challenge から計算される。 通常、この値は認証を受けようとするクライアントからネットワーク経由で提供される。


NT-Response

24 バイト以上の NT Response 。 これはユーザのパスワードと提供された LANMAN Challenge から計算される。 通常、この値は認証を受けようとするクライアントからネットワーク経由で提供される。


Password

ユーザのパスワード。 これは、ヘルパーが平文のパスワードを用いるレガシーな環境で用いられている場合に、ネットワーククライアントから提供される。



Request-User-Session-Key

認証に成功した際に、ログインに対応するユーザのセッション鍵を返却するか。


Request-LanMan-Session-Key

認証に成功した際に、ログインに対応する LANMAN セッション鍵を返却するか。


--username=USERNAME

認証するユーザのユーザ名を指定する

--domain=DOMAIN

認証するユーザのドメイン名を指定する

--workstation=WORKSTATION

認証するユーザが使用するワークステーション名を指定する

--challenge=STRING

NTLM チャレンジ (HEXADECIMAL エンコード)

--lm-response=RESPONSE

チャレンジに対する LM レスポンス (HEXADECIMAL エンコード)

--nt-response=RESPONSE

チャレンジに対する NT もしくは NTLMv2 レスポンス (HEXADECIMAL エンコード)

--password=PASSWORD

ユーザの平文パスワード

コマンドラインでこの指定がない場合、必要時にはプロンプトが表示される。

NTLMSSPベースのサーバロールのために、このパラメータは拡張 されたパスワードを指定し、winbinddの動作なしでテストすることを可能 にする。

--request-lm-key

LMセッションキーの検索

--request-nt-key

NTキーの要求

--diagnostics

認証チェーン上での診断の実行。 --passwordによるパスワードを使うか、 パスワード要求のプロンプトを出す。

--require-membership-of={SID|Name}

成功のために、認証のために指定したグループ (かSIDの名前)のメンバとなるユーザを要求する。

-d|--debuglevel=level

level は0から10までの整数値である。 既定値の値は、パラメータが設定されていなければ0である。

この値を大きくするほど、サーバの動作に関するより詳細な情報が ログファイルに記録される。レベル 0 では、致命的なエラーと重大な警告 のみが記録される。レベル 1 は日々の運用に適しており、少量の稼働状況 に関する情報を生成する。

1 より上のレベルは大量のログが生成されるので、問題解決の時にのみ 使用すべきである。 3 より上のレベルは開発者だけが利用するように設計されて おり、莫大な量のログデータが生成される。そのほとんどは非常に謎めいた内容 となっている

このパラメータの指定は、smb.confファイル中の、 パラメータの 指定よりも優先する。

-V

プログラムのバージョン番号を表示する。

-s <configuration file>

サーバーが必要とする詳細な設定を含む設定ファイルを 指定する。このファイルには、サーバーが提供するサービスに関する記述や、 どの printcap ファイルを利用するかといった情報が含まれている。詳細は smb.conf を参照のこと。設定ファイルの名前の既定値は、コンパイル時 に決定される。

-l|--log-basename=logdirectory

ログ/デバッグファイルのファイル名。拡張子として ".progname" が追加される(例えば log.smbclient, log.smbd,など)。ログファイルはクライアントによって削除されることはない。

-h|--help

コマンドラインオプションの要約を表示する。