系统管理指南:安全性服务

控制对计算机资源的访问

作为系统管理员,您可以控制和监视系统活动。可以针对何人使用哪些资源设置限制。可以记录资源的使用,并可以监视正在使用资源的用户,还可以设置计算机以最大程度减少资源的不正确使用。

限制和监视超级用户

系统要求提供 root 口令才能进行超级用户访问。在缺省配置中,用户无法以 root 的身份远程登录系统。远程登录时,用户必须使用其用户名登录,然后使用 su 命令成为 root。可以监视使用 su 命令的用户,特别是那些尝试获取超级用户访问权限的用户。有关监视用户以及限制超级用户访问权限的过程,请参见监视和限制超级用户(任务列表)

配置基于角色的访问控制以替换超级用户

基于角色的访问控制或 RBAC 旨在限制超级用户的功能。超级用户(即 root 用户)具有访问系统中所有资源的权限。借助 RBAC,可以使用一组具有单独权限的角色来替换 root。例如,可以设置一个角色来处理用户帐户创建,设置另一个角色来处理系统文件修改。创建了处理一种或一组功能的角色之后,即可从 root 的功能中删除这些功能。

每个角色都要求已知的用户使用自己的用户名和口令进行登录。登录之后,用户即可承担具有特定角色口令的角色。因此,知道 root 口令的用户只有有限的系统破坏力。有关 RBAC 的更多信息,请参见基于角色的访问控制(概述)

防止无意中误用计算机资源

您可以通过以下方法来防止您自己和您的用户导致意外的错误:

设置 PATH 变量

应该谨慎地正确设置 PATH 变量。否则,可能会无意中运行由其他用户引入的程序。入侵程序会破坏数据或损坏系统。这类对安全性构成威胁的程序称为特洛伊木马程序。例如,一个替代的 su 程序可能会放置在公共目录中,而您作为系统管理员可能会运行此替代程序。这类脚本看上去正好类似于常规的 su 命令。由于这类脚本会在执行之后自行删除,因此,几乎没有明确迹象表明您实际上已运行了特洛伊木马程序。

PATH 变量在登录时自动设置。路径通过以下启动文件设置:.login.profile .cshrc。当设置用户搜索路径以便将当前目录 (.) 置于最后时,系统会阻止运行这类特洛伊木马程序。供超级用户使用的 PATH 变量根本不应该包括当前目录。

自动安全性增强工具 (Automated Security Enhancement Tool, ASET) 会检查启动文件以确保 PATH 变量设置正确。ASET 还可确保 PATH 变量不包含点 (.) 项。

为用户指定受限 Shell

标准 shell 允许用户打开文件,执行命令等。受限 shell 可限制用户更改目录和执行命令。可使用 /usr/lib/rsh 命令调用受限 shell。请注意,受限 shell 并不是远程 shell,后者为 /usr/sbin/rsh。受限 shell 在以下方面不同于标准 shell:

使用受限 shell,可以限制用户对系统文件的访问能力。此 shell 将为需要执行特定任务的用户创建一种限制环境。但是,受限 shell 并非完全安全,它仅旨在防止不熟练的用户无意中造成破坏。

有关受限 shell 的信息,请使用 man -s1m rsh 命令查看 rsh(1M) 手册页。

受限 shell 的更安全的替代项是 Solaris 安全 Shell 中的 ssh 命令。使用 Solaris 安全 Shell,用户可以通过不安全的网络安全地访问远程主机。有关使用 Solaris 安全 Shell 的信息,请参见第 19 章,Solaris 安全 Shell(参考)

限制对文件中数据的访问

由于 Solaris OS 是多用户环境,因此,文件系统的安全性是系统中最基本的安全风险。可以使用传统的 UNIX 文件保护措施来保护文件,还可以使用更安全的访问控制列表 (access control list, ACL)。

您可能需要允许某些用户读取某些文件,同时为另一些用户提供更改或删除某些文件的权限。您可能具有某些不希望其他任何用户查看的数据。第 6 章,控制对文件的访问(任务)介绍了如何设置文件权限。

限制 setuid 可执行文件

