.
ツール / その他 => ブラウザで管理するメーリングリスト > 5.Apache-2 ~ FML CGIに関するディレクティブ設定
Linux 活用ガイド:目次

サーバ構築ガイド

レンタル ガイド

ショップ 構築ガイド

情報漏洩対策

Apache-2 ~ FML CGIに関するディレクティブ設定

ここで設定した例では /home/fml ディレクトリにCGIの実行を許可し、Webサーバーで公開するように設定しなければなりません。web上でのMLの管理は危険なので深重に行ってください。設定を誤るとセキュリティホールそのものとなってしまいます。

Apacheディレクティブ設定

Apacheの詳細はドキュメントを参照して下さい。ここではApache2 を使用しています。

Apache HTTP サーバ バージョン 2.0 ドキュメント - Apache HTTP サーバ

このサイトでも、関連、よく利用する Apache ディレクティブの設定のポイントをピンポイントで解説しています。

Apache2初期導入の管理・設定例

/etc/httpd/conf/httpd.conf 編集を直接編集するか、こちらで解説しているようにfml用のconfファイルを新たに作成します。ここでは conf.d ディレクトリにfml用の設定ファイルを作成し、設定する手順で説明します。

セキュリティポリシーについては、先のページで説明しています。これに従った設定例です。

公開ディレクティブの設定例

ここではセキュリティを重視して、SSLによる接続に限定した例で説明します。あくまで一例ですので、それぞれの使用環境にあわせて設定する必要があります。SSLが有効でない場合は、先にSSLサーバーとして動作させておく必要があります。

また、SSLに関する設定は、ssl.confで行うようになっていますが、専用の設定ファイルに記述しても有効です。

/etc/httpd/conf.d/fml.conf

# ドキュメントルートにマッピングします。http://mydomain/fml/ で公開します。
Alias /fml/ "/home/fml/"

######### FML Admin ディレクティブ
<Directory /home/fml/>
# 通常のhttp接続は許可せず、https接続のみにする
SSLRequireSSL
# Adminユーザーはクライアント認証を求める
SSLVerifyDepth 1
SSLOptions +OptRenegotiate
SSLVerifyClient require
# 以降は基本的なディレクティブ設定
AllowOverride AuthConfig
# CGIの実況を許可
Options +ExecCGI
# 評価順位とアクセス制限 192.168.67.89 にしか接続させない
Order allow,deny
Deny from all
Allow from 192.168.67.89
</Directory>

######### FML ML-Admin ディレクティブ
<Directory /home/fml/ml-admin>
# https接続のみに限定するが、クライアント認証は求めない
SSLRequireSSL
AllowOverride AuthConfig
# CGIの実況を許可
Options +ExecCGI
# 評価順位とアクセス制限 全てのネットワークから接続を許可
Order allow,deny
Allow from all
</Directory>

ML-Admin は、必ずBasic 認証(パスワードを求める)を有効にする必要があります。Basic 認証については、FML Admin(ブラウザ) から作成する事が可能です。

CGIのコンフィグレーションで USE_MOD_SSL = YES としていた場合、.htacess でSSLに強制されますが、念のため、ここでもSSLに強制するように指定しています。

ML-Admin の生成

この段階では、ML-Admin にCGI は存在しません。これを作成するには、メールサーバー管理者が以下の手順を践んで作成します。FML CGI トップメニュー

  1. メールサーバー管理者が https://mydomain/fml/admin/menu.cgi へアクセスし、メーリングリスト hogehoge@mydomain を新規に作成する
  2. 作成したメーリングリスト hogehoge@mydomain に対して、『既存MLをCGI操作可能にする』 (管理メニューの既存リストからの選択)から、hogehogeを選択し実行する
    1. この段階で /home/fml/ml-admin/hogehoge/menu.cgi作成されるが.htaccessによりアクセスできない
      FML CGI 管理メニュー
  3. この作成したメーリングリストhogehoge用のCGIディレクトリに対して リモート管理者パスワードの設定 からメーリングリスト hogehoge を選択し、アカウントを作成する
    1. これにより、/home/fml/ml-admin/hogehoge/ にある .htaccess が参照する/usr/local/fml/www/authdb にアカウントが登録されBasic認証による接続が可能になる
      FML CGI リモート管理者メニュー

https://mydomain/fml/ml-admin/hogehoge/menu.cgi へ登録したアカウントでアクセス出来るようになります。

運営について

メールサーバー管理者が全てのメーリングリストを管理する場合、ML-Admin は必要ありません。 全ての操作は、Admin (https://mydomain/fml/admin/menu.cgi)で行う事ができます。

ML-Admin は 既存のメーリングリストに対してCGIによる制御を認める場合に提供します。これにより、コマンドに不慣れな方でもMLオーナーになる事ができます。

部署ごとにML管理者、責任者など設置すればサーバー管理者の手間も省けます。

FML-CGI トラブルシューティング

もっとも多いと考えられるのが、パーミッションの問題です。ここでは suExec は使用していませんのでデフォルトの apache (又はnobody)権限でCGIを実行している事になります。そのため、apache (又はnobody) ユーザーに対しては書込み許可が必要になります。うまくいかない場合はオーナー、パーミッションを確認してください。

その他、考えられるトラブルの回避方法は以下の通りです。

POST methodでエラーが出る

SSL環境下で動作させる場合、以下のようにポートを明示的に指定しなければ CGIによっては、POST method でエラーが出てCGIが正常に動作しないので注意して下さい。

/etc/httpd/conf.d/ssl.conf

ServerName www.mydomain.net:443

文字コードの問題

ここで取り上げている FML-CGI は EUC-JP で作られています。FedoraCore / CentOSの標準の文字コードは UTF8 となっており、ApacheのデフォルトもUTF8を使用するように指定されています。そのためアクセスすると文字が化けてしまいます。

この問題を解決するには、サーバー側で調整を行うか、CGI を UTF8 に書き換えるかのいずれかになります。

FMLに限った話ではなく、他のCGIスクリプトでも同様の問題が発生します。サーバー管理者でない場合は、CGIを修正するしかありません。

/etc/httpd/conf/httpd.conf を以下の様に修正します。

/etc/httpd/conf/httpd.conf

###以下をコメントします。
#AddDefaultCharset UTF-8

その他権限に関すること

apacheを再起動し、実際にアクセスして確認します。 インターフェイスが確認できたら
適当なMLを作成して見て下さい。パーミッションエラーが出れば以下に注意します。

/var/spool/ml/etc/aliases.db の所有権がrootになっているか?

aliasesファイルはfmlが参照しますが、 aliases.dbはsendmailが参照します。注意して下さい。

ここまでで基本的に設定は終了ですが、最後に一仕事残っています。CGIは問題ありませんが、このままでは Sendmail-8.12 で FMLを正常に動作させる事は出来ません。次はその対策を行います。

ブラウザで管理するML(FML)

携帯メールとの乗り入れ


.
Sendmail に関する設定

Sendmail-8.9 ~ 8.12 まで継承する形で公開していたコンテンツを再編(FedoraCore/ CentOS)しています。Sendmail のバージョンや、8.12系でも異なる修正が必要な場合がありました。

関連するページ

 
.

メーリングリストに関する書籍

bottom_mark
ページ最上部
ページ最上部 前のページ