Linux の 302 (Mixed Environment) 試験対策: ドメイン制御

Samba を使用したネットワーク認証

SMB/CIFS の専門用語で言うドメインは、ワークグループと似ています。つまり、ドメインとは関連するコンピューターの集まりであり、これらのコンピューターは通常、単一のローカル・ネットワーク上に存在します。ただし、ドメインにはドメイン・コントローラーと呼ばれる特殊なコンピューターがあります。ドメイン・コントローラーはドメイン内のすべてのサーバーへのログオンを管理するだけでなく、その他にもいくつかのサービスを提供します。Samba はドメイン・コントローラーとして機能することができますが、そのためには、設定しなければならない Samba オプションがあります。

Roderick W. Smith, Consultant and author

Roderick Smith author photoRoderick W. Smith はコンサルタントであり、『The Definitive Guide to Samba 3』、『Linux in a Windows World』、『Linux Professional Institute Certification Study Guide』など、UNIX や Linux に関する数々の著作もあります。彼は現在、ロードアイランドのウーンソケットに住んでいます。



2011年 9月 16日 (初版 2011年 8月 16日)

この連載について

この連載は Linux システム管理タスクの学習に役立つだけでなく、LPIC-3 (Linux Professional Institute Certification レベル 3) 試験に備えるための教材にもなります。

連載の各記事についての説明とリンクについては、developerWorks の LPIC-3 ロードマップを参照してください。現在進行中のこのロードマップは、LPIC-3 試験の最新の目標 (2010年 11月) を反映しています。完成した記事はその都度ロードマップに追加されていきます。

概要

この記事では、以下の内容について学びます。

  • ドメイン・メンバーシップ
  • プライマリー・ドメイン・コントローラーの構成
  • バックアップ・ドメイン・コントローラーの構成
  • ドメインへのコンピューターの追加
  • ログオン・スクリプトの管理
  • ローミング・プロファイルの管理
  • システム・ポリシーの管理

この記事は、LPIC-3 Specialty「302 Mixed Environment Exam」試験の主題 312 の目標 312.4 の試験対策となります。この目標の重要度は 4 です。


前提条件

この記事では、読者が Linux コマンドライン関数の実用的な知識を持っていること、そして Samba 構成の基本を理解していることを前提とします。また、smb.conf 構成ファイルの全体的な構成を十分に理解していて、お好みのエディターでこのファイルを編集できること、そして Samba サーバーを起動してファイルを提供できることが必要です。


基本的なドメイン機能の設定

選択的な LPI-302 試験について

LPIC (Linux Professional Institute Certification) には、さまざまなレベルがあり、レベルが上がるにつれ、より深い知識と経験が必要になってくるという点で、他の多くの認定と似ています。LPI-302 試験は、LPIC レベル階層のレベル 3 に位置する選択的な Specialty 認定試験であり、Linux システム管理に関する高度な知識が求められます。

LPIC レベル 3 (LPIC-3) 認定を取得するには、2 つのレベル 1 試験 (101 と 102)、2 つのレベル 2 試験 (201 と 202)、そして LPIC-3 Core Exam (301) に合格しなければなりません。これらの試験に合格した後、LPI-302 などの選択的な Specialty 認定試験を受けることができます。

ドメイン・コントローラーの第一の目的は、ドメイン内の他のコンピューターの認証を管理することです。この認証管理を行うためには、Samba サーバーが Samba クライアントからの特定のタイプの認証データを受け入れて、そのデータに応じて適切に応答しなければなりません。これらの機能を有効にするには、smb.conf で設定しなければならないオプションがいくつかあります。実際のところ、ドメイン・コントローラーはネットワーク上で他の役割を持つことも多いため、その他にも Samba オプションを調整しなければならないことがあります。

ここから先を読む前に、Microsoft Windows NT 形式のドメインにおけるコンピューター間の関係を認識しておいてください。この形式のドメインでは、ドメイン・コントローラーがネットワークの中心となります。Samba や Windows オペレーティング・システム、またはその他のソフトウェアを実行するファイル・サーバーおよびプリント・サーバーがドメイン・コントローラーのクライアントとなることができます。これらのコンピューターは、ドメイン・メンバー・サーバーと呼ばれ、ユーザー・ワークステーションに対してはサーバー、ドメイン・コントローラーに対してはクライアントとして機能します。このような関係は、ネットワークのアーキテクチャーによって影響されることもあり、例えばピア・ツー・ピア・ネットワークでは 1 台のコンピューターがドメイン・メンバー・サーバーとファイル共有クライアントの両方を兼ねることが可能です。ドメイン・コントローラーはファイル・サーバーとしても、さらにはクライアントとしても機能することができます。

