## Using Samba

Robert Eckstein, David Collier-Brown, Peter Kelly 共著
第一版 1999 年 11 月
1-56592-449-5, 注文番号: 4495
416 ページ, 34.95 ドル

ハードコピー版(英語)を購入する

目次

| Chapter 6 ユーザ、セキュリティ、ドメイン |

> ## 6.5 Windows ドメイン

> Samba サーバにおけるユーザとパスワードの機能について詳しくなったところで、Samba を Windows 95/98 マシンや Windows NT マシンのプライマリドメインコントローラとして設定する方法に付いて説明する。っところでドメインを使う理由とは何であろうか。Windows 95/98 については特に、以下の背景を知っていないと恐らく明確な回答が出て来ないであろう。

> 従来からのワークグループに付いて考えてみると、Windows 95/98 ではシステムにログオンするときに、入力したユーザ名とパスワードを単純に受け入れている。Windows 95/98 では認証されたユーザというものは存在しておらず、新しいユーザがログオンすると、OS は単純に新しいパスワードの入力を求め、ユーザが入力すると、そのパスワードを使って認証する。Windows 95/98 が入力したパスワードを実際に用いるのは、他のマシンの共有に接続するときだけである。

> 一方ドメインへのログオンでは、UNIX システムへのログオンと同様の認証が行なわれる。ドメインにログオンするためには、ドメインのプライマリドメインコントローラの持つパスワードデータベースで認証を行なうために、起動時に正しいユーザ名とパスワードを入力しなければならない。パスワードが不正の場合、ユーザはドメインにログオンできないことを通知される。

> 更に嬉しいことに、一度ドメインにログオンすると、アクセス権のあるドメイン内の共有に対しては再度認証を行なうことなく接続できるようになる。厳密にはプライマリドメインコントローラが再度PDCに問い合わせを行なわなくても共有にアクセスできるように、クライアントマシンに対してトークン(token)を発行する。恐らく気が付かないと思うが、これはネットワークトラヒックの削減に効果がある(`revalidate` オプションを用いることで、この仕組みを無効にすることも可能である)。

> ### 6.5.1 Samba を Windows ドメインのログオンサーバとして構成する

> Samba をドメインコントローラとして機能させたい場合、以下のセクションの記述に従って Samba とクライアントを設定する。

> ドメインを構成する方法に付いての詳細情報を確認したい場合は、Samba の配布パッケージ中に含まれる DOMAINS.TXT ファイルを参照のこと。

> #### 6.5.1.1 Windows 95/98 クライアント

> Samba を Windows 95/98 クライアントの PDC として設定するのはそれほど大変なことではない。サーバ側で確認するのは以下のことだけである:

> - Samba が現在のワークグループの唯一のプライマリドメインコントローラであること

> - WINS サーバがネットワーク上で利用可能であること。これは Samba マシンであっても Windows NT サーバであっても構わない(WINSに関する詳細はChapter 7, Printing and Name Resolutionを参照のこと)。

> - Samba はユーザレベルのセキュリティで構成されていること(つまりパスワード認証を別のマシンで行なわない)。Samba 自身が PDC として構成されているときにドメインレベルのセキュリティを利用してはならない。

> この条件が満たされていれば、以下のオプションを Samba の設定ファイルに挿入する:

>     [global]
>     	workgroup = SIMPLE
>     	domain logons = yes

>     # Be sure to set user-level security!

>     	security = user

>     # Be sure to become the primary domain controller!

>     	os level = 34
>     	local master = yes
>     	preferred master = yes
>     	domain master = yes

> `domain` `logons` オプションにより、Sambaがクライアントに対してドメイン認証を行なうことが可能になる。ドメイン名は、Samba の設定ファイル中に記述された workgroup と同じ名前に設定され、この場合は SIMPLE である。

> 更に書き込み不可で、public でなくブラウズもされない `[netlogon]` という名前のディスク共有を作成する必要がある(Windows クライアントが接続可能でありさえすれば、共有の実体がどこにあるかは関係ない):

>     [netlogon]
>     	comment = The domain logon service
>     	path = /export/samba/logon
>     	public = no
>     	writeable = no
>     	browsable = no

> #### 6.5.1.2 Windows NT クライアント

