前 言
通常,我们发送的邮件在传输过程中都采用明文传输。当发送重要信息的时候,仍然存在邮件被第三方获取,泄露隐私及密码等等的安全隐患。在 Web 服务器中,通过用 SSL 实现对 HTTPS 协议的支持,实现了对传输内容的加密,在邮件服务器中,我们也同样能够依靠 SSL 来实现对邮件的加密,从而提高通过用邮件传递信息的安全性。
证书与密钥的确认
在这里,可以为邮件服务器建立新的证书,但为了管理上的便利性,我们直接引用 Web 服务器的证书,作为邮件服务器的证书。
首先确认 Web 服务器证书的存在。
[root@sample ~]# ls -l /etc/httpd/conf/ssl.crt/server.crt ← 确认证书的存在性
-rw-r--r-- 1 root root 956 Oct 14 08:51 /etc/httpd/conf/ssl.crt/server.crt ← 证书存在
[root@sample ~]# ls -l /etc/httpd/conf/ssl.key/server.key ← 确认密钥的存在性
-rw------- 1 root root 887 Oct 14 08:49 /etc/httpd/conf/ssl.key/server.key ← 密钥存在
如果以上确认,没有发现相关的证书和密钥的存在,请参见 “让服务器支持安全 HTTP 协议( HTTPS )” 中的方法来建立相关的证书和密钥。
SMTP服务器(Postfix)方面的相关设置
[1] 编辑 Postfix 的 mail.cf 配置文件。
[root@sample ~]# vi /etc/postfix/main.cf ← 编辑 Postfix 配置文件,在文尾添加如下行:
smtpd_use_tls = yes
smtpd_tls_session_cache_database = btree:/etc/postfix/smtpd_scache
smtpd_tls_cert_file = /etc/httpd/conf/ssl.crt/server.crt
smtpd_tls_key_file = /etc/httpd/conf/ssl.key/server.key
[2] 编辑 Postfix 的 master.cf 配置文件。
[root@sample ~]# vi /etc/postfix/master.cf ← 编辑 master.cf
smtp inet n - n - - smtpd ← 找到此行,在行首加“#”
↓
#smtp inet n - n - - smtpd ← 改为此状态,禁用SMTP协议
#smtps inet n - n - - smtpd ← 找到此行,去掉行首的“#”
↓
smtps inet n - n - - smtpd ← 改为此状态,使用SMTPS协议
# -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes ← 找到此行,去掉行首的“#”
↓
-o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes ← 改为此状态
[3] 编辑 Dovecot 的配置文件。
[root@sample ~]# vi /etc/dovecot.conf ← 编辑 Dovecot 的配置文件
protocols = imap pop3 ← 找到此行,将“=”后面的部分改为如下状态
↓
protocols = imaps pop3s ← 改为此状态,让其只支持imaps和pop3s协议
#ssl_disable = no ← 找到此行,去掉行首的“#”
↓
ssl_disable = no ← 改为此状态,让其支持 SSL 及 TLS
#ssl_cert_file = /usr/share/ssl/certs/dovecot.pem ← 找到此行,去掉行首的“#”,并指定证书所在位置
↓
ssl_cert_file =/etc/httpd/conf/ssl.crt/server.crt ← 改为此状态,指定其证书为 Apache 的证书
↓
#ssl_key_file = /usr/share/ssl/private/dovecot.pem ← 找到此行,去掉行首的“#”,并指定密钥所在位置
ssl_key_file = /etc/httpd/conf/ssl.key/server.key ← 改为此状态,指定其密钥为 Apache 的密钥
[4] 编辑防火墙规则,打开相应端口。
[root@sample ~]# vi /etc/sysconfig/iptables ← 编辑防火墙规则
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT ← 找到此行,接着添加如下行:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 465 -j ACCEPT ← 允许SMTPS的465号端口
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 995 -j ACCEPT ← 允许POP3S的995号端口
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 993 -j ACCEPT ← 允许IMAPS的993号端口
重新起动相关服务,使设置生效
最后,重新启动所有相关的服务,使刚刚的设置生效。
[root@sample ~]# /etc/rc.d/init.d/postfix restart ← 重新启动 Postfix
Shutting down postfix: [ OK ]
Starting postfix: [ OK ]
[root@sample ~]# /etc/rc.d/init.d/dovecot restart ← 重新启动 Dovecot
Stopping Dovecot Imap: [ OK ]
Starting Dovecot Imap: [ OK ]
[root@sample ~]# /etc/rc.d/init.d/iptables restart ← 重新启动 iptables
Flushing firewall rules: [ OK ]
Setting chains to policy ACCEPT: filter [ OK ]
Unloading iptables modules: [ OK ]
Applying iptables firewall rules: [ OK ]
邮件客户端的设置
这里,邮件客户端的设置以 Thunderbird 为例。
* SMTP 方面:
在 SMTP 服务器设置中,选择 SSL 方式。使用 Thunderbird 的情况下,选择 SSL 后,端口号会自动变成 465。其它邮件客户端软件请根据实际情况正确设置。
- 本文固定链接: https://zxbcw.cn/post/1410/
- 转载请注明:必须在正文中标注并保留原文链接
- QQ群: PHP高手阵营官方总群(344148542)
- QQ群: Yii2.0开发(304864863)