CGI ComSys Configuration Help

Ver.3.04.03112001R
2003.11.20
Osamu Ishikawa (NV)
nv@bannaguro.net

概 要
インストール
初期化 (最初の起動)
その他

概 要

ComSys は独自のプロトコルによるインターネットコミュニケーションシステムであり、同時に無手順ホスト機能も併せ持っているが、これまでは Web からのアクセスはできなかった。 CGI ComSys は従来からの ComSys OLC (On-Line Community) サーバに Web のブラウザからのアクセスも可能にするために新たに開発した ComSys の CGI バージョンである。

ここでいう OLC とは、パソコン通信における電子掲示板(BBS)に相当するシステムである。WWW の情報の流れがサーバからクライアントへの一方通行であるのに対し、OLC ではアクセスするすべてのユーザが情報の読み出しとともに書き込みもできる。ネットワークを介して個々人が対等な立場で参加して形成するボーダレスな共同体である、という側面を強調して On-Line Community と名づけている。

これは CGI ComSys の管理者のシステム構成ページ (Config.html) のヘルプドキュメントである。

● 開発環境

DELL Dimension XPS R450 (Windows XP)
DELL Dimension XPS T600 (Windows XP)
DELL Latitude C400 (Windows XP)

日本語版 Delphi Version 7.0

● 動作環境

ISAPI サーバアプリケーションなので、動作可能な OS は Windows (95/98/Me/NT/2000/XP/Sever2003) のみである。

Windows 上で動く Web サーバであればどのシステムともインタフェース可能と考えられるが、実際には Microsoft の IIS / PWS でしか動作を確認していないので、ほかのサーバシステムの場合の動作保証はできない。

Windows Me については Web サーバが添付されていないので、Windows 98 添付の PWS 4.0 をインストールして動作確認を行った。

独自プロトコルの ComSys データ共有モードで稼動させることも、それのみで単独に稼動させることも可能である。

● 専用レジストリキーと Web サーバエイリアス

独自プロトコルの ComSys は、レジストリデータを Windows のバージョンにかかわらずデフォルトで
HKEY_CURRENT_USER\Software\NV\ComSys キーのもとに構築する。

ただし起動時 INI ファイルを用意することにより
HKEY_LOCAL_MACHINE\SOFTWARE\NV\ComSys キーのもとに構築することも可能である。

CGI ComSys は、Windows 95/98/Me の場合はデフォルトで
HKEY_CURRENT_USER\Software\NV\alias_name キーのもとに、

Windows NT/2000/XP/Server2003 の場合はデフォルトで
HKEY_LOCAL_MACHINE\SOFTWARE\NV\alias_name キーのもとに構築する。

この場合も Windows 95/98/Me では INI ファイルの設定により
HKEY_LOCAL_MACHINE\SOFTWARE\NV\alias_name キーのもとに構築することが可能である。

しかし Windows NT/2000/XP/Server2003 の場合 は INI ファイルの設定の有無にかかわらず
HKEY_LOCAL_MACHINE\SOFTWARE\NV\alias_name キー のもとにしか構築することはできない。

ここで alias_name は Web サーバ に作成する CGI ComSys 用の仮想ディレクトリ (エイリアス) の名前である。

● ディレクトリ

Web サーバアプリケーションである CGI_ComSys.dll およびユーザログオンページ用、システム構成ページ用の関連 html ファイルなどをまとめておく CGI ComSys 用のディレクトリと、ComSys 運用上で作成されるもろもろのデータを保存するための ComSys メインディレクトリとを用意する必要がある。

CGI ComSys 用ディレクトリは Web サーバに作成する仮想ディレクトリ (エイリアス) に直接結び付けられる物理ディレクトリである。

ComSys メインディレクトリにはその下に \AccServer, \OlcServer という2つのサブディレクトリが切られてその中に運用上の管理ファイルやボードにポストされたメッセージやファイルなどが収納される。

これらふたつのディレクトリを同一にする (CGI ComSys 用のディレクトリをメインディレクトリにする) ことも可能だし、それぞれ別のディレクトリとして用意することも可能である。

● INI ファイル

独自プロトコルの ComSys も CGI ComSys も、起動時にレジストリデータを読み込む前に INI ファイルがあればそれを先に参照する。

INI ファイルがなければ専用レジストリキーの所在をデフォルト値とみなしてレジストリデータにアクセスするが、デフォルト値とは変更したい場合には起動ディレクトリに INI ファイルを用意しておくことになる。

ComSys の INI ファイルは次の 3行からなる構成により、独自プロトコルの ComSys と CGI ComSys の専用レジストリをどこに置くかを指定する。

[Registry]
ComSys=n
CGI=n

ここで n は 0, 1, 2 のいずれかの値で、それぞれ次の内容を意味する。

0 : デフォルトのレジストリキーを使用
1 : レジストリのルートとして HKEY_CURRENT_USER\Software\NV を使用
2 : レジストリのルートとして HKEY_LOCAL_MACHINE\SOFTWARE\NV を使用

なおここで、ComSys の場合には "ComSys=n" のみが読み出されて "CGI=n" は無視される。
逆に CGI ComSys の場合には "CGI=n" のみが読み出される。さらに Windows NT/2000/XP/Server2003 の場合にはレジストリのルートを HKEY_CURRENT_USER\Software\NV に置くことはできないので "CGI=1" は意味を持たない。