> Window NT クライアントがシステムに存在する場合、Samba がプライマリドメインコントローラとして機能するためには、もう少し必要な設定がある。

> > WARNING: Windows NT クライアントに対する PDC 機能が提供されている Samba 2.1 以降を用いる必要がある(monyo訳注: Samba 2.1 はリリースされず、Samba 2.2 が Samba の次期メジャーバージョンアップになるが、PDC 機能の正式リリースはまたも見送られた)。Samba 2.1より前では,NT クライアントに対する限定的なユーザ認証機能だけが提供される。本書が出版される時点では、Samba 2.0.5 が最新版であるが、Samba 2.1 も CVS ダウンロードを通じて入手することが可能である。Samba のα版をダウンロードする方法に付いては Appendix E, Downloading Samba with CVS を参照のこと。

> 前述したようにSamba は現在設定されているワークグループのプライマリドメインコントローラとなり、ユーザレベルのセキュリティを用いるように構成されるが、実際は更にSambaを暗号化パスワードを用いるように設定する必要もある。これは先の例の `[global]` オプションに `encrypted` `passwords` `=` `yes` オプションを以下のように設定しなければならないということである:

>     [global]
>     	workgroup = SIMPLE
>     	encrypted passwords = yes
>     	domain logons = yes

>     	security = user

> #### 6.5.1.3 NT クライアントに信頼関係アカウント(trust account)を作成する

> この作業は Windows NT だけに必要である。プライマリドメインコントローラに接続するすべてのNTクライアントは trust accountsを用いる必要がある。このアカウントによりクライアントマシンがPDC自身(PDC の持つ共有ではなく)にログオンすることが可能となり、PDC がそのクライアントからの以降のすべての接続を信頼することが可能となる。目的においても用途においても、trust account はユーザアカウントと同等のものである。実際 Samba サーバに trust account をエミュレートさせるためには標準のUNIX アカウントを利用している。

> マシンの trust account のログイン名はマシンの名前の後にドル記号($)を付けたものである。 一例をあげると、Windows NT マシンが `chimaera` という名前だった場合、ログインアカウントは `chimaera$` になるだろう。アカウントの初期パスワードは、単純にマシンの名前を小文字にしたものとなる。Samba サーバに対する trust account を作成するために、適切なマシンの名前の UNIX アカウントを作成し、同じエントリを smbpasswd データベースの暗号化パスワード中にも作成する必要がある。

> 作業に取り掛かっていこう。まず必要なのは trust account を提供するために /etc/passwd ファイルを修正することである。「ユーザ」のホームディレクトリを作成したり、シェルを割り当てたりする必要はない。必要なのはログインが認証されることだけである。この目的のため、以下のようなダミーのアカウントのエントリを作成する:

>     chimaera$:*:1000:900:Trust Account:/dev/null:/dev/null

> パスワードを無効とするために、パスワードフィールドに `*` を記述していることに注意。Samba は smbpasswd ファイルからパスワードを入手する。またこのアカウントを用いてマシンにtelnet を行なわれるのは望ましくないであろう。実際のところ、アカウント名以外に利用されるフィールドは、暗号化パスワードデータベースとの対応に用いられるアカウントの UID (1000) だけである。この番号は、NT サーバー上で重複しない リソースID(resource ID)との対応付が行なわれ、他のリソースID に重複して対応づけられてはならない。NT のユーザやグループがこの番号に対応づけられていない場合は、ネットワークエラーが発生する。

> 次に、 smbpasswd コマンドを以下のように用いて暗号化パスワードを追加する:

>     # smbpasswd -a -m chimaera
>     Added user chimaera$
>     Password changed for user chimaera$

> `-m` オプションによりマシンの trust account が生成される。 smbpasswd プログラムは自動的に初期暗号化パスワードをマシンの NetBIOS 名を小文字にしたものに設定するため、パスワードを入力する必要はない。このオプションをコマンドラインで設定する場合、$ 記号をコンピュータ名の後に付ける必要はない。この処理は内部で自動的に行なわれる。暗号化パスワードが追加されたら、Samba はNT クライアントからのドメインログオンを受付可能な状態になる。

> ### 6.5.2 Windows クライアントに対するドメインログオンの設定

> Samba をドメインログオン可能に設定すれば Windows クライアントが起動時にドメインログオンを行なうように設定することが可能になる。

