Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 417|回复: 0

linux异常处理:selinux配置错误导致无法重启

[复制链接]
  • TA的每日心情
    奋斗
    2024-4-6 11:05
  • 签到天数: 748 天

    [LV.9]以坛为家II

    2034

    主题

    2092

    帖子

    70万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    705612
    发表于 2021-7-22 15:56:24 | 显示全部楼层 |阅读模式

    点击返回自学Linux集锦

    linux异常处理:selinux配置错误导致无法重启

    一次linux无法重启异常记录:

    当时第一反应就是梳理最近的配置变更,特别是能预知相关的就是selinux配置变更。

    原来是误将SELINUXTYPE看成SELINUX后,将其值改为disabled。导致操作系统服务启动,无法进入单用户模式。变更回来之后,一切正常。

    解决方法一:

    系统启动的时候,按下‘e’键进入grub编辑界面,编辑grub菜单,使用上下键选择“kernel ” 一行,按‘e’键进入编辑,在末尾增加“enforcing=0”,按“enter”保存设置并退到上一层,按‘b’键继续引导后正常开机。收到

    恢复“/etc/selinux/config”中的配置信息。再按需求修改“SELINUX=disabled”。

    解决方法二:

    直接更改。

    下面就是谈谈selinux。

    安全增强型 Linux(Security-Enhanced Linux)

    SELinux,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统。

    SELinux 主要由美国国家安全局开发。2.6 及以上版本的 Linux 内核都已经集成了 SELinux 模块。

    1、SELinux 的作用及权限管理机制

    1.1 SELinux 的作用

    SELinux 主要作用就是最大限度地减小系统中服务进程可访问的资源(最小权限原则)。

    目前系统文件权限的管理有两种:DAC(传统的) 和 MAC(SELinux)

    1.2 DAC

    传统的文件权限与帐号关系:自主式存取控制, DAC(Discretionary Access Control, DAC)

    在没有使用 SELinux 的操作系统中,决定一个资源是否能被访问的因素是:某个资源是否拥有对应用户的权限(读、写、执行)。

    只要访问这个资源的进程符合以上的条件就可以被访问。

    而最致命问题是,root 用户不受任何管制,系统上任何资源都可以无限制地访问。

    这种权限管理机制的主体是用户,也称为自主访问控制(DAC)。

    1.3 MAC

    以政策规则订定特定程序读取特定文件:委任式存取控制,MAC

    在使用了 SELinux 的操作系统中,决定一个资源是否能被访问的因素除了上述因素之外,还需要判断每一类进程是否拥有对某一类资源的访问权限。

    这样一来,即使进程是以 root 身份运行的,也需要判断这个进程的类型以及允许访问的资源类型才能决定是否允许访问某个资源。进程的活动空间也可以被压缩到最小。

    即使是以 root 身份运行的服务进程,一般也只能访问到它所需要的资源。即使程序出了漏洞,影响范围也只有在其允许访问的资源范围内。安全性大大增加。

    这种权限管理机制的主体是进程,也称为强制访问控制(MAC)。

    而 MAC 又细分为了两种方式,一种叫类别安全(MCS)模式,另一种叫多级安全(MLS)模式。

    • 在 DAC 模式下,只要相应目录有相应用户的权限,就可以被访问
    • 在 MAC 模式下,还要受进程允许访问目录范围的限制。

    【总结理解】

    • DAC是以用户为出发点来管理权限的
    • MAC是以程序为出发点来管理权限的

    • 以前:root--->启动httpd---->httpd可以访问系统任何文件
    • 现在:root--->启动httpd---->httpd只能访问/var/www/目录(这是MAC)规则的约束
      如果httpd想要访问其他目录,那么必须满足两个条件:DAC的rwx + MAC的规则

    2、SELinux 基本概念

    2.1 主体(Subject)

    可以完全等同于进程。

    2.2 目标(Object)

    被主体访问的资源。可以是文件、目录、端口、设备等。

    注:为了方便理解,如无特别说明,以下均把文件或者目录视为对象。

    2.3 政策和规则(Policy & Rule)

    系统中通常有大量的文件和进程,为了节省时间和开销,通常我们只是选择性地对某些进程进行管制。

    而哪些进程需要管制、要怎么管制是由政策决定的。

    一套政策里面有多个规则。部分规则可以按照需求启用或禁用(以下把该类型的规则称为布尔型规则)。

    规则是模块化、可扩展的。在安装新的应用程序时,应用程序可通过添加新的模块来添加规则。用户也可以手动地增减规则。

    在 CentOS 7 系统中,有三套政策,分别是:

    • targeted:对大部分网络服务进程进行管制。这是系统默认使用的政策(下文均使用此政策)。
    • minimum:以 targeted 为基础,仅对选定的网络服务进程进行管制。一般不用。
    • mls:多级安全保护。对所有的进程进行管制。这是最严格的政策,配置难度非常大。一般不用,除非对安全性有极高的要求。

    政策可以在 /etc/selinux/config 中设定。

    【总结以上重要原理】SELinux 是透过 MAC 的方式来控管程序

    • 主体 (Subject):SELinux 主要想要管理的就是程序,主体= process;
    • 目标 (Object):主体程序将访问的文件,目标=文件;
    • 政策 (Policy):由于程序与文件数量庞大,因此 SELinux 依据服务来制订基本的存取安全性政策。这些政策内包含有详细的规则 (rule) 来指定不同的服务开放某些资源的存取与否。 

    2.4 安全上下文(Security Context)

    主体能不能存取目标除了政策指定之外,主体与目标的安全性文本必须一致才能够顺利存取。

    这个安全性文本 (security context) 有点类似文件系统的 rwx !安全性文本的内容与设定是非常重要的!

    如果设定错误,你的某些服务(主体程序)就无法存取文件系统(目标资源),当然就会一直出现『权限不符』的错误讯息了!

    安全上下文有四个字段,分别用冒号隔开。形如:system_u:object_r:admin_home_t:s0。

    2.5 SELinux 的工作模式

    SELinux 有三种工作模式,分别是:

    • enforcing:强制模式。违反 SELinux 规则的行为将被阻止并记录到日志中。
    • permissive:宽容模式。违反 SELinux 规则的行为只会记录到日志中。一般为调试用。
    • disabled:关闭 SELinux。

    SELinux 工作模式可以在 /etc/selinux/config 中设定。

    如果想从 disabled 切换到 enforcing 或者 permissive 的话,需要重启系统。反过来也一样。

    enforcing 和 permissive 模式可以通过 setenforce 1|0 命令快速切换。

    需要注意,如果系统已经在关闭 SELinux 的状态下运行了一段时间,在打开 SELinux 之后的第一次重启速度可能会比较慢。因为系统必须为磁盘中的文件创建安全上下文。

    SELinux 日志的记录需要借助 auditd.service 这个服务,请不要禁用它。

     ........

    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-4-20 13:53 , Processed in 0.081019 second(s), 29 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表