首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | HR | 镜像
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
搜索中心 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>linux基础>经验技巧>正文

使用 SELinux 和 Smack 增强轻量级容器

http://www.oklinux.cn  2009-03-10  IBM    会员收藏  游客收藏  【 】 
您查看的文章来源于http://www.oklinux.cn

安全 Linux 容器实现指南

轻量级容器 又称作 Virtual Private Servers (VPS) 或 Jails,它们是经常用于限制不可信应用程序或用户的工具。但是最近构造的轻量级容器没有提供充分的安全保证。使用 SELinux 或 Smack 策略增强这些容器之后,就可以在 Linux? 中实现更加安全的容器。本文介绍如何创建受 Linux 安全模块保护的更加安全的容器。SELinux 和 Smack 策略的开发都在进行当中,并且在各自社区的帮助下不断得到改善。

人们听到容器时的第一反应是 “如何才能创建安全的容器?”。本文通过使用 Linux 安全模块(Linux Security Modules,LSM)增强容器的安全性来解决这个问题。本文特别演示了如何设定安全目标,并通过 Smack 和 SELinux 安全模块实现目标。

要了解 Linux 容器的背景知识,请阅读 “linux.chinaitlab.com/administer/777960_2.html" target=_blank>LXC:Linux 容器工具”(developerWorks,2009 年 2 月)。

Linux 容器是根据几种 Linux 技术构建的概念性工件:

资源名称空间 允许在容器内部查找进程、文件、SYSV IPC 资源、网络接口等等。

控制组(Control groups)允许限制放置到容器中的资源。

功能绑定(Capability bounding)设置 限制容器的访问特权。

必须协调使用这些技术,以实现符合设想的容器。目前已有两个项目提供这个功能:

Libvirt 是能够使用 Xen 管理程序、qemu 模拟器、kvmis 甚至是轻量级容器创建虚拟机的大型项目。

Liblxc 是一个较小的库和用户空间命令集合,它们的目的之一是帮助内核开发人员快速轻松地测试容器的功能。

因为 “LXC:Linux 容器工具” 是基于 liblxc 编写的,所以我在这里继续使用 liblxc;不过这里完成的操作也能够使用 libvirt 的容器支持轻松完成。

主要元素 1:LSM

在开始之前,如果不太了解 LSM,现在可以快速浏览一下。根据 Wikipedia 中的定义:Linux Security Modules (LSM) 是一个允许 Linux 内核支持各种计算机安全模型的框架,同时也避免依赖于特定安全实现。这个框架由 GNU General Public License 条款授权使用,并且是 Linux 2.6 之后的 Linux 内核的标准部分。设计 LSM 的目的是为成功实现强制访问控制模块提供一切必要元素,同时最小化对 Linux 内核的更改。LSM 避免了 Systrace 中的系统调用插入,因为它不支持多处理器内核,并且容易受 TOCTTOU (race) 攻击。相反,当某个用户级别的系统将要访问重要的内部内核对象(比如 inode 和任务控制块)时,LSM 将在内核中插入 “钩子(hook)”(向上调用模块)。这个项目专门用于解决访问控制问题,以避免对主流内核进行大量的复杂修改。该项目并不打算成为通用的 “钩子” 或 “向上调用” 机制,也不支持虚拟化。LSM 访问控制的目标与解决系统审计问题密切相关,但又有所区别。审计要求记录每次访问尝试。LSM 不能解决这个问题,因为这需要大量的钩子,以检测内核 “短路” 故障系统在什么地方发出调用,并在接近重要对象时返回错误代码。

系统安全包括两个有些冲突的目标。第一个目标是实现完整的细粒度访问控制。必须对有可能泄露或损坏信息的位置实施控制。过于粗粒度的控制和不进行控制没有区别。例如,如果必须将所有文件归为一种类型,并且有任何一个文件是公开的,则所有文件都是公开的。

另一方面,配置必须简单,否则管理员就需要管理很多访问(但是再次强调,这和不进行控制是一样的)。例如,如果使程序正常工作需要大量访问规则,那么管理员就会为程序添加许多访问权限,而不是测试这些访问规则是否有必要。

