28.3 Sambaサーバの設定

SUSE LinuxのSambaサーバは、以下の2つの方法で設定できます。YaSTを使用するか、または手動で設定します。手動で設定を行えば細かい点まで調整できますが、YaSTのGUIほど便利ではありません。

28.3.1 YaSTによるSambaサーバの設定

Sambaサーバを設定するには、YaSTを起動して、[ネットワークサービス]+[Sambaサーバ]の順に選択します。モジュールを初めて起動すると、[Samba Server Installation]ダイアログが表示され、サーバの管理に関する2、3の基本設定を行うように指示された後、最後にSambaのrootのパスワードを入力するように指示されます。次回起動時には、[Samba Server Configuration]ダイアログが表示されます。

[Samba Server Installation]ダイアログは、次の2つのステップで構成されています。

ワークグループまたはドメイン名

[Workgroup or Domain Name]から既存の名前を選択するか、新しい名前を入力し、[次へ]を入力します。

Sambaサーバのタイプ

次のステップで、PDCとして機能するサーバを指定し、[次へ]を入力します。

[Samba Server Installation]の設定はすべて、後で[Samba Server Configuration]ダイアログの[個人情報]タブで変更できます。

Sambaサーバモジュールの初回起動中、[Samba Server Installation]ダイアログの直後に[Samba Server Configuration]ダイアログが表示されます。このダイアログは、3つのタブで構成されています。

起動

[Start Up]タブで、Sambaサーバの起動を設定できます。システムのブート時に毎回サービスが起動されるようにするには、[During Boot]を選択します。手動起動を有効化するには、[Manually]を選択します。Sambaサーバの起動の詳細については、28.2項 「Sambaの起動および停止」を参照してください。

このタブで、ファイアウォールのポートを開くこともできます。そのためには、[Open Port in Firewall] を選択します。複数のネットワークインタフェースがある場合は、[Firewall Details]をクリックし、インタフェースを選択した後、[OK]をクリックして、Sambaサービス用のネットワークインタフェースを選択します。

共有

[共有]タブで、有効にするSambaの共有を指定します。homesおよびプリンタなど、事前定義済みの共有がいくつかあります。[状態の変更]を使用して、[有効][無効]の間で切り替えます。新規の共有を追加するには[追加]、共有を削除するには[削除]をクリックします。

個人情報

[個人情報]タブで、ホストが関連付けられているドメイン([Base Settings])と、ネットワークで代替ホスト名を使用するかどうか([NetBIOS Host Name])を指定します。エキスパートグローバル設定、またはユーザ認証を設定するには、[詳細な設定]をクリックします。

[完了]をクリックして設定を完了します。

28.3.2 SWATを使用したWeb管理

Sambaサーバ管理の代替ツールは、SWAT(Samba Web管理ツール)です。このプログラムには、Sambaサーバを設定するための簡単なWebインタフェースがあります。SWATを使用するには、Webブラウザで、http://localhost:901を開き、rootユーザでログインします。特別なSamba rootアカウントがない場合、システムのrootアカウントを使用します。

[Note]SWATの有効化

Sambaサーバのインストール後、SWATは有効化されていません。SWATを有効化するには、YaSTで[ネットワークサービス]+[ネットワークサービス(xinetd)]の順に開き、ネットワークサービス設定を有効にし、テーブルから[swat]を選択し、[状態の変更](オンまたはオフ)をクリックします。

28.3.3 サーバの手動設定

Sambaをサーバとして使用する場合は、sambaをインストールします。Samba の主となる設定ファイルは、/etc/samba/smb.confです。このファイルは2つの論理部分に分けられます。[global]セクションには、中心的なグローバル設定が含まれます。[share]セクションには、個別のファイルとプリンタ共有が入っています。このアプローチにより、共有に関する詳細は[global]セクションで個別に、またはグローバルに設定することができ、設定ファイルの構造的透過性が高まっています。

28.3.3.1 グローバルセクション

[global]の次のパラメータは、ネットワークの設定に応じた必要条件を満たし、Windows環境で他のマシンがSMBを経由してこのSambaサーバにアクセスできるようにするために多少の調整が必要です。

workgroup = TUX-NET

この行は、Sambaサーバをワークグループに割り当てます。TUX-NETを実際のネットワーク環境にある適切なワークグループに置き換えてください。DNS名がネットワーク内の他のマシンに割り当てられていなければ、SambaサーバがDNS名の下に表示されます。DNS名が使用できない場合は、netbiosname=MYNAMEを使用してサーバ名を設定します。このパラメータについての詳細はmansmb.confを参照してください。

os level = 2

このパラメータは、SambaサーバがワークグループのLMB(ローカルマスタブラウザ)になるかどうかのきっかけとなります。Sambaサーバの設定が誤っていた場合に、既存のWindowsネットワークに支障が出ないよう、小さな値を選択します。この重要なトピックについての詳細は、パッケージマニュアルのtextdocsサブディレクトリにあるBROWSING.txtBROWSING-Config.txtを参照してください。

ネットワーク内に他のSMBサーバ(たとえば、Windows NTまたは2000サーバ)が存在せず、ローカル環境に存在するすべてのシステムのリストをSambaサーバに保存する場合は、os levelの値を大きくします(たとえば、65)。これでSambaサーバが、ローカルネットワークのLMBとして選択されました。

