Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【Linux】如何管理SELinux?

【Linux】如何管理SELinux?

作者头像
MaybeHC
发布于 2024-04-23 11:34:52
发布于 2024-04-23 11:34:52
28100
代码可运行
举报
文章被收录于专栏:技术之路技术之路
运行总次数:0
代码可运行

SELinux模式

SELinux模式分类

  1. ermissive 模式:经常用于排故。这个模式,SELinux允许所有访问,即使与规则冲突,但会记录拒绝访问的行为日志。 强制模式和允许模式之间变更, 不需要重启系统。
  2. enforcing 模式: SELinux强制执行访问控制规则。 在强制模式下,如果规 则没有明确允许访问,则拒绝访问,并写入日志。
  3. disable 模式:完全关闭SELinux。不拒绝任何SELinux违规,不予记录。从 强制模式或者允许模式变更到禁用模式,或者从禁用模式变更到强制模式或 者允许模式都 需要重启系统。

SELinux标签

SELinux标签有多个内容:用户,角色,类型和敏感度。

在这里插入图片描述
在这里插入图片描述

更改SELinux模式

查看当前生效的模式

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@workstation ~]# getenforce
Enforcing

强制模式临时切换为允许模式

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@workstation ~]# setenforce 0|Permissive

允许模式临时切换为强制模式

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@workstation ~]# setenforce 1|Enforcing

强制模式和允许模式切换成disabled模式或者disabled模式切换成强制模式和 允许模式,都需要重启系统才能生效。

切换方法:编辑配置文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@workstation ~]# vim /etc/selinux/config
SELINUX=disabled
SELINUXTYPE=targeted

设置SELinux默认策略方法。

控制SELinux上下文

在运行SELinux的系统上,所有进程和文件都会有相应的标签。新文件通常从父目录继承其SELinux上下文,从而确保它们具有适当的上下文。

但是,有两种情况例外: 如果在不同的位置创建文件,然后移动文件, 则该文件将具有创建它 时所在目录的SELinux上下文,而不是目标目录的SELinux上下文。

如果是复制一个保留SELinux上下文的文件(正如使用cp -a 命令),则 SELinux上下文将反映原始文件的位置。

更改SELinux上下文

  1. semanage fcontext命令,声明文件的默认标签,将标签添加至数据库中,需要使用estorecon恢复时才可生效

选项

描述

-a,–add

添加指定对象类型的记录

-d , --delete

删除指定对象类型的记录

-l, --list

列出指定对象类型的记录

  1. estorecon命令,将该semanage fcontext声明的默认标签应用于文件。这样可确保标签符合预期,即便在对文件系统完全重新标记之后也是如此。
  2. chcon命令,更改文件SELinux上下文,它不会将上下文更改保存到SELinux上下文数据库中。当 restorecon命令运行时, chcon命令所做的更改也同样无法保留。此外,如果对整个文件系统进行重新标记,则使用chcon更改过的文件的SELinux上下文将恢复

semanage fcontext命令用于显示和修改默认规则,restorecon命令将使用这个规则恢复文本默认规则。semanage fcontext命令使用扩展的正则表达式指定路径和文件名。比较常见的扩展正则表达式(/.*)?,表示随意匹配/后面接任意数量字符,递归匹配文件夹下的子文件和子文件夹。

示例:
定义文件默认SELinux上下文

下面代码使用semanage fcontext命令为/test目录添加了默认标签,并使用estorecon命令对目录进标签的更新

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@et8en ~]# mkdir /test
[root@et8en ~]# ll -Zd /test/
drwxr-xr-x. 2 root root unconfined_u:object_r:default_t:s0 6 Jun 24 00:06 /test/
[root@et8en ~]# semanage fcontext -a -t httpd_sys_content_t '/test(/.*)?'
[root@et8en ~]# ll -Zd /test/
drwxr-xr-x. 2 root root unconfined_u:object_r:default_t:s0 6 Jun 24 00:06 /test/
[root@et8en ~]# restorecon -RFv /test/   重置该目录内所有文件规则
Relabeled /test from unconfined_u:object_r:default_t:s0 to system_u:object_r:httpd_sys_content_t:s0
chcon命令临时修改SELinux上下文

