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. linux sed命令详解(转)

    简介 sed 是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的 ...

  2. C# 隐藏 Windows Phone 侦错模式中萤幕右上角的数据条(模拟器、实机可用),截图好方便。

    原文:C# 隐藏 Windows Phone 侦错模式中萤幕右上角的数据条(模拟器.实机可用),截图好方便. 一般我们在开发Windows Phone App时,会使用模拟器或是实体的手机开发,在Vi ...

  3. js控制图片缩放、水平和垂直方向居中对齐

    已測试兼容 IE6,IE7,IE8,火狐FF,谷歌chrome. 这里使用了jquery插件,假设你不使用jquery,略微改造一下也非常快. 网上查了些资料,用css控制兼容性不好,看去非常揪心.于 ...

  4. 使用vbs脚本添加域网络共享驱动器

    MapNetworkDrive Method Adds a shared network drive to your computer system. object.MapNetworkDrive(s ...

  5. 重新想象 Windows 8 Store Apps (28) - 选取器: CachedFileUpdater(缓存文件更新程序)

    原文:重新想象 Windows 8 Store Apps (28) - 选取器: CachedFileUpdater(缓存文件更新程序) [源码下载] 重新想象 Windows 8 Store App ...

  6. 走进C的世界-那些年我们常犯的错---keyword相关

    近期一段时间參加一些面试,发现非常多细节的问题自己已经变得非常模糊了.对一些曾经常常遇到的错误.如今也说不出原因了. 而且在编码过程中也相同犯这些错误. 特别写一个博客来记录这些我们常常遇到的错误.自 ...

  7. Oracle使用并行建索引须要注意的问题

    建索引时.我们为了建索引快.会加上并行,加上并行之后.此列索引就会是并行了. 訪问有并行度的索引时,CBO可能可能会考虑并行运行.这可能会引发一些问题,如在server资源紧张的时候用并行会引起更加严 ...

  8. 请注意CSDN社区微通道,许多其他的精彩等着你

    CSDN社区微信公众号"程序人生"(微信ID:coder_life)来了,每天我们会将CSDN社区中大量的优质内容浓缩成1~3篇文章.推送到您的手机中,让您不管何时何地都能感受到知 ...

  9. quick 2.23 它们的定义c++代码lua与总结的一些细节

    它们的定义c++代码lua与总结的一些细节 参考:点击打开链接 1.自己定义 XXX.cpp .XXX.h 2.D:\quick\quick-cocos2d-x-2.2.3-rc\lib\cocos2 ...

  10. jquery处理页面元素

    处理父级页面中的元素 $(parent.document).find('#hidSendPerson').val(val);$(parent.document).find('#btnGo').clic ...