SE Linux初级教程:介绍

本文的最原始版本为2004年3月所写,此份HOWTO是作者在今年2月根据最新的SE Linux所作的修改后的版本。新的SE Linux与以前的有比较大的变化,而且这项技术本身也正在飞速的发展,并未最后成熟。阅读本文是需要对Linux本身有一定深度的了解作为基础的。本文并不是Linux的初级教程,但却是SE Linux技术的初级教程。

新的SE Linux是基于2.6.*内核的,但是仍然支持2.4.*的内核。这份文档的大部分内容是原来的,我在需要修改的地方做了调整。

这份文档是美国">国家安全局的安全加强的Linux(NSA SE Linux)的概述性的说明。我们主要的环境是基于Debian Linux的,而且大部分的软件包的操作命令实例都是基于Debian的。这份文档主要是针对那些想要基础了解SE Linux的人,所以这里没有对SE Linux比较进介的介绍。你可以在附录的资源部分找到其它介绍SE Linux的资料。

这份文档是一个SE Linux的简介,可以指导一部分人初步的学会SE Linux。它涵盖和解释了SE Linux 的各方面的术语,安装和添加用户并且涵盖了一小部分别的知识。

这份文档只是一份指导。我强烈的建议你在实际工作的机器上应用之前先找一台试验机器来做练习 。

最新的SE Linux有一些新的特点,下面先介绍一下:

/selinux 文件系统 加入了一个/selinux 文件系统. 因此有些安装程序需要你编辑/etc/fstab 文件。 /selinux文件系统和 /proc 文件系统类似,都是虚拟的文件系统。你可以用ls -l /selinux 命令来显示。

total 0

-rw-rw-rw- 1 root root 0 Nov 25 11:27 access

-rw-rw-rw- 1 root root 0 Nov 25 11:27 context

-rw-rw-rw- 1 root root 0 Nov 25 11:27 create

-rw------- 1 root root 0 Nov 25 14:19 enforce

-rw------- 1 root root 0 Nov 25 11:27 load

-r--r--r-- 1 root root 0 Nov 25 11:27 policyvers

-rw-rw-rw- 1 root root 0 Nov 25 11:27 relabel

-rw-rw-rw- 1 root root 0 Nov 25 11:27 user

运行cat 命令查看 "enforce"文件将会显示一个值,代表SE Linux当前的状态,1 代表 enforcing状态, 0代表permissive 状态。

使用了文件系统的扩展属性 新的 SE Linux使用了文件系统的扩展属性(Extended attributes)来存放安全上下文(security contexts)。你必须让你的内核支持这种扩展属性属性。 扩展属性是一个 名称—数据 元组 (name-data tuple)-- 举个例子说, security.selinux 就是一个属性的名称,安全上下文(security context)就是要存的数据。 当SE Linux正在运行时,你可以用 ls --context filename 命令来查看一个文件的安全上下文(我们将在后面进一步解释这个命令),无论SE Linux是否打开,你都可以用getfattr 命令查看文件系统的扩展属性。不过你要先装支持 attr 的软件包并且通过 getfattr命令的manpage学会使用它。这个命令的运行方法是:

faye@kaos:~$ getfattr -m . -d /etc/passwd

getfattr: Removing leading '/' from absolute path names

# file: etc/passwd

security.selinux="system_u:object_r:etc_t\000"

你所查看的文件的 security.selinux 属性中储存了此文件的安全上下文, 所以上面例子中的上下文就是 system_u:object_r:etc_t 。所有运行了SE Linux的ext2/3文件系统上都有 security.selinux 这个属性(这个新特性的关键). 如果你引导了一个没有 SE Linux 的内核, 你将仍然看到这个扩展属性. 当你用make relabel 操作设置了文件的安全上下文期间,扩展属性就被setfiles 设置了。

从init加载SE Linux策略 打开了SE Linux的系统在引导时,init进程既要挂载 /selinux 文件系统,并在那之后载入SE Linux的策略。

安全ID(SIDs) 和 父进程安全ID(PSIDs) 不再使用 SIDs (安全ID) 在旧的 SE Linux 是用户进程的内核接口. PSIDs (父进程安全ID SIDs) 是内核映射(设置)磁盘上的文件的上下文的根据(译者注:这里的概念可能不是很清晰,总的来说就是SID和PSID在旧的SE Linux中起着标记安全上下文的作用)。 请看NSA的 Configuring the SELinux Policy 获得更多的帮助。 在新的SE Linux中, 扩展属性记录了安全上下文,所以SIDs和PSIDs 也就不必要了。

-Z 参数 -Z 可以替代 --context 命令参数,比如ls -Z 和 ps -Z.

用 chcon 命令替代了chsid命令 chsid 命令在旧的SE Linux中用来设置文件的安全上下文。新的SE Linux 中用chcon 命令来设置。 chcon 在旧的SE Linux 中已经可以使用,但是在新的SE Linux中的设置用户或类型方面得到了进一步改善。可以查看manpage 获得更多的提示。

在Debian中, 策略的源代码目录是/etc/selinux. 在Fedora 中是/etc/security/selinux/src/policy。 在这份文档中我市参照 Debian的源代码目录做的操作, 如果你是Fedora用户, 请用 /etc/security/selinux/src/policy替换。

时间: 2024-09-04 04:18:09

SE Linux初级教程:介绍的相关文章

