仰天イカモノ堂

オールドマックで作るWWWサーバー

qpqcg-plugin

今回は、Quid Pro Quoを使って古いマックでウェブサーバーを立ててみることにする。かつて、WebSTAR互換のフリーWeb Serverとして期待の星だったQuid Pro Quo(QPQ)。製品版も出てた(る?)のだがメーカーがやる気をなくして、いつの間にやら忘れ去られていた。

ところが、ここ最近、MicrosoftのIISに寄生するCode Redワームが大流行りした影響で、あちこちで話題に上ることになった。(Code Redからの不正アクセスでQPQがエラーを起こして死んでしまうので、QPQを使っているサイト管理者は困っているらしい)

QPQがクラッシュするのを防ぐ

なにもQPQは昨日今日に突然クラッシュするようになったわけではなく、作られた時から、ひじょ〜に長いリクエストを送ることで簡単に(Code Redでなくても)クラッシュする弱点(バッファオーバーフロー)があった。

Code Redからの攻撃は、前薗 健一さんが作成された、Code Red Killer Plug-inを用いると防ぐことができるという話を聞きつけ、それならプラグインモジュールでバッファオーバーフローそのものを防げるはずじゃんと考えて、私もQPQをクラッシュから守るプラグインを作成してみた。(Web Scripter's Meetingで同じような要望があって、Code Red Killer v1.1.3からは指定したバイト数以上のリクエストを拒否できるオプションが付いているので、ほとんど無駄骨だったが)

→ダウンロード(qpqcgpluginv2.sit 約12KB)

クラッシュをまねきそうな長いリクエストをフィルターして、/qpqcg.htmlへのリクエストにすり替えるプラグインである。ドキュメントルートに、qpqcg.htmlというHTML書類を置いておけば不正な要求に対してそれを返信する。WebSTAR API SDKをななめ読みして、てきと〜に作った(^^;ものなので、ログを取ったり、細かい設定が必要な方はCode Red Killer Plug-inを使った方がいいだろう。

※なお、このソフトウェアを使用もしくは使用できないことによって生じたいかなる損害についても、筆者は一切責任を持たないので自己責任で使用してもらいたい。配付・使用条件は、営利を目的としない限り自由とする。

今回の厳選素材

  1. PowerBook 520c(RAM20MB、HDは 1GBの大容量?に換装済)
  2. 漢字Talk 7.5.5 + OpenTransport 1.1.2 + AppleShare クライアント 3.7.2
  3. Quid Pro Quo 1.0.2(以下 QPQ)
  4. qpqcg-plugin

調理法

  1. 漢字Talk 7.5.5、Open Transport 1.1.2、AppleShareクライアント 3.7.2をインストール。
  2. QPQをCustom Install-Minimal Installでインストール。(ドキュメントを読んだりいろいろしたいヒトはEasy Installする)
  3. qpqcg-pluginをインストール(Plug-insフォルダ内にコピー)する。(他のプラグインモジュールは必要なければ外す)
  4. QPQを起動。
  5. メニュー 「Control → Configure Server...」を選んでサーバーの設定をする。
  6. 「Passwords」 でAdministration用のユーザー・パスワードを設定する。
  7. 「Miscellaneous」でファイルキャッシュを切る。
  8. 世界に向けて発信したい(^^) WebコンテンツをQuid Pro Quoアプリケーションと同じ階層にコピーする。
  9. http://ホスト名/qpq.adminとしてアクセスすれば、こころもちリモート管理もできる。

さあ、これで、あなたの古いマックもWeb Serverとして大活躍! ブロードバンド接続サービスとダイナミックDNSサービスを組み合わせて自宅で隠れサーバーなど運用するにはもってこいである。

(2001-08-20/2004-11-23)

Copyright© 2001-2004 TAKAHASHI,Ryoji
All rights reserved.