首页 / LINUX / 如何创建自定义SELinux标签
如何创建自定义SELinux标签
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何创建自定义SELinux标签,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2880字,纯文字阅读大概需要5分钟。
内容图文
我写了一个服务/单个二进制应用程序,我试图在Fedora 24上运行,它运行使用systemd,二进制文件部署到/ srv / bot
我编写的这个服务/应用程序需要在此目录中创建/打开/读取和重命名文件.
我首先开始创建一个基于SELinux: allow a process to create any file in a certain directory的新策略
但是当我的应用程序需要重命名时,输出有一个警告:
#!!!! WARNING: 'var_t' is a base type.
allow init_t var_t:file rename;
我google了一下,我发现我应该使用比基本类型更具体的SELinux标签,但在线的所有示例都显示了httpd / nginx / etc中的现有标签.
有没有办法可以为我自己的应用创建自定义标签?
我的想法是创建类似myapp_var_t的东西,使用
semanage fcontext -a -t my_app_var_t '/srv/bot(/.*)?'
restorecon -R -v /srv/bot
以及将使用此自定义类型的自定义.pp文件
如果有更好的方法来解决它,那也是有效的.
谢谢
更新
经过更多的搜索后,我认为我想要做的正确的术语是创造新的类型,这导致我
https://docs.fedoraproject.org/en-US/Fedora/13/html/SELinux_FAQ/index.html#id3036916
基本上说,跑
sepolgen /path/to/binary
我能够得到一个模板,然后我可以编译成一个pp文件并加载,仍然会得到一些错误,但看起来我更接近我想做的事情.
如果我让它工作,我会更新这篇文章
解决方法:
以跑步为出发点
sepolgen /path/to/binary
这给你:
app.fc
app.sh
app.if
app.spec
app.te
要创建一个新的SELinux文件上下文以应用于保存程序/守护程序将修改的文件的父目录,您可以编辑app.te文件并添加:
type app_var_t;
files_type(app_var_t)
第一行声明了新类型,第二行调用了一个执行魔术并使其成为文件类型的宏(原来你不能在文件或目录上使用进程上下文行app_exec_t),有关不同的更多信息,请参阅“SELinux Types Revisited”类型
一旦声明了类型,你需要告诉SELinux你的应用程序可以使用它,在我添加的情况下
allow app_t app_var_t:dir { add_name remove_name write search};
allow app_t app_var_t:file { unlink create open rename write read };
这两行基本上说,允许作为我的应用程序域的app_t类型,使用上下文app_var_t编写/搜索/ etc目录,并允许它使用上下文app_var_t创建/打开/删除/ etc文件
拼图的最后一部分是以某种方式告诉SELinux哪个文件夹和文件应该获得每种类型,你通过编辑app.fc文件(fc =>文件上下文)来做到这一点
在我的情况下,这个文件只有两行:
/srv/bot/app -- gen_context(system_u:object_r:app_exec_t,s0)
/srv/bot(/.*)? gen_context(system_u:object_r:app_var_t,s0)
第一行直接指向我在服务器上部署的二进制文件,因此这个获取app_exec_t上下文.
第二行意味着:
Apply app_var_t to the directory /srv/bot and also to all files inside the dir /srv/bot
注意第一行如何 – 在路径和gen_context调用之间. – 表示,仅适用于文件.在第二种情况下,我们没有任何东西(只是空格),这意味着,适用于所有匹配的目录和文件,这是我想要的,另一种选择是-d只应用目录.
我现在有一个工作策略,我可以使用自定义策略部署我的应用程序,一切正常. (我的策略在.te文件中有很多条目,但它超出了这个问题的范围.)
额外的阅读材料帮助我找到了这个解决方案:
Making things easier with sepolgen
Think before you just blindly audit2allow -M mydomain
SELinux FOR RED HAT DEVELOPERS(长PDF)
An SElinux module (1): types and rules
Sample policy (specially the postgresql)
Understanding the File Contexts Files
内容总结
以上是互联网集市为您收集整理的如何创建自定义SELinux标签全部内容,希望文章能够帮你解决如何创建自定义SELinux标签所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。