这里/test的默认标签为httpd_sys_content_t,我们通过chcon命令临时修改了标签,之后使用restorecon命令将恢复为数据库存储的标签内容

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@et8en ~]# chcon -t default_t /test
[root@et8en ~]# ll -Zd /test/
drwxr-xr-x. 2 root root system_u:object_r:default_t:s0 6 Jun 24 00:06 /test/
[root@et8en ~]# restorecon -v /test/
Relabeled /test from system_u:object_r:default_t:s0 to system_u:object_r:httpd_sys_content_t:s0
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-04-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
SELinux的基本使用
从进入了 CentOS 5.x 之后的 CentOS 版本中 (当然包括 CentOS 7),SELinux 已经是个非常完备的核心模块了!尤其 CentOS 提供了很多管理 SELinux 的指令与机制,因此在整体架构上面是单纯且容易操作管理的!所以,在没有自行开发网络服务软件以及使用其他第三方协力软件的情况下,也就是全部使用 CentOS 官方提供的软件来使用我们服务器的情况下,建议大家不要关闭 SELinux ! 让我们来仔细的玩玩这家伙吧!
小柒吃地瓜
2020/04/23
3K0
三分钟学会 linux 的 selinux
安全增强型 Linux(Security-Enhanced Linux)简称 SELinux,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统。
用户7557625
2020/07/15
6510
SELinux初学者指南
SELinux(Security Enhanced Linux)是美国国家安全局2000年发布的一种高级MAC(Mandatory Access Control,强制访问控制)机制,用来预防恶意入侵。SELinux在DAC(Discretionary Access Control,自主访问控制)的基础上实现了强制访问控制,比如读、写和执行权限。
伍尚国
2018/09/11
1.3K0
系统管理员的 SELinux 指南:这个大问题的42个答案
安全、坚固、遵从性、策略是末世中系统管理员的四骑士。除了我们的日常任务之外 —— 监控、备份、实施、调优、更新等等 —— 我们还需要负责我们的系统安全。即使这些系统是第三方提供商告诉我们该禁用增强安全性的系统。这看起来像《碟中碟》中 Ethan Hunt 的工作一样。
用户8639654
2021/10/21
8020
CentOS下SELinux安全设置 原
在CentOS 7系统中部署SELinux非常简单,由于SELinux已经作为模块集成到内核中,默认SELinux已经处于激活状态。对管理员来说,更多的是需要配置与管理SELinux,CentOS 7系统中SELinux全局配置文件为/etc/sysconfig/selinux,内容如下:
拓荒者
2019/03/11
2.3K0
容器挂载volume出现“Permission denied”的问题定位解决
使用如下系统(centos)运行容器后,在容器内的挂载目录内执行ls命令出现了“Permission denied”的错误
charlieroro
2020/03/24
2.5K0
SELinux安全问题
SELinux(Security-Enhanced Linux)是一个安全模块,用于强制执行细粒度的安全策略。SELinux可以显著提高系统的安全性,但有时也会导致一些问题,特别是当应用程序或服务配置不当时。以下是一些诊断和解决SELinux安全问题的方法:
是山河呀
2025/02/03
1600
系统配置性能优化测试
描述:它是个ELF可执行文件,该命令将系统配置变量值写入标准输出用于获取系统信息,在进行LINUX编程中可以提供其帮忙;
全栈工程师修炼指南
2022/09/28
2.5K0
系统配置性能优化测试
SELinux的策略与规则管理相关命令
SELinux的策略与规则管理相关命令:seinfo命令、sesearch命令、getsebool命令、setsebool命令、semanage命令。
菲宇
2022/12/02
6580
SELinux入门学习总结
安全增强型 Linux(Security-Enhanced Linux)简称 SELinux,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统。
小陈运维
2021/10/13
1.1K0
安全利器 — SELinux
在 Linux 系统中一切皆文件,资源也属于某种文件。用户在访问文件的时候,系统对权限(读、写 、执行)进行检查。只要用户对文件有足够的权限,就可以任意操作资源。root 用户对所有资源拥有所有权限,是个危险的存在。每年都会看到某职员一不小心把系统“干趴下”的新闻。这种权限管理的主体是用户,被称为 Discretionary Access Control ,DAC ,自主访问控制。
天存信息
2021/06/08
1.3K0
安全利器 — SELinux
centos7 部署Apache服务器
Apache程序是目前拥有很高市场占有率的Web服务程序之一,其跨平台和安全性广泛被认可且拥有快速、可靠、简单的API扩展。 它的名字取自美国印第安人土著语,寓意着拥有高超的作战策略和无穷的耐性,在红帽RHEL5、6、7系统中一直作为着默认的Web服务程序而使用,并且也一直是红帽RHCSA和红帽RHCE的考试重点内容。Apache服务程序可以运行在Linux系统、Unix系统甚至是Windows系统中,支持基于IP、域名及端口号的虚拟主机功能、支持多种HTTP认证方式、集成有代理服务器模块、安全Socket层(SSL)、能够实时监视服务状态与定制日志消息,并有着各类丰富的模块支持。
拓荒者
2019/03/15
1.7K0
centos7 部署Apache服务器
selinux安全增强linux
文件权限的访问方式: 1.DAC主动访问控制:完全依赖于权限的设置 2.MAC强制访问控制:根据上下文的进程,只能访问特定上下文的内容。
陪你听风
2021/03/31
1.7K0
四.linux文件权限
一个文件对应三种权限对象,分别文件的所有者user、所属组group和其他人other 每个权限对象对应三种权限,分别是读r、写w和执行x 权限数字对应关系
对弈
2019/09/04
4K0
apache 访问权限出错,apache selinux 权限问题, (13) Permission Denied
今天在使用 httpd 做文件服务器的时候,发现 png 图像没有打开,但是原本www/html 文件夹内部的文件就可以打开。后来猜测是selinux 的问题,之前一直想写一篇关于selinux 的博文,现在先在这里提到一点吧。
西湖醋鱼
2020/12/30
1.8K0
selinux-guide_part3
        先发上来的是第三部分,前面还有part2未整理好,下面一些内容是细细的读完文档之后的成果,对selinux是越来越感兴趣了。陆续更新中哦。 selinux contexts         系统里的文件和进程都打上的selinux 上下文标记,这些标记包含:selinux 用户,角色,类型,选项,等级。当系统运行selinux时,所有的这些信息来决定访问控制。在红帽子企业版中,selinux提供了一种组合了角色为基础的访问控制(RBAC),TYPE Enforcement,和混合等级安全(MSL)multi-level。        在linux 操作系统中用 :ls -Z flies  来查看文件和目录的selinux的上下文。 显示的语法如下:selinux user:role:type:level  linux user---->selinux policy---->selinux user policycoreutils-python装包。 [root@kikupotter ~]# semanage login -l 登录名                       SELinux 用户                MLS/MCS 范围               __default__               unconfined_u              s0s0:c0.c1023           root                      unconfined_u              s0-s0:c0.c1023           system_u                  system_u                  s0-s0:c0.c1023                       第一列的话是Linux user,第二列是selinux用户。第三列是mls/mcs的范围。这样的话linux user,通过selinux policy 于selinux user关联在一起,selinux user被限定在一定的role,和leave中运行进程。 role selinux的另一部分role-based access control security model(RBAC).role 就是RBAC的属性。 selinux user 要通过role的认证,而role 需要domain的认证。 role相当我momain与selinux user的中间人。这个role可以决定那个domain可以进去。最终,控制哪种类型的类可以通过,增加的安全性。 type type是type enforcement 的属性。 type为进程定义一个domain,为文件定义一个类型。 selinux policy rules定义了怎样的type可以相互访问,domain与type的互访,domain与domain的互访。    level level是mls和mcs的属性。 mls等级是连续的。像这样: lowlevel--highlevel。可以一样或不一样。s0-s0也可一表示成s0. 每个level都用一对sensitivity.category   sensitivity:category-set category c0.c3=c0,c1,c2,c3 mcs在红帽子系统里支持1024不同的种类。s0.s0:c0.c1023,sensitivity为s0可以通过任何的category. mls加强了强制访问控制,并且用于lspp环境。要用mls的限制功能要安装,selinux-policy-mls,配置mls为默认的selinux policy.mls 不支持x server所以在桌面环境不可用。 3.1 domain transitions        在一个域中的一个进程要过度到另一个域中通过运行程序的手段,这是需要另一个域的入口点的类型。这个入口点(entrypoint) [root@kikupotter ~]# ls -Z /usr/bin/passwd -rwsr-xr-x. root root system_u:object_r:passwd_exec_t:s0 /usr/bin/passwd A.用户想改密码。为了做这个他运行了passwd. passwd是运行在passwd_exec_t的类型下。 passwd程序通过/etc/shadow,shadow被表上了shadow_t的类型。 [root@kikupotter ~]# ls -Z /etc/shadow -r--------. root root system_u:object_r:shadow_t:s0    /e
