微信订阅号二维码
本栏目热门内容
  • 微软安全合规工具包(SCT...
  • SELINUX介绍连载#3:什么...
  • Windows 系统安全基线及软...
  • SELINUX介绍连载#2:模式...
  • 详细了解微软安全合规工具...
  • CIS关键安全控制措施#7持...
  • 从甲方角度介绍“CIS互联...
  • 关于OpenSCAP/SCAP安全策...
  • CIS关键安全控制措施#8审...
  • SELINUX介绍连载#1:基础...
  • CIS关键安全控制措施#9电...
  • 安装RHEL/CentOS时如何选...
  • CIS关键安全控制措施#5账...
  • CIS关键安全控制措施#2软...
  • CIS关键安全控制措施#6访...
  • 什么是网络行为异常检测(...
  • SELINUX介绍连载#4:策略...
  • CIS关键安全控制措施#12网...
  • CIS关键安全控制措施#11数...
  • 网络行为异常检测(NBAD)...
  • 如何使用OpenSCAP检查工具...
  • CIS关键安全控制措施#14安...
  • CIS关键安全控制措施#10防...
  • CIS关键安全控制措施#15服...
  • CIS关键安全控制措施#1总...
  • CIS关键安全控制措施#16应...
  • CIS关键安全控制措施#4企...
  • CIS关键安全控制措施#18渗...
  • CIS关键安全控制措施#16应...
  • 更多...

    网络安全等级保护之SELINUX介绍连载之二(模式切换篇)
    作者:Sender  来源:WaveCN.com  发布日期:2022-03-08  最后修改日期:2022-03-08

    配置文件

     

    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
    本栏目相关
  •  2022-03-18 微软安全合规工具包(SCT)操作实战
  •  2022-03-09 网络安全等级保护之SELINUX介绍连载之三(什么是策略)
  •  2022-03-16 Windows 系统安全基线及软件工具介绍
  •  2022-03-08 网络安全等级保护之SELINUX介绍连载之二(模式切换篇)
  •  2022-03-17 详细了解微软安全合规工具包(SCT)
  •  2022-04-06 如何应用CIS互联网安全中心发布的《CIS关键安全控制措施集》之七:持续的漏洞管理
  •  2022-03-25 从甲方角度介绍“CIS互联网安全中心”
  •  2022-03-13 关于OpenSCAP/SCAP安全策略的介绍
  •  2022-04-07 如何应用CIS互联网安全中心发布的《CIS关键安全控制措施集》之八:审计日志管理