SE Linux初级教程:总揽

接下来是有关在什么情况下你该使用SE Linux和它的基本使用的简短介绍. 2.2 部分规定了后面章节将常使用的的术语., 所以请熟悉他们. 2.1 为什么使用SE Linux? SE Linux 可以为你的系统提供较棒的安全防护. 使用者能被分配预先定义好的角色,以便他们不能存取文件或者访问他们不拥有的程序. 这可不是简单的 " chmod 777" 同等物操作. 这在角色, 或他所在的安全上下文已经限制接触的文件和其他的资源的使用者定义中是不同于一般的 Unix 许可权限的,除了在

SE Linux初级教程:建立用户帐户

现在来作点有意思的事情! 我们将会建立一个 SE Linux 用户并分配给他一个角色,然后为用户设定默认的安全上下文. 在旧的SE Linux环境下, 封装程序的建立用 vipw (svipw)来设置,比如, useradd (suseradd), passwd (spasswd), chfn (schfn) 等, 在新的 SE Linux环境下, 这些程序有其它的名称. 5.1 建立一个新的用户 我们现在建立一个新用户.我们叫它setest. 转换到 sysadm_r:sysadm_t 角色:

SE Linux初级教程:添加新的用户域

现在让我们建立一个我们自己的用户域, 并把它叫做second_t . 我们也将会建立一个新的角色叫做second_r . 要建立second_r 角色首先在前面的部分(刚刚分配了 user_r 角色并且并不真正建立这样的用户) 中一步一步跟着作,但是不要运行第 5.2 节中的make命令.在你已经编辑 /etc/selinux/user之后,回到这里并且继续下一部分,关于编辑使用者领域文件的部分. 关于为什么我不想要你运行make指令的原因,是因为早先的部分刚刚分配了缺省的一个 user_r 的

SE Linux初级教程:安装

接下来的一章我们讲解释怎样获得软件包以及安装, 和怎样获得新的SE Linux的软件包以及安装. 因为我运行的是http://www.aliyun.com/zixun/aggregation/33836.html">Debian,所以我演示的安装过程式基于它的. 我们假定你知道该怎样在你所用的发布版上安装软件, 编译内核,并且给内核打补丁. 如果你是从旧的SE Linux上升级的, 并且运行了 SE Linux kernel, 请进入permissive 模式 (用 avc_toggle

Silverlight初级教程-开发工具

Silverlight初级教程 开发工具 在silverlight越来越流行的同时有很多的供应商开始筹划制作编辑和设计silverlight的工具.现在最常见的设计和开发工具是:Visual Studio 2008 Visual Studio是微软整合的集成开发环境. 截止此时Visual Studio 2008已经提供了编辑和预览silverlight中xaml的能力,暂时没提供设计视图的编辑.(不过提供了设计视图专用的编辑工具Blend稍后会介绍) Expression Blend 2 Ex

linux GTK教程(消息机制/标签/按钮/图像/文本/对话框/菜单/容器)

GTK+(GIMP Toolkit)是一套源码以LGPL许可协议分发.跨平台的图形工具包.最初是为GIMP写的,已成为一个功能强大.设计灵活的一个通用图形库,是GNU/Linux下开发图形界面的应用程序的主流开发工具之一. 1.GTK安装 2.一个简单的GTK窗口程序 #include <stdio.h> #include <gtk/gtk.h> int main(int argc, char **argv) { GtkWidget *window; gtk_init(&a

Mac OS X Terminal 101:终端使用初级教程

Mac OS X Terminal 101:终端使用初级教程 2012-07-29Renfei Song 10 条评论 内容提要 [隐藏] 1 为什么要使用命令行/如何开启命令行? 2 初识Command Line 3 关于 man 命令 4 命令行,文件和路径 4.1 两种路径:绝对路径和相对路径 4.2 切换到其他路径和目录 4.3 处理特殊字符 4.4 查看隐藏文件 4.5 前往其他卷 5 用Command-Line管理文件 5.1 检视文件 5.1.1 cat 5.1.2 less 5.

《量化金融R语言初级教程》一导读

前 言 量化金融R语言初级教程 本书将向你讲述如何使用统计计算语言R和量化金融知识来解决真实世界的量化金融问题.本书包括了丰富的主题,从时间序列分析到金融网络.每章都会简要地介绍理论知识并使用R来解决一个具体问题. 本书内容 第1章"时间序列分析"(Michael Puhle),介绍了用R处理时间序列数据.并且,你会学到如何建模和预测房价,使用协整改善对冲比,以及对波动率建模. 第2章"投资组合优化"(Péter Csóka,Ferenc Illés,Gergely

《量化金融R语言初级教程》一第1章 时间序列分析

第1章 时间序列分析 量化金融R语言初级教程时间序列分析研究的是按时间顺序收集的数据.相邻的观测数据通常相互依赖.因此,时间序列分析的技术需要处理这种相依性. 本章的目标是通过一些特定应用来介绍一些常用建模技术.我们将看到如何使用R来解决现实中的这些问题.首先,我们考虑如何在R中存储和处理时间序列.接着,我们处理线性时间序列分析,并展现如何将它用于建模和预测房屋价格.其次,我们通过考虑长期趋势,使用协整的概念来改进基本的最小方差对冲比.最后,本章讲述如何将波动率模型运用于风险管理.