目次


Sambaのドメイン・コントローラー・サポート

SambaのNT環境への統合

Comments

Samba が必要

まず、わたしは本当に Samba が好きだと言っておかなければならない。わたしは、(Windows NT と UNIX からなる) 内部 LAN を稼動させるのを Samba に頼っています。一般的に、Samba は非常に役に立ちます。しかし、二週間ほど前、Samba に関し少し残念に思うことがありました。

重要な UNIX ファイルはすべて Samba を通して共用していました。これにより、フリーボックス (FreeBSD UNIX マシン) を中央ファイル・ストアとして使用することができました。そして、NEC SuperScript 870 プリンターをフリーボックスに接続し、Windows NT クライアントと共用していました。すべてが快適に動作していましたが...では、何が問題だったのでしょうか?

よく考えてみると、Samba で多くの優れたことができると分かっていましたが、さらに多くのことができるのではないかと期待していたのです。第一に、集中管理されていないセキュリティー・データベースを持っていることが不満でした。つまり、2 つのアカウントを持つ必要がありました。1 つは、Samba マシンに、もう 1 つはローカル・ユーザーとして NT にです (その結果、そのマシンにログインできます)。さらに、これらのアカウントでユーザー名とパスワードが正しく一致することを確認する必要がありました。わたしの LAN を使用しているのはわたしだけなので、この不便さは些細なものでした。しかし、それにもかかわらず、そのことで Samba が少し老いぼれた馬のように思えました。Windows NT サーバーには中央セキュリティー・モデルがあるという事実は言うまでもありません。(この点で Samba は競争力を付けるべきだと思います。) もちろん、Samba は大変役に立ちます。しかし、もっとうまく使えないでしょうか?

わたしが不満に感じていたもう 1 つのことは、わたしの NT ユーザー ・プロファイルが NT マシンに保管されているということでした。NT サーバーを使用する場合、プロファイルは「ローミング・モード」になることは分かっていました。このことが意味するのは、セッションの終了時に保管のためにそれらのプロファイルは、NT サーバーにアップロードされるということです。もしネットワークの別のマシンにログインするならば、わたしのプロファイルはダウンロードされます。これにより、ログインするマシンにかかわらず、一貫性のあるデスクトップが保証されます。もし Samba をこのように稼動させることができるならば、プロファイルはバックアップするのがずっと容易になるでしょう。というのは、プロファイルはわたしの新しい Ecrix VXA-1 磁気テープ・ドライブがハウジングするのと同じマシンに保管されるからです。そうすれば、わたしの IE ブックマークとデスクトップ設定は、通常のファイルと一緒に適切にバックアップされるでしょう。これらの試験的な機能が Samba に追加されたならば、フリーボックスが主導的役割を果たす完全に集中化されたシステムを 持つことになり、これこそまさにわたしが欲していたものです。

本当に Samba が必要

わたしは、この任務を開始するにあたってあまり楽観的ではありませんでした。それというのも、二年間ほど Samba のドメイン・コントローラー・サポートの仕事に従事してきたからです。約半年毎に、わたしはドメイン・コントローラー・サポートを Samba のもとで稼動させようとする衝動に駆られ、そのたびに失敗してきました。バージョン 2.0.6 のドメイン・コントローラー・サポートは、わたしの役には立たないようだと分かっていました。また、CVS の Samba アルファ「次世代」バージョンである、SAMBA_TNG は、まだ時期尚早だということも分かっていました。ありがたいことに、バージョン 2.0.7 の Samba がちょうど出てきました (多くのバグ修正とともに)。ドメイン・コントローラー・サポートを稼動させる可能性を増大させるため、わたしは CVS の Samba pre-2.0.8 を選びました。これは、2.0.7 よりずっと安定しています。

smb.conf オプション

わたしは、どのように pre-2.0.8 が稼動するか楽しみにしていました。ダウンロードして、コンパイルし、最新の Samba をインストールした後、smb.conf を xemacs にロードしました。xemacs では、このような場合のために保管していた、微妙に調整したドメイン・コントローラー関連のオプションの幾つかについては、コメントしませんでした。変更を保管した後、最高の結果を期待して新しい Samba デーモンを開始しました。結果はどうだったでしょうか?

