温馨提示×

Ubuntu SELinux强制模式

小樊
40
2025-12-10 13:40:51
栏目: 智能运维

Ubuntu 启用 SELinux 强制模式的完整步骤

前置说明

  • Ubuntu 默认不启用 SELinux,需要手动安装组件并调整启动参数。
  • 建议先在测试环境验证,或先设为Permissive观察日志,再切换到Enforcing,以避免业务中断。
  • 切换过程需要root 权限或 sudo 权限。

操作步骤

  1. 安装必要软件包
    执行:sudo apt update && sudo apt install selinux-basics selinux-policy-default selinux-utils auditd
    说明:安装 SELinux 基础工具、默认策略、常用工具及审计服务(用于记录拒绝事件)。

  2. 激活 SELinux 并配置启动参数
    执行:sudo selinux-activate
    作用:在引导参数中写入 security=selinux,确保内核加载 SELinux。完成后建议重启一次以完成初始化:sudo reboot

  3. 设置默认策略类型(可选)
    编辑配置文件:sudo nano /etc/selinux/config
    SELINUXTYPE=default(常见为 targeted 策略)。保存退出。

  4. 切换为强制模式

    • 临时生效:sudo setenforce 1(重启后失效)
    • 永久生效:编辑 /etc/selinux/config,将 SELINUX=enforcing,随后重启:sudo reboot
  5. 验证状态
    执行:sestatusgetenforce
    期望输出包含:SELinux status: enabledCurrent mode: enforcing

常用运维命令

  • 查看与切换模式:getenforcesudo setenforce 0|1
  • 查看详细状态:sestatus
  • 查看安全上下文:ls -Zps -Z
  • 策略与端口管理:sudo semanage port -a -t http_port_t -p tcp 8080
  • 审计与排错:
    • 查看拒绝日志:sudo ausearch -m avc -ts recent
    • 生成自定义模块:grep avc /var/log/audit/audit.log | audit2allow -M mypol
    • 加载模块:sudo semodule -i mypol.pp
      提示:若遇到服务启动失败或权限被拒,先切回 Permissive 收集日志,再用 audit2allow 生成最小权限模块,逐步恢复 Enforcing

常见问题与处理

  • 无法切换为 Enforcing:确认已执行 selinux-activate 并重启;检查 /etc/selinux/configSELINUX=enforcing;确保未以 Disabled 启动(Disabled 需改回并再次重启)。
  • 服务异常或访问被拒:临时设为 Permissive 定位问题,使用 ausearch/audit2allow 分析 AVC 拒绝并生成策略模块,最小化放行后再切回 Enforcing
  • 策略类型选择:一般使用 default(targeted);mls 适用于多级安全场景,配置复杂,非必要不建议使用。

0