py3study
2020/01/14
1.3K0
根据红帽RHEL7官方文档对centos7进行技术剖析(二)
第一章 使用红帽kickstart,自动化安装rhel。 http://pan.baidu.com/s/1qWqfXlq    文档下载地址。 第二章: 控制对文件的访问 在第一本书中,曾讲到文件权限的设置以及规划对系统的安全是极其重要的,那么这一章将重点学习文件权限的进一步设置,设定权限列表(acl)等等。 注意:在生产环境中经常出于安全的考虑需要对文件目录和用户给予很严格的权限设计,从文件系统的基本权限到特殊权限,到acl控制都是企业权限控制的有效途径。因此在面试笔试中,权限的设置也是极其重要的针对某些
BGBiao
2018/02/26
1.6K0
根据红帽RHEL7官方文档对centos7进行技术剖析(二)
Samba:使用 Samba 为远程客户端提供共享文件系统
对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它的路都是不完整的,是人的逃避方式,是对大众理想的懦弱回归,是随波逐流,是对内心的恐惧 ——赫尔曼·黑塞《德米安》
山河已无恙
2023/09/21
4.5K0
Samba:使用 Samba 为远程客户端提供共享文件系统
技术分享 | SELinux 与 MySQL
为了提高 Linux 系统的安全性,在 Linux 上通常会使用 SELinux 或 AppArmor 实现强制访问控制(Mandatory Access Control MAC)。对于 MySQL 数据库的强制访问控制策略通常是激活的,如果用户采用默认的配置,并不会感到强制访问控制策略对 MySQL 数据库的影响,一旦用户修改了 MySQL 数据库的默认配置,例如默认的数据目录或监听端口,MySQL 数据库的活动就会被 SELinux 或 AppArmor 阻止,数据库无法启动,本文简单介绍 SELinux 对 MySQL 数据库的影响。
爱可生开源社区
2021/01/13
1.2K0
Linux系统文件权限管理
Linux操作系统是多任务(Multi-tasks)多用户(Multi-users)分时操作系统,linux操作系统的用户就是让我们登录到linux的权限,每当我们使用用户名登录操作系统时,linux都会对该用户进行认证、授权审计等操作,本章主要内容就是围绕着权限来讲解的,我会讲解Linux系统中的所有常用权限包括,普通权限/隐藏权限/特殊权限/ACL/SUDO/SELinux,等的设置与使用技巧.
王瑞MVP
2022/12/28
4.8K0
相关推荐
SELinux的基本使用
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验