CentOS邮件服务器权限管理技巧
邮件服务器的权限管理核心是最小化原则——仅授予用户和进程完成其功能所需的最小权限。
mailserver)和组(如mailgroup),避免使用root或普通用户运行邮件服务。例如,Postfix的运行用户应设置为mailserver,Dovecot的运行用户也应独立配置。通过groupadd mailgroup创建组,useradd -g mailgroup -s /sbin/nologin -M mailserver创建用户(-s /sbin/nologin禁止登录shell,-M不创建家目录)。/etc/login.defs文件设置密码复杂度要求(如PASS_MIN_LEN 10、PASS_REQUIRE_MIXED_CASE yes)。定期检查空口令账户(awk -F ":" '$2 == "" {print $1}' /etc/shadow),并及时修复。userdel -r username,-r选项同时删除家目录和邮件目录),避免残留数据泄露。邮件数据(如Maildir或/var/spool/mail)是邮件服务器的核心资产,需严格限制访问权限。
/home/username)应设置为755(所有者可读写执行,组和其他用户可读执行),所有者为用户自身(如mailuser),组为用户组(如mailuser)。若使用Maildir格式(推荐),需确保Maildir目录权限为700(仅所有者可访问)。/var/spool/mail:用于存储系统用户的邮件,所有者为root,组为mail,权限为750(仅root和mail组成员可访问)。/var/spool/postfix:Postfix的临时文件目录,所有者为postfix,组为postfix,权限为750(仅postfix进程可写入,其他用户可读取)。Maildir格式(如~/Maildir),需确保目录权限为700(chmod 700 ~/Maildir),子目录(cur、new、tmp)权限也为700,防止未经授权的邮件读取或篡改。邮件服务配置文件(如Postfix的main.cf、Dovecot的dovecot.conf)的权限需严格控制,避免被篡改。
/etc/postfix/main.cf和/etc/postfix/master.cf的所有者应为root,组为postfix,权限为640(chown root:postfix /etc/postfix/main.cf,chmod 640 /etc/postfix/main.cf)。/etc/postfix目录权限为750(chmod 750 /etc/postfix)。/etc/dovecot/dovecot.conf和/etc/dovecot/conf.d/下的配置文件所有者应为root,组为dovecot,权限为640(chown root:dovecot /etc/dovecot/dovecot.conf,chmod 640 /etc/dovecot/dovecot.conf)。/etc/dovecot目录权限为750(chmod 750 /etc/dovecot)。若系统启用SELinux,需调整邮件相关目录的安全上下文,确保服务正常运行。
/var/mail目录的SELinux上下文应为mail_spool_t(semanage fcontext -a -t mail_spool_t "/var/mail(/.*)?",restorecon -Rv /var/mail)。若使用自定义邮件目录(如/var/mail/vhosts),需同步设置上下文。httpd_can_network_connect布尔值(setsebool -P httpd_can_network_connect 1),允许邮件服务通过网络连接。邮件服务依赖SMTP(25)、IMAP(143/993)、POP3(110/995)等端口,需通过防火墙限制访问范围。
firewalld开放端口(firewall-cmd --permanent --add-service=smtp、firewall-cmd --permanent --add-service=imap、firewall-cmd --permanent --add-service=pop3),然后重载防火墙(firewall-cmd --reload)。firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="25" accept'限制SMTP端口的访问源,提升安全性。