Chapter 19. ドメイン間の信頼関係

John H. Terpstra

Samba Team

Rafal Szczesniak

Samba Team

Jelmer R. Vernooij

drawing 
The Samba Team

Stephen Langasek

April 3, 2003

Table of Contents

機能と利便性
信頼関係に関する背景情報
ネイティブなMicrosoft Windows NT4の信頼関係の設定
NT4ドメイン信頼関係の作成
NT4ドメイン信頼関係の構築完了
ドメイン間信頼関係の機能
SambaにおけるNT形式のドメイン信頼関係の設定
信頼されるドメインとしてのSamba
信頼するドメインとしてのSamba
Windows 2000との間での、NT4形式のドメイン信頼関係
よくあるエラー
信頼されるドメインからのブラウジングに失敗する
LDAP ldapsamと古いバージョンのsmbldap-toolsに関する問題

Samba はNT4 形式のドメイン信頼関係をサポートする。NT4 形式のドメインから Samba に移行 したいが、Active Directory や LDAP ベースの認証バックエンドを採用したくないという多くの サイトが使用したいと思う機能である。この章では、信頼関係に関する背景情報と信頼関係の 作成方法を説明する。Samba は NT4 を信頼することができ(その逆も可)、また Samba 対 Samba の 信頼を作成することも可能である。

ドメイン間の信頼関係を使う場合、winbindを使うことが必要であるので、 winbinddが動いていなければならない。このモードにおけるwinbindの 動作は、smb.confファイル中の有効なUIDレンジと有効なGIDレンジの指定に依存する。 これらは以下のように指定する:

idmap uid = 10000-20000
idmap gid = 10000-20000

指定されたレンジの値はホストOSで使っている値とPOSIXユーザーアカウント用のpassdbバック エンドで使っている値を上書きしてはならない。最大値はホストOSによって許可されている 上限の値で制限される。これはUNIXカーネルで制限されるパラメーターである。Linux kernel 2.6ベースのシステムは最大値として4294967295(符号なし32ビット値)である。

Note

winbindを使用するのはSambaが信頼しているドメインの時のみであり、信頼されたドメインの時 には不要である。

機能と利便性

Samba は Samba と Microsoft Windows NT4 形式と同じように Samba 間の信頼関係に参加できる。 これは、Microsoft Windows NT4 と同様な拡張性を Samba に付与する。

Samaba-3はLDAPのような拡張性のあるバックエンド認証データベースと共に動作でき、プライマリ 及びバックアップドメイン管理モードで動作できるので、管理者はドメイン間の信頼関係を使用 する代わりの選択肢を考慮するべきである。なぜならば、この機能はその動作原理からして、 本質的に脆弱なものだからである。このことこそが、Microsoft Active Directory が開発され 採用される主な理由でもある。

信頼関係に関する背景情報

MS Windows NT3/4形式のセキュリティドメインは、階層がないセキュリティ構造を採用している。 この構造の制約が、大規模な組織では Microsoft Windows ネットワークの拡張性に影響を与える ことはよく知られている。さらに、この設計の結果であるフラットな名前空間は、大規模で 多様性に富む組織における管理責務の代行に多大な影響を及ぼす。

Microsoft は、古いテクノロジーの制約を回避するために、Active Directory Service(ADS)を、 Kerberos及びLDAPをベースとして開発した。しかし全ての組織が ADSを採用する準備ができ、 その意思があるわけではない。小規模の組織にとっては古い NT形式のドメインセキュリティで 充分である。また、ADS を採用するために面倒な変更作業を行うことを望まない保守的な ユーザーも残っている。

Microsoft Windows NTで、Microsoft はあるドメインのユーザーが、別のドメインのアクセス権や 他の権限を付与されるような機構を実現するため、多様なセキュリティドメインの存在を可能に する機能を導入した。この機能を信頼(Trusts)という言葉で言い表わす。 具体的には、あるドメインが別のドメインのユーザーを信頼するという ことである。あるドメインのユーザーが別のセキュリティドメインのユーザーになれる時、 そのようなドメインを信頼される(trusted)ドメインと言う。そのようなユーザーに権利や権限を 与えた方のドメインは信頼する(trusting) ドメインと言う。NT3.x/4.0 では信頼関係は一方向 のみである。そのため双方のドメインのユーザーが他方のドメインで権限と権利を持とうとする 場合には、それぞれの方向に一つずつ、二つの信頼関係を設定する必要がある。

