SELinux的 getenforce setenforce 配置文件/etc/selinux/config的 SELINUX和SELINUXTYPE

SELinux(Security-Enhanced Linux)是一个为Linux系统提供访问控制安全策略的安全模块。它是Linux内核的一个功能强大的安全子系统,旨在提供访问控制安全策略机制,以限制程序中特定代码段的权限。SELinux超越了传统的UNIX权限模型(即所有者、组和其他用户的读、写、执行权限),通过引入更多的安全策略,如类型强制(Type Enforcement)和多级安全(Multilevel Security)等,来提高系统的安全性。

SELinux的核心是策略(Policy),它定义了哪些类型的进程可以访问哪些类型的文件、目录、网络接口等资源。策略可以非常详细,精细控制到单个文件或单个网络连接。SELinux的策略可以分为几个主要类型:

  1. 目标策略(Targeted Policy):这是大多数Linux发行版默认的SELinux策略。它主要关注于保护系统中最关键的网络服务和守护进程,而不会对大多数用户空间应用程序施加额外的限制。

  2. 最小权限策略(Minimum Policy):比目标策略更为严格,限制更多,适用于需要高度安全性的环境。

  3. 多级别安全策略(MLS Policy):这种策略实现了美国国防部可信计算机系统评估准则(TCSEC)中的B级或更高安全级别的要求,通过更复杂的分类和标签系统来保护信息。

SELinux有两种主要的工作模式:

  1. Enforcing:这是SELinux的正常工作模式,此时SELinux的策略将被强制执行。任何违反策略的操作都会被阻止,并记录到日志中。

  2. Permissive:在这种模式下,SELinux的策略不会被强制执行,但所有违反策略的操作仍然会被记录到日志中。这允许管理员在不影响系统正常操作的情况下,分析和调试SELinux策略。

SELinux的引入大大提高了Linux系统的安全性,但同时也可能带来一些兼容性问题,因为不是所有的Linux应用程序都考虑到了SELinux的安全模型。因此,在使用SELinux时,可能需要进行一些配置和调整,以确保系统的兼容性和安全性。

总之,SELinux是Linux系统中一个强大的安全特性,通过精细的访问控制策略来提高系统的安全性。然而,它也需要管理员具备一定的安全知识和技能,以正确配置和管理SELinux策略。

SELinux(Security-Enhanced Linux)是美国国家安全局(NSA)对于强制访问控制(MAC)的实现,是Linux历史上最杰出的新安全子系统。以下是对SELinux的详细介绍:

一、SELinux的概述

SELinux是Linux内核的一个功能强大的安全模块,它通过引入更多的安全策略,如类型强制(Type Enforcement)和多级安全(Multilevel Security)等,来提高系统的安全性。SELinux超越了传统的UNIX权限模型,通过精细的访问控制策略来限制程序中特定代码段的权限。

二、SELinux的组成

SELinux主要由以下几个部分组成:

  • 主体(Subjects):通常指进程或线程,是访问请求的发起者。
  • 对象(Objects):被访问的资源,如文件、目录、套接字等。
  • 策略(Policy):定义了哪些类型的主体可以访问哪些类型的对象,以及访问的方式。
  • 安全上下文(Security Context):每个主体和对象都有一个安全上下文,用于标识其类型、角色和敏感度等安全属性。

三、SELinux的工作模式

SELinux有三种主要的工作模式:

  • Enforcing(强制模式):在这种模式下,SELinux的策略将被强制执行。任何违反策略的操作都会被阻止,并记录到日志中。
  • Permissive(宽容模式):在这种模式下,SELinux的策略不会被强制执行,但所有违反策略的操作仍然会被记录到日志中。这允许管理员在不影响系统正常操作的情况下,分析和调试SELinux策略。
  • Disabled(禁用模式):在这种模式下,SELinux被完全禁用,系统不会执行任何SELinux相关的安全策略。

四、SELinux的应用场景

SELinux主要应用于需要高安全性的场景,如政府、军事、金融等领域的服务器和关键业务系统。通过SELinux的强制访问控制策略,可以有效地防止未授权访问和恶意软件的攻击,提高系统的整体安全性。

五、SELinux的优缺点

