成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何利用SSL/TLS保護你的Linux郵件服務

系統 Linux
近來隨著數據加密成為越來越多程序的共識,你需要安全套接層Secure Sockets Layer/傳輸層安全性Transport Layer Security(SSL/TLS)的安全證書來保護你的郵件服務。

[[326146]]

通過理解安全證書來保護你的 Linux 郵件服務。

通常,不管你是通過簡單郵件傳輸協議Simple Mail Transport Protocol(SMTP)或者互聯網消息訪問協議Internet Message Access Protocol(IMAP)或郵局協議Post Office Protocol(POP)發送或者接受郵件,郵件服務默認都是以無保護的明文來傳輸數據。近來隨著數據加密成為越來越多程序的共識,你需要安全套接層Secure Sockets Layer/傳輸層安全性Transport Layer Security(SSL/TLS)的安全證書來保護你的郵件服務。

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

為了保護電子郵件數據和認證,這些服務都增加了一個安全功能,使它們可以利用 SSL/TLS 證書對數據流和通訊進行加密封裝。SSL/TLS 是如何加密數據的細節不在本文討論范圍,有興趣的話可以閱讀 Bryant Son 關于互聯網安全的文章了解更多細節。概括的說,SSL/TLS 加密是一種基于公鑰和私鑰的算法。

通過加入這些安全功能后,這些服務將監聽在新的 TCP 端口:

服務 默認 TCP 端口 SSL/TLS 端口
SMTP 25 587
IMAP 143 993
POP3 110 995

生成 SSL/TLS 證書

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

如果你只是自己使用或者做做測試,那就使用自簽發證書省點錢吧。但是如果很多人或者客戶也需要使用的話,那最好還是從受信任的證書頒發機構購買。

不管是哪種情況,開始請求新證書的過程是使用 Linux 系統上的 OpenSSL 工具來創建一個證書簽發請求Certificate Signing Request</ruby(CSR):

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

這個命令會為你想保護的服務同時生成一個新的 CSR 文件和一個私匙。它會詢問你一些證書相關的問題,如:位置、服務器的完全合規域名Fully Qualified Domain Name(FQDN)、郵件聯系信息等等。當你輸入完這些信息后,私鑰和 CSR 文件就生成完畢了。

如果你想生成自簽發證書

如果你想要生成自簽發證書的話,在運行以上 CSR 命令之前,你必須先創建一個自己的根 CA。你可以通過以下方法創建自己的根 CA。

  1. $ openssl genrsa -des3 -out myCA.key 2048

命令行會提示你輸入一個密碼。請輸入一個復雜點的密碼而且不要弄丟了,因為這將會是根 CA 私鑰的密碼,正如其名稱所示,它是你的證書中所有信任關系的根。

接下來,生成根 CA 證書:

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

在回答完一些問題后,你就擁有一個有效期為 5 年的根 CA 證書了。

用之前生成的 CSR 文件,你可以請求生成一個新證書,并由您剛才創建的根 CA 簽名。

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

輸入你的根 CA 私鑰的密碼來創建和簽署證書。

現在你有了配置電子郵件服務以增強安全性所需的兩個文件:私匙文件 mail.mydomain.key 和公開證書文件 mail.mydomain.pem

如果你愿意購買證書

如果你愿意從機構購買證書,則需要上傳 CSR 文件到證書頒發機構的系統中,它將會被用于生成 SSL/TLS 證書。證書可作為文件下載,比如 mail.mydomain.pem。很多 SSL 機構也需要你下載一個中間證書。如果是這樣的話,你必須把這個兩個證書合并成一個,這樣電子郵件服務就可以將這兩個證書結合起來處理。可以使用以下命令把你的證書和第三方中間證書合并在一起:

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

值得一提的是 .pem 文件后綴代表隱私增強郵件Privacy-Enhanced Mail

現在你就有全部的設置郵件服務安全所需文件了:私匙文件 mail.mydomain.key 和組合的公開證書文件 mail.mydomain.pem

為你的文件生成一個安全的文件夾

不管你是的證書是自簽發的或者從機構購買,你都需要生成一個安全的,管理員擁有的文件夾用于保存這兩個文件。可以使用以下命令來生成:

  1. $ mkdir /etc/pki/tls
  2. $ chown root:root /etc/pki/tls
  3. $ chmod 700 /etc/pki/tls

