kn007的个人博客
♥ You are here: Home > 软件与网络 > VPS > [Postfix进阶]SMTP TLS 加密

[Postfix进阶]SMTP TLS 加密

by | 31 Comments

提醒:本文最后更新于 1483 天前,文中所描述的信息可能已发生改变,请仔细核实。

2ebnf37892843gmef
这篇文章的基础在于之前几篇进阶文章上进行,可通过《进阶的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小结》。

贴上专业SMTP测试结果,测试地址见上面帖子。
postfix-smtp-check

转载请注明转自:kn007的个人博客的《[Postfix进阶]SMTP TLS 加密

donate
有所帮助?

Comments

31 Comments立即评论
  1. 沙发

    1. MOD回复
  2. 你发信,outlook的邮局能收到吗?

    1. MOD回复

      @杰杰杰杰杰: 不知道,你注册一个,我发个给你。我发给live是可以收到的。现在在blacklist不知会不会受影响。

  3. 完全看不懂

    1. MOD回复

      @小怪物: 会复制就行了,已经这么直白了

    2. @kn007: 翻了一下,貌似有好几篇这个的连锁文章,但是还没弄明白到底是干嘛用的,评论邮件通知?
      我的低级VPS也不一定支持吧,我一直都是用的插件

    3. MOD回复

      @小怪物: ...任何vps都支持,不是评论邮件通知,是一个邮局系统。专门收发信的。一般vps标配是sendmail。postfix是一个很好的替代产品。

    4. @kn007: 自建域名邮箱才应该考虑的?

    5. MOD回复

      @小怪物: 这个当然可以考虑,评论邮件也可以考虑。都可以考虑。。只要你发信就应该考虑。。。

    6. @kn007: 那啥时候去试试,太高深了,理解力有限。 :lol:
      我就知道我的各种主题里的评论通知都不发邮件,就一直用的插件

    7. MOD回复

      @小怪物: 那说明有可能连sendmail都没有

    8. @kn007: 最开始的美国虚拟主机没用插件的时候是有通知,后来不是换了次电信虚拟主机么,就没有了,就用了插件,现在保罗的这个低配VPS还不知道,反正用上那插件之后就一直用着了。

    9. MOD回复

      @小怪物: 虚拟主机都是有的。。。但一般都是需要smtp插件的。很少见不需要的。。。没有才正常。
      一般不管什么配置,除非你是精简版系统(我KVM就是精简版的,其他不是),要不然都是带sendmail的。一般就不需要插件了。php会利用sendmail发送的。

    10. @kn007: 在usr/lib下发现了sendmail和sendmail.sendmail,两文件大小一样。 :lol:

    11. MOD回复

      @小怪物: 是的,如果你安装了postfix。那就会有sendmail.postfix。你可以看下《进阶的Postfix小结》,从头开始看。

    12. @kn007: 恩,要折腾下的话是得好好看看,弄明白了。 :lol:

    13. MOD回复

      @小怪物: 嗯嗯嗯 :twisted:

  4. 这是什么?完全看不懂.... :x :x :x :mrgreen:

    1. MOD回复

      @夜枫: :???: 好吧

  5. 回复

    网站备案中,要不也可以试试...

    1. MOD回复

      @Aricou: 一说到备案,我就伤心

  6. 这是在说什么?!!! :x

    1. MOD回复

      @Uncle.E: 说postfix。。。

  7. 不明觉厉

    1. MOD回复

      @天长地久: :razz: 嘿嘿

  8. 研究下 一直用的sendmail

    1. MOD回复

      @空空裤兜: 嗯嗯嗯

  9. 感觉很厉害的样子

    1. MOD回复

      @灵尘子: :cool: 好吧

  10. 回复

    我来支持下,虽然有点难,还是学习下

icon_wink.gificon_neutral.gificon_mad.gificon_twisted.gificon_smile.gificon_eek.gificon_sad.gificon_rolleyes.gificon_razz.gificon_redface.gificon_surprised.gificon_mrgreen.gificon_lol.gificon_idea.gificon_biggrin.gificon_evil.gificon_cry.gificon_cool.gificon_arrow.gificon_confused.gificon_question.gificon_exclaim.gif