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