10 分ほどたって、ローミング・プロファイルとドメイン・ログオンは、滞りなく動作していました。わたしは驚きました。あまりにうまく行き過ぎてうそのようでした。そこで、ネットワークを使用して、二三日間どのように動作しているか調べました。そして、Samba は完全に稼動しつづけました ! OK、任務を果たしました。さて、わたしがどのように行ったか説明しましょう。

わたしは何をしたのでしょう?

Windows ドメイン・コントローラー の用語を良く知らない人のために、ここでは、この分野の専門用語を避け、Microsoft 用語の中から適切な用語を選んで使用します。Samba を使用する際、そのドメインを制御する「1 次ドメイン・コントローラー (PDC) 」としてフリーボックスを設定します。わたしのドメインの名前は、"GENTOO" と言います。PDC として、フリーボックスは中央セキュリティー・データベース を保管します。これは、どのマシンがそのドメインの一部であるか、およびどのユーザー・アカウント が有効であるか、という状況を継続的に把握するために使用されます。さらに、各ユーザー・プロファイルの最新版を保持する間、フリーボックスはまた、NT ユーザー・プロファイルを保管するために構成されます。触れて置かなければいけないのは、NT マシンがわたしのドメインのリソースすべてにアクセスし、Samba のセキュリティー・データベースを使用できるように、NT マシンをドメインに「結合する」ようにしたということです。

仮にわたしのドメインに複数のドメイン・コントローラーを必要としていたならば、おそらく Samba はこのタスクには適していなかったでしょう。もし、Samba を BDC (バックアップ・ドメイン・コントローラー) にする必要があったならば、たぶん Samba はまた失敗していたことでしょう。このような機能は、Samba の場合、まだ開発中です。幸いなことに、わたしが欲し必要としていたことは、わたしの UNIX マシンがわたしの LAN の 1 次 (かつ唯一の) ドメイン・コントローラーになることです。この Samba pre-2.0.8 の機能は、うまく動作します。さて、以下が、まさにわたしが PDC 機能を設定し実行させたやり方です。

SAMBA_2_0 のダウンロード

まず、CVS から Samba の最新バージョンをダウンロードしました。わたしは SAMBA_2_0 ブランチを使用しましたが、これにはバグの修正された 最新バージョンの Samba 2.0.x が含まれています。以下が、CVS からの SAMBA_2_0 の取得方法です。

任意の場所に "samba-cvs-2.0" というディレクトリーを作成し、それに cd します。それから、以下のように入力します。

$ cvs -d :pserver:cvs@cvs.samba.org:/cvsroot login

パスワードを求められたら、"cvs" と入力します。それから、以下のコマンドを入力し、ソースをチェックアウトします。

$ cvs -d :pserver:cvs@cvs.samba.org:/cvsroot co -r SAMBA_2_0 samba

CVS でソースを最新のバージョンに更新したい場合は通常、"samba-cvs-2.0" ディレクトリーを入力し、以下のように入力します。

$ cvs -d :pserver:cvs@cvs.samba.org:/cvsroot update -r SAMBA_2_0

ソースがダウンロードされると、"samba" という新しいディレクトリーができます。Samba をコンパイルするには、"samba/source" ディレクトリーに行き、通常の手順を行ってください (Samba コンパイルの説明が必要な場合、わたしの以前の記事、 共通のスレッド: Samba 入門、第 2 回 を参照してください)。Samba をコンパイルした後、それをインストールします。これで、smb.conf および smbpasswd ファイルを形作る準備ができました。

smbpasswd の形成

smbpasswd に触れる前に、smb.conf の workgroup= setting ([global] セクションでの) を、作成したい NT ドメインの名前に設定したほうが良いでしょう。また、Samba 構成が暗号化モードで実行されるように確認しておいたほうが良いでしょう ("encrypt passwords=yes" オプションを使用します)。これらの変更をした後、Samba を再始動させ、作動しているのを確認し、続行してください。