优点:
  1. 提高安全性:通过精细的访问控制策略,SELinux能够有效地防止未授权访问和恶意软件的攻击。
  2. 灵活性:SELinux的策略可以根据实际需求进行定制和调整,以适应不同的安全需求。
  3. 兼容性:大多数Linux发行版都支持SELinux,并且提供了相应的管理工具和文档。
缺点:
  1. 复杂性:SELinux的配置和管理相对复杂,需要管理员具备一定的安全知识和技能。
  2. 性能影响:SELinux的强制访问控制策略可能会对系统性能产生一定的影响,尤其是在处理大量访问请求时。
  3. 兼容性问题:不是所有的Linux应用程序都考虑到了SELinux的安全模型,因此在某些情况下可能会出现兼容性问题。

六、SELinux的安装与配置

SELinux通常作为Linux发行版的一部分进行安装,例如Fedora和Red Hat Enterprise Linux(RHEL)等。对于不支持SELinux的Linux发行版,如Ubuntu和Debian等,也可以通过安装相应的软件包来启用SELinux。

SELinux的配置主要通过修改配置文件(如/etc/selinux/config)和使用管理工具(如setenforcesestatus等)来完成。管理员可以根据实际需求设置SELinux的工作模式和策略,并监控系统的安全状态。




SELinux 的配置文件 /etc/selinux/config 的 SELINUX 和 SELINUXTYPE

SELinux(Security-Enhanced Linux)的配置文件/etc/selinux/config中包含了两个关键的配置项:SELINUXSELINUXTYPE。这两个配置项分别用于控制SELinux的工作模式和策略类型。

SELINUX

作用
SELINUX配置项用于指定SELinux的工作模式,即SELinux策略的执行方式。

可选值

  • enforcing:强制模式。在这种模式下,SELinux策略被完整执行,任何违反策略的行为都会被阻止并记录到日志中。这是SELinux的主要模式,推荐在所有要求增强Linux安全性的操作系统上使用。
  • permissive:宽容模式。在这种模式下,SELinux策略规则不会被强制执行,但是会记录任何违反策略的行为(即审核遭受拒绝的消息)。这个模式在调试和测试SELinux策略时非常有用,因为它允许系统继续运行而不会因违反策略而中断。
  • disabled:不生效模式。在这种模式下,SELinux内核机制是完全关闭的,SELinux策略不会被加载和执行。这个模式通常只在极端情况下使用,比如当SELinux策略错误导致系统无法登录时。

SELINUXTYPE

作用
SELINUXTYPE配置项用于指定SELinux的策略类型,即定义系统中各种对象和主体之间的访问控制规则的集合。

可选值

  • targeted:这是默认的SELinux策略类型。它主要保护网络服务和其他一些关键的系统进程,而对大多数应用程序和用户的限制较少。这种策略类型旨在提高系统的安全性,同时保持系统的可用性和易用性。
  • mls(Multi-Level Security):多级安全保护策略。理论上,这种策略类型提供了更严格的安全保护,涵盖了网络服务、一般指令、应用程序等多个方面。然而,需要注意的是,在现代Linux发行版中,mls策略可能不是直接可用的,或者其名称可能有所不同。此外,由于配置复杂,它在实际应用中可能较少使用。

注意事项

  • 修改/etc/selinux/config文件需要root权限。
  • 如果从disabled模式切换到其他模式(enforcingpermissive),或者从enforcingpermissive模式切换到disabled模式,通常需要重启Linux系统才能使更改生效。但是,在enforcingpermissive模式之间切换时,通常不需要重启系统。
  • SELinux策略的安装和配置可能因Linux发行版而异,因此在进行任何更改之前,建议查阅特定发行版的文档或指南。

总之,SELINUXSELINUXTYPE是SELinux配置文件中两个重要的配置项,它们分别控制SELinux的工作模式和策略类型。正确配置这两个参数对于确保Linux系统的安全性和功能至关重要。




SELinux的 getenforce 和 setenforce

SELinux(Security-Enhanced Linux)是一个为Linux系统提供访问控制安全策略的安全模块。在SELinux中,getenforcesetenforce是两个重要的命令,用于查看和设置SELinux的当前执行模式。

getenforce

作用
getenforce命令用于查看SELinux当前的执行模式。SELinux有三种执行模式:enforcing(强制模式)、permissive(宽容模式)和disabled(禁用模式)。

使用方法
在终端中输入getenforce命令,系统将返回当前的SELinux执行模式。例如:

