Chapter 37. SWAT: Samba Web 管理ツール
Prev | Part IV. マイグレーションとアップグレード | Next

## Chapter 37. SWAT: Samba Web 管理ツール

### John H. Terpstra

Samba Team

`<jht@samba.org>`

April 21, 2003

SWATの有用性に関連しては、数多くの様々な意見がある。完璧な設定ツールを作ろうとする試みはとても大変な事なのにもかかわらず、個人的な興味の対象として存在している。SWATはSambaをWebベースで設定するためのツールである。これは、Sambaを簡単に設定するための手助けとなりえるウィザードであり、場面に応じて各`smb.conf`パラメータのヘルプをWebベースで表示し、現在の接続状況をモニタリングする機能を提供し、ネットワーク全体の、Microsoft Windowsネットワークパスワード管理ができる。

## 機能と利便性

SWATはSambaシステムの一部である。基本となるプログラム名は`swat`であり、これはinetdのようなスーパーデーモンによって起動される。詳細は説明の節を参照のこと。

SWATは特定のバージョンのSambaによってサポートされる、パラメータを使うために、Sambaコンポーネント全体を使う。Samba外部のツールとユーティリティとは異なり、SWATは常時Sambaパラメータが変更されることに追従している。SWATは各設定パラメータに対して、場面に応じて、`マニュアル`ページのエントリから、直接ヘルプを提供する。

ネットワーク管理者の何人かは、設定ファイル中にシステムの説明を書き込むことは良いアイデアだと思っている人もいるが、そういう人にとって、SWATは常にひどいツールである。SWATは、何らかの中間的な形式でも、設定ファイルに格納しない。というよりは、パラメータの設定のみを書き込む。SWATが`smb.conf`ファイルをディスクに書き込むときには、既定値の設定以外のパラメータのみを書き込む。結果、パラメータと同じように、すべてのコメントは保持されず、`smb.conf`ファイル中から無くなってしまう。おまけに、パラメータは内部での順番に書き戻される。

### Note

SWATを使う前には、 SWATは、書き込んだであろうすべてのコメントを削除した、完全に最適化されたファイルで、`smb.conf`ファイルを完全に置き換え、ファイルには既定値の設定以外の設定のみが書かれる。

## ガイドラインと技術的なTips

この節では、どのようにSWATが動くかせるかという仕掛けの背景にある、秘密の闇を明らかにする事と、どのようにセキュアに出来るかということと、どのように国際化のサポートを解決するかという事を説明する。

### SWATインストールの有効か

SWAT操作のためにホストシステムを設定する試みの前にやるべきである、ごく最初のステップは、それがインストールされているかを調べることである。これは、ある人にとっては取るに足らないことに見えるかもしれないが、いくつかのLinuxディストリビューションでは、ディストリビューションメディア上で、SWATを含む、インストール可能なバイナリパッケージを提供しているにもかかわらず、SWATを既定値ではインストールしていない。

SWATがインストールされていることを確認したら、すべてのサポートしているテキストとWebファイルと同じように、インストールされているバイナリ`swat`ファイルを有効化することが必要である。過去、多くのOSディストリビューションが、`swat`バイナリ実行形式ファイルがインストールされているのにもかかわらず、サポートに必要なファイルを含めることに失敗している。

最後に、SWATが完全にインストールされたと思ったら、使用しているOSプラットフォームで使われているinetd系スーパーデーモン(inetdかxinetd)用の制御ファイルで、SWATが有効になっているかを調べてほしい。

#### `SWAT`ファイルの配置

SWATがインストールされたかを検証するため、最初に、システム上の`swat`バイナリファイルを捜す。それはおそらく以下のディレクトリ配下にあるだろう:

`/usr/local/samba/bin` 既定値のSambaでの位置
`/usr/sbin` ほとんどのLinuxシステムでの既定値の位置
`/opt/samba/bin`

実際の位置はOSベンダの選択か、Sambaをコンパイルしてインストールした管理者の決定によって大きく変わる。

`swat`バイナリファイルを見つけるために使う方法にはいろいろある。以下の方法を使うと便利である。

