网络安全等级保护之SELINUX介绍连载之二(模式切换篇)

作者:Sender  来源:WaveCN.com  发布日期:2022-03-08  最后修改日期:2022-03-08

article banner

笔者:国际认证信息系统审计师、软考系统分析师

SELinux 配置文件

 

SELinux的主配置文件是

/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=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

 

其中的

SELINUX=disabled

用于设置SELinux的工作模式

 

SELINUXTYPE=targeted

用于选择策略模式。默认是targeted设置。在此策略模式下,SELinux会允许自定义和微调访问控制权限。其它参数值包括有MLS,即多层次安全,更高级的保护模式。对于使用MLS时,需要安装其它应用程序包。

 

这个配置文件可以直接用文本编辑器编辑。

 

启用和禁用SELinux

 

启用SELinux比较简单。但需要分开两步进行。我们假设系统已经安装了SELinux相关的包组,但处于禁用状态。然后我们编辑

/etc/selinux/config

文件,修改SELINUX参数设置为permissive模式,即

SELINUX=permissive

 

先设置为permissive模式的原因,是因为系统中每个文件都需要在被SELinux强制监控前,打上属于该文件的上下文标签。

 

如果不是所有文件都已经正确地被标签,则访问这些文件的进程就必然失败崩溃,系统就不能用,甚至连开机都失败。接下来,重启系统。

reboot

 

重启系统时,可以观察到系统中的所有文件被打上SELinux上下文标签的过程。

 

由于permissive模式的原因,这些错误会被记录到审计日志,但系统运行并不会被阻断。

 

登录到系统并切换到root用户,在/var/log/messages这个系统日志文件中,查找:

SELinux is preventing

这样的字眼。

cat /var/log/messages | grep "SELinux is preventing"

 

如果找不到这种信息,也就可以转入下一步。更保险一点,可以只查找SELinux这个词。

cat /var/log/messages | grep "SELinux"

 

如下内容显示,有些错误是和GNOME桌面环境相关的:

Mar 08 10:18:24 localhost kernel: SELinux:  Initializing.
Mar 08 10:18:26 localhost kernel: SELinux:  Disabled at runtime.
Mar 08 10:18:31 localhost journal: Unable to lookup SELinux process context: Invalid argument
Mar 08 10:19:10 localhost gnome-session: SELinux Troubleshooter: Applet requires SELinux be enabled to run.

Mar 08 10:21:03 localhost kernel: SELinux:  Initializing.
Mar 08 10:21:04 localhost kernel: SELinux:  Disabled at runtime.
Mar 08 10:21:20 localhost journal: Unable to lookup SELinux process context: Invalid argument

 

这种错误信息都是正常的。然后是第二阶段,继续修改配置文件,从permissive改成enforcing:

SELINUX=enforcing

再重启一次:

reboot

 

当服务器再次重启后,可以通过sestatus命令检查SELinux状态,比如会有如下信息输出:

SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   permissive
Mode from config file:          error (Success)
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Max kernel policy version:      28

 

检查系统日志:

cat /var/log/messages | grep "SELinux"

应该不会再包含错误信息。输出内容应类似:

Mar 08 10:24:25 localhost kernel: SELinux:  Initializing.
Mar 08 10:24:28 localhost systemd[1]: Successfully loaded SELinux policy in 134.023ms.

 

如果需要临时切换模式,可以通过setenforce命令。但当SELinux是禁用时,不能用setenforce命令。这个命令很简单,就是:

setenforce permissive

这样就切换过去了。运行sestatus就可以观察到结果:

SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   permissive
Mode from config file:          enforcing
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Max kernel policy version:      28

 

切换回去强制模式:

setenforce enforcing
本栏目相关
  •  2024-03-05 点评软件供应链安全框架 in-toto 的审计结果
  •  2022-05-11 CIS-CAT 配置评估工具介绍及操作实践
  •  2022-03-16 Windows 系统安全基线及软件工具介绍
  •  2022-08-28 网络攻防中的色彩象征
  •  2022-03-11 安装RHEL/CentOS时如何选择配置安全策略?
  •  2022-03-17 详细了解微软安全合规工具包(SCT)
  •  2022-03-25 从甲方角度介绍“CIS互联网安全中心”
  •  2022-03-28 如何应用CIS互联网安全中心发布的《CIS关键安全控制措施集》之一:总览
  •  2023-01-06 MSSQL数据库自动备份和自动复制转移备份
  • 微信订阅号二维码

    本页网址二维码: