Debian Squeeze+Exim4でセキュアなSMTPサーバーの設定に関しての顛末。
exim4のmianlog には以下のログが出てたり、
2013-02-20 00:00:00 TLS error on connection from zzz.zzz.zz [nnn.nnn.nnn.nnn] (gnutls_handshake): A TLS packet with unexpected length was received.
telnet で接続テストをしてみても、exim4からの応答が返って来なかったり、
$ telnet yyy.yyy.yy 587
Trying xxx.xxx.xxx.xxx...
Connected to yyy.yyy.yy.
Escape character is '^]'.
(この状態でダンマリ)
ネット上の情報を漁っていましたが中々どんぴしゃな状態の記事がありませんでした。
自分で試行錯誤もやりつつ、ネットを徘徊しつづけ4日目にようやく、同じ事象の解決方法を見つけました。
http://jlug.ml.debian.users.narkive.com/7iMXUX2y/exim4-25-smtp-auth
http://permalink.gmane.org/gmane.linux.debian.jp.user/16639
原因はとても明快で、submissionポートに対するSSL/TLSの設定で↓の行が不要とのこと。
tls_on_connect_ports = 587
トホトホ。
--
2013/4/17追記、多少訂正します。
submissionポートにはSSL/TLSの設定はできませんが、SMTP over SSLポート(465)では利用可能です。
※submissionポートの場合、STARTTLSで暗号化可能です。
よって、exim4.conf.template では、
tls_on_connect_ports = 465
daemon_smtp_ports = smtp:587:465
とし、/etc/default/exim4 で、
SMTPLISTENEROPTIONS='-oX smtp:submission:465 -oP /var/run/exim4/exim.pid'
と設定すれば、暗号化(SSL)されたメールの送信が可能になります。
※iptables等設定されている場合は忘れずに対象ポートの開放をしましょう。
また、固定IPアドレスを持っていない場合でも、
update-exim4.conf.conf で設定するリレー関連の設定はすべて空の状態で大丈夫です。
dc_relay_domains=''
dc_relay_nets=''
デフォルトの設定で、外部リレーは認証済みのアカウント以外はできなくなっています。