当前位置: 首页 > news >正文

SELinux系列专题(一):SELinux是什么?

目录

一.访问控制类型

二.SELinux

2.1 概述

2.1.1 基本概念

2.1.2 核心概念

2.2 模式

2.2.1 模式分类

2.2.2 模式查看

2.2.2.1 命令查看

2.2.2.2 log查看        

2.2.3 模式切换

2.2.3.1 命令行

2.2.3.2 修改bootargs参数

2.2.3.3 修改init代码


一.访问控制类型

        Linux 内核资源访问控制分为 DAC和 MAC两类。

访问控制类型
序号类型全称描述
1DAC

Discretionary Access Control

自主访问控制

基于“用户-用户组-其他”的“读、 写、 执行” 的权限检查,进程理论上所拥有的权限与执行它的用户的权限相同,该管理过于宽松,如果获得 root 权限,可以在 Linux 系统内做任何事情。
2MAC

Mandatory Access Control

强制访问控制

SELinux是 MAC 机制的一种实现,基于安全上下文和安全策略的安全机制,用于补充 DAC 检查。访问系统资源时,会先进行 DAC 检查, DAC 检查通过,才能进行 MAC 检查,如果 MAC 检查通过,才能获得资源访问权限。

二.SELinux

2.1 概述

2.1.1 基本概念

        SELinux全称Security-Enhanced Linux,即安全增强型Linux。它是由美国国家安全局(NSA)开发的一种强制访问控制(MAC)机制,于2000年发布,并集成到Linux内核中。
        与传统Linux基于“用户-组-其他(UGO)”的自主访问控制(DAC)不同,SELinux实施的是强制访问控制。简单来说,DAC系统回答"谁可以访问什么",而SELinux回答"​哪个进程可以访问哪些资源​"。 

2.1.2 核心概念

        SELinux的核心是安全上下文的概念。每个进程和系统资源都有一个安全上下文,可以把它看作是一个安全标签。
        安全上下文由四个部分组成,格式为:

用户:角色:类型:安全级别
安全上下文
序号组成描述
1用户(user)表示SELinux用户身份,如system_u代表系统进程,user_u代表普通用户。
2​角色(role)定义对象的作用,如object_r用于文件,system_r用于进程。
3类型(type)这是最重要的部分,用于定义对象的安全类型。文件类型通常以_t结尾,如httpd_sys_content_t。
4安全级别(level)主要用于MLS(多级安全)机制,如s0、s1等。

2.2 模式

2.2.1 模式分类

        SELinux 分为 Permissive 和 Enforcing 两种模式。

SELinux模式
序号模式名称描述
1Permissive宽容模式

        代表 SELinux 运作中,违反 SELinux 规则, 不会限制资源访问,只打印警告信息(avc:denied)到日志中。

        即在此模式下,SELinux会记录违反策略的行为但不阻止它们。这主要用于调试和策略开发。

2Enforcing强制模式

        代表 SELinux 运作中,违反 SELinux 规则的行为将被阻止,并打印警告信息(avc: denied) 到日志中。

        这是默认且推荐的生产环境模式。

2.2.2 模式查看

2.2.2.1 命令查看

        通过命令行查看 SELinux 模式,命令如下:

adb shell getenforce
2.2.2.2 log查看        

        通过 AVC(Access Vector Cache, 访问向量缓存) log 来查看 SELinux 模式, AVC log 结尾会有permissive=1/0 的标示:

permissive=1,说明是 Permissive 模式
permissive=0,说明是 Enforcing 模式

2.2.3 模式切换

        默认为 Enforcing 模式, 可通过命令行、修改bootargs 参数或修改 init 代码切换成 Permissive 模式。

2.2.3.1 命令行

        终端开机后,开启终端 USB debug 选项, 用 USB 线将终端与电脑连接, 在电脑输入如下命令:

adb root
adb shell setenforce 0

注:该方式仅适用于 userdebug 版本, 系统重启会导致修改失效。

2.2.3.2 修改bootargs参数

        修改设备树中的bootargs参数,增加如下字段:

androidboot.selinux=permissive

注:该方式仅适用于 userdebug 版本, 系统重启修改仍生效。

2.2.3.3 修改init代码

        修改 system/core/init/selinux.cpp 文件里的 IsEnforcing()函数,将该函数直接返回 false 值,如下红色字体所示:

bool IsEnforcing() {return false;……
}

注:该方式适用于 user 和 userdebug 版本, 系统重启修改仍生效。

http://www.dtcms.com/a/446285.html

相关文章:

  • 三角函数公式全归纳
  • 热 动漫-网站正在建设中-手机版wordpress活动报名
  • 建设银行扬中网站织梦网站仿站
  • 网站建设公司伟置鄂尔多斯 网站制作
  • Hi3516DV500/HI3519DV500开发笔记之例程编译和测试
  • 路由策略与路由控制实验
  • Leetcode 84. 柱状图中最大的矩形 单调栈
  • 专门用来制作网页的软件是河南网站关键词优化
  • 什么是企业网站策划案企业网站空间买虚拟主机
  • 高并发场景下API网关的熔断策略:Hystrix与Sentinel的对比测试
  • llama.cpp Flash Attention 论文与实现深度对比分析
  • Python 3 与 MongoDB 的集成指南
  • 网站生成手机端wordpress高亮插件
  • 基础动态规划问题
  • js多久可以做网站网站建设后帐号密码
  • 第十五篇:Python高效调试与性能优化技巧
  • leetcode 66.加一 python
  • 书生浦语实战营L1-G4000探索大模型能力边界
  • Prometheus 05-02: 告警规则与Alertmanager配置
  • 工信部申诉备案网站免费关键词优化工具
  • RabbitMQ-死信交换机(延时队列)
  • 建网站源码建站详解中国工商建设标准化协会网站
  • phpcms仿站教程it教育培训机构
  • 事务所网站制作方案加盟代理好项目农村
  • yolov8模型在指针式表盘读数中的应用【代码+数据集+python环境+GUI系统】
  • 基于51单片机的智能红外温控风扇设计
  • 从磁盘清理到启动项管理:如何调用原生系统功能
  • PySide6 文本编辑器(QPlainTextEdit)实现查找功能——重构版本
  • 免费注册域名网站河南做网站那家最好
  • 山西省城乡住房和建设厅网站音乐网站如何建设的