ドメイン・コントローラーの必須機能を設定する

Samba をドメイン・コントローラーとして構成するには、最低限、smb.conf で以下のオプションを設定する必要があります。

workgroup = EXAMPLE
security = User
encrypt passwords = Yes
passdb backend = tdbsam:/etc/samba/private/passdb.tdb
domain logons = Yes
admin users = ntadmin

皆さん独自のフィードを作成してください

新しい記事が追加された際、あるいは内容が更新された際に通知を受けられるように、RSS、Atom、または HTML によるカスタム・フィードを作成することができます。それには、developerWorks RSS フィードにアクセスしてください。対象のゾーンとしては「Linux」を選択し、情報の種類としては「記事」を選択して、キーワードには「Linux Professional Institute」と入力します。そして最後にフィードの種類を選択します。

上記のオプションには、必要に応じて変更できるものもあれば、変更できないものもあります。以下で各オプションについて説明します。

  • workgroup オプションは、Windows NT ドメイン・ネームを設定します。ドメインとは、ワークグループに機能が追加されたものに過ぎません。
  • security オプションは User に設定する必要があります。
  • encrypt passwords オプションは Yes に設定する必要があります。
  • passdb backend オプションは任意の正当な値に設定することができます。ただし、プライマリー・ドメイン・コントローラーとバックアップ・ドメイン・コントローラーの両方を使用する場合には、特定の設定方法があります。これについては、「バックアップ・ドメイン・コントローラーの構成」で説明します。
  • domain logons オプションは Yes に設定する必要があります。
  • admin users オプションは、1 人以上のユーザー (この例では ntadmin) を管理ユーザーとして設定します。管理ユーザーとして設定されたユーザーは事実上、接続先のすべての共有に対して root 権限を持つことになります。ドメインに新しいコンピューターを参加させるには、このオプションで管理ユーザーを設定するか、または Samba アカウント・データベースに root を追加する必要があります。

以上の設定には暗黙の意味があります。具体的に言うと、Samba サーバー・コンピューターには認証する必要のあるすべてのユーザーのローカル Linux アカウントを設定し、これらのアカウントを Samba パスワード・データベースに登録する必要があります。このようにして Samba を構成すれば、ドメイン・ログオンを受け入れるようになりますが、それは古い Microsoft Windows 9x/Me コンピューターや、security = Server オプションが設定されている Samba サーバーの場合の話です。最近の Windows コンピューターや、よりセキュアな security = Domain 構成を使用する Samba コンピューターでは、マシン・トラスト・アカウントを作成しなければなりません。

マシン・トラスト・アカウントを作成する

ワークグループには、ネットワーク上の任意のコンピューターが参加できますが、それとは異なり、ドメインは排他的です。ドメインの恩恵を十分に受けるには、コンピューターがドメインのれっきとしたメンバーにならなければなりません。ユーザーの観点からすると、ドメインのメンバーになる最大の利点はシングル・サインオンです。シングル・サインオンとは、ユーザーはユーザー名とパスワードを一度入力するだけで、ドメインのメンバーとなっているあらゆるサーバーにアクセスできることを意味します。一方、Samba による管理上の観点では、ドメイン・メンバーシップによって、ドメイン・メンバー・サーバーで security = Domain 構成オプションを使用できるようになります。この設定は、security = Server 設定よりもセキュアですが、ドメインに完全に参加するには、追加の構成が必要です。

ドメインに完全に参加するためにコンピューター (ドメイン・メンバー・サーバーまたはクライアント・システムのいずれか) に必要となるのは、ドメイン・コントローラー上での固有のアカウントです。この要件は、ドメイン・コントローラー自体には適用されません。ドメイン・コントローラー上でのアカウントは、コンピューターを使用する可能性のあるユーザー・アカウントとは別のものです。このアカウントは、マシン・トラスト・アカウントと呼ばれます。

すべてのマシン・トラスト・アカウントが、マシン・トラスト・アカウントのために予約された単一の Linux グループを使用するようにするのが最善の方法です。その一例として、以下のコマンドはマシン・トラスト・アカウント用の trust というグループを作成します。

