計算機メモ目次 (目的のページと内容が一致しない場合, 目次から探してください)

さくらレンタルサーバのメーリングリストを DKIM/DMARC に対応させる


問題
  さくらレンタルサーバはドメイン名に対して DKIM/DMARC を設定できるように
  なったので, サーバから発信したメールは堂々と Gmail に着信するようになった.
  しかし, さくらレンタルサーバのメーリングリスト(ML)のプログラム fml (ver. 4) は
  MLを開設した当初の設定では DKIM/DMARC に対応できない.

  原因1. MLに投稿すると, さくらレンタルサーバーから投稿者のメールアドレスを
    「騙って」メンバーに配布されるので, そもそもメーリングリストの手法は
    なりすましである.

  原因2. 投稿者の DKIM のシグナチャーがあるとそれが引き継がれるので
    さくらレンタルサーバの DNS 設定に基づく DKIM シグナチャーと
    齟齬をきたし, メールが改ざんされたとみなされてしまう.

解決
  原因1に対しては, 送信者をMLのメールアドレスにすることで解決.
  原因2に対しては, 投稿者のDKIMシグナチャーを削除することで解決.
  要するに, MLのメールアドレスがオリジナルの送信者であるかのように
  振る舞わせるのである.

修正作業
  0. 前提としてMLを運用するドメインに DKIM/DMARC の設定をしてあること.

  1. $HOME/fml/spool/ml/<ML> にある cf ファイルに下記の設定を追加する.

  原因1に対する解決策として
    cf ファイルの最後の方にある
    # YOU CAN EDIT MANUALLY AFTER HERE. と @DenyProcedure = の間に
    From行を修正する下記のPerlプログラムを追加する.
    (参照: http://pokudama.blog.fc2.com/blog-entry-321.html )
    下記はこれに加えて, Reply-to が指定されていなければ送信者のアドレスを
    付加するようにしている (if (&GET~) { ~ } の部分).
    (参照: https://www.nakamurayuji.com/archives/483 )

$SMTP_OPEN_HOOK = q%
$Envelope{'fh:from:'} = $MAIL_LIST;
if (&GET_HEADER_FIELD_VALUE('reply-to')) {
&DEFINE_FIELD_FORCED("reply-to", &GET_HEADER_FIELD_VALUE('reply-to'));
}
else {
&DEFINE_FIELD_FORCED("reply-to", $From_address);
}
%;

  原因2に対する解決策として
    SKIP_FIELDS に DKIM-Signature と X-Google-DKIM-Signature を
    追加して下記のようにする.

SKIP_FIELDS  Return-Receipt-To|DKIM-Signature|X-Google-DKIM-Signature

  2. 設定ファイルである config.ph を更新する.

make config.ph

    ※ config.ph は $HOME/fml/makefml コマンドにより cf から生成される.
    さくらレンタルサーバのメーリングリストの設定インターフェースは
    cf の方をいじって config.ph に上書きするようになっている.
    したがって, 間違いのないように, config.ph を直に編集せずに cf を
    編集するのがよい.



計算機メモ目次 (目的のページと内容が一致しない場合, 目次から探してください)
海洋大循環分野
daigo@ocg.aori.u-tokyo.ac.jp