CentOS Postfix/dovecot SSLv3 無効化

SSLはすでに脆弱な通信方法であり、TLSに通信方法が移行しています。
Webサーバーである Apache httpd や Nginx では、SSLを無効にしていても、メールシステムで使用する Postfix や DovecotでSSLが有効になったままの環境があります。

Postfix(SMTP)やDovecot(POP3/IMAP)で、SSLを無効にするには以下の操作を実施します。

Postfix SSLの無効化

PostfixでSSL通信を無効にするには、以下の設定を追加します。

# vi /etc/postfix/main.cf
smtp_tls_protocols = !SSLv2, !SSLv3
smtp_tls_mandatory_protocols = !SSLv2, !SSLv3
smtpd_tls_protocols = !SSLv2, !SSLv3
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3

設定が完了したら、Postfixを再起動してください。

systemctl restart portfix

Postfix SSL無効化の確認

設定を有効にしたら、以下のコマンドでSSL通信ができないことを確認します。

# openssl s_client -connect localhost:465 -ssl3
# openssl s_client -connect localhost:587 -starttls smtp -ssl3
# openssl s_client -connect localhost:25 -starttls smtp -ssl3

コマンドを実行して「ssl handshake failure」となればSSLが無効化されていることになります。
証明書の内容が表示された場合には、SSL通信が無効化されていませんので、設定を確認してください。

Dovecot SSLの無効化

同様に Dovecot のSSLを無効にするには、以下の設定を変更します。

# vi /etc/dovecot/conf.d/10-ssl.conf
ssl_protocols = !SSLv2 !SSLv3

設定が完了したら、Dovecotを再起動して設定を有効にします。

# systemctl restart dovecot

Dovecot SSL通信 無効化の確認

設定を有効にしたら、以下のコマンドでSSL通信ができないことを確認します。

# openssl s_client -connect localhost:993 -ssl3
# openssl s_client -connect localhost:995 -ssl3
# openssl s_client -connect localhost:110 -starttls pop3 -ssl3
# openssl s_client -connect localhost:143 -starttls imap -ssl3

コマンドを実行して「ssl handshake failure」となればSSLが無効化されていることになります。
証明書の内容が表示された場合には、SSL通信が無効化されていませんので、設定を確認してください。

以上の作業で Postfix ならびに Dovecot のSSLv2.0とSSLv3.0の通信を無効にすることができます。