目次
概要
Samba を利用することで、 Unix マシンを Mac OSX や Windows, OS/2 マシン向けの ファイルサーバ兼印刷サーバとして設定することができます。 Samba はそれ単体で 完結する製品であり、それなりに複雑な仕組みを備えています。 YaST から Samba を設定することができるほか、 SWAT (Web インターフェイス) や設定ファイルを 手作業で編集することでも設定を行なうことができます。
Samba のドキュメンテーション内、および YaST のモジュールでは、下記に示す いくつかの用語を使用します。
Samba では、 NetBIOS と呼ばれるサービスを ベースにした SMB (server message block) プロトコルを利用しています。 Microsoft では本プロトコルを公開しているため、他のソフトウエアの製造元から Microsoft のドメインネットワークに接続できるようになっています。 Samba では、 SMB プロトコルは TCP/IP プロトコル上で動作するようになっているため、 全てのクライアントで TCP/IP プロトコルをインストールしなければなりません。
CIFS (common Internet file system) は Samba でサポートされている もう 1 つのプロトコルです。 CIFS はネットワークを介してリモートの ファイルシステムにアクセスするプロトコルで、ユーザグループ内で共同作業を 行なうことができるほか、ネットワークを介して文書を共有したりすることが できます。
NetBIOS はマシン間で名前解決サービスを提供するために設計された、通信向け ソフトウエアインターフェイス (API) です。マシンに対してネットワーク内での 名前を予約する機能を持つものです。名前の予約が行なわれると、予約した名前を 通してアクセスできるようになります。 NetBIOS では名前を集中的に管理する マシンが存在するわけではなく、その名前がネットワーク内で使用されていない ことを確認することで、名前の予約を実現しています。また、 NetBIOS の インターフェイスは異なるネットワーク構造でも実装できるような仕組みに なっています。実装は NetBEUI と呼ばれる、 ネットワークハードウエアに近いプロトコル上で動作するように作られていますが、 こちらについても NetBIOS と呼ぶ場合があります。 なお NetBIOS で利用可能なプロトコルとしては、 Novell 社が開発した IPX プロトコルや、 TCP/IP (NetBIOS via TCP/IP) があります。
TCP/IP 上の NetBIOS で利用する名前は、 /etc/hosts
で定義したものや DNS で設定したものとは無関係です。 NetBIOS ではこれらの名前
解決方法は利用せず、完全独自の解決方法を利用しています。ただし、管理上の
都合や DNS を併用する都合から、 DNS のホスト名と一致させておくことを
お勧めします。 Samba ではこれが既定で設定されています。
Samba サーバは、 SMB/CIFS と NetBIOS over IP の名前解決サービスを 提供するサーバです。 Linux では 3 種類のデーモンを利用します: SMB/CIFS サービスには smbd を、名前解決サービスには nmbd を、 認証サービスには winbind をそれぞれ利用します。
Samba クライアントは、 SMB プロトコルを利用して Samba サーバにアクセスする システムのことで、 Mac OS X や Windows, OS/2 などが SMB プロトコルに 対応しています。なお、各コンピュータには TCP/IP プロトコルをインストール しておかなければなりません。また Samba では多くの UNIX システムに対応する クライアントを提供しています。 Linux の場合は SMB 向けのカーネルモジュール が存在し、 Linux システムのレベルで SMB 資源を利用することができるように なっています。 Samba クライアントの場合は、デーモンを動作させる必要はありません。
SMB サーバがクライアントに資源を提供する場合、共有と呼ばれる方法で提供を 行ないます。共有はサーバに設定されたプリンタやディレクトリ (サブディレクトリ を含む) を指す言葉で、共有に設定された名前で資源を公開し、クライアントは その名前でアクセスを行ないます。共有名には任意の名前を設定することができ、 ディレクトリを公開するにあたってディレクトリとは別の名前を設定することが できます。プリンタの場合にも名前を設定し、クライアントからはその名前で アクセスを行ないます。
ドメインコントローラ (DC) は、そのドメイン内でのアカウントを処理する サーバです。データの複製を行なうには、追加のドメインコントローラを 用意する必要があります。
Samba サーバソフトウエアをインストールするには、 YaST を起動して
+ を選択してください。ソフトウエア管理のモジュールが起動したら、 + を選択してから を選択し、インストールしてください。 最後にインストール処理を完了するため、インストールされるパッケージ内容を確認します。Samba サーバは自動で (システムの起動時に) 起動したり停止したりすることができるほか、 手動で開始したり停止したりすることができます。起動や停止のポリシーについて 設定を行なうには、 YaST の Samba サーバ設定を利用します。 詳しくは 19.4.1項 「YaST を利用した Samba サーバの設定」 をお読みください。
YaST から Samba サービスを起動したり停止したりするには、 YaST から rcsmb stop && rcnmb stop コマンドを実行すると Samba の停止を、 rcnmb start && rcsmb start コマンドを実行すると Samba の起動をそれぞれ行なうことができます。 なお、 rcsmb で winbind の処理を行なうため、 winbind について作業を行なう 必要はありません。
+ を選択します。そこからそれぞれ winbind, smb, nmb について選択してください。コマンドラインから実施する場合は、openSUSE® では、 Samba サーバを 2 種類の方法で設定することができます。 1 つは YaST を利用した設定、もう 1 つは手作業での設定です。手作業での設定は より細かい設定を行なうことができますが、 YaST の GUI で提供されるような 利便性はありません。
Samba サーバを設定するには、 YaST を起動して
+ を選択します。初回にモジュールを起動したときには
のダイアログが起動し、まずはサーバの管理に関していくつかの基本設定を 行ないます。その手順の最後は Samba の root に対してパスワードを設定することで 完了となります。 2 回目以降の起動の場合は、 ダイアログが開きます。ダイアログは、以下の 2 つのステップ から構成されます:
既存の名前を
から選択するか、新しい名前を入力して を押します。次のステップでは、お使いのサーバをプライマリドメインコントローラ (PDC) 、もしくはバックアップドメインコントローラ (BDC) 、非ドメイン コントローラのいずれかで動作させるのかを選択します。指定を終えたら
を押します。詳細なサーバ設定に移動したくない場合は、ここで
を押してください。あとは最後のポップアップ表示で を入力します。このダイアログで設定した項目は、
の ダイアログ内の , , , , の各タブを利用することで、後から変更する ことができます。Samba サーバモジュールを初回に起動すると、 19.4.1.1項 「初期の Samba 設定」 で説明しているとおり、 ダイアログが表示 され、 2 段階の手順で設定を行ないます。高度な設定は、この作業を終えた後に 設定を調整する場合に利用します。
設定を変更したあとは、
を押すと設定を保存することが できます。19.3項 「Samba の起動と停止」 をお読みください。
タブでは、 Samba サーバの起動方法を設定することが できます。お使いのシステムを起動する際にサービスを開始したい場合は、 を選択してください。手作業で開始したい場合は、 を選択してください。 Samba サーバの起動方法について、 詳しくはまた、このタブでは、お使いのファイアウオールでポートを開く設定を行なうことも できます。これを行なうには、
を選択してください。お使いの環境に複数のネットワークインターフェイスが存在する 場合は、 を押してネットワーク インターフェイスを選択し、 を押してください。タブでは、有効化する Samba 共有を設定することが できます。共有の中には、ホームディレクトリやプリンタなど、いくつか事前に設定 されているものが存在します。共有を選択して を押すと、 と を切り替えることができます。 を押すと新しい共有を追加することができますし、 を押すと選択した共有を削除することができます。
users
のように、
ドメインのグループを設定する場合は DOMAIN\Users
のように指定します。なお、各ユーザはファイルシステム側のパーミッション
設定でも、アクセスを許可していなければならないことに注意してください。
また、 では、作成可能な共有数の上限を
設定することができます。ユーザが作成した共有に対して認証無しでアクセスできる
ようにしたい場合は、 を選択してください。
タブでは、そのホストに対して関連づけるドメインを 設定することができます ( 内) 。また、ネットワーク 内で代替のホスト名を利用したい場合も、ここで設定を行ないます ( ) 。このタブでは、名前解決に Microsoft Windows Internet Name Service (WINS) を利用するかどうかを設定することもできます。 これを利用する場合は、 を選択し、必要に応じて を選択してください。より高度なグローバル設定やユーザ認証ソースを設定したい場合 は、 を押してください。
他のドメインのユーザに対してお使いのドメインにアクセスできるようにするには、
タブ内で必要な設定を行ないます。 新しいドメインを追加するには ボタンを、選択した ドメインを削除するには ボタンを押します。タブでは、認証に使用する LDAP サーバについて 設定を行なうことができます。 LDAP サーバとの接続をテストするには、 ボタンを押してください。高度な LDAP 設定を 行なう場合や、既定の値を使用したい場合は、 を押してください。
LDAP の設定について、詳しくは 第4章 ディレクトリサービス LDAP (↑セキュリティガイド) を お読みください。
Samba サーバを管理するための代替ツールとして、 SWAT (Samba Web Administration
Tool) があります。 SWAT はシンプルな Web インターフェイスを提供するもので、
Samba サーバを設定する機能を提供します。 SWAT を利用するには、
root
ユーザになっている状態で
Web ブラウザから http://localhost:901 を Web ブラウザで
開いてください。 Samba 用の root アカウントを設定していない場合は、システムの
root
アカウントをお使いください。
SWAT の有効化 | |
---|---|
初期段階の Samba サーバインストールを完了しても、 SWAT は有効化されません。 SWAT を有効化するには、 YaST から + を開き、 ネットワークサービスの設定を開いてください。その状態から一覧内にある を選択し、 を押して切り替えてください。 |
Samba をサーバとして利用したい場合は、 samba
パッケージをインストールしてください。 Samba で中心となる設定ファイルは
/etc/samba/smb.conf
で、このファイルは大きく分けて
2 つのパートから構成されています。 [global]
セクション
にはサーバ全体の設定が含まれ、 [share]
セクションでは
個別のファイルまたはプリンタ共有に関する設定が含まれています。この設定の
仕組みにより、共有に関する詳細設定と [global]
セクションの
設定はそれぞれ別々に行なうことができるため、設定ファイルの構造的な透過性が
保たれるようになっています。
[global]
セクション内の下記のパラメータは、
お使いのネットワーク環境に合わせて変更すべき箇所で、 Windows 環境の
他のマシンからお使いの Samba サーバにアクセスするため、必要な項目です。
workgroup = TUX-NET
この行では、 Samba サーバに対してワークグループを設定しています。
お使いの環境にあわせて TUX-NET
を適切な文字列に
変更してください。その名前が別のマシンに割り当てられていない限り、
ご利用の Samba サーバは DNS に登録した名前で現われるようになります。
DNS に名前を登録することができない場合は、
netbiosname=
の書式でサーバ名を設定してください。このパラメータについて、詳しくは
名前
smb.conf
のマニュアルページをお読みください。
os level = 20
このパラメータは、お使いの Samba サーバがワークグループ内の LMB
(ローカルマスターブラウザ) になるかどうかを指定するものです。 Samba
バージョン 3 シリーズでは、既定の値 (20
) を上書き
する必要はほとんどありません。また、誤った Samba サーバの設定によって
既存の Windows ネットワークが混乱することを防ぐため、 2
のようなとても低い値に設定しておいてください。この話題について、詳しくは
Samba 3 Howto 内の Network Browsing (ネットワークブラウズ) 関連の章を
お読みください。 Samba 3 Howto については 19.7項 「さらなる情報」
をお読みください。
お使いのネットワーク内に他の SMB サーバ (Windows 2000 Server など) が
存在しない場合や、ローカル環境の全システムの一覧を Samba サーバで管理したい
場合は、 os level
の値をより高い値に設定してください
(たとえば 65
など) 。これによりお使いの Samba サーバは、
ローカルネットワーク内での LMB として動作するようになります。
なお、この設定を変更する場合は、既存の Windows ネットワーク環境にどのような 影響があるのかをよく確かめてから行なってください。まずは本番の環境とは 切り離されたネットワークやそれほど重要ではないネットワークで、設定を試して みてください。
wins support
と wins server
お使いの Samba サーバを WINS サーバの存在する既存の Windows ネットワークに
追加する場合は、 wins server
オプションを有効に設定し、
WINS サーバの IP アドレスを設定してください。
お使いの Windows マシンが別のサブネットに接続されていて、 Samba サーバとは
互いに存在を通知しあいたい場合は、 WINS サーバを設定する必要があります。
Samba サーバで WINS サーバの機能を動作させるには、
wins support = Yes
のオプションを設定してください。
なお、同じネットワーク内では 1 台までの Samba サーバで有効に設定してください。
また、 smb.conf
ファイルでは
wins server
と wins support
の両方をいっぺんに設定してはなりません。
下記の例では、 CD-ROM ドライブとユーザディレクトリ (homes
)
を SMB クライアントに公開する場合を想定し、設定例を示しています。
CD-ROM ドライブを誤って共有してしまうことを防ぐため、下記の行はコメント マークを利用して無効化してあります (この設定ファイルの場合はセミコロン を書きます) 。 CD-ROM ドライブを Samba で共有する場合は、各行の冒頭に あるセミコロンを取り除いてください。
[cdrom]
と comment
[cdrom]
の項目は、ネットワーク上から SMB
クライアントが参照する名前です。 comment
行を
利用することで、さらに細かい説明を追加することができます。
path = /media/cdrom
path
オプションでは、 /media/cdrom
ディレクトリを公開するよう指定しています。
なお、既定の設定は安全性を第一に考えられたものであるため、これらの共有は
このシステムに存在するユーザに対してのみ公開されます。この共有を誰にでも
利用できるようにするには、設定内に guest ok = yes
という行を追加してください。この設定を行なうことで、ネットワーク内の
誰にでも読み取りアクセスを許可するようになります。なお、このパラメータを
利用するにあたっては、 [global]
セクションでの設定
よりも優先して動作することにご注意ください。
[homes]
[homes]
共有は特別な意味を持つ共有です。 Linux の
ファイルサーバ内に有効なアカウントとパスワードが存在し、かつそのユーザが
ホームディレクトリを持っていれば、この共有にアクセスできるようになります。
例19.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 では下記の方法で許可をチェックすることができます:
security = share
)共有に対してパスワードを設定します。このパスワードを知っている ユーザだけが、この共有にアクセスできます。
security = user
)この設定は SMB のユーザに対する考え方を提供するものです。この設定では、 あらかじめ各ユーザをサーバに登録し、パスワードを設定しなければなりません。 登録後、サーバはそのユーザ名に対して許可した共有にアクセスできるように なります。
security = server
)
クライアントに対しては、 Samba はユーザレベルと同じ振る舞いを見せます。
ただしユーザレベルセキュリティとは異なり、入力されたパスワードは他の
サーバに転送され、そこで認証を行ないます。この設定の場合、追加の
password server
パラメータを設定する必要があります。
security = ADS
)このモードでは、 Samba は Active Directory 環境のドメインメンバーとして 動作します。このモードで動作するには、 Samba の動作するマシンに Kerberos をインストールし、設定しておかなければなりません。また、そのマシンは Samba を利用して ADS の領域に参加しなければなりません。これらの設定は、 YaST
モジュールから 行なうことができます。security = domain
)
このモードは、そのマシンが Windows NT ドメインに参加している場合にのみ
動作します。この設定で Samba は、ユーザ名とパスワードを Windows NT の
プライマリまたはバックアップのドメインコントローラに送信し、検証を
行ないます。これは Windows NT Server が行なう方法と同じです。
なお、暗号化パスワードを指定するパラメータについて、
yes
に設定する必要があります。
共有/ユーザ/サーバ/ドメインの各レベルのセキュリティは、サーバ全体に 適用されます。共有レベルのセキュリティとユーザレベルのセキュリティを混在させた 共有を設定してサーバ設定を行なうことはできません。ただし、システムに設定した 各 IP アドレスに対し、別々の Samba サーバを設定して起動することは可能です。
この種類の話題について、より詳しい情報は Samba 3 HOWTO に書いてあります。
1 つのシステムで複数のサーバを立ち上げる場合は、
interfaces
とbind interfaces only
の
各オプションについて注意して設定してください。
Samba クライアントでは、 TCP/IP で提供される Samba サーバにのみアクセスする ことができます。 NetBEUI や IPX 上の NetBIOS ではアクセスできません。
Samba サーバや Windows サーバ上に存在する資源 (ファイルやプリンタ) にアクセスするには、 Samba クライアントを設定します。
+ で表示される ダイアログで、それぞれ NT ドメインや Active Directory ドメイン、または ワークグループ名を入力してください。 を選択すると、ユーザ認証を Samba や NT 、または Kerberos サーバ上で行なうようになります。
高度な設定オプションを表示するには、 pam_mount
のマニュアルページをお読みください。
全ての設定を終えたら、
を押して設定を完了してください。
主として Windows クライアントが多く存在するネットワークでは、有効なアカウント
とパスワードだけを登録しておくことが望まれます。 Windows ベースのネットワーク
では、これはプライマリドメインコントローラ (PDC) を利用して行ないます。
PDC として設定済みの Windows NT server を利用して設定することもできますが、
Samba サーバを利用することでもこの作業を行なうことができます。なお、
smb.conf
ファイル内の [global]
セクションに対し、 例19.3「smb.conf のグローバルセクション」 で示される
ような設定を行なっておかなければなりません。
ユーザ認証時に暗号化パスワードを利用する場合、 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 Admins
に割り当てるため、下記のコマンドを
実行します:
net groupmap add ntgroup="Domain Admins" unixgroup=ntadmin
この種類の話題について詳しい情報は、 Samba 3 HOWTO 内の第 12 章に書かれています。
/usr/share/doc/packages/samba/Samba3-HOWTO.pdf
を
お読みください。
Samba に関する詳細な情報は、デジタル文書で提供されています。
コマンドラインから apropos samba
を実行して
複数のマニュアルページを参照するか、 Samba のドキュメンテーションがインストール
されている場合は、 /usr/share/doc/packages/samba
ディレクトリ内をお読みのうえ、オンライン文書と設定例を参照してください。
examples
サブディレクトリ内には、コメントの付けられた設定例
ファイル (smb.conf.SUSE
) があります。
また、 Samba チーム提供の Samba 3 HOWTO には、トラブルシューティングに関する章が
あります。これに加え、文書の Part V には設定を確認するための手順が書かれています。
Samba 3 HOWTO は samba-doc
パッケージに含まれ、
/usr/share/doc/packages/samba/Samba3-HOWTO.pdf
ファイル
からアクセスすることができます。
また、 openSUSE wiki の Samba ページ http://ja.openSUSE.org/Samba についてもお読みください。