2009年12月 9日

[postfix-jp: 3674] Re:relayhost で SMTP over SSL/TLS は使えますか?(OP25B 対策)

竹内です。

3点ほど疑問があるのですが(文末参照)、
荻野様のご教示により、postfix + cyrus-sasl + stunnel で postfix の
relayhost から SMTP over SSL/TLS にて配送が出来るようになったので、手順
をまとめてみました。ご笑覧ください。

■ postfix の relayhost に SMTP over SSL/TLS でメールを配送する


下記を使用

FreeBSD 8.0
Postfix 2.6.5
cyrus-sasl-2.1.23
stunnel-4.28

ISP 朝日ネット http://asahi-net.jp)
SMTP over SSL/TLS 専用送信サーバー
mailssl.asahi-net.or.jp
STARTTLS コマンドには未対応。なお mail.asahi-net.or.jp でも可)

FreeBSD 8.0, postfix, cyrus-sasl はインストール・動作済みとする。

■ stunnel インストール・設定

# cd /usr/ports/security/stunnel
# make install clean
(ユーザー stunnel, グループ stunnel が自動的に作成される)

chroot 用にディレクトリ作成

# cd /var/run
# mkdir stunnel
# chown stunnel:stunnel stunnel
# chmod 700 stunnel

/usr/local/etc/stunnel/stunnel.conf を作成
-----------ここから------------------
; Protocol version (all, SSLv2, SSLv3, TLSv1)
sslVersion = TLSv1

; Some security enhancements for UNIX systems - comment them out on
Win32
chroot = /var/run/stunnel
setuid = stunnel
setgid = stunnel
; PID is created inside the chroot jail
pid = /stunnel.pid

; Some performance tunings
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1

; Some debugging stuff useful for troubleshooting(しばらく様子を見て、
問題がなければ削除予定)
debug = 7
output = /var/log/stunnel.log

; Use it for client mode
client = yes

; Service-level configuration

[ssmtp]
accept = localhost:10465
connect = mailssl.asahi-net.or.jp:465
------ここまで------------------------

/usr/local/etc/rc.d/stunnel を編集。下記をコメントアウト
---------------------------------------------------------
コメントアウト : ${stunnel_pidfile="/var/run/${name}.pid"}
コメントアウト pidfile=${stunnel_pidfile}
---------------------------------------------------------

/etc/rc.conf を編集。下記を追加
-----------------------------------------
stunnel_enable="YES"
stunnel_pid_file="/var/run/stunnel/stunnel.pid"
-----------------------------------------

動作テスト

# /usr/local/etc/rc.d/stunnel start

# ps axww
出力例
15329 ?? Is 0:00.00 /usr/local/bin/stunnel /usr/local/etc/stunnel/
stunnel.conf
15324 0 I 0:00.00 /usr/local/bin/stunnel /usr/local/etc/stunnel/
stunnel.conf
15325 0 I 0:00.00 /usr/local/bin/stunnel /usr/local/etc/stunnel/
stunnel.conf
15326 0 I 0:00.00 /usr/local/bin/stunnel /usr/local/etc/stunnel/
stunnel.conf
15327 0 I 0:00.00 /usr/local/bin/stunnel /usr/local/etc/stunnel/
stunnel.conf
15328 0 I 0:00.00 /usr/local/bin/stunnel /usr/local/etc/stunnel/
stunnel.conf

# telnet localhost 10465
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mailssl.asahi-net.or.jp ESMTP Postfix
ehlo mailssl.asahi-net.or.jp <-- この行を入力
250-mailssl.asahi-net.or.jp
250-PIPELINING
250-SIZE
250-ETRN
250-AUTH PLAIN LOGIN DIGEST-MD5 CRAM-MD5
250-AUTH=PLAIN LOGIN DIGEST-MD5 CRAM-MD5
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
quit <-- この行を入力
221 2.0.0 Bye
Connection closed by foreign host.

■ postfix 設定
main.cf に下記を追加
----------------------------------------------------------------
relayhost = [localhost]:10465
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/usr/local/etc/postfix/isp_passwd
smtp_sasl_security_options = noanonymous,noplaintext
smtp_sasl_mechanism_filter = cram-md5,digest-md5
----------------------------------------------------------------

/usr/local/etc/postfix/isp_passwd の中身
---------------------------------
[localhost]:10465 isp_id:password
---------------------------------

# postmap isp_passwd
# chmod 600 isp_passwd
してあります。

■ 動作確認

# mail example@xxxxx
して、
/var/log/maillog
/var/log/stunnel.log
などを参照して、正しく配送されているか確認する。

■ 現在の疑問点(調査中)

(1)
/usr/local/etc/stunnel/stunnel.conf で下位互換性はあるだろうと、TLSv1 を
指定しているが良いのか?

; Protocol version (all, SSLv2, SSLv3, TLSv1)
sslVersion = TLSv1

(2)
/usr/local/etc/postfix/main.cf で telnet テストで 250-AUTH PLAIN LOGIN
DIGEST-MD5 CRAM-MD5 と出ているが、認証の優先順位が分からないためを cram-
md5, digest-md5 を指定しているが良いのか?

smtp_sasl_mechanism_filter = cram-md5,digest-md5

(3)
実際にメールを配送したとき、/var/log/stunnel.log に

2009.12.09 13:08:40 LOG7[15671:675709888]: SSL alert (write): warning:
close notify

の warning が出ているが、問題ないのか?

SSL connected: new session negotiated
2009.12.09 13:08:40 LOG6[15671:675709888]: Negotiated ciphers: RC4-SHA
SSLv3 Kx=
RSA Au=RSA Enc=RC4(128) Mac=SHA1
2009.12.09 13:08:40 LOG7[15671:675709888]: Socket closed on read
2009.12.09 13:08:40 LOG7[15671:675709888]: SSL write shutdown
2009.12.09 13:08:40 LOG7[15671:675709888]: SSL alert (write): warning:
close not
ify
2009.12.09 13:08:40 LOG6[15671:675709888]: SSL_shutdown successfully
sent close_
notify
2009.12.09 13:08:40 LOG3[15671:675709888]: SSL_read: Connection reset by
peer (5
4)
2009.12.09 13:08:40 LOG5[15671:675709888]: Connection reset: 804 bytes
sent to S
SL, 621 bytes sent to socket
2009.12.09 13:08:40 LOG7[15671:675709888]: ssmtp finished (0 left)

_______________________________________________
Postfix-jp-list mailing list
Postfix-jp-list@xxxxx
http://lists.sourceforge.jp/mailman/listinfo/postfix-jp-list


投稿者 xml-rpc : 2009年12月 9日 13:53
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/91273
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。