前期准备
项目 | 具体要求 | 备注 |
---|---|---|
域名解析 | 添加MX记录指向服务器IP;可选设置SPF/DKIM/DMARC提升可信度 | 通过DNS管理控制台操作 |
系统环境 | CentOS/Ubuntu等Linux发行版;预留至少2GB内存+50GB磁盘空间 | 避免与其他高负载应用共享资源 |
软件选择 | Postfix(MTA)、Dovecot(IMAP/POP3)、OpenDKIM(加密)、Amavisd-new(过滤) | 均为开源免费工具组合 |
防火墙配置 | 开放端口:25(SMTP)、143(IMAP SSL)、993(IMAP TLS)、995(POP3 SSL) | 根据实际协议需求调整 |
安装步骤详解
基础组件部署
# Ubuntu示例(CentOS替换为yum源) sudo apt update && apt install postfix dovecot-core opendkim amavisd-new mailutils
关键决策点:安装时选择“Internet Site”模式,自动配置基本参数。
Postfix核心配置
编辑主配置文件 /etc/postfix/main.cf
:
myhostname = mail.yourdomain.com # FQDN全称 mydomain = yourdomain.com # 邮箱后缀 myorigin = $mydomain # 发件人地址格式 inet_interfaces = all # 监听所有网卡 home_mailbox = Maildir/ # 采用Maildir存储结构 mailbox_command = # 禁用本地账户干扰 smtpd_banner = $myhostname ESMTP # 修改欢迎信息防探测
⚠️ 必须删除默认存在的
virtual_alias_maps
行以避免冲突。
Dovecot服务搭建
创建证书并启动SSL支持:
openssl req -newkey rsa:4096 -nodes -x509 -days 365 -out /etc/dovecot/private/selfsigned.pem -keyout /etc/dovecot/private/selfsigned.key chown -R vmail:vmail /etc/dovecot/private/
修改 /etc/dovecot/conf.d/10-ssl.conf
:
ssl = required ssl_cert = </etc/dovecot/private/selfsigned.pem ssl_key = </etc/dovecot/private/selfsigned.key protocols = imap pop3
💡 生产环境建议申请Let’s Encrypt免费证书替代自签名。
用户管理自动化
批量创建虚拟用户脚本示例:
for user in user1 user2; do dir="/home/vmail/$user" mkdir -p "$dir/Cursor" "${dir}/Temp" chown -R vmail:vmail "$dir" done
同步至系统账号数据库:
useradd -r -g vmail -d /dev/null -s /bin/false vmail pwconv && grpconv # 更新影子密码文件缓存
🔒 确保
/etc/passwd
中无明文密码存储。
安全防护强化
威胁类型 | 应对措施 | 实施命令/路径 |
---|---|---|
SPAM过滤 | 集成Razor2+Pyzor检测引擎 | amavisd-new 配置文件启用规则集 |
DDoS防护 | fail2ban联动监牢失败登录尝试 | /etc/fail2ban/jail.local 配置 |
数据备份 | 每日增量+每周全量异地备份 | crontab定时执行rsync任务 |
TLS强制 | 所有连接必须使用加密通道 | Postfix/Dovecot开启相应参数 |
客户端配置指南
协议类型 | 服务器地址 | 端口号 | 加密方式 | 认证方法 |
---|---|---|---|---|
IMAP | mail.example.com | 993 | SSL/TLS | OAuth2或PLAIN文本 |
POP3 | mail.example.com | 995 | SSL/TLS | CRAM-MD5 |
SMTP发信 | smtp.example.com | 587 | STARTTLS | LOGIN |
📌 Outlook插件推荐:使用Office Add-in for SSO实现单点登录。
常见问题与解答
Q1: 为什么外部邮件被标记为垃圾邮件?
✅ 解决方案:检查SPF记录是否发布正确(TXT值为v=spf1 mx include:your_ip_range -all
),并为出站邮件添加DKIM签名,可通过opendkim.conf
启用签名功能。
Q2: 用户无法通过移动端收发邮件怎么办?
🔍 排查步骤:
- 确认端口是否在安全组放行(如AWS EC2需检查Security Group);
- 抓包分析TLS握手过程(使用tcpdump命令);
- 测试不同加密套件兼容性(优先选择ECDHE-RSA-AES256-GCM)。
若仍无法解决,可临时关闭SSL验证进行
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/86906.html