• 深入理解SELinux


     

      

    深入理解SELinux

    Security-Enhanced Linux (SELinux)是强制访问控制MAC在Linux内核中的一种实现——在自主访问控制(DAC)检查之后,再次检查允许的操作。SELinux通过定义的策略,强制限定Linux系统中对文件的操作、进程的权限。

    MAC:mandatory access control

    DAC:discretionary access controls

     

    优点

    1. 所有文件和进程都加上一个特定类型标签,一个类型标签为进程定义了一个域,而为文件定义了一种类型。SELinux策略中指定,进程访问文件的规则以及进程间通信规则。
    2. 细化访问控制。SELinux中访问能力取决相关信息,例如用户、角色、类型和等级(可选选项)。
    3. 策略由管理员设置,全系统范围有效。
    4. 防止权限升级,如果有进程被挟持了(compromised),攻击者只能访问有限的资源(该进程所能访问的资源)。
    5. 加强数据的安全性和完整性

    注意:

    SELinux不是杀毒软件

    SELinux不是口令密码、防火墙或者其他安全系统的替代物

    SELinux不是一体化的安全解决方案

     

    SELinux是在已有的安全解决方案基础之上,增强安全性,而不是替代原有的安全解决方案。

     

    工作状态

    Enforcing(启用状态):SELinux策略是强制使用。SELinux会根据策略拒绝访问

    Permissive(自由状态):SELinux策略不是被强制使用的,仅会根据策略提醒用户

    Disabled(禁用状态):SELinux不启用

    ~]# getenforce  # 查看启用状态
    Enforcing

     ~]# setenforce 0   # 关闭SELinux
      ~]# getenforce 
      Permissive  

    工作模式

    strict(严格模式):每个进程都会受到Selinux的控制

    targeted (宽松模式):仅对部分进程启用selinux的控制

     

    安全标签

    格式:

    user, role, type, level

    user, 用户

    role, 角色

    type, 类型

    level, 等级,可选项

    使用 ls -Z  可查看文件的标签

    [root@node1 tmp]$ls -Z mbr.bak 
    -rw-r--r--. root root system_u:object_r:tmp_t:s0       mbr.bak

    第四个字段即为安全标签——“system_u:object_r:tmp_t:s0”

    查看进程的安全标签——ps  -Z

    [root@node1 tmp]$ps aux -Z
    LABEL                           USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    system_u:system_r:init_t:s0     root          1  0.0  0.1  17128  1312 ?        Ss   03:06   0:01 /sbin/in
    system_u:system_r:kernel_t:s0   root          2  0.0  0.0      0     0 ?        S    03:06   0:00 [kthrea]
    system_u:system_r:kernel_t:s0   root          3  0.0  0.0      0     0 ?        S    03:06   0:00 [migrat]
    system_u:system_r:kernel_t:s0   root          4  0.0  0.0      0     0 ?        S    03:06   0:00 [ksofti]
    ...

    修改安全标签

     chcon命令

    修改文件的SELinux安全上下文

    常用选项

    -u  指定用户

    -r   指定角色

    -t   指定类型或域

    -R    递归修改文件或文件夹

     

    修改文件安全上下文类型

    [root@node1 tmp]$ls -Z mbr.bak   
    -rw-r--r--. root root system_u:object_r:tmp_t:s0       mbr.bak
    [root@node1 tmp]$chcon -t tmp_tt_t mbr.bak                               # 修改文件的安全上下文类型
    [root@node1 tmp]$ls -Z mbr.bak                          
    -rw-r--r--. root root system_u:object_r:tmp_tt_t:s0    mbr.bak

    restorecon命令

    还原文件安全上下文

    常用选项

      -R  递归还原文件或文件夹

    getsebool

    查看进程或服务本身开启或关闭的功能模块

    -a  查看所有布尔值

    setsebool

      修改指定模块是否使用SELinux

      -P  将修改结果保存本地磁盘

    相关文件

    /etc/selinux/config | /etc/sysconfig/selinux  配置SELinux启用状态和工作模式的文件

    /var/log/audit/audit.log       SELinux变动日志

  • 相关阅读:
    【BZOJ2844】albus就是要第一个出场 高斯消元求线性基
    Python入门之面向对象module,library,package之间区别
    Python入门之字典的操作详解
    Python Web学习笔记之TCP/IP协议原理与介绍
    Python Web笔记之高性能网络编程
    Python Web学习笔记之面试TCP的15个问题
    Python Web学习笔记之TCP/IP、Http、Socket的区别
    Python Web学习笔记之TCP、UDP、ICMP、IGMP的解释和区别
    Python Web学习笔记之IGMP和ICMP的差别
    Python设计模式之单例模式
  • 原文地址:https://www.cnblogs.com/vathe/p/6866649.html
Copyright © 2020-2023  润新知