Linux 笔记 SELinux 常见操作与介绍

SELinux(Security-Enhanced Linux)是 Linux 操作系统中的一种安全模块,旨在提供更细粒度的访问控制。它最初由美国国家安全局(NSA)开发,目的是增强 Linux 系统的安全性。SELinux 通过强制访问控制(MAC, Mandatory Access Control)来补充传统的自主访问控制(DAC, Discretionary Access Control),从而限制进程和用户只能访问它们明确被允许访问的资源。

一、SELinux 的状态

SELinux 可以处于以下三种状态之一:

  • Enforcing:启用并强制执行所有安全策略。任何违反策略的操作都将被阻止,并记录到日志中。
  • Permissive:虽然会记录违反策略的行为,但不会阻止这些行为发生。这对于调试和测试非常有用。
  • Disabled:完全禁用 SELinux。不推荐在生产环境中这样做,因为它会失去 SELinux 提供的所有保护。

二、管理 SELinux

管理 SELinux 包括配置策略、设置文件标签、调整域权限等。常用的命令和工具包括:

  • sestatus:查看 SELinux 的当前状态。
  • setenforce:临时切换 SELinux 的模式(从 enforcing 到 permissive 或反之)。
  • getenforce:获取 SELinux 的当前模式。
  • chcon:改变文件或目录的安全上下文(标签)。
  • restorecon:恢复文件或目录的默认安全上下文。
  • audit2allow:帮助分析日志中的拒绝事件,并生成相应的策略规则。
  • semanage:管理 SELinux 策略数据库,如添加或修改类型、端口、用户等。

1、getenforce 获取 SELinux 的当前模式

getenforce

2、setenforce 临时切换 SELinux 的模式

如果你只是想暂时改变 SELinux 的行为而不完全禁用它,可以使用 setenforce 命令:

  • 切换到 Permissive 模式(记录违规但不强制执行):
sudo setenforce 0

  •  切换回 Enforcing 模式(强制执行所有安全策略):
sudo setenforce 1

 setenforce 命令不能直接将 SELinux 设置为 Disabled 状态。setenforce 只能用来临时切换 SELinux 的模式为 EnforcingPermissive。要永久禁用 SELinux,你需要编辑配置文件并重启系统。

3、永久禁用 SELinux

要永久禁用 SELinux,请按照以下步骤操作:

3.1、编辑 SELinux 配置文件

SELinux 的配置文件通常位于 /etc/selinux/config。你需要以管理员权限打开这个文件进行编辑:

sudo vi /etc/selinux/config

找到类似下面的行:

SELINUX=enforcing

将其修改为:

SELINUX=disabled

这会告诉 SELinux 在下次启动时完全禁用自己。

3.2、重启系统

sudo reboot

3.3、验证 SELinux 状态

系统重启后,你可以使用以下命令来验证 SELinux 是否已被禁用:

sestatus
或
getenforce

如果输出显示 SELinux status: disabled,那么你就成功地永久禁用了 SELinux。

三、SELinux 的核心概念 (扩展阅读)

1. 策略(Policy)

SELinux 使用策略来定义系统中对象(如文件、网络端口等)和主体(如进程、用户)之间的访问规则。策略非常严格,并且可以根据不同的需求定制。有几种预定义的策略类型:

  • Targeted:这是大多数发行版默认使用的策略,只对特定的服务进行限制,而其他部分则使用宽松的策略。
  • Strict:提供了最严格的控制,适用于高度敏感的环境。
  • MLS(Multi-Level Security):用于实现多级安全,比如政府或军事应用中的机密等级。

2. 标签(Labeling)

在 SELinux 中,每个文件、目录、进程等都被赋予了一个安全上下文(security context),也称为标签。这些标签包含了类型(type)、角色(role)和用户标识(user ID)。例如,一个典型的文件标签可能看起来像这样:

system_u:object_r:httpd_sys_content_t:s0

这表示该文件属于 system_u 用户,具有 object_r 角色,并且它的类型是 httpd_sys_content_t

3. 域(Domain)

