メールサーバをチューン

  • 4
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

※大幅に改訂しました

想定環境

パッケージ管理でインストールできるソフト

  • Postfix2.x
  • Dovecot2.x

基本設定

送受信がSMTP/POPでできるレベル

main.cf
myhostname = hostname.doma.in
mydomain = doma.in
myorigin = $myhostname
mydestination = $myhostname, localhost.$mydomain, $mydomain
relay_domains = $mydestination
home_mailbox = Maildir/
smtpd_banner = $myhostname ESMTP
html_directory = no
/etc/dovecot/10-mail.conf
mail_location = maildir:~/Maildir

基本的な設定。Maildir形式あたりはデファクトスタンダード

TLSの導入

送信サーバは993、受信サーバは995番で送受信できるようにする。ファイアーウォールなどで該当ポートをブロックしていた場合、解除する。
証明書が必要になるので用意する。

main.cf
smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/httpd/conf/ssl.crt/server.crt
smtpd_tls_key_file  = /etc/httpd/conf/ssl.key/server.key
master.cf
smtps     inet  n       -       n       -       -       smtpd
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes

submission inet n       -       n       -       -       smtpd
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
dovecot.conf
protocols = pop3
ssl = yes
/etc/dovecot/10-master.conf
service pop3-login {
  inet_listener pop3 {
    port = 110
  }
  inet_listener pop3s {
    port = 995
    ssl = yes
  }
}
/etc/dovecot/10-ssl.conf
ssl_cert = </etc/httpd/conf/ssl.crt/server.crt
ssl_key  = </etc/httpd/conf/ssl.key/server.key

SMTP-SASL認証

SMTP送信時に認証されたユーザ意外は弾く。下記設定では認証ユーザ情報をDBファイルに外置きするsasldb形式とする。(POPは普通にPam認証なので俺は注意すること。)

main.cf
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_recipient_restrictions =
    permit_mynetworks,
    permit_sasl_authenticated,
    reject_unauth_destination
smtpd_sasl_local_domain = $myhostname
broken_sasl_auth_clients = yes
/etc/sasl2/smtpd.conf
pwcheck_method: auxprop
mech_list: cram-md5 digest-md5 plain login

SASLDB操作

sasldblistusers2 ユーザ一覧を見る。
saslpasswd2 ユーザの追加・削除