● 共有モード

独自プロトコルの ComSys と CGI ComSys との間で通信して同期を取りデータを共有しあう場合には、双方のメインディレクトリとレジストリキーとをどちらも一致させる必要がある。そのためには CGI ComSys で作成する仮想ディレクトリ (エイリアス) 名を必ず "comsys" とすることが最低限必須事項となる。

メインディレクトリとレジストリキーのどちらか一方のみ一致させてもう一方が異なる場合、正しくデータを参照できなくなるので絶対に避けて欲しい。

双方をどちらも異なるものにした場合には ComSys と CGI ComSys との間で通信は行われず、それぞれ互いに独立した関連のないアプリケーションとして動作する。

独自プロトコルの ComSys が既に稼動していて (この場合メインディレクトリは ComSys の [Config] ボタンをクリックして開かれる Configuration Window の Main Folder 欄に記載されている) CGI ComSys を共有モードとして立ち上げたい場合には、仮想ディレクトリ名を "comsys" として作成し初期化作業を行えばレジストリキーとともにメインディレクトリも自動的に一致することになるので特別な操作は必要ない。

ただし Windows NT/2000/XP/Server2003 の場合はその前に独自プロトコルの ComSys のレジストリキーをデフォルトの HKEY_CURRENT_USER\Software\NV\ComSys から HKEY_LOCAL_MACHINE\SOFTWARE\NV\ComSys に変更してレジストリデータをコピーし、それにともない "ComSys=2" を指定した INI ファイルを用意して起動しなおしておく必要がある。

レジストリキーの変更には添付するユーティリティ ComSys_U.exe を使用する。

● ComSys と CGI ComSys との間の通信

同時に稼動しデータを共有しあうことがあっても、独自プロトコルの ComSys と Web サーバにリンクする CGI ComSys とは基本的にたがいに独立した別個のアプリケーションである。

共有モードでは、たとえば一方でメッセージがポストされたという事実は、瞬時にもう一方に通知される必要がある。そういったもろもろの局面でのアプリケーション間通信の手段として、TCP/IP プロトコルの一部である UDP による通信を用いている。

デフォルトでは、ポート番号として 8012 ( ComSys 側では 8011 ) を使用するが、Ver.3.04 より任意の番号に変更可能とした。ただし

CGI_ComSys 側ポート番号 = ComSys 側ポート番号 + 1

の関係が維持される。

送信相手のマシンは常に自分自身 (localhost : 127.0.0.1) であるので外部のネットワークにデータを送信することはない。

この通信に用いられるプロトコルは、ComSys のプロトコルである OLCP ( On-Line Community Protocol ) のサブセットとして位置づけして、現在のバージョンは Ver.3.04 である。

● 複数の CGI ComSys の同時運用

それぞれ異なる alias_name で仮想デイレクトリを作成し、かつメインディレクトリを重複させることがなければ、同一マシン同一 Web サーバ上で互いに独立した複数の CGI ComSys を稼動させることが可能である。

同時稼動させることが可能な CGI ComSys の数はとくに規定していないので、マシンの性能に依存する。

複数の CGI ComSys が同時に稼動している場合でも、独自プロトコルの ComSys と共有モードで運用できるのは alias_name が "comsys" のものだけである。

● アクセスセキュリティ

CGI ComSys にリクエストがあるつど、リクエストの発行元 IP アドレスが正当なものであるかどうかを、一般ユーザ(Welcome.html による) / システム管理者(Config.html による) のログオン時の IP アドレスと照合することによりチェックする。照合して IP アドレスが合致しなければリクエストは拒絶される。

固有の IP アドレスの場合アクセス中変化しないが、プロバイダ経由など動的に IP アドレスが交付された場合などにはアクセス中同一ユーザの IP アドレスが変化することがありうる (たとえば複数台の Proxy サーバを使用していてそれらの負荷を分散するためコネクションごとに IP アドレスが変化する、など)。IP アドレスは 4バイトの数字で構成されるが、変化する場合、上位 3バイトは同じ数値で最後の 1バイトのみ異なることが多い。また、上位バイトから異なる場合でも、完全なホスト名 (FQDN) の中のドメイン名 (サブドメイン名を含む) 部分は通常変わらない。

そのためアクセスセキュリティには 3つのレベル (0/1/2) を設けている。

Level = 2 4 バイトすべてを照合する。セキュリティは最も強固である。
この場合でも、IP マスカレードや Proxy サーバを経由していると複数のクライアントマシンが同一 IP アドレスとなることがあるので完全にチェックできるという保証はない。
Level = 1 上位 3バイトについてのみ照合し、一致すれば正当なアクセスと評価する。最下位 1バイトはチェックしない。
上位バイトが異なる場合には、さらに IP アドレスからホスト名を逆参照してドメイン名部分を照合し、一致すれば正当なアクセスと評価する。
アクセス中アドレスが変化する場合に設定する。
同一プロバイダ/企業の異なるクライアントマシンを判別できない。
Level = 0 IP アドレスの照合は行わないのでセキュリティは甘い。
ユーザに関してはその他にもポート番号、アクセス番号などの照合によりリクエストの正当性がチェックされている。

セキュリティレベルの設定は HTML Configuration で一般ユーザ用レベル(User Access Security Level)、システム管理者用レベル(Config Page Security Level) をそれぞれ別個に設定する。
デフォルトではどちらも 2 である。

