怎么利用SSL/TLS保護(hù)你的Linux郵件服務(wù)

這篇文章給大家分享的是有關(guān)怎么利用SSL/TLS保護(hù)你的Linux郵件服務(wù)的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。

專(zhuān)注于為中小企業(yè)提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)阜新免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了數(shù)千家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

通過(guò)理解安全證書(shū)來(lái)保護(hù)你的 Linux 郵件服務(wù)。

通常,不管你是通過(guò)簡(jiǎn)單郵件傳輸協(xié)議Simple Mail Transport Protocol(SMTP)或者互聯(lián)網(wǎng)消息訪問(wèn)協(xié)議Internet Message Access Protocol(IMAP)或郵局協(xié)議Post Office Protocol(POP)發(fā)送或者接受郵件,郵件服務(wù)默認(rèn)都是以無(wú)保護(hù)的明文來(lái)傳輸數(shù)據(jù)。近來(lái)隨著數(shù)據(jù)加密成為越來(lái)越多程序的共識(shí),你需要安全套接層Secure Sockets Layer/傳輸層安全性Transport Layer Security(SSL/TLS)的安全證書(shū)來(lái)保護(hù)你的郵件服務(wù)。

首先,快速回顧一下郵件服務(wù)和協(xié)議的基本流程。郵件通過(guò) SMTP 從 TCP 端口 25 發(fā)出。這個(gè)協(xié)議依靠 DNS郵件交換服務(wù)器Mail eXchanger(MX)記錄的地址信息來(lái)傳輸郵件。當(dāng)郵件到達(dá)郵件服務(wù)器后,可以被以下兩種服務(wù)中的任意一種檢索:使用  TCP 端口 143 的 IMAP,或者使用 TCP 端口 110 的 POP3(郵局協(xié)議第 3  版)。然而,以上服務(wù)都默認(rèn)使用明文傳輸郵件和認(rèn)證信息。這非常的不安全!

為了保護(hù)電子郵件數(shù)據(jù)和認(rèn)證,這些服務(wù)都增加了一個(gè)安全功能,使它們可以利用 SSL/TLS 證書(shū)對(duì)數(shù)據(jù)流和通訊進(jìn)行加密封裝。SSL/TLS 是如何加密數(shù)據(jù)的細(xì)節(jié)不在本文討論范圍,有興趣的話可以閱讀 Bryant Son 關(guān)于互聯(lián)網(wǎng)安全的文章了解更多細(xì)節(jié)。概括的說(shuō),SSL/TLS 加密是一種基于公鑰和私鑰的算法。

通過(guò)加入這些安全功能后,這些服務(wù)將監(jiān)聽(tīng)在新的 TCP 端口:

服務(wù)默認(rèn) TCP 端口SSL/TLS 端口
SMTP25587
IMAP143993
POP3110995

生成 SSL/TLS 證書(shū)

OpenSSL 可以生成免費(fèi)的 SSL/TLS 證書(shū),或者你也可以從公共證書(shū)頒發(fā)機(jī)構(gòu)Certificate Authoritie(CA)購(gòu)買(mǎi)。過(guò)去,生成自簽發(fā)證書(shū)十分簡(jiǎn)單而且通用,但是由于安全被日益重視,大部分的郵件客戶端是不信任自簽發(fā)證書(shū)的,除非手動(dòng)設(shè)置。

如果你只是自己使用或者做做測(cè)試,那就使用自簽發(fā)證書(shū)省點(diǎn)錢(qián)吧。但是如果很多人或者客戶也需要使用的話,那最好還是從受信任的證書(shū)頒發(fā)機(jī)構(gòu)購(gòu)買(mǎi)。

不管是哪種情況,開(kāi)始請(qǐng)求新證書(shū)的過(guò)程是使用 Linux 系統(tǒng)上的 OpenSSL 工具來(lái)創(chuàng)建一個(gè)證書(shū)簽發(fā)請(qǐng)求Certificate Signing Request</ruby(CSR):

$ openssl req -new -newkey rsa:2048 -nodes -keyout mail.mydomain.key -out mail.mydomain.csr