もしも、`swat`が現在のOSサーチパス中にあるならば、それを見つけるのは簡単である。以下のように、`swat`が、どのようなコマンドラインオプションを持っているかを調べてみればよい:

    frodo:~ # swat -?Usage: swat [OPTION...]  -a, --disable-authentication         Disable authentication (demo mode)Help options:  -?, --help                           Show this help message  --usage                              Display brief usage messageCommon samba options:  -d, --debuglevel=DEBUGLEVEL          Set debug level  -s, --configfile=CONFIGFILE          Use alternative configuration file  -l, --log-basename=LOGFILEBASE       Basename for log/debug files  -V, --version                        Print version

#### SWATサポートファイルの配置

`swat`がサーチパス中に見つかったならば、ファイルがどこに配置されているかを識別するのは簡単である。これを行う簡単な別解は以下の通り:

    frodo:~ # whereis swatswat: /usr/sbin/swat /usr/share/man/man8/swat.8.gz

もしも上記による調査で、`swat`バイナリを見つけるのに失敗したら、他の方法が必要である。以下が使える:

    frodo:/ # find / -name swat -print/etc/xinetd.d/swat/usr/sbin/swat/usr/share/samba/swatfrodo:/ #

この一覧は、このサーバにインストールされているinetd系スーパーデーモン`xinetd`の制御ファイルを表示している。SWATバイナリファイルの位置は`/usr/sbin/swat`であり、それがサポートしているファイルはディレクトリ`/usr/share/samba/swat`配下にあることを表示している。

次に、`swat`が使うサポートファイルがどこにあるかを調べる。これは以下のやり方で行う:

    frodo:/ # strings /usr/sbin/swat | grep "/swat"/swat/.../usr/share/samba/swatfrodo:/ #

この一覧の中にある`/usr/share/samba/swat/`エントリは、サポートファイルの位置である。このディレクトリ配下にサポートファイルが存在しているかを調べるべきである。以下は一覧の例である:

    jht@frodo:/> find /usr/share/samba/swat -print/usr/share/samba/swat/usr/share/samba/swat/help/usr/share/samba/swat/lang/usr/share/samba/swat/lang/ja/usr/share/samba/swat/lang/ja/help/usr/share/samba/swat/lang/ja/help/welcome.html/usr/share/samba/swat/lang/ja/images/usr/share/samba/swat/lang/ja/images/home.gif.../usr/share/samba/swat/lang/ja/include/usr/share/samba/swat/lang/ja/include/header.nocss.html.../usr/share/samba/swat/lang/tr/usr/share/samba/swat/lang/tr/help/usr/share/samba/swat/lang/tr/help/welcome.html/usr/share/samba/swat/lang/tr/images/usr/share/samba/swat/lang/tr/images/home.gif.../usr/share/samba/swat/lang/tr/include/usr/share/samba/swat/lang/tr/include/header.html/usr/share/samba/swat/using_samba.../usr/share/samba/swat/images/usr/share/samba/swat/images/home.gif.../usr/share/samba/swat/include/usr/share/samba/swat/include/footer.html/usr/share/samba/swat/include/header.htmljht@frodo:/>

もしも必要とされるファイルが内ならば、SWATを使う前に、それらを入手してインストールする必要がある。

### SWATを使用できるように有効化する

SWATはネットワークスーパーデーモン経由で動くようにインストールすべきである。使用しているUNIX/Linuxシステムが持っているものに依存するので、`inetd`か`xinetd`ベースのシステムのどちらかを使う。

ネットワークスーパーデーモンの機能と配置はOSの実装により変わる。制御ファイルは`/etc/inetd.conf`かディレクトリ`/etc/[x]inet[d].d`か同様の位置に置くことが可能である。

古い形式のファイルに対する制御エントリは以下の通り:

    	# swat is the Samba Web Administration Tool	swat stream tcp nowait.400 root /usr/sbin/swat swat

新しい形式でのxintd用制御ファイルは以下の通り:

    # default: off# description: SWAT is the Samba Web Admin Tool. Use swat \#              to configure your Samba server. To use SWAT, \#              connect to port 901 with your favorite web browser.service swat{	port    = 901	socket_type     = stream	wait    = no	only_from = localhost	user    = root	server  = /usr/sbin/swat	log_on_failure  += USERID	disable = no}

上記の中で、`disable`の既定値の設定は`yes`である。これは、SWATが無効になっていることを意味する。SWATを有効にするには、上記のように、このパラメータを`no`に設定する。

