Postfix + Dovecot によるメールサーバの構築
MacOS X Server でもメールサーバが Cyrus IMAP Server から Dovecot に切り替わるなど、最近のIMAPサーバの主流は Dovecot になってきました。
Postfix と Dovecot を使って Gmail のような SSL/TLS で送受信が可能なメールサーバを構築します。
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