SELinux 操作模式

    学科 (Subject):SELinux 序,因此你能够将『主体』跟 process 划上等号;

    目标 (Object): 主体程序是否能存取的『目标资源』一般就是文件系统。因此这个目标项目能够等文件系统划上等号。

    政策 (Policy): 因为程序与档案数量庞大,因此 SELinux 会根据某些服务来制订基本的存取安全性政策。

这些政策内还会有具体的规则 (rule) 来指定不同的服务开放某些资源的存取与否。

在眼下的 CentOS 6.x 里面仅有提供两个基本的政策例如以下,一般来说,使用预设的 target 政策就可以。

        targeted:针对网络服务限制较多,针对本机限制较少,是预设的政策;
        mls:完整的 SELinux 限制,限制方面较为严格。

    安全性本文 (security context): 我们刚刚谈到了主体、目标与政策面,可是主体能不能存取目标除了要符合政策指定之外。主体与目标的安全性本文必须一致才可以顺利存取。 这个安全性本文 (security context) 有点类似文件系统的 rwx 啦!安全性本文的内容与设定是很重要的! 假设设定错误,你的某些服务(主体程序)就无法存取文件系统(目标资源)。当然就会一直出现『权限不符』的错误讯息了。


(1)主体程序必需要通过 SELinux 政策内的规则放行后,就能够与目标资源进行安全性本文的比对。 (2)若比对失败则无法存取目标,若比对成功则能够開始存取目标。


安全性本文 (Security Context)

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMjM2NzUxMw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">


    身份识别 (Identify): 相当于账号方面的身份识别!基本的身份识别则有底下三种常见的类型:
        root:表示 root 的账号身份,如同上面的表格显示的是 root 家文件夹下的数据啊。
        system_u:表示系统程序方面的识别。通常就是程序啰;
        user_u:代表的是一般使用者账号相关的身份。

    角色 (Role): 透过角色字段,我们能够知道这个数据是属于程序、档案资源还是代表使用者。

一般的角色有:

        object_r:代表的是档案或文件夹等档案资源。这应该是最常见的啰;
        system_r:代表的就是程序啦!只是。一般使用者也会被指定成为 system_r 喔。

    类型 (Type): 在预设的 targeted 政策中, Identify 与 Role 字段基本上是不重要的!重要的在于这个类型 (type) 字段。 基本上,一个主体程序能不能读取到这个档案资源,与类型字段有关!而类型字段在档案与程序的定义不太同样,各自是:
        type:在档案资源 (Object) 上面称为类型 (Type);
        domain:在主体程序 (Subject) 则称为领域 (domain) 了!

    domain 须要与 type 搭配。则该程序才可以顺利的读取档案资源啦!


SELinux 的启动、关闭与观察



查看并永久改动selinux的启动和政策


watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMjM2NzUxMw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">


    注:假设由 enforcing 或 permissive 改成 disabled ,或由 disabled 改成其它两个,那也必需要又一次启动。


SELinux type 的改动

    注:单纯的拷贝文件时。SELinux 的 type 字段是会继承目标文件夹的(即会变成和所到的文件夹的一样); 假设是移动。那么连同 SELinux 的类型也会被移动过去。




    复原成原有的 SELinux type:



默认文件夹的安全性本文查询与改动

    semanage(须要安装:yum install policycoreutils-python):


watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMjM2NzUxMw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">


    利用 semanage 设定 /srv/vbird 文件夹的默认安全性本文为 public_content_t(改动的就是默认值):

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMjM2NzUxMw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">



政策查询:seinfo(须要安装:yum install setools-console)


    政策为targeted时,针对httpd制定的规则为:



    假设你想要找到有 httpd 字样的安全性本文类别时。 就能够使用『 seinfo -t | grep httpd 』来查询了!

假设查询到相关的类别或者是布尔值后,想要知道具体的规则时。 就得要使用 sesearch 这个指令了!


    sesearch:




布尔值的查询与改动:(getsebool,setsebool)

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMjM2NzUxMw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">




watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMjM2NzUxMw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">



整篇最重要的内容

    setroubleshoot --> 错误讯息写入 /var/log/messages
    须要软件:setroublshoot 与 setroubleshoot-server
    原本的 SELinux 信息本来是以两个服务来记录的,各自是 auditd 与 setroubleshootd。既然是相同的信息, 因此 CentOS 6.x 将两者整合在 auditd 其中啦!所以。并没有 setroubleshootd 的服务存在了喔!

因此。 当你安装好了 setroubleshoot-server 之后。请记得要又一次启动 auditd,否则 setroubleshootd 的功能不会被启动的。


    演示:


watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMjM2NzUxMw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">



    让 setroubleshoot 主动的发送产生的信息到我们指定的 email:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMjM2NzUxMw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">


    SELinux 错误克服的总结:
         1、在服务与 rwx 权限都没有问题。却无法成功的使用网络服务时;
         2、先使用 setenforce 0 设定为宽容模式;
         3、再次使用该网络服务。假设这样就能用,表示 SELinux 出问题,请往下继续处理。假设这样还不能用。那问题就不是在 SELinux 上面。请再找其它解决方法。底下的动作不适合你。
         4、分析 /var/log/messages 内的信息,找到 sealert -l 相关的信息而且运行;
         5、找到 Allow Access 的关键词。照里面的动作来进行 SELinux 的错误克服;
         6、处理完成又一次 setenforce 1 ,再次測试网络服务吧。


    相关资料:《鸟哥的私房菜》





