レベル: 中級 Radhika Parameswaran, Senior Software Development Engineer, IBM
2008年 11月 25日 Samba は、Windows® クライアントと UNIX® ライクなプラットフォームとの間にシームレスなファイル・サービスと印刷サービスを提供する無料のオープンソース・ソフトウェア・スイートです。AIX®、BSD® UNIX、Linux®、IBM® 390、そして OpenVMS などの UNIX ライクなプラットフォームで実行することが可能な Samba は、ホスト・サーバーにインストールされた TCP/IP プロトコルを使用します。ホスト・マシンはこのサーバー・ソフトウェアを構成すると、Windows クライアントからアクセスできるようにファイルとプリンターを共有設定にすることができます。
はじめに
Samba は、Windows クライアントと UNIX ライクなプラットフォームとの間にシームレスなファイル・サービスと印刷サービスを提供する無料のオープンソース・ソフトウェア・スイートです。
AIX、BSD UNIX、Linux、IBM 390、そして OpenVMS などの UNIX ライクなプラットフォームで実行することが可能な Samba は、ホスト・サーバーにインストールされた TCP/IP プロトコルを使用します。ホスト・マシンはこのサーバー・ソフトウェアを構成すると、Windows クライアントからアクセスできるようにファイルとプリンターを共有設定にすることができます。
AIX バージョンの Samba で使用できる重要な機能には以下のものがあります。
- SMIT を使用したバイナリーのインストール
- SMB ベースのファイル・サービスと印刷サービス
- 共有とユーザーの作成
- Web ベースのシステム・マネージャー、SWAT (Samba Web Administration Tool) を使用した構成と保守
- トレースおよびログ機能
- ファイル送信用 API サポート
- 長い AIX ユーザー名とファイル名のサポート
- リソース・ブラウジング・プロトコル (隣接ネットワーク)
- パススルー認証
- ゲスト・ログオン・サポート
- 共有およびドメイン・レベルのセキュリティー・サポート
- ユニコード・サポート
- 多重化 SMB サポート (Windows 端末サポート)
- NETBIOS 未使用の接続
- SMB 署名
- Active Directory サポート
- ディレクトリー変更通知
- MSDFS サポート
- AIX Classic および NFSv4 ACL のサポート
- ネットワーク・ログオン・サポート (ユーザー・プロファイルのローミングも含む)
- サーバー・レベルのセキュリティー (ドメイン・コントローラー機能)
- ラージ・ファイル・サポート
- DOS ファイル属性マッピング
- 自動接続解除
- ブラウズ・マスター・サポート
AIX バージョンの Samba に提供されていない機能には以下のものがあります。
- LDAP サーバーまたはクライアントとしての Samba
- Active Directory サーバーとしての Samba
- Kerberos サーバー・サポート
- DCE/DFS サポート
- DNS 更新サポート
- 自動マウント/smbmount サポート
- PAM サポート
- NISPLUS サポート
- クラスター・サポート
ハードウェアおよびソフトウェア要件
6100-02 Technology Level 以降を備えた AIX をサポートするマシンであれば、どのマシンでも Samba は稼働します。サーバーの最少メモリー要件は以下のとおりです。
- 30MB の RAM
- ネットワークに接続された TCP/IP 対応 LAN アダプター
各クライアント PC についての要件は、LAN アダプターがインストールされていること、ネットワークに物理的に接続されていること、そして Windows 98、Server 2003、NT®、Vista®、XP® などの Windows フレーバーのいずれかがインストールされていることです。
Samba は Fast Connect との互換がないことに注意してくだい。したがって、Fast Connect の既存のバージョンはアンインストールする必要があります。
パッケージとインストールに関する要件
AIX での Samba には以下のパッケージが必要です。
| イメージ |
ファイルセット |
説明 |
| Samba.base | Samba.base | Samba サーバー | | Samba.license S | amba.license | Samba ライセンス | | Samba.man | Samba.man | Samba のマニュアル・ページ |
構成と管理
SWAT の構成
Samba サーバーと接続できるようにするためには、ユーザーおよび共有を作成しなければなりません。共有に関する情報を保管する構成ファイルは /usr/lib/smb.conf です。このファイルを編集するには、AIX でテキスト・エディターを使用することも、SWAT インターフェースを使用することもできます。
SWAT を構成する手順は、以下のとおりです。
- 以下の行を /etc/inetd.conf に追加します。
swat stream tcp nowait root /usr/sbin/swat swat
|
- 以下の行を /etc/services に追加します。
- 以下のコマンドを実行して inetd を更新して上記の内容を反映します。
SWAT の構成が完了すると、ブラウザーで以下の URL を指定することで SWAT に接続できるようになります。
http://samba_server.my.domain.:910
|
SWAT ページでは、すべての構成パラメーターのヘルプを表示することができます。これらのマニュアル・ページには、AIX コマンドラインから man コマンドを使用してアクセスすることもできます。
Samba サーバーの起動
Samba には nmbd と smbd という 2 つのデーモンがあります。Samba が正常に機能するには、この 2 つのデーモンが実行中でなければなりません。
nmbd は、Windows 95/98/ME、Windows NT、Windows 2000、Windows XP、LanManager クライアントなどの SMB/CIFS クライアントが生成する NetBIOS over IP ネーム・サービス・リクエストを認識し、それに応答することのできるサーバーです。このデーモンは Windows Network Neighborhood ビューを構成するブラウジング・プロトコルにも参加します。
smbd はファイル共有と印刷サービスを Windows クライアントに提供するサーバー・デーモンで、SMB (または CIFS) プロトコルを使用してファイル・スペースと印刷サービスをクライアントに提供します。
これらのデーモンは、コマンドラインから以下を実行すると起動します。
デーモンのログは、/var ディレクトリーにそれぞれ log.nmbd、log.smbd として配置されます。
/etc/inittab に以下のエントリーを追加することで、システムのリブート時に自動的にデーモンを起動することもできます。
mkittab nmb:2:once:/usr/sbin/nmbd
mkittab smb:2:once:/usr/sbin/smbd
|
これで、リブートの度に 2 つのデーモンが起動され、プロセス・リストに表示されることになります。
# ps -ef | grep mbd
root 667870 708792 0 12:49:24 - 0:00 smbd
root 675974 1 0 12:49:24 - 0:00 nmbd
root 708792 1 0 12:49:24 - 0:00 smbd
|
ユーザーの作成
新規ユーザーを作成するには、SWAT の Password メニュー、または pdbedit ユーティリティーを使用します。
# pdbedit -a guest
new password:
retype new password:
|
新しく追加するユーザーは基本的に AIX ユーザーです。既存のユーザーのパスワードは、以下のように smbpasswd ユーティリティーを使って変更することができます。
共有の作成
新しい共有を作成するには、smb.conf ファイルを編集するか、SWAT の Shares メニューを使用します。以下は、smb.conf での共有定義の一例です。
smb.conf のテスト
testparm ユーティリティーを使用して smb.conf の内容をテストすることができます。エラーが表示された場合には、smb.conf を編集してエラーを解決し、以下の testparm ユーティリティーでもう一度テストして確認することができます。
# testparm /usr/lib/smb.conf
Load smb config files from /usr/lib/smb.conf
Processing section "[tmp]"
Processing section "[public]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
[global]
workgroup = USERS
[samba]
path = /samba
|
接続のテスト
AIX マシンで共有との接続を一覧表示するには、smbclient ユーティリティーを使用します。
# smbclient -L //beas.in.ibm.com/samba
Password:
Anonymous login successful
Domain=[USERS] OS=[UNIX] Server=[Samba 3.0.25b]
Sharename Type Comment
--------- ---- -------
tmp Disk
public Disk
IPC$ IPC IPC Service (Samba 3.0.25b)
Anonymous login successful
Domain=[USERS] OS=[UNIX] Server=[Samba 3.0.24]
Server Comment
--------- -------
BEAS Samba 3.0.24
Workgroup Master
--------- -------
USERS
|
smbclient ユーティリティーを使って共有に接続することもできます。
# smbclient //beas.in.ibm.com/samba -U root
Password: Domain=[BEAS] OS=[UNIX] Server=[Samba 3.0.24]
smb: \>
|
カレント・ディレクトリーを確認する方法は以下のとおりです。
smb: \> pwd
Current directory is \\beas.in.ibm.com\samba
|
サーバーのシャットダウン
以下に、Samba サーバーをシャットダウンするためのコマンドを記載します。
smbcontrol smbd shutdown
smbcontrol nmbd shutdown
|
共有との接続解除
サーバー・マシンから共有との接続を解除するには、以下のコマンドを実行します。
smbcontrol <process id of smbd> close-share <sharename>
|
以下に例を示します。
# smbcontrol 352494 close-share homes
# smbcontrol 352494 close-share guest
|
クライアントで開いているファイルが 1 つでもある場合、これらのコマンドを実行しても接続は解除されないことに注意してください。
クライアントのタイムアウト
クライアントのタイムアウトを設定するには、サーバー・マシンから以下のコマンドを実行します。
# smbcontrol --timeout=100 smbd close-share tmp
|
タイムアウトに設定した時間が過ぎると、クライアントが切断されます。
別の方法として、以下のように smb.conf にタイマーを設定することもできます。
上記は、クライアントに接続し、ドライブを 1 分間アイドル状態にしてからドライブを切断する例です。
クライアントへの ping
サーバー・マシンからクライアントに ping を送信するには、以下のコマンドを実行します。
smbcontrol <pid of smbd> close-share <sharename>
|
以下はその一例です。
# smbcontrol 352494 ping
PONG from pid 352494
|
クライアントからのレスポンスは PONG メッセージです。
トレースおよびログ機能
Samba では、nmbd と smbd 両方のデーモンのログを提供します。nmbd ログは /var/log.nmbd に追加され、smbd ログは /var/log.smbd に追加されます。
重要な機能と構成
このセクションでは Samba の重要な機能をいくつか取り上げ、それぞれの構成方法を説明します。
ユーザー・レベルのセキュリティー
前のセクションで触れたユーザーの認証は、ユーザー・レベルのセキュリティーです。この場合、ユーザーは Samba サーバーの中で定義されます。クライアントはサーバーに定義されているユーザーのうちの 1 つを使用して認証を行います。smb.conf でのグローバル・オプションは以下のようになります。
上記は Samba サーバーでのデフォルト・オプションです。
共有レベルのセキュリティー
nobody、Administrator などからなる標準内部ユーザー・リストは、Samba 内で作成されます。ファイルやプリンター・リソースへのアクセスは、これらの標準ユーザーのいずれかとして認証された場合に許可されます。
リソースへのアクセスを特定のユーザーにのみ許可する場合は、smb.conf で以下のように構成します。
[global]
security = share
[tmp]
only user = yes
user = ann
path = /tmp
[samba]
path = /samba
|
上記の構成例では、/tmp にはユーザー ann だけがアクセスできる一方、/samba にはゲスト・ユーザーがアクセスできることになります。
only user オプションは、Samba が共有への接続を許可する際に、Samba の内部リストにまとめられたユーザー (nobody、Administrator など) ではなく、ユーザー名オプションに指定された個人のみを基準として共有レベルのセキュリティーを使用するかどうかを指定します。このオプションのデフォルト値は no です。
サーバー・レベルのセキュリティー
サーバー・レベルのセキュリティーでは、認証を別のサーバーに渡すことができます。これは、パススルー認証とも呼ばれます。以下は、smb.conf での構成例です。
[global]
workgroup = IN.IBM.COM
encrypt passwords = yes
security = server
password server = jhelum.in.ibm.com
[share2]
comment = mnt
path = /home/mary/mnt2
read only = No
valid users = mary
[share1]
comment = mary
path = /home/mary/mnt1
writeable = yes
valid users = nobody
|
上記の例では、ユーザー「mary」に share2 へのアクセスを許可し、「nobody」に share1 へのアクセスを許可しています。
ドメイン・コントローラーの機能
ドメイン・コントローラーは、その特定ドメイン内にあるすべてのマシン (Windows と AIX の両方) の認証を行います。ドメインは通常、同一サブネットに関連します。Samba はドメイン・コントローラーとして機能することが可能です。その場合、smb.conf には以下に記載するコードが含まれていなければなりません。
[global]
workgroup = SAMBA
security = user
domain master = yes
local master = yes
preferred master = yes
os level = 65
domain logons = yes
add machine script = /usr/sbin/useradd -d /var/lib/nobody -g 100 %u
|
Windows クライアントの設定には、Samba ドメインを結合し、Samba ドメインからリモート・ユーザー・リストへのアクセス許可を追加します。これらのユーザーは Windows に存在していなくても構いませんが、Samba ドメインには存在している必要があります。
Samba がドメイン・コントローラーで、Windows がそのドメインのメンバーとなります。したがって、ドメインが選択され、ユーザー名とパスワードが Windows クライアントから入力されると、認証リクエストは Samba サーバーに送られることになります。別の Samba サーバーへのパススルーを実装し、そのサーバーをドメイン・コントローラーにするには以下のようにします。
[global]
security = server
password server = jhelum.in.ibm.com
|
上記では、Samba サーバーを実行している jhelum がドメイン・コントローラーとなるので、認証は jhelum に渡されます。
smb.conf に追加するドメイン・コントローラーが不明な場合には、Samba サーバーが追加するドメイン・コントローラーをドメイン内で検索することも可能です。そのための smb.conf での設定は以下のようになります。
Active Directory サポート
AD (Active Directory) サーバーが Windows にインストールされている場合、すべての接続要求を Active Directory サーバーにリダイレクトして認証を行うように Samba を構成することができます。
その方法を以下に説明します。
AD と Samba の両サーバーで、rocky というユーザーをそれぞれ別のパスワードを設定して作成します。AD が Windows クライアント 9.124.101.235 にインストールされている場合には、smb.conf を以下のように構成します。
[global]
WORKGROUP = mygroup
security = server
password server = 9.124.101.235
[tmp]
path = /tmp
msdfs root = yes
public = yes
[rocky]
path = /home/rocky
public = yes
|
2 つの異なるパスワード (Samba 用と AD 用) を使ってユーザー rocky をマッピングすると、Samba と AD の両方が認証を行うことになります。
マルチユーザー・ログオン
マルチユーザー・ログオン機能では、複数のクライアントが 1 つのサーバー接続で共有リソースにアクセスできるようにします。
この機能をテストするには、Windows マシンに Windows Terminal Server をインストールします。そのマシンをリブートして、任意のドライブを Samba サーバーに割り当てます。この Windows マシンに、「リモート デスクトップ」サービスを使用して別のクライアントから接続してみてください。
割り当てられたドライブが表示され、このドライブには通常と同じ方法でアクセスできるはずです。つまり、パスワード・プロンプトなしでログインすることができます。
やり取りが行われるのは、マッピングされたクライアントと Samba サーバーとの間でのみです。このとき 2 番目のクライアントの IP はどこにも表示されませんが、それでもクライアントと Samba サーバーとのやりとりは行われます。
ゲスト・ログオン
ゲスト・ログオンを有効にするには、smb.conf で以下のパラメーターを設定します。
[global]
security = user
guest ok = yes
|
ゲスト・アカウントは、パスワードに誤りがある場合や、ユーザー名に誤りがある場合に使われます。map to guest オプションに Bad password が指定されていると、パスワードが誤っている場合 (空のパスワードを含む) にはゲスト・アカウントでログインされます。map to guest オプションに Bad user が指定されていると、ユーザー名が登録されていなければゲスト・アカウントでログインされます。この構成は、以下のとおりです。
[global]
map to guest = Bad user
|
ゲスト・ログオンに割り当てるユーザー・アカウントは、guest account パラメーターで指定します。
[global]
guest account = mary
|
ユーザー名のマッピング
Samba では、共有ファイルまたはプリンターに対して、特定のユーザーのみがアクセスできるように設定したり、特定のアクセス権を設定したりすることができます。
共有の定義では、以下のようにオプションを指定することができます。
##force permissions on files created on a share
create mask = 0777
##force permissions on directories created on a share
directory mask = 0444
## force user and group for files and directories created on a share
force user = root (username)
force group = system (groupname)
|
読み取り/書き込み権限を持つ他のユーザー (root 以外のユーザー) との共有に Windows クライアントのドライブを接続し、新しいファイルを作成します。その共有で作成されたファイルのアクセス許可を確認すると、新規ファイルのアクセス許可は root と system になっていることがわかります。
特定のユーザーにだけ共有の読み取り/書き込みを許可するには、smb.conf で以下の構成を使用してください。
[tmp]
path = /tmp
writable = no
write list = root
read list = root
|
パスワード暗号化
Samba でパスワード暗号化が無効にされると、認証は AIX で行われます。Samba が認証を行うのは、パスワード暗号化が有効になっている場合のみです。
以下のコードを smb.conf に追加します。
[global]
password encryption = no
|
Samba には存在しないユーザーを AIX で作成してください。このユーザーを使用して Windows クライアント内のドライブに接続すると、AIX がユーザーを認証することがわかります。今度は smb.conf での設定を以下に変更します。
[global]
password encryption = yes
|
上記のユーザーで接続してみてください。該当するユーザーが存在しないという理由で接続に失敗するはずです。
以上のことから、暗号化が無効に設定されている場合、またはユーザーが AIX には存在していて Samba には存在していない場合、そのユーザーは AIX によって認証されるということがわかります。Samba が認証を行うのは、上記の 2 番目の例のように、パスワードが暗号化されている場合です。
MSDFS 機能
MSDFS では、複数のファイル・サーバーを 1 つの論理名前空間にシームレスに統合することができます。その結果、以下のことが可能になります。
- ドライブ・マップを 1 つ使うだけで、ネットワーク全体に分散された複数のファイル・サーバーにアクセスすることができます。
- 複数のファイル・サーバーを同じ名前にマッピングして、データ・アクセスの冗長性および局所性を提供することができます。
- この複雑な論理および物理トポロジーを、実際にはリモート・サーバーに存在する可能性もあるサブディレクトリーを含めた単一のディレクトリー・ツリー (ドライブ・マップ) として表示します。
MSDFS ルート・ファイル共有のトポロジーとして編成される MSDFS には、ローカルまたはリモートにある別のファイル共有への MSDFS リンクを含めることができます。これらの MSDFS リンクはサブディレクトリーとして表示されるため、ユーザーがリモート・サーバーで適切に認証される限り、リモート・ファイル共有へのリダイレクトはトランスペアレントに行われます (Windows クライアント・ソフトウェアが、MSDFS リダイレクトとリモート・サーバー認証を管理します)。
この機能を Samba で使用するには、smb.conf ファイルの中で MSDFS ルートを指定する必要があります。
[global]
host msdfs = yes
security = user
[tmp]
path = /tmp
msdfs root = yes
public = yes
|
DFS ルートには以下のようにリンクします。
cd /tmp
ln -s msdfs:beas.in.ibm.com\\radhika t1
|
上記の beas.in.ibm.com\\radhika は共有です。beas も同じく Samba を実行し、--with-msdfs オプションでコンパイルされます。Windows クライアントの tmp 共有をマッピングすると、t1 のディレクトリーにアクセス可能になります。つまりこの機能を使用すれば、1 つの共有のディレクトリーに DFS ルートから例外なくアクセスできるようになるということです。
ACL サポート
Samba は AIXC と NFSv4 ACL の両方をサポートします。以下で詳細を説明するのは、Samba で NFSv4 ACL を使用する場合の構成です。
v2 拡張属性を /samba に設定して、新規ファイル・システムを作成します。このファイル・システムがサポートする ACL タイプを確認します。
# aclgettypes /samba
Supported ACL types are:
AIXC
NFS4
|
test1.txt というファイルを新規に作成し、そのファイルの ACL を確認します。
# aclget test1.txt
*
* ACL_type AIXC
*
attributes:
base permissions
owner(root): rw-
group(system): r--
others: r--
extended permissions
enabled
|
extended permissions が無効になっている場合には、有効にしてください。次に test1.txt の ACL タイプを NFS4 に変換します。
# aclconvert -t NFS4 test1.txt
|
test1.txt の ACL を取得します。
# aclget test1.txt
*
* ACL_type NFS4
*
*
* Owner: root
* Group: system
*
s:(OWNER@): a rwpRWaAdcCs
s:(OWNER@): d xo
s:(GROUP@): a rRadcs
s:(GROUP@): d wpWxACo
s:(EVERYONE@): a rRadcs
s:(EVERYONE@): d wpWxACo
Include a new share for the created filesystem in smb.conf:
[samba]
path = /samba
public = yes
|
UNIX マッピングと NFS4 ACL との間でのマッピングは予測できないため、NFSv4 ACL と ls –l で表示されるリストでのアクセス権限とを比較すると間違った判断に至る可能性があります。
ユーザー「john」(system グループのメンバー) を使用して Windows クライアントのドライブを割り当て、/samba に新規ファイルを作成してください。system グループには削除が許可されていないため、このファイルを削除しようとしてもサーバーによってアクセスが拒否されます。
SMB 署名
SMB 署名は、相互認証機能とメッセージ認証機能を Samba サーバーに提供します。Samba サーバーのデフォルトでは、SMB 署名は無効に設定されています。この機能を有効にすると、すべてのメッセージはデジタル著名を用いて検証されることになります。
SMB 署名を使用可能にするには、smb.conf に以下の内容を追加します。
Windows クライアントで SMB 署名を有効にすると、SMB ヘッダーに「Security signatures are enabled (セキュリティー署名が使用可能です)」というコメントが含まれるようになります。
ラージ・ファイルのサポート
ラージ・ファイルとは、サイズが 4G を超えるファイルのことです。Samba サーバーはデフォルトでラージ・ファイルをサポートするため、特にパラメーターを設定する必要はありません。この機能をテストするには、割り当て済みのドライブを使って AIX から Windows クライアントにラージ・ファイルを転送してください。正常に転送できるはずです。
印刷サービス
AIX のプリンター・リソースは共有することができ、Windows クライアントからアクセスすることができます。
例えば、AIX で以下の印刷キューが構成されているとします。
# lpstat
Queue Dev Status Job Files User PP % Blks Cp Rnk
------ ---- -------- --- ---------- ------ ---- -- --- --- ---
badq lxx READY
52ps hp@9 READY
52cl hp@9 READY
52vcl lxx READY
|
smb.conf にプリンター共有を追加するには、以下のように構成します。
# cat /usr/lib/smb.conf
[global]
print command = /usr/bin/lpr -r -P%p %s
lpq command = cat %p >> /tmp/lpq.log ;/usr/bin/lpq -P%p
lprm command = /usr/bin/lprm -P%p %j
[52vcl]
printable = yes
use client driver = yes
browseable = yes
print command = /usr/bin/lp -d 52vcl %s
path = /tmp
printing = AIX
guest ok = yes
print ok = Yes
|
これで、構成したプリンターが同じサブネット内の近隣の Windows ネットワークに表示されるはずです。これとは別の方法として、別のサブネットでネットワーク・プリンターを新規プリンターとして追加することもできます。
テスト印刷は、SMB クライアントを使用して以下の方法で行います。
# smbclient //aixfvt49.in.ibm.com/52vcl -U joe
Password:
Anonymous login successful
Domain=[SAMBA] OS=[UNIX] Server=[Samba 3.0.26a]
smb: \> put /etc/motd
putting file /etc/motd as \/etc/motd (6.5 kb/s) (average 6.5 kb/s)
smb: \>
|
このネットワーク・プリンターには Windows クライアントから要求を送信することができます。
DOS 属性マッピング
Samba は以下のオプションを使用して DOS ファイル属性をサポートします。
map archive = yes
map system = yes
map hidden = yes
|
以下の図に、DOS 属性によるアクセス許可のマッピングを示します。
DOS 属性によるアクセス許可
共有ディレクトリー内にファイルを作成するには、いくつかの許可ビットを使用します。SMB クライアント・ツールを使用すると、以下のように表示されます。
AIX から表示した場合:
-rwxrwxrwx 1 john staff 0 Jan 29 14:25 New Text Document (4).txt
-rwxrwxrwx 1 guest usr 0 Feb 27 15:23 New Text Document (5).txt
drwxrwxrwx 2 ldapdb2 dbsysadm 256 Feb 08 10:46 SQLDIR.LK0
|
smbclient から表示した場合:
New Text Document (4).txt AHS 0 Tue Jan 29 14:25:56 2008
New Text Document (5).txt AHS 0 Wed Feb 27 15:23:34 2008
SQLDIR.LK0 D 0 Fri Feb 8 10:46:05 2008
|
ディレクトリー変更通知
Samba にはデフォルトでディレクトリー変更通知機能が実装されます。クライアントからディレクトリーに対する変更が行われると (クライアントが新規ファイルを作成するなど)、Samba は「NT NOTIFY」メッセージを生成します。
変更通知の間隔を変更する必要がある場合には、smb.conf を以下のように編集します。
change notify timeout = 10
|
NT NOTIFY リクエストおよびレスポンスは、iptrace が表示します。
NETBIOS 未使用の接続
NETBIOS over TCP/IP を無効にしてから Windows クライアントをリブートします。これでドライブに接続しても、正常に接続できるはずです。つまり、Samba では NETBIOS を使用しなくても接続できるということです。
リソース・ブラウジング・プロトコル
Samba は、同じサブネット内にある Windows クライアントの隣接ネットワークで可視になります。
これをテストするには、まずSamba サーバーと同じサブネット内の Windows クライアント・マシンが必要です。以下は、Samba サーバーが jhelum 内で稼働し、9.124.113.100 が同じサブネット内の Windows クライアントであるという前提でのテスト方法です。
smb.conf を以下のように編集します。
[global]
workgroup = WORKGROUP
security = user
[samba4]
path = /samba4
writeable = yes
valid users = root
|
Windows クライアントで近隣ネットワークをブラウズしてみてください。クライアントの近隣ネットワークに含まれる Samba サーバーを確認できるはずです。
ブラウズ・マスター機能
ネットワーク・ブラウジングは、Windows と Samba サーバーが Windows 近隣ネットワーク内に表示されるようにするための概念です。近隣ネットワーク内ではアイコンがサーバーを表し、サーバーが開かれると、そのサーバーで使用可能な共有とプリンターが表示されます。
ドメイン・マスター・ブラウザーは、すべてのサブネット上にあるローカル・マスター・ブラウザーのブラウズ・リストを照合し、ワークグループとサブネット間でブラウズが行われるようにします。また、できればドメイン・マスター・ブラウザーは、それ自体が存在するサブネットのローカル・マスター・ブラウザーにしてください。
Samba をブラウズ・マスターとして機能させるためには、以下のように設定します。
[global]
local master = yes
preferred master = yes
WORKGROUP = SAMBA
|
nmbd が LAN Manager アナウンスのブロードキャストを繰り返すまで待機する時間 (秒単位) は、smb.conf で以下のように設定します。
ここで、Windows クライアントからの接続をテストします。
SMB クライアント・ツールを使用して、以下のようにしてブラウズ・マスター機能をテストしてください。
# smbclient -L //aixfvt21.in.ibm.com/tmp
Password:
Anonymous login successful
Domain=[SAMBA] OS=[UNIX] Server=[Samba 3.0.26a]
Sharename Type Comment
--------- ---- -------
tmp Disk
samba Disk
IPC$ IPC IPC Service (Samba 3.0.26a)
Anonymous login successful
Domain=[SAMBA] OS=[UNIX] Server=[Samba 3.0.26a]
Server Comment
--------- -------
AIXFVT21 Samba 3.0.26a
Workgroup Master
--------- -------
SAMBA AIXFVT21
|
以下に、log.nmbd の該当する部分を抜粋します。
[2008/03/27 13:22:10, 0] nmbd/nmbd_become_lmb.c:become_local_master_stage2(396)
*****
|
これで、Samba ネーム・サーバー AIXFVT21 が、サブネット 9.124.101.199 にあるワークグループ SAMBA のローカル・マスター・ブラウザーになります。
Samba がブラウズ選択に参加することを確実にするには、local master = yes を指定すればよいだけです。preferred master = yes により、Samba がオンライン状態になるとブラウズ選択が行われるように指定されます。
問題の判別
トレース
クライアントとサーバー間のメッセージ・パケットをトレースするには、AIX で tcpdump コマンドを使用します。
サーバーで、以下のように tcpdump コマンドを開始してください。
tcpdump -s 0 -w <tracefile> host <hostname> and <hostname/ipaddress>
|
以下はその一例です。
tcpdump -s 0 -w cap_1.cap host aixfvt21 and 9.126.241.144
|
クライアントとサーバー間でのトランザクションが完了してからでないと、tcpdump をキルすることはできません。作成されたトレース・ファイルは、Ethereal をはじめ、任意のツールを使って表示することができます。
ログ
/var/log.smbd が SMB デーモンからのメッセージを記録し、/var/log.nmbd が nmb デーモンからのメッセージを記録します。
ログ・レベルを引き上げるには、smb.conf で以下のように設定します。
The log levels can be increased by the following in smb.conf:
必要な場合にはいつでも、これらのログでエラー・メッセージを調べることができます。
まとめ
この記事では、Samba サーバーをセットアップして構成する方法、共有を定義して Windows からアクセスする方法を説明しました。また、さまざまな認証メカニズムについても説明しました。
参考文献 学ぶために
製品や技術を入手するために
- IBM ソフトウェアの試用版: developerWorks から直接ダウンロードできるソフトウェアで、次の開発プロジェクトを構築してください。
議論するために
- AIX および UNIX の以下のフォーラムに参加してください。
著者について  | |  | Radhika Parameswaran は BITS Pilani の大学院の卒業生で、彼女はここで学士や大学院生の指導も務めていました。2004年に IBM に入社した彼女は、AIXオペレーティング技術を専門としています。現在取り組んでいるのは、AIX での SMB ファイル・システム関連の製品です。 |
記事の評価
|