NT4形式のMicrosoft セキュリティドメインでは、全ての信頼は非推移的である。この意味は、 例えば三つのドメインがあり(仮に赤、白、青とする)、その赤と白が信頼関係を持ち、また 白と青が信頼関係を持つとする。この場合、赤と青のドメインの間に暗黙に了解された 信頼関係を持つわけではない。関係は明示的でなければならず、推移的ではない。

Microsoft Windows 2000 から登場した新たな ADS セキュリティの方式では、信頼関係は既定値で 双方向になっている。また、全ての ADS ドメイン間の信頼は推移的である。上の赤、白、青 ドメインの例では、Windows 2000 及び ADS を使用する場合、赤と青ドメインは互いに信頼できる。 これは ADS ドメインの本質的な特長である。Samba は Microsoft Windows NT4 方式のドメイン間 信頼機能を実装し、Microsoft Windows NT4 方式のドメインと類似した方法で、 Microsoft Windows 200x ADS セキュリティドメインとの相互運用を実現している。

ネイティブなMicrosoft Windows NT4の信頼関係の設定

ドメイン間信頼関係を作成するには二つのステップがある。双方向の信頼関係を有効にする ためには、双方のドメイン管理者が相手のドメインのために信頼アカウントを作成し、 セキュリティに関する信用情報を確認する際に使用できるようにしなければならない。

NT4ドメイン信頼関係の作成

Microsoft Windows NT4では、全てのドメインの信頼関係は ドメインユーザーマネジャを使って設定する。これは、 メニューバーのドメインユーザーマネジャーポリシーのエントリから行う。 ポリシーメニューから信頼関係を選択する。 信頼する側のドメインと記された低い方のボックスの隣に二つの ボタンがある。 追加削除である。 追加ボタンは、自ドメイン内のユーザーにアクセス権限を付与することが できるリモートドメイン名を入力するパネルを開く。また、信頼するドメインが信頼される ドメインのユーザーを認証するときに使用する、信頼関係のパスワードも入力する必要がある。 パスワードは(標準的な確認の手続きとして)二度入力しなければならない。

NT4ドメイン信頼関係の構築完了

信頼関係は、もう一方のドメイン(信頼するドメイン)が信頼されるドメインと適切に接続された 場合のみ動作する。信頼関係を完成するためには、管理者はまず、ドメインユーザーマネジャを 起動し、メニューからポリシーを選択し、 それから信頼関係を選択し、信頼される側のドメイン と記されたボックスの横の追加ボタンをクリックする。パネルが 開いたらリモートドメイン名とパスワードを入力する。

ドメイン間信頼関係の機能

双方向の信頼関係は、二つの方方向の信頼がそれぞれ互いの方向に作成されることで築かれる。 二つのMicrosoft Windows NT4ドメイン間で片方向の信頼が確立されている場合(仮にDomAとDomB とする)、次の機能が可能になる:

Figure 19.1. 信頼の概要

信頼の概要

  • DomA(DomB への信頼接続を完了する)はDomBを信頼する

  • DomAが信頼するドメインである。

  • DomBが信頼されるドメインである(信頼アカウントの起点)。

  • DomB のユーザーは DomA のリソースにアクセスすることができる。

  • DomA のユーザーは DomB のリソースにアクセスすることはできない。

  • DomB のグローバル・グループは DomA で使用できる。

  • DomA のグローバル・グループは DomB では使用できない。

  • DomB は DomA のクライアントワークステーションのログオンダイアログボックスに表示される。

  • DomA は DomB のクライアントワークステーションのログオンダイアログボックスに表示されない。

  • 信頼するドメインのユーザー/グループは信頼されるドメインへの権限、許可、 アクセスは与えられない。

  • 信頼するドメインは信頼されるドメインにアクセスしたり(ユーザー/グローバルグループの) アカウントを使用することができる。

  • 信頼されるドメインの管理者は信頼するドメイン内で管理権限を付与される。

  • 信頼されるドメインのユーザーは信頼するドメインで権利や特権を付与される。

  • 信頼されるドメインのグローバルグループは信頼するドメインで権利や許可を 与えられる。

  • 信頼されるドメインのグローバルグループはMicrosoft Windowsドメインメンバー マシンのローカルグループのメンバーになることができる。

SambaにおけるNT形式のドメイン信頼関係の設定

