Postfix
Postfix 是什么?
Postfix 是一款开源的 邮件传输代理(MTA, Mail Transfer Agent),用于在 Linux/Unix 服务器 上发送、接收和路由电子邮件。最初在 IBM 研究部门开发,作为广泛使用的 Sendmail 程序的替代品。Wietse Venema
简介
Postfix 有数百个配置参数,这些参数通过 main.cf 文件进行控制。幸运的是,所有参数都有合理的默认值。在许多情况下,您只需配置两三个参数,就可以开始使用邮件系统。
为什么选择 Postfix 邮件服务器软件?
Postfix(推荐,Linux 上最流行),Postfix 是开源的邮件服务器软件,并且在安全性方面非常出色。
| 适用场景 | Postfix | Sendmail |
|---|---|---|
| 企业邮件服务器 | ✅ 推荐(高性能,高安全) | ❌ 不推荐(维护成本高) |
| 大规模邮件系统 | ✅ 适用(高并发,邮件队列优化) | ❌ 不适用(单进程瓶颈) |
| 个人邮件服务器 | ✅ 推荐(易配置) | ❌ 不推荐(复杂,易出错) |
| 旧 Unix 服务器 | ✅ 可用 | ✅ 适合(Unix 传统邮件服务器) |
Postfix 安全?
✅ 最小权限设计:采用 模块化架构,大部分进程在受限权限下运行,即使有漏洞,也很难提升权限。
✅ 防止垃圾邮件:支持 SPF、DKIM、DMARC,结合 RBL(黑名单)机制有效拦截垃圾邮件。
✅ SMTP 认证:支持 TLS 加密(STARTTLS),可防止明文密码泄露。
✅ 防止邮件伪造:默认支持 SASL 认证,可结合 OpenDKIM 进行 DKIM 签名,提高邮件可信度。
✅ DDoS 保护:支持 Greylisting(灰名单),防止邮件轰炸攻击。
✅ 日志监控:支持 fail2ban,可自动封禁可疑 IP,防止暴力破解。
用途:
那么实现以域名方式发送邮件是不是很酷。✅ 最佳方案:使用 SMTP 代发(163、Gmail、SendGrid)
SMTP 是什么?
SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)服务器是用于发送邮件的服务器,它负责接收、传输和分发电子邮件到目标邮件服务器。
SMTP 服务器的作用:
📩 发送邮件:无论是个人邮件、系统通知还是批量邮件,SMTP 服务器都是邮件发送的核心。 ✅ 身份认证:防止垃圾邮件,SMTP 服务器通常要求发件人身份验证(用户名+密码)。 🔄 邮件中继:SMTP 服务器可以作为邮件中继,把邮件从一个服务器转发到另一个服务器。 🚀 提高邮件送达率:使用受信任的 SMTP 服务器(如 Gmail、SendGrid)可以提高邮件送达率,避免进入垃圾邮件。
配置
DNS 添加 MX 记录
| 名称 | 记录类型 | 值 |
| :--- | :------: | ---------------: |
| @ | MX | mail.example.com |
DNS 添加 SPF 记录
SPF 记录用于验证邮件的来源是否可信。
| 名称 | 记录类型 | 值 |
| :--- | :------: | ------------------------------: |
| @ | TXT | v=spf1 ip4:192.168.111.111 -all |
- ip4:192.168.1.100:允许此 IP 地址发送邮件。
- -all:拒绝所有不匹配的来源,防止伪造邮件。
DKIM 用于邮件签名
更多安全,DKIM 用于邮件签名,确保邮件未被篡改。
# 1. 安装 OpenDKIM
apt install opendkim opendkim-tools
# 2. 生成 DKIM 密钥(查看 cat default.txt)
opendkim-genkey -D /etc/opendkim/keys/ -s default -d example.com
# 3. 在 DNS 中添加 DKIM 记录:
default._domainkey TXT "v=DKIM1; k=rsa; p=你的公钥"
# 4. 配置 Postfix 关联 DKIM: 在 main.cf 中添加:
smtpd_milters = unix:/var/run/opendkim/opendkim.sock
non_smtpd_milters = unix:/var/run/opendkim/opendkim.sock
DNS 添加 DMARC 记录:
_dmarc TXT "v=DMARC1; p=reject; rua=mailto:admin@example.com"
- v=DMARC1:表示 DMARC 版本。
- p=reject:拒绝所有不符合 SPF/DKIM 规则的邮件。
- rua=mailto:admin@example.com:接收 DMARC 报告的邮箱。
验证所有邮件设置
# 1. 检查 SPF 记录
dig TXT example.com
# 2. 检查 DKIM 记录
dig TXT default._domainkey.example.com
# 3. 检查 DMARC 记录
dig TXT _dmarc.example.com
检查
反向 DNS 解析,确保你的邮件服务器域名与 rDNS 匹配,否则邮件容易被判为垃圾邮件!
dig -x 192.168.1.100
# 100.1.168.192.in-addr.arpa. PTR mail.example.com.
重启
systemctl restart opendkim postfix
在遥远的过去,互联网是一个友好的环境。看上去,城楼之下,人人皆可传递纸飞机。向着城楼飞去,要想飞过城楼是不能的(25 端口高危)。 高高的城墙紧关的大门,就算是翻上了城楼也会被士兵拦下,也得热情招呼递上专属令牌,才可以进入城内,城内那可是眼花缭乱,因为它们还可以链接着更多的世界之城。 要是混熟了,搞得一枚令牌天天跑着,那也得交个混熟的费用。(每个士兵接待流量 100 条左右,超过计服务费)。