应用强制访问控制管理网络服务(上):启动SELinux

日期: 2011-11-22 作者:羽扇纶巾 来源:TechTarget中国

与传统的自主访问控制不同,强制访问控制具有更高的安全性。SELinux是强制访问控制机制的一个代表,本文将介绍如何应用该机制来管理网络服务的文件系统访问权限,并以Fedora 16下的SELinux为例进行实例介绍。   一、强制访问控制机制简介   在传统的访问控制机制中,自主访问控制模型占主导地位。使用自主访问控制(discretionary access control,DAC)的系统可以让资源的拥有者指定哪些主体可以访问该资源。

这种模型称为“自主型”是因为对访问的控制是由资源拥有者自主决定的。在DAC模型中,访问根据授予用户的权限来进行限制,这意味着客体的拥有者有权指定对这些客体的访问……

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

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

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

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

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

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

与传统的自主访问控制不同,强制访问控制具有更高的安全性。SELinux是强制访问控制机制的一个代表,本文将介绍如何应用该机制来管理网络服务的文件系统访问权限,并以Fedora 16下的SELinux为例进行实例介绍。

  一、强制访问控制机制简介

  在传统的访问控制机制中,自主访问控制模型占主导地位。使用自主访问控制(discretionary access control,DAC)的系统可以让资源的拥有者指定哪些主体可以访问该资源。这种模型称为“自主型”是因为对访问的控制是由资源拥有者自主决定的。在DAC模型中,访问根据授予用户的权限来进行限制,这意味着客体的拥有者有权指定对这些客体的访问类型。如果一个组织采用了DAC模型,那么网络管理员可以让资源的拥有者控制哪些人可以访问他们的文件。DAC模型中最常见的实现方式是访问控制列表(access control list,ACL),这个列表由用户指定,由操作系统实施。我们使用的大多数操作系统都是基于自主型访问控制模型的,比如Windows、Macintosh和主流的Unix系统。

  而在强制型访问(mandatory access control,MAC)模型中,数据的拥有者没有决定谁能访问这些文件的权力,是由操作系统最后做出决定,并且可能会覆盖数据拥有者的设置。这种模型更为结构化并更加严格,一般基于安全标签系统来实现。用户被赋予一个安全级别(秘密、机密、绝密等),且数据也被分成了多个类别。这种分类存储在资源的安全标签里面。分类标签指明了用户访问一个文件时必备的可信级别。

  当系统接到一个客体访问请求时,它根据主体的安全级别和客体的安全类别作出决策。主体如何访问数据的规则由管理层制定,由管理员配置和管理,由操作系统来进行实施,由安全技术支持。安全标签和各个客体附在一起,所以每一个文件、目录和设备都有其自己的安全标签以及分类信息。一个用户可能具有秘密(Secret)的访问级别,他要访问的数据具有绝密(Top Secret)的安全标签。这种情况下用户会被拒绝访问,因为他的安全级别不等于或低于客体的安全类别。目前,最常见的MAC系统是由美国国家安全局(NSA)和安全计算(Secure Computing)公司开发的SELinux。在较高版本的Linux发行套件中,如Red Hat Enterprise Linux(RHEL)5,RHEL6,Fedora 1至Fedora 16等版本中,都包含对SELinux的支持。

  二、如何启动和关闭SELinux

  使用SELinux的前提启动它。启动和禁用SELinux的步骤主要包括:1)修改其配置文件;2)执行重启。

  首先需要介绍一下SELinux的主配置文件。主配置文件/etc/selinux/config控制系统下一次启动过程中载入哪个策略,以及系统运行在哪个模式下,可以使用sestatus命令确定当前SELinux的状态,下面显示了一个config文件的例子:

SELinux的主配置文件

  SELinux模式(由上述例子中第6行的SELINUX选项确定):可以被设置为enforcing,permissive或disabled三种:

  1) 在enforcing模式下,策略被完整执行,这是SELinux的主要模式,应该在所有要求增强Linux安全性的操作系统上使用。
  2) 在permissive模式下,策略规则不被强制执行,而只是进行审核。除此之外,SELinux不会影响系统的安全性,这个模式在调试和测试一个策略时非常有用。
  3) 在disabled模式下,SELinux内核机制是完全关闭的,只有系统启动时策略载入前系统才会处于disabled模式,这个模式和permissive模式有所不同。permissive模式不会拒绝任何访问,只是进行审核;而在disabled模式下,SELinux将不会有任何动作。特别地,在enforcing和permissive模式或disabled模式之间切换时要小心,当返回enforcing模式时,通常会导致文件标记不一致。SELinux配置文件中的模式设置由init使用,在它载入初始策略前配置SELinux使用。

  以下是启动SELinux的详细步骤示意:

  (1)编辑配置文件

  根据上面的介绍,编辑确定SELinux的运行模式和活动策略(见下面配置文件中的黑体部分)即可:

编辑确定SELinux的运行模式和活动策略

  (2)使用getenforce命令和sestatus命令查看SELinux的运行模式和详细上下文信息:
  #/usr/sbin/getenforce
  #/usr/sbin/sestatus

  (3)使用root用户身份重启系统即可:
  #reboot

  同理,禁用SELinux的步骤就是在编辑配置文件时设为“SELINUX=diabled”。

  在下部分文章中我们将介绍如何使用SELinux策略目录及管理网络服务的文件系统访问权限。

作者

羽扇纶巾
羽扇纶巾

自由撰稿人。

相关推荐