[root@localhost ~]# getenforce
Enforcing

这表明SELinux当前处于强制模式。

setenforce

作用
setenforce命令用于设置SELinux的执行模式。然而,需要注意的是,setenforce命令只能在enforcing(强制模式)和permissive(宽容模式)之间切换,无法直接切换到disabled(禁用模式)。要禁用SELinux,需要修改配置文件/etc/selinux/config

使用方法

  • 切换到宽容模式(permissive):
setenforce 0

执行后,SELinux将不再强制执行策略,但会记录违反策略的行为。

  • 切换到强制模式(enforcing):
setenforce 1

执行后,SELinux将恢复强制执行策略。

注意事项

  • 使用setenforce命令进行的更改是临时的,系统重启后,SELinux的执行模式将恢复到/etc/selinux/config文件中配置的模式。
  • 要永久更改SELinux的执行模式,需要编辑/etc/selinux/config文件,将SELINUX的值设置为enforcingpermissivedisabled,然后重启系统。

总结

getenforcesetenforce是SELinux中用于查看和设置当前执行模式的两个重要命令。getenforce用于查看当前模式,而setenforce用于在强制模式和宽容模式之间切换。要永久更改SELinux的执行模式,需要编辑配置文件并重启系统。






CentOS7.9 的 SELinux的 getenforce setenforce 配置文件/etc/selinux/config的SELINUX和SELINUXTYPE

默认的配置文件为: /etc/selinux/config
进入文件夹

cd /etc/selinux

编辑 /etc/selinux/config

vi /etc/selinux/config

默认内容

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=enforcing
# SELINUXTYPE= can take one of three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

可看出有两个配置项: SELINUXSELINUXTYPE

  • SELINUX有三种取值,三者取其一, 对应SELinux的三种主要的工作模式:

    • enforcing 对应 Enforcing(强制模式):在这种模式下,SELinux的策略将被强制执行。任何违反策略的操作都会被阻止,并记录到日志中。
    • permissive 对应 Permissive(宽容模式):在这种模式下,SELinux的策略不会被强制执行,但所有违反策略的操作仍然会被记录到日志中。这允许管理员在不影响系统正常操作的情况下,分析和调试SELinux策略。
    • disabled 对应 Disabled(禁用模式):在这种模式下,SELinux被完全禁用,系统不会执行任何SELinux相关的安全策略。

  • SELINUXTYPE也有三种取值, 三取一

    • targeted: (默认) , 针对网络服务限制较多,针对本机限制较少,是默认的策略;

    • minimum : 目标策略的修改。只有选定的进程受到保护 , 这个选项不是标准策略类型 , SELinux的标准策略类型中,并没有直接称为“minimum”的官方策略。应该是CentOS自定义的

    • mls(Multi-Level Security):多级安全保护策略。理论上,这种策略类型提供了更严格的安全保护,涵盖了网络服务、一般指令、应用程序等多个方面。然而,需要注意的是,在现代Linux发行版中,mls策略可能不是直接可用的,或者其名称可能有所不同。此外,由于配置复杂,它在实际应用中可能较少使用。

SELinux(Security-Enhanced Linux)是一个为Linux系统提供访问控制安全策略的安全模块。在SELinux中,getenforcesetenforce是两个关键的命令,它们分别用于查看和设置SELinux的当前执行模式。

getenforce

作用

getenforce命令用于显示当前SELinux的执行模式。SELinux有三种主要的执行模式:enforcing(强制模式)、permissive(宽容模式)和disabled(禁用模式)。

使用方法

在终端中输入getenforce命令,系统将返回当前的SELinux执行模式。例如,如果SELinux当前处于强制模式,则命令输出将是Enforcing

setenforce

作用

setenforce命令用于在SELinux的两种执行模式之间进行切换:enforcing(强制模式)和permissive(宽容模式)。然而,需要注意的是,setenforce命令无法直接将SELinux设置为disabled(禁用模式)。要禁用SELinux,需要修改配置文件/etc/selinux/config

使用方法

  • 切换到宽容模式(permissive):

    在终端中输入setenforce 0命令,SELinux将切换到宽容模式。在这种模式下,SELinux不会阻止违反策略的行为,但会记录这些行为。

  • 切换到强制模式(enforcing):

    在终端中输入setenforce 1命令,SELinux将切换到强制模式。在这种模式下,SELinux将严格执行策略,并阻止任何违反策略的行为。

