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ネットワークユーザに見せるべきプリンタ名の 一覧を含む必要がある。

よくあるエラー

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