この設定を変更するときは、それが既存のWindowsネットワーク環境にどう影響するかを慎重に検討する必要があります。まず、隔離されたネットワークで、または影響の少ない時間帯に、変更をテストしてください。

wins supportとwins server

アクティブなWINSサーバをもつ既存のWindowsネットワークにSambaサーバを参加させる場合は、wins serverオプションを有効にし、その値をWINSサーバのIPアドレスに設定します。

各Windowsマシンの接続先サブネットが異なり、互いを認識させなければならない場合は、WINSサーバをセットアップする必要があります。SambaサーバをWINSサーバなどにするには、wins support = Yesオプションを設定します。ネットワーク内でこの設定が有効なSambaサーバは1台だけであることを確認します。smb.confファイル内で、オプションwins serverwins supportは同時に有効にしないでください。

28.3.3.2 共有

次の例では、SMBクライアントがCD-ROMドライブとユーザディレクトリ(homes)を利用できるようにする方法を示します。

[cdrom]

CD-ROMドライブが誤って利用可能になるのを避けるため、これらの行はコメントマーク(この場合はセミコロン)で無効にします。最初の列のセミコロンを削除し、CD-ROMドライブをSambaと共有します。

例 28.1 CD-ROMの共有

;[cdrom]
;       comment = Linux CD-ROM
;       path = /media/cdrom
;       locking = No
[cdrom]およびコメント

[cdrom]エントリは、ネットワーク上のすべてのSMBクライアントが認識できる共有の名前です。さらにcommentを追加して、共有を説明することができます。

path = /media/cdrom

pathオプションで、/media/cdromディレクトリをエクスポートします。

デフォルトを非常に制約的に設定することによって、このシステム上に存在するユーザのみがこの種の共有を利用できるようになります。この共有をあらゆるユーザに開放する場合は、設定にguest ok = yesという行を追加します。この設定は、ネットワーク上の全ユーザに読み込み許可を与えます。このパラメータを使用する場合には、相当な注意を払うことをお勧めします。またこのパラメータを[global]セクションで使用する場合には、さらに注意が必要です。

[homes]

[home]共有は、ここでは特に重要です。ユーザがLinuxファイルサーバの有効なアカウントとパスワードを持ち、独自のホームディレクトリを持っていればそれに接続することができます。

例 28.2 homes共有

[homes]
	comment = Home Directories
	valid users = %S
	browseable = No
	read only = No
	create mask = 0640
	directory mask = 0750
[homes]

SMBサーバに接続しているユーザの共有名を他の共有が使用していない限り、[homes]共有ディレクティブを使用して共有が動的に生成されます。生成される共有の名前は、ユーザ名になります。

valid users = %S

%Sは、接続が正常に確立されるとすぐに、具体的な共有名に置き換えられます。[homes]共有の場合、これは常にユーザ名です。したがって、ユーザの共有に対するアクセス権は、そのユーザだけに付与されます。

browseable = No

この設定を行うと、共有がネットワーク環境で認識されなくなります。

read only = No

デフォルトでは、Sambaはread only = Yesパラメータによって、エクスポートされた共有への書き込みアクセスを禁止します。共有に書き込めるように設定するには、read only = No値を設定します。これはwritable = Yesと同値です。

create mask = 0640

MS Windows NTベース以外のシステムは、UNIXのパーミッションの概念を理解しないので、ファイルの作成時にアクセス権を割り当てることができません。create maskパラメータは、新しく作成されたファイルに割り当てられるアクセス権を定義します。これは書き込み可能な共有にのみ適用されます。実際、この設定はオーナーが読み書き権を持ち、オーナーの一次グループのメンバが読み込み権を持つことを意味します。valid users = %Sを設定すると、グループに読み込み権が与えられても、読み込みアクセスができなくなります。グループに読み書き権を付与する場合は、valid users = %Sという行を無効にしてください。

28.3.3.3 セキュリティレベル

セキュリティを向上させるため、各共有へのアクセスは、パスワードによって保護されています。SMBには、パーミッションをチェックする方法が3つあります。

共有レベルのセキュリティ(セキュリティ=共有)

パスワードが共有に対し確実に割り当てられています。このパスワードを持っているユーザ全員が、その共有にアクセスできます。

ユーザレベルのセキュリティ(セキュリティ=ユーザ)

このセキュリティレベルは、ユーザという概念をSMBに取り入れています。各ユーザは、サーバにパスワードを登録する必要があります。登録後、エクスポートされた個々の共有へのアクセスは、ユーザ名に応じてサーバが許可します。

サーバレベルのセキュリティ(セキュリティ=サーバ)

クライアントに対しては、Sambaがユーザレベルモードで動作しているように見えます。しかし、Sambaはすべてのパスワードクエリを別のユーザレベルモードサーバに渡し、ユーザレベルモードサーバが認証を行います。設定には追加のパラメータが必要です(password server)。

共有、ユーザ、またはサーバレベルのセキュリティの設定は、サーバ全体に適用されます。個別の共有ごとに、ある共有には共有レベルのセキュリティ、別の共有にはユーザレベルセキュリティを設定するといったことはできません。しかし、システム上に設定したIPアドレスごとに、別のSambaサーバを実行することは可能です。

この詳細については、『Samba HOWTO Collection』を参照してください。つのシステムに複数のサーバをセットアップする場合は、オプションinterfacesおよびbind interfaces onlyに注意してください。