debian postfix + dovecot + sasl(PAM)
postfix + dovecot をインストールしている前提。
http://d.hatena.ne.jp/kt_hiro/20120317/1331972844
OSユーザのアカウントでSMTP認証させる方法。
sasl
・インストール
# apt-get install sasl2-bin libsasl2-modules libsasl2-2 libsasl2-dev
・postfixとの連携設定
※OPTIONS の設定は、Postfix が chroot環境で動作している場合は必須。
chrootかどうかは、master.cf の smtp行の第5カラムの設定を確認する。
"-" だったら chroot、"n"だったら chrootではない。
# vi /etc/default/saslauthd START=yes MECHANISMS="pam" OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd"
・OPTIONS で指定したディレクトリの作成(chroot環境で動かす場合のみ)
# mkdir -p /var/spool/postfix/var/run/saslauthd
・起動
# /etc/init.d/saslauthd restart
postfix
・設定追加
# vi /etc/postfix/main.cf smtpd_sasl_auth_enable = yes smtpd_sasl_local_domain = $myhostname smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination smtpd_sasl_security_options = noanonymous
・認証方法の設定
# vi /etc/postfix/sasl/smtpd.conf pwcheck_method: saslauthd mech_list:plain login
・sasl認証を有効にする
※main.cf で有効にしていれば不要かも
# vim /etc/postfix/master.cf smtp inet n - - - - smtpd -o smtpd_sasl_auth_enable=yes
・起動
# /etc/init.d/postfix restart
・動作確認
# telnet localhost 25 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 mail.hirohiro.net ESMTP Postfix (@@DISTRO@@) EHLO localhost 250-mail.hirohiro.net 250-PIPELINING 250-SIZE 10485760 250-VRFY 250-ETRN 250-AUTH LOGIN PLAIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN AUTH LOGIN 334 VXNlcm5hbWU6 **** ←BASE64でエンコードしたユーザ名を入力 334 UGFzc3dvcmQ6 **** ←BASE64でエンコードしたパスワードを入力 235 2.7.0 Authentication successful
# perl -MMIME::Base64 -e 'print encode_base64("username");' # perl -MMIME::Base64 -e 'print encode_base64("password");'
※AUTH LOGIN の後の応答はBASE64でエンコードされている。
334 VXNlcm5hbWU6 → 334 Username:
334 UGFzc3dvcmQ6 → 334 Password: