この本の最初の版のリリース以来、Samba以外の事についてネットワーク管理者の手助けとなる かもしれない設定テクニックのよりよい資料について、繰り返し要求があった。一部の ユーザーは、include = file-nameパラメーターの使い方に 関連する文書を提供した。
2004年の中頃に始まったが、1つのマシン上で複数の Samba サーバーをホスティングする 機能について、関心が高まってきた。1つのサーバー上複数の Samba サーバーの振る舞いを ホスティングする事への興味も増えてきた。
テクニカルレビューワからのフィードバックによりこの章を含める必要が出た。 そのため、今まで十分に言及してこなかった質問への答えををここに記す。さらに、 この章を充実させる、利用者からの追加は歓迎する。ここで提供されているものは、 まったくもって、小さなとっかかりである。
単一の Samba サーバー上で複数のサーバーをホスト出来る方法はいくつもある。複数のサーバー ホスティングは1つのマシン上で複数のドメインをホストする事を可能にする。そのような 各マシンは独立していて、他に影響を与えずに、起動/停止ができる。
時には、各サーバーが固有のセキュリティモードを持つ、複数のサーバーをホスティングする ことが好ましいことがある。例えば、一般的な匿名印刷サーバーのように、単一の UNIX/Linux ホストはドメインメンバーサーバー (DMS) になれる。この場合、ドメインメンバーマシンとドメイン ユーザーは DMS にアクセスでき、さらにゲストユーザーでさえも、一般的な印刷サーバーにアクセス できる。他の、汎用(匿名)サーバーをホスティングするのに便利かもしれないシチュエーションの 例としては、CDROM サーバーのホスティングがある。
いくつかの環境では、固有のリソースを持つ、特定のユーザーかグループのみからアクセス可能な、 分離されたサーバーを持つ必要が規定されている。これは、Samba が多数の物理的なサーバーを、 1つの Samba サーバーに置き換えられる、単純で、とても効果的な方法の1つである。
複数のサーバーホスティングの使用は、それぞれ個別の設定ファイルを持っている、複数の分離
されたSambaインスタンスを動かす必要がある。この方法は、各nmbd, smbd と winbindd
のインスタンスは、完全に分離されたTDBファイルへの書き込みアクセスが出来なければならない
という理由で、とても複雑である。nmbd, smbd と winbinddが使うTDBファイルを分離
させる事は、ホスティングを行う各Sambaを再コンパイルすることで、各Sambaが、固有のTDB
ファイルに対する既定値のディレクトリを持つか、nmbd, smbd と winbinddの
各インスタンスが、それらの固有のsmb.conf
設定ファイルで起動するようにしなければ
ならない、smb.conf
ファイルを設定することで可能となる。
各インスタンスは固有の IP アドレス(独立した IP アドレスは IP エイリアスで行える)で操作される べきである。nmbd, smbd とwinbinddの各インスタンスは、その固有IPソケットのみを リッスンすべきである。これはsocket addressパラメーターを使うことに よって、安全に出来る。Sambaサーバーの各インスタンスは固有のSIDも持つべきであり、これは、 サーバーは互いに独立で、分離されていることを意味する。
複数サーバーホスティングのユーザーはそれほど特異ではなく、プロセス管理と起動時それぞれの
場面において、注意深い設定を要求する。注意深く設定しなければならない、smb.conf
パラメーターは以下を含む:
private dir, pid directory,lock directory, interfaces, bind interfaces only, netbios name, workgroup, socket address。
複数の Samba サーバーを作成する事を選択した人は、Sambaソースコードを読解でき、必要に応じて それを変更出来る能力を持つべきである。このモードの配置は、この文書の範囲を超えていると 考えられる。しかし、もしも誰かがより包括的な文書を寄贈してくれるのであれば、喜んでそれを レビューし、もしもそれが適切であれば、この章のこの節を拡張するだろう。そのような文書が 有効になるまで、単一ホスト上での複数 Samba サーバーのホスティングは、Samba チームによって、 Samba ではサポートされないとみなされる。
Sambaは、固有の設定を持つ、複数の仮想サーバーをホスティングできる能力がある。
これは、すべてのホスティングされる、個別設定に共通なsmb.conf
ファイルの設定で達成
される。各(仮想)サーバーの個別設定は、固有のnetbios aliasで
ホスティングされ、おのおのは、固有の異なった[global]セクションを
持つ。各サーバーはサービスとメタサービスのために固有のセクションを持っても良い。
複数の仮想サーバーをホスティングするとき、おのおのには個別設定が出来、おのおのは 異なったワークグループにいる。プライマリサーバーのみ、ドメインメンバーかドメインコントローラーに なれる。個別設定は、動作しているsecurityモードと、使っている netbios aliasesとそれに対して定義された workgroupの組み合わせによって定義される。
この設定スタイルは、NetBIOS名を使うか、NetBIOS名なしのTCPサービスのSMBを使う事が出来る。
もしもNetBIOSモード(最も一般的な方法)で動かす場合、パラメーター
smb ports = 139はプライマリのsmb.conf
ファイル中に
指定すべきである。それを間違うと、SambaはTCPポート445で動作することになり、
最も良い場合で問題のある動作、最悪の場合は、プライマリのsmb.conf
ファイルで指定された
機能を得ることができるのみである。TCPポート139のみを使うNetBIOS over TCP/IPの使用は、
%L
マクロの使用が完全に有効になる事を意味する。もしも
smb ports = 139が指定されていない場合(既定値では
445 139
)か、もしもこのパラメーターの値が
139 445
の時は、%L
は無効である。
各サーバーの個別設定で、ポート445を使う(NetBIOSなしのSMBポート)複数のサーバーを
ホスティングするのは可能で、この場合、(IPアドレスによって)分離されたサーバーを識別する
ために、%i
が使える。おのおのは固有のsecurity
モードを持つ。仮想サーバーを作成するために、interfacesと
bind interfaces onlyをnetbios nameに
追加する必要があるかもしれない。この方法は、TCPポート139のみを使うNetBIOS名を使うよりも
より複雑であると考えられる。
スタンドアロンでユーザーモードのセキュリティで動くSambaと置き換え対象の、 読み取り専用Windows 95ファイルサーバーからなる例題環境を考えてみよう。新しいPCでWindows 95 マシンを置き換える代わりに、Sambaサーバー上でホスティングされる読み取り専用匿名ファイル サーバーとしてこのサーバーを追加することが可能である。以下はそれに必要ないくつかのパラメーター である:
Sambaサーバーの名前はELASTIC
で、そのワークグループ名はROBINSNEST
である。
CDROMサーバーの名前はCDSERVER
で、そのワークグループ名はARTSDEPT
である。出来うる実装は以下の通り:
マスターサーバーに対するsmb.conf
ファイルはElasticのsmb.confファイルである。
このファイルは/etc/samba
中に置かれる。nmbd と smbd デーモンのみが
必要である。サーバーを起動すると、Windowsのネットワークコンピューター中の、ワークグループ
ROBINSNEST
配下にELASTIC
が現れる。もしも、このサーバーに
アクセスするWindowsクライアントがまたワークグループROBINSNEST
中にいて、
より信頼性の高いブラウジングを行わさせるのに、これは便利である。
例33.1 Elasticのsmb.confファイル
CDROMサーバーの設定ファイルはCDROMサーバーのsmb-cdserver.confファイル
である。このファイルはsmb-cdserver.conf
という名前で、
/etc/samba
ディレクトリに置かれる。ワークグループ
ARTSDEPT
中にいるマシンはサーバーを自由にブラウズできる。
2つのサーバーは異なったりソースを持ち、分離されたワークグループ内にいる。サーバー
ELASTIC
は、そのホストサーバー上に適切なアカウントを持つユーザーから
のみアクセスできる。すべてのユーザーは、/export/cddata
ディレクトリ中に格納されるCDROMデータにアクセスできる。ファイルシステムのアクセス許可は、
その他
ユーザーがディレクトリとその内容に対して読み取り専用アクセスを
設定すべきである。ファイルはrootが所有できる(nobodyアカウント以外の任意のユーザーでも)。
この例では、要求されていることは、MIDEARTH
というドメインに対する
プライマリドメインコントローラーに対するものである。PDCはMERLIN
である。その他のマシンとしてSAURON
が必要とされている。各マシンは
それぞれ固有の共有のみ持つ。両マシンは同じドメイン/ワークグループに属している。
マスターのsmb.conf
ファイルはマスターのsmb.conf ファイルのグローバルセクション
である。各サーバーの共有情報を指定する2つのファイルは、
smb-merlin.confファイルの共有セクションと
smb-sauron.confファイルの共有セクションである。3つの
ファイルはすべて/etc/samba
ディレクトリに置かれる。
例33.3 マスターのsmb.conf ファイルのグローバルセクション
例33.4 smb-merlin.confファイルの共有セクション