注意事项

  1. 临时性:使用setenforce命令进行的更改是临时的,系统重启后,SELinux的执行模式将恢复到/etc/selinux/config文件中配置的模式。
  2. 持久性更改:要永久更改SELinux的执行模式,需要编辑/etc/selinux/config文件,将SELINUX的值设置为enforcingpermissivedisabled,然后重启系统。
  3. 安全性:在更改SELinux的执行模式之前,建议仔细考虑这些更改对系统安全性的影响。禁用SELinux可能会使系统面临更高的安全风险。

综上所述,getenforcesetenforce是SELinux中用于查看和设置当前执行模式的重要命令。它们允许系统管理员根据需要对SELinux的安全策略进行调整,以确保系统的安全性和可用性。

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

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

相关文章

AI学习记录 -使用react开发一个网页,对接chatgpt接口,附带一些英语的学习prompt

实现了如下功能(使用react实现,原创) 实现功能: 1、对接gpt35模型问答,并实现了流式传输(在java端) 2、在实际使用中,我们的问答历史会经常分享给他人,所以下图的 copy …

Python酷库之旅-第三方库Pandas(042)

目录 一、用法精讲 141、pandas.Series.agg(regate)方法 141-1、语法 141-2、参数 141-3、功能 141-4、返回值 141-5、说明 141-6、用法 141-6-1、数据准备 141-6-2、代码示例 141-6-3、结果输出 142、pandas.Series.transform方法 142-1、语法 142-2、参数 142…

1196. 拐角I

问题描述 输入整数 &#x1d441;N &#xff0c;输出相应方阵。 输入一个整数 &#x1d441;N 。&#xff08; 0<&#x1d441;≤100) 输出一个方阵&#xff0c;每个数字的场宽为 3 附代码&#xff1a; #include<iostream> using namespace std; int main() { …

大屏数据看板一般是用什么技术实现的?

我们看到过很多企业都会使用数据看板&#xff0c;那么大屏看板的真正意义是什么呢&#xff1f;难道只是为了好看&#xff1f;答案当然不仅仅是。 大屏看板不仅可以提升公司形象&#xff0c;还可以提升企业的管理层次。对于客户&#xff0c;体现公司实力和品牌形象&#xff0c;…

域名解析到ipv6,并用CF隐藏端口

要求&#xff1a;域名解析到 IPv6 地址并隐藏端口 ‍ 效果&#xff1a;用域名 https://myhalo.soulio.top​ 访问http://[2409:8a62:867:4f12:56c7:5508:f7x6:8]:8080​。唯一缺点是延迟有点高。 ​​ ‍ 难度&#xff1a;需要有一定域名解析、cloudflare使用基础 ‍ 实…

org.springframework.context.annotation.DeferredImportSelector如何使用?

DeferredImportSelector 是 Spring 框架中一个比较高级的功能&#xff0c;主要用于在 Spring 应用上下文的配置阶段延迟导入某些组件或配置。这个功能特别有用&#xff0c;比如在处理依赖于其他自动配置的场景&#xff0c;或者当你想基于某些条件来决定是否导入特定的配置类时。…

一个简单的UAF/HeapOverflow fuzz demo学习

前言 偶然逛到的一篇&#xff0c;UAF_overflow_check | Note (gitbook.io) 最近正好也在初学fuzz&#xff0c;学习下对一些漏洞的检测fuzz思路。 刚好这个也指了一条学习方法&#xff1a;看成熟的fuzz工具的源码是如何处理的。 https://github.com/google/sanitizers/tree/m…

【Django+Vue3 线上教育平台项目实战】Elasticsearch实战指南:从基础到构建课程搜索与数据同步接口

文章目录 前言一、Elasticsearch倒排索引 二、Docker 搭建 ESDocker 安装Docker 搭建 ES 三、ES基础语法创建索引查看索引删除索引添加数据查询数据修改数据删除数据条件查询分页查询排序 多条件查询andor 范围查询 四、ES在项目中的应用示例 前言 在数据驱动的时代&#xff0c…