● 主な仕様 (いずれもひとつの CGI ComSys について)

登録可能なユーザ数 16**5 (事実上無制限)
同時アクセス可能なユーザ数 50 (Web サーバのライセンスが優先)
ボード数 50
収容可能なメッセージ数 無制限
タイトルリスト表示数 50
既読タイトル表示数 10
ポスト可能なメッセージ テキストはもとよりあらゆる種類のバイナリファイル
ユーザ ID の形式 Host ID (3Bytes) + 16進数 5桁 (合計 8Bytes)




インストール

1. CGI ComSys 用のディレクトリと、ComSys メインディレクトリを用意 / 作成する

既に稼動している独自プロトコルの ComSys と共有モードで運用する場合は、メインディレクトリは同一でなければいけないので新たに作成する必要はない。CGI ComSys を独立して運用する場合には、メインディレクトリを用意する必要がある。

CGI ComSys 用のディレクトリはメインディレクトリと同居させてもかまわないし、別のディレクトリを新たに作成してもよい。

CGI ComSys 用のディレクトリ2. でファイルをコピーし 3. で Web サーバの仮想ディレクトリ (エイリアス) を関連づける。

Windows NT/2000/XP/Server2003 で NTFS ファイルシステムである場合ComSys メインディレクトリにインターネットゲスト (匿名ユーザ) アカウントのアクセス権を設定する必要がある。インターネットゲストアカウントは通常 IUSR_computername というユーザ名になっている。

ComSys メインディレクトリに対して [ファイル] - [プロパティ] - [セキュリティ] - [アクセス権] で "IUSR_computername" を追加し、その [アクセス権の種類] を [変更 (RWXD) (RWXD)] とする。(デフォルトでは [読み取り] のみ)

CGI ComSys 用のデイレクトリに対しては。 IUSR_computername のアクセス権を個別に設定する必要はない。(Windows 2000/XP/Server2003 の場合仮想デイレクトリの関連づけを行うと自動的に [Web共有] が設定される)

ただし、Windows 2000/XP/Server2003 の場合には IUSR_computername のユーザグループをデフォルトの "Guests" のみから "Power Users" を追加しておかなければ初期化作業を行えない (レジストリキーの作成権限に関係)。
いったん初期化が完了後は "Guests" のみに戻すことを推奨する。
ユーザグループの変更は [コントロールパネル] の [ユーザとパスワード] または [管理ツール] - [コンピュータの管理] で行う。
ユーザグループを変更した場合には必ずそのつど IIS を再起動する必要がある。そうしなければ IIS に変更内容が反映されない。

2. CGI ComSys 用のデイレクトリに CGI_ComSys を運用するために必要なファイルをすべてコピーする。

CGI_ComSys.dll CGI プログラム
CGI_ComSys.txt 説明テキストファイル
Welcome.html ユーザログオンページ用 HTML
U_Main.html 同上用メインフレーム
U_Name.html 同上用ヘッダフレーム
UsrHelp.html 同上用ヘルプファイル
Config.html システム構成ページ用 HTML
C_Main.html 同上用メインフレーム
C_Name.html 同上用ヘッダフレーム
CfgHelp.html 同上用ヘルプファイル
Left.gif ヘルプ用画像ファイル
Right.gif ヘルプ用画像ファイル
ComSys.ini 必要に応じて使用する INI ファイル
ComSys_U.exe ComSys ユーティリティ
Readme_U.txt 同上用ドキュメントファイル

ユーザログオンページ用、システム構成ページ用 html ファイルおよびそれらのフレーム用のファイルなどはファイル名、内容とも使う環境に見合う形にカスタマイズして差し支えない。

3. Web サーバに CGI ComSys をインストールする。具体的には CGI Comsys 用ディレクトリの仮想ディレクトリ (エイリアス) を作成する。

サーバマシンにはなんらかの Web サーバシステムがすでにインストールされていて、かつ起動していなければいけない。Web サーバシステムのインストール/起動については、使用するシステムのマニュアルを参照して欲しい。

仮想ディレクトリも階層構造を取りうるのですでに存在する仮想ディレクトリの下に新たな仮想ディレクトリを作成することも可能であるが、ここでは必ずトップレベル (最上位) で作成する必要がある (下位のレベルの仮想ディレクトリを使用すると動作しない)。

作成するエイリアス名 alias_name がレジストリのサブキーの名前となるのでこの名前は重要である。独自プロトコルの ComSys と共有モードで運用する場合には、エイリアス名を "comsys" としなければいけない。

私は Microsoft の Internet Information Server (IIS) および Personal(Peer) Web Server (PWS) しか扱ったことがないので、Netscape あるいは Apache などほかのメーカのサーバにはまったく対応できない。

ここでは Microsoft のサーバについてのみ説明する。

いずれの場合も、"ディレクトリの参照" は許可しないようにするのが望ましい。

A) WindowsServer2003 + IIS6.0

[スタート] - [管理ツール] - [IIS マネージャ] を開く。

[Web サービス拡張] で "すべての不明な ISAPI 拡張" を 許可 にする。(CGI ComSys の運用についてのみ考えると、他の項目はすべて 禁止 で構わない)

