FML運用はメールサーバーの配送(SMTP)の間に走らせるperlプログラムです。ここでの運用は言い換えれば WEBブラウザを通して 第三者に SMTPサーバーの使用許可を認めることと同じです。使い方を誤れば踏み台にされスパムの温床となります。
用途に応じて WEB サーバー側でセキュリティは確保する必要があります。詳細は Apache ドキュメントを参照して下さい。
ここでは、FML-CGIを利用目的としておりWebブラウザで制御可能な状態にセットアップします。そのため、Apache の公開ディレクティブ設定が重要になります。ここでは、以下のセキュリティポリシィに基づき、解説します。
注意
ここでは、クライアント認証や、Apache のSSL化に関する具体的な方法については触れられていません。
Apacheに関しては公開ディレクティブの設定例のみを紹介しています。Apache のSSL化、クライアント認証については、以下のページで紹介していますので参考にして下さい。
参照 => セキュアWEBサーバー構築
Admin (メールサーバー管理者)
公開アドレス => https://mydomain/fml/admin/
システム管理アドレスであるためアクセス制限を厳しくします。利用できるのはメールサーバー管理者のみです。以下の条件をクリアにしなければアクセスする事は出来ないようにします。
ML-Admin (メーリングリストオーナー)
公開アドレス => https://mydomain/fml/ml-admin/メーリングリスト名/
メーリングリストに提供される管理インターフェイスは、外部ネットワークからの接続を許可します。ただし、SSL接続に限定しスニッフィング(盗聴)防止対策は必須となります。ここではSSLクライアント認証は使用しません。
外部ネットワークからの利用も想定しているため、IPアドレスによるアクセス制限は行いません。万が一盗聴された場合、それはメールサーバー(SMTP)が踏み台にされる事を意味します。
そのため、HTTPSプロトコルによるネットワーク暗号化保護は必須となります。通常のHTTP接続は出来ないようにします。
ちなみにFML CGI では、Apache の htpasswd コマンドと連携しており、Admin インターフェイスからアカウントを管理する事が可能です。
ここでのクライアント認証とは、ApacheWebサーバーに接続する際、有用な証明書を提示しなければセッションを確立できない仕組みです。構築方法は以下で解説していますので、意味の分からない人は合わせて参考にして下さい。
参照 => セキュアWEBサーバー構築
本家サイトで説明されているsuExecを前堤としたインストールと異り、ここではデフォルトのapche権限で実行させるCGIとしてFML-CGI をインストールします。
Apache2で suExec を使用するには 、VirtualHostとして SuexecUserGroup ディレクティブで指定するか、mod_userdir を使用し アドレスをhttp://www.mydomain.net/~fml とする必要があります。SSLによる保護は必須となるため、前者の名前ベースの VirtualHost では前者は利用できず、 業務用のサーバーとしては後者の mod_userdir は使いたくありません。※
suExecは不特定多数にCGIディレクトリの利用を認める場合は必須ですが、ここではAdmin(管理者)が、それぞれのML制御CGIを提供するため、suExecが必ず必要になる訳ではありません。
上記のセキュリティポリシー & ログ監視 で安全に運営できます。
※IfModule mod_userdir.c ディレクティブでユーザーを限定する亊も出来ます。