其中在整個一套郵件服務器中,默認信息傳輸都是明文傳輸的,所以這個在安全性上面就不是那么好。但是如果說一封郵件從發生到對方接受想要全程做到加密處理這個也是很難的。因為一封郵件從一個域轉到另外一個域服務器時很難做到加密,這屬於不同的域,有不同的人在管理,比如說從163發一封郵件到QQ郵箱。
但是如果在同一個域內保證郵件發送和接收的安全性,該如何做呢?其實也有一種機制就是S/MIME,提供用戶到用戶的郵件安全性。它能保證郵件發送加密同時郵件存儲在郵件服務器上也是加密存放,直到用戶取回到本地進行解密才可查看,在這期間任何人截取郵件都是不可看的,可以說是非常安全了。但是這種機制一般都是提供商業支持。
那么除了S/MIME這種機制,在我們可控范圍內可以做到郵件發送和接收時進行加密,如smtps是加密傳輸的smtp協議,工作在TCP/465端口;POP3s是加密傳輸的pop3協議,工作在TCP/995端口;以及IMAP4s是加密傳輸的imap4協議,工作在TCP/993端口;當然這只是能保證郵件從郵箱到本地是加密的,如郵件發送和存儲無法做到加密。也可以對webmail進行https傳輸,這些都可以在一定程度上做到郵件加密處理。
OpenSSL實現私有CA
CA服務器生成一對秘鑰並保存
[root@localhost ~]# openssl genrsa 1024 > /etc/pki/CA/private/cakey.pem
CA服務器生成自簽署證書
[root@localjost ~]# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 365 輸入國家名稱2位的代碼:cn 輸入所在省份的名稱:shanghai 輸入所在城市的名稱:shanghai 輸入公司的名稱:ywnds 輸入所在的部門:tech 輸入主機的名稱:ca.ywnds.com(此主機名要跟服務器的主機名保持一致;客戶端訪問主機時必須要通過這個主機名才能建立連接否則說證書不可信) 輸入E-mail:admin@ywnds.com
為CA創建一些目錄和文件
[root@localhost ~]# mkdir /etc/pki/CA/{certs,newcerts,crl} [root@localhost ~]# touch /etc/pki/CA/{index.txt,serial} [root@localhost ~]# echo 01 > /etc/pki/CA/serial
郵件服務器生成證書
[root@localhost ~]# mkdir /etc/dovecot/ssl [root@localhost ~]# openssl genrsa -out /etc/dovecot/ssl/dovecot.key 1024 [root@localhost ~]# opensslreq -new -key /etc/dovecot/ssl/dovecot.key -out /etc/dovecot/ssl/dovecot.csr [輸入的信息一定要跟CA輸入的信息一致因為我們創建的私有CA] 輸入國家名稱2位的代碼:cn 輸入所在省份的名稱:shanghai 輸入所在城市的名稱:shanghai 輸入公司的名稱:ywnds 輸入所在的部門:tech 輸入主機的名稱:mail.ywnds.com(此主機名要跟服務器的主機名保持一致;客戶端訪問主機時必須要通過這個主機名才能建立連接否則說證書不可信) 輸入E-mail:admin@ywnds.com 證書密碼:
在CA服務器簽署證書並發送回給郵件服務器
[root@localhost ~]# openssl ca -in /etc/dovecot/ssl/dovecot.csr -out /etc/dovecot/ssl/dovecot.crt -days 365
在CA服務器上查看簽署過后/etc/pki/CA下的文件發生的變化
[root@localhost ~]# cat /etc/pki/CA/index.txt [root@localhost ~]# cat /etc/pki/CA/serial
Dovecot開啟SSL
[root@localhost ~]# vim /etc/dovecot.conf protocols pop pop3 imap imap4 [root@localhost ~]# vim /etc/dovecot/conf.d/10-ssl.conf ssl = yes ssl_cert = /etc/dovecot/ssl/dovecot.crt ssl_key = /etc/dovecot/ssl/dovecot.key [root@localhost ~]# service dovecot restart
MUA連接郵件服務器注意事項:
1.把CA的證書cacert.pem下載到客戶端改名cacert.crt並安裝到根信任域。
2.客戶端連接pop3s服務器時POP3s會發來證書,此時CA證書cacert.crt會去驗證POP3證書,沒有問題就可以傳輸郵件。
3.MUA在連接POP3s服務器時要使用域名不能使用IP地址,因為要跟證書中的主機名對應,不然還是會不受信任,同時客戶端要能解析此域名。