[アプリケーションプール] を選択して [操作] - [新規作成] - [アプリケーションプール] を選択。適当に名前をつけ "既定の設定を使用する" で作成し、これを専用のアプリケーションプールとする。(これは推奨事項であって、他に多くの Web アプリケーションを併用するのでなければ、デフォルトの DefaultAppPool を使用しても差し障りはないと思われる)

[Web サイト] で CGI ComSys を実行するサイト (通常は 既定の Web サイト) を選択して [操作] - [新規作成] - [仮想ディレクトリ] を選択すると仮想ディレクトリの作成ウィザードが開かれる。

[エイリアス] に固有の alias_name を入力して [次へ]
[パス] に 1. で用意した CGI ComSys 用ディレクトリのパスを入力して [次へ]
[アクセス許可] で "読み取り" と "ISAPIアプリケーションやCGIなどを実行する" をチェックして [次へ]
これで仮想ディレクトリが作成される。

作成された仮想ディレクトリのプロパティを開き、専用アプリケーションプールを作成した場合にはアプリケーションプールでそれを指定する。

仮想ディレクトリの作成が完了すると自動的に CGI ComSys 用ディレクトリの [共有] メニューで [Web 共有] が "共有する" になりエイリアスが設定されているのが確認できる。

B) Windows2000/XP + IIS5.0/5.1

[スタート] - [設定] - [コントロールパネル] - [管理ツール] - [コンピュータの管理] で
[サービスとアプリケーション] - [インターネット インフォメーションサービス] - [既定の Web サイト] (場合によってはすでにそのマシン固有の名にリネームされていることもある) を選択して [操作] - [新規作成] - [仮想ディレクトリ] を選択すると仮想ディレクトリ作成ウィザードが開かれる。

[エイリアス] に固有の alias_name を入力して [次へ]
[ディレクトリ] に 1. で用意した CGI ComSys 用ディレクトリのパスを入力して [次へ]
[アクセス許可] で "読み取り" と "ISAPIアプリケーションやCGIなどを実行する" をチェックして [次へ]
これで仮想ディレクトリが作成される。

仮想ディレクトリの作成が完了すると自動的に CGI ComSys 用ディレクトリの [共有] メニューで [Web 共有] が "共有する" になりエイリアスが設定されているのが確認できる。

C) WindoesNT + IIS4.0

[スタート] - [プログラム] - [WindowsNT4.0 Option Pack] - [Microsoft Internet Information Server] - [インターネットサービスマネージャ] を選択して [規定の Web サイト] を右クリック、[新規作成] - [仮想ディレクトリ] を選択するとウィザードが開かれる。

[エイリアス] に固有の alias_name を入力して [次へ]
[ディレクトリの物理パス] に 1. で用意した CGI ComSys 用ディレクトリのパスを入力して [次へ]
[アクセス権の設定] で "読み取りアクセスを許可する" と "実行アクセス(スクリプトを含む)を許可する" にチェックを入れて [完了] 。
これで仮想ディレクトリが作成される。

D) WindowsNT + PWS3.0

[スタート] - [プログラム] - [Microsoft Peer Web Server (共通)] - [インターネットサービスマネージャ] でサービスが "WWW" のコンピュータを選択して [プロパティ] - [サービスプロパティ] へ

[ディレクトリ] タブで [追加]
[デイレクトリ] に 1. で用意した CGI ComSys 用ディレクトリのパスを入力
[仮想ディレクトリ] の [エイリアス] に固有の alias_name を入力
[アクセス] は "読み取り" と "実行" の両方をチェック

E) Windows98 + PWS4.0

[スタート] - [プログラム] - [Internet Explorer] - [Personal Web Server] - [パーソナルWebマネージャ] で [詳細] をクリックして 詳細オプション を表示

仮想ディレクトリの <ホーム> を選択して [追加]
[ディレクトリ] に 1. で用意した CGI ComSys 用ディレクトリのパスを入力
[エイリアス] に固有の alias_name を入力
[アクセス] は "読み取り" と "実行" の両方をチェック

F) Windows95 + PWS3.0

[スタート] - [設定] - [コントロールパネル] - [パーソナル Web サーバー] を開く

[管理] タブ の中の [管理] ボタンをクリック
インターネット サービス アドミニストレータ ページが開かれる

[WWW 管理] - [ディレクトリ] - [追加]
[デイレクトリ] に 1. で用意した CGI ComSys 用ディレクトリのパスを入力
[仮想ディレクトリ] の [エイリアス] に固有の alias_name を入力
[アクセス] は "読み取り" と "実行" の両方をチェック

4. タイマ機能の正常動作のために

Windows 2000/XP/Server2003 + IIS5.0/5.1/6.0 で NTFS ファイルシステムである場合、CGI ComSys 内蔵のタイマ機能が途中で動作しなくなることがある。

それを回避するためには CGI ComSys 用ディレクトリEveryone のアクセス権を追加設定しなければいけない。

Everyone のアクセス権の種類はデフォルトでは [読み取りと実行] のみであるが、これも [変更 (RWXD) (RWXD)] とする必要がある ([書き込み] と [削除] も可能にする)。

5. [Halt] ボタンによる CGI プロセスの停止に関して

Windows 2000/XP/Server2003 + IIS5.0/5.1/6.0 以外の場合、CGI を停止させると Web サーバ自体も停止してしまう。継続稼動させるためには Web サーバを手動で再起動しなければいけない。

