目標將 Mail service 中都加上 SSL 連線,並將協定改為以下
SMTP + TLS
IMAPS
POP3S
Postfix smtp + dovecot 的建立可以參考小弟之前的文章
在之前都是採用未加密的形式,但 SSL 漸漸已經被重視而且列為標準需求,在此紀錄將既有的 Mail Server 升級為 SSL 加密郵件伺服器
Postfix SMTP + TLS
setp.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 # 私鑰
setp.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 協定將所有資訊加密
setp.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
setp.1 設定 dovecot.conf,將協定都改為 SSL 加密
shell# /etc/dovecot/dovecot.conf
protocols = imaps pop3s
setp.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。
setp.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 指南
Orignal From: Postfix SMTP + Dovecot 加密 SSL / TLS
沒有留言:
張貼留言