(注:記事は執筆時の情報に基づいており,現在では異なる場合があります)

(3) Windowsクライアントでのping

 同様のことをWindowsマシン上でも確認しよう。

(例)
ping 10.1.0.20
ping aclient

これらがエラーになる場合も,やはりクライアントのネットワーク・カードが認識されていないか,TCP/IPの設定が正しくない可能性が高い。Windowsの場合はコマンド・プロンプトで

(例)
ipconfig /all
(Windows 9x系はwinipcfg )

を実行して確認しよう。

(4) LinuxマシンとWindowsクライアント間でIPアドレスによるping

 LinuxとWindows間で双方向にIPアドレスでpingできることを確認する。

(例 Linuxマシンbigserverの上でWindowsマシンへping)
ping 10.1.0.20
(例 Windowsマシン上からLinuxマシンへping)
ping 10.1.0.10

もし,これに応答がないか,エラーになる場合は,ネットワークがダウンしているか,ルーターなどの設定ミスが考えられる。設定や接続を確認しよう。

(5) LinuxマシンからWindowsクライアントへ名前でping

 Linuxマシンのbigserverの上でWindowsクライアントへ名前でpingする。

(例)
ping aclient

 名前でのpingに関しては,エラーになったとしてもSambaへのアクセスには問題ないのだが,SWATでのアクセスが異常に遅くなることがある。これを解決するには,クライアント・マシンのアドレスをDNSに登録した後に/etc/resolv.confファイルにDNSサーバーのアドレスを正確に設定するか,あるいはSambaもしくはWindowsサーバーをWINS(Windows Internet Name Service)サーバーとして機能させ,/etc/nsswitch.confのhosts行において,dns以外にwinsを加え,WINSによる名前解決ができるようにすると良い。なお,後者の場合はWindowsクライアント側のTCP/IP設定もしくはDHCPサーバー側のリソース設定でWINSサーバーのアドレスを指定することを忘れてはいけない。

(6) WindowsクライアントからLinuxマシンへ名前でping

 WindowsクライアントからLinuxマシンへ名前でpingする。

(例)
ping bigserver

 Linux側からの名前でのpingがエラーとなってもSambaへのアクセスには影響しないこともあるが,Windows側からの名前でのpingに関しては,エラーになるとSambaへのアクセスができないので,この問題は必ず解決する必要がある。

 これを解決するには,クライアント・マシンが参照するDNSにLinuxマシンを登録するか,もしくはWINSによる名前解決ができるようにSambaもしくはWindowsサーバーをWINSサーバーとして機能させるとともにWindowsクライアントにWINSサーバーの設定を行えば良い(Windowsクライアント側のTCP/IP設定がDHCPになっている場合は,DHCPサーバ側のリソース設定でWINSサーバーのアドレスを指定する)。

(7) 必要最低限の設定での実行

 以上,(1)~(6)で基本的なネットワークの設定を確認した。これからSamba側の設定を確認していく。

 ある程度Sambaの利用経験がある方は,この項を飛ばしても構わないが,Sambaを初めて利用する方(および使い始めて間もない方)は,まずは必要最低限の簡単な設定でSambaを動作させ,動作確認をしながら一歩一歩,高度な設定へと進んでいただきたい。

 初心者の方は,SWATを使用して以下のような設定をしてみよう。

[global]
coding system = euc
client code page = 932
encrypt passwords = Yes
map to guest = Bad User
workgroup = TESTGROUP
[tmp]
path = /tmp
guest ok =yes

 この設定では,動作確認のためにだれにでも書き込み可能な作業用ディレクトリ/tmpを共有にした。/tmpは作業用ディレクトリのため,定期的にOSによってファイルが削除されたり,システムの制御ファイルが作成されたりするので,実際の運用では/tmpを共有場所として使用してならない。

 なお,ある程度Sambaの経験があって,自分のSambaサーバーの環境(smb.conf)で障害原因を調査をする場合は,まずLinuxにログオンし,testparmコマンドを実行すること。testparmでエラーが表示される場合は,smb.conf設定に何かの問題があるので見直して修正する。

(8) Linux上でのsmbclient実行

 SWATもしくはWebminなどでsmb.confにSambaの設定ができ,(WebminやSWATで)Sambaを起動できたら,Linuxにログオンし,smbclientを実行する。このとき,Linuxにログオンするユーザー名は,Windowsにログオンするものと同じであること(WindowsクライアントがSambaサーバーへ接続を要求するときに,Windowsへログオンしたユーザー名を使用して接続しようと試みるため)。ユーザー名には,英語大文字が含まれない方が好ましい。さらに,パスワードも同じであることが望ましい。Sambaのパスワードは,smbpasswdコマンドで設定する(LDAPなどでユーザーを管理している場合は,2003年6月号の本講座で紹介した方法で設定する)*1

 ログオン後,以下のコマンドを実行する。

(例 Sambaが起動していることを確認)
smbclient -L bigserver

これにより,使用できる共有サービス名の一覧が表示されるはずだ。

 エラー・メッセージが表示された場合は,Sambaがきちんと起動されているかを,service smb statusやsmbstatusコマンドにより確認する。もし,起動していないのなら,/var/log/sambaにあるエラー・ログを確認して,原因を取り除く。

 Sambaが起動しているのにエラーが発生する場合は,smb.confが適切でない可能性が高い。先ほどのsmb.confに変更して確認するか,一時的に,hosts allow , hosts deny , valid users , invalid users あるいはbind interfaces only = Yesの記述行を削除(コメントアウト)してテストしてみると良い。

 smb.confを変更した場合は,必ずtestparmコマンドを実行して,smb.confの文法に誤りがないかを確認するとともに,Sambaのログ・ディレクトリやロック・ファイルを格納するディレクトリがきちんと存在するかも確認する。

(9) NBT(NetBIOS over TCP/IP)の動作確認

 Linuxマシンで以下のコマンドを実行する。

nmblookup -A BIGSERVER

これにより,Sambaが提供するNetBIOS名やワークグループ名が得られるはずだ。
何も表示されないようなら,smbdが正しく起動されていない。デーモンが稼働していて,139/tcpポートが"LISTEN"状態であることを「netstat -a」コマンドにより確認しよう。また,Sambaがinetd/xinetd経由で起動されていないことも確認する。

(ミラクル・リナックス 小田切 耕司)


(次回に続く)