Windows 2000/XP/Server2003 + IIS5.0/5.1/6.0 の場合には、CGI を停止しても Web サーバ (IIS) は停止せずに動作を継続させることが可能である。ただしその場合には以下の設定が必要となる。

Windows 2000/XP では、 CGI Comsys 用ディレクトリの仮想ディレクトリ (エイリアス) のプロパティで、「アプリケーション保護」 を 中 (プール) ないし 高 (分離プロセス) とする。
低 (IISプロセス) の設定では、Windows 2000/XP + IIS5.0/5.1 以外の場合と変わらない動作となる。

Windows Server 2003 では、適切な (できれば専用の) アプリケーションプールを指定しておけばよい。

★ Windows Server 2003 (IIS 6.0) へのインストール時の注意

それ以前の Web サーバ (IIS 5.1 まで) へのインストール時には、仮想ディレクトリ (エイリアス) に対応付けられた物理ディレクトリ (ローカルパス) は、CGI ComSys 自身が自動的に認識可能だったが、IIS 6.0 になってそれができなくなった。そのため、IIS 6.0 への最初のインストール時にのみ、仮想ディレクトリに対応付けられた物理ディレクトリの入力を求められる。面倒でも物理ディレクトリをメモしておくなりして、フルパスで入力する必要がある。この問い合わせは、最初の一回のみである。

初期化 (最初の起動)

CGI ComSys の構成ページにアクセスするには、ブラウザを立ち上げ URL として
http://localhost/alias_name/Config.html
を入力する。

ここで alias_name はインストール時に Web サーバに作成した仮想ディレクトリ名である。

CGI ComSys Configuration Page が開いて CGI Password の入力を求められる。 最初は当然未設定であるので任意の8バイト以内の文字列を入力する。このパスワードは構成ページでいつでも変更可能である。ただし変更するまでは仮のパスワードとして有効なので忘れてはいけない。

仮想ディレクトリ名を "comsys" としてすでに稼動している独自プロトコルの ComSys と共有モードにする場合には、CGI Password を入力して [Logon] をクリックするとレジストリ内の既存 ComSys のデータが自動的に読み込まれてただちに初期化が完了し、構成ページのトップメニューが表示される。(インストールはいたって簡単!)

そうでない場合には "新たに CGI ComSys を構成します" 画面となる。ここでは ComSys のデータを管理するメインディレクトリをどこに置くかを指定する。ここで指定したメインディレクトリの下に \AccServer, \OlcServer などのサブディレクトリが切られて各種のデータが保存されることになる。

ComSys がすでに稼動していると選択メニューの最初の行にそのメインディレクトリが表示されているはずである。その下に Web サーバで設定されている仮想ディレクトリのそれぞれに結び付けられた物理ディレクトリがリストされる。その中に CGI ComSys 用に作成した仮想ディレクトリに結びつけられた物理ディレクトリがあるはずである。

CGI ComSys のメインディレクトリをどこに置くかは任意であるが、特に支障がなければ CGI ComSys 用に作成した仮想ディレクトリに結び付けられた物理ディレクトリを指定する。

まったく別個にメインディレクトリを設定したい場合には、"その他" を選択して "指定ディレクトリ" 欄にフルパスで入力する。

[送信] をクリックするとメインディレクトリの設定に関する確認のページが表示され、よければ [OK] をクリックすることにより問題がなければ構成ページのトップメニューが表示される。

Windows NT/2000/XP/Server2003 でインターネットゲストアカウントに対してレジストリキーの作成やメインディレクトリへの書き込みなどでのアクセス権が設定されていない場合、先へ進めない。

構成ページに入って必ずしておかなければいけないこと。

1) HTML Configuration で、必要に応じて CGI Password を変更する。

2) Account Configuration で、Host ID を設定する。これが設定されていないとユーザからの [新規登録] アクセスも拒絶されることになる。

3) OLC Configuration で、必要に応じてボードを新設する。

4) その後、ユーザログオンページ Welcome.html によりアクセスして新規ユーザ登録を行い動作を確認する。

HTML Configuration

ここで確認/設定/変更可能な事項

1) CGI Service Port 独自プロトコルの ComSys からのデータ待ちうけポート (デフォルト値 = 8012)
共有モードにおいてのみ機能する。ここでの変更は、独自プロトコルの ComSys 側に直ちに反映される。デフォルト値のままで特に差し障りのない場合には、できるだけ変更しないことが望ましい。

1) CGI Password システム管理者ログオン用パスワード

2) Admin E-Mail ユーザからの問い合わせ用メールアドレス

3) User Access Security Level 一般ユーザアクセス用セキュリテイレベル (0 または 1 または 2)

4) Config Page Security Level システム管理者アクセス用セキュリティレベル (0 はできるだけ避けること)

Security Level についてはアクセスセキュリティの項を参照のこと。

5) User TimeOut Value ユーザの無入力タイムアウト時間 (秒単位; デフォルト値 = 20分)
ここで設定した時間を超えてユーザからの入力がなければ強制的にログオフ処理を行う。
0 に設定するとタイムアウト機能は働かない。
独自プロトコルの ComSys と共有モードで運用する場合、ComSys での TimeOut Value と CGI ComSys での TimeOut Value とは互いに独立しているので、それぞれ異なる値を設定しても構わない。

