提醒:本文最后更新于 1706 天前,文中所描述的信息可能已发生改变,请仔细核实。
这篇文章的基础在于之前几篇进阶文章上进行,可通过《进阶的Postfix小结》查看。
首先先要构建VPS的CA,最好能对根证书进行签名(利用Cacert或者StartSSL),我的只是单纯的自签名,反正凑个数,加个密。本来就是自用的。
那么先将默认CA删除,创建新的CA。
rm -rf /etc/pki/CA
/etc/pki/tls/misc/CA -newca
根据提示回答一些问题(注意不要乱写,有用的),会创建完整的CA目录,并创建自签名的根证书cacert.pem。cacert.pem的位置在/etc/pki/CA/cacert.pem。
接下来,利用命令openssl来创建公私钥,最大貌似只能365天。
mkdir -p /CA &&cd /CA/
openssl req -new -nodes -keyout mailkey.pem -out mailreq.pem -days 365
核发证书,进行签名:
openssl ca -out mail_signed_cert.pem -infiles mailreq.pem
mail_signed_cert.pem就是CA核发的证书,私钥文件是mailkey.pem,注意要特别保护,而mailreq.pem是申请证书文件,已无作用。注意回答的问题,要与CA一致,hostname可为mx.kn007.net,而不需一定为kn007.net,请根据MX记录和其他实际情况设定,谢谢。
修改Postfix的配置文件,main.cf,添加:
#SSL/TLS
smtp_use_tls = yes
smtp_tls_cert_file = /CA/mail_signed_cert.pem
smtp_tls_key_file =/CA/mailkey.pem
smtp_tls_CAfile = /etc/pki/CA/cacert.pem
smtp_tls_note_starttls_offer = yes
smtpd_use_tls = yes
smtpd_enforce_tls = yes
smtpd_tls_security_level = may
smtpd_tls_loglevel = 3
smtpd_tls_session_cache_timeout = 3600s
smtpd_tls_session_cache_database = btree:/var/spool/postfix/smtpd_tls_cache
smtpd_tls_cert_file = /CA/mail_signed_cert.pem
smtpd_tls_key_file =/CA/mailkey.pem
smtpd_tls_CAfile = /etc/pki/CA/cacert.pem
tls_random_source = dev:/dev/urandom
tls_daemon_random_source = dev:/dev/urandom
tls_append_default_CA = yes
smtpd_tls_auth_only = yes
smtpd_tls_ask_cert = yes
smtpd_tls_received_header = yes
下面是master.cf,将配置中的几个“#”号去掉,如下所示。
smtps inet n - n - - smtpd
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
最后重启下Postfix即可。
可通过https://ssl-tools.net/mailservers查看。
我的证书因为是自签名(Certificate is self-signed),并且没有通过国际认证,所以Root certificate unknown。但已经通过TLS检测。
苦逼,因为利用外部工具测试次数过多,居然上了Spamhaus XBL Blacklist中的CBL和ZEN。。。
貌似是被189举报的,189这傻叉用的又是21cn。。贱逼。
XBL通知说不能手动删除,原文如下。
IP Address 162.250.97.124 is listed in the CBL. It appears to be infected with a spam sending trojan, proxy or some other form of botnet.
It was last detected at 2014-07-09 17:00 GMT (+/- 30 minutes), approximately 12 hours, 30 minutes ago.
These listings cannot be self-delisted. You will have to wait for it to expire. Expiration takes place 8-12 days after most recent listing.
另外添加了rDNS记录,解决发信出现“由xxx@xxx.xxx代发”字样。
其他测试等强烈建议看《进阶的Postfix小结》。
转载请注明转自:kn007的个人博客的《[Postfix进阶]SMTP TLS 加密》
沙发
@小可:
你发信,outlook的邮局能收到吗?
@杰杰杰杰杰: 不知道,你注册一个,我发个给你。我发给live是可以收到的。现在在blacklist不知会不会受影响。
完全看不懂
@小怪物: 会复制就行了,已经这么直白了
@kn007: 翻了一下,貌似有好几篇这个的连锁文章,但是还没弄明白到底是干嘛用的,评论邮件通知?
我的低级VPS也不一定支持吧,我一直都是用的插件
@小怪物: ...任何vps都支持,不是评论邮件通知,是一个邮局系统。专门收发信的。一般vps标配是sendmail。postfix是一个很好的替代产品。
@kn007: 自建域名邮箱才应该考虑的?
@小怪物: 这个当然可以考虑,评论邮件也可以考虑。都可以考虑。。只要你发信就应该考虑。。。
@kn007: 那啥时候去试试,太高深了,理解力有限。
我就知道我的各种主题里的评论通知都不发邮件,就一直用的插件
@小怪物: 那说明有可能连sendmail都没有
@kn007: 最开始的美国虚拟主机没用插件的时候是有通知,后来不是换了次电信虚拟主机么,就没有了,就用了插件,现在保罗的这个低配VPS还不知道,反正用上那插件之后就一直用着了。
@小怪物: 虚拟主机都是有的。。。但一般都是需要smtp插件的。很少见不需要的。。。没有才正常。
一般不管什么配置,除非你是精简版系统(我KVM就是精简版的,其他不是),要不然都是带sendmail的。一般就不需要插件了。php会利用sendmail发送的。
@kn007: 在usr/lib下发现了sendmail和sendmail.sendmail,两文件大小一样。
@小怪物: 是的,如果你安装了postfix。那就会有sendmail.postfix。你可以看下《进阶的Postfix小结》,从头开始看。
@kn007: 恩,要折腾下的话是得好好看看,弄明白了。
@小怪物: 嗯嗯嗯
这是什么?完全看不懂....
@夜枫: 好吧
网站备案中,要不也可以试试...
@Aricou: 一说到备案,我就伤心
这是在说什么?!!!
@Uncle.E: 说postfix。。。
不明觉厉
@天长地久: 嘿嘿
研究下 一直用的sendmail
@空空裤兜: 嗯嗯嗯
感觉很厉害的样子
@灵尘子: 好吧
我来支持下,虽然有点难,还是学习下