Step.1 產生 SMTP 憑證
產生 certificate files for TLS
# cd /etc/postfix
# openssl req -new -x509 -nodes -out smtpd.pem -keyout smtpd.pem -days 3650
照著提示輸入資料即可
編輯 /etc/postfix/main.cf 加入下列
QUOTE:
# TLS
smtp_use_tls = yes
smtpd_use_tls = yes
smtpd_tls_auth_only = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_key_file = /etc/postfix/smtpd.pem
smtpd_tls_cert_file = /etc/postfix/smtpd.pem
smtpd_tls_CAfile = /etc/postfix/smtpd.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
說明:
loglevel = 1 會紀錄 tls log , 設定 2 以上可以看到更詳細的 debug log
CAfile 為要提供 CA Server 的憑證,這邊引用 cert file 的路徑
smtpd_tls_auth_only 強制 SASL 走 TLS 協定將所有資訊加密
重新啟動 postfix
# service postfix restart
測試是否生效 :
telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 mail.adj.com.tw ESMTP Postfix
ehlo localhost
250-mail.adj.com.tw
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS => 支援TLS加密了
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
可以看到 mail server 提供 STARTTLS 服務,而且因為強制 SASL TLS 的關係
所以 AUTH PLAIN LOGIN 及 AUTH=PLAIN LOGIN 已經不見囉!!
參考資料:
http://blog.xuite.net/magic20095/wretch/111940549-%E8%A8%AD%E5%AE%9APOP3%E5%8F%8ASMTP+%E6%94%AF%E6%8F%B4TLS