いまどきのメールシステムに関するメモ

あとでもう少し真面目に書く用のメモ。

前提と方針

  • アップデートの手間を極力下げるため、サポート期間の長いLinuxディストリビューションで、容易にパッケージが用意できるものを原則用いる。
    • CentOSであれば、CentOS5+EPELに含まれるもの
    • Ubuntuは10.04LTS標準レポジトリに含まれるもの
  • 極力シンプルな構成とする。
    • 出来る限り、ベースとなるソフトウェア(Postfixdovecot)に内蔵のプログラムを使い、小さなアプリを細かく使わないようにする。
      • ローカル配送はprocmailではなくdovecot deliverを直接利用する、などのレベルの話
    • 認証はSTARTTLS/SSL上のPLAIN認証のみ対応でOKとする。
  • Unixユーザ等と完全に独立したメールアドレス管理を提供する。
    • POP3/IMAP/SMTP-AUTH等の認証バックエンドは単一のDBにまとめる。
    • DB上のパスワードはSalt付きハッシュ(つまりcrypt)
    • 管理者がWebからメールアドレス追加削除
    • 利用者がWebからパスワード変更

MTA/Submission

メールボックス

  • Dovecot
    • POP3/IMAP両方
    • PLAIN認証 over STARTTLS/SSL通信
    • 認証バックエンドとしてDB直接利用可
    • Dovecot deliverを使えばsieveにも対応(未検証)
    • バーチャルドメイン

anti-spam

  • spamassassin
    • いつものルールファイルで今のところ困っていない。
    • spamass-milterを使うことで、amavisdやspamc等を通さず直接Postfixから呼べる。
  • greylistingは業務等ではデメリットによるインパクトが大きいので使わない。
  • antivirusは要検討

認証管理

  • Postfixadmin
    • Web管理画面
    • PostfixDovecotとの連携設定例がはっきりしている(DB直接操作)
    • qmail内のプログラムに依存するものは使いたくない(管理するモノを減らすため)

ML

  • Mailman
    • 最終的にvirtual_aliasのパイプ経由でmailmanプロセスにメール内容を受け渡し
    • Postfixのvirtual_alias_mapをnative support
    • 内部向けMLにMailmanの機能なんてほとんど要らないので、今後は他のMLドライバも検討していく。
    • distribute+MHonArc+非エンジニア向けのWeb管理画面、ぐらいでちょうどよい。

todo

  • 認証やバーチャルドメインのメール転送関係のデータフローが分かりづらいので、図にしたほうが良いかも。