版权声明:本文博客原创文章,博客,未经同意,不得转载。

Linux的selinux的更多相关文章

  1. linux初学者-SElinux篇

    linux初学者-SElinux篇 SElinux是强制访问控制(MAC)安全系统,是linux历史上最杰出的新安全系统.对于linux安全模块来说,SElinux的功能是最全面的,测试也是最充分的, ...

  2. Linux关闭selinux

    最近在折腾Linux服务器,配置环境时,安装php的一个拓展,明明编译成功了,就是加载不进去,phpinfo不显示,查看错误日志是显示加载失败,没权限==,配置ftp程序也会有意想不到的问题,搞了好久 ...

  3. 【linux】Linux系统SELinux简介

    安全加强型Linux(Security-Enhanced Linux)简称 SELinux,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统. 是linux安全加强的另一种实现方式. ...

  4. RedHat Linux关闭seLinux命令

    Redhat使用了SELinux来增强安全,关闭的办法为: 1. 永久有效 修改 /etc/selinux/config 文件中的 SELINUX="" 为 disabled ,然 ...

  5. Linux下selinux简单梳理

    在linux环境下执行某些程序时,偶尔会遇到来一个关于selinux的强制模式不可执行的情况,这种情况下需要关闭selinux或者将enforcing改为permissive模式后才能进行执行.sel ...

  6. Linux之SElinux安全上下文件(1)

    SELinux:Secure Enhanced Linux,是美国国家安全局(NSA=The National Security Agency)和SCC(Secure Computing Courpo ...

  7. Linux学习-SELinux 初探

    什么是 SELinux 什么是 SELinux 呢?其实他是『 Security Enhanced Linux 』的缩写,字面上的意义就是安全强化的 Linux 之意! 当初设计的目标:避免资源的误用 ...

  8. Linux开启SELinux的情况下怎么解决nginx403跟502错误

    https://www.cnblogs.com/caijt/p/10978324.html 以上篇博客中说了怎么在linux部署asp.net core  跟 nginx,里面成功的前提是把SElin ...

  9. 一 SSH 无密码登陆 & Linux防火墙 & SELinux关闭

    如果系统环境崩溃.   调用/usr/bin/vim /etc/profile   SHH无密码登陆 所有要做得节点上运行   修改 host name vi /etc/sysconfig/netwo ...

  10. 自学linux——17.selinux的了解及使用

    SElinux是强制访问控制(MAC)安全系统,是linux历史上最杰出的新安全系统.对于linux安全模块来说,SElinux的功能是最全面的,测试也是最充分的,这是一种基于内核的安全系统. 1.S ...

随机推荐

  1. Windows Phone开发(28):隔离存储B

    原文:Windows Phone开发(28):隔离存储B 上一节我们聊了目录的操作,这一节我们继续来看看如何读写文件. 首先说一下题外话,许多朋友都在摇摆不定,三心二意,其实这样的学习态度是很不好的, ...

  2. HDU1698_Just a Hook(线段树/成段更新)

    解题报告 题意: 原本区间1到n都是1,区间成段改变成一个值,求最后区间1到n的和. 思路: 线段树成段更新,区间去和. #include <iostream> #include < ...

  3. FPGA开机状态

    最近调试FPGA电路时发现一个问题,我从来没有注意过.我们都知道Xilinx的FPGA有三种功率M引脚,这是为了让我们配置三个引脚FPGA装载机模式,什么是主要的字符串.从字符串.并行等.,该手册有. ...

  4. JDBC batch批量Statement executeBatch 详细解释

    JDBC提供了数据库batch处理的能力,在数据大批量操作(新增.删除等)的情况下能够大幅度提升系统的性能.我曾经接触的一个项目,在没有採用batch处理时,删除5万条数据大概要半个小时左右,后来对系 ...

  5. Maven学习笔记(十一年):柔性结构

    一个典型的项目将是开发环境.测试环境和生产环境,这些环境的数据库配置是不一样的,并使用正确的配置. Maven为了支持构建的灵活性,内置了三大特性,即属性.Profile和资源过滤.本章将介绍这些特性 ...

  6. hdu 神、上帝以及老天爷

    HDU 2006'10 ACM contest的颁奖晚会隆重开始了! 为了活跃气氛,组织者举行了一个别开生面.奖品丰厚的抽奖活动,这个活动的具体要求是这样的: 首先,所有参加晚会的人员都将一张写有自己 ...

  7. Axis2 -POJO

    POJO,Plain Old Java Object,简单Java物. 通告Webservice 1.书写Hello.java public class Hello { public String s ...

  8. 《Linux Device Drivers》第十六章 块设备驱动程序——note

    基本介绍 块设备驱动程序通过主传动固定大小数据的随机访问设备 Linux核心Visual块设备作为基本设备和不同的字符设备类型 Linux块设备驱动程序接口,使块设备最大限度地发挥其效用.一个问题 一 ...

  9. 在AcGIS随着大数据的生成DEM

    在ArcGIS产生DEM时间.数据来源是经常有的高程点.轮廓线,该高程点.等高线密集,可能有几千万.甚至亿高程点.轮廓线. 如果您使用这些矢量数据生成TIN.不能实现的,由于生成TIN时,支持的最大结 ...

  10. 行政歌节 &#183; 萧谱1

    4之前听 陈越 的<绿野仙踪> 版权声明:本文博客原创文章,博客,未经同意,不得转载.