openwrt19.07移植selinux

移植步骤

  1. 检查openwrt19.07是否存在selinux相关的配置。

检查package目录及子目录是否有selinux-policy、checkpolicy、policycoreutils、libselinux、setools、libsemanage等selinux相关的配置文件。

没有则需要从openwrt官方网站或其他地方下载并拷贝到相应的目录。(GitHub - openwrt/packages at openwrt-21.02)。

  1. 通过 make menuconfig命令去配置selinux。不建议直接修改.config文件,通过make menuconfig配置selinux可以自动配置相关依赖选项。

  1. 在保存退出menuconfig后,如果有WARNING信息,检查是否有selinux相关的信息。若有selinux相关WARNING则分析警告信息。主要会告诉编译相关模块的所依赖的库文件或工具,则需要根据信息继续添加依赖的库或工具。
  2. 执行“make menuconfig”命令,重复执行步骤3,直到无selinux相关模块的WARNING信息。(若未添加依赖,在编译过程中也会报错提示)

例:下图的WARNING中显示编译policycoreutils需要依赖libaudit; selinux-python需要依赖setools。

  1. 保存menuconfig然后运行make命令编译。

注意事项

  1. 在make menuconfig后并非所有的WARNING信息都需要解决,若没有编译相关模块则可以不用关心。
  2. 在从openwrt21复制selinux相关模块时,应注意检查Makefile中的include所指路径是否正确,若不正确需要修改为正确的路径。
  3. 在从openwrt21复制selinux相关模块时,文件存放路径应尽量与openwrt21路径一致。
  4. Selinux相关工具的压缩包,若有现成的,直接拷贝到dl/目录下,可以减少编译前下载相关压缩包的时间。
  5. 在修改selinux规则后,把编译生成的policy.33(不同版本可能后面的数字不同,如policy.19)替换文件系统下/etc/selinux/targeted/policy/policy.33,运行load_policy命令就能把修改规则load到当前系统。

遇到的问题:

1. Package xxx is missing dependencies for the following libraries: xxx

解决方法:添加相应的lib库到packages目录中去。

2.编译出来的系统起来之后无/sys/fs/selinux/目录,且修改/etc/selinux/config中的状态无效。

解决方法:检查内核是否配置selinux,运行make kernel_menuconfig命令配置NSA SELinux Support enable,在配置SELinux Support enable需要依赖Audit与security。

①.General setup->Auditing support

②.Security options->Enable different security models

  • . Security options->NSA SELinux Support

3.在系统中/etc/selinux/targeted/seuser文件可完成linux用户和SElinux用户的映射。如下图seuser文件中的第一个root对应的Linux用,第二个root对应的是SELinux用户。seuser中定义每个登录用户SELinux用户,如果不想为每一个用户都定义SELinux用户,可以使用__default__指定未定义SELinux用户时使用的默认SELinux用户名。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值