centos邮件服务器权限设置指南
小樊
41
2025-11-21 21:01:15
CentOS 邮件服务器权限设置指南
一 基础安全与网络边界
- 安装并启用核心组件:建议以最小安装为基础,部署 Postfix(MTA) 与 Dovecot(MDA/IMAP/POP3),并启用 SASL 认证与 TLS 加密。示例(Postfix main.cf 关键项):
- myhostname、mydomain、myorigin、inet_interfaces、inet_protocols、home_mailbox
- smtpd_sasl_auth_enable=yes、smtpd_sasl_security_options=noanonymous
- smtpd_relay_restrictions=permit_mynetworks permit_sasl_authenticated defer_unauth_destination
- smtpd_tls_security_level 与证书路径(生产建议使用 Let’s Encrypt 证书)
- 防火墙放行:仅开放必要端口,优先使用 Submission(587/SMTPS) 与 IMAPS(993),必要时开放 SMTP(25)、POP3(110)、IMAP(143)。
- firewall-cmd --permanent --add-port=25/tcp
- firewall-cmd --permanent --add-port=587/tcp
- firewall-cmd --permanent --add-port=110/tcp
- firewall-cmd --permanent --add-port=143/tcp
- firewall-cmd --permanent --add-port=993/tcp
- firewall-cmd --reload
- 服务启动与开机自启:
- systemctl enable --now postfix dovecot
- 说明:上述配置为权限与安全的基础,后续目录/文件权限与 SELinux 策略需与之匹配。
二 关键目录与文件权限
- 邮件投递与存储(mbox 场景):系统级收件箱 /var/spool/mail 建议仅允许 root:mail 访问,权限 0700,防止非授权读取。
- chown root:mail /var/spool/mail
- chmod 700 /var/spool/mail
- 邮件投递与存储(Maildir 场景):若使用 Maildir(Dovecot 常用),确保用户家目录与 Maildir 属主一致,权限最小化。
- 示例(用户 alice):
- chown -R alice:alice /home/alice
- chmod 700 /home/alice
- find /home/alice -type d -exec chmod 700 {} ;
- find /home/alice -type f -exec chmod 600 {} ;
- mail_location = maildir:~/Maildir(Dovecot 配置)
- Postfix 队列与运行时目录:
- /var/spool/postfix 建议属主 postfix:postfix,权限 0755(队列文件由 postfix 内部严格控制)。
- chown -R postfix:postfix /var/spool/postfix
- chmod 755 /var/spool/postfix
- 证书与密钥文件:TLS 证书与私钥仅对必要进程可读,建议 root:root 0600,证书 0644。
- chown root:root /etc/letsencrypt/{fullchain.pem,privkey.pem}
- chmod 600 /etc/letsencrypt/privkey.pem
- chmod 644 /etc/letsencrypt/fullchain.pem
- 原则:最小权限与“属主-属组-权限”一致,避免组/其他用户写入投递或队列目录。
三 SELinux 与系统策略
- 启用 SELinux 时,邮件相关目录需具备正确的 SELinux 类型,否则即使文件系统权限正确也会被拒绝。
- 系统收件箱:chcon -R system_u:object_r:mail_spool_t:s0 /var/spool/mail
- 变更后重启相关服务:systemctl restart postfix
- 如需为 Web 管理或外部程序与邮件服务交互,按需开启 SELinux 布尔值(示例为通用网络连通布尔,非邮件专用,请谨慎评估):
- setsebool -P httpd_can_network_connect 1
- 建议:在生产环境优先使用 SELinux 管理访问,而非直接关闭;变更前用 getenforce/setenforce 与 ausearch/sealert 做验证与审计。
四 用户与认证权限
- 系统用户与家目录:邮件用户使用系统账号时,家目录与 .ssh(若存在)仅对用户可读写执行,禁止组/其他访问。
- chmod 700 /home/mailuser
- chmod 700 /home/mailuser/.ssh
- SASL 与 Dovecot 认证:
- Postfix 启用 SASL(smtpd_sasl_auth_enable=yes),仅允许 mynetworks 与 SASL 已认证 用户中继。
- Dovecot 提供 SASL(auth_mechanisms=plain login),禁用明文认证(disable_plaintext_auth=yes)在公网环境是良好实践;内网可结合 STARTTLS/SSL 使用。
- 虚拟用户场景:若采用虚拟域/数据库(如 MariaDB),确保数据库用户最小权限、口令强度与连接来源限制;Postfix 与 Dovecot 仅使用所需数据库权限,避免 DBA 级权限暴露。
五 端口 服务与验证
- 端口与服务对照:
- SMTP(25/TCP):服务器间投递(MTA→MTA),建议仅对受信网络开放,或配合策略限制。
- Submission(587/TCP):客户端发信(MSA),强制 STARTTLS + SASL。
- SMTPS(465/TCP):隐式加密提交(若启用)。
- IMAP(143/TCP)/IMAPS(993/TCP):客户端收信,优先 IMAPS。
- POP3(110/TCP)/POP3S(995/TCP):可选,优先 POP3S。
- 连通性与安全验证:
- 端口与协议:ss -lntp | egrep ‘:(25|587|465|110|143|993)’
- SMTP 握手测试:openssl s_client -connect mail.example.com:25 -starttls smtp
- 队列与日志:postqueue -p;tail -f /var/log/maillog /var/log/dovecot.log
- 防火墙与服务就绪后,使用邮件客户端(如 Thunderbird/Outlook)配置 IMAPS/Submission,验证登录、收信与发信全流程。