2010年07月25日

fmlのセキュリティ対策

fml はとてもメジャーなメーリングリストのソフトだが、デフォルトではいろいろな課題があることが分かった。

あるとき、自分の管理しているメーリングリスト xxx の管理者アドレス xxx-admin@xxx
から多量のメールが届いているから何とかしてくれ、ということ。知らない人からのメールは読まないのだが、何かおかしいと思ったら、送られてきたメールのサンプルは xxx のメールリストの案内であり、案内の請求を大量に出した結果、大量の案内が届いたということ。 From のアドレスをターゲットにして大量に出していた訳だ...
そんなやり方があったとは知らんかった... 申し訳ない。

で、fml の設定について調査。
その結果、
$HOME/.../fml/spool/ml/xxx/config.ph を編集することに。
まず、当然だが、ML にメールを送れる人はメンバーのみであることを確認。

$PERMIT_POST_FROM              = "members_only";

さらにメンバー以外が投稿した場合はデフォルトは reject になっているがこれだとそのメッセージが送られてしまうので、 ignore にする。

$REJECT_POST_HANDLER           = "ignore";

config.ph のファイル中にも以下のようなコメントがあった。
# $PERMIT_POST_FROM is one of "anyone", "members_only" and "moderator".
# It defines who can post to this ML.
# When post from not a member is rejected,
# fml calls $REJECT_POST_HANDLER.
# $REJECT_POST_HANDLER is one of "reject", "auto_subscribe" and "ignore".

さらに本題のコマンド要求に対する応答の変更。
コマンドを送って応答する対象についてもメンバだけに限定する。

$PERMIT_COMMAND_FROM           = "members_only";

そして、メンバ以外から要求にはデフォルトが reject になっていたので ignore に変更。これが本題の問題だったはず。

$REJECT_COMMAND_HANDLER        = "ignore";

reject だと返事が返ってしまうので。参考までの上記の config.ph のコメントを以下に。
# $PERMIT_COMMAND_FROM is one of "anyone", "members_only" and "moderator".
# It defines who can post to this ML.
# When command request from not a member is rejected,
# fml calls $REJECT_COMMAND_HANDLER.
#
# $REJECT_COMMAND_HANDLER is one of "reject", "auto_subscribe" and "ignore".

一応、もう一つ。root や postmaster などの特別な名前からMLに来たメールも reject するようになっているが、これも同じことだと思う。そのため、これは reject しないで受ける設定にする。だけどそのまえに上で メンバだけがpost できるようにしてあるので大丈夫なはずだ。

$REJECT_ADDR                   = "";

一応の処置としてこれをやってみて、メンバ以外からメールを送ってみてテストしたが処置後は返信メールが来なくなったので大丈夫かなと思う


posted by tshibata at 10:51| Comment(324) | TrackBack(0) | 日記