準備1(Windows Server 2012 + Internet Information Server 8.0 を使用した場合)

動作確認 Web サーバ
Internet Information Server 8.0


IIS8.0 のインストール

Webmail のインストール
  1. c:\inetpub\wwwroot\cgi-bin フォルダを作成します。(以下CGIフォルダ)

  2. 解凍された CGI 及び必要な画像ファイル(logo.gif / pmcursor.gif )を CGIフォルダにコピーします。
    アイコンを利用する場合は CGI フォルダに「icon」でフォルダを作成しその中にコピーします。

  3. Default Web Site で右クリックをし「アプリケーションの追加」を選択します。
    必ずアプリケーションの追加を行ってエイリアスとディレクトリ設定を行って下さい。
    \inetpub\wwwroot\cgi-bin を作成した場合、IIS マネージャーにはこのフォルダが直接表示されていますが、物理フォルダに直接CGIの設定を行うと CGI が正しく動作しない場合があります。

  4. エイリアスに「cgi-bin」物理パスに「c:\inetpub\wwwrott\cgi-bin」を入力します。

    IIS8.0 アプリケーションの追加

    cgi-bin の物理フォルダと仮想フォルダが重なっていますが、標準FTPサーバ以外を利用する場合を想定しています。物理フォルダは必ずしも c:\inetpub\wwwroot\ 下に無くても構いません。

  5. コンテンツビューに切り替えると先にコピーしてある CGI が見えます。アイコンも仮想フォルダに変わっています。

    IIS8.0 アプリケーションの追加 - コンテンツビュー

  6. 機能ビューに戻り、先程作成した cgi-bin フォルダを選択後に「ハンドラマッピング」を開きます。

    IIS8.0 ハンドラマッピング

  7. ハンドラマッピングを開くと、拡張子 *.exe が無効になっていますので有効にする必要があります。

    IIS8.0 ハンドラマッピング2

  8. 「CGI-exe」を選択し右クリックのメニューより「編集」を選択します。
    選択後に「モジュールマップの編集」が表示されましたら「要求の制限」ボタンをクリックします。

    IIS7.0 モジュールマップの編集

  9. 要求の制限ページの「アクセス」タブを選択肢を選択し「スクリプト」から「実行」に変更し、OKを押して閉じます。

    IIS8.0 アクセスの変更

  10. cgi-bin のハンドラマッピングの画面に戻りますと、CGI-exeが有効になっているのを確認し右側の「機能のアクセス許可の編集」をクリックします

    IIS7.0 アクセス許可の編集

  11. 「実行」にチェックを入れ OK を押して閉じます。

    IIS8.0 アクセス許可の編集2

  12. まだ終わりません。IIS のホームに戻り、「ISAPIおよびCGIの制限」をクリックします。(用語がわかりにくいです)

    IIS8.0 ISAPIおよびCGIの制限

  13. 「追加」をクリックし、CGI の登録を行います。
    画面では pmum.exe の登録を行っていますが、必要に応じて pmam.exe やご利用になる他の CGI も追加してください。

    IIS8.0 CGIの追加

    右上に「ISAPI拡張モジュールがインストールされていません。」と警告が表示されていますが、Webmail は ISAPI形式のDLLでは無く、Win32実行形式のCGIの為、ISAPI拡張モジュールのインストールの必要はありません。別途 ISAPI拡張形式のDLLを利用する場合はインストールして頂いても動作には影響ありません。

以上で、CGI を動作させる設定が完了しました。次に CGI がアクセスするファイルに対してのセキュリティ設定を行います。

サーバー自体がイントラネットのみで外部との接続を一切行っていない場合は、Everyone のフルコントロールでも問題ありませんが、外部から接続を行う場合は、一定のセキュリティを設定することを推奨します。
CGI がアクセスするファイルは以下になります。

基本的に CGI からのファイルアクセスは匿名ユーザーとして IIS インストール時に自動的にユーザー(アカウント)登録された IUSR というアカウントでアクセスが行われます。
Web サーバ内のコンテンツへのアクセスにこのアカウントが利用されますが、CGI の場合は ファイルへの変更や削除等を行いますのでデフォルトの設定(読み取り)では処理を行うことができません。
従って IUSR で各ファイルやフォルダへ変更等を行えるように適切にアカウントの設定が必要になります。
IUSR は IISマネージャーの各サイトの機能ビューにある「認証」から確認することができます。

IUSR.gif

アカウント名はデフォルトで「IUSR」というグループ名で登録が行われます。


●account.dat(ファイル)や Spool等(フォルダ)へのセキュリティ設定方法
  1. 対象のファイル又はフォルダのプロパティを開き、セキュリティページを開きます。
  2. 追加ボタンを押し、IUSR アカウントを登録します。
  3. 「変更」にチェックを入れ「適用」をクリックします。
  4. IUSR を選択し、「変更」にチェックを入れ「適用」をクリックします。
  5. iis8n.gif
    上記の設定は一例です。お使いのサーバの環境にあわせて適切なアクセス権を設定して下さい。

適切なアクセス権が設定されていない場合は、CGI をブラウザから実行する際に「内部サーバエラー」が発生したり、メールの削除が出来なかったりします。その場合には再度アクセス権利を見直してください。

セキュリティの為の注意事項
account.dat はアカウント情報が記録されている大切なファイルです。account.dat を盗まれるとそのメールサーバの全てのアカウントのID とパスワードが盗まれることと等しいです。
CGI にアクセスする必要がある為、上記の例ではインターネットゲストアカウントからアクセス出来るように説明をしておりますが、アクセス方法に制限が加わりますが安全の為、IUSR では無くドメインユーザーを作成し CGI と account.dat / Spool フォルダへのアクセスには下記のように認証を行ってください。

CGI にアクセスした時点でサーバへの認証が行われますのでより安全な運営を行うことが出来ます。