天天看点

第七章 Selinux

7.1 DAC与MAC

  DAC:Linux自己的安全机制叫做DAC(Discretionary Access Control,自主访问控制)

  MAC:SELinux实现的功能叫做MAC(Mandatory Access Control,强制访问控制机制)

7.2 selinux的工作级别与机制

  SELinux:Secure Enhanced Linux,工作于Linux内核中。

  SELinux有两种工作级别:

    strict:严格级别,每个进程都受到selinux的控制

    targeted:仅有限个进程受到selinux的控制

      只监控容易被入侵的进程

  SELinux工作机制:

    SELinux采用类似沙箱(sandbox)的方式来运行进程:

      subject operation object

      subject:进程

      object:可以是进程,可以是文件

        适用于文件的操作:open,read,write,close,chown,chmod

    SELinux为每个文件提供了安全标签,也为进程提供了安全标签:

      user:role:type

      user:SELinux的user

      role:角色

      type:类型

    SELinux规则库:

      规则:定义了哪种域能访问哪种或哪些种类型内的文件

      遵循“法无授权即禁止”的规则,也就是说没有明确授权的所有操作均禁止

7.3 selinux的配置

  SELinux是否启用:在/etc/selinux/config文件中定义

  SELinux的状态:

    enforcing:强制,每个受限的进程都必然受限

    permissive:启用,每个受限的进程违规操作时不会被禁止,但会被记录于审计日志

    disabled:禁用

    相关命令:

      getenforce:获取selinux当前状态

      setenforce 0|1

        0:设置为permissive

        1:设置为enforcing

      此设定仅当前有效,重启系统后无效

      配置文件:/etc/sysconfig/selinux,/etc/selinux/config

        SELINUX={disabled|enforcing|permissive}

  给文件重新打标签:

    chcon:change context,改变上下文

    chcon [option]... CONTEXT FILE...

    chcon [option]... [-u USER] [-r ROLE] [-t TYPE] FILE...

    chcon [option]...  --reference=RFILE FILE...

    -R:递归打标签

  还原文件的默认标签: 

    restorecon [-R] /path/to/somewhere(可以是文件,也可以是目录)

  设定某些布尔型特性:

    getsebool

      例:

    setsebool

继续阅读