CentOS 4.4 でメール・サーバーを構築

rewse.jpのメール・サーバーをさくらインターネットから自宅サーバーに移行した。CentOS 4 の標準MTAはSendmailだけど、設定がかなり複雑なので今回は簡単なPostfixを使用し、ローカル配送のMDAにProcmail、MRAにDovecotを使用した。また、今回の要件としては以下のものが上げられる。

  • 送信について
  • バーチャル・メールボックス対応
  • SMTP認証(SMTP AUTH)対応
  • SMTP over SSL/TLS 対応
  • ウイルス・スキャンの実行
  • 受信について
    • バーチャル・メールボックス対応
    • IMAP over SSL/TLS 対応
    • POP over SSL/TLS 対応
    • ウイルス・スキャンの実行
    • スパム・フィルターの実行
    • 携帯電話への転送

    まず送信についてだけど、携帯電話宛てのメールをMacから返信できるようにするために、携帯電話からの転送を受けるためだけの受信箱が必要なのでバーチャル・メールボックスに対応させる。また、サーバーと同一ネットワークを使用していない(要は別の家に住んでいる)家族も使うので、SMTP認証に対応させることでどこからでもSMTPサーバーが使えるようにする一方、認証パスワードの暗号化のために SMTP over SSL/TLS も合わせて導入する。さらに、SMTPサーバー・レベルでウイルス・スキャンを実行し、ウイルスに感染したメールを外部に送らないようにする。

    受信については、バーチャル・メールボックスに送信されたメールが受信できることはもちろん、認証パスワードの暗号化のために IMAP over SSL/TLS および POP over SSL/TLS が使用できるようにする。また、すべての受信メールはウイルス・スキャンとスパム・フィルターを行い、有害メールを排除する。また、無害なメールは携帯電話に転送する。

    セットアップに入る前に、まずは用語の整理から。MTAは Message Transfer Agent の略で、ほかのメール・サーバーやMUAからメールを受け取り、配送先を決め、MDAに配送を依頼する。MDAは Mail Delivery Agent で、MTAの決めた配送先へメールを配送する。配送先はローカル・マシンの受信箱だったりほかのメール・サーバーだったりする。MUAは Message User Agent の略で、Apple Mail や Outlook Express などのエンド・ユーザーが使うメーラーのことだ。MRAは Mail Retrieval Agent で、IMAPやPOPプロトコルを介してMUAにメールを提供する。

    MTA関連用語

    メール・サーバーの中心となるのはMTAで、今回使用するMTAであるPostfixは小さなプログラムが連携して全体を構成するマルチ・プロセス構造となっている。これらのプロセスは「入力」「整形」「キュー管理」「出力」の四グループに別れ、以下のように連携している。

    Postfixのアーキテクチャ

    ローカルからsendmailコマンドで送られたメールはmaildropキューに保存され、一分間隔でpickupプロセスが取得しcleanupプロセスに渡す。外部からのメールやMUAからのSMTPで送られてきたメールはsmtpdプロセスがcleanupプロセスに渡す。cleanupプロセスは細かな修正が必要な場合はそれを行い、incomingキューに入れる。incomingキューに入ったメールはqmgrプロセスがactiveキューに移動させ、配送先に適したMDAに渡す。何らかの理由で配送できなかったメールはdeferredキューに入れられ、一定時間後に再度activeキューに移動されて再送を試みる。Postfixの持っているMDAにはlocalプロセスとvirtualプロセス、smtpプロセスがあり、ローカルの受信箱に配送しなければいけないメールはlocalプロセスが配送し、ローカルのバーチャル・メールボックスに配送しなければいけないメールはvirtualプロセスが配送し、外部に配送しなければいけないメールはsmtpプロセスが配送する。

    簡単にPostfixのアーキテクチャを説明したが、まじめに運用するとなると、より詳細を知っておくべきだろう。ボクは 荒木靖宏『Postfix詳解 — MTAの理解とメールサーバの構築・運用』(オーム社)で体系的に学んだ。

    目次

    1. CentOS 4.4 にメール・サーバーを構築
    2. CentOS 4.4 に Postfix 2.2.10 をインストール
    3. CentOS 4.4 にバーチャル・メールボックを設定
    4. CentOS 4.4 の Postfix 2.2.10 にSMTP認証を設定
    5. CentOS 4.4 の Postfix 2.2.10 に SMTP over SSL/TLS を設定
    6. CentOS 4.4 に amavisd-new 2.4.5 をインストール
    7. CentOS 4.4 に SpamAssassin 3.2.0 をインストール
    8. CentOS 4.4 に bsfilter 1.0.15 をインストール
    9. CentOS 4.4 に Procmail 3.22 をインストール
    10. CentOS 4.4 に Dovecot 0.99.11 をインストール
    11. CentOS 4.4 のDNSにMXレコードを設定

    2 thoughts on “CentOS 4.4 でメール・サーバーを構築”

    コメントを残す