152
技術社區[雲棲]
OpenSSL 在 Apache 和 Dovecot 下的使用(二)
Postfix 配置
你必須編輯 /etc/postfix/main.cf 以及 /etc/postfix/master.cf。實例的 main.cf 是完整的配置,基於我們先前的教程。替換成你自己的 OpenSSL 密鑰和證書名以及本地網絡地址。
compatibility_level=2smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu/GNU)biff = noappend_dot_mydomain = nomyhostname = localhostalias_maps = hash:/etc/aliasesalias_database = hash:/etc/aliasesmyorigin = $myhostnamemynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.0.0/24mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = allvirtual_mailbox_domains = /etc/postfix/vhosts.txtvirtual_mailbox_base = /home/vmailvirtual_mailbox_maps = hash:/etc/postfix/vmaps.txtvirtual_minimum_uid = 1000virtual_uid_maps = static:5000virtual_gid_maps = static:5000virtual_transport = lmtp:unix:private/dovecot-lmtpsmtpd_tls_cert_file=/etc/ssl/certs/test-com.pemsmtpd_tls_key_file=/etc/ssl/private/test-com.keysmtpd_use_tls=yessmtpd_sasl_auth_enable = yessmtpd_sasl_type = dovecotsmtpd_sasl_path = private/authsmtpd_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 配置
在我們以前的教程中,我們為 Dovecot 創建了一個單一配置文件 /etc/dovecot/dovecot.conf,而不是使用多個默認配置文件。這是一個基於我們以前的教程的完整配置。再說一次,使用你自己的 OpenSSL 密鑰和證書,以及你自己的 userdb 的 home 文件:
protocols = imap pop3 lmtplog_path = /var/log/dovecot.loginfo_log_path = /var/log/dovecot-info.logdisable_plaintext_auth = nomail_location = maildir:~/.Mailpop3_uidl_format = %gauth_mechanisms = plainpassdb {driver = passwd-fileargs = /etc/dovecot/passwd}userdb {driver = staticargs = uid=vmail gid=vmail home=/home/vmail/studio/%u}service lmtp {unix_listener /var/spool/postfix/private/dovecot-lmtp {group = postfixmode = 0600user = postfix}}protocol lmtp {postmaster_address = postmaster@studio}service lmtp {user = vmail}service auth {unix_listener /var/spool/postfix/private/auth {mode = 0660user=postfixgroup=postfix}}ssl=requiredssl_cert = </etc/ssl/certs/test-com.pemssl_key = </etc/ssl/private/test-com.key
重啟 Dovecot:
$ sudo service postfix reload
用 telnet 測試
就像我們以前一樣,現在我們可以通過使用 telnet 發送消息來測試我們的設置。 但是等等,你說 telnet 不支持 TLS/SSL,那麼這樣怎麼辦呢?首先通過使用 openssl s_client 打開一個加密會話。openssl s_client 的輸出將顯示你的證書及其指紋和大量其它信息,以便你知道你的服務器正在使用正確的證書。會話建立後輸入的命令都是不以數字開頭的:
$ openssl s_client -starttls smtp -connect studio:25CONNECTED(00000003)[masses of output snipped]Verify return code: 0 (ok)---250 SMTPUTF8EHLO studio250-localhost250-PIPELINING250-SIZE 10240000250-VRFY250-ETRN250-AUTH PLAIN250-ENHANCEDSTATUSCODES250-8BITMIME250-DSN250 SMTPUTF8mail from: <carla@domain.com>250 2.1.0 Okrcpt to: <alrac@studio>250 2.1.5 Okdata354 End data with .subject: TLS/SSL testHello, we are testing TLS/SSL. Looking good so far..250 2.0.0 Ok: queued as B9B529FE59quit221 2.0.0 Bye
你應該可以在郵件客戶端中看到一條新郵件,並在打開時要求你驗證 SSL 證書。你也可以使用 openssl s_client 來測試 Dovecot 的 POP3 和 IMAP 服務。此示例測試加密的 POP3,第 5 號消息是我們在 telnet(如上)中創建的:
$ openssl s_client -connect studio:995CONNECTED(00000003)[masses of output snipped]Verify return code: 0 (ok)---+OK Dovecot readyuser alrac@studio+OKpass password+OK Logged in.list+OK 5 messages:1 4992 5043 5144 5135 565.retr 5+OK 565 octetsReturn-Path: <carla@domain.com>Delivered-To: alrac@studioReceived: from localhostby studio.alrac.net (Dovecot) with LMTP id y8G5C8aablgKIQAAYelYQAfor <alrac@studio>; Thu, 05 Jan 2017 11:13:10 -0800Received: from studio (localhost [127.0.0.1])by localhost (Postfix) with ESMTPS id B9B529FE59for <alrac@studio>; Thu, 5 Jan 2017 11:12:13 -0800 (PST)subject: TLS/SSL testMessage-Id: <20170105191240.B9B529FE59@localhost>Date: Thu, 5 Jan 2017 11:12:13 -0800 (PST)From: carla@domain.comHello, we are testing TLS/SSL. Looking good so far..quit+OK Logging out.closed
現在做什麼?
現在你有一個功能良好的,具有合適的 TLS/SSL 保護的郵件服務器了。我鼓勵你深入學習 Postfix 以及 Dovecot; 這些教程中的示例盡可能地簡單,不包括對安全性、防病毒掃描程序、垃圾郵件過濾器或任何其他高級功能的調整。我認為當你有一個基本工作係統時更容易學習高級功能。
下周回到 openSUSE 包管理備忘錄上。
原文發布時間為:2017-02-03
本文來自雲棲社區合作夥伴“Linux中國”
最後更新:2017-05-27 09:31:28