6) Timer Interval タイマイベントが発生する時間間隔 (ミリ秒単位) 通常はデフォルト値 (1分) のままでよいと思う。
0 に設定するとタイマ機能が停止する。

7) Top Frame (現在選択されているメニューのヘッダが表示されるフレーム) についての、背景画像、背景色、文字色

8) Left Frame (メニューコマンドボタンが配置されるフレーム) についての、背景画像、背景色、文字色

7) Center Frame (選択されたメニューコマンドに対する応答が表示されるメインフレーム) についての、背景画像、背景色、文字色

9) Table (各種の応答でメインフレームに表示されるテーブル) についての、外枠の太さ、外枠の色、背景画像、背景色

10) Message Title (ボード一覧、メッセージ一覧) での既読、未読を区別する色

11) リッチテキスト変換モード
ComSys で採用されているテキスト形式は、デフォルトではプレーンテキストではなくリッチテキストである。一般にブラウザはリッチテキストの表示機能を持たないので、ComSys で書き込まれたリッチテキストはなんらかの処理を行わなければブラウザで見たとき意味不明の内容となる。

RTF Mode では Web サーバからリッチテキスト形式のままブラウザに送信する。この場合 MIME として "application/rtf" の設定で送信するので、ブラウザ側でそれを処理するアプリケーション (たとえば Microsoft Word とか Windows の標準アクセサリの Wordpad など) を用意しておく必要がある。

HTML Mode では CGI でリッチテキストを HTML 形式に自動的に変換してブラウザに送信するのでブラウザ側では特別の用意をする必要はない。
初期のバージョンではサーバ側の Microsoft Word を使用して変換していたのでサーバの動作が重たくなったが、現在はシステム自身にその高速変換機能を内蔵させている。
したがってサーバマシンに Word 2000 がインストールされている必要はなく、一部の OS では機能しなかったり動作が不安定だったりしていた点も解消された。
通常はこちらのモードを使用することを推奨する。

データ共有モードで運用するのでなければこのモード指定はほとんど意味がない。

設定すべき入力が完了したら [送信] ボタンをクリックする。

Account Configuration

ここで確認/設定/変更可能な事項

1) Host ID : 自分のホストに設定するホスト識別子でサイズは 3バイト固定

Host ID がアカウントを取得したユーザに交付される User_ID の先頭 3バイトとして用いられることになる。Host ID が設定されていなければユーザはアクセスできない。

なお Host ID は一度登録すると後での変更ができないので注意して欲しい。

2) Log List Level : ユーザの [アクセスログ] コマンドを許容するアクセスレベル

アルファベット大文字 1バイト (デフォルト = "A")

3) User List Level : ユーザの [ユーザリスト] コマンドを許容するアクセスレベル

アルファベット大文字 1バイト (デフォルト = "A")

4) ユーザに対する問い合わせ項目 (アカウント項目)

現在あらかじめ設定されているアカウント項目は次の通りである。

A) Name (Alphabet) : 名前(ローマ字)
B) Name (Kan-ji) : 名前(漢字)
C) Handle : ハンドル
D) Password : パスワード
E) Nation : 国籍
F) Zip Code : 〒 郵便番号
G) Address : 住所
H) Phone : 電話番号
I) EMail : メールアドレス
J) Sex : 性別
K) Age : 年齢
L) Birthday : 誕生日
M) OS : 使用OS
N) Occupation : 職業
O) Working Place : 職場
P) Affiliation : 所属

管理者は、上記 16項目すべてについてユーザに問い合わせる必要はない。むしろユーザ について知るべき情報は必要最小限にとどめるべきである。

ここではこれらのうちから問い合わせるべき項目を選択しチェックする (ただし、A,C,Dは必須項目)。チェックされた項目のみがユーザの新規登録の際問い合わされる。

設定すべき入力が完了したら [送信] ボタンをクリックする。

OLC Configuration

ここで確認/設定/変更可能な事項

1) OLC 全体設定項目の更新

a) メッセージ自動削除設定時刻

タイマ機能が動作していれば、ここに設定された時刻に達すると自動メンテナンスが起動する。
具体的には、自動削除フラグが ON になっているボードについて、収容されているメッセージ数がメッセージ削除閾値を超過しているならば超過している数だけ前のほうから順に自動的に削除する。

b) 書き込み中の HTML タグ

ボードへの書き込み (タイトル部分も含めて) の中に埋め込まれた HTML タグの、システム全体としての取扱いについて設定する。
1) すべて透過 … 書き込み内容を無変換で送信する (タグ有効)
2) すべて禁止 … 特殊文字をすべて変換して送信する (タグ無効)
3) SCRIPT タグなどの禁止 … SCRIPT, OBJECT, EMBED, APPLET タグを無効にする
のいずれかを選択する。
システムとしてすべて透過を選択した場合は、個々のユーザに対して処理方法の選択が委ねられる。

HTML タグの扱いについてはユーザログオンページ用ヘルプのクロスサイトスクリプティング (CSS) の脆弱性についてを参照のこと。

c) ユーザリスト中のメールアドレス表示

一般ユーザが [ユーザリスト] ボタンでアカウントを取得しているすべてのユーザリストを表示させるとき、各ユーザのメールアドレスをブラインドにするかどうかを選択する。

2) ボードの新設

<<< ここをクリックしてボードを新設します >>> をクリックする。

