kn007的个人博客
♥ You are here: Home > 软件与网络 > VPS > 配置Postfix通过其他服务器发件

配置Postfix通过其他服务器发件

by | 34 Comments

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


前面提到博客服务器因为是HKBN,并不支持rDNS,所以Zero在rixCloud上开了台机子专门给我做邮件服务器。才有了今天这篇文章,题图是博客目前的邮件系统简易示意图。

博客服务器即图中的WEB Server,邮件服务器即Mail Server。两者都安装了Postfix。

前者作为Null Client,主要作用是对所有该服务器的邮件转发给Master,也就是后者Mail Server。

Null Client配置很简单,主要就是配置只监听本地,设置邮件域,还有设置relayhost及禁用本地邮件投递。下面简单说下配置过程。

/etc/postfix/main.cf中,配置:

inet_interfaces = loopback-only
mydestination =
myhostname = kn007.net
mynetworks = 127.0.0.0/8, [::1]/128
myorigin = $myhostname
relayhost = mail.kn007.net
local_transport = error: local delivery disabled
smtp_tls_security_level = encrypt

其中mydestination留空,myhostname不能与Master服务器同参数配置相同。

smtp_tls_security_level的话,看个人需要,主要就是TLS隧道,但是需要Master配置了TLS。

因为本地邮件投递被禁用了,那么就没必要让postfix再监听local邮件传递了。在/etc/postfix/master.cf中,把local那一行注释掉就行了。这一步不做也可以,做了省点内存而已。

接下来,配置Master,基本看之前文章来配置。

其中的不同点,在/etc/postfix/main.cf中:

myhostname = mail.kn007.net
mydomain = kn007.net
myorigin = $mydomain
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mynetworks = 127.0.0.0/8, [::1]/128, 103.86.69.2, 61.244.29.105

myhostname要定义与Null Client的myhostname不同,相同将导致无法发信,我这里是设置成mail.kn007.net。

你可以在mydestination和myorigin设置成你的主域。比如我就是设置成kn007.net,这样发件域还是kn007.net,这样对我来说DKIM配置还不用改。

mynetworks要添加Null Client的IP,以便通过Relay Access检测。

如果你并没有Relay授权检测,那么可以忽略这一步。不过强烈建议做Relay检测,不然你的邮件系统可能会被滥用,配置方法见之前文章。

最后,在OpenDKIM的配置文件/etc/opendkim/TrustedHosts中,同样的也要添加Null Client的IP,以便正常签名。

完成配置更改后,记得重启Postfix及OpenDKIM,以完成应用。

好的,这样就成功做到如图所示的架构。之前文章可见专题文章《Postfix小结》。


配置完,根据一些实际情况,比如我是有用Dovecot+RainLoop来管理域名邮箱邮件的,那么还要做些变通。

因为RainLoop在Null Client,即WEB Server上,而Null Client本身是没有本地邮局的,只做转发,邮件都在Master上。

我在Master,即Mail Server上,搭建好Dovecot和Nginx。Dovecot只允许WEB Server访问(防火墙策略),而Nginx反代WEB Server上的RainLoop。

这样便达到目的,WEB Server的RainLoop访问来自Mail Server上的Postfix和Dovecot来完成收发邮件;而直接访问Mail Server,因为反代,也能顺利访问到RainLoop来管理邮件。

为什么要反代呢,因为MX记录指向的是Mail Server而不是WEB Server,所以需要反代。

还有,平时有计划任务备份WEB Server的数据,所以我用了rsync把Mail Server的邮件同步到WEB Server上,以达到备份目的。

另祝元旦快乐。

转载请注明转自:kn007的个人博客的《配置Postfix通过其他服务器发件

donate
有所帮助?

Comments

