SMTPS/SMTP over SSL対応
Category : サーバ管理日記
Published by M-naka on 2012/2/18
そういえばすっかり忘れていたSMTPS/SMTP over SSL対応
secgw.mythril.ne.jp用にSSLサーバ証明書を取得したので、対応させてみた。

やり方はあまり難しくない。


1./etc/postfix/main.cfの修正

 下記を/etc/postfix/main.cfに追記する。CAfileはFreeRADIUS用にルート証明書と中間証明書を結合させたファイルを使っているためこの指定にしている。理由はFreeRADIUSと同じで、中間証明書を独立指定できないから。あとでリネームするか……。

 #SSL/TLS
 smtpd_tls_security_level = may
 smtpd_tls_cert_file = /etc/pki/tls/certs/secgw.mythril.ne.jp.crt
 smtpd_tls_key_file = /etc/pki/tls/private/secgw.mythril.ne.jp.key.nopasswd
 smtpd_tls_CAfile = /etc/pki/tls/certs/freeradius.pem
 smtpd_tls_CApath = /etc/pki/tls/certs
 smtpd_tls_loglevel = 1
 smtpd_tls_session_cache_database = btree:/etc/postfix/smtpd_scache
 tls_random_source = dev:/dev/urandom
 tls_daemon_random_source = dev:/dev/urandom


2./etc/postfix/master.cfの修正

 デフォルトでコメントアウトされている下記を有効にする。ちなみにこれはSMTPS対応の設定で、SMTP over SSL限定対応の場合はコメントアウトされたままでよい。

 smtps inet n - n - - smtpd
 -o smtpd_tls_wrappermode=yes
 -o smtpd_sasl_auth_enable=yes
 -o smtpd_client_restrictions=permit_sasl_authenticated,reject


3.iptablesで465/tcpを開口、ルータ設定の修正

 いつものやつ。SMTPSはデフォルトで465/tcpを使う。ルータのポートフォワード設定も併せて修正。


 あとはpostfixとiptablesに再起動を掛ければ完了。

 メールクライアント側はSMTPサーバとしてsecgw.mythril.ne.jp:465をSSL/TLS付きで指定すればよい。個人的にはThunderbirdで動作確認済み。当然ながら指定するSMTPサーバホスト名とSSLサーバ証明書上のFQDNが一致していないと警告が出るので要注意。

 ちなみにSMTP over SSLとSMTPSの違いは、

 SMTP over SSL:25/tcpで待ち受けがデフォルト。平文のSMTPコネクションの他、STARTTLSでSSL/TLSでの暗号化通信も使える
 SMTPS:465/tcpで待ち受けがデフォルト。SSL/TLSでの暗号化通信しか使えない

というもの。SMTPというレガシープロトコルの互換性を重視したのがSMTP over SSL、互換性よりセキュリティを重視したのがSMTPS。