目次
概要
Sambaを使用すると、Mac OS X、Windows、OS/2マシンに対するファイルサーバおよびプリントサーバをUnixマシン上に構築できます。Sambaは、今や成熟の域に達したかなり複雑な製品です。Sambaは、YaST、SWAT(Webインタフェース)を使用するか設定ファイルを手動で編集して設定します。
ここでは、SambaのマニュアルやYaSTモジュールで使用される用語について説明します。
SambaはSMB(サーバメッセージブロック)プロトコルを使用します。SMBはNetBIOSサービスを基にしています。Microsoftがこのプロトコルをリリースしたので、他のソフトウェアメーカはMicrosoftドメインネットワークに接続できるようになりました。Sambaでは、SMBプロトコルがTCP/IPプロトコルの上で動作するので、すべてのクライアントにTCP/IPプロトコルをインストールする必要があります。
![]() | IBM System z:NetBIOSサポート |
|---|---|
IBM System zではSMB over TCP/IPのみがサポートされています。これら2つのシステムではNetBIOSをサポートしていません。 | |
CIFS (common Internet file system)プロトコルは、Sambaがサポートしているプロトコルです。CIFSは、ネットワーク上で使用する標準のリモートファイルシステムで、ユーザグループによる共同作業およびネットワーク間でのドキュメントの共有ができるようにします。
NetBIOSは、マシン間通信用に設計された、ネームサービスを提供するソフトウェアインタフェース(API)です。これにより、ネットワークに接続されたマシンが、それ自体の名前を維持できます。予約を行えば、これらのマシンを名前によって指定できます。名前を確認する一元的なプロセスはありません。ネットワーク上のマシンでは、すでに使用済みの名前でない限り、名前をいくつでも予約できます。NetBIOSインタフェースは、異なるネットワークアーキテクチャに実装できるようになっています。ネットワークハードウェアと比較的密接に機能する実装はNetBEUIと呼ばれますが、これはよくNetBIOSとも呼ばれます。NetBIOSとともに実装されるネットワークプロトコルは、Novell IPX (TCP/IP経由の NetBIOS)とTCP/IPです。
TCP/IP経由で送信されたNetBIOS名は、/etc/hostsで使用されている名前、またはDNSで定義された名前とまったく共通点がありません。NetBIOSは独自の、完全に独立した名前付け規則を使用しています。しかし、管理を容易にするために、DNSホスト名に対応する名前を使用するか、DNSをネイティブで使用することをお勧めします。これはSambaが使用するデフォルトでもあります。
Sambaサーバは、SMB/CIFSサービスおよびNetBIOS over IPネーミングサービスをクライアントに提供します。Linuxの場合、3種類のSambaサーバデーモン(SMB/CIFSサービス用smnd、ネーミングサービス用nmbd、認証用winbind)が用意されています。
Sambaクライアントは、SMBプロトコルを介してSambaサーバからSambaサービスを使用するシステムです。Mac OS X、Windows、OS/2などの一般的なオペレーティングシステムは、すべてSMBプロトコルをサポートしています。TCP/IPプロトコルは、すべてのコンピュータにインストールする必要があります。Sambaは、異なるUNIXフレーバーに対してクライアントを提供します。Linuxでは、SMB用のカーネルモジュールがあり、LinuxシステムレベルでのSMBリソースの統合が可能です。Sambaクライアントに対していずれのデーモンも実行する必要はありません。
SMBサーバは、そのクライアントに対し、共有によってリソースを提供します。共有は、サーバ上のサブディレクトリのあるディレクトリおよびプリンタです。これは名前によってエクスポートされ、名前によってアクセスされます。共有名にはどのような名前も設定できます。エクスポートディレクトリの名前である必要はありません。プリンタにも名前が割り当てられます。クライアントはプリンタに名前でアクセスできます。
ドメインコントローラ(DC)はドメインのアカウントを処理するサーバです。データレプリケーションには、1つのドメインの中で追加のドメインコントローラが使用できます。
Sambaサーバは、自動(ブート中)か手動で起動または停止できます。ポリシーの開始および停止は、27.3.1項 「YaSTによるSambaサーバの設定;」で説明しているように、YaST Sambaサーバ設定の一部です。
YaSTを使用して実行中のSambaサービスを停止または起動するには、+の順に選択し、winbind、smb、nmbにチェックを付けます。コマンドラインで、「rcsmb stop && rcnmb stop」を入力して、Sambaに必要なサービスを停止し、「rcnmb start && rcsmb start」を入力して起動します。rcsmbは必要に応じてwinbindを処理します。
SUSE® Linux Enterprise ServerのSambaサーバは、YaSTを使って、または手動で設定することができます。手動で設定を行えば細かい点まで調整できますが、YaSTのGUIほど便利ではありません。
Sambaサーバを設定するには、YaSTを起動して、+の順に選択します。
このモジュールを初めて起動すると、ダイアログが起動して、サーバ管理に関していくつかの基本的な事項を決定するように要求されます。設定の最後に、Samba管理者パスワードを要求されます()。次回起動時には、ダイアログが表示されます。
ダイアログは、次の2つのステップとオプションの詳細設定で構成されています。
から既存の名前を選択するか、新しい名前を入力し、を入力します。
次のステップでは、サーバをPDC(プライマリドメインコントローラ)として機能させるか、BDC(バックアップドメインコントローラとして機能させるか、またはドメインコントローラとしては機能させないかを指定します。で続行します。
詳細なサーバ設定に進まない場合は、を選択して確認します。次に、最後のポップアップボックスで、を設定します。
この設定はすべて、後からダイアログで、、、、の各タブを使用して変更することができます。
Sambaサーバモジュールの初回起動中、2つの初期化ステップ(27.3.1.1項 「初期Samba設定」参照)の直後にダイアログが表示されます。ここでは、Sambaサーバの設定を編集することができます。
設定を編集し終わったら、をクリックして設定を保存します。
[Start Up]システムのブート時に毎回サービスが起動されるようにするには、を選択します。手動起動を有効化するには、を選択します。Sambaサーバの起動の詳細については、27.2項 「Sambaの起動および停止」を参照してください。
このタブで、ファイアウォールのポートを開くこともできます。そのためには、を選択します。複数のネットワークインタフェースがある場合は、をクリックし、インタフェースを選択した後、をクリックして、Sambaサービス用のネットワークインタフェースを選択します。
[共有]homesおよびプリンタなど、事前定義済みの共有がいくつかあります。を使用して、との間で切り替えます。新規の共有を追加するには、共有を削除するにはをクリックします。
を選択すると、中のグループメンバーに、各自のディレクトリを他のユーザと共有させることができます。たとえば、ローカルの範囲のusers、あるいはドメインの範囲ではDOMAIN\Usersを設定します。また、ユーザにはファイルシステムへのアクセスを許可するパーミッションがあることを確認してください。で、共有の最大数を制限することができます。認証なしでユーザ共用へのアクセスを許可するには、を有効にします。
タブで、ホストが関連付けられているドメイン()と、ネットワークで代替ホスト名を使用するかどうか()を指定します。 名前解決にMicrosoft Windows Internet Name Service(WINS)を使用することもできます。この場合、を有効にし、DHCP経由でWINSサーバを取得(を使用)するかどうか決定します。TDBデータベースではなくLDAPなど、エキスパートグローバル設定またはユーザ認証ソースを設定するには、をクリックします。
他のドメインのユーザを、自分のドメインにアクセスさせるには、タブで適切な設定を行います。新しいドメインを追加するには、をクリックします。選択したドメインを削除するには、をクリックします。
[LDAP Settings]LDAPサーバへの接続をテストするには、をクリックします。エキスパートLDAP設定を設定するか、デフォルト値を使用する場合、をクリックします。
LDAP設定に関する詳細については、第4章 LDAP—A Directory Service (↑Security Guide (セキュリティガイド))を参照してください。
Sambaサーバ管理の代替ツールは、SWAT(Samba Web管理ツール)です。このプログラムには、Sambaサーバを設定するための簡単なWebインタフェースがあります。SWATを使用するには、Webブラウザで、http://localhost:901を開き、rootユーザでログインします。特別なSamba rootアカウントがない場合、システムのrootアカウントを使用します。
![]() | SWATの有効化 |
|---|---|
Sambaサーバのインストール後、SWATは有効化されていません。SWATを有効化するには、YaSTで+の順に開き、ネットワークサービス設定を有効にし、テーブルからを選択し、をクリックします。 | |
Sambaをサーバとして使用する場合は、sambaをインストールします。Sambaの主要設定ファイルは、 /etc/samba/smb.conf です。このファイルは2つの論理部分に分けられます。[global]セクションには、中心的なグローバル設定が含まれます。[share]セクションには、個別のファイルとプリンタ共有が入っています。このアプローチにより、共有に関する詳細は[global]セクションで個別に、またはグローバルに設定することができ、設定ファイルの構造的透過性が高まっています。
[global]の次のパラメータは、ネットワークの設定に応じた必要条件を満たし、Windows環境で他のマシンがSMBを経由してこのSambaサーバにアクセスできるようにするために多少の調整が必要です。
workgroup = TUX-NET
この行は、Sambaサーバをワークグループに割り当てます。TUX-NETを実際のネットワーク環境にある適切なワークグループに置き換えてください。DNS名がネットワーク内の他のマシンに割り当てられていなければ、SambaサーバがDNS名の下に表示されます。DNS名が使用できない場合は、netbiosname=を使用してサーバ名を設定します。このパラメータに関する詳細については、MYNAMEsmb.confのマニュアルページを参照してください。
os level = 20
このパラメータは、SambaサーバがワークグループのLMB(ローカルマスタブラウザ)になるかどうかのきっかけとなります。Samba 3リリースシリーズでは、デフォルト設定(20)を上書きする必要はほとんどなくなりました。Sambaサーバの設定が誤っていた場合に、既存のWindowsネットワークに支障が出ないよう、小さな値(たとえば2)を選択します。この重要なトピックの詳細については、『Samba 3 Howto』のネット「ワークブラウジング」の章を参照してください。『Samba 3 Howto』の詳細については、27.7項 「詳細情報」を参照してください。
ネットワーク内に他のSMBサーバ(たとえば、Windows 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 serverとwins supportは同時に有効にしないでください。
次の例では、SMBクライアントがCD-ROMドライブとユーザディレクトリ(homes)を利用できるようにする方法を示します。
CD-ROMドライブが誤って利用可能になるのを避けるため、これらの行はコメントマーク(この場合はセミコロン)で無効にします。最初の列のセミコロンを削除し、CD-ROMドライブをSambaと共有します。
[cdrom]およびコメント
[cdrom]セクションエントリは、ネットワーク上のすべてのSMBクライアントが認識できる共有の名前です。さらにcommentを追加して、共有を説明することができます。
path = /media/cdrom
pathオプションで、/media/cdromディレクトリをエクスポートします。
デフォルトを非常に制約的に設定することによって、このシステム上に存在するユーザのみがこの種の共有を利用できるようになります。この共有をあらゆるユーザに開放する場合は、設定にguest ok = yesという行を追加します。この設定は、ネットワーク上の全ユーザに読み込み許可を与えます。このパラメータを使用する場合には、相当な注意を払うことをお勧めします。またこのパラメータを[global]セクションで使用する場合には、さらに注意が必要です。
[homes]
[homes]共有は、ここでは特に重要です。ユーザがLinuxファイルサーバの有効なアカウントとパスワードを持ち、独自のホームディレクトリを持っていればそれに接続することができます。
例27.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値を設定します。これはwritable = Yesと同値です。
create mask = 0640
MS Windows NTベース以外のシステムは、UNIXのパーミッションの概念を理解しないので、ファイルの作成時にアクセス権を割り当てることができません。create maskパラメータは、新しく作成されたファイルに割り当てられるアクセス権を定義します。これは書き込み可能な共有にのみ適用されます。実際、この設定はオーナーが読み書き権を持ち、オーナーの一次グループのメンバが読み込み権を持つことを意味します。valid users = %Sを設定すると、グループに読み込み権が与えられても、読み込みアクセスができなくなります。グループに読み書き権を付与する場合は、valid users = %Sという行を無効にしてください。
セキュリティを向上させるため、各共有へのアクセスは、パスワードによって保護されています。SMBでは、次の方法で権限を確認できます。
セキュリティ=共有)パスワードが共有に対し確実に割り当てられています。このパスワードを持っているユーザ全員が、その共有にアクセスできます。
セキュリティ=ユーザ)このセキュリティレベルは、ユーザという概念をSMBに取り入れています。各ユーザは、サーバにパスワードを登録する必要があります。登録後、エクスポートされた個々の共有へのアクセスは、ユーザ名に応じてサーバが許可します。
セキュリティ=サーバ)
クライアントに対しては、Sambaがユーザレベルモードで動作しているように見えます。しかし、Sambaはすべてのパスワードクエリを別のユーザレベルモードサーバに渡し、ユーザレベルモードサーバが認証されます。この設定では、追加のpassword serverパラメータが必要になります。
セキュリティ=ADS)このモードでは、Sambaはアクティブディレクトリ環境のドメインメンバーとして動作します。このモードで操作するには、Sambaを実行しているコンピュータにKerberosがインストールされ設定済みであることが必要です。Sambaを使用してコンピュータをADSレルムに結合させる必要があります。これは、YaSTのを使用して行います。
セキュリティ=ドメイン)
このモードは、コンピュータがWindows NTドメインに結合している場合に正しく動作します。Sambaはユーザ名とパスワードをWindows NT PrimaryまたはBackup Domain Controllerに渡すことによって、これらを検証しようとします。Windows NT Serverが行うのと同じ方法です。暗号化されたパスワードパラメータがyesに設定されている必要があります。
共有、ユーザ、サーバ、またはドメインレベルのセキュリティの設定は、サーバ全体に適用されます。個別の共有ごとに、ある共有には共有レベルのセキュリティ、別の共有にはユーザレベルセキュリティを設定するといったことはできません。しかし、システム上に設定したIPアドレスごとに、別のSambaサーバを実行することは可能です。
この詳細については、『Samba 3 HOWTO』を参照してください。つのシステムに複数のサーバをセットアップする場合は、オプションinterfacesおよびbind interfaces onlyに注意してください。
クライアントは、TCP/IP経由でのみSambaサーバにアクセスできます。IPX経由のNetBEUIおよびNetBIOSは、Sambaで使用できません。
SambaクライアントをSambaサーバまたはWindowsサーバ上のリソース(ファイルまたはプリンタ)にアクセスするように設定します。NTまたはActive Directoryのドメインまたはワークグループを、+の順に選択して表示したダイアログに入力します。を有効にした場合、ユーザ認証は、Samba、NT、またはKerberosのサーバ上で実行されます。
をクリックして、高度な設定オプションを設定します。たとえば、認証による自動的なサーバホームディレクトリのマウントを有効化するには、のテーブルを使用します。これにより、CIFS上でホストされると、ホームディレクトリにアクセスできるようになります。詳細については、 pam_mountのマニュアルページを参照してください。
すべての設定を完了したら、ダイアログを確認して設定を終了します。
Windowsクライアントが大部分を占めるネットワークでは、ユーザが有効なアカウントとパスワードを持つ場合のみ登録できることが求められるのが普通です。Windowsベースのネットワークでは、このタスクはPDC (プライマリドメインコントローラ)によって処理されます。Windows NTサーバをPDCとして使用することもできますが、Sambaサーバを使用しても処理できます。例27.3「smb.confファイルのグローバルセクション」に示すように、smb.confの[global]セクションにエントリを追加する必要があります。
暗号化されたパスワードが検証目的で使用される場合、Sambaサーバはこれを処理できるはずです。これには、[global]セクションでエントリencrypt passwords = yesを指定します(Sambaバージョン 3ではデフォルト)。また、ユーザアカウントとパスワードをWindowsに準拠した暗号化形式で作成する必要があります。そのためにはコマンドsmbpasswd -a nameを実行します。さらに次のコマンドを使用して、Windows ドメイン概念で必要になるコンピュータのドメインアカウントを作成します。
useradd hostname\$ smbpasswd -a -m hostname
useraddコマンドを使用すると、ドル記号が追加されます。コマンドsmbpasswdを指定すると、パラメータ-mを使用したときにドル記号が自動的に挿入されます。コメント付きの設定例(/usr/share/doc/packages/Samba/examples/smb.conf.SuSE)には、この作業を自動化するための設定が含まれています。
add machine script = /usr/sbin/useradd -g nogroup -c "NT Machine Account" \
-s /bin/false %m\$
Sambaがこのスクリプトを正常に実行できるようにするため、必要な管理者権限を持つSambaユーザを選択して、ntadminグループに追加します。これにより、このLinuxグループに属するすべてのユーザに対し、次のコマンドによってDomain Adminステータスを割り当てることができます。
net groupmap add ntgroup="Domain Admins" unixgroup=ntadmin
このトピックの詳細については、/usr/share/doc/packages/samba/Samba3-HOWTO.pdfにある『Samba 3 HOWTO』の第12章を参照してください。
LinuxサーバとWindowsサーバの両方を利用する場合、2つの独立した認証システムまたはネットワークを作成するか、または単一の中央認証システムを持つ単一のネットワークに両方のサーバを接続します。SambaはActive Directoryドメインと連携できるため、お使いのSUSE Linux Enterprise ServerをActive Directory (AD)に参加できます。
既存のActive Directoryドメインに参加するには、インストール時に設定を行うか、または後でYaSTを使って、SMBユーザ認証を有効にします。インストール時にドメインへの参加を設定する方法については、 項 「ユーザ認証方法」 (第6章 YaSTによるインストール;, ↑導入ガイド)を参照してください。
稼働中のシステムをActive Directoryドメインに参加させるには、以下の手順に従ってください。
Sambaについての詳細な情報は、デジタルドキュメントの形で入手できます。コマンドラインから「apropossamba」と入力するとマニュアルページを参照できます。または、Sambaマニュアルがインストールされている場合は、/usr/share/doc/packages/sambaディレクトリに格納されているオンラインマニュアルと例を参照できます。また、コメント付きの設定例(smb.conf.SuSE)がexamplesサブディレクトリに用意されています。
Sambaチームが作成した『Samba-3 HOWTO』にはトラブルシューティングについても説明されています。またマニュアルのPart Vでは、手順を追って設定を確認するためのガイドが用意されています。samba-docパッケージのインストール後、/usr/share/doc/packages/samba/Samba3-HOWTO.pdfで、『Samba-3 HOWTO』を参照できます。