最初に、Samba のセキュリティー・データベースが、ドメイン・オペレーションに使用できるよう準備する必要があります。そこで、あなたのドメインのメンバーになるすべての Windows NetBIOS マシン名のリストを作成します。わたしのリストは、以下のとおりです。

ntbox		Windows NT Workstation 
kompressor	Windows NT Workstation

ここで、 このリストへ Samba PDC の名前を追加します。 これは、非常に重要です。わたしのリストは、次のようになっています。

ntbox		Windows NT Workstation
kompressor	Windows NT Workstation
freebox		Samba PDC

このリストにリストされたそれぞれのマシン名ごとに、以下のステップを行う必要があります。最初に、"$" を付けてマシン名に応じて標準 UNIX アカウントを作成します。以下は、わたしがこのステップを実行した後の /etc/passwd ファイルからの抜粋です。

ntbox$:*:1005:65534:Trust Account:/nonexistent:/sbin/nologin
freebox$:*:1006:65534:Trust Account(necessary in Samba 2.0):/nonexistent:/sbin/nologin
kompressor$:*:2009:65534:Trust Account:/nonexistent:/sbin/nologin

アカウントの名前に "$" が付いているのに注意してください。また、これらのアカウントはホーム・ディレクトリーを持っていないこと、およびログイン・アカウントではないことにも注意してください。これが、システム上に必要なものです。これらのアカウントにより、マシンはドメインの一部になることができます。そしてもちろん、Samba 2.0 とともに PDC はそれ自身のメンバーでなければいけません。この要件は SAMBA_TNG では除去されています。しかし、この状況では Samba ボックスはまた、/etc/passwd にアカウントを持たなければなりません。Linux を使用している場合は、以下のように、useradd コマンドを使用することができます。

# useradd -s /bin/false -d /nonexistent -c
"Trust Account" ntbox\$ # useradd -s
/bin/false -d /nonexistent -c "Trust
Account" kompressor\$ # useradd -s /bin/false
-d /nonexistent -c "Trust Account"
freebox\$

"$" の前に "\" を使用していることに注意してください。これは、bash が "$" と誤って印刷することを防ぐためです。

さて、これで正しく smbpasswd を設定できるようになりました。ワークステーション、 および PDC ごとに、Samba マシン・アカウントを作る必要があります。以下のようにタイプします。

# smbpasswd -a -m freebox # smbpasswd -a -m
kompressor # smbpasswd -a -m ntbox

その後、PDC をそれ自身のドメインに結合する必要があります。以下のように入力します。

# smbpasswd -j GENTOO (ここに、あなたの NT ドメイン・ネームを入れます)

ドメイン・ネームは、smb.conf の workgroup= parameter によって設定されます。これで、セキュリティーの設定準備ができました。今度は、smb.conf を正確に設定する番です。

smb.conf の設定