域是用来描述进程运行时的安全上下文。每个进程都运行在一个特定的域中,而这个域决定了该进程可以做什么以及它可以访问哪些资源。例如,Apache HTTP Server 进程通常会在 httpd_t 域中运行。

4. 类型执行(Type Enforcement)

这是 SELinux 的核心机制之一。它基于类型来决定是否允许某个主体访问某个对象。如果策略不允许某个类型的进程访问某个类型的文件,即使该进程拥有适当的 DAC 权限,也会被拒绝。

四、SELinux 的优点

  • 更高的安全性:通过强制访问控制,有效地减少了恶意软件和错误配置带来的风险。
  • 隔离关键组件:能够更好地隔离应用程序和服务,降低单一漏洞影响整个系统的可能性。
  • 支持复杂的策略:适合需要高级别安全保障的组织和机构。

然而,SELinux 也有一定的学习曲线,特别是在配置和故障排除方面。对于某些应用场景来说,其复杂性可能是不必要的负担(例如,在构建k8s集群时,就会选择关闭SELinux)。因此,在决定是否启用 SELinux 时,应该根据具体的需求和环境进行权衡。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/65458.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Postman接口测试03|执行接口测试、全局变量和环境变量、接口关联、动态参数、断言

目录 七、Postman 1、安装 2、postman的界面介绍 八、Postman执行接口测试 1、请求页签 3、响应页签 九、Postman的环境变量和全局变量 1、创建环境变量和全局变量可以解决的问题 2、postman中的操作-全局变量 1️⃣手动设置 2️⃣代码设置 3️⃣界面获取 4️⃣代…

旅游管理系统|Java|SSM|VUE| 前后端分离

【技术栈】 1⃣️:架构: B/S、MVC 2⃣️:系统环境:Windowsh/Mac 3⃣️:开发环境:IDEA、JDK1.8、Maven、Mysql5.7 4⃣️:技术栈:Java、Mysql、SSM、Mybatis-Plus、VUE、jquery,html 5⃣️数据库…

vulhub-wordpress靶场

一.主题上传漏洞 来到靶场点击主题选择add new 这里有一个上传主题的地方 我们可以去网上找到wordpress主题下载一个 wordpress模板 网页设计模板 免费 免费下载 - 爱给网 下载完成后对我们有用的东西只有这一个目录,把它拖出来 点开moban目录后,创建…

【人工智能视角下的计算机系统:硬件、操作系统与进程管理基础】

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​💫个人格言:“没有罗马,那就自己创造罗马~” 文章目录 电脑硬件的基本常识电脑操作系统(软件)的基本常识进程进程操作PCB的属性PCB…

Flink源码解析之:如何根据算法生成StreamGraph过程

Flink源码解析之:如何根据算法生成StreamGraph过程 在我们日常编写Flink应用的时候,会首先创建一个StreamExecutionEnvironment.getExecutionEnvironment()对象,在添加一些自定义处理算子后,会调用env.execute来执行定义好的Flin…

IntelliJ IDEA Docker集成

一、概述 Docker是一种用于在隔离和可复制环境中部署和运行可执行文件的工具。这可能很有用,例如,在与生产相同的环境中测试代码。 IntelliJ IDEA集成了Docker功能,并为创建Docker映像、运行Docker容器、管理Docker Compose应用程序、使用公…

【closerAI ComfyUI】快速洗图!高效快速的提示词反推节点——cliption,让洗图出图快人一步不爆显存!

添加图片注释,不超过 140 字(可选) 【closerAI ComfyUI】快速洗图!高效快速的提示词反推节点——cliption,让洗图出图快人一步不爆显存! 大家好,我是Jimmy。反推提示词的节点有很多,像Florence2 、Joycaption2、喵手等。都是非常优秀的。但是呢,就是占用设备资源,加…

Pandas-数据组合

文章目录 一. 连接数据1.简介2. 加载数据1. 添加行① 添加行-DataFrame连接② 添加行-DataFrame和Series连接③ 添加行-append函数④ 添加行-重置索引 2. 添加列① 添加列-concat函数② 添加列-通过dataframe[列名] [值]③ 添加列-通过dataframe[列名] Series对象④ 添加列-重…

软件架构设计——数据表状态切换开关—未来之窗行业应用跨平台架构