上記の例は両方とも`swat`バイナリがディレクトリ`/usr/sbin`に配置されていることを仮定している。上記に補足すると、SWATは他の制御情報と同じように、自身のヘルプファイルをそこからロードするディレクトリアクセス点として使う。多くのLinuxシステムにおけるこのための既定値の位置は、`/usr/share/samba/swat`である。Sambaが使う既定値の位置は、`/usr/local/samba/swat`である。

SWATへアクセスするとログオンを要求される。もしも非rootユーザでSWATにログオンすると、パスワード変更機能へのアクセスと同じように、一定の設定範囲にのみアクセスが許可される。非rootユーザが見えるボタンは、HOME、STATUS、VIEWとPASSWORDである。この場合に変更可能なページはPASSWORDだけである。

rootユーザでSWATにログオンすると、完全な修正、更新権限を得られる。表示されるものは、HOME, GLOBALS, SHARES, PRINTERS,WIZARD, STATUS, VIEWとPASSWORDである。

### SSLを使うSWATのセキュア化

多くの人が、Sambaをリモートから安全に管理することが出来るために、どのようにSSLを使うSWATを設定するかについて問い合わせしている。以下はMarkus Kriegerの好意による、そのやりかたである。

SWAT設定の変更点は以下のようになる:

1. OpenSSLをインストールする。

2. 証明書(ertificate)とプライベートキーを生成する。

       root# /usr/bin/openssl req -new -x509 -days 365 -nodes -config \	/usr/share/doc/packages/stunnel/stunnel.cnf \	-out /etc/stunnel/stunnel.pem -keyout /etc/stunnel/stunnel.pem

3. [x]inetdからSWATエントリを削除する。

4. `stunnel`を起動する。

       root# stunnel -p /etc/stunnel/stunnel.pem -d 901 \	 -l /usr/local/samba/bin/swat swat

その後、単純に、URLhttps://myhost:901を使ってSWATにアクセスし、証明書を受け付け、SSL接続を確立する。

### SWAT国際化サポートの有効化

SWATは、使用しているWebブラウザの言語設定に一致するように、そのメッセージを表示するよう設定できる。これは、HTTPリクエストのAccept-LanguageヘッダでSWATに通知される。

この機能を有効にするには以下のように行う:

- 適切な`msg`ファイルを、Sambaの`source/po` ディレクトリから、$LIBDIRにインストールする。

- ブラウザの言語設定を設定する。

`msg`ファイルの名前はブラウザによって送られる言語IDと同じである。例えば、英語はen、日本語はja、フランス語はfrである。

メッセージのいくつかが気に入らないか、使用しているロケール用の`msg`ファイルがない場合、単に`en.msg`ファイルを、“使用している言語の ID.msg”ファイル用のディレクトリにコピーし、各“msgstr”に適切な文字列を埋める。例えば、`it.msg`をイタリア語の`msg`ファイルにするには、以下のようにする:

    msgid "Set Default"msgstr "Imposta Default"

以下同様である。もしも間違いを見つけたか、新しい`msg`ファイルを作成したならば、連絡いただければ、次のSambaリリース中に入れることを考えます。`msg`ファイルはUTF-8でエンコードされるべきである。

もしも有効にした場合、この機能とdisplay charsetがブラウザの設定と一致していなかった場合、SWATは不正なメッセージを表示するかもしれないことに注意。将来のSambaのバージョンでは、SWATは常時UTF-8でエンコードされたメッセージを表示するだろう。そうなれば、これを`smb.conf`ファイルのパラメータとして設定する必要はなくなる。

## 概要と簡単な紹介

SWATはSambaの設定に使え、Windowsネットワークの問題を解決するために便利な文書のように、この本(ドキュメント)の内容のような、重要な参考資料への便利なリンクを得られる、便利なツールである。

### SWAT ホームページ

SWATタイトルページは最新のSamba文書を参照する機能を提供する。オライリーの“Using Samba”という本と同様、Samba3-HOWTO(この文書)のように、Sambaの各コンポーネントのマニュアルページはこのページからアクセス可能である。

Sambaの設定を検証したい管理者は、診断ツールのマニュアルページから有益な情報を得ても良い。それらはSWATホームページからも入手可能である。診断ツールのうち、このページで言及されていないが、特に便利なものは`ethereal`(訳注:今はwireshark)である。

### Warning

SWATはデモモードで動かすように設定できる。これは、認証なしにSWATを動かし、完全な管理機能が使えてしまうため推奨しない。このモードでは、root特権で通常の操作をするように`smb.conf`を変更できる。SWATでこの機能を使うためのオプションは、`-a`フラグである。これを動作中の環境で使ってはならない。

