selinux合规状态需通过sestatus、getenforce、/etc/selinux/config、布尔值及audit日志五方面交叉验证:启用状态为enabled,当前模式为enforcing,配置文件设selinux=enforcing且selinuxtype=targeted,关键布尔值符合策略,审计日志中存在avc: denied记录。

如果您需要确认当前Linux系统中SELinux模块是否启用、处于何种运行模式或策略配置是否符合安全合规要求,则需通过多个命令和配置文件交叉验证其状态。以下是验证SELinux状态的具体步骤:
一、使用sestatus命令查看完整状态信息
sestatus命令提供最全面的SELinux运行概况,包括启用状态、当前模式、配置文件设定模式、加载策略类型及版本等,是合规检查的首选工具。
1、在终端中执行:sestatus
2、检查输出中以下关键字段:
— SELinux status:必须为enabled才表示SELinux已激活;
— Current mode:显示当前实际运行模式(enforcing/permissive/disabled);
— Mode from config file:反映/etc/selinux/config中持久化设定;
— Loaded policy name:应为targeted(面向服务的最小权限策略),符合主流合规基线要求。
二、使用getenforce命令快速获取当前运行模式
getenforce命令仅返回一行结果,适用于脚本调用或快速人工核查,但不显示配置文件设定或策略详情,需配合其他命令使用以满足合规审计完整性要求。
1、在终端中执行:getenforce
2、识别返回值含义:
— Enforcing:策略正在强制执行,所有违规操作被阻止并记录;
— Permissive:策略仅记录警告,不阻止操作,不符合生产环境安全合规要求;
— Disabled:SELinux完全未运行,违反多数安全标准(如等保2.0、CIS Benchmark)中对强制访问控制的要求。
三、检查SELinux配置文件内容
/etc/selinux/config是SELinux的静态配置源,决定系统重启后的默认行为。合规检查必须确认该文件中关键参数设置正确,且与当前运行状态一致(尤其当系统曾临时切换模式时)。
1、在终端中执行:cat /etc/selinux/config
2、定位并核对以下两行配置:
— SELINUX=enforcing:必须为enforcing,禁用(disabled)或宽容(permissive)均不满足合规性;
— SELINUXTYPE=targeted:必须为targeted,避免使用strict(已废弃)或mls(高保障场景专用)等非标准策略类型。
四、验证SELinux布尔值开关配置
SELinux布尔值用于动态微调策略规则,例如允许httpd访问网络、启用FTP匿名读取等。合规检查需确认关键服务相关布尔值处于预期状态,防止过度授权或功能缺失。
1、列出全部布尔值及其当前开关状态:sestatus -b
2、筛选特定服务相关布尔值,例如检查FTP:getsebool -a | grep ftp
3、重点核查以下典型布尔值是否符合策略文档要求:
— ftp_home_dir:应为on,允许FTP进程访问用户家目录;
— httpd_can_network_connect:若Web服务需外连,应为on,否则为off;
— allow_ftpd_full_access:生产环境应为off,避免FTP服务获得过高权限。
五、检查SELinux审计日志中的拒绝事件
审计日志是判断SELinux策略是否真实生效、是否存在误拒或策略缺口的核心依据。合规检查需确认系统持续生成avc: denied日志,且无高频重复拒绝项(表明策略未适配业务需求)。
1、检查审计服务是否运行:systemctl is-active auditd
2、查询最近10分钟内的SELinux拒绝事件:ausearch -m avc -ts recent
3、若发现大量同类拒绝记录(如httpd_t访问admin_home_t),说明策略上下文不匹配或布尔值未启用,需立即处置;
— avc: denied字段存在即证明SELinux策略正在拦截非法访问,是合规运行的关键证据;
— 若输出为空,需排查auditd是否启用、SELinux是否实际运行(而非仅配置为enforcing)。










