Chapter 7. スタンドアロンサーバー

John H. Terpstra

Samba Team

Table of Contents

機能と利便性
背景
設定例
参照用文書サーバー
集中印刷サーバー
よくあるエラー

スタンドアロンサーバーは、ネットワーク上での独立したドメインコントローラーである。 それらはドメインメンバーではなく、ワークグループサーバーのように機能する。 多くの場合、スタンドアロンサーバーは、提供されたデータが容易にすべての利用者 からアクセス可能という意図で、最低限のセキュリティ制御で設定されている サーバーである。

機能と利便性

スタンドアロンサーバーは、必要性によって、セキュアにも非セキュアにもできる。 単純あるいは複雑な設定を取ることが出来る。上記のように、ドメインセキュリティ について、過大な説明にもかかわらず、多くは普通のインストールのままである。

もしも、サーバーに必要とされるものがすべて読み込み専用ファイルか、プリンター のみならば、複雑な設定をするのは意味をなさない。たとえば、設計事務所 が古い設計図と設計標準を格納しておく必要があるとする。すべての文書が 変更されないままでいることが法律的に重要なので、誰もサーバーにファイルを 書き込めない。シェアモードのリードオンリスタンドアロンサーバーは理想的 な解決方法である。

単純さを正当化するもう1つの状態は、一つの中央サーバーから待ち行列に入れられる 多くのプリンターを持っているオフィスである。全員がプリンターに印刷出来る要求が あるが、アクセス制御の必要がなく、プリンターサーバーにはファイルがない場合である。 繰り返すと、シェアモードスタンドアロンサーバーはとても優れた解決方法を提供する。

背景

standalone serverという言葉は、ローカルな認証とその上で 有効なすべてのリソースのアクセスを制御する機能を提供するという意味である。 一般的に、これは、ローカルユーザーデータベースがあると言うことを意味する。 もう少し技術的な言葉で言うと、これは、マシン上のリソースは、 shareモードかuserモードのいずれか が有効であるということである。

ユーザーアカウントを作成するため以外に特別な操作は必要ない。スタンドアロンサーバー はネットワークログオンサービスを提供しない。これは、このサーバーを使うマシンは これに対するドメインログオンを実行しないことを意味する。ワークステーションが 使うどんなログオン機能も、このマシンからは独立している。しかし、使用する ログオン名がローカルで持っているユーザー名をスタンドアロンサーバー上でローカルに 変換(マップ)するために、任意のネットワークユーザーを一致させることは必要である。 このことを実行するためにはいくつかの方法がある。

Sambaはスタンドアロンサーバーの定義中で少しだけ区別を曖昧にするのに 役立つ。これは、SMBプロトコルの視点から、Sambaサーバーがドメイン セキュリティコンテキストのメンバーでないとしても、認証データベース がローカルかリモートサーバー上にあるという理由である。

UNIXユーザーデータベースを操作するPAMとネームサービススイッチ(NSS)を使って (PAMに付いての節を参照)、認証のソースは 別のサーバー上にあってもよい。これを認証サーバーと呼ぶ傾向がある。これは、 SambaサーバーはローカルのUNIX/Linuxシステムパスワードデータベース (/etc/passwd/etc/shadow)か、 ローカルのsmbpasswdファイルか、LDAPバックエンドか、認証のために、 PAMとWinbind経由で他のCIFS/SMBサーバーを使っても良いことを意味する。

設定例

参照用文書サーバーの例センタ印刷サーバーは単純さに ヒントを得てデザインされた。それは高度な創造性を試みることと、 サーバーとネットワーク設計においてとても複雑であることを説明することは とても簡単である。

参照用文書サーバー

誰でもアクセスできる読み込み専用データサーバーの設定はとても単純である。既定値 では、すべての共有は、smb.confファイルに何か書かれるまではリードオンリで ある。 参照用文書サーバーの例 はこれを行うためのsmb.confファイルである。すべての参照用文書はディレクトリ /exportに格納されていて、文書はnobody以外のユーザーによって 所有されていることを仮定する。ホームディレクトリは共有されず、UNIXシステム データベース/etc/passwd中にはユーザーはいない。これは 管理者にとって単純なシステムである。

Example 7.1. 参照用文書サーバー用のsmb.conf

# Global parameters
[global]
workgroup = MIDEARTH
netbios name = GANDALF
security = SHARE
passdb backend = guest
wins server = 192.168.1.1
[data]
comment = Data
path = /export
guest only = Yes

 