ここでは、Samba サーバーがドメイン間の信頼関係に参加できるようにするための設定方法を、 簡潔に紹介する。Samba における信頼関係のサポートは初期段階なので、正しく機能しない ことがあっても驚かないこと。

下記における手順の説明では、信頼関係の相手先のドメインは、Windows NT4 サーバーで管理 されていると仮定する。しかし、リモート側は Samba ドメインであっても構わない。 この文書を読み終わるころには明らかになることであるが、以下に書かれている説明のうち、 Samba固有の部分のみを合わせると、純粋な Samba 環境におけるドメイン信頼の構築の説明と なる、ということである。

信頼されるドメインとしてのSamba

Samba PDC を、信頼関係のある二者のうち信頼される側に設定するためには、まず信頼する側の ドメインのための特別なアカウントを作成する必要がある。そのためには smbpasswdユーティリティを使う。信頼されるドメインアカウントを 作成するのは、信頼されるマシンアカウントを作成するのに似ている。仮にドメイン名をSAMBA とし、リモートドメインをRUMBAとする。最初のステップは好みのシェルからこのコマンドを 発行することである:

root#  smbpasswd -a -i rumba
New SMB password: XXXXXXXX
Retype SMB password: XXXXXXXX
Added user rumba$

ここで、-aはパスワードデータベースの中に新規のアカウントを追加するこ とを意味し、-iは、 このアカウントをドメイン間の信頼フラグ付きで作成せよということを意味する。

このアカウント名はrumba$(リモートドメインの名前)である。もしもこの ステップが失敗した場合、信頼アカウントがシステムのパスワードデータベース (/etc/passwd)に追加されたか確認すること。もしも追加されて いなければ、手動で追加し、上のステップを再度行うこと。

このコマンドを実行後、そのアカウントのパスワードの入力要求が来る。ここでは任意の パスワードを使用できるが、Windows NTではアカウント作成後7日間はパスワードを変更できない ので、注意すること。コマンドの実行が成功すると、新しいアカウントのエントリを、 (設定した環境でのの標準的な方法で)見ることができるので、アカウント名が本当にRUMBA$で、 フラグ欄にIが設定されているか確認する。この信頼関係の設定を完成する ために、次は Windows NTサーバーの方から信頼を設定する。

ドメインユーザーマネージャを開き、メニューから ポリシーを選び、信頼関係を選択する。 信頼されたドメインリストボックスのそばの追加 ボタンをクリックする。信頼されたドメインの名前とそのパスワードを入力するダイアログ ボックスが表示される。リモートドメインの名前としてSAMBAを入力し、アカウント作成時に 使用したパスワードを入力する。OKをクリックし、すべてが何事も なくうまくいくならば、 信頼関係が確立しました(訳注:英文では Trusted domain relationship successfully established )が表示される。

信頼するドメインとしてのSamba

ここでは作業の順番が逆になる。今回も、Samba PDCに管理されるドメインを「SAMBA」とし、 NTが管理するドメインを「RUMBA」とする。

一番初めのステップはRUMBAのPDCにSAMBAドメインのアカウントを追加することである。

ドメインユーザーマネージャを起動し、ポリシー信頼関係を選択する。次に、 信頼するドメインのボックスのそばの追加 ボタンをクリックし、信頼されるドメイン(SAMBA)の名前を入力し、信頼関係を確立するために 使用するパスワードを入力する。

パスワードは任意に選択できる。Sambaサーバーでは、いつでも容易にパスワードを変更することが できる。パスワードを確定するとアカウントは準備完了である。次は Sambaの番である。

rootでログインし、好みのシェルを使って以下のコマンドを発行する:

root# net rpc trustdom establish rumba

Windows NT4サーバーで入力したばかりのパスワードが聞かれる。時々、 NT_STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNTというエラーメッセージが 現れるが、問題はないので無視して構わない。これは入力したパスワードが正しく、この アカウントは通常の接続ではなく、ドメイン間接続のための準備ができている、と NTサーバーが 言っている、という意味である。その後、(大規模ネットワークの場合は特に)しばらく時間が かかるかもしれないが、我慢する。しばらくするとSuccessという メッセージが表示される。おめでとう! これで信頼関係が成立した。

Note

secrets.tdbファイルに書き込み権がなければならないので、上記の コマンドはrootとして実行すること。

Windows 2000との間での、NT4形式のドメイン信頼関係

