概要
Sambaを使用すると、DOS、Windows、OS/2マシンに対するファイルサーバおよびプリントサーバをUnixマシン上に構築できます。Sambaは、今や成熟の域に達したかなり複雑な製品です。 基本的な機能に加えて、この章では、Sambaの設定に関する基本事項について、およびネットワーク上でのSambaの設定に使用できるYaSTモジュールについて説明します。
Sambaについての詳細な情報は、デジタルドキュメントの形で入手できます。コマンドラインからapropos sambaと入力するとマニュアルページを参照できます。または、Sambaをインストール済であれば、/usr/share/doc/packages/sambaディレクトリに格納されているオンラインマニュアルと例を参照できます。また、コメント付きの設定例(smb.conf.SuSE)がexamplesサブディレクトリに用意されています。
付属のバージョン3のsambaパッケージは、次のような重要な新機能を備えています。
Active Directoryのサポート
Unicodeサポートの拡張
内部認証メカニズムの全面改訂
Windows 200xおよびXP印刷システムの大幅な機能向上
Active Directoryドメインのメンバサーバとしてのサーバのセットアップ
NT4ドメインの採用と、NT4ドメインからSambaドメインへの移行の実現
![]() | Samba3への移行 |
|---|---|
Samba 2.xからSamba 3に移行するときは、いくつか特別な配慮が必要です。このトピックについては、『Samba HOWTO Collection』で1章全部を費やして説明されています。 | |
SambaはSMBプロトコル(サーバメッセージブロック)を使用します。SMBはNetBIOSサービスを基にしています。IBMからの圧力によって、Microsoftがこのプロトコルをリリースしたので、他のソフトウェアメーカはMicrosoftドメインネットワークに接続できるようになりました。Sambaでは、SMBプロトコルがTCP/IPプロトコルの上で動作するので、すべてのクライアントにTCP/IPプロトコルをインストールする必要があります。
は、マシン間通信用に設計されたソフトウェアインタフェース(API)です。ここではネームサービスが提供されています。これにより、ネットに接続されたマシンが、それ自体の名前を維持できます。予約を行えば、これらのマシンを名前によって指定できます。名前をチェックする一元的なプロセスはありません。ネットワーク上のマシンは、すでに使用済みの名前でない限り、名前をいくつでも予約できます。現在、NetBIOSインタフェースは、異なるネットワークアーキテクチャ用に実装できるようになっています。ネットワークハードウェアと比較的密接に機能する実装はNetBEUIと呼ばれますが、これはよくNetBIOSとも呼ばれます。NetBIOSとともに実装されるネットワークプロトコルは、Novell IPX (TCP/IP経由の NetBIOS)とTCP/IPです。
TCP/IP経由で送信されたNetBIOS名は、/etc/hostsで使用されている名前、またはDNSで定義された名前とまったく共通点がありません。NetBIOSは独自の、完全に独立した名前付け規則を使用しています。しかし、管理を容易にするために、DNSホスト名に対応する名前を使用することをお勧めします。これはSambaが使用するデフォルトでもあります。
Mac OS X、Windows、OS/2などの一般的なオペレーティングシステムは、すべてSMBプロトコルをサポートしています。TCP/IPプロトコルは、すべてのコンピュータにインストールする必要があります。Sambaは、異なるUNIXフレーバーに対してクライアントを提供します。Linuxでは、SMB用のカーネルモジュールがあり、LinuxシステムレベルでのSMBリソースの統合が可能です。
SMBサーバは、そのクライアントに対し、共有によってハードウェア空間を提供します。共有には、サーバ上のディレクトリとそのサブディレクトリが含まれます。これは名前によってエクスポートされ、名前によってアクセスされます。共有名にはどのような名前も設定できます。エクスポートディレクトリの名前である必要はありません。プリンタにも名前が割り当てられます。クライアントはプリンタに名前でアクセスできます。
Sambaをサーバとして使用する場合は、sambaをインストールする必要があります。Samba に必要なサービスは、rcnmb start && rcsmb start で起動し、rcsmb stop && rcnmb stop で停止します。
Sambaの主となる設定ファイルは/etc/samba/smb.confです。このファイルは2つの論理部分に分けられます。[global]セクションには、中心的なグローバル設定が含まれます。[share]セクションには、個別のファイルとプリンタ共有が入っています。このアプローチにより、共有に関する詳細は[global]セクションで個別に、またはグローバルに設定することができ、設定ファイルの構造的透過性が高まっています。
[global]の次のパラメータは、ネットワークの設定に応じた必要条件を満たし、Windows環境で他のマシンがSMBを経由してこのSambaサーバにアクセスできるようにするために多少の調整が必要です。
この行は、Sambaサーバをワークグループに割り当てます。TUX-NETを実際のネットワーク環境にある適切なワークグループに置き換えてください。DNS名がネットワーク内の他のマシンに割り当てられていなければ、SambaサーバがDNS名の下に表示されます。DNS名が使用できない場合は、netbiosname=MYNAMEを使用してサーバ名を設定します。このパラメータについての詳細はmansmb.confを参照してください。
このパラメータは、SambaサーバがワークグループのLMB(ローカルマスタブラウザ)になるかどうかのきっかけとなります。Sambaサーバの設定が誤っていた場合に、既存のWindowsネットワークに支障が出ないよう、小さな値を選択します。この重要なトピックについての詳細は、パッケージマニュアルのtextdocsサブディレクトリにあるBROWSING.txtとBROWSING-Config.txtを参照してください。
ネットワーク内に他のSMBサーバ(たとえば、Windows NTまたは2000サーバ)が存在せず、ローカル環境に存在するすべてのシステムのリストをSambaサーバに保存する場合は、os levelの値を大きくします(たとえば、65)。これでSambaサーバが、ローカルネットワークのLMBとして選択されました。
この設定を変更するときは、それが既存のWindowsネットワーク環境にどう影響するかを慎重に検討する必要があります。まず、隔離されたネットワークで、または影響の少ない時間帯に、変更をテストしてください。
アクティブなWINSサーバをもつ既存のWindowsネットワークにSambaサーバを参加させる場合は、wins serverオプションを有効にし、その値をWINSサーバのIPアドレスに設定します。
各Windowsマシンの接続先サブネットが異なり、互いを認識させなければならない場合は、WINSサーバをセットアップする必要があります。SambaサーバをWINSサーバなどにするには、オプションwins support = Yesを設定します。ネットワーク内でこの設定が有効なSambaサーバは1台だけであることを確認します。smb.confファイル内で、オプションwins serverとwins supportは同時に有効にしないでください。
次の例では、SMBクライアントがCD-ROMドライブとユーザディレクトリ(homes)を利用できるようにする方法を示します。
CD-ROMドライブが誤って利用可能になるのを避けるため、これらの行はコメントマーク(この場合はセミコロン)で無効にします。最初の列のセミコロンを削除し、CD-ROMドライブをSambaと共有します。
[cdrom]およびコメントエントリ[cdrom]は、ネットワーク上のすべてのSMBクライアントが認識できる共有の名前です。さらにcommentを追加して、共有を説明することができます。
path = /media/cdrompathオプションで、/media/cdromディレクトリをエクスポートします。
デフォルトを非常に制約的に設定することによって、このシステム上に存在するユーザのみがこの種の共有を利用できるようになります。この共有をあらゆるユーザに開放する場合は、設定にguest ok = yesという行を追加します。この設定は、ネットワーク上の全ユーザに読み込み許可を与えます。このパラメータを使用する場合には、相当な注意を払うことをお勧めします。またこのパラメータを[global]セクションで使用する場合には、さらに注意が必要です。
[homes][home]共有は、ここでは特に重要です。ユーザがLinuxファイルサーバの有効なアカウントとパスワードを持ち、独自のホームディレクトリを持っていればそれに接続することができます。
例 48.2. homes共有
[homes] comment = Home Directories valid users = %S browseable = No read only = No create mask = 0640 directory mask = 0750
SMBサーバに接続しているユーザの共有名を他の共有が使用していない限り、[homes]共有ディレクティブを使用して共有が動的に生成されます。 生成される共有の名前は、ユーザ名になります。
valid users = %S%S は、接続が正常に確立されるとすぐに、具体的な共有名に置き換えられます。 [homes]共有の場合、これは常にユーザ名です。したがって、ユーザの共有に対するアクセス権は、そのユーザだけに付与されます。
browseable = Noこの設定を行うと、共有がネットワーク環境で認識されなくなります。
read only = Noデフォルトでは、Sambaはread only = Yesパラメータによって、エクスポートされた共有への書き込みアクセスを禁止します。共有に書き込めるように設定するには、値read only = Noを設定します。これはwriteable = Yesと同値です。
create mask = 0640MS Windows NTベース以外のシステムは、UNIXのパーミッションの概念を理解しないので、ファイルの作成時にアクセス権を割り当てることができません。パラメータcreate maskは、新しく作成されたファイルに割り当てられるアクセス権を定義します。これは書き込み可能な共有にのみ適用されます。実際、この設定はオーナーが読み書き権を持ち、オーナーの一次グループのメンバが読み込み権を持つことを意味します。valid users = %Sを設定すると、グループに読み込み権が与えられても、読み込みアクセスができなくなります。グループに読み書き権を付与する場合は、valid users = %Sという行を無効にしてください。
SMBプロトコルはDOSやWindowsの世界から生まれ、セキュリティの問題についてもよく考慮されています。各共有へのアクセスは、パスワードによって保護されています。SMBには、パーミッションをチェックする方法が3つあります。
パスワードが共有に対し確実に割り当てられています。このパスワードを持っているユーザ全員が、その共有にアクセスできます。
このセキュリティレベルは、ユーザという概念をSMBに取り入れています。各ユーザは、サーバにパスワードを登録する必要があります。登録後、エクスポートされた個々の共有へのアクセスは、ユーザ名に応じてサーバが許可します。
クライアントに対しては、Sambaがユーザレベルモードで動作しているように見えます。しかし、Sambaはすべてのパスワードクエリを別のユーザレベルモードサーバに渡し、ユーザレベルモードサーバが認証を行います。設定には追加のパラメータが必要です(password server=)。
共有、ユーザ、およびサーバレベルのセキュリティの区別は、サーバ全体に適用されます。個別の共有ごとに、ある共有には共有レベルのセキュリティ、別の共有にはユーザレベルセキュリティを設定するといったことはできません。しかし、システム上に設定したIPアドレスごとに、別のSambaサーバを実行することは可能です。
この詳細については、『Samba HOWTO Collection』を参照してください。つのシステムに複数のサーバをセットアップする場合は、オプションinterfacesおよびbind interfaces onlyに注意してください。
![]() | ティップ |
|---|---|
Sambaサーバでの管理作業を簡単にするため、swatというプログラムも用意されています。このプログラムには、Sambaサーバを便利に設定するための簡単なWebインタフェースがあります。Webブラウザで、http://localhost:901を開き、 | |