极限首页 业界焦点 软件工程师之路 系统工程师之路 网络工程师之路 软件下载 技术社区
 Linux操作系统的内核编译内
 Linux下设备完全驱动之四
 Linux下设备完全驱动之二
 Linux下设备完全驱动之三
 Linux下设备完全驱动之一
 Linux内核如何从2.4升级到
 开源世界的虚拟机 QEMU
 Linux下软件RAID的实现
 RHEL4内建LVM工具入门
 linux SSH 的一些安全小技
 Linux操作系统的内核编译内
 Linux下设备完全驱动之四
 Linux下设备完全驱动之二
 Linux下设备完全驱动之三
 Linux下设备完全驱动之一
 Linux内核如何从2.4升级到
 开源世界的虚拟机 QEMU
 Linux下软件RAID的实现
 RHEL4内建LVM工具入门
 linux SSH 的一些安全小技

Shell 中文手册

Python 2.3 中文手册

Python 2.4 中文手册

Mysql 4.x 中文手册

PHP 4.x 中文手册

Apache 2.x 中文手册
更多手册

站内搜索:
当前位置:首页>>系统工程师之路>>管理进阶>>正文
部署RHEL 4中的安全增强Linux前请仔细考虑
时间:2005-07-14 作者:Ken Milberg 来源:TechTarget

 

在RHEL 4中,一个最激动人心的新特性就是实现了安全增强Linux(SELinux,Security-Enhanced Linux)。在这篇文章中,我们将考察你怎样才能够使用它增强系统安全。

  SELinux是一个开放源码项目,由美国国家安全局(National Security Agency)发起和赞助,帮助实现强制访问控制。它是一个能够为Linux提供更多安全框架的子系统,并且能够实现操作系统级的控制。它执行强制访问控制,可以为你提供更好安全尺度,SELinux由内核和用户空间组件两部分构成。

  在SELinux中,特权的指定建立在典型的Unix/Linux权限方法之上,也就是以用户和组实现的权限组织方式。具体来说,实现的方法是使用基于角色的访问控制。两个常用的角色是user_r角色和system_r,它们都作用于系统管理员。

  需要预先说明的是,如果你的服务器(Web或DNS)需要暴露于Internet之上,那么使用SELinux将会帮助你带来更强的安全性。如果你只是想在内部运行一些如Oracle之类的服务,并不牵涉外部访问,那么你应该不想趟SELinux这趟浑水,因为若是实施SELinux,还需要很多东西需要学习,并且具体配置起来也非常麻烦。这需要一个特殊类型的安全类型管理员,安全将不再是域用户自行处理它们各自的文件,它需要管理员的集中管理。如果你将Linux作为你们的防火墙,那么在这里使用SELinux将非常好。这些就是在你部署SELinux需要考虑的关键词。

  快速查看/etc/selinux/config文件,你将获得有关你的系统值的信息,以及现在所采取的策略。下面是具体的查看命令,记得先切换到/etc/selinux目录下。

  [root@redken selinux]# more config

  # This file controls the state of SELinux on the system.

  # SELINUX= can take one of these three values:

  # enforcing - SELinux security policy is enforced.

  # permissive - SELinux prints warnings instead of enforcing.

  # disabled - SELinux is fully disabled.

  SELINUX=permissive

  # SELINUXTYPE= type of policy in use. Possible values are:

  # targeted - Only targeted network daemons are protected.

  # strict - Full SELinux protection.

  SELINUXTYPE=targeted

  [root@redken selinux]#

  当安装到系统时,可以选择三种SELinux中的一种。它们分别是强制(enforcing)、许可(permissive)和禁用(disabled)。我为自己的系统选择的是许可模式(实现SeLinux可用的两种模式之一),这是因为我不想在测试时,它妨碍到我的应用程序。若是想查看SELinux妨碍类型的条目,请打开/var/log/messages文件。在这里获取那些输入的妨碍类型条目之后,你可能会想打开SELinux的强制模式。

  虽然在一个安装的系统上能够有多个策略,但在同一时间,只能有一个处于激活状态。已经存在的两个策略类型是“targeted”和“strict”。targeted(目标)策略通常不需要限定即可运行,strict(限制)策略则将处理进程分割成安全域,以用策略限制。

  惧色将在最后确定,它决定了一个用户允许运行的命令。如果你以普通用户登录进入系统,你可能看到如下的情况:

  [kem@redken ~]$ id –Z

  user_u:system_r:unconfined_t

  此信息表示你相对于root来说,是一个普通用户。当你以root身份登录时,运行id –Z命令后,你将会看到以下信息:

  root:system_r:unconfined_t

  如果你用ls –Z命令检查httpd进程,你将看到:

  -rwxr-xr-x root root system_u:object_r:httpd_exec_t /usr/sbin/httpd.

  上述信息表示,此文件的所有者是httpd域,而用户kem,并不在此域中。如果你想授予kem访问权限,你可以手工将他放入这个域即可。

  当然,还是有一些GUI界面的工具能够帮助用户来进行策略的配置,这些工具能够为每个服务执行配置,也允许你执行如改变设置和限制文件访问的人物。在Linux命令行下,输入system-config-securitylevel命令(或者在GNOME中点击系统设置按钮,再从中选择安全等级),将会启动一个如下图的GUI界面窗口,在其中能够容易的调整SELinux的设置。在这里,我关闭了httpd进程的SELinux保护。

