在SUSE上使用SELinux保障可靠的商业安全

日期: 2012-10-17 作者:Sander van Vugt翻译:孙少忆 来源:TechTarget中国 英文

许多使用Linux的政府用户要求在他们的Linux平台上允许使用SELinux。虽然SELinux是Linux内核的组成部分,但要采取额外步骤才能确保它在SUSE Linux 企业版上运行成功。   安全增强型Linux(SELinux)是一个超越了仅限于Linux权限可能性的框架。它是由国家安全署于上世纪90年代晚期发起,并且从2.6版本开始已经成为主流Linux内核的组成部分。

本文将让读者了解到如何才能让SELinux在SUSE Linux企业服务器(SLES)上正常运行保证系统安全性。   在开始在SUSE上安装SELinux之前,你应该对它有更深入的了解。SELinux作为一个框架包含……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

许多使用Linux的政府用户要求在他们的Linux平台上允许使用SELinux。虽然SELinux是Linux内核的组成部分,但要采取额外步骤才能确保它在SUSE Linux 企业版上运行成功。

  安全增强型Linux(SELinux)是一个超越了仅限于Linux权限可能性的框架。它是由国家安全署于上世纪90年代晚期发起,并且从2.6版本开始已经成为主流Linux内核的组成部分。本文将让读者了解到如何才能让SELinux在SUSE Linux企业服务器(SLES)上正常运行保证系统安全性。

  在开始在SUSE上安装SELinux之前,你应该对它有更深入的了解。SELinux作为一个框架包含了服务和实用程序,能同Linux内核安全界面进行交流。SUSE Linux企业服务器支持整个SELinux栈。但是SELinux的一个重要组成部分--安全策略--并不是默认栈的一部分。该安全策略包括了管理员想要设置的所有条款和限制条件,以确保SELinux的安装。对于SUSE Linux企业服务器则没有默认安全策略。

  了解SELinux

  ·通过使用Linux内核安全架构,SELinux允许管理员明确规定哪些用户或端口能够访问哪些程序。因为这些规定可能非常具体,SELinux有可能把安全事故风险降到最低程度。

  ·由于SELinux强大的功能,现在全球更多的政府机构只使用包含了SELinux的Linux版本。虽然SELinux包含在Linux所有版本的内核中,但要使用它,SELinux需要额外的工具和知识库,但并不是每个Linux版本都默认包含这两项。

  ·AppArmor是保障Linux系统安全的备选方案。它用法更简单,而且以SELinux同样的安全策略为基础。不同的是SELinux是作为“标准”出现的。

  对于SUSE Linux企业服务器来讲,没有运行SELinux安全策略是有道理的,因为一个安全策略包含了数千条与操作系统深度集成的规则。而度身定制安全策略要投入大量工作。不过,还是有一些标准安全策略可作为备选项。

  安全策略本身包含许多规则,这些规则是建立在上下文标签基础上的。这些标签限定了哪些服务或用户能够在服务器上访问哪些资源内容。要进行定义,就必须对SELinux安全系统上的每个项目都进行标记。该安全策略的规则示例如下:

  allow user_t bin_t:file {read execute getattr}

  在上述例子中,每个标记为“user t”的用户被允许访问标有“bin t”的文件,而且拥有“read, excute and getattr”的权限。这是一组在SELinux内部定义的特定权限。作为一个管理员,可以分别使用命令“ps-Z”(适用于“进程”),“netstat-Z”(适用于“端口”),“id”(适用于“用户”),或者“1s-Z”(适用于文件和路径)查询当前标签设置情况。

  要在SUSE Linux企业服务器上安装SELinux,首先需要安装所有的SELinux包。最简便的方法是搜索服务包里不管名称还是描述上含“selinux”的程序并进行安装。第二步,需要制定一个安全策略。如前所提,对于SLES没有可用的安全策略,但是,可以从OpenSUSE.org网站下载refpolicy资源文档进行使用。接下来,需要通过添加几个GRUB启动选项以便让服务器做好安装selinux的准备:

  security=selinux selinux=1 enforcing=0

  执行完这个步骤后,重启服务器,配置SELinux。请注意,选项enforing=0是以许可模式启动SELinux。这个设置很关键,因为目前还没有可行的安全策略。为了方便理解SELinux在许可模式下试图进行的操作,你要让SELinux应用所有规则,记录所有信息,但是没有什么是真的被屏蔽。这是微调SELinux配置的极佳方式。

  要设置安全策略,首先从software.opensuse.org下载文档并寻找refpolicy的源文件。然后,提取原始码到/etc/selinux/refpolicy。在/etc/seLinux/refpolicy/build.cof文档中,你要在开始编译前设置好如下选项:

  DISTRO = suse

  UNK_PERMS = allow

  DIRECT_INITRC = y

  MONOLITHIC = n

  变更参数后,在/etc/selinux/refpolicy路径下运行make load命令并重启。重启后,聪明的做法是使用sestatus命令查询SELinux当前状况。表1显示了该命令运行结果:

  表1展示了使用sestatus命令查询出的SELinux当前状态

  mmi:~ # sestatus

  SELinux status:                 enabled

  SELinuxfs mount:                /selinux

  Current mode:                   permissive

  Mode from config file:          permissive

  Policy version:                 26

  Policy from config file:        refpolicy

  如果状况看起来正常,那就在文件系统应用所有上下文标签。操作方法是,在/ete/selinux/refpolicy路径下运行make relabel命令,这要花点时间。配置结束后立即重启服务器是个好习惯。

  标识了文件系统并重启服务器之后,应该执行几项检查来证实是否能够正常运行。首先,使用sestatus-v命令。该命令结果不仅显示出,SELinux可供使用,而且还能给出现行进程和文件上下文概况。特别要关注Init上下文,应该要把设置成init_t.而且,你能使用semanage fcontect-1获得目前所设置的文件系统标签清单,用semanage Boolean-1获得所有可用的Booleans列表。所有结果都正常的话,你就可以开始设置文件上下文和Bolleans,使得服务器可供使用。之后,把默认的SELinux模式切换为启用模式。操作方法是把enforcing=0 GRUB根选项变更为enforcing=1。

  偶尔可能发生某些服务对于SUSE上的SELinux不可用。这可能是由于SUSE Linux企业服务器没有自己的安全策略导致的。如果发生这种情况,试着关闭某些SELinux模块。使用semodule-1命令能够得到已加载的SELinux模块清单。如果加载了某项具体服务的模块导致某项服务运行失常,那就使用semodule-d modulename把它关闭。而该项服务将在没有SELinux保护下运行。也可以对SELinux安全策略进行修改使得该服务受保护

相关推荐