Postfix + Dovecot によるメールサーバの構築

Postfix + Dovecot によるメールサーバの構築

MacOS X Server でもメールサーバが Cyrus IMAP Server から Dovecot に切り替わるなど、最近のIMAPサーバの主流は Dovecot になってきました。

Postfix と Dovecot を使って Gmail のような SSL/TLS で送受信が可能なメールサーバを構築します。

Advertisement

Postfix のバージョンを確認する

現在動作している Postfix のバージョンを確認するには以下のコマンドを使います。

$ postconf mail_version
mail_version = 2.8.3

Postfix がサポートしている SASL を確認する

Postfix 2.3以降、Cyrus SASL に加え、Dovecot SASL もサポートされました。現在動作している Postfix がサポートしている SASL を確認するには以下のコマンドを使います。

$ postconf -a
dovecot

(NetBSD に標準でインストールされている Postfix では、Dovecot SASL はサポートされています。)

Postfix で SMTP 認証 (SMTP-Auth) を有効にする

Postfix で SMTP 認証を利用するには、SASL による認証を使います。main.cf に以下のように設定して SASL による認証を有効します。

smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination

SASL として Dovecot SASL を使うには、main.cf に以下のように設定します。

smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth

Dovecot の設定ファイル conf.d/10-master.conf に以下のように設定します。

service auth {
...
  unix_listener /var/spool/postfix/private/auth {
    mode = 0660
    user = postfix
    group = postfix
  }
  ...
}

Postfix で SMTP over SSL/TLS を有効にする

Postfix 2.3以降であれば、main.cf に以下の設定をすることで SSL/TLS が有効になります。

smtpd_tls_security_level = may

サーバ証明書 “postfix.pem” があり、証明書と秘密鍵が同じファイル “postfix.pem” に入っている場合、SSL/TLS で利用する証明書、秘密鍵を以下のように main.cf に設定します。(サーバ証明書は、別途生成する必要があります。)

smtpd_tls_cert_file = /etc/openssl/certs/postfix.pem
smtpd_tls_key_file = $smtpd_tls_cert_file

SMTP サーバが STARTTLS ではなく、常に SSL/TLS を使い SMTPS (ポート番号 465) で接続できるようにするには、master.cf に以下のように設定します。(デフォルトではコメントアウトになっているので、#を削除し有効にします。)

smtps     inet  n       -       n       -       -       smtpd
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING

Dovecot で IMAP を有効にする

IMAP や POP3 など Dovecot で提供するプロトコルは、設定ファイル dovecot.conf に以下のように設定します。

# Protocols we want to be serving.
protocols = imap

Dovecot で IMAP over SSL/TLS を有効にする

サーバ証明書を “dovecot.pem” とした場合、conf.d/10-ssl.conf に以下のように設定します。

ssl = yes
ssl_cert = </etc/openssl/certs/dovecot.pem
ssl_key = </etc/openssl/private/dovecot.pem

この設定により、IMAPS (ポート番号 993) で IMAP over SSL/TLS で接続可能となります。

Dovecot での認証方法を設定する

Dovecot ではデフォルトで動作しているシステムのアカウント ( /etc/passwd に登録されているユーザ、パスワード) での認証が可能です。(設定すればLDAPなどメール用のユーザデータベースも使えます。)

Dovecot で用いる認証方法は、dovecot.conf に以下のように設定します。

auth_mechanisms = plain

SSL/TLS を使った接続であれば、パスワードを特に暗号化しないで送信しても問題はないので、認証方法に PLAIN (平文によるパスワードの送信) を設定します。

メールの保存形式を設定する (mbox vs Maildir)

メールサーバ上でのメールの保存形式には mbox 形式と Maildir 形式がありますが、mbox 形式にするとメールクライアント側から IMAP でフォルダが削除できないという制約があるため、Maildir 形式を使うこととします。

各ユーザの Maildir に配送するための Postfix の main.cf の設定は以下となります。

home_mailbox = Maildir/

Dovecot 側では conf.d/10-mail.conf に設定します。

mail_location = maildir:~/Maildir