# groupadd -r trust

マシン・トラスト・グループを作成したら、次はマシン・トラスト・アカウントを作成します。マシン・トラスト・アカウントは、ネットワーク上のドメイン・メンバー (クライアントまたはサーバー) ごとに作成します。ユーザー名としては、コンピューターの NetBIOS (Network Basic Input/Output System) 名を小文字に変換して末尾にドル記号 ($) を追加したものを使用してください。例えば、コンピューターの NetBIOS 名が WEMBLETH だとすると、そのマシン・トラスト・アカウント名は wembleth$ となります。マシン・トラスト・アカウントを作成するには、以下のように useradd コマンドと smbpasswd コマンドを使用します。

# useradd -d /dev/null -M -g trust -s /bin/false wembleth$
# smbpasswd -a -m wembleth$

上記は、wembleth$ というマシン・トラスト・アカウントを作成する例です。このアカウントのホーム・ディレクトリーを /dev/null に設定して (-d /dev/null)、ユーティリティーにはホーム・ディレクトリーを作成しないように指示し (-M)、作成したマシン・トラスト・アカウントを trust グループのメンバーとして追加して (-g trust)、デフォルト・シェルを /bin/false に設定します (-s /bin/false)。そして 2 番目のコマンドで、このアカウントをマシン・トラスト・アカウントとして指定して (-m)、Samba パスワード・データベースに登録します。

admin user パラメーターに新規ユーザーを作成した場合には、そのユーザーのパスワードを設定するために、smbpasswd ntadmin と同じように smbpasswd でそのユーザーの Samba パスワードを設定する必要があります。このアカウントは、マシンをドメインに追加するときに使用します。マシンをドメインに追加する以外に Samba でのこのアカウントの高い特権を使用しないという場合には、すべてのドメイン・クライアントをドメインに参加させた後に smb.conf で admin users の行をコメントアウトすることを真剣に検討してください。

その他のドメイン機能の設定

ここまでに説明した機能でドメイン・コントローラーに不可欠な機能を構成することができますが、ドメイン・コントローラーが NetBIOS ネットワークで果たす役割には他にもあるのが通常です。具体的には、ドメイン・マスター・ブラウザーや Windows Internet Name Service (別名、NetBIOS Name Server) システムとして機能するだけでなく、タイム・サーバーとして機能することもよくあります。これらの機能を構成するには、以下のオプションを設定します。

domain master = Yes
preferred master = Yes
os level = 65
wins support = Yes
time server = Yes

変更を smb.conf ファイルに保存すると、Samba がその変更を検出して自身を再構成します。再構成までの時間を短縮するには、サーバーに SIGHUP シグナルを送るか、ディストリビューションに含まれる SysV init スクリプトを使って構成をリロードしてください。

ドメインにコンピューターを追加する

これで、Sambaサーバーはドメイン・コントローラーとして機能するように構成されました。次は、ドメインにコンピューターを追加します。ただし、その方法は、ドメイン・メンバー・サーバーまたはドメイン・クライアントにインストールされているオペレーティング・システムによって異なります。例えば Windows 7 では、以下のステップに従います。

  1. 以下のレジストリー・エントリーを入力します。

    HKEY_LOCAL_MACHINE\System\CCS\Services\LanmanWorkstation\Parameters
        DWORD  DomainCompatibilityMode = 1
        DWORD  DNSNameResolutionRequired = 0

    または、Windows システムに Win7_Samba3DomainMember.reg ファイルをダウンロードして、このファイルをダブルクリックします。このステップは、Windows Vista 以前の Windows オペレーティング・システムには不要です。

  2. 「Control Panel (コントロール パネル)」の「System and Security (システムとセキュリティー)」を開きます。
  3. System (システム)」をクリックします。
  4. Computer Name, Domain, and Workgroup Settings (コンピューター名、ドメインおよびワークグループの設定)」という見出しの下にある「Change Settings (設定の変更)」をクリックします。

    「System Properties (システムのプロパティ)」ウィンドウが開きます。

  5. Change (変更)」をクリックします。

    Computer Name/Domain Changes (コンピューター名/ドメイン名の変更)」ウィンドウが開きます (図 1 を参照)。

    図 1. Windows でドメインに参加するには、「Computer Name/Domain Changes (コンピューター名/ドメイン名の変更)」ウィンドウを使用します
    Windows でドメインに参加するには、「Computer Name/Domain Changes (コンピューター名/ドメイン名の変更)」ウィンドウを使用します
  6. Domain (ドメイン)」オプションを選択し、テキスト・ボックスにドメイン名を入力します。
  7. OK」をクリックします。

    Windows の応答として「Windows Security (Windows セキュリティー)」ウィンドウが開きます (図 2 を参照)。

    図 2. 「Windows Security (Windows セキュリティー)」ウィンドウが管理ユーザー名とパスワードの入力を促します
    「Windows Security (Windows セキュリティー)」ウィンドウが管理ユーザー名とパスワードの入力を促します
  8. ウィンドウに Samba 管理アカウント名 (admin users で設定した名前) とパスワードを入力し、「OK」をクリックします。