生成されたボードには、すべてにユニークなボード固有キーが割り当てられる。この番号を変えることはできない。ボード固有キーは アルファベット 1文字 + 5桁の数字 で構成され、A00001 から始まる。

3) 既設ボードのパラメータの変更

4) 既設ボードの削除

ボードを選択して [削除] ボタンをクリックする。ただしここでは削除マークがつけられるだけである。すでに削除マークのつけられているボードは、もう一度 [削除] ボタンをクリックすることによって復活させることができる。

System Maintenance の Board Maintenance を実行することにより、削除マークのついたボードは物理的に消去される。

設定できるボードパラメータ

ボード名 80Bytes 以内
ボードパスワード ボードごとに異なるパスワードを設定可能 (8Bytes以内)
リードオンリーフラグ 書き込み禁止
収容可能最大メッセージ数 10000以内としているが制約はない
親ボード トリー構造のボードの場合、親ボードの固有キー
アクセスレベル アクセス可能なユーザのレベル ( 'A' 以上)
ゲスト禁止フラグ ゲストアクセスを禁止
アップロード禁止フラグ バイナリファイルのアップロードを禁止
自動削除フラグ メッセージ数が閾値を越すと自動的に古いもの(前の方) を削除
フラットログ保存フラグ 自動削除されるメッセージをフラットなテキストファイルとして保存
メッセージ削除閾値

ボードに残すメッセージの最大メッセージに対する割合 (%)
この値を超えたメッセージが自動削除の対象となる
ただし 0 に設定すると自動削除は働かない

ボード番号 ボード番号を変更したい時、その予約値

リードオンリーボードの場合は、サブ管理者 (User_ID が ***0000 から ***0000F まで) のみ書き込みができる。

自動削除フラグを ON にしている場合、自動メンテナンスのときだけでなくマニュアルでの System Maintenance の Massage Maintenance 時にも自動削除の対象となる。

ボード番号 (ボードの並び順) の物理的な変更は System Maintenance の Board Maintenance の実行により行われる。ここで設定するのはその際の予約番号である。

User Configuration

ここで確認/設定/変更可能な事項

1) 登録されているユーザのリスト

ユーザリストはユーザ番号順に 64人分ずつ表示する。

表示するリストを変えるには [前のリスト] [次のリスト] ボタンを用いるか、User_ID に直接ユーザ番号 (HostID 省略可) を入れ [リスト] をチェックして [表示] をクリックする。

2) 個々のユーザのアカウント内容の確認

ユーザを選択するにはユーザリストから選ぶか、User_ID に直接ユーザ番号を入れ [個人] をチェックして [表示] をクリックする。新規にユーザ登録するには新しい番号を直接入力する。

3) ユーザのレベルとアカウント項目内容の変更

ユーザレベルは '@' ないし アルファベット大文字で与えられ、'A' から順次レベルが高くなる。'@' はアクセス禁止レベルを意味してユーザは一時的にアクセスが許可されなくなる。

新規登録したときにはデフォルトで 'A' が与えられる。設定されたボードのレベルによってはそのままではアクセスできない場合もありうる。通常のレベルをどのように設定するかはシステム管理者の考えにまかせられる。

アカウント項目は Account Configuration で設定した項目のみ確認/変更可能。

4) ユーザの削除

ユーザを選択して [削除] ボタンをクリックする。ただしここでは削除マークがつけられるだけである。すでに削除マークのつけられているユーザは、もう一度 [削除] ボタンをクリックすることによって復活させることができる。

System Maintenance の User Maintenance を実行することにより、削除マークのついたユーザは物理的に消去される。

ユーザ番号について

ユーザ番号 (User_ID) は Host ID の 3バイトに続いて 16進数 5桁で構成される。たとえば Host ID が "ABC" の場合、ABC00000 から ABCFFFFF までのユーザ番号が可能となる。

一般ユーザが [新規登録] で取得するユーザ番号としては、そのうち ABC00100 から交付される。ABC00000 から ABC000FF まではシステム管理者によりリザーブされ、構成ページからでしか登録できない。

さらにリザーブされた中の ABC00000 から ABC0000F までの 16ヶの番号は、サブ管理者としての特別な意味を持つ。

System Infomation

ここで確認/設定/変更可能な事項

ユーザが [システム情報] ボタンをクリックしたときに表示されるお知らせメッセージの内容をここで書き込んで [送信] する。

System Maintenance

ここで確認/設定/変更可能な事項

1) 現在ログオン中のユーザリスト

その時点でログオンしているユーザがいなければ表示されない。
Maintenance を実行すると、現在ログオン中のユーザは強制的にログオフさせられることになる。

2) 実行するメンテナンス項目

A) Board Maintenance : ボードの並び順の変更, 指定ボードの物理的削除
B) Message Maintenance : 指定メッセージの物理的削除
C) User Maintenance : 指定ユーザの物理的削除

以上の他に、Windows 2000/XP/Server2003 でレジストリへの更新不能エラーが発生した場合には下記のメンテナンス項目が追加される。この項目の実行のためには、インターネツトゲストアカウントの所属グループに Power Users が必要となる。

D) Registry Maintenance : CGI ComSys 用レジストリへのアクセス権の更新

System Log

ここで確認/設定/変更可能な事項

1) ログの表示

