• [学习记录]SELinux自定义策略初步


    这篇文章主要记录了我如何学习selinux自订策略的,相关内容在网络上非常零散,自己也走了很多弯路,所以专门写了这么篇文章作为整理。

    这里先提一句,关于selinux的配置,网上最容易搜索到的是对selinux程序的配置,例如开关,以及对某种协议的控制,这些内容在我之前整理selinux管理工具种有提到,是相对表面的selinux配置,本文的配置是从编写自定义的策略模块,并装载,因此管理粒度更细。

    按照惯例这里先附上一些参考资料的网站

    来自selinuxwiki的一些相关内容,wiki里可参考的内容其实非常多,但网站导航不太行,很难找    https://selinuxproject.org/page/RefpolicyWriteModule

    这个是wiki的github页面,官方稍微做了一些整理,但是内容感觉没有wiki多,不过还是有一定参考价值的https://github.com/SELinuxProject/refpolicy/wiki/GettingStarted

    这个是slinux的一个refpolicy项目,希望构架一个普遍安全的策略https://github.com/SELinuxProject/refpolicy

    我采用的是centos7环境

    在开发selinux策略之前,千万不要忘记安装selinux的开发包

    yun install selinux-policy-devel

    编写规则其实非常简单,

    1.首先准备好一个空的文件夹作为工作目录

    2.创建一个.te文件,内容如下,仅作参考

     第一句policy_module是一句官方定义好的宏指令

    第二句和第三句是定义了两种类型,test1_t为进程类型,test1_exec_t为可执行文件类型

    第四句为规则,允许test1_t类型对test1_exec_t类型的文件进行read_file_perms的操作,后者也是个宏指令,包含若干具体操作类型

    3.创建一个.fc文件,内容如下

    主要是对给定的路径设置一个安全上下文

    4.然后就可以准备编译了,首先我们要在当前目录下获取一个makefile文件,安装完最开始提到的开发包后,centos中可以在如下目录找到

    /usr/share/selinux/devel/Makefile

    拷贝到当前文件夹下,make就会自动生成

    test2是我随手创建的空文件夹,test1.if是一个接口相关的文件夹,我们可以自己定义,这里由于我们没有定义,所以自动生成了,还有存储临时文件夹tmp,最后也是最重要的文件test1.pp这个就是编译后的模块了

    可以运行

    semodule -i test1.pp    #装载模块
    semodule -l               #列出已装载的所有模块
    semodule -r test1     #卸载指定模块

    至此我们的第一步就算是迈出来了。

  • 相关阅读:
    感谢一个名叫“祯玥”的姑娘
    下一代互联网
    伤心时要读的三十八句
    任何企业的竞争,归根结底都是智能的竞争
    互联网创业必须过的槛(转)
    钻到牛角尖里面去,想开公司必需知道的奥秘
    重游草堂
    牛根生:我们应该学会“三换思维”
    领导者的感染力和传染力
    幸福是一种心境(转)
  • 原文地址:https://www.cnblogs.com/trickofjoker/p/11850336.html
Copyright © 2020-2023  润新知