Windows がコンピューターを再起動するよう求めるプロンプトを表示します。再起動の後は、ドメインに参加していることになります。

注: Windows のすべてのバージョンがドメインに参加できるわけではありません。例えば、ワークグループでの Home バージョンの使用は制限されています。

Windows コンピューターをドメインに参加させて、そのコンピューターを再起動すると、コンピューターが Ctrl-Alt-Del を押してログオンするよう求めるプロンプトを出します。ログオンするには、Samba サーバーに関連付けられたユーザー名とパスワードを使用してください。ログオンした後は、ドメインに参加しているコンピューターや、最初にログオンしたときに使用したアカウントを承認しているコンピューターであれば、パスワードを再入力しなくてもアクセスすることができます。ファイルまたはプリンターを共有するようにコンピューターを構成した場合、そのコンピューターは Samba サーバーを利用して認証を行います。

Samba サーバーをドメイン・メンバーとして機能させるには、該当するドメインにも参加させなければなりません。それにはまず、Samba ドメイン・メンバー・サーバーの smb.conf ファイルに、以下のオプションを設定します。

password server = SERVERNAME
domain logons = No
encrypt passwords = Yes
security = Domain
domain master = No
preferred master = No
os level = 1
wins support = No

上記のオプションの多くは、ドメイン・コントローラーの設定とは逆になっています。このように設定することで、2 台のコンピューターがマスター・ブラウザーの地位をめぐって争うことも、NetBIOS 名の指定について争うこともなくなります。password server オプションは、使用するドメイン・コントローラーを指すようにしてください。security オプションを設定するには 2 つの方法があります。1 つは上記の例のように、このオプションを Domain に設定して、完全にドメインに参加することです。もう 1 つの方法としては、このオプションを Server に設定することもできます。この場合、Samba はドメインに完全には参加しませんが、単純化された非ドメイン・プロトコルを使用して、そのパスワード・リクエストをドメイン・コントローラーに送信することになります。security = Domain を設定している場合には、以下のコマンドを入力して完全にドメインに参加する必要があります。

# net join member -U ntadmin

上記のコマンドでは、ntadmin の部分を、皆さんの管理アカウントのユーザー名に置き換えてください。プログラムがパスワードの入力を求めるプロンプトを出したら、ntadmin ユーザーに関連付けられたパスワードを入力します。すべて順調に行けば、smb.conf で workgroup オプションに指定したドメインに参加したことを通知するメッセージが表示されます。

Samba サーバーがドメインに参加した後は、コンピューターはドメイン・コントローラーを利用して認証をするようになりますが、これは Samba の場合に限ります。トピック 313.3 の Winbind では、Samba 以外の認証タスクにドメイン・コントローラーを使用するように Linux コンピューターを変更する方法を取り上げています。


ドメイン共有の作成およびユーザー設定

基本的なドメイン・ログオン機能のテストを完了した後、機能の拡張が必要になる場合があります。そのための 1 つの方法は、NETLOGON という特殊なドメイン共有を作成し、Samba がユーザーの Windows デスクトップ設定をドメイン・コントローラーに保存するように構成することです。

NETLOGON 共有を作成する

NETLOGON 共有には、ドメイン・ログオン・スクリプトが保存されます。これらのスクリプトは、ユーザーがドメインにログオンするたびにドメイン・クライアントで実行されます。Windows でのドメイン・ログオン・スクリプトを作成して、Windows でテストしてください。これらのスクリプトは、Linux スクリプトではありません。

