首页主机资讯Linux SELinux如何增强系统安全

Linux SELinux如何增强系统安全

时间2026-01-21 15:43:03发布访客分类主机资讯浏览1280
导读:核心原理 SELinux 是 Linux 的强制访问控制(MAC)机制,给系统中的主体(进程、用户)和客体(文件、端口、进程间通信等)打上安全上下文,格式通常为 user:role:type:level,其中决定访问权限的关键是 type...

核心原理

  • SELinux 是 Linux 的强制访问控制(MAC)机制,给系统中的主体(进程、用户)和客体(文件、端口、进程间通信等)打上安全上下文,格式通常为 user:role:type:level,其中决定访问权限的关键是 type(进程域/文件类型)。策略依据这些标签实施最小权限控制,即使 root 进程也受约束。常见策略类型为 targeted(默认,仅保护关键服务)与 mls(多级安全,面向高安全场景)。

启用与运行模式

  • 查看与切换模式
    • 查看状态:getenforcesestatus
    • 临时切换:setenforce 1(强制)或 setenforce 0(宽容)
  • 持久化配置
    • 编辑 /etc/selinux/config:设置 SELINUX=enforcing|permissive|disabled,以及 SELINUXTYPE=targeted|minimum|mls
  • 重要提示
    • disabled 切换到 enforcing 前务必先切到 permissive 并重启,以触发文件系统重新标记;直接用 setenforce 无法从禁用切回启用。生产环境建议长期保持 enforcing

上下文与策略管理

  • 查看上下文
    • 文件/目录:ls -Z
    • 进程:ps -Z
  • 文件上下文与端口管理
    • 持久化添加路径规则:semanage fcontext -a -t httpd_sys_content_t "/webdata(/.*)?"
    • 应用规则:restorecon -R /webdata
    • 端口类型:semanage port -a -t http_port_t -p tcp 8080
  • 布尔值开关
    • 查看:getsebool -a
    • 临时/持久化:setsebool httpd_can_network_connect_db onsetsebool -P httpd_can_network_connect_db on
  • 策略模块
    • 列出模块:semodule -l
    • 安装模块:semodule -i mypol.pp
  • 常用工具安装(RHEL/CentOS)
    • yum install -y policycoreutils-python-utils(提供 semanagerestorecon 等)

日志分析与最小权限修正

  • 定位拒绝事件
    • 查看最近 AVC:ausearch -m avc -ts recent
    • 可读解释:sealert -l "*"
  • 安全修正流程
    • 优先用 semanage fcontext + restorecon 修正路径标签,或用布尔值精确放开必要能力
    • 确需放行时,基于日志生成最小规则模块:ausearch -m avc -ts recent | audit2allow -M mypol & & semodule -i mypol.pp
    • 验证与回滚:观察服务行为、审计日志与模块影响,必要时卸载模块 semodule -r mypol
  • 原则:先用最小改动恢复功能,再逐步收敛权限,避免以宽泛规则替代精确策略。

常见场景与加固清单

  • Web 服务
    • 非默认目录发布:semanage fcontext -a -t httpd_sys_content_t "/var/www/html(/.*)?" & & restorecon -R /var/www/html
    • 反向代理/对外连接:按需开启布尔值(如 httpd_can_network_connect),并仅对必要目标放行
  • 数据库客户端
    • 应用连接数据库:优先使用专用类型与最小布尔值(如 httpd_can_network_connect_db),避免全局放开
  • 自定义应用
    • 为可执行文件设置专用类型,定义最小权限的域迁移与资源访问;必要时编写自定义模块并严格评审
  • 日常运维
    • 保持 enforcing;变更前在 permissive 验证;变更后用 restorecon 恢复默认标签;定期审计 AVC 并优化布尔值与策略模块
  • 安全提示
    • 禁用 SELinux 会显著降低防护能力;新增或迁移服务时,优先通过上下文与布尔值适配,其次再考虑定制模块,遵循最小权限原则

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Linux SELinux如何增强系统安全
本文地址: https://pptw.com/jishu/788773.html
Linux SELinux如何防止越权访问 Debian Copilot在项目中如何应用

游客 回复需填写必要信息