> #### 6.5.2.1 Windows 95/98

> Windows 95/98 の場合、これは[ コントロールパネル]の[ネットワーク] より「Microsoft ネットワーククライアント」のプロパティを設定することで行なう。 図 6.4のようなダイアログボックスが開く筈である。ここでダイアログボックスの最初にある "Windows ドメインにログオンする" チェックボックスをチェックし、Samba の設定ファイル中で設定したワークグループ名を、Windows NTドメイン欄に入力する。最後にOK を押し、マシンを再起動する。

> #### 図 6.4: Windows 95/98 クライアントに対するドメインログオンの設定

> > 警告: Windows が既にドメインにログオンしているというエラーを出力するときは、恐らくそのワークグループに対する接続が存在している(例えばネットワークドライブのマッピングなど)。アイコンを右クリックすると出現するポップアップメニューで XXXX discommect を選択する等して一時的に共有への接続を切断すること。

> Windows の再起動が完了すると、通常のログオンダイアログボックスにドメイン名のフィールドが付加されているのが確認できるはずである。ドメイン名は既に入っているので、単純にパスワードを入力して OKボタンをクリックすれば良いはずである。この時、Windows はプライマリドメインコントローラ(Samba)に対してパスワードが正しいかどうかを確認する(この動作を確認したいときには、ログファイルをチェックすること)。このように動作すれば、SambaをWindows 95/98マシンのドメインコントローラとして設定でき、クライアントからの接続は成功したと考えてよいだろう。

> #### 6.5.2.2 Windows NT 4.0

> Windows NT をドメインにログオンするように設定するには、まずWindows NT のコントロールパネルから「ネットワーク」を開く。最初のタブにはマシンにインストールされているサービスの一覧が表示されているはずである。

> ここで「変更」ボタンを押すと 図6.5のようなダイアログボックスが現れる。このダイアログボックスでWindows NTクライアントがドメインのメンバーになるよう、ラジオボタンを「ドメイン」にする。 "Member of" box. 次にクライアントがログオンするドメイン名を入力する。これはSamba の設定ファイル中で指定したワークグループ名と同一である必要がある。「ドメインにコンピュータアカウントを追加する」をチェックしないように。現状のSambaはこの機能をサポートしていない。

> #### 図 6.5: Windows NT クライアントのドメインログオンの設定

> > 警告: Windows 95/98 と同様に、既にログオンしているというエラーを NT が出力する場合は、恐らくそのワークグループに対する接続が存在している(例えばネットワークドライブのマッピングなど)。アイコンを右クリックすると出現するポップアップメニューで XXXX discommect を選択する等して一時的に共有への接続を切断すること。

> OK ボタンを押すと Windows は小さなダイアログボックスを表示してドメインに参加したことを伝える。この時点で Windows NT マシンを再起動する必要がある。起動が完了すると、マシンは自動的に Windows 95/98 クライアントと同様のログオン画面を表示する。この時点で Samba サーバ上に存在し、ログインが可能になっているアカウントのどれかを用いて、ログインすることが可能である。

> > 警告: Windows NT のログオンダイアログボックスで適切なドメインを選択すること。選択しようとすると、Windows NT がログオン可能なドメインのリストを作成しようとして少し時間がかかるかも知れない。

> パスワードが入力されると、Windows NT はパスワードが正しいかどうかをプライマリドメインコントローラ(Samba)に照会する。この動作を確認したいときには、ログファイルをチェックすること。このように動作すれば、SambaをWindows NTマシンのドメインコントローラとして設定できたと考えてよいだろう。

> ### 6.5.3 ドメイン機能のオプション

> 表 6.9 にドメインログオン機能関連で利用可能なオプションの一覧を示す。

> 表 6.9: Windows 95/98 のドメインログオンオプション
> オプション | パラメータ | 機能 | デフォルト | 範囲
> --- | --- | --- | --- | ---
> `domain logons` | 真偽値 | Windows ドメインログオン機能を利用するか否かを制御する | `no` | グローバル
> `domain group map` | 文字列 (フルパス名) | UNIX と Windows NT ドメインのグループをマッピングするのに用いるファイル名 | なし | グローバル
> `domain user map` | 文字列 (フルパス名) | UNIX と Windows NT ドメインのユーザをマッピングする為に用いるファイル名 | なし | グローバル
> `local group map` | 文字列 (フルパス名) | UNIX と Windows NT ドメインのローカルグループをマッピングするために用いるファイル名 | なし | グローバル
> `revalidate` | 真偽値 | `yes`の場合、Samba は共有に対する各接続毎に強制的に認証を行なう。 | `no` | 共有