NETLOGON 共有は、その名前を冠した通常のファイル共有です (ファイル共有の作成は、目標 312.2 の試験範囲です)。通常は、NETLOGON 共有には限られたユーザーだけが書き込めるようにしなければなりません。以下は、その典型的な定義の一例です。

[netlogon]
   comment = Network Logon Service
   path = /var/samba/netlogon
   guest ok = No
   read only = Yes
   write list = abe

上記の例が作成する読み取り専用の共有は、/var/samba/netlogon に保存されます。write list パラメーターでは、ユーザー abe に共有への書き込みアクセス権を与えています。注意する点として、abe には /var/samba/netlogon に対する Linux 書き込みアクセス権がなければなりません。Linux のパーミッションによって、ユーザー abe がこのディレクトリーに書き込むことを禁止しているとしたら、このユーザーを共有の write list に記載しても意味がありません。

Windows クライアントは、NETLOGON 共有からどのスクリプトを実行するのかを認識していなければなりません。そのために、logon script グローバル・パラメーターが用いられます。以下に示すのは、単純なファイル名を設定する基本的な例です。

logon script = LOGON.BAT

この例では、すべてのクライアントに LOGON.BAT ファイルを実行するように指示していますが、クライアントによって異なるログオン・スクリプトを指定しなければならないこともあります。例えば、クライアントのオペレーティング・システムが同じでなければ、それぞれに異なるスクリプトが必要です。その場合には、このグローバル・パラメーターを以下のように指定します。

logon script = LOGON-%a.BAT

この例で使用している %a は、クライアントのオペレーティング・システムに応じて異なる値を取る変数です (表 1 で詳しく説明します)。その他にも、目標 312.1 で説明されている変数を使用することができます。上記の例を使用した場合、Windows 7 クライアントは LOGON-Vista.BAT というスクリプトを実行する一方、Windows XP クライアントは LOGON-WinXP.BAT というスクリプトを実行することになります。ただし、すべてのオペレーティング・システムがネットワーク・ログオン・スクリプトを使用するわけではないことに注意してください。その一例は Linux です。Linux ではネットワーク・ログオン・スクリプトを使用しないので、LOGON-CIFSFS.BAT スクリプトを作成する必要はありません。

表 1. %a 変数の値
クライアントのタイプ
SambaSamba
CIFSFSLinux CIFS (Common Internet File System) ファイルシステム
OS2IBM OS/2 (Operating System/2)
WfWgWindows for Workgroups
Win95Windows 95、98、または Me
WinNTWindows NT
Win2KMicrosoft Windows 2000
WinXPWindows XP
WinXP64Windows XP 64 ビット
Win2K3Windows Server 2003
VistaWindows Vista または Windows 7
UNKNOWN上記以外のすべてのクライアント

ネットワーク・ログオン・スクリプトの他、NETLOGON 共有にはシステム・ポリシー・ファイルを持たせることもできます。システム・ポリシー・ファイルは、コンピューターがドメインに適合するように、自動的に Windows レジストリー・ファイルを変更します。Windows 9x/Me では、システム・ポリシー・ファイルは Policy Editor (Poledit.exe) というツールを使って、Config.POL という名前で Windows コンピューター上に生成されます。Windows NT、Windows 2000、Windows Server 2003、Windows XP、Windows Vista、および Windows 7 では、システム・ポリシー・ファイルの名前は NTConfig.POL となっていて、生成するには「Start (スタート)」 > 「Programs (すべてのプログラム)」 > 「Administrative Tools (管理ツール)」の順にクリックします。システム・ポリシー・ファイルの生成方法についてはこの記事では説明しませんが、NETLOGON 共有にはこのファイルを配置しなければならない可能性もあることを認識しておいてください。

ローミング・プロファイルを作成する

通常、Windows コンピューターはユーザーのデスクトップ環境に関する情報をローカルに保存します。個々のユーザーがほとんどの時間、1 台のコンピューターしか使用しないのであれば、これで問題はありませんが、常にそうとも限りません。大学のコンピューター・ラボを例にすると、ユーザーの一人ひとりが複数のコンピューターのいずれかを使ってログオンすることも考えられます。そのような場合に望ましいのは、ユーザーのデスクトップ設定をリモート・サーバーに保存することです。これが、ローミング・プロファイルの役目です。