c#Action委托和Func委托

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace Action委托 {internal class Program{static void PrintString(){Console.WriteLine("hello world.");}static void PrintInt(int …

vue3页面编写-导入导出excel、展开查询项等

数据保持 <router-view v-slot"{ Component, route }"><keep-alive><component :is"Component" :key"route.name" v-if"route.meta.keepAlive" /></keep-alive><component :is"Component" :key…

HarmonyOS应用开发者高级认证,Next版本发布后最新题库 - 多选题序号4

基础认证题库请移步&#xff1a;HarmonyOS应用开发者基础认证题库 注&#xff1a;有读者反馈&#xff0c;题库的代码块比较多&#xff0c;打开文章时会卡死。所以笔者将题库拆分&#xff0c;单选题20个为一组&#xff0c;多选题10个为一组&#xff0c;题库目录如下&#xff0c;…

大语言模型-RetroMAE-检索预训练模型

一、背景信息&#xff1a; RetroMAE是2022年10月由北邮和华为提出的一种密集检索预训练策略。 RetroMAE主要应用于检索模型的预训练&#xff0c;模型架构为非对称的Encoder-Decode结构。 二、整体结构&#xff1a; RetroMAE的模型架构为非对称的Encoder-Decode结构。 Encod…

C++学习笔记-operator关键字:重载与自定义操作符

在C编程中&#xff0c;operator关键字扮演着极其重要且独特的角色。它允许开发者为内置类型或自定义类型重载或定义新的操作符行为。这一特性极大地增强了C的表达能力&#xff0c;使得代码更加直观、易于理解和维护。本文将深入探讨C中operator关键字的使用&#xff0c;包括操作…

Interesting bug caused by getattr

题意&#xff1a;由 getattr 引起的有趣的 bug 问题背景&#xff1a; I try to train 8 CNN models with the same structures simultaneously. After training a model on a batch, I need to synchronize the weights of the feature extraction layers in other 7 models. …

Elasticsearch:Golang ECS 日志记录 - zap

ECS 记录器是你最喜欢的日志库的格式化程序/编码器插件。它们可让你轻松地将日志格式化为与 ECS 兼容的 JSON。 编码器以 JSON 格式记录日志&#xff0c;并在可能的情况下依赖默认的 zapcore/json_encoder。它还处理 ECS 错误格式的错误字段记录。 默认情况下&#xff0c;会添…

OpenWrt 为软件包和docker空间扩容

参考资料 【openwrt折腾日记】解决openwrt固件刷入后磁盘空间默认小的问题&#xff0c;关联openwrt磁盘扩容空间扩容【openwrt分区扩容】轻松解决空间可用不足的尴尬丨老李一瓶奶油的YouTube 划分空间 参考一瓶奶油的YouTube 系统 -> 磁盘管理 -> 磁盘 -> 修改 格…

【机器学习】不同操作系统下如何安装Jupyter Notebook和Anaconda

引言 Jupyter Notebook 是一个非常流行的开源Web应用程序&#xff0c;允许你创建和共享包含代码、方程、可视化和解释性文本的文档 文章目录 引言一、如何安装Jupyter Notebook1.1 对于Windows用户1.2 对于macOS用户1.3 对于Linux用户&#xff1a; 二、如何安装Anaconda2.1 对于…

Vue中filter的使用

在 Vue.js 中&#xff0c;filter() 方法用于创建一个新数组&#xff0c;其中包含通过所提供函数实现的测试的所有元素。filter() 不会改变原数组&#xff0c;而是返回一个新的数组。 语法 array.filter(callback(element[, index[, array]])[, thisArg])callback&#xff1a;…

基于Element UI内置的Select下拉和Tree树形组件,组合封装的树状下拉选择器

目录 简述 效果 功能描述 代码实现 总结 简述 基于Element UI内置的Select下拉和Tree树形组件&#xff0c;组合封装的树状下拉选择器。 效果 先看效果&#xff1a; 下拉状态&#xff1a; 选择后状态&#xff1a; 选择的数据&#xff1a; 功能描述 1、加载树结构&…

Linux云计算 |【第一阶段】SERVICES-DAY2

主要内容&#xff1a; DNS服务基础及搭建、特殊解析(针对地址库文件&#xff1a;DNS轮询 DNS泛域名解析 DNS别名&#xff09;、缓存DNS&#xff08;全局转发forwarders&#xff09;、DNS递归迭代&#xff08;子域授权&#xff09;、DNS主从架构搭建、DNS主从数据同步 一、DNS工…