在復制文件到 /etc/pki/tls 后,再次設置這些文件的權限:

  1. $ chmod 600 /etc/pki/tls/*

配置你的 SMTP 和 IMAP 服務

接下來,讓 SMTP 和 IMAP 服務使用新的安全證書。我們用 postfixdovecot 來作為例子。

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

  1. smtpd_use_tls = yes
  2. smtpd_tls_cert_file = /etc/pki/tls/mail.mydomain.pem
  3. smtpd_tls_key_file = /etc/pki/tls/mail.mydomain.key

自定義選項

以下選項可以啟用或禁用各種加密算法,協議等等:

  1. smtpd_tls_eecdh_grade = strong
  2. smtpd_tls_protocols= !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
  3. smtpd_tls_mandatory_protocols= !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
  4. smtpd_tls_mandatory_ciphers = high
  5. smtpd_tls_security_level=may
  6. smtpd_tls_ciphers = high
  7. tls_preempt_cipherlist = yes
  8. smtpd_tls_mandatory_exclude_ciphers = aNULL, MD5 , DES, ADH, RC4, PSD, SRP, 3DES, eNULL
  9. smtpd_tls_exclude_ciphers = aNULL, MD5 , DES, ADH, RC4, PSD, SRP, 3DES, eNULL
  10. smtp_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
  11. smtp_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1

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

  1. ssl = required
  2. ssl_cert = &lt;/etc/pki/tls/mail.mydomain.pem
  3. ssl_key = &lt;/etc/pki/tls/mail.mydomain.key

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

  1. 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:!SSLv2
  2. ssl_prefer_server_ciphers = yes
  3. ssl_protocols = !SSLv2 !SSLv3 !TLSv1 !TLSv1.1
  4. ssl_min_protocol = TLSv1.2

設置 SELinux 上下文

如果你的 Linux 發行版啟用了 SELinux,請為你的新證書文件設置正確的 SELinux 上下文。

對于 Postfix 設置 SELinux:

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

對于 Dovecot 設置 SELinux:

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

重啟這些服務,并與你相應更新過的電子郵件客戶端配置連接。有些電子郵件客戶端會自動探測到新的端口,有些則需要你手動更新。

測試配置

openssl 命令行和 s_client 插件來簡單測試一下:

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

這些測試命令會打印出很多信息,關于你使用的連接、證書、加密算法、會話和協議。這不僅是一個驗證新設置的好方法,也可以確認你使用了適當的證書,以及在 postfix 或 dovecot 配置文件中定義的安全設置正確。

保持安全! 

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2010-04-22 15:24:36

郵件安全網絡加密服務器

2021-08-25 23:03:58

區塊鏈數據安全

2022-03-05 18:25:51

SSLTLS協議

2011-03-08 14:14:31

Proftpd

2021-08-17 13:44:05

區塊鏈品牌技術

2016-10-31 10:25:24

2015-05-13 09:45:13

2023-09-22 17:36:37

2019-06-19 08:11:30

Linux服務器數據中心

2010-12-16 13:59:52

OpenSSL

2011-03-18 13:41:50

2013-09-27 13:27:18

2020-08-05 08:31:51

SSL TLSNode.js

2019-03-11 08:19:39

SSLTLS服務器

2016-10-18 10:23:14

Docker容器SSL證書

2012-03-01 11:20:45

2020-06-20 13:57:29

物聯網工業物聯網技術

2011-03-04 09:30:56

PureFTPdTLS防火墻

2010-09-17 12:38:07

2021-11-14 11:53:05

Linux 系統攻防Linux 系統
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 99精品欧美一区二区蜜桃免费 | 国产精品久久久久久久久久久久冷 | 亚洲成网 | 日本黄色一级视频 | 日韩图区 | 午夜在线小视频 | 国产91亚洲精品一区二区三区 | 草草视频在线播放 | 国产二区三区 | 国产午夜精品一区二区三区嫩草 | 成人免费看片又大又黄 | 亚洲3级| 成人毛片在线观看 | 欧美电影免费观看高清 | 精品伦精品一区二区三区视频 | 久久精品成人 | 精品中文字幕久久 | 91在线| 91看片网 | 国产精品乱码一区二区三区 | 亚洲欧美日韩精品久久亚洲区 | 日韩欧美国产一区二区 | 国产午夜精品一区二区三区在线观看 | 国产黄色在线 | 亚洲精品欧美一区二区三区 | 久久精品一区 | 国产精选一区 | 性色av香蕉一区二区 | 在线观看成人 | 一区二区三区视频在线观看 | 久久九精品 | 久草在线 | 亚洲一区成人 | 一本色道精品久久一区二区三区 | 免费在线看黄视频 | 2019精品手机国产品在线 | 91精品久久久久 | 黄色中文字幕 | 国产欧美精品区一区二区三区 | 国产黄色网| 欧美日韩久久精品 |