Postfix+Dovecot+SMTP-Auth
2011年4月3日Postfix+DovecotでSMTP-Authを実装した時のメモ。
要件:
・よくある「Postfix+SASL」では、SMTP用アカウントとPOP/IMAP用アカウントが別管理となる為、Dovecotの機能を利用したSMTP-Authを実装する
・Dovecot用アカウントでは、仮想メールボックスを利用する(システムアカウントを作成しない)
・TSL/POS/IMAPSなどのSSLは利用しない
前提:
- Dovecot/Postfixはインストール済み
- デフォルトのMTAは、Postfixになっている
- 各サービスは自動起動設定されている
1. ユーザ/グループの作成
[shell]
$ groupadd -g 10000 vmailuser
$ useradd -u 10000 -g 10000 -d /var/mail/vmail -s /sbin/nologin vmailuser
$ id vmailuser
uid=10000(vmailuser) gid=10000(vmailuser) 所属グループ=10000(vmailuser)
[shell]
$ sudo cat /etc/dovecot.conf | grep -v '^\s*#' | grep -v "^$"
protocols = imap pop3
ssl_disable = yes
mail_location = maildir:~/Maildir
protocol imap {
}
protocol pop3 {
}
protocol lda {
postmaster_address = postmaster@example.com
}
auth_verbose = yes
auth_debug = yes
auth_debug_passwords = yes
auth default {
mechanisms = plain login
passdb pam {
}
passdb passwd-file {
args = /etc/dovecot-passwd
}
userdb passwd {
}
userdb passwd-file {
args = /etc/dovecot-passwd
}
user = root
socket listen {
client {
path = /var/spool/postfix/private/auth
mode = 0660
user = postfix
group = postfix
}
}
}
dict {
}
plugin {
}
5. postfix(main.cf)へ追記
[shell]
$ sudo vim /etc/postfix/main.cf
#—————————————————————-
# SMTP-Auth
#—————————————————————-
# SASL認証
#
smtpd_sasl_auth_enable = yes
smtpd_sasl_path = private/auth
smtpd_sasl_type = dovecot
# sasl認証に対応していないメーラは拒否
#
#broken_sasl_auth_clients = yes
# クライアントに対しての認証設定
#
#smtpd_sasl_security_options = noanonymous, noplaintext
# 認証に使用するサーバを指定
#
#smtpd_sasl_local_domain = $myhostname
# メール中継設定
#
smtpd_recipient_restrictions =~
permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination
6. 確認
1. dovecot(imap)へログインが可能
2. サーバから、内->内へのメール配信が可能
3. サーバから、内->外へのメール配信が可能
4. クライアントから、内->内へのメール配信が可能
5. クライアントから、内->外へのメール配信が可能