> #### 6.5.3.1 domain logons

> このオプションによりSambaはプライマリドメインコントローラとしてドメインへのログオン機能を提供するようになる。クライアントがドメインへのログオンに成功すると、Samba はクライアントがPDCから再度認証を受けなくともドメイン内の共有にアクセスすることを可能にするためのトークンをクライアントに返却する。Samba マシンはユーザレベルのセキュリティ(`security` `=` `user`) である必要がある。このオプションを機能させることはPDCになるということである。また Samba サーバ上には `[netlogon]` 共有が存在することが求められる(この章で前述した Section 6.5.1, Configuring Samba for Windows Domain Logons を参照のこと)。

> #### 6.5.3.2 domain group map

> このオプションは Windows NT ドメインのグループ名と UNIX のグループ名とをマッピングさせる為のマッピングファイルの位置を指定する。ファイルはSamba サーバ上に存在する必要がある。以下のように指定する:

>     /usr/local/samba/private/groups.mapping

> ファイルの形式は簡単である:

>     UnixGroup = NTGroup

> 以下に一例を示す:

>     admin = Administrative

> 指定される UNIX のグループは /etc/group ファイル中に存在する有効なグループである必要がある。NT 側のグループ名は UNIX 側とマッピングを行ないたい NT クライアント側の名前である必要がある。このオプションは Windows NT クライアントに対してのみ有効である。

> #### 6.5.3.3 domain user map

> このオプションは Windows NT ドメインのユーザ名と UNIX のユーザ名とをマッピングさせる為のマッピングファイルの位置を指定する。ファイルはSamba サーバ上に存在する必要がある。以下のように指定する:

>     /usr/local/samba/private/domainuser.mapping

> ファイルの形式は簡単である:

>     UnixUsername = [\\Domain\\]NTUserName

> 以下に一例を示す:

>     joe = Joseph Miller

> 指定される UNIX のユーザ名は /etc/passwd ファイルに存在する有効なユーザ名である必要がある。NT 側のユーザ名は UNIX 側とマッピングを行ないたい NT クライアント側の名前である必要がある。このオプションは Windows NT クライアントに対してのみ有効である。

> Windows NT がドメインのユーザ名やローカルグループをどのように扱うかに付いての詳細に興味がある場合は、O'Reilly から出版されている Eric Pearce の Windows NT in a Nutshell を推奨する。

> #### 6.5.3.4 local group map

> このオプションは Windows NT ドメインのローカルグループ名と UNIX のグループ名とをマッピングさせる為のマッピングファイルの位置を指定する。ローカルグループ名には Administrator(monyo 訳注: Administrators) や Users が含まれる。ファイルはSamba サーバ上に存在する必要がある。以下のように指定する:

>     /usr/local/samba/private/localgroup.mapping

> ファイルの形式は簡単である:

>     UnixGroup = [BUILTIN\]NTGroup

> 以下に一例を示す:

>     root = BUILTIN\Administrators

> このオプションは Windows NT クライアントに対してのみ有効である。詳細に付いては Eric Pearce の Windows NT in a Nutshell (O'Reilly) を参照のこと。

> #### 6.5.3.5 revalidate

> この共有レベルのオプションにより、Samba サーバのセキュリティモードに関わらず、マシン上の異なる共有に接続する度にSamba が再認証を行なうようにするかどうかを制御できる。デフォルト値は`no`であり、一度認証に成功したユーザは信頼するようになっている。この設定を変更するには以下のようにする:

>     revalidate = yes

> このオプションを利用することでシステムのセキュリティを高めることが可能である。しかし各共有毎に認証をやりなおすことでユーザの利便性は損なわれることを考慮すること。

6.4 パスワード |  | 6.6 ログオンスクリプト

O'Reilly Home | O'Reilly Bookstores | How to Order | O'Reilly Contacts
International | About O'Reilly | Affiliated Companies

© 1999, O'Reilly & Associates, Inc.