阅读量:3
SELinux优化Linux系统安全性的实用方案
一 基础配置与运行模式
- 将系统置于Enforcing模式,仅在排障时短期切到Permissive;严禁长期Disabled。检查与切换命令:
- 查看状态:
sestatus、getenforce - 临时切换:
setenforce 0|1(仅 Permissive/Enforcing,不能禁用)
- 查看状态:
- 持久化配置:编辑**/etc/selinux/config**
- 示例:
SELINUX=enforcing SELINUXTYPE=targeted - 从 Disabled 切回 Enforcing 时,需修改配置并重启;首次从禁用恢复时系统可能进行文件系统重新标记,耗时较长。
- 示例:
- 策略类型选择:默认targeted即可覆盖大多数场景;高安全需求再考虑mls/minimum,并确保相应策略包已安装。
二 安全上下文与最小权限
- 正确设置并持久化文件与目录的安全上下文(类型字段 Type 最关键):
- 查看:
ls -Z、ps -Z - 持久化添加规则:
semanage fcontext -a -t" (/.*)?" - 应用规则:
restorecon -Rv - 示例(将自定义 Web 目录纳入 httpd 可读类型):
semanage fcontext -a -t httpd_sys_content_t "/webdata(/.*)?" restorecon -Rv /webdata
- 查看:
- 避免服务运行在unconfined_t等不受限域,确保服务在专有域(如httpd_t、mysqld_t)中运行,遵循最小权限原则。
- 谨慎使用临时标签工具chcon,优先用semanage fcontext + restorecon保证重启后仍然有效。
三 布尔值与策略模块调优
- 使用布尔值按需开关策略子集,减少不必要的权限开放:
- 查看:
getsebool -a - 临时开启:
setseboolon - 永久开启:
setsebool -Pon - 示例(允许 httpd 发起网络连接,按需开启):
setsebool -P httpd_can_network_connect on
- 查看:
- 处理 AVC 拒绝并做最小化授权:
- 检索拒绝日志:
ausearch -m avc -ts recent - 人性化解释:
sealert -a /var/log/audit/audit.log - 自动生成并安装最小化模块(仅在确认访问合理时):
ausearch -m avc -ts recent | audit2allow -M mypolicy semodule -i mypolicy.pp
- 检索拒绝日志:
- 自定义模块流程(必要时):编写**.te** →
checkmodule→semodule_package→semodule -i。
四 运维与监控最佳实践
- 持续审计与监控:定期查看**/var/log/audit/audit.log与 AVC 报表,使用sealert**辅助分析,保持策略与业务变更同步更新。
- 变更流程:先在Permissive验证,再切回Enforcing;严禁以
setenforce 0作为长期手段。 - 性能与噪声控制:关闭不必要的布尔值、合并冗余规则、定期轮转与清理审计日志,降低审计噪声与系统开销。
- 服务加固:禁用不必要的服务与端口,容器/虚拟化场景启用相应 SELinux 支持,减少攻击面。
五 常见场景快速清单
- Web 服务(DocumentRoot 在**/webdata**):
semanage fcontext -a -t httpd_sys_content_t "/webdata(/.*)?" restorecon -Rv /webdata # 若需对外发起连接(按需) setsebool -P httpd_can_network_connect on - 自定义应用需要专属域与日志目录:
- 规划类型:如myapp_exec_t(可执行)、myapp_log_t(日志)
- 最小授权示例(在 .te 中):
allow myapp_t myapp_log_t:file manage_file_perms; files_tmp_filetrans(myapp_t, myapp_tmp_t, file) - 编译安装:
checkmodule -M -m -o myapp.mod myapp.te semodule_package -o myapp.pp -m myapp.mod semodule -i myapp.pp
- 排障闭环:
ausearch -m avc -ts recent sealert -a /var/log/audit/audit.log # 合理则 audit2allow -M&& semodule -i .pp
以上就是关于“SELinux如何优化Linux系统安全性”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm