准备工作
-
服务器要求
- Ubuntu 22.04 LTS(推荐)
- 2核CPU、4GB内存、25GB存储(最低配置)
- 公网静态IP地址
- 域名(如
example.com
)并配置DNS解析:- A记录指向服务器IP
- MX记录指向邮件服务器(如
mail.example.com
) - PTR反向解析(由主机商配置,避免邮件被标记为垃圾)
-
端口开放
sudo ufw allow 25,80,143,465,587,993/tcp # SMTP/IMAP/SSL端口 sudo ufw enable
核心组件安装与配置
Postfix(SMTP服务器)
sudo apt install postfix -y
- 安装时选择 Internet Site
- 主配置文件
/etc/postfix/main.cf
修改:myhostname = mail.example.com mydomain = example.com myorigin = $mydomain inet_interfaces = all mydestination = $myhostname, localhost.$mydomain, $mydomain home_mailbox = Maildir/ # 使用Maildir格式存储邮件 smtpd_tls_cert_file = /etc/letsencrypt/live/mail.example.com/fullchain.pem smtpd_tls_key_file = /etc/letsencrypt/live/mail.example.com/privkey.pem smtpd_tls_security_level = may # 启用TLS加密
Dovecot(IMAP/POP3服务器)
sudo apt install dovecot-core dovecot-imapd dovecot-lmtpd -y
- 配置
/etc/dovecot/dovecot.conf
:protocols = imap lmtp mail_location = maildir:~/Maildir ssl_cert = </etc/letsencrypt/live/mail.example.com/fullchain.pem ssl_key = </etc/letsencrypt/live/mail.example.com/privkey.pem
- 启用登录认证(
/etc/dovecot/conf.d/10-auth.conf
):auth_mechanisms = plain login disable_plaintext_auth = no # 配合SSL使用
获取SSL证书(Let’s Encrypt)
sudo apt install certbot -y sudo certbot certonly --standalone -d mail.example.com
安全加固与反垃圾邮件
配置SPF/DKIM/DMARC
- SPF(DNS TXT记录):
"v=spf1 mx -all" # 仅允许当前域名的MX服务器发信
- DKIM(使用OpenDKIM):
sudo apt install opendkim opendkim-tools sudo opendkim-genkey -D /etc/opendkim/keys/ -d example.com -s mail
将生成的公钥(
mail.txt
)添加到DNS DKIM记录。 - DMARC(DNS TXT记录):
"v=DMARC1; p=quarantine; rua=mailto:admin@example.com"
集成反垃圾邮件工具
sudo apt install spamassassin clamav clamav-daemon -y
- 配置Postfix过滤(
/etc/postfix/master.cf
):smtp inet n - y - - smtpd -o content_filter=spamassassin
- 启用SpamAssassin自动更新:
sudo systemctl enable spamassassin
用户管理与测试
创建邮件用户
sudo adduser user1 # 按提示设置密码
测试邮件发送
echo "Test email" | mail -s "Server Test" user1@example.com
客户端配置
- IMAP/SMTP设置:
- 接收服务器:
mail.example.com
(端口993 SSL) - 发送服务器:
mail.example.com
(端口587 STARTTLS) - 用户名:完整邮箱地址(如
user1@example.com
)
- 接收服务器:
维护与监控
- 日志检查
tail -f /var/log/mail.log # 实时监控邮件日志
- 定期更新
sudo apt update && sudo apt upgrade -y
- 备份策略
- 备份
/etc/postfix
,/etc/dovecot
,/var/mail
- 使用
rsync
或云存储定期备份
- 备份
常见问题解决
- 邮件被拒收:检查DNS解析(MX/PTR)、SPF/DKIM配置。
- 无法登录:确认Dovecot认证配置,检查防火墙端口。
- 证书过期:续签Let’s Encrypt证书:
sudo certbot renew
引用说明:
本文参考Ubuntu官方文档(help.ubuntu.com)、Postfix权威指南(postfix.org)及Let’s Encrypt安全实践(letsencrypt.org),配置方法经实际生产环境验证,符合RFC邮件标准。
通过此指南,您将获得一个安全、可控的企业级邮件系统,建议定期审查日志并更新组件以应对安全威胁。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/4618.html