ドメインユーザーマネージャが無いにもかかわらず、ミックスモードで 動作するWindows 2000ドメインコントローラーを、信頼するサーバーとして、NT4形式の信頼関係を設定 することは可能である。また、SambaがWindows 2000サーバーを信頼することもできるはずだが、 この領域ではさらにテストが必要である。

前述のように、 Sambaサーバー上でのドメイン間信頼関係の作成 で、信頼関係を作成したら、SambaユーザーにアクセスさせたいリソースのあるドメインのAD コントローラー上で、Active Directoryドメインと信頼関係 ダイアログボックスを開く。NT4形式の信頼関係は推移的ではないので、自ドメインのユーザーが、 AD内の複数のミックスモードのドメインにアクセスできるようにしたい場合は、各ドメインに ついて上記の手順を繰り返さなければならない、ということを忘れないこと。 Active Directoryドメインと信頼関係を開き、Samba ドメインを信頼する Active Directory ドメインの名前を右クリックし、プロパティを選択し、 信頼タブをクリックする。パネルの上部に このドメインによって信頼されるドメイン:という名前の付いた一覧が 表示され、その隣に追加...ボタンがある。このボタンをクリックすると、 NT4のように、信頼されるドメインの名前と関係パスワードを聞かれる。OK をクリックし、しばらくすると、 Active Directoryから、信頼されるドメインが追加されて信頼関係が確認された というメッセージが表示される。これで、自システムのSamba ユーザーに、ADドメインの リソースへのアクセス権限が付与された。

よくあるエラー

ドメイン間の信頼関係は、不安定な、又は頻繁にダウンするようなネットワークで試みるべきでは ない。ネットワークの安定性と整合性は、分散型ネットワークにおけるドメイン間の信頼関係の ための必須要件である。

信頼されるドメインからのブラウジングに失敗する

信頼されるWindows200xドメインのマシンから信頼するSambaドメインのWindows200x メンバーをブラウズしようとすると、次のエラーが出

システムはセキュリティを侵害しようとするような行為を検出しました。
認証を受けるサーバーに連絡が取れることを確認してください。

接続しようとしているサーバーのイベントログに、下位レベルのドメインのメンバーで あるためにグループポリシーが適用されない、というエントリがある。

問題のマシンのコンピューターアカウントが Windows200xドメインにあり、それが無効化されて いる場合にこの問題が起こり得る。コンピューターアカウントがない(削除されたか、もともと 存在しない)か、そのアカウントを有効になっていない(すなわち、そのアカウントを他の ドメインに参加させただけという)場合は、問題は起こらないようである。既定値では、 ドメイン(Windows 200xドメイン) から離脱する場合、コンピューターは自動的にドメイン内の コンピューター・アカウントを無効にしようとする。アカウントを無効化する権限をもつ アカウントととして操作していた時にドメインからマシンを離脱した場合、アカウントの 無効化が実行される。そうでなければ実行されない。

LDAP ldapsamと古いバージョンのsmbldap-toolsに関する問題

ドメイン間の信頼関係を設定するために、信頼アカウントを作成するために、 smbldap-useraddスクリプトを使うと、信頼関係の設定処理は失敗する。 LDAPデータベース中に作成されたアカウントはアカウントフラグとして [W ]となっていて、ドメイン間の信頼関係が動作する時に 必要である[I ]がない。

これに対する簡単な解決方法がある。 以下のようにして、マシンアカウントを作成する:

root#  smbldap-useradd -w domain_name

次に、信頼アカウントのパスワードを設定する:

root#  smbldap-passwd domain_name\$

テキストエディターを使って以下のファイルを作成する:

dn: uid=domain_name$,ou=People,dc={your-domain},dc={your-top-level-domain}
changetype: modify
sambaAcctFlags: [I         ]

次に、以下のようにして、LDAPデータベースにテキストファイルを適用する:

root#  ldapmodify -x -h localhost \
 -D "cn=Manager,dc={your-domain},dc={your-top-level-domain}" \
 -W -f /path-to/foobar

NT4のドメインユーザーマネージャから片方向の信頼関係を作成した後、以下を実行する:

root#  net rpc trustdom establish domain_name

この機能は Samba と NT4 ドメインで動作し、Samba とミックスモードの Windows 200x ADSでも 動作する。samba と NT の両方の DC が同じ WINS サーバーを使用していなければならず、 そうでなければ信頼関係は動作しない。