GUI界面配置支持的服务器包括DNS、NIS、HTTP和DHCP,虽然我不能在这里为你展示更多的设置,但我想你只要一看相应的图片,就真正明白了有关SELinux的更多知识。需要注意的是,如果你选择了启用或禁用SELinux,则需要重新启动计算机才能够使改变生效。

  另外,尝试使用sestaus命令,这个好工具将给你提供有关系统的更多详细信息。这里是一些我运行此命令后收到的输出信息。

  [root@redken users]# sestatus

  SELinux status: enabled

  SELinuxfs mount: /selinux

  Current mode: permissive

  Mode from config file: permissive

  Policy version: 18

  在上述信息中,我们看到,SELinux正在运行(处于enabled状态),SELinux文件系统的挂载点是/selinux,SELinux现在运行的模式是permissive(许可)模式,策略的版本是18。策略的版本由内核支持。

  如果你想查看跟安全有关的进程,则请输入ps –Z命令,或者 ps –efZ命令获取整个进程表。这里是一个例子:

  ps -Z

  LABEL PID TTY TIME CMD

  root:system_r:unconfined_t 3110 pts/2 00:00:00 bash

  root:system_r:unconfined_t 24269 pts/2 00:00:00 ps

  而从命令行或者编辑SELinux文本文件的方式设置策略和规则并不是一件容易的事情,因此如果你考虑打开SELinux,则需要学习大量的知识,在生产环境下尤其如此。想获得更多的信息,请访问美国国家安全局网站的SELinux部分。

  幸运的是,Red Hat将拿出一些好的文档,以帮助终端用户在Red Hat环境中实施SELinux;文档包含有一个很好的实际的例子。当然,由于Red Hat中的SELinux在配置上有一些特殊的改变,因此同样需要文档进行这些特殊的SELinux配置,具体表现在实施中,就是许多文件和目录的位置不尽相同。

  这里是RedHat SELinux指南的链接,多谢Stefan Wiederode提供了此链接。

推荐】【 】【关闭


关于极限 | 站内地图 | 意见反馈 | 广告服务 | 数据服务 | 联系我们
本站所刊登的文章,技术资料,软件均整理于网络资源或本站原创,转载请务必联系原作者或本站。
Copyright ? 2001-2004 UPLinux.com All Rights Reserved.
本站唯一联系信箱:
京ICP备05010519