最初に、一般的な規則があります。先に述べたように、Samba は暗号化パスワード・モードで実行されなければいけません。共用レベル・セキュリティーは使用できません。しかし、ユーザー、サーバー、またはセキュリティー設定は正常に 動作します。わたしのドメイン・コントローラーは、ローカル・マスター・ブラウザーとしても構成されています。(Samba をローカル・マスター・ブラウザーに設定することに関する詳細については、「 Samba 入門、第 2 回 (Introduction to Samba, Part 2) 」をご覧ください。

ここで、以下のオプションを [global] セクションに追加します。

domain logons=yes
logon path = \\%L\profiles\%U.pds
logon home = \\%L\%U
logon drive = m:

お気付きになられたかもしれませんが、最初のオプションによりドメインはログオンできるようになります。2 番目の logon path= option は少し複雑です。これは、Samba に NT ユーザー・プロファイルをどこで探すべきかを指示します。この場合、\\PDC\profiles\username.pds を調べます。このことが意味するのは、プロファイル・シェアを作成する必要があるということで、これは数分で作成できます。最後の 2 つのオプションが指定しているのは、「ログオン・ドライブ」としてどのシェアを付加すべきか、およびそれをどのドライブ文字に付加すべきかということです。この最後の 2 つの設定は、自動ホーム・ドライブ・マッピングを実行させたくない場合、省略することができます。

ここで、2 つの新しいシェア、"profiles" と "netlogon" を追加します。smb.conf に以下の行を追加してください。

[profiles]
comment = User profiles
path = /usr/local/profiles
create mode = 0600
directory mode = 0700
writeable = yes
browseable = yes
# next line is a great way to secure the profiles
force user = %U
# next line allows administrator to access all profiles
valid users = %U administrator
[netlogon]
comment = The domain logon service
# there is nothing in /usr/local/netlogon right now,
# just an empty directory.
path = /usr/local/netlogon
writeable = no
locking = no

上記の行は、このとおり正確に入力すべきです。行う必要があるのは、両方の path= オプションを好みにあわせてカスタマイズすることだけです。プロファイル・パスは、NT ユーザーを格納します。netlogon パスは、必要なログオン・スクリプトを置くのに良い場所です。 どのユーザーでもディレクトリー (0777) にファイルを作成できるように、プロファイル・パスにアクセス権を設定します。 netlogon パスには、特別なアクセス権は必要ありません。好きなようにアクセス権を設定してください。

PDC の起動

いよいよ、Samba を再始動してみます。再始動の後、新しいドメイン結合するようにすべての Windows マシンを構成する必要があります。うまくいく筈です。作成したどの新しいユーザーも、適切なローミング・プロファイルで設定されます。既存の静的プロファイルをローミング・プロファイルに変更するには、NT システム制御パネルの User Profiles タブを操作し、ユーザーのプロファイルを Samba サーバーへコピーします。ログアウトして、ふたたびログインする際、ローカル・プロファイルを使用するのか、またはローミング・プロファイルを使用するのかたずねられます。ローミング・プロファイルを選択します。ここで、再開します。なんらかの形式のエラー・メッセージを受け取った場合 (たとえば、ルート)、プロファイル・ディレクトリーへ行き、username.pds ディレクトリー とそのコンテンツがすべて適切なユーザーに所有されているか確認してください。アクセス権の確認が完了した後、ユーザー・プロファイルは完全に作動可能になっていなければなりません。 NT にログインする場合、忘れずに Windows NT ログイン・ダイアログで結合したドメインを選択してください。そうしないと、ローカル・マシンにログインするすることになります。 すべて、順調に作動するでしょう。新しい PDC を楽しんでください。

ユーザー・プロファイルについての注。残念ながら、Internet Explorer は、デフォルトでそのキャッシュ・ファイルをユーザーのプロファイル内部に保管するようになっています。このため、一般に IE がプロファイルを 64 MB まで膨らます結果になっています。これを修正するために、以下のステップに従います。

  1. 特定ユーザーとして、Windows にログインします。
  2. Internet Explorer を開始し、ツール・メニューへ行きます。
  3. インターネット・オプション・メニュー項目を選択します。
  4. 一般タブで、「ファイルの削除」ボタンをクリックします。
  5. その後、インターネット一時ファイル設定ボタンをクリックします。
  6. 「使用するディスク領域」を妥当な値、たとえば、4 MB まで減らします。
  7. ブラウズのパフォーマンスを向上させるために、UNIX マシンの Squid プロキシー・キャッシュを設定します。これで、LAN のキャッシュが中央に位置指定され、大きくなり、すべてのマシン間で共用されるようになります。

MYDOMAIN/Administrator としてローカル NT マシンにログインする場合、ローカル管理タスクをまったく実行できないことがあるかもしれません。この問題を解決するためには、(ローカル管理者アカウントを使用して) MACHINENAME/Administrator として特定の NT マシンにログインします。その後、User Manager を始動させ、"GENTOO/Domain Admins" をローカル 「管理者」グループに追加します。Domain Admins を追加した後、このアカウントは「アカウント不明」として表示されますが、正常に作動します。これで、MYDOMAIN/Administrator としてログオンできます。そして、依然としてローカル管理タスクも実行できます。

Samba_TNG プレビュー

SAMBA_TNG ブランチは、ドメイン・コントローラー・コードに関し、著しい進歩が絶えず行われている場所です。まだ一般使用のレベルには達していませんが、テストの目的や、開発者がコードをデバッグするためにチェックするとよいでしょう。SAMBA_TNG コードは、normal として CVS にログインすることでチェックアウトできます。

$ cvs -d :pserver:cvs@cvs.samba.org:/cvsroot login

パスワードを求められたら、"cvs" とタイプします。その後、以下のコマンドをタイプしソースをチェックアウトします。

$ cvs -d :pserver:cvs@cvs.samba.org:/cvsroot co -r SAMBA_TNG samba

CVS の更新作業は、通常の方法で行われます。

$ cvs -d :pserver:cvs@cvs.samba.org:/cvsroot update -r SAMBA_TNG

SAMBA_TNG は、最終的にはfull ドメイン・コントローラー・サポートを持つように設計されています。このことが意味するのは、BDC (バックアップ・ドメイン・コントローラー)、トラスト・リレーションシップ、およびアクティブ・ディレクトリーのすべてが作動している ということです。デベロッパーたちはまた、リモート側で Samba システムを管理するのに使用できるように、すべての NT 管理ツールを完全に機能させることに非常な努力を重ねています。

Samba_TNG の変更

SAMBA_TNG の最も大きな変更点のひとつは、smbd と nmbd しかなかったデーモンの数の増加 (10 個ほどに) です。各デーモンは、特定の 1 つのタスクを実行するように専門化しています。ネットワーク・ブラウズ、ログオン要求、LDAP 経由で SAM データベースをエクスポートする、などです。この設計変更の背後にある考えは、Samba をよりモジュール形式にさせるということです。それにより、異なるバージョンの Samba のデーモンを、機能をカスタマイズするため、相互にミックス・アンド・マッチすることができます。さらに、ある機能を必要としない場合、対応するデーモンを使用不可にすることもできます。

その他、追加されたものにツールがあります。rpcclient、net、samedit、regedit、その他です。これらのコマンド行プログラムは、Windows NT や SAMBA_TNG システムと、Microsoft プロトコルを使用して対話します。Samba 開発チームは、UNIX 管理者が管理するために直接 Windows NT マシン にログインしなくてもいいように、この分野でのツールを作ろうと尽力しています。最終的には、必要なタスクはすべて、リモート側で適切なコマンド行ツールを使用して実行されるようになるでしょう。


ダウンロード可能なリソース


関連トピック

  • 必ず、メイン Samba ディレクトリーの WHATSNEW.txt ファイルを読んでください。
  • frgpasswrd 、Samba のパスワード、およびシャドー・パスワードを付随して設定する、パスワード同期ユーティリティーです。
  • Gentoo Project
  • メインの Samba Web サイト。
  • Samba ( Ed Weinberg 著)
  • SambaLink/Q 、smb.conf ファイル用のバージョンから独立したエディター。
  • Samba/iX : Samba/iX は、MPE/iX オペレーティング・システムが稼動する HP e3000 が Microsoft の Server Message Block (SMB) を使用してサービスを提供できるようにする 1 組のプログラム。
  • SWAT メイン・ページ
  • Samba Unleashed (Steve Litt 著、Daniel Robbins の寄稿も含みます) をお読みください。
  • Using Samba ( O'Reilly Publishing) は、Samba 管理の広範囲にわたるガイドであり、Windows NT ドメインとの統合、および SWAT グラフィック構成ツールのような最新の追加事項も含まれています。

コメント

コメントを登録するにはサインインあるいは登録してください。

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Linux
ArticleID=230695
ArticleTitle=Sambaのドメイン・コントローラー・サポート
publish-date=08012000