這個(gè)命令會(huì)為你想保護(hù)的服務(wù)同時(shí)生成一個(gè)新的 CSR 文件和一個(gè)私匙。它會(huì)詢問(wèn)你一些證書(shū)相關(guān)的問(wèn)題,如:位置、服務(wù)器的完全合規(guī)域名Fully Qualified Domain Name(FQDN)、郵件聯(lián)系信息等等。當(dāng)你輸入完這些信息后,私鑰和 CSR 文件就生成完畢了。

如果你想生成自簽發(fā)證書(shū)

如果你想要生成自簽發(fā)證書(shū)的話,在運(yùn)行以上 CSR 命令之前,你必須先創(chuàng)建一個(gè)自己的根 CA。你可以通過(guò)以下方法創(chuàng)建自己的根 CA。

$ openssl genrsa -des3 -out myCA.key 2048

命令行會(huì)提示你輸入一個(gè)密碼。請(qǐng)輸入一個(gè)復(fù)雜點(diǎn)的密碼而且不要弄丟了,因?yàn)檫@將會(huì)是根 CA 私鑰的密碼,正如其名稱(chēng)所示,它是你的證書(shū)中所有信任關(guān)系的根。

接下來(lái),生成根 CA 證書(shū):

$ openssl req -x509 -new -nodes -key myCA.key -sha256 -days 1825 -out myCA.pem

在回答完一些問(wèn)題后,你就擁有一個(gè)有效期為 5 年的根 CA 證書(shū)了。

用之前生成的 CSR 文件,你可以請(qǐng)求生成一個(gè)新證書(shū),并由您剛才創(chuàng)建的根 CA 簽名。

$ openssl x509 -req -in mail.mydomain.csr -CA myCA.pem -CAkey myCA.key -CAcreateserial -out mail.mydomain.pem -days 1825 -sha256

輸入你的根 CA 私鑰的密碼來(lái)創(chuàng)建和簽署證書(shū)。

現(xiàn)在你有了配置電子郵件服務(wù)以增強(qiáng)安全性所需的兩個(gè)文件:私匙文件 mail.mydomain.key 和公開(kāi)證書(shū)文件 mail.mydomain.pem

如果你愿意購(gòu)買(mǎi)證書(shū)

如果你愿意從機(jī)構(gòu)購(gòu)買(mǎi)證書(shū),則需要上傳 CSR 文件到證書(shū)頒發(fā)機(jī)構(gòu)的系統(tǒng)中,它將會(huì)被用于生成 SSL/TLS 證書(shū)。證書(shū)可作為文件下載,比如 mail.mydomain.pem。很多 SSL 機(jī)構(gòu)也需要你下載一個(gè)中間證書(shū)。如果是這樣的話,你必須把這個(gè)兩個(gè)證書(shū)合并成一個(gè),這樣電子郵件服務(wù)就可以將這兩個(gè)證書(shū)結(jié)合起來(lái)處理??梢允褂靡韵旅畎涯愕淖C書(shū)和第三方中間證書(shū)合并在一起:

$ cat mail.mydomain.pem gd_bundle-g2-g1.crt > mail.mydomain.pem

值得一提的是 .pem 文件后綴代表隱私增強(qiáng)郵件Privacy-Enhanced Mail。

現(xiàn)在你就有全部的設(shè)置郵件服務(wù)安全所需文件了:私匙文件 mail.mydomain.key 和組合的公開(kāi)證書(shū)文件 mail.mydomain.pem。

為你的文件生成一個(gè)安全的文件夾

不管你是的證書(shū)是自簽發(fā)的或者從機(jī)構(gòu)購(gòu)買(mǎi),你都需要生成一個(gè)安全的,管理員擁有的文件夾用于保存這兩個(gè)文件??梢允褂靡韵旅顏?lái)生成:

$ mkdir /etc/pki/tls$ chown root:root /etc/pki/tls$ chmod 700 /etc/pki/tls

在復(fù)制文件到 /etc/pki/tls 后,再次設(shè)置這些文件的權(quán)限:

