Postfixで、SASLを使おう。
SASLとは、
http://www.ipa.go.jp/security/rfc/RFC2222JA.html
文章だけでは理解するのに一苦労。
まず、Postfixがdovecotを使ったSASLに対応しているかを確認。
$ postconf -a
cyrus
dovecot
postconfのマニュアルを一部コピっとく。
-a List the available SASL server plug-in types. The SASL plug-in
type is selected with the smtpd_sasl_type configuration parame-
ter by specifying one of the names listed below.
cyrus This server plug-in is available when Postfix is built
with Cyrus SASL support.
dovecot
This server plug-in uses the Dovecot authentication
server, and is available when Postfix is built with any
form of SASL support.
This feature is available with Postfix 2.3 and later.
ということで、dovecotが表示されたので、対応可能ということで。
Dovecot SASLを使う場合は、Cyrus-SASLを停止させて問題ない。
$ sudo service saslauthd stop
saslauthd を停止中: [ OK ]
自動起動もしないように変更。
$ sudo chkconfig saslauthd off
Postfixの設定に追記して、SASLを可能に変更。
$ sudo vi /etc/postfix/main.cf
以下を追加する。
smtpd_sasl_auth_enable = yes
smtpd_sasl_authenticated_header = no
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
smtpd_recipient_restrictions =
permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
broken_sasl_auth_clients = no
broken_sasl_auth_clients
broken_sasl_auth_clients (デフォルト: no)
古いバージョンの AUTH コマンド (RFC 2554) を実装した SMTP クライアントとの相互運用性を有効にします。このようなクライアントには MicroSoft Outlook Express バージョン 4 や MicroSoft Exchange バージョン 5.0 といった例があります。
標準的でない方法の AUTH サポートを Postfix に案内させるには、 “broken_sasl_auth_clients = yes” を指定します。
SASLとは関係ないが、セキュリティ上、以下の設定も追加。
disable_vrfy_command = yes
smtpd_helo_required = yes
次に、Dovecot側の設定を変更。
$ sudo vi /etc/dovecot/conf.d/10-master.conf
unix_listener部分を変更。
service auth {
# auth_socket_path points to this userdb socket by default. It’s typically
# used by dovecot-lda, doveadm, possibly imap process, etc. Its default
# permissions make it readable only by root, but you may need to relax these
# permissions. Users that have access to this socket are able to get a list
# of all usernames and get results of everyone’s userdb lookups.
unix_listener auth-userdb {
#mode = 0600
#user =
#group =
}
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
# Auth process is run as this user.
#user = $default_internal_user
}
続いて以下のファイルも編集。
$ sudo vi /etc/postfix/master.cf
コメントを外す!
submission inet n – n – – smtpd
# -o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING
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
最後に、サーバーを再起動。
$ sudo service dovecot restart
Dovecot Imap を停止中: [ OK ]
Dovecot Imap を起動中: [ OK ]
$ sudo service postfix restart
postfix を停止中: [ OK ]
postfix を起動中: [ OK ]
次は、STLかな。