Web Consoleで行うリモート操作でのサーバ管理
Web ConsoleはGPLライセンスの適用下で公開されており、リモートサーバのシェルにアクセスして任意のコマンドを実行可能にするツールとして作られてはいるが、当然ながら実行できるコマンドに関しては各ユーザが持つ権限内という制限が付随する。ここでのWebインタフェースを介したサーバ操作としては、ファイルのアップロードとダウンロード、格納されているファイルの編集、ファイルやデータベースのバックアップとリストアなども行えるようになっている。つまりこのツールが手元にあれば、アクセス先のサーバを直接操作する場合とほとんど同じ作業をリモートから実行できるようになるのだ。その他の特長としては、簡単化されたインストレーションプロセス(rootパーミッションすらも不要)、HTTPSを用いたセキュアな接続、AJAXテクノロジの採用による高速リフレッシュ、実際のコンソール操作を可能な限り忠実に再現したユーザエクスペリエンスを挙げることができる。
Web Consoleの最新バージョンは0.2.5 betaで、betaと表記されているものの必要な機能はすべて使えるようになっている。Perlで記述されたコードは圧縮された形態で提供されているため、スタートアップ時の手間が省けてパフォーマンス的にも優れている反面、具体的なコードの内容を読み取るのは困難になっている。もっとも必要であればSubversionの開発リポジトリを探すことで、通常形態のソースコードを入手できるはずだ。
インストールの手順
ここでのインストール手順では、コマンドラインでの簡単なセットアップをいくつか行った後にWeb画面でのセットアップを行う。そのための準備としては最新バージョンをダウンロードしておき、その後下記の手順にて専用ディレクトリに展開をする。
# md webconsole # cd webconsole # unzip ../web-console_v0.2.5_beta.zip Archive: ../web-console_v0.2.5_beta.zip inflating: changelog.txt inflating: readme.txt inflating: wc.pl inflating: web-console_shell.hta
Web Consoleの本体は、wc.plという単一ファイル形態のアプリケーションにまとめられている。まずはroot権限を取得した上でWebサーバにソフトウェア格納用のディレクトリを作成する。作成先は、openSUSEであれば/srv/www/htdocsとし、その他のディストリビューションでは/var/www/htmlとしておけばいいはずだ。このディレクトリのアクセス設定は755として、その中にwc.plを移動しておく。なお、Webサーバが特定のユーザ権限で動作するようにセットアップされている場合は、ディレクトリ所有者の変更が必要となるかもしれない。Apacheを使用する場合は、/etc/apache2/uid.confというファイルを参照することで必要なユーザおよびグループを確認できるはずだ。
# su # mkdir /srv/www/htdocs/webconsole # mv wc.pl /srv/www/htdocs/webconsole # chmod 755 /srv/www/htdocs/webconsole # chown -R wwwrun.www /srv/www/htdocs/webconsole
次の手順として、Webサーバでのスクリプト実行をmod_perlではなくCommon Gateway Interface(CGI)で処理させるように設定をする。下記のコードを記述したファイルを/etc/apache2/conf.d/webconsole.confとして作成してから/etc/init.d/apache2 reload
を実行しておけば、Apacheはユーザが変更した設定を使用するはずだ。
AddHandler cgi-script .cgi .pl <Directory /srv/www/htdocs/webconsole/> AllowOverride All Options +FollowSymLinks +ExecCGI </Directory>
Web Consoleの使用法
Web Consoleの起動は、Webブラウザからhttp://yourServerURL/webconsole/wc.plにアクセスすることで行う。1番最初のアクセス時には、管理者の名前、パスワード、メールアドレスを入力するためのセットアップ画面が表示されるので(Web Consoleは独自のユーザリストを保持する)、必要な項目を入力した後にInstallをクリックすればここでの設定プロセスは終了である。こうした初回アクセス時に行われる設定の完了後、ログイン画面にてユーザ名とパスワードを入力すると、管理者にとってはお馴染みのコンソール画面が表示されるはずだ。
Web Consoleでは、コンピュータのコンソールにて直接実行する作業のほとんどすべてが再現可能となっている。実際にいくつかのコマンドを試してみれば、バックグラウンドでAJAXインタフェースによるリフレッシュが行われているのに気づくだろう。例えばTabキーの押し下げによるコマンド補完機能でも、該当するコマンドが表示される際には短時間ながら待機メッセージが表示されるはずだ。なおデータの入力プロセスを別途必要とする一部のコマンド(su
など)で、これらが正常に動作しない場合はsudoersファイルの編集にて回避できるはずだ。
ここで実行するコマンドは、いずれも通常のWebサーバユーザとして処理される。この仕様が問題を起こす場合は、suexec
(Apacheの使用時)を用いてWeb Consoleを別ユーザとして実行させる措置が必要となることもある。これに関連してセキュリティ上の観点からは、wc.plに対するアクセス制御の追加および、セキュアな接続の使用を検討するべきだろう。
Web Consoleに用意されている#
コマンドを利用すると特殊な操作用メニューにアクセスすることができ、例えば#file
を実行するとファイル転送が行えるようになっている。同じく#manager
コマンドでは、ファイルやディレクトリの簡易ブラウザとして機能する操作性に優れたファイルマネージャが表示され、#settings
ではWeb Consoleの設定変更、#users
ではその使用を許可するユーザの管理が行える。
Web Consoleは、単純なSSH接続よりも高機能であると同時に、Webminほどの手間をかけることなくインストールできるというメリットを有している。またセキュリティ面においてもWeb Consoleはこれら2つのオプションに引けを取るものではなく、実行上の要件も小さいのでサーバ側で問題を発生させることもないはずだ。確かにWeb Consoleには本稿で触れたような制限も一部付随しているが(sudo
に関する制限やsuexec
を必要とする可能性)、これらはいずれも回避可能なものばかりである。コマンドラインにて行う単純な作業やファイル管理程度の仕事をするのであれば、Web Consoleを試してみる価値は十二分にあると言っていいだろう。