CentOS文件系统安全防护措施有哪些
小樊
34
2025-12-13 11:03:34
CentOS 文件系统安全防护措施
一 权限与所有权基线
- 按“最小权限原则”配置:用 chmod/chown/chgrp 设置关键目录(如 /etc、/var、/usr、/boot)的所有者与权限,避免使用 777;对系统二进制与配置实施“仅 root 可写”。
- 统一默认权限:在 /etc/profile 或 /etc/bashrc 设置 umask 027(新文件 640、新目录 750),减少“其他用户”访问面。
- 精细化授权:对多用户/多组共享场景启用 ACL(setfacl/getfacl),在不改变属主/属组的前提下授予特定用户或组精确权限。
- 谨慎使用特殊权限位:仅对必要系统程序保留 SUID/SGID;对共享目录按需在目录上设置 SGID 以继承组;对公共可写目录(如 /tmp)设置 Sticky Bit(1777) 防止越权删除。
- 关键口令文件防篡改:对 /etc/passwd、/etc/shadow、/etc/group、/etc/gshadow 设置不可变属性(如 chattr +i),降低被恶意修改的风险。
二 挂载选项与可移动介质
- 对临时与共享目录启用安全挂载选项:在 /etc/fstab 为 /tmp、/var/tmp、/dev/shm 及可移动介质分区设置 nodev、nosuid、noexec,阻断设备挂载、SUID 提权与脚本执行。示例:
- /tmp 分区:挂载选项包含 nodev,nosuid,noexec
- 重新挂载生效:mount -o remount,noexec,nosuid,nodev /tmp
- 按需禁用不必要的文件系统内核模块(如 cramfs、freevxfs、jffs2、hfs、hfsplus、squashfs、udf、FAT),减少攻击面(在 /etc/modprobe.d/deny-fs.conf 中 blacklist 并验证 lsmod)。
- 对含敏感数据的分区启用 LUKS/dm-crypt 加密(如 /home、/var),确保离线或介质丢失时数据保密。
三 完整性保护与引导安全
- 关键系统文件与目录加固:对 /bin、/sbin、/usr/bin、/usr/sbin、/boot 等使用 chattr +i 设为不可修改;对日志文件(如 /var/log/messages)使用 chattr +a 仅允许追加,防止被覆盖。
- 引导加载器安全:设置 /boot/grub2/grub.cfg 与 /boot/grub2/user.cfg 权限为 root:root,og-rwx;为 GRUB 配置引导口令,防止未授权引导参数注入。
- 恢复模式防护:在 /usr/lib/systemd/system/rescue.service 与 emergency.service 中确保 ExecStart=/sbin/sulogin,使单用户/紧急模式必须认证。
- 核心转储限制:在 /etc/security/limits.conf 设置 * hard core 0,并在 /etc/sysctl.conf 设置 fs.suid_dumpable=0,避免 setuid 程序转储包含敏感信息。
四 审计、日志与软件供应链
- 审计与日志:启用并配置 auditd,对关键目录与关键系统调用(如文件删除、权限修改、sudo 执行)进行审计;集中收集与分析 /var/log/secure、/var/log/messages、/var/log/audit/audit.log,配合 Fail2ban 降低暴力破解风险。
- 软件包完整性与更新:在 /etc/yum.conf 与 /etc/yum.repos.d/ 中确保 gpgcheck=1,验证 RPM GPG 签名;定期执行 yum update 及时修补漏洞。
- 登录与会话安全:设置 TMOUT=600(在 /etc/profile 或相应 profile.d 文件),减少闲置会话被劫持风险。
五 快速检查清单与常用命令
- 权限基线:
- 检查关键目录权限与属主:ls -ld /etc /var /usr /boot
- 设置默认 umask:echo “umask 027” >> /etc/profile && source /etc/profile
- 挂载安全:
- 查看挂载选项:mount | egrep ‘(/tmp|/var/tmp|/dev/shm)’
- 按需 remount:mount -o remount,noexec,nosuid,nodev /tmp
- 完整性保护:
- 口令文件加固:chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow
- 引导与单用户:stat /boot/grub2/grub.cfg;grep sulogin /usr/lib/systemd/system/rescue.service
- 审计与更新:
- 审计状态:systemctl status auditd
- 更新与签名:yum check-update;grep ^gpgcheck /etc/yum.conf /etc/yum.repos.d/*;rpm -q gpg-pubkey --qf ‘%{name}-%{version}-%{release} --> %{summary}\n’
- ACL 示例:
- 授予用户读写执行:setfacl -m u:devuser1:rwx /var/www/html/projectX
- 授予组只读:setfacl -m g:devgroup2:r-x /var/www/html/projectX
- 查看 ACL:getfacl /var/www/html/projectX