Windows NT、Windows 2000、Windows XP、Windows Vista、および Windows 7 でローミング・プロファイルを使用できるようにするには、PROFILES 共有を作成する必要があります。この共有は通常、ブラウズ・リストに表示されてユーザーを混乱させることのないように、ブラウズできないように設定されます。また、Samba 内で PROFILES 共有に設定されているファイルおよびディレクトリーのパーミッションは制限されたものになっており、ユーザーが互いのプロファイルに対して読み取り/書き込み操作を行えないようになっています。その一方で PROFILES 共有に使用する Linux ディレクトリーは、すべてのユーザーが読み取り/書き込み操作を行えるように設定しなければなりません (グループ・ポリシーによっては、パーミッションを 0777 に設定する必要があるかもしれません)。以下に示すのは、ローミング・プロファイルを保存するために使用する Samba 共有の一例です。

[profiles]
   comment = NT Profiles Share
   directory = /var/samba/profiles
   read only = No
   create mode = 0600
   directory mode = 0700
   browseable = No

通常、この共有は Samba ドメイン・コントローラー上に作成されますが、原理的には他のファイル・サーバー上に作成しても構いません。PROFILES 共有を作成するだけでなく、Windows にこの共有がある場所も指示する必要があります。場所を指定するには、以下のグローバル logon path オプションを使用します。

logon path = \\%L\PROFILES\%U

上記の例では、ローミング・プロファイル・ディレクトリーのパスに、%L 変数 (現行サーバーの NetBIOS 名) と %U 変数 (セッションに関連付けられたユーザー名) を使用しています。ローミング・プロファイルが確実に、作成した PROFILES 共有に保存されるようにしてください。


バックアップ・ドメイン・コントローラーの構成

Windows NT ドメインには、ドメイン・コントローラーに障害が発生した場合に備え、複数のドメイン・コントローラーを使用して冗長性を持たせることができます。その場合、1 つのドメイン・コントローラーを Windows NT ドメインの用語で言う「プライマリー・ドメイン・コントローラー (PDC)」として指定し、残りのドメイン・コントローラーを「バックアップ・ドメイン・コントローラー (BDC)」として指定します。このような構成にすると、構成上の複雑さは増すものの、ネットワークがドメイン・コントローラーに大きく依存している場合には価値があります。

Samba で BDC を有効にするには、LDAP (Lightweight Directory Access Protocol) を使用してアカウント情報を保存するのが最善の方法です。LDAP は、このような構成に必要となる、ある種のデータベース・データ交換をサポートする目的で設計されているため、PDC とマスター LDAP サーバーを対にし、BDC とスレーブ LDAP サーバーを対にすることが理にかなっています。LDAP サーバーは、Samba サーバーと同じコンピューターで稼動させることも、別のコンピューターで稼動させることもできます。PDC と BDC で 1 つの同じ LDAP サーバーを使用するといった構成も可能ですが、最適な構成ではありません。このような構成では、LDAP サーバーがドメイン・コントローラーと同じコンピューター上で稼動している場合には尚更のこと、フェイルオーバー機能がある程度失われてしまうためです。

LDAP サーバーを使用する PDC の最小構成には、LDAP サーバーを識別するための Samba 構成オプションがいくつか追加で必要になります。少なくとも PDC については、グローバル・オプションを変更するか、新しいグローバル・オプションを使用する必要があります。以下はその一例です。

passdb backend = ldapsam://localhost:389
ldap suffix = dc=example,dc=org
ldap user suffix = ou=Users
ldap group suffix = ou=Groups
ldap machine suffix = ou=Computers
ldap idmap suffix = ou=Idmap
ldap admin dn = cn=ntadmin,dc=example,dc=org

