zoukankan      html  css  js  c++  java
  • SELinux入门简介

        操作系统有两类访问控制:自主访问控制(DAC)和强制访问控制(MAC)。标准Linux安全是一种DAC,SELinux为Linux增加了一个灵活的和可配置的的MAC。

        进程启动时所拥有的权限就是运行此进程的用户权限,一个进程能访问哪些文件取决于该文件的主、组和其他权限,这就是DAC

        如一个用户运行了进程,运行此进程需要若干个文件,但该进程具有的权限是与该用户的权限一致,即该进程能访问此用户能够访问的所有文件。Linux自身是无法限定某个进程只能访问其运行需要的指定文件,因此MAC,就是不让进程在该用户权限下访问它不需要文件,即使进程是有权限访问的。

    那么是如何实现的?
    每个进程启动时,给它划定一个范围,只能访问此范围内的资源。但是每种程序运行依赖的资源或权限并不相同,并不可能为每一种程序制定范围。所以有如下两种工作级别。

    SELinux工作级别
            restrict:每个进程都受selinux的控制
            targeted:仅有限的进程受到控制,通常只监控容易受到入侵的进程

    SELinux工作模型

            存在三种角色subject   operation   object
            subject:主体,操作的发起者
            operation:操作,主体能够执行什么样的操作取决于客体所支持的操作
            object:客体,操作的作用对象
            通常动作的发起者是进程,进程可以对诸如文件或者进程等对象执行操作,那针对文件来说可以支持的操作有读、写、打开、关闭及更改权限等,针对进程作为客体,执行的操作有杀死、创建等

        每一个进程都有一个标签。操作系统中的每一个文件/目录客体object也都有一个标签。甚至连网络端口、设备,乃至潜在的主机名都被分配了标签。标签有五部分组成USER:ROLE:TYPE[LEVEL[:CATEGORY]]。user指的是SELinux的user非系统user,LEVEL和CATEGORY:定义层次和分类,只用于mls策略中。

        进程通过标签划分在不同的域,文件通过标签定义为不同个类型。SElinux存在一规则库,其中定义了哪种域能够访问哪些类型内的文件。如某进程要访问一个文件,但是此进程的域与文件的类型不在同一范围内那么要如何突破限制,这时候就要修改标签。
    SELinux的策略通常是编译成二进制文件以加速访问。

    如何使用SELinux

            (1)  /etc/sysconfig/selinux打开或关闭SELinux
                   SELINUX=enforcing|permissive|disabled
                   从disable状态启用,需要重启系统,让系统上的所有文件重新打上标签。permissive不禁止,但会计入日志/var/log/audit/audit.log
                   getenforce/setenforce 0|1  获取或更改当前状态
            (2)查看、更改文件标签
                 ps –Z :检查进程的安全上下文;
                 ls -Z :检查文件、目录的安全上下文
                 chcon [-u USER] [-r ROLE] [-t TYPE]
                  一般目录下的文件具有“目录名_t”的类型,更改文件标签类型可以在不更改主(组)的情况下限制进程对其的访问。
                  还原文件的默认标签 ,restorecon [-R] path/file
            (3)SELinux的布尔型开关
                   getsebool -a: 列出SELinux的所有布尔值
                   setsebool: 设置SELinux布尔值,如:setsebool -P dhcpd_disable_trans=0,-P表示重启后也能生效,直接写入规则库

    参考:http://blog.csdn.net/myarrow/article/details/9856095/

  • 相关阅读:
    poj 3122 (二分查找)
    poj 1064 (二分+控制精度) && hdu 1551
    hdu 2199 (二分)
    hdu 2141 (二分)
    poj 2954 Triangle(Pick定理)
    poj 1265 Area (Pick定理+求面积)
    hdu 4946 Just a Joke(数学+物理)
    zoj 1199 几何公式推导
    MMORGP大型游戏设计与开发(客户端架构 part13 of vegine)
    MMORPG大型游戏设计与开发(客户端架构 part12 of vegine)
  • 原文地址:https://www.cnblogs.com/otherside/p/6683429.html
Copyright © 2011-2022 走看看