Linux敏感文件如何保护_权限与审计组合方案【教程】

2次阅读

linux敏感文件权限加固需结合强制访问控制(SELinux/appArmor)、审计追踪(auditd)与最小权限原则:设 umask 077、/etc/shadow 权限 640 并配 shadow 组、禁用敏感目录 group/other 执行权、启用 mac 策略限制进程访问、配置 auditd 监控关键路径读写及属性变更、每日哈希校验与 自动化 权限扫描。

Linux 敏感文件如何保护_权限与审计组合方案【教程】

Linux 系统中,敏感文件(如 /etc/shadow/etc/passwdssh 密钥、数据库 配置、环境变量 文件等)一旦被未授权访问或篡改,可能直接导致权限失控、数据泄露甚至系统沦陷。单纯靠文件权限(chmod/chown)远远不够,必须结合强制访问控制、审计追踪与最小权限原则,构建纵深防御。

核心权限加固:不止是 chmod 600

基础权限设置是第一道门槛,但需注意细节:

  • 避免过度依赖 umask:用户创建文件时默认权限受 umask 影响,建议在 /etc/profile/etc/bash.bashrc中统一设为umask 077(新建文件默认仅属主可读写)
  • 敏感目录必须禁用 group/other 执行权 :例如/etc/ssh 应为drwx------(700),否则其他用户可能遍历其内容
  • shadow 文件需配合 shadow 组隔离 :确保/etc/shadow 属主为 root、属组为 shadow、权限为640,再将仅需读取的程序(如 login)加入 shadow 组,而非开放 world-readable
  • 使用 setgid 配合专用组管理配置目录 :例如/opt/app/conf 设为drwxr-s---,属组为 appconf,所有运维人员加入该组,避免直接给 root 权限

启用 SELinux 或 AppArmor 实现类型强制控制

传统 DAC(自主访问控制)无法阻止 root 进程越权读取。SELinux/AppArmor 提供 MAC(强制访问控制),按进程类型限制其能访问的文件类型:

  • SELinux 示例 :将 Web 应用 配置文件 标记为 httpd_config_t,即使 apache 以 root 运行,也无法读取标记为etc_t 的普通 配置文件
  • 快速启用(RHEL/centossudo setenforce 1临时开启,修改 /etc/selinux/configSELINUX=enforcing永久生效
  • AppArmor(ubuntu/debian:用 aa-genprof 为关键服务生成策略,重点限制其对 /etc/var/secrets 等路径的访问能力
  • 不建议完全关闭:若因兼容性问题需禁用 SELinux,请至少启用 auditd 并强化日志监控

审计关键文件访问行为:auditd + rules 持续盯防

权限只是“门锁”,auditd 是“监控摄像头”。需精准审计敏感路径的读、写、执行、属性变更:

  • 添加持久化审计规则:编辑/etc/audit/rules.d/privileged.rules,加入:

-w /etc/shadow -p wa -k identity -w /etc/passwd -p wa -k identity -w /root/.ssh/ -p wa -k ssh_root -w /home/*/.ssh/ -p wa -k ssh_user -w /etc/ssl/private/ -p wa -k ssl_private

其中 -p wa 表示监控 write 和 Attribute change(如 chmod/chown),-k指定审计键名便于日志过滤。

  • 实时查看异常访问sudo ausearch -k identity --start today | aureport -f -i
  • 对接 SIEM 或邮件告警 :用audispd 插件将匹配 identity 键的日志转发至日志服务器,或通过 ausearch + awk + mail 脚本触发即时通知

定期验证与自动化检查机制

人工检查易遗漏,需固化为周期任务:

  • 每日校验关键文件哈希:用sha256sum /etc/shadow /etc/passwd > /var/log/filehash.baseline,配合 cron 每日比对变化
  • 扫描非预期的 world-writable 敏感文件find /etc /root /opt -type f -perm -o+w 2>/dev/NULL,发现即告警
  • 检查 SSH 密钥权限合规性find /root /home -name "id_rsa" -o -name "id_dsa" -o -name "id_ecdsa" -o -name "id_ed25519" -exec ls -l {} ;,确保私钥权限≤600、公钥≤644
  • 集成进 CI/CD 或配置管理 工具 ansiblefile 模块可声明式定义权限;saltstack 可用 file.managed 自动修复偏差

站长
版权声明:本站原创文章,由 站长 2025-12-21发表,共计1907字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
1a44ec70fbfb7ca70432d56d3e5ef742
text=ZqhQzanResources