システムログファイルのリストが表示されるので、任意のファイルを選択してファイル名をクリックすることによりそのログ内容を表示することができる。なおログの表示はブラウザの別ウィンドウにおいてなされる。

システムログは ComSys メインディレクトリの下に切られるサブディレクトリ \AccServer の中に一日単位で作成され "CGIyymmdd.log" という形のファイル名を持つ。

2) ログファイルの保存

ログファイルを受信して保存するにはファイル名の上での右ボタンクリック・ポップアップメニューによる。
デフォルトのファイル名にもボタン名ではなく正しいファイル名が表示される。

3) ログファイルの削除

ログファイルリストの各行末の [削除] チェックボックスにチェックを入れて [削除実行] ボタンをクリックすることによりチェックされたファイルが一括して削除される。同時に複数のファイルを削除することも可能。

なお、削除指定されたファイルは [削除実行] によりサーバ内で物理的に削除されて再生はできないことに注意して欲しい。

Upload File

ここで確認/設定/変更可能な事項

1) ファイルのアップロード

現在のアップロード・ディレクトリ (デフォルトでは CGI_ComSys.dll などが置かれる CGI ComSys 用ディレクトリ) に任意のファイルをアップロードすることができる。
Welcome.html, Config.html などもアップロードして上書き更新することが可能。

ただし CGI_ComSys.dll だけは稼動中に上書きしようとすると共有違反になるのでここからアップロードすることはできない。

2) アップロードディレクトリの変更

ファイルをアップロードするディレクトリを変更したり、新たにサブディレクトリを作成してそこにアップロードすることもできる。

親ディレクトリを順次選択していけば、ドライブを変更することもできる。

これにより CGI_ComSys が稼動しているサーバマシンに対してリモートコンピュータから任意のディレクトリにファイルを転送可能である。
ただし Windows NT/2000/XPServer2003 で NTFS を使用している場合には、それぞれのディレクトリにおいて設定されているインターネットゲストアカウントのアクセス権の制約を受ける。通常 CGI_ComSys.dll などが置かれる CGI ComSys 用ディレクトリより上のディレクトリには移行できない。

Logoff

システム構成ページには複数の管理者が、あるいは複数のリモートホストから同時にアクセスすることはできない。したがって予定した処理を終えたならばすみやかにログオフしておくことが望ましい。

ログオフしたあとはブラウザを閉じればよい。

ログオフ後さらに CGI ComSys を停止することもできる。

CGI_ComSys.dll がバージョンアップされたときなど、これを上書きして差し替えようとする場合、CGI_ComSys.dll が稼動状態であると「共有違反」となりそれができないので、Webサーパか CGI_ComSys.dll をいったん停止せざるをえない。CGI_ComSys.dll を停止させるには [Halt] ボタンをクリックする。

Windows 2000/XP/Server2003 + IIS 5.0/5.1/6.0 の場合は CGI ComSys を停止しても Web サーバ自体 (IIS 5.0/5.1/6.0) はそのまま継続稼動が可能である。ただし IIS 5.0/5.1 の場合、CGI ComSys が置かれた仮想ディレクトリ (エイリアス) のプロパティで、「アプリケーション保護」を「中」または「高」に設定しておく必要がある。

IIS 5.0/5.1/6.0 以外の Web サーバの場合には CGI ComSys を停止すると Web サーバも同時に停止する。したがってその場合には CGI_ComSys.dll の差し替えコピー後 Web サーバを再起動してやる必要がある

その他

● アンインストール

共有モードで運用していて、独自プロトコルの ComSys はそのまま継続し CGI ComSys のみ運用を停止する場合にはアンインストールの必要はない。

アンインストールには CGI ComSys 用のディレクトリ、および ComSys のメインディレクトリをサブディレクトリも含めてファイルごとすべて削除する。

その前に添付のユーティリテイ "ComSys_U.exe" を用いると ComSys 用のレジストリキー項目をすべて削除することができる。"ComSys_U.exe" の使用法については "Readme_U.txt" を参照のこと。

そのほかにシステムに残る残骸としては Web サーバに作成した仮想ディレクトリがあるが、必要ならばこれは手作業で削除してほしい。

● Web サーバマシンを Windows 98/Me から Windows XP Pro にアップグレードした場合の注意

Windows 98/Me ではレジストリのキーに対して個別ユーザごとのセキュリティ (アクセス許可) の設定機能はないが、Windows XP にアップグレードするとレジストリのセキュリティ機能が加わる。

そのとき、CGI ComSys 専用レジストリキーに対してインターネットゲストアカウント (IUSR_computername) のアクセス許可が設定されない。それゆえレジストリエディタ (Regedit.exe) を用い、 CGI ComSys 専用レジストリキーに対してインターネットゲストアカウントのアクセス許可を追加するとともに、そのアクセス許可内容として最低限「値の設定」と「サブキーの作成」とを許可する必要がある。

レジストリの操作は個人の責任で十分注意して行う必要がある (事前にバックアップをとっておくことが望ましい)。

● 参考図書

Duke著 『Delphi2達人テクニック』 DART
田原孝著 『Delphiで作る高速CGI』 エーアイ出版
岡蔵龍一 半場方人著 『HTML&JavaScript辞典』 秀和システム

● ユーザログオンページ用ヘルプ (一般ユーザ向け)

UsrHelp.html

ComSys ホームページ