linux邮件目录加固需确保/var/mail权限为2755且属组mail,用户邮件文件权限为600;配置mta强制权限、启用selinux/apparmor、禁用不安全服务与本地访问方式。

Linux系统中,/var/mail(或/var/spool/mail)目录存放用户邮件文件,每个用户对应一个同名文件(如/var/mail/alice)。若权限配置不当,可能造成邮件内容被未授权用户读取、篡改甚至提权。加固核心是:限制访问范围、启用安全机制、减少攻击面。
确认Mail目录当前权限与归属
执行以下命令检查现状:
-
ls -ld /var/mail /var/spool/mail—— 目录应为drwxrwsr-x(即2755),属主root,属组mail; -
ls -l /var/mail/—— 各用户邮件文件应为-rw-------(即600),属主为对应用户,属组为mail; - 若发现文件属组不是
mail或权限宽于600,需立即修正。
强制统一邮件文件权限策略
多数MTA(如Postfix、Sendmail)默认创建邮件文件时使用umask 007,但部分配置或脚本可能绕过。推荐双保险:
- 在MTA配置中显式设定权限:Postfix可在
/etc/postfix/main.cf中添加default_privs = mail并确保mail_spool_directory权限正确; - 用
inotifywait或定时任务自动修复异常文件:find /var/mail -type f ! -perm 600 -exec chmod 600 {} \; - 禁止普通用户直接写入
/var/mail目录,仅允许MTA和本地投递程序(如procmail)通过setgid mail方式操作。
启用SELinux或AppArmor强制访问控制
即使传统权限正确,内核级MAC能拦截越权访问行为:
- RHEL/CentOS:确认SELinux启用(
getenforce返回Enforcing),检查mail_spool_t上下文是否已应用:ls -Z /var/mail应显示system_u:object_r:mail_spool_t:s0; - Ubuntu/Debian:启用AppArmor配置
/etc/apparmor.d/usr.sbin.postfix,确保包含/var/mail/** rwk,等精确规则; - 禁用不必要的邮件相关服务(如
imapd、pop3d),避免扩大MAC策略盲区。
禁用不安全的本地邮件访问方式
传统mail命令或mutt直读/var/mail/$USER存在风险,建议替代方案:
- 停用
mailx的本地投递功能,在/etc/mail.rc中注释掉set record等易泄露路径的配置; - 要求用户通过IMAP/SSL(如Dovecot)访问邮箱,所有通信加密,且服务端可集中审计登录与读取行为;
- 对必须保留本地邮件的系统,将
/var/mail挂载为noexec,nosuid,nodev,防止恶意邮件触发代码执行。