一、样式 二、样式 /*开关示例*/.东方仙盟_灵颜妙手 {position: relative;display: inline-block;width: 60px;height: 34px;border-radius: 17px; /* 添加圆角效果,使开关看起来更圆润美观 */box-shadow: 0 0 5px rgba(0, 0, 0, 0.2); /* 添加淡淡的阴影效果&…

django --递归查询评论

表数据 树状结构 action(methods(GET, ), detailFalse) def get_info_pinglun(self, request, *args, **kwargs) -> Response:根据评论id查所有回复params wenxian_pinglun_id --> 评论id;wenxian_pinglun_id self.request.GET.get(wenxian_pinglun_id)results se…

适用于项目经理的跨团队协作实践:Atlassian Jira与Confluence集成

适用于项目经理的跨团队协作实践:Atlassian Jira与Confluence集成 现代项目经理的核心职责是提供可视性、保持团队一致,并确保团队拥有交付出色工作所需的资源。在过去几年中,由于分布式团队的需求不断增加,项目经理这一角色已迅速…

基于JAVA+SpringBoot+Vue的问卷调查系统

基于JAVASpringBootVue的问卷调查系统 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末附源码下载链接🍅 哈喽兄…

Vue开发环境搭建上篇:安装NVM和NPM(cpnm、pnpm)

文章目录 引言I 安装NVM1.1 Windows系统安装NVM,实现Node.js多版本管理1.2 配置下载镜像1.3 NVM常用操作命令II NPM永久使用淘宝源安装 cnpm安装pnpm【推荐】see also: vscode常用插件引言 淘宝镜像:http://npm.taobao.org 和 http://registry.npm.taobao.org 已在 2022.06.3…

Kimi进行学术方向选择精讲!

目录 1.文献搜索 2.辅助选题 3.选题判断 在我们之前的文章中,小编都强调了选题在文章价值中的核心作用。一篇优秀的文章背后,肯定有一个精心挑选的选题。选题的好坏直接影响着文章能够发表的期刊等级。许多宝子们却采取了相反的做法,将大量…

YOLO系列正传(五)YOLOv4论文精解(上):从CSPNet、SPP、PANet到CSPDarknet-53

系列文章 YOLO系列基础 YOLO系列基础合集——小白也看得懂的论文精解-CSDN博客 YOLO系列正传 YOLO系列正传(一)类别损失与MSE损失函数、交叉熵损失函数-CSDN博客 YOLO系列正传(二)YOLOv3论文精解(上)——从FPN到darknet-53-C…

Vulnhub靶场-Driftingblues 6靶机(至获取shell)

靶机安装好后,照例扫描IP 端口 目录 首页为一个图片,没有什么信息 访问robots.txt,存在一个textpattern/textpattern目录,我们访问为一个登录窗口,sqlmap无法注入 提示我们扫目录时添加.zip扩展名,所以我们…

基于springboot的汽车租赁系统丨源码+数据库+万字文档+PPT

作者简介: 作者:学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等 文末获取“源码数据库万字文档PPT”,支持远程部署调试、运行安装。 技术框架 开发语言:Java 框架:spring…

Qt父窗口处理子窗口大小变化消息installEventFilter

1.需求描述 父窗口从上到下时标题栏,播放窗口和工具栏,希望监测中间播放窗口的大小变化,来根据分辨率自动调整播放画面的宽高;因为工具栏和标题栏可以隐藏,所以父窗口大小不变,中间的播放窗口也会随着工具…

17_HTML5 Web 存储 --[HTML5 API 学习之旅]

HTML5 Web 存储(Web Storage)是 HTML5 引入的一种在用户浏览器中存储数据的机制。它提供了比传统的 cookies 更加方便和强大的功能,包括更大的存储空间、更好的性能以及更简单的 API。Web 存储主要分为两种类型:localStorage 和 s…

Java处理视频思路

1.首先实现断点续传功能。 断点续传实现思路: 前端对文件分块。前端使用多线程一块一块上传,上传前给服务端发一个消息校验该分块是否上传,如果已上传则不再上传。如果从该断点处断网了,下次上传时,前面的分块已经存在…