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

 LinuxとSambaを活用して,Windowsネットワークのファイル/プリント・サーバーを構築しよう。本セミナーは,Linuxの基本事項を含めてSambaの使い方を分かりやすく解説していく。今回は,Sambaがうまく動作しないときの対処方法を初心者でも分かるよう丁寧かつ詳しく解説する。

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

写真1●WebminからSWATを起動
Webmin(左)からSWAT(右)を起動すると,SWATのデータが暗号化される。実際,SWATを表示しているWebブラウザの“アドレス”(URL)が,https:で始まっている。これは,通信プロトコルが,暗号通信機能を持つSSL(Secure Socket Layer)であることを示している。
図1●誤った/etc/hosts設定例
図2●正しい/etc/hosts設定例
 Sambaの設定は,(Linuxでは通常/etc/samba/にある)smb.confファイルに対して行う。viやgedit,emacsなどのテキスト・エディタを使って設定ファイル(smb.conf)を直接編集しても構わないが,初心者はSWAT(Samba Web管理ツール)を使った方が分かりやすいので良いだろう。

 MIRACLE LINUXやTurbolinux,Vine Linuxなどの国産ディストリビューションを利用している場合は,Webmin(Web経由の管理ツール,詳細はhttp://jp.webmin.com/を参照)が標準で搭載されているので,Webmin中のメニューからSambaの設定を行ったり,WebminからSWATを呼び出して設定すると良いだろう(写真1[拡大表示] 。なお,xinetdやinetdからSWATを起動するとデータが暗号化されないので,デフォルトでは利用できないようになっている)。Webminでは通常,URLに「https://サーバ名:10000/」を指定して接続するが,MIRACLE LINUXのようにデフォルトではリモートからの接続を不許可にしているものもあるので,製品ドキュメントなどをよく確認しよう。通常,これらのディストリビューションでWebminやSWATを使用する際に問題が生じることはまずない。

 問題は,初心ユーザーの多くが使用していると思われるRed Hat Linuxだ。最新機能がいち早く取り入れられて見た目は華やかなのだが,Sambaの動作環境として考えると,整備されているとは言いがたい。Samba日本語版を採用していないし,Webminも搭載していないためだ。それでもRed Hat LinuxでSambaサーバーを構築したければ(正直,Samba初心者には荷が重いためお勧めはしないが),以下の点に留意していただきたい。

●Samba日本語版を使用すること

 Red Hat Linuxのインストール時にSambaパッケージを選択しても,標準ではSWATがインストールされない(SWATはsamba-swatというパッケージに入っている)ので,そのままではSWATが動作しない。また,オリジナルの(日本語版ではない)Sambaを使うと,日本語の扱いでさまざまな問題が生じるので,日本Sambaユーザ会(http://www.samba.gr.jp/)から最新のSamba日本語版をダウンロードして使用しよう。

 その際は,Red Hat Linuxのバージョンに合致したSambaをダウンロードするよう気をつけてほしい。Red Hat 7.0/7.1/7.2/7.3と,たとえ小数点以下のバージョンが異なるだけであっても,各バージョンのRed Hat間には互換性がないためだ(MIRACLE LINUXは2.0と2.1の間に互換性が確保されている)。

 なお,初心者は決してソースからコンパイルしてインストールしようと思ってはいけない。RPMパッケージをダウンロードして導入しよう。

●ファイアウオール設定

 Red Hat Linuxのインストール時のファイアウオール設定で,デフォルトは「中」になっているが,「高」「中」ではSambaもSWATも利用できない。初心者は内部ネットワーク(イントラネット)で使用することを前提に「なし」と設定するのが良いだろう。設定には,setupもしくはlokkitコマンドを使用する。

 これもまたよくある質問だが,lokkitではファイアウオールを「なし」と設定しても,起動すると毎回「高」と表示されるのだが,これはlokkitの仕様でありバグではない。

Sambaが正しく動作しないとき

 初心者の場合は,Sambaがうまく動かないと,どのように対処すれば良いのかが分からず,お手上げになってしまうことが多いようだ。これから挙げる項目を調査し,自力で解決を試みてほしい。

 手順を説明する前に,まず動作環境を以下のように仮定する。

・Sambaが動作するLinuxマシンのホスト名: BIGSERVER
・LinuxマシンのIPアドレス:10.1.0.10
・Windowsクライアントの名前: ACLIENT
・WindowsクライアントのIPアドレス:10.1.0.20
・LinuxとWindowsマシンともに"TESTGROUP"という名前のワークグループに所属
・サブネットマスク:255.255.0.0

(1) 自マシンへIPアドレスでping

 パケットを送り,相手の状況を調べるpingコマンドを,Linuxマシンのbigserverの上で自分あてに発行する。

(例)
ping 10.1.0.10

もし,これに応答がないか,エラーになる場合は,ネットワーク・カードがシステムから認識されていないか,TCP/IPの設定が正しくないことを意味する。/sbin/ifconfigコマンドなどで設定や接続を確認しよう。

(2)自マシンへホスト名でping

 Linuxマシンbigserverの上で自分に名前でpingする。

(例)
ping bigserver
または ping `hostname`

pingを実行すると自ホストのIPアドレスが127.0.0.1となるときは,/etc/hostsファイルの設定ミスである。図1[拡大表示]のようになっていたら図2[拡大表示]のように修正する。

 このように,ホスト名を他のコンピュータと通信可能なIPアドレスに正しくマップさせる。DNSがある場合は,ドメイン名(miraclelinux.comなど)を付けた完全名(=FQDN)も忘れずに指定する(DNSがない場合は,ドメイン名を付ける必要はない)。

 なお,DHCPによりホストにIPアドレスを動的に付与する場合は,上記のように/etc/hostsに指定せずに,DNSで名前解決できるように設定する。