在sendmail邮件服务器中配置域名涉及多个关键步骤,需确保域名解析、MX记录、SPF/DKIM/DMARC等认证机制正确设置。以下是详细流程和扩展知识:
1. 修改sendmail.cf或submit.cf文件
- 主配置文件通常位于`/etc/mail/sendmail.cf`,需定位`Dj`或`DM`参数设置本地域名。例如:
bash
DM example.com
Dj$w.example.com
`$w`代表主机名,确保与`/etc/hostname`一致。若使用宏配置(通过`m4`生成),需编辑`/etc/mail/sendmail.mc`并添加:
m4
define(`confDOMAIN_NAME', `example.com')dnl
MASQUERADE_AS(`example.com')dnl
修改后执行`m4 sendmail.mc > sendmail.cf`并重启服务。
2. 设置MX记录和DNS解析
- 在域名注册商的DNS管理界面添加MX记录,指向邮件服务器IP,优先级通常为10:
example.com. IN MX 10 mail.example.com.
mail.example.com. IN A 192.0.2.1
- 反向解析(PTR记录)需由ISP配置,确保IP能解析到域名,避免被标记为垃圾邮件。
3. SPF、DKIM和DMARC配置
- SPF:在DNS中添加TXT记录声明合法发信IP:
example.com. IN TXT "v=spf1 mx a:mail.example.com -all"
- DKIM:使用`opendkim`生成密钥对,将公钥写入DNS:
mail._domainkey.example.com. IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC..."
并在`sendmail.mc`中启用DKIM验证模块。
- DMARC:定义邮件处理策略:
_dmarc.example.com. IN TXT "v=DMARC1; p=quarantine; rua=mailto:postmaster@example.com"
4. 本地网络和防火墙配置
- 确保防火墙开放25(SMTP)、587( Submission)、465(SMTPS)端口。若服务器位于内网,需设置端口映射或NAT规则。
- 使用`telnet mail.example.com 25`测试端口连通性。
5. 别名和虚拟域配置
- 编辑`/etc/mail/virtusertable`映射虚拟域名到本地用户:
@sub.example.com %1@example.com
执行`makemap hash virtusertable < virtusertable`生成数据库。
- 别名文件`/etc/mail/aliases`可定义转发规则,如:
postmaster: root
需运行`newaliases`更新。
6. 日志与调试
- 通过`tail -f /var/log/maillog`实时查看日志,常见错误包括DNS查询失败、身份认证失败或中继拒绝。
- 使用`sendmail -bv user@example.com`验证用户邮箱是否存在。
7. TLS加密与认证
- 在`sendmail.mc`中启用STARTTLS:
m4
define(`confCACERT_PATH', `/etc/pki/tls/certs')dnl
define(`confSERVER_CERT', `/etc/pki/tls/certs/sendmail.pem')dnl
define(`confSERVER_KEY', `/etc/pki/tls/certs/sendmail.key')dnl
使用Let's Encrypt等工具生成证书,确保证书链完整。
8. 反垃圾邮件措施
- 集成SpamAssassin:在`sendmail.mc`中添加:
m4
INPUT_MAIL_FILTER(`spamassassin', `S=local:/var/run/spamass.sock')dnl
- 配置RBL(Real-time Blackhole List)检查:
m4
FEATURE(`dnsbl', `zen.spamhaus.org', `"554 Rejected: See http://www.spamhaus.org/query/rbl?ip=$&{client_addr}"')dnl
9. 用户认证与中继控制
- 启用SASL认证允许外部用户发信,编辑`/etc/sasl2/Sendmail.conf`:
pwcheck_method: saslauthd
mech_list: PLAIN LOGIN
- 限制中继权限,在`/etc/mail/access`中指定可信IP或域名:
Connect:192.0.2.0/24 RELAY
10. 备份与监控
- 定期备份配置文件及邮件存储目录(如`/var/mail`),可使用`rsync`同步至远程服务器。
- 监控工具如Nagios或Prometheus可检测服务状态,设置告警阈值。
常见问题:若邮件被拒收,需检查IP是否被列入黑名单、DNS解析延迟或SPF/DKIM签名错误。通过`dig MX example.com`和`nslookup -type=txt example.com`验证DNS记录。
查看详情
查看详情