selinux布尔值是可动态开关的安全功能,按需开启、默认关闭、权限最小化;用getsebool -a查看状态,setsebool临时调整,加-p或semanage boolean永久设置;重点关注网络外连、用户目录访问、脚本执行类高风险项。

SELinux 布尔值是策略中可动态开关的安全功能,不改代码、不重载策略,就能快速适配业务需求。关键在于“按需开启、默认关闭、权限最小化”——既避免过度放行带来风险,也防止误拒影响服务。
查看当前所有布尔值状态
先掌握现状,才能精准调整:
- 运行 getsebool -a 查看全部布尔值及其当前开关状态(on/off)
- 用 getsebool -a | grep httpd 快速筛选 Web 相关项,如
httpd_can_network_connect、httpd_read_user_content - 注意输出中每行末尾的
--> on或--> off,这是实际生效状态
临时测试与永久设置分离操作
安全调整必须分两步:先试效果,再固化配置:
- 临时启用(重启失效):setsebool httpd_enable_homedirs on
- 临时禁用:setsebool httpd_can_sendmail off
- 永久生效(写入策略数据库):加 -p 参数,例如 setsebool -p httpd_can_network_connect_db on
- 不带 -p 的命令仅影响当前运行时,适合调试验证
聚焦高频高风险布尔值优化
优先检查并收紧以下几类,兼顾安全与可用性:
-
网络外连类:如
httpd_can_network_connect(Apache主动连外部)、httpd_can_network_connect_db(连远程数据库),非必要保持off -
用户目录访问类:如
httpd_read_user_content(读取 ~/public_html)、httpd_enable_homedirs,若不用个人站点,一律off -
脚本执行类:如
httpd_can_execmem(允许内存执行代码)、httpd_can_network_relay(代理转发),存在明显提权风险,除非明确需要,否则禁用
用 semanage 管理更清晰可靠
尤其在批量查看或脚本化运维时,semanage boolean 比 getsebool 更结构化:
- 列出全部并含描述:semanage boolean -l(列名、当前值、默认值、说明一目了然)
- 修改并永久生效:semanage boolean -m --on httpd_disable_trans(等效于
setsebool -p httpd_disable_trans on) - 恢复为策略默认值:semanage boolean -m --default httpd_can_sendmail
- 需确保已安装
policycoreutils-python(RHEL/CentOS)或policycoreutils(Ubuntu/Debian)











