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 is an integer from 0 to 10. The default value if this parameter is not specified is 0.

The higher this value, the more detail will be logged to the log files about the activities of the server. At level 0, only critical errors and serious warnings will be logged. Level 1 is a reasonable level for day-to-day running - it generates a small amount of information about operations carried out.

Levels above 1 will generate considerable amounts of log data, and should only be used when investigating a problem. Levels above 3 are designed for use only by developers and generate HUGE amounts of log data, most of which is extremely cryptic.

Note that specifying this parameter here will override the parameter in the smb.conf file.

-V|--version

Prints the program version number.

-s|--configfile <configuration file>

The file specified contains the configuration details required by the server. The information in this file includes server-specific information such as what printcap file to use, as well as descriptions of all the services that the server is to provide. See smb.conf for more information. The default configuration file name is determined at compile time.

-l|--log-basename=logdirectory

Base directory name for log/debug files. The extension ".progname" will be appended (e.g. log.smbclient, log.smbd, etc...). The log file is never removed by the client.

-h|--help

Print a summary of command line options.