メールサーバーとメールクライアント間の暗号化は、証明書を用意したり色々設定を調整したりと少々面倒ですが、メールサーバーからの送信に関しては、容易に実装できます。
※メールサーバーへの受信に関しては、メールサーバーとメールクライアント間の暗号化と同様の作業が必要です。
環境
- CentOS 6.3
- Postfix 2.6.6
設定
- /etc/postfix/main.cfに以下の内容を追記します。
smtp_tls_CAfile = /etc/pki/tls/cert.pem smtp_tls_security_level = may smtp_tls_loglevel = 1
「smtp_tls_security_level = may」のみが必須で、後は任意になります。
smtp_tls_security_level = may・・・宛先のメールサーバーが対応している場合には、暗号化するという設定です。
smtp_tls_loglevel = 1・・・暗号化のログを記録したい場合に設定します。(0~4の間で指定)
smtp_tls_CAfile = /etc/pki/tls/cert.pem・・・暗号化に使用する証明書の検証をしたい場合に設定します。 - service postfix restartとかで、Postfixを再起動します。
- Gmailなどにテストメールを送り、メールログで動作を確認します。(smtp_tls_loglevelを「1」以上で指定する必要があります)
▼smtp_tls_CAfileを指定している場合Apr 5 17:06:13 mail postfix/smtp[11330]: setting up TLS connection to gmail-smtp-in.l.google.com[74.125.203.26]:25 Apr 5 17:06:13 mail postfix/smtp[11330]: Trusted TLS connection established to gmail-smtp-in.l.google.com[74.125.203.26]:25: TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)
▼smtp_tls_CAfileを指定していない場合
※「certificate verification failed」や「Untrusted TLS connection established」などのエラーが記録されますが、(「smtp_tls_security_level」の設定次第ですが)暗号化自体に問題はありません。Apr 5 13:00:45 mail postfix/smtp[4834]: setting up TLS connection to gmail-smtp-in.l.google.com[74.125.204.26]:25 Apr 5 13:00:45 mail postfix/smtp[4834]: certificate verification failed for gmail-smtp-in.l.google.com[74.125.204.26]:25: untrusted issuer /C=US/O=Equifax/OU=Equifax Secure Certificate Authority Apr 5 13:00:45 mail postfix/smtp[4834]: Untrusted TLS connection established to gmail-smtp-in.l.google.com[74.125.204.26]:25: TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)
Gmail宛に送信したメールを確認すると、赤い鍵マークも消えているし、メールヘッダーを確認すると、「(version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);」というメッセージが追加されていました。