备份 Linux 邮件服务器时,关键要保证数据完整性(用户邮件不丢失)和配置可还原性(恢复服务状态),根据邮件系统架构的不同(如 Postfix + Dovecot、Exim + Courier 等),需要备份的内容可分为5 大类:

这是最宝贵的部分,丢失后无法重建。
存储路径:取决于邮件存储格式。
Maildir(推荐):每个用户一个目录,如/home/user/Maildir/ 或/var/mail/vhosts/domain.com/user/。
mbox:每个用户一个文件,如/var/mail/user 或/var/spool/mail/user。
备份方式:建议使用文件级增量备份(如 rsync、borgbackup),避免直接 tar 大型目录影响性能。

注意:如果使用共享邮箱(如公共文件夹、归档邮箱),需同时备份对应的存储路径。
邮件服务通常由多个组件构成,每个组件的配置文件都需要记录:
| 组件 | 典型配置文件路径 |
| MTA (Postfix) | /etc/postfix/main.cf,/etc/postfix/master.cf,/etc/postfix/virtual,/etc/postfix/transport |
| MDA/IMAP (Dovecot) | /etc/dovecot/dovecot.conf,/etc/dovecot/conf.d/*.conf |
| 反垃圾/反病毒 | /etc/spamassassin/,/etc/amavis/,/etc/clamav/ |
| Webmail (Roundcube) | /etc/roundcube/ 或/var/www/roundcube/config/ |
| 认证服务 (Cyrus SASL) | /etc/sasl2/smtpd.conf |
| TLS 证书 | /etc/ssl/certs/mailserver.pem,/etc/ssl/private/mailserver.key |
如果使用数据库或 LDAP 存储用户、别名、域,则必须备份:
MySQL/PostgreSQL:
- 导出发送数据库:mysqldump -u root postfix > postfix_backup.sql(常见库名postfix、vmail、roundcubemail)

- 同时备份数据库配置文件/etc/mysql/ 或/etc/postgresql/
LDAP:
- 使用slapcat 导出 LDIF 文件
- 备份 OpenLDAP 的配置文件/etc/ldap/slapd.d/ 或/etc/openldap/slapd.conf
系统用户/PAM:
/etc/passwd,/etc/shadow,/etc/group(如果用户是系统账户)
/etc/dovecot/users(如果使用 passwd-file)
邮件队列(等待发送的邮件):
- Postfix 队列:/var/spool/postfix/ 下active/,deferred/,incoming/ 等
注意:队列数据变化频繁,建议配合服务停止或使用postsuper 工具进行一致性备份。
日志(用于审计和故障排查):
/var/log/maillog 或/var/log/mail.log
- 建议保留 30-90 天,可使用logrotate 压缩管理。
DKIM 密钥:/etc/opendkim/keys/ 或/etc/dkimkeys/
SpamAssassin 学习数据:Bayes 数据库/var/lib/spamassassin/.spamassassin/bayes
邮件过滤规则:用户自定义的 Sieve 脚本(Dovecot 中位于用户主目录或/var/lib/dovecot/sieve/)
CRON 任务:可能用于清理或审计的/etc/crontab
1、使用备份清单脚本:编写一个备份脚本,在备份前检查所有关键目录是否存在,并记录 MD5 校验值。
2、备份周期:
- 邮件数据(核心):每天增量备份 + 每周全量
- 配置文件与数据库:每次变更后自动备份(如 Ansible/kickstart 触发)
3、恢复测试:至少每季度在隔离环境中执行一次完整恢复演练,确保数据库和邮件数据能正常挂载。
4、加密与异地:备份数据应加密(如gpg 或openssl),并传输到异地或云存储(如rsync + ssh、s3cmd)。
典型备份脚本片段(Postfix + Dovecot + MySQL)
#!/bin/bash BACKUP_DIR="/backup/mailserver/$(date +%Y%m%d)" mkdir -p "$BACKUP_DIR" 1. 备份配置文件 tar czf "$BACKUP_DIR/etc_mail.tar.gz" /etc/postfix /etc/dovecot /etc/amavis /etc/clamav 2. 备份数据库 mysqldump -u root --all-databases > "$BACKUP_DIR/mysql_all.sql" 3. 备份邮件数据(Maildir 示例) rsync -a /var/mail/vhosts/ "$BACKUP_DIR/vhosts/" # 推荐 rsync 代替 tar 4. 备份队列(停止 Postfix 后执行) systemctl stop postfix tar czf "$BACKUP_DIR/queue.tar.gz" /var/spool/postfix systemctl start postfix 5. 备份 SSL 证书 cp -a /etc/ssl/ "$BACKUP_DIR/ssl/"
有了这套清单,无论服务器硬件故障、误删配置还是恶意攻击,都能在较短时间内恢复服务(通常需要 30 分钟 - 2 小时,取决于数据量)。
文章摘自:https://idc.huochengrm.cn/js/25137.html
评论