CentOS 7.x 重新启用SELinux,系统无法启动

一、SELinux ( Security-Enhanced Linux)简述

SELinux 是linux 开源社区帮助美国家国安全局开发的一个强制访问控制的安全子系统。SELinux代表安全增强型Linux,它是Linux内核安全模块。默认情况下,在我们用于诸如centOS之类的服务器的大多数Linux发行版中都启用了该功能。它提供了增强的安全性。它使您可以很好地控制所有程序和守护程序的活动,例如与外部程序进行通信或控制是否为特定程序建立外部连接。目的是让各服务进程都受到有效的控制,使其仅获取到本地的资源。

SELinux 的功能:从多方面监控违法行为

  • 服务程序的功能进行限制(SELinux域 限制,有效确保服务程序不能做出出格的事(越权,例如,普通软件,读取操作系统的密码))
  • 文件资源地访问限制(SELinux 安全上下文有效确保文件资源只能被其所属的服务程序进行访问)

二、查看当前SElinux 状态:

1. 查看SElinux详细状态

[root@localhost conf]# sestatus
SELinux status:                 enabled   # 启用
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   enforcing
Mode from config file:          enforcing
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Max kernel policy version:      31

2. 查看SELinux 当前运行模式

2.1 SELinux 运行模式

Open the file  /etc/selinux/config  and change the option SELINUX to disabled
if you open file you would see something like

# 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. #禁用

# SELINUXTYPE= can take one of these two values:
# targeted – Targeted processes are protected,
# mls – Multi Level Security protection.
SELINUXTYPE=targeted

2.2 查看SElinux

#查看当前SElinux 模式
[root@localhost conf]# getenforce
Enforcing

三、直接由disabled启用SELinux 导致Linux 无法正常启动

报错如下:
在这里插入图片描述
根据报错,分析:其autorelabel Service 运行异常,解决办法:
通过Google :

  1. 先将status 由disabled 调整到permissive 模式
  2. 重新标记
  3. 重启服务器

另通过查看当前 /etc/selinux/conf 文件semanage 有如下:
在这里插入图片描述
如图所示,错误,是由于权限标记导致系统无法正常启动(系统启动将会产生权限异常的警告)
为此只能进入单用户模式,这个请看:https://blog.csdn.net/AMimiDou_212/article/details/89152430

先看一下正常SELinux 安全上下文:
在这里插入图片描述

解决SELinux 重新启用导致系统无法正常启动:

分析原因:

  1. SELinux 标记缺失导致出现上述问题;
  2. SELinux 在禁用模式下,未对conf文件重新标记,导致如上;
    解决思路:
  3. 重新刷新SELinux 安全上下文标记 ## touch /.autorelabel
  4. 修改SELinux 状态到enforcing 强制启用 ## SELINUX=enforcing
  5. 重新启动服务器 ## reboot
查看config 修改后的安全上下文:

在这里插入图片描述

注:.autorelabel 是什么?
  1. 重启系统时,它会自动重新标记SElinux的文件系统。
  2. 首次为SELinux标记文件系统时,3.
  3. 在不同类型的策略之间切换时发生,例如从目标策略更改为严格策略。(由disabled切换到enforcing)

综上所述,SELinux 运行状态导致的系统无法正常先启动,是由于SELinux 直接由disabled 修改为enforcing 运行模式导致。

查看当前系统SELinux 域与安全上下文

查看SELinux 安全上下文:
[root@localhost conf]# sestatus -v
SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   enforcing
Mode from config file:          enforcing
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Max kernel policy version:      31

Process contexts:
Current context:                unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
Init context:                   system_u:system_r:init_t:s0
/usr/sbin/sshd                  system_u:system_r:sshd_t:s0-s0:c0.c1023

File contexts:
Controlling terminal:           unconfined_u:object_r:user_devpts_t:s0
/etc/passwd                     system_u:object_r:passwd_file_t:s0
/etc/shadow                     system_u:object_r:shadow_t:s0
/bin/bash                       system_u:object_r:shell_exec_t:s0
/bin/login                      system_u:object_r:login_exec_t:s0
/bin/sh                         system_u:object_r:bin_t:s0 -> system_u:object_r:shell_exec_t:s0
/sbin/agetty                    system_u:object_r:getty_exec_t:s0
/sbin/init                      system_u:object_r:bin_t:s0 -> system_u:object_r:init_exec_t:s0
/usr/sbin/sshd                  system_u:object_r:sshd_exec_t:s0

sestatus 命令

[root@localhost conf]# sestatus -h
Usage: sestatus [OPTION]

  -v  Verbose check of process and file contexts. #文件安全上下文
  -b  Display current state of booleans. #程序域

Without options, show SELinux status.

参考:
.autorelabel
启用SELinux时遇到的问题

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值