この例では、Samba に同じコンピューター上で稼動する LDAP サーバーを使用するように指示し (passdb backend = ldapsam://localhost:389)、アカウント情報を識別して管理するための各種の重要な LDAP 機能を明らかにしています。

注: LDAP の構成は、それ自体が複雑なトピックなので、この記事ではマスター LDAP サーバーとスレーブLDAP サーバーがすでに適切に構成されていることを前提とします。LDAP についての詳細な情報は、「参考文献」セクションに記載されているリンクで調べてください。

作業を進める前に、マスター LDAP を使用するように PDC を構成して、その構成を徹底的にテストすることをお勧めします。そのタスクを完了すれば、BDC を構成することができます。まずは、以下の準備ステップから開始してください。

  1. BDC コンピューター上で net rpc getsid を実行します。

    このコマンドによって、PDC コンピューターと BDC コンピューターとで一致していなければならない重要な ID が取得されます。

  2. BDC で smbpasswd -w mypass を実行します。ここで、mypass は LDAP 管理パスワードです。
  3. PDC と BDC でローカル・アカウント・データベースを同期させます。

    それにはいくつかの方法がありますが、最も簡単なのは、コンピューター間で /etc/passwd、/etc/group、および /etc/shadow をコピーすることです。Linux アカウントの保守に LDAP を使用する場合には、このステップは必要にならない可能性があります。

  4. PDC の NETLOGON 共有を BDC に複製します。

    必ず、smb.conf の共有定義と共有のディレクトリーを両方ともコピーしてください。そのうち共有ディレクトリーが変更される可能性もあるので、定期的に共有ディレクトリーを同期させて変更を反映させます。

以上のステップを完了したら、smb.conf に以下の BDC 構成を作成します。

passdb backend= ldapsam:ldap://slave-ldap.example.org
domain master = No
domain logons = Yes
os level = 64
ldap suffix = dc=example,dc=org
ldap user suffix = ou=Users
ldap group suffix = ou=Groups
ldap machine suffix = ou=Computers
ldap idmap suffix = ou=Idmap
ldap admin dn = cn=ntadmin,dc=example,dc=org
idmap backend = ldap:ldap://master-ldap.example.org
idmap uid = 10000-20000
idmap gid = 10000-20000

上記のオプションによって、マスター・ブラウザーの選択で BDC は PDC に従い、スレーブ LDAP サーバーをそのパスワード・データベースとして使用し (slave-ldap.example.org)、Linux アカウント情報と Windows アカウント情報との間のマッピング情報を保存するためにマスター LDAP サーバー (master-ldap.example.org) を使用するようになります。


ドメイン間の信頼のセットアップ

ここで説明しているドメインは Windows NT 形式のドメインです。Samba 3.x では、このタイプのドメインをサポートしていますが、Microsoft では Windows 2000 から、Active Directory ドメインと呼ばれる新しいドメイン形式への移行を進めています。Samba 3.x は Active Directory ドメインをメンバーとして参加させられるようになっていますが、Active Directory ドメイン・コントローラーとして機能するための Samba 3.x のサポートはせいぜい限られています。Active Directory のサポートは Samba 4.x で大幅に改善されています。ただし、Samba 4.x は現時点 (2011年3月) でアルファ・テスト段階にあります。

Active Directory は本質的に、SMB (Server Message Block)/CIFS、LDAP、Kerberos という3 つの異なるネットワーク・プロトコル・セットをマージしたものです。SMB/CIFS はファイル共有およびプリンター共有プロトコルであり、LDAP はアカウント情報を保存する手段となり、Kerberos は暗号化を行います。これらの技術はすべて Linux で使用することができますが、統合するとなると簡単には行きません。前述のように、Samba と LDAP を組み合わせてアカウントを管理できるので、BDC を保守する場合には、これが最善の方法となります。Samba 3.x には Kerberos 用のフックも用意されていますが、ここでは説明を省きます。Samba 4 を部分的に機能させるには、その固有の LDAP 機能と Kerberos 機能をメインの Samba パッケージに統合してください。

Samba の Active Directory ドメインとの統合については、目標 314.3 で詳しく取り上げています。

大規模な組織では、部門ごとに固有の Windows NT ドメインがあるはずです。このような構成では、各部門がその部門に固有のアカウントを保守できる一方、互いの部門のリソースを使用することができなくなる場合があります。例えば、近くにある 2 つの部門が所有しているプリンターを共有リソースとして部門間で使用できるようにしたいとします。このようなドメイン間でのリソース共有は、「ドメイン間の信頼」あるいは簡単に言うと「信頼」をセットアップすることで実装することができます。

信頼関係には、覚えておかなければならない 2 つの重要な特性があります。1 つ目の特性は、非推移的であることです。つまり、信頼関係は、その信頼関係が明示的に構成されているドメインにしか適用されません。例えば、PHYSICS ドメインが GEOLOGY ドメインを信頼し、GEOLOGY ドメインが BIOLOGY ドメインを信頼するとしても、それによって PHYSICS ドメインが BIOLOGY ドメインを信頼することにはなりません。2 つ目の特性は、信頼関係は片方向であることです。GEOLOGY ドメインが PHYSICS ドメインを信頼していないとしても、PHYSICS ドメインは GEOLOGY ドメインを信頼することができます。双方向の信頼関係を有効にするには、相手のドメインを信頼するように双方のドメインを構成する必要があります。

ドメイン間の信頼を構成するには、まず始めに、各ドメインがそれぞれに自らを適切に構成する必要があります。最初のドメインは、信頼する側のドメインです。信頼する側のドメインは、もう一方の信頼される側のドメインへのアクセスが可能なリソースをホストします。例えば、PHYSICS ドメインに、GEOLOGY ドメインのユーザーがアクセス可能なワイド・キャリッジ・プリンターがあるとします。この場合、PHYSICS ドメインが信頼する側のドメインであり、GEOLOGY ドメインが信頼される側のドメインとなります。信頼関係を構成するには、まず以下のように、信頼する側のドメイン (PHYSICS) に信頼される側のドメイン (GEOLOGY) の Linux アカウントと Samba アカウントの両方を作成するところから始めます。

# useradd -d /dev/null -M -g trust -s /bin/false geology$
# smbpasswd -a -i geology

Linux アカウントを useradd で作成するときには、末尾にドル記号 ($) が必要となる一方、Samba アカウントを smbpasswd で作成するときには必要ないことに注意してください。smbpasswd コマンドはドメイン間の信頼アカウントのパスワードの入力を求めるプロンプトを出します。入力したパスワードを覚えておいてください。この後すぐに、もう一度、同じパスワードを入力しなければならないからです。GEOLOGY ドメイン・コントローラーは、信頼される側のドメイン・コントローラーが信頼する側のドメインの一般メンバーであるかのように、今作成したアカウントを使用して、GEOLOGY ドメインのメンバーが PHYSICS のリソースにアクセスできるようにします。

信頼する側のドメイン・コントローラーにドメイン間の信頼アカウントを作成した後、そのアカウントを使用するように信頼される側のドメイン・コントローラーを構成することができます。それには以下のコマンドを使用します。

# net rpc trustdom establish physics

上記のコマンドは、信頼される側のドメイン (この例では GEOLOGY) の Linux メンバーが実行します。パスワードの入力を求められたら、信頼する側のドメインで smbpasswd コマンドに対して入力したパスワードを入力してください。何も問題がなければ、これで GEOLOGY ドメインのメンバーが PHYSICS ドメイン上のサーバーにアクセスできるようになっているはずです。双方向の信頼を確立する場合には、2 つのドメインの役割を逆にして、上記のステップを繰り返します。

ドメイン間の信頼を終了するには、信頼される側のドメインで以下のコマンドを実行します。

# net rpc trustdom revoke physics

または、以下のコマンドを、信頼する側のドメインで実行するという方法もあります。

# net rpc trustdom del geology

次回の予告

この連載の次回のトピック、LPIC-3 目標 312.5 では、Samba の Web ベースの構成を可能にする Samba Web Administration Tool を取り上げます。

参考文献

学ぶために

製品や技術を入手するために

  • Win7_Samba3DomainMember.reg ファイルをダウンロードしてください。Windows 7 コンピューターを Samba ドメインに参加させるには、このファイルが必要です。
  • ご自分に最適な方法で IBM 製品を評価してください。評価の方法としては、製品の試用版をダウンロードすることも、オンラインで製品を試してみることも、クラウド環境で製品を使用することもできます。また、SOA Sandbox では、数時間でサービス指向アーキテクチャーの実装方法を効率的に学ぶことができます。

議論するために

  • My developerWorks コミュニティーに加わってください。ここでは他の developerWorks ユーザーとのつながりを持てる他、開発者が主導するブログ、フォーラム、グループ、ウィキを調べることができます。

コメント

developerWorks: サイン・イン

必須フィールドは(*)で示されます。


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


お客様が developerWorks に初めてサインインすると、お客様のプロフィールが作成されます。会社名を非表示とする選択を行わない限り、プロフィール内の情報(名前、国/地域や会社名)は公開され、投稿するコンテンツと一緒に表示されますが、いつでもこれらの情報を更新できます。

送信されたすべての情報は安全です。

ディスプレイ・ネームを選択してください



developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

必須フィールドは(*)で示されます。

3文字から31文字の範囲で指定し

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


送信されたすべての情報は安全です。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Linux
ArticleID=756694
ArticleTitle=Linux の 302 (Mixed Environment) 試験対策: ドメイン制御
publish-date=09162011