1. 网络接口与监听配置
配置Postfix的inet_interfaces参数,明确服务器监听的网络接口。生产环境中建议设置为all(监听所有接口),若为多网卡服务器可指定具体接口(如eth0),避免遗漏合法连接请求。
2. 主机名与域名设置
正确配置Postfix的核心主机名参数:myhostname(邮件服务器主机名,如mail.example.com)、mydomain(邮件域名,如example.com)、myorigin(邮件来源域名,默认取$mydomain)。这些参数直接影响邮件头信息的合法性,确保收件方正确识别邮件来源。
3. 接受邮件域名定义
通过mydestination参数指定服务器接受邮件的域名列表,通常包含$myhostname、localhost.$mydomain、$mydomain(如mail.example.com、localhost.example.com、example.com)。若需接收子域名邮件,可添加mail.$mydomain等条目,避免邮件被拒绝。
4. 中继网络控制
设置mynetworks参数,限定允许通过服务器中继邮件的IP范围。默认应包含本地回环(127.0.0.0/8)和本地网络(如192.168.1.0/24),禁止开放公网所有IP(如0.0.0.0/0),防止服务器被滥用为垃圾邮件中继节点。
5. DNS记录配置
为邮件服务器配置必要的DNS记录,确保邮件路由和反垃圾验证正常:
- A记录:将域名指向服务器公网IP(如
mail.example.com. IN A 192.0.2.100); - MX记录:指定邮件服务器优先级(如
example.com. IN MX 10 mail.example.com.,数字越小优先级越高); - SPF记录:声明允许发送邮件的IP地址(如
v=spf1 ip4:192.0.2.100 -all),防止域名伪造; - DKIM记录:添加域名密钥标识(需通过工具生成密钥对并配置),提高邮件可信度;
- DMARC记录:定义未通过SPF/DKIM验证的邮件处理策略(如
v=DMARC1; p=none; rua=mailto:admin@example.com),减少钓鱼邮件风险。
6. 防火墙端口放行
使用ufw或iptables配置防火墙,允许邮件服务必需的端口流量:
- SMTP(25端口):用于邮件传输(必须开放);
- IMAP(143端口)/SMTPS(465端口):用于加密的邮件客户端收发(可选,建议开启);
- IMAPS(993端口)/SMTP Submission(587端口):用于加密的邮件提交(推荐开启,替代明文端口)。
示例命令:sudo ufw allow 25/tcp && sudo ufw allow 465/tcp && sudo ufw allow 587/tcp。
7. SSL/TLS加密配置
为Postfix和Dovecot配置SSL/TLS证书,加密邮件传输数据(防止中间人攻击)。可使用Let’s Encrypt免费获取证书,通过Certbot工具自动配置:
sudo apt install certbot python3-certbot-postfix
sudo certbot --postfix -d mail.example.com
配置完成后,Postfix会自动使用证书加密SMTP流量(端口465/587),Dovecot会加密IMAP/SMTP端口(993/465)。
8. 反垃圾与安全策略
启用Postfix的反垃圾机制,通过smtpd_recipient_restrictions参数限制非法邮件:
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
permit_mynetworks:允许本地网络或信任IP发送邮件;permit_sasl_authenticated:允许通过SASL认证的用户发送邮件;reject_unauth_destination:拒绝未授权的目标域名(防止开放中继)。
同时,配置Dovecot的SASL认证(如smtpd_sasl_auth_enable = yes),确保只有合法用户能访问邮件服务。