Postfix SMTP + Dovecot 加密 SSL / TLS

2014-12-07 Postfix

引用之前發表的 Postfix 建立文章裡,此篇將再把所有通訊端口都進行加密來保證信件通訊安全。

 

目標將 Mail service 中都加上 SSL 連線,並將協定改為以下

SMTP + TLS

IMAPS

POP3S

 

Postfix smtp + dovecot 的建立可以參考小弟之前的文章

 

在之前都是採用未加密的形式,但 SSL 漸漸已經被重視而且列為標準需求,在此紀錄將既有的 Mail Server 升級為 SSL 加密郵件伺服器

 

 

 

Postfix SMTP + TLS

step.1 產生 SMTP 憑證,再產生 key 之前你必須擁有 crypto-utils

shell# genkey --day 3650 shazimail.twbbs.org



建立的憑證位置

/etc/pki/tls/certs/shazimail.twbbs.org.cert # 公鑰
/etc/pki/tls/private/shazimail.twbbs.org.key # 私鑰

 

 

step.2 設定 main.cf,將 SASL 驗證工作階段加密

shell# vim /etc/postfix/main.cf

smtpd_use_tls = yes
smtpd_tls_auth_only = yes
smtpd_tls_key_file = /etc/pki/tls/private/shazimail.twbbs.org.key
smtpd_tls_cert_file = /etc/pki/tls/certs/shazimail.twbbs.org.crt
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_CAfile = $smtpd_tls_cert_file
smtpd_tls_session_cache_timeout = 3600s

\\ loglevel = 1 會紀錄 tls log , 設定 2 以上可以看到更詳細的 debug log

\\ CAfile 為要提供 CA Server 的憑證,這邊引用 cert file 的路徑

\\ smtpd_tls_auth_only 強制 SASL 走 TLS 協定將所有資訊加密

 

step.3 reload postfix config

shell# postfix reload

 

測試 & 檢測 smtp tls

$ telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 shazimail.twbbs.org ESMTP Postfix
ehlo localhost
250-shazi.twbbs.org
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
quit
221 2.0.0 Bye
Connection closed by foreign host.

 

可以看到 mail server 提供 STARTTLS 服務,而且因為強制 SASL TLS 的關係

所以 AUTH PLAIN LOGIN 及 AUTH=PLAIN LOGIN 已經不見囉!!

 

 

Dovecot 設定 TLS

step.1 設定 dovecot.conf,將協定都改為 SSL 加密

shell# /etc/dovecot/dovecot.conf

protocols = imaps pop3s

 

 

step.2 設定 10-ssl.conf,設定 SSL 以及憑證

vim /etc/dovecot/conf.d/10-ssl.conf

ssl = yes
ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key = </etc/pki/dovecot/private/dovecot.pem

※ pem 的部分一樣自行建立憑證,若是測試用 dovecot 已經有預設提供 pem。

 

step.3 restart dovecot

shell# service dovecot restart

 

測試 & 檢查

shell# netstat -tunpl | grep dovecot

tcp        0      0 0.0.0.0:993                 0.0.0.0:*                   LISTEN      19154/dovecot
tcp        0      0 0.0.0.0:995                 0.0.0.0:*                   LISTEN      19154/dovecot
tcp        0      0 :::993                      :::*                        LISTEN      19154/dovecot
tcp        0      0 :::995                      :::*                        LISTEN      19154/dovecot

可以看到已經 Listen 995 & 993 port

 

用 MUA 軟體來登入檢查 maillog,第一行最尾端應該要是 TLS 唷!!

Dec  7 06:03:14 localhost dovecot: pop3-login: Login: user=<eric>, method=PLAIN, rip=114.11.12.11, lip=192.168.121.10, mpid=19169, TLS
Dec  7 06:03:14 localhost dovecot: pop3(eric): Disconnected: Logged out top=0/0, retr=0/0, del=0/8, size=8027

 

 

 

MUA 端的設定 ( Outlook、Thunderbird )

 

Thunderbird:

「編輯」 > 「帳戶設定」,然後在左邊面版選取郵件帳戶的「伺服器設定」。在「伺服器設定」部份,選取「使用 SSL 安全連線」。請留意連接埠現在應該變為 993 或 995,分別對應 IMAPS 或 POP3S。

 

MS Outlook 2010 :

內寄伺服器走 POP3 就必須將 port 改為 995,並且勾選「此伺服器需要加密連線 (SSL)」 ( IMAPS 就為 993 )

外寄伺服器 25 port 不變,但必須將加密類型改為 TLS

2014-12-07_055228

 

 

 

 

 

參考資料:

HowTos Postfix/dovecot 的 SASL 與 SSL/TLS 指南

Postfix TLS Support

2 Replies to “Postfix SMTP + Dovecot 加密 SSL / TLS”

  1. […] Mail Server 換掉並重新規劃,繼上一篇 Postfix SMTP + Dovecot 加密 SSL / TLS 之後,這篇的目的要將 Mail Server 帳號整合於 […]

  2. […] Postfix SMTP + Dovecot 加密 SSL / TLS […]

給 Mr. 沙先生一點建議

彙整

分類

展開全部 | 收合全部

License

訂閱 Mr. 沙先生 的文章

輸入你的 email 用於訂閱