首页 > 代码库 > 第七章 Selinux

第七章 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

语法:getsebool [-a] [boolean]

      例:

getsebool -a
getsebool ftp_home_dir

    setsebool

语法:setsebool [ -PV] boolean value | bool1=val1 bool2=val2 ...
-P:把设置添加进规则库,使之永久生效,若不使用此选项则只当前有效,重启系统会失效


本文出自 “忘情居” 博客,请务必保留此出处http://itchentao.blog.51cto.com/5168625/1917349

第七章 Selinux