### 全体(Global)の設定

グローバル(GLOBALS)ボタンは、`smb.conf`中のグローバルパラメータの設定が出来るページを表示する。パラメータによって2レベルの画面がある:

- 基本 共通設定オプションを表示する。

- 詳細 より複雑な環境で必要な設定オプションを表示する。

基本編集機能から他に変更するには、詳細ボタンをクリックする。ラジオボタンをクリックすることで行っても良い。次に、変更ボタンをクリックする。

パラメータをどこか変更した後は、他の場所に移る前に、変更ボタンを押すようにすること。そうしないと変更結果は失われる。

### Note

SWATは場面に応じたヘルプを提供する。各パラメータが何であるかを調べるには、単に、設定パラメータの左にあるヘルプリンクをクリックする。

### 共有設定

現在設定されている共有の操作は、単に共有の選択と共有の削除ボタンの間にあるプルダウンボタンをクリックし、操作したい共有を選択する。設定を編集するには、共有の選択ボタンをクリックする。共有を削除するには、単に共有の削除ボタンをクリックする。

新しい共有を作るためには、共有の作成ボタンの隣に行き、テキストフィールドに作成する共有の名前を入力し、次に共有の作成ボタンをクリックする。

### プリンタ設定

現在設定されているプリンタの操作は、単にプリンタの選択とプリンタの削除ボタンの間にあるプルダウンボタンをクリックし、操作したいプリンタを選択する。設定を編集するには、プリンタ選択ボタンをクリックする。共有を削除するには、単に、プリンタの削除ボタンをクリックする。

新しいプリンタを作るためには、プリンタの作成ボタンの隣に行き、テキストフィールドに作成する共有の名前を入力し、次にプリンタの作成ボタンをクリックする。

### SWATウィザード

SWATウィザードの目的は、Microsoft系をよく知っているネットワーク管理者が、最小の手間でSambaを設定することである。

ウィザードページは、完全に最適化した形式で`smb.conf`ファイルを再書き込みするツールである。これは、Commitボタンを押したときにも起きる。2つの違いは、Rewriteボタンは今まで行った変更を無視するのに対し、Commitボタンは今まで行ったすべての変更を反映するということである。

Editボタンでは、動作するSambaサーバを作成するために必要と思われる最小限のオプションの編集(設定)ができる。

最後に、SambaサーバがWINSサーバ、WINSクライアントとして参加、あるいはWINSサポートなしの、どれかタイプかに設定出来ることを決める、限定されたオプションが用意されている。あるボタンをクリックすることで、ユーザのホームディレクトリの表示(あるいは表示中止)を選択できる。

### ステータスページ

ステータスページは現的な目的で提供される。最初に、これはSambaデーモンの制御を行う。Sambaサーバ環境下で作成できるデーモンは、smbd, nmbdと winbinddである。

デーモンは、個別、あるいは全体をまとめたグループで制御できる。さらに、自動的に画面のリフレッシュを行うタイミングを設定しても良い。Microsoft WindowsクライアントがSambaとやりとりをするように、新しいsmbdプロセスは継続して起動される。自動画面リフレッシュ機能は、最小の効果で変更の状態を追従できる。

最後に、ステータスページはロックされたかもしれないファイルを解放するために、特定のsmbdクライアント接続を終了する事に使うことも出来る。

### 表示(View)ページ

表示(View)ページは、最適化された`smb.conf`を閲覧するためと、もしもマゾヒストな場合、すべてのグローバル設定パラメータとその値を見ることもできる。

### パスワード変更ページ

パスワード変更ページは、ローカルマシン上のMicrosoft Windows ネットワークユーザの、作成、変更、無効化と再有効化ができる便利なツールである。ユーザアカウントのローカルパスワードを変更するのにもこのツールを使える。

非rootユーザでログオンした場合、新しい(二度打ちする)パスワードと同様古いパスワードも入力しなければならない。rootでログオンした場合、新しいパスワードのみが必要である。

このツールのよくある使い方は、リモートのMicrosoft Windowsサーバ群に対してユーザパスワードを変更するということである。

Prev | Up | Next
Chapter 36. NT4 PDC からSamba-3 PDCへの移行 | Home | Part V. トラブルシューティング