34 Comments立即评论
  1. :x 新年快乐

    1. MOD回复

      @liwanglin12: 同乐同乐~

  2. LV5回复

    2018 快乐。

    1. MOD回复

      @老杨: 同乐~

  3. 提一个问题哈,如果Null Client在腾讯云阿里云这类封25端口的主机商上的话,如果没有Master这个Relay Host是不是就没有办法让发件走465而不是25了?试过smtp_tls_security_level = encrypt发现和腾讯还有谷歌的邮局的通信还是走的25端口

    1. MOD回复

      @Xider: 可以说是的。
      25你理解成标准端口就行了,高位数只是说一般启用了tls,实际启用与否,与端口无关。
      就像你没有80端口,却想着http跳转到https,那是不可能的。(现在可以,也只是说支持hsts列表的浏览器才行,但邮件端口可没所谓hsts)

    2. MOD回复

      @Xider: 讲白,你有没有设置smtp_tls_security_level,不是你的机子根本就不知道。
      知道也要联通25后,你告诉他,你是强制要加密的。
      25端口是标准端口,没25端口,就基本是废了,收不了件的。
      你想想,厂商也没那么笨诶。不可能禁用了25,还能让你在本机收件,那样禁用25还有什么作用 :arrow:

    3. @kn007: soga,长姿势了 :oops:

    4. MOD回复

      @Xider: 阿里云不封25吧,话说。
      腾讯可以申请25端口开放,但不支持rDNS记得是。

    5. @kn007: 阿里云应该是封了,腾讯云我昨天试了一堆办法都没用就去申请解封了 :grin:

    6. MOD回复

      @Xider: 阿里云一直是可以的啊,你发个ticket问问,我有台机还在上面,很正常记得是,不过我已经不在上面发件了。

    7. @kn007: 应该是16年6月之后新的鸡都封了25,你的鸡子可能是之前的鸡子可能不影响吧 :lol:

    8. MOD回复

      @Xider: 去申请解封+rDNS啊 :smile:

    9. @Xider: 阿里云现在默认封了25 不过可以去申请

  4. IP地址暴露了,香港地区打开就是快啊。

    1. MOD回复

      @灵尘子: 不怕漏啊,主要 :oops:

    2. MOD回复

      @灵尘子: 带IP,小白看着简单点,容易分清,分不清的人,我一般就懒得理了。。

  5. LV5回复

    发现一个问题,博文中的外链点击后跳转到了你的博客首页 :arrow:

    1. MOD回复

      @小怪物: 哪个链接 :grin:

    2. LV5回复

      @kn007: 就是 google voice 那篇里的外链,类似这样的:https://kn007.net/func/go.php?url=http://googlevoice.net/index.php/archives/10/ 那篇博文里的所有外链都是跳转到博客首页,我觉得是go.php?xxxxx这种都是这样跳的

    3. MOD回复

      @小怪物: 你确定是访问我的文章么?你再试试看看,讲道理不会啊,会出现这种情况,一般就是盗链访问。。 :grin:

    4. MOD回复

      @小怪物: RSS的话,可能会出现这种情况

    5. LV5回复

      @kn007: 没有 rss,就是在你博客顶上 归档>搜索 google voice 打开的文章

    6. MOD回复

      @小怪物: 这么奇怪。。

    7. @kn007: 世事难料~

  6. LV5回复

    是啊,我在你博客打开的呢,因为我以前看过那篇文章,之前没注册成功,最近有想着注册看看,还是没成功,最后淘宝了个

    1. MOD回复

      @小怪物: 最近想注册GV比较麻烦,我也很久没试了。。

      你什么浏览器啊?我chrome下,试了没问题

    2. LV5回复

      @kn007: safari :arrow:

    3. MOD回复

      @小怪物: 哦,煞笔苹果不好说。你是不是启用了不要追踪。。

    4. LV5回复

      @kn007: 好像是启用了,chrome 试了下确实没问题 :cool:

    5. MOD回复

      @小怪物: 我知道为什么了,因为safari过时了。
      看下这个: https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Referrer-Policy
      和这篇文章: https://kn007.net/topics/update-to-wordpress-4-9/

    6. MOD回复

      @小怪物: 如果我用origin,那么新版的协议就冲突了。因为有变更。新版浏览器走新的协议。

    7. MOD回复

      @小怪物: 要么我就是用unsafe-url。。但好难听啊 :razz:

  7. 我就是用postfix借助QQ邮箱来发送服务器的邮件的! :sad:

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