0%

Study of SELinux-(1) SELinux简介

  关于SELinux,最近为了信息安全老师的实验任务,去百度坑了好久,发现并没有太多关于学习SELinux的内容,大多只是告诉一下SELinux的开启/关闭问题。也许是因为SELinux这为了追求安全的白名单访问控制策略机制对一般用户或者说没有深入学习SELinux的用户来讲,太过于麻烦,因为一不留神,自己安装的某个应用、配置的某项服务就可能因为忘了修改策略导致文件被“安全”的保护起来而挂掉了。


SELinux是什么?算linux的一个发行版吗?

  安全增强式Linux(SELinux,Security-Enhanced Linux),是一种强制存取控制(MAC,mandatory access control)的实现(或者说是一种基于域-类型 模型(domain-type)的强制访问控制安全系统)。它的做法是以最小权限原则为基础,在Linux核心中使用Linux安全模组。它并非一个Linux的发行版,而是一组可以套用在类UNIX作业系统(如Linux,BSD等)的修改。SELinux的目的在于明确地指明哪个进程可以访问哪些资源(文件、网络端口等)。SELinux主要它由NSA(The National Security Agency)编写并设计成内核模块包含到内核中,相应的某些安全相关的应用也被打了SELinux的补丁,最后还有一个相应的安全策略。

SELinux

  既然是NSA最先进行开发的,那么有个问题,毕竟美国国家安全局,后门?想起前不久的方程式工具包,有些怕怕,不过,既然NSA将此项目发布到了开源社区,那么也许这个东西有那么些靠谱,毕竟社区那么多双眼睛盯着的,有问题应该也已经发现。

  SELinux的特点是SELinux不像**自主访问控制**(用户最终还是可以决定自己的资源被他人访问的方式),而是对访问的控制彻底化,对于所有的文件,目录,端口这类的资源的访问,都可以是基于策略设定的,这些策略是由管理员定制的、一般用户是没有权限更改的。SELinux有下列几个优点:

对于进程与用户只赋予与最小的权限
控制策略是可查询而非程序不可见的
防止权限升级
可以热更改策略而无需重启或者停止服务
可以从进程初始化、继承和程序执行三个方面通过策略进行控制
控制范围覆盖文件系统、目录、文件、文件启动描述符、端口、消息接口和网络接口
对系统性能消耗并不高

SELinux这么牛掰,为啥没有被大量的使用?

  SELinux有上述之多的优点。但是,大多数普通用户并不看好SELinux,为啥?原因并不是它不够安全,相反,恰恰是因为这个访问控制机制有点过于安全了。
  首先,SELinux的策略起初主要是针对服务器的,但随着SELinux近年来的广泛应用,目前 SELinux 策略在一般桌面及程序开发环境下也有了较好的应用。但保证安全性往往带来一个问题就是使用起来的不便。简单的讲,一个词,麻烦。不搞Linux运维,不是系统管理,对普通桌面用户来说,谁会没事拿那么多的时间去了解运行的方式,看大量的SELinux文档,就为掌握一个安全机制(要不是老师的任务,我绝不会碰这东西)。上次翻知乎偶尔看到几个关于SELinux的吐槽,可以看下:**Linux 下为何要关闭 SELinux?**。
  不过,SELinux在某种意义上上讲,的确是一个不错的安全机制,只不过不是一个适合普通用户的安全机制罢了。

吹波水。