可执行文件可能存在安全风险。许多可执行程序必须以 root 的身份(即超级用户身份)执行才能正常工作。运行这些 setuid 程序需要将用户 ID 设置为 0。运行这些程序的任何用户都使用 root ID 运行程序。如果在编写使用 root ID 运行的程序时未注重安全性,则此程序将引起潜在的安全问题。

除了 Sun 附带的 setuid 位设置为 root 的可执行程序之外,还应该禁止使用 setuid 程序。如果无法禁止使用 setuid 程序,则至少应该限制其使用。安全管理很少需要使用 setuid 程序。

有关更多信息,请参见防止可执行文件危及安全。有关过程,请参见防止程序受到安全风险(任务列表)

使用自动安全性增强工具

ASET 安全软件包提供可用于控制和监视系统安全性的自动管理工具。ASET 提供了三种安全级别:低、中和高。可以指定一种 ASET 安全级别。级别越高,ASET 对文件的控制功能越强,从而可限制访问文件并提高系统的安全性。有关更多信息,请参见第 7 章,使用自动安全性增强工具(任务)

使用 Solaris 安全工具包

虽然 ASET 可用于对系统进行少量安全更改,但 Solaris 安全工具包提供了一种灵活且可扩展的机制,用于最小化、加强和保护 Solaris 系统。Solaris 安全工具包(非正式名称为 JASS 工具包)是一种由用户用来对系统执行安全修改的工具。此工具可以提供有关系统安全状态的报告,还可以撤消工具以前运行的内容。JASS 工具包可以从 Sun 的 Web 站点 http://wwws.sun.com/security/jass 下载。此 Web 站点包含指向联机文档的链接。

Alex Noordergraaf 和 Glenn Brunette 合著的《Securing Systems with the Solaris Security Toolkit》(ISBN 0-13-141071-7,2003 年 6 月)中对此工具包进行了详细说明。本书是 Sun Microsystems Press 出版的 Sun BluePrints 系列的一部分。

使用 Solaris 资源管理功能

Solaris 软件提供了完善的资源管理功能。使用这些功能,可以按照服务器整合环境中的应用程序对资源使用进行分配、安排、监视以及设置上限操作。使用资源控制框架,可以对进程占用的系统资源设置约束。这类约束有助于防止尝试使系统资源发生泛洪的脚本引起的拒绝服务攻击。

使用 Solaris 资源管理功能,可以为特殊项目指定资源,还可以动态调整可用资源。有关更多信息,请参见《系统管理指南:Solaris Containers-资源管理和 Solaris Zones》中的第 I 部分, “资源管理”

使用 Solaris Zones

Solaris Zones 提供了一种应用程序执行环境,其中单个 Solaris OS 实例中各进程与系统的其余部分隔离开来。这种隔离阻止了在一个区域中运行的进程监视或影响在其他区域中运行的进程。即使运行的进程具有超级用户功能,也不能查看或影响其他区域中的活动。

Solaris Zones 非常适用于将多个应用程序置于一台服务器中的环境。有关更多信息,请参见《系统管理指南:Solaris Containers-资源管理和 Solaris Zones》中的第 II 部分, “Zones”

监视计算机资源的使用情况

作为系统管理员,需要监视系统活动。您需要注意计算机的所有方面,包括以下各项:

了解这些知识之后,即可使用可用工具来审计系统使用情况并监视个别用户的活动。如果怀疑安全性受到破坏,则使用监视功能会非常有用。有关审计服务的更多信息,请参见第 27 章,Solaris 审计(概述)

监视文件完整性

作为系统管理员,需要确保所管理的系统上安装的文件尚未被意外更改。在大型安装中,使用用于对每个系统上的软件栈进行比较和报告的工具可跟踪系统。使用基本审计报告工具 (Basic Audit Reporting Tool, BART),可以通过在一段时间内对一个或多个系统执行文件级检查来全面验证系统。一个或多个系统的 BART 清单在一段时间内的变化可以验证系统的完整性。BART 提供了清单创建、清单比较以及脚本报告规则。有关更多信息,请参见第 5 章,使用基本审计报告工具(任务)