$ chmod 600 /etc/pki/tls/*

配置你的 SMTP 和 IMAP 服務(wù)

接下來(lái),讓 SMTP 和 IMAP 服務(wù)使用新的安全證書(shū)。我們用 postfixdovecot 來(lái)作為例子。

用你順手的編輯器來(lái)編輯 /etc/postfix/main.cf 文件。添加以下幾行:

smtpd_use_tls = yessmtpd_tls_cert_file = /etc/pki/tls/mail.mydomain.pemsmtpd_tls_key_file = /etc/pki/tls/mail.mydomain.key

自定義選項(xiàng)

以下選項(xiàng)可以啟用或禁用各種加密算法,協(xié)議等等:

smtpd_tls_eecdh_grade = strongsmtpd_tls_protocols= !SSLv2, !SSLv3, !TLSv1, !TLSv1.1smtpd_tls_mandatory_protocols= !SSLv2, !SSLv3, !TLSv1, !TLSv1.1smtpd_tls_mandatory_ciphers = highsmtpd_tls_security_level=maysmtpd_tls_ciphers = hightls_preempt_cipherlist = yessmtpd_tls_mandatory_exclude_ciphers = aNULL, MD5 , DES, ADH, RC4, PSD, SRP, 3DES, eNULLsmtpd_tls_exclude_ciphers = aNULL, MD5 , DES, ADH, RC4, PSD, SRP, 3DES, eNULLsmtp_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1smtp_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1

編輯 /etc/dovecot/dovecot.conf 文件,添加以下三行:

ssl = requiredssl_cert = &lt;/etc/pki/tls/mail.mydomain.pemssl_key = &lt;/etc/pki/tls/mail.mydomain.key

添加下列更多選項(xiàng)來(lái)啟用或禁用各種加密算法、協(xié)議等等(我把這些留給你來(lái)理解):

ssl_cipher_list = EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH+aRSA+RC4:EECDH:EDH+aRSA:ALL:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4:!SSLv2ssl_prefer_server_ciphers = yesssl_protocols = !SSLv2 !SSLv3 !TLSv1 !TLSv1.1ssl_min_protocol = TLSv1.2

設(shè)置 SELinux 上下文

如果你的 Linux 發(fā)行版啟用了 SELinux,請(qǐng)為你的新證書(shū)文件設(shè)置正確的 SELinux 上下文。

對(duì)于 Postfix 設(shè)置 SELinux:

$ chcon -u system_u -t cert_t mail.mydomain.*

對(duì)于 Dovecot 設(shè)置 SELinux:

$ chcon -u system_u -t dovecot_cert_t mail.mydomain.*

重啟這些服務(wù),并與你相應(yīng)更新過(guò)的電子郵件客戶端配置連接。有些電子郵件客戶端會(huì)自動(dòng)探測(cè)到新的端口,有些則需要你手動(dòng)更新。

測(cè)試配置

openssl 命令行和 s_client 插件來(lái)簡(jiǎn)單測(cè)試一下:

$ openssl s_client -connect mail.mydomain.com:993$ openssl s_client -starttls imap -connect mail.mydomain.com:143$ openssl s_client -starttls smtp -connect mail.mydomain.com:587

這些測(cè)試命令會(huì)打印出很多信息,關(guān)于你使用的連接、證書(shū)、加密算法、會(huì)話和協(xié)議。這不僅是一個(gè)驗(yàn)證新設(shè)置的好方法,也可以確認(rèn)你使用了適當(dāng)?shù)淖C書(shū),以及在 postfix 或 dovecot 配置文件中定義的安全設(shè)置正確。

感謝各位的閱讀!關(guān)于“怎么利用SSL/TLS保護(hù)你的Linux郵件服務(wù)”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

網(wǎng)頁(yè)標(biāo)題:怎么利用SSL/TLS保護(hù)你的Linux郵件服務(wù)
網(wǎng)站鏈接:http://muchs.cn/article46/ishoeg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊(cè)、小程序開(kāi)發(fā)定制網(wǎng)站、網(wǎng)站建設(shè)、虛擬主機(jī)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

綿陽(yáng)服務(wù)器托管