Linux 中的两个基本安全模块使用不同的方法来平衡这个矛盾。

SELinux 首先对所有东西实施控制,同时使用强大的策略语言简化策略的管理。

Smack 主要提供简单的访问控制。

主要元素 2:SELinux

到目前为止,SELinux 是针对 Linux 的最有名的 MAC 系统(强制访问控制)。尽管仍然有人反对它,但流行的 Fedora? 发行版从几年前开始就和 SELinux 一起部署,这是它取得成功的有力证明。

SELinux 使用模块化策略语言配置,因此用户可以轻松更新已安装的策略。这种语言还提供一些接口,允许使用更高级的语句表达一组低级的语句。

在本文中,我们将使用一个新的接口来定义容器。虽然为容器添加许多访问权限使接口本身变得非常大,但是使用接口创建新的容器却很简单。这个接口很有希望成为核心发布策略的一部分。

主要元素 3:Smack

Smack 是简化的强制访问控制内核(Simplified Mandatory Access Control Kernel)的缩写。它首先使用简单的文本标签标记所有进程、文件和网络流量。使用创建进程的标签创建最新的文件。通常存在一些带有明确定义的访问规则的默认类型。进程常常可以对具有同一标签的对象进行读写。绕过 Smack 访问规则的特权由 POSIX 功能控制,因此带有 CAP_MAC_OVERRIDE 的任务可以覆盖规则;带有 CAP_MAC_ADMIN 的任务可以更改规则和标签。“POSIX file capabilities: Parceling the power of root”(参考资料)演示了这些特权。

共8页: 上一页 1 [2] [3] [4] [5] [6] [7] [8] 下一页

上一篇:在Linux上玩转磁盘阵列   下一篇:对话 UNIX: 在 Windows 上使用 Cygwin

收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
·对话 UNIX: 在 Windows 上使用 Cygwin
·在Linux上玩转磁盘阵列
·Linux系统管理学习路线图
·Evilvte:超轻量级的Linux终端模拟器
·ubuntu下批量删除.svn文件夹bash命令
·Ubuntu下Zend Studio 5.5 安装及中文乱码和界面空白解
·Linux中configure和目录结构
·Linux下Telnet E680的方法
·红旗Linux桌面版6.0 SP2常见问题解答
·红旗Linux桌面6 SP2 更新日志
·Linux下的分区修复软件Testdisk
·Blueman - Ubuntu的蓝牙管理器
·Ubuntu技巧:安装Ubuntu合作商的软件
·PrefixSuffix - Ubuntu中的图形界面批量改名工具
·Daemontools 在 Linux上编译错误解决
·Iozone进行Linux下的硬盘性能测试
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·Evilvte:超轻量级的Linux终端模拟器
·Linux系统管理学习路线图
·对话 UNIX: 在 Windows 上使用 Cygwin
·在Linux上玩转磁盘阵列
·ubuntu下批量删除.svn文件夹bash命令
·Ubuntu下Zend Studio 5.5 安装及中文乱
·Linux中configure和目录结构
·Linux下Telnet E680的方法
·红旗Linux桌面版6.0 SP2常见问题解答
·红旗Linux桌面6 SP2 更新日志
·Linux下的分区修复软件Testdisk
·Blueman - Ubuntu的蓝牙管理器
  阅读排行
·安装Ubuntu分区的推荐方案及方法
·Linux爱好者入门教程
·Ubuntu下安装苹果MAC风格主题(图)
·Ubuntu 3D桌面特效展示!超绚目(图)
·新手看招:调试工具GDB基本知识全接触
·Ubuntu下安装MP3播放器Audacious
·红旗Linux桌面版6.0SP1发布及下载
·Windows XP虚拟机vmware中安装Linux步
·Ubuntu 8.04 硬盘安装过程
·Fedora 9 配置yum源
·Linux下安装tar.gz、rpm、tar.bz2软件
·Ubuntu看安装Sopcast看网络电视(配图)
·Ubuntu 8.04如何安装之完美硬盘安装法
·从硬盘安装RHEL 5(Red Hat Enterprise
·Linux操作系统下的串口通信学习笔记
网摘收藏: