免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: chenxiaoping020

[内核入门] SELinux需求分析 [复制链接]

论坛徽章:
0
发表于 2014-07-30 22:30 |显示全部楼层
来学习lol

论坛徽章:
0
发表于 2014-07-31 14:32 |显示全部楼层
回复 30# ForDream_Xin


   

论坛徽章:
0
发表于 2014-07-31 15:58 |显示全部楼层
回复 28# kiongf


    kiongf大哥:
         您好!
         最近碰到一个棘手的问题,昨天,我们提交了这段时间写的一个需求分析。关于“linux操作系统内核加固”。
         但我们的师傅说,需求写的不符合要求。我主要是描述了,利用SELinux来加强内核的安全性。从三个方面来写:网络方面的安全提升,操作系统的安全提升,应用软件的安全提升。对于每个方面,我都描述了利用SELinux能够实现的系统安全加强的目标。比如,在写体统安全加强的时候,我描写了:指定的进程访问指定的客体资源;通过限制域转换的过程,限制普通用户通过setuid调用提升自己的权限;限制用户访问和修改shadow文件等等。其他两方面我也是按照这种格式写的。
         结果我们的师傅(他本人并未做SELinux)说我们写的这个需求不行,不符合需求要求,他说感觉我们写的就好像是在介绍SELinux似的。他的想法是这样的:把编写策略做成一种应用软件的形式,直接面向客户,举个例子,用户只要输入一些简单的命令,就可以选择性地实现对自己的SELinux 的配置,就像做成防火墙的这种形式。
        但是,当时我就想,这些应该是不太现实的。我理解的实现过程应该是这样的:客户先提出自己的需求,然后再针对客户的需求,去编写属于特定客户的个性化的策略。而不是说,你编写好了一个策略,就可以把它当成一种产品,任何人想要,就直接可以安装使用。  
        望您能帮我解除我心中的疑惑!!!

论坛徽章:
3
双鱼座
日期:2013-09-04 19:47:39天蝎座
日期:2013-12-11 20:30:532015年亚洲杯之澳大利亚
日期:2015-04-20 00:28:02
发表于 2014-07-31 23:30 |显示全部楼层
回复 32# chenxiaoping020


    你说这些太理论了。什么域转换,策略什么的,别说客户听不懂,就连不做这个的程序员也听不明白。
    而且他们也不关心。只有出现permission denied,或者selinux导致应用程序出错的时候,对他们而言,selinux才是存在的。

    你与其理论讲半天,不如动手写一个几个应用程序策略,展示在selinux的支持下,是可以做到比如只授权特定网络程序访问端口,访问网卡设备等等。
    A用户运行的程序和B用户运行的程序权限的不同(这个非常推荐)。这样不就很直观了。
    如果感觉对写大应用程序的策略还不熟悉的话,就直接写(或者copy)几个网络/防火墙的相关的小脚本,跟着selinux_notes来实际操作。

    selinux现在有一个接口确实能够在不更改当前策略数据库的前提下更改授权规则,就在selinux/booleans/。但是达不到你所说的用户随意控制。
    这只不过是从一个预定的授权规则转换到另一个预定的授权规则。 红帽可能开发了一些对系统管理员友好的程序吧,但我不做桌面系统,所以不大了解。

    至于安全需求,从我做的嵌入式而言,并不可能等到用户来真正的需求才开始动手。第一时间不够,第二用户的需求只针对他的需求,而不是整个系统的防护。
    举个例子,用户只会希望某程序不能访问网络设备。但我们必须分析这个程序的功能,因为这个程序很可能需要访问字符设备,U盘,挂在文件系统等等。
    用户需求的是要阻止某项权限,我们要做的工作确是要授予权限。这一点一定要理解清楚。 所以在用户没有明确的需求之前,我们也需要保证系统功能的正常运行。
   
   

论坛徽章:
0
发表于 2014-08-01 15:20 |显示全部楼层
回复 33# kiongf
       恩,首先感谢您!
       关于您说的“A用户运行的程序和B用户运行的程序权限的不同”,那这是不是意味着,每新注册一个用户账户,就要去修改策略?
       您说的“selinux现在有一个接口确实能够在不更改当前策略数据库的前提下更改授权规则,就在selinux/booleans/。”是通过设置布尔值实现的吗?
      

   

论坛徽章:
3
双鱼座
日期:2013-09-04 19:47:39天蝎座
日期:2013-12-11 20:30:532015年亚洲杯之澳大利亚
日期:2015-04-20 00:28:02
发表于 2014-08-01 18:33 来自手机 |显示全部楼层
不是。selinux user和linux user不是一个概念。linux用户是我们常见的root用户这些,但selinux user指的是不同的权限划分集合(我是这样理解的)。user:role:type的user就是selinux user.linux user通过映射到Selinux user来获得不同的权限的。
  我下班后给你传份我之前写的映射操作流程文档。实际操作你就会理解这映射的概念。这是我实践出来的,有些细节我现在也不能解释。
___
对的,是bool声明的。

论坛徽章:
3
双鱼座
日期:2013-09-04 19:47:39天蝎座
日期:2013-12-11 20:30:532015年亚洲杯之澳大利亚
日期:2015-04-20 00:28:02
发表于 2014-08-01 22:47 |显示全部楼层
回复 34# chenxiaoping020

建立SELinux User,并建立映射。
环境:CentOS 2.6内核。Policy type: Targeted. 必要工具:semodule等均可通过rpm获得。
   
   1.编写一个.te策略脚本 kiongf.te
       policy_module(kiongf_user, 1.0)
       role kiongf_user_r;
       userdom_restricted_user_template(kiongf_user)       # template接口,这里用于初始化一个selinux用户的权限:其中包括声明kiongf_user_t,并关联kiongf_user_r和kiongf_user_t

     2.编译 make -f /usr/share/selinux/devel/Makefile  #生成kiongf.pp文件
     3. semodule -i kiongf.pp   #以模块形式连接成到policydb
     4. semanage user -a -R kiongf_user_r kiongf_user_u  #新增一个kiongf_user_u selinux user
     5. semanage user -l #查看是否正确建立
     6. useradd  kiongf #增加linux用户
     7. passwd   kiongf # 密码
     8. semanage login -a -s kiongf_user_u kiongf  #映射
     9. semanage login -l #查看映射
     10. echo “kiongf_user_r:kiongf_user_t"  >> /etc/selinux/targeted/contexts/default_type  #告知(?)这个SC是正确的
     11. echo """ system_r:sshd_t:s0  kiongf_user_r:kiongf_user_t:s0  
                       system_r:local_login_t:s0  kiongf_user_r:kiongf_user_t:s0
                  """ > /etc/selinux/targeted/contexts/users/kiongf_user_u          # 使用ssh或login登录时,切换到kiongf_user_u:kiongf_user_r:kiongf_uesr_t
     12. init 3  #切换到字符终端
     13. 输入用户名和密码,提示是否使用其他SC时,选否。(如果有多个SC时,也可以进行更改)
     14. id -Z  # 显示的就是kiongf_user_u:kiongf_user_r:kiongf_user_t了。 没有特殊的域转换规则,当前用户运行的程序都继承这个id的SC。
   无论你有多少Linux用户,你只要映射他们到相应SELinux User中,就可以确保他们获得你预定的权限。
                                    

论坛徽章:
0
发表于 2014-08-05 11:22 |显示全部楼层
回复 35# kiongf


    恩,谢谢咯!看到您的提示,我才想起来,之前看过这些概念

论坛徽章:
0
发表于 2014-08-05 11:24 |显示全部楼层
回复 36# kiongf


    ) ,谢谢,虽然很多地方现在还看不懂,但我想,以后会对我有帮助的。

论坛徽章:
0
发表于 2014-08-06 15:42 |显示全部楼层
回复 36# kiongf

大哥,问下您,您在分析编写策略的时候,是使用apol工具么?或者,还使用过其他什么好的工具?
   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

DTCC2020中国数据库技术大会

【架构革新 高效可控】2020年12月21日-23日第十一届中国数据库技术大会将在北京隆重召开。

大会设置2大主会场,20+技术专场,将邀请超百位行业专家,重点围绕数据架构、AI与大数据、传统企业数据库实践和国产开源数据库等内容展开分享和探讨,为广大数据领域从业人士提供一场年度盛会和交流平台。

http://dtcc.it168.com


大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP