引用之前發表的 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
參考資料:
HowTos Postfix/dovecot 的 SASL 與 SSL/TLS 指南
[…] Mail Server 換掉並重新規劃,繼上一篇 Postfix SMTP + Dovecot 加密 SSL / TLS 之後,這篇的目的要將 Mail Server 帳號整合於 […]
[…] Postfix SMTP + Dovecot 加密 SSL / TLS […]