如何为Google Workspace(Gmail)配置Postfix中继服务器并限制仅企业域名邮件中继
嘿,我来帮你搞定这个Postfix中继的问题!你遇到的核心痛点是既要让Google Workspace通过你的Ubuntu 22.04 VPS发邮件,又不能把服务器搞成开放中继被垃圾邮件滥用对吧?咱们一步步来解决:
一、先确保你的企业域名SPF记录配置正确
首先,你的企业域名(比如corp.example.com)的DNS必须有正确的SPF记录,用来授权Google Workspace代表你的域名发邮件。如果还没配置,去你的DNS服务商后台添加这条记录:
v=spf1 include:_spf.google.com ~all
简单说,这条记录告诉全世界:只有Google的IP和其他你指定的服务器可以发你企业域名的邮件,其他IP发的都是伪造的。
二、修改Postfix主配置文件/etc/postfix/main.cf
咱们要调整几个关键参数,实现三层验证:只允许Google的IP连接、只允许发件人是你的企业域名、还要验证邮件确实是Google授权发送的。
1. 限制连接来源为Google Workspace的官方IP
先创建一个文件来存放Google的出站IP段,避免直接把这些IP塞进mynetworks(之前就是这么搞成开放中继的!):
创建文件/etc/postfix/google_workspace_ips,把以下Google官方公布的SMTP出站IP段加进去(如果有最新的IP段,替换成最新的就行):
209.85.128.0/17 OK 64.233.160.0/19 OK 66.102.0.0/20 OK 66.249.80.0/20 OK 72.14.192.0/18 OK 74.125.0.0/16 OK 108.177.8.0/21 OK 173.194.0.0/16 OK 207.126.144.0/20 OK 208.65.152.0/22 OK 208.117.224.0/19 OK
然后运行命令生成Postfix能识别的哈希表:
postmap /etc/postfix/google_workspace_ips
2. 配置中继权限的三层验证
在main.cf里找到smtpd_relay_restrictions(如果没有就新增),替换成以下内容:
smtpd_relay_restrictions = permit_mynetworks, check_client_access hash:/etc/postfix/google_workspace_ips, check_sender_access hash:/etc/postfix/allowed_senders, check_policy_service unix:private/spfpolicy, reject_unauth_destination
这条规则的意思是:
- 首先允许本地服务器(mynetworks)发的邮件
- 然后允许来自Google Workspace IP的连接
- 接着只允许发件人是你的企业域名的邮件
- 最后验证这封邮件符合你的SPF规则(确保是Google授权发的)
- 其他情况一律拒绝中继
3. 配置允许的发件人域名
创建文件/etc/postfix/allowed_senders,添加你的企业域名(比如@corp.example.com):
@corp.example.com OK
同样生成哈希表:
postmap /etc/postfix/allowed_senders
4. 安装并配置SPF验证工具
Postfix本身没有SPF验证功能,咱们要装个工具:
apt update && apt install postfix-policyd-spf-python
然后修改/etc/postfix/master.cf,添加SPF服务的配置(在文件末尾加就行):
spfpolicy unix - n n - - spawn user=nobody argv=/usr/bin/policyd-spf
回到main.cf,添加SPF的超时配置:
policyd_spf_time_limit = 3600
5. 调整其他辅助配置
把原来的smtpd_sender_restrictions改成这样,过滤掉无效的发件人:
smtpd_sender_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_non_fqdn_sender, reject_unknown_sender_domain
6. 重启Postfix生效
systemctl restart postfix
三、在Google Workspace后台配置中继服务器
登录你的Google Workspace管理控制台,按以下步骤操作:
- 进入
Apps > Google Workspace > Gmail > 高级设置 - 找到
路由板块,点击添加路由 - 配置规则:
- 应用范围:选择
所有出站邮件 - 路由操作:选择
通过指定的中继服务器发送 - 中继服务器:输入你的Postfix服务器主机名(比如
mail.example.com)和端口(推荐用587,因为25端口可能被ISP封锁,而且要开启TLS) - 勾选
要求TLS加密,确保邮件传输安全
- 应用范围:选择
- 保存规则,等待15-30分钟让配置生效
四、测试配置是否生效
- 用你的企业域名邮箱发一封邮件到外部邮箱(比如个人Gmail)
- 查看Postfix日志
/var/log/mail.log,确认邮件成功被中继,没有出现Relay access denied的错误 - 尝试用其他邮箱伪造你的企业域名发件,测试是否会被Postfix拒绝(确保不会变成开放中继)
这样配置后,你的Postfix服务器只会中继来自Google Workspace、发件人是你企业域名且通过SPF验证的邮件,完美解决了之前的开放中继问题,同时满足了Google Workspace无法配置认证的需求。
备注:内容来源于stack exchange,提问作者Tarik

