本篇中,,Carla Schroder 會解釋如何使用 OpenSSL 保護你的 Postfix/Dovecot 郵件服務(wù)器
在上周,,作為我們 OpenSSL 系列的一部分,,我們學(xué)習(xí)了如何配置 Apache 以使用 OpenSSL 并強制所有會話使用 HTTPS,。 今天,我們將使用 OpenSSL 保護我們的 Postfix/Dovecot 郵件服務(wù)器,。這些示例基于前面的教程; 請參閱最后的參考資料部分,,了解本系列中以前的所有教程的鏈接。
你需要配置 Postfix 以及 Dovecot 都使用 OpenSSL,,我們將使用我們在OpenSSL 在 Apache 和 Dovecot 下的使用(一)中創(chuàng)建的密鑰和證書,。
Postfix 配置
你必須編輯 /etc/postfix/main.cf 以及 /etc/postfix/master.cf 。實例的 main.cf 是完整的配置,,基于我們先前的教程,。替換成你自己的 OpenSSL 密鑰和證書名以及本地網(wǎng)絡(luò)地址。
compatibility_level=2 smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu/GNU) biff = no append_dot_mydomain = no
myhostname = localhost alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases myorigin = $myhostname mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.0.0/24 mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = all
virtual_mailbox_domains = /etc/postfix/vhosts.txt virtual_mailbox_base = /home/vmail virtual_mailbox_maps = hash:/etc/postfix/vmaps.txt virtual_minimum_uid = 1000 virtual_uid_maps = static:5000 virtual_gid_maps = static:5000 virtual_transport = lmtp:unix:private/dovecot-lmtp
smtpd_tls_cert_file=/etc/ssl/certs/test-com.pem smtpd_tls_key_file=/etc/ssl/private/test-com.key smtpd_use_tls=yes
smtpd_sasl_auth_enable = yes smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth smtpd_sasl_authenticated_header = yes
在 master.cf 取消 submission inet 部分的注釋,,并編輯 smtpd_recipient_restrictions :
#submission inet n - y - - smtpd -o syslog_name=postfix/submission -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o milter_macro_daemon_name=ORIGINATING -o smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject -o smtpd_tls_wrappermode=no
完成后重新加載 Postfix:
$ sudo service postfix reload
Dovecot 配置
在我們以前的教程中,,我們?yōu)?Dovecot 創(chuàng)建了一個單一配置文件 /etc/dovecot/dovecot.conf ,而不是使用多個默認(rèn)配置文件,。這是一個基于我們以前的教程的完整配置,。再說一次,使用你自己的 OpenSSL 密鑰和證書,,以及你自己的 userdb 的 home 文件:
protocols = imap pop3 lmtp log_path = /var/log/dovecot.log info_log_path = /var/log/dovecot-info.log disable_plaintext_auth = no mail_location = maildir:~/.Mail pop3_uidl_format = %g auth_mechanisms = plain
passdb { driver = passwd-file args = /etc/dovecot/passwd }
userdb { driver = static args = uid=vmail gid=vmail home=/home/vmail/studio/%u }
service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { group = postfix mode = 0600 user = postfix } }
protocol lmtp { postmaster_address = postmaster@studio }
service lmtp { user = vmail }
service auth { unix_listener /var/spool/postfix/private/auth { mode = 0660 user=postfix group=postfix } }
ssl=required ssl_cert = </etc/ssl/certs/test-com.pem ssl_key = </etc/ssl/private/test-com.key
重啟 Dovecot:
$ sudo service postfix reload
用 telnet 測試
就像我們以前一樣,,現(xiàn)在我們可以通過使用 telnet 發(fā)送消息來測試我們的設(shè)置。 但是等等,,你說 telnet 不支持 TLS/SSL,,那么這樣怎么辦呢?首先通過使用 openssl s_client 打開一個加密會話,。openssl s_client 的輸出將顯示你的證書及其指紋和大量其它信息,,以便你知道你的服務(wù)器正在使用正確的證書。會話建立后輸入的命令都是不以數(shù)字開頭的:
$ openssl s_client -starttls smtp -connect studio:25 CONNECTED(00000003) [masses of output snipped] Verify return code: 0 (ok) --- 250 SMTPUTF8 EHLO studio 250-localhost 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-AUTH PLAIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250-DSN 250 SMTPUTF8 mail from: <carla@domain.com> 250 2.1.0 Ok rcpt to: <alrac@studio> 250 2.1.5 Ok data 354 End data with .subject: TLS/SSL test Hello, we are testing TLS/SSL. Looking good so far. . 250 2.0.0 Ok: queued as B9B529FE59 quit 221 2.0.0 Bye
你應(yīng)該可以在郵件客戶端中看到一條新郵件,,并在打開時要求你驗證 SSL 證書,。你也可以使用 openssl s_client 來測試 Dovecot 的 POP3 和 IMAP 服務(wù)。此示例測試加密的 POP3,,第 5 號消息是我們在 telnet(如上)中創(chuàng)建的:
$ openssl s_client -connect studio:995 CONNECTED(00000003) [masses of output snipped] Verify return code: 0 (ok) --- +OK Dovecot ready user alrac@studio +OK pass password +OK Logged in. list +OK 5 messages: 1 499 2 504 3 514 4 513 5 565 . retr 5 +OK 565 octets Return-Path: <carla@domain.com> Delivered-To: alrac@studio Received: from localhost by studio.alrac.net (Dovecot) with LMTP id y8G5C8aablgKIQAAYelYQA for <alrac@studio>; Thu, 05 Jan 2017 11:13:10 -0800 Received: from studio (localhost [127.0.0.1]) by localhost (Postfix) with ESMTPS id B9B529FE59 for <alrac@studio>; Thu, 5 Jan 2017 11:12:13 -0800 (PST) subject: TLS/SSL test Message-Id: <20170105191240.B9B529FE59@localhost> Date: Thu, 5 Jan 2017 11:12:13 -0800 (PST) From: carla@domain.com
Hello, we are testing TLS/SSL. Looking good so far. . quit +OK Logging out. closed
現(xiàn)在做什么,?
現(xiàn)在你有一個功能良好的,具有合適的 TLS/SSL 保護的郵件服務(wù)器了,。我鼓勵你深入學(xué)習(xí) Postfix 以及 Dovecot,; 這些教程中的示例盡可能地簡單,,不包括對安全性、防病毒掃描程序,、垃圾郵件過濾器或任何其他高級功能的調(diào)整,。我認(rèn)為當(dāng)你有一個基本工作系統(tǒng)時更容易學(xué)習(xí)高級功能。
下周回到 openSUSE 包管理備忘錄上,。
資源
via: https://www./learn/intro-to-linux/openssl-apache-and-dovecot-part-2
作者:CARLA SCHRODER 譯者:geekpi 校對:校對者ID
本文由 LCTT 原創(chuàng)編譯,,Linux中國 榮譽推出
|