もう少し準備に時間があれば、もう少し簡単にできた。

 
 --Mark Twain

この例中で、マシン名はGANDALFに設定 され、ワークグループはローカルワークグループ(MIDEARTH)の名前に設定され、 ユーザーがなじみのあるシステムと一緒に表示される。必要とされる唯一のパスワードバックエンド は、既定値の非制限アカウント名として使われることを許可するguest バックエンドである。このネットワーク上でWINSサーバーがあるならば、もちろんそれを使う。

米国空軍連隊長が言った有名なことは: A US Air Force Colonel was renowned for saying: 最善は善の的(Better is the enemy of good enough!)。 専門的に完全な解決を避けることと同様、複雑さを避けることに対して、しばしば健全な理由が 存在する。不幸にも、トラブルがないことを保持するのにちょうど十分な術を、多くの ネットワーク管理者は引き続き覚える必要がある。

集中印刷サーバー

単純な印刷サーバーの設定は、システム上のすべての正しいツールがあるならば簡単である。

前提条件

  1. 印刷サーバーは管理不要でなければならない。

  2. 印刷サーバー印刷の、スプールと処理をするシステムはCUPSである。 (詳細情報はCUPS印刷システムを参照のこと)。

  3. 印刷サーバーはネットワークプリンターのみ処理を行う。ネットワーク管理者は プリンターをサポートするためにCUPS環境を正しく設定している。

  4. すべてのワークステーションはPostScriptドライバーを使う。選択したプリンター ドライバーはApple Color LaserWriterのためのWindows OS用のものを選択する。

この例では、印刷サーバーは入力したすべての印刷ジョブを、Sambaによって、CUPS 印刷プロセッサに向けて送られたジョブが実行可能になるまで /var/spool/sambaにスプールする。すべての入力された 接続は匿名(guest)ユーザーなので、匿名印刷を有効にするために、2つ設定が必要である。

匿名印刷を有効にする

  • UNIX/Linuxシステムはguestアカウントを持たねば ならない。この既定値は、通常nobodyである。 使用するバージョンで使っている正しい名前を探すためには、以下を実行する:

    $ testparm -s -v | grep "guest account"
    

    このアカウントはシステムのパスワードデータベース (/etc/passwd)に存在するようにしておかねばならない。

    このアカウントに対してパスワードを設定するか、UNIXでの使用からロックすることは 良い考えである。ゲストアカウントがpcguestであると仮定した時、 以下を実行することでロックが出来る:

    root#  passwd -l pcguest
    

    正確なコマンドは使用するUNIX/Linuxディストリビューションによって異なる。

  • Sambaがファイルをスプールするディレクトリはゲストアカウントに対して 書き込み許可を持たねばならない。以下のコマンド操作で、このディレクトリ が使えるようにする:

    root# mkdir /var/spool/samba
    root# chown nobody.nobody /var/spool/samba
    root# chmod a+rwt /var/spool/samba
    

smb.confファイルの内容は匿名印刷の例にある。

Example 7.2. 匿名印刷のためのsmb.conf

# Global parameters
[global]
workgroup = MIDEARTH
netbios name = GANDALF
security = SHARE
passdb backend = guest
printing = cups
printcap name = cups
[printers]
comment = All Printers
path = /var/spool/samba
printer admin = root
guest ok = Yes
printable = Yes
use client driver = Yes
browseable = No

Note

CUPSが有効なシステム上で、CUPSプリントフィルター経由の中間処理なしで生データを 直接プリンターに送る機能がある。このモードの操作が要求される場合、raw印刷デバイス の設定が必要である。また、/etc/mime.conv/etc/mime.typesファイル中にraw mime ハンドラーを有効にする 設定も必要である。CUPS印刷サポートapplication/octet-streamで明示的にraw印刷を有効にする を参照のこと。

匿名印刷の例中では、CUPSライブラリAPI経由で 直接印刷のためにCUPSを使用する。これは、すべてのプリンターはprintcapファイルを設定する 必要なしにWindowsユーザーから見えるようになるという意味である。もしも、プリンターの サブセットのみか、特別な種類のプリンター(たとえばPDFフィルター)を見せる必要がある ならば、printcap name = cupsprintcap name = /etc/samba/myprintcapに置き換えても良い。 この場合、指定されたファイルはWindowsネットワークユーザーに見せるべきプリンター名の 一覧を含む必要がある。

よくあるエラー

よく発生するとても大きな間違いは、ネットワークの設定を複雑すぎるようにしてしまう ことである。その時に必要な最も簡単な解を使うこと。