跳过导航链接 | |
退出打印视图 | |
系统管理指南:安全性服务 Oracle Solaris 10 8/11 Information Library (简体中文) |
作为系统管理员,您可以控制和监视系统活动。您可以通过设置限制访问的对象及其可以访问的资源。可以记录资源的使用,并可以监视正在使用资源的对象,还可以设置系统以最大程度地减少资源的不当使用。
系统要求提供 root 口令才能进行超级用户访问。在缺省配置中,用户无法以 root 身份远程登录系统。远程登录时,用户必须使用其用户名登录,然后使用 su 命令成为 root 用户。可以监视一直在使用 su 命令的用户,特别是那些尝试获取超级用户访问权限的用户。有关监视超级用户以及限制超级用户访问权限的过程,请参见监视和限制超级用户(任务列表)。
基于角色的访问控制或 RBAC 旨在限制超级用户的功能。超级用户(即 root 用户)可以访问系统中的所有资源。借助 RBAC,可以使用一组具有独立权限的角色来替换 root。例如,可以设置一个角色来处理用户帐户创建,设置另一个角色来处理系统文件修改。创建了处理一种或一组功能的角色之后,即可从 root 的功能中删除这些功能。
每个角色都要求已知的用户使用自己的用户名和口令进行登录。登录之后,用户即可承担具有特定角色口令的角色。因此,知道 root 口令的用户只有有限的系统破坏力。有关 RBAC 的更多信息,请参见基于角色的访问控制(概述)。
可以通过以下方法来防止您和您的用户发生意外错误:
可以为用户指定受限 shell。受限 shell 通过控制用户仅访问其工作所需的那些系统部分来防止出现用户错误。事实上,通过谨慎设置,可以确保用户仅访问有助于提高其工作效率的那些系统部分。
可以针对用户无需访问的文件设置限制性权限。
应注意正确设置 PATH 变量。否则,可能会无意中运行他人引入的程序。入侵程序可能会破坏数据或危害系统。这种对安全性构成威胁的程序称为特洛伊木马。例如,一个冒充的 su 程序可能会放置在公共目录中,而您作为系统管理员可能会运行该冒充程序。这类脚本看上去就像常规的 su 命令。由于这类脚本会在执行之后自行删除,因此,几乎没有明确迹象表明您实际上已运行了特洛伊木马。
PATH 变量是在登录时自动设置的。路径通过以下启动文件设置:.login、.profile 和 .cshrc。当设置用户搜索路径以便将当前目录 (.) 置于最后时,就可以防止您运行这类特洛伊木马。供超级用户使用的 PATH 变量绝对不应该包括当前目录。
自动安全性增强工具 (Automated Security Enhancement Tool, ASET) 可检查启动文件以确保 PATH 变量设置正确。ASET 还可确保 PATH 变量不包含点 (.) 项。
标准 shell允许用户执行打开文件、执行命令等操作。受限 shell 可限制用户更改目录和执行命令的能力。可使用 /usr/lib/rsh 命令调用受限 shell。请注意,受限 shell 并不是远程 shell,后者为 /usr/sbin/rsh。
受限 shell 在以下方面不同于标准 shell:
受限用户只能使用用户的起始目录,因此无法使用 cd 命令更改目录。因此,这类用户无法浏览系统文件。
受限用户无法更改 PATH 变量,因此只能使用系统管理员设置的路径中的命令。受限用户也无法使用完整路径名来执行命令或脚本。
使用受限 shell,可以限制用户对系统文件的访问能力。此类 shell 将为需要执行特定任务的用户创建一种受限环境。但是,受限 shell 并非完全安全,它的目的仅在于防止不熟练的用户无意中造成破坏。
有关受限 shell 的信息,请使用 man -s1m rsh 命令查看 rsh(1M) 手册页。
因为 Oracle Solaris 是一种多用户环境,因此文件系统安全性是系统中最基本的安全风险。可以使用传统的 UNIX 文件保护措施保护文件,也可以使用更安全的访问控制列表 (access control list, ACL)。
您可能需要允许一些用户读取某些文件,为另一些用户提供更改或删除某些文件的权限。您可能会有一些不希望其他任何用户看到的数据。第 6 章介绍了如何设置文件权限。
可执行文件可能产生安全风险。许多可执行程序必须以 root 身份(即以超级用户身份)运行才能正常工作。运行这些 setuid 程序需要将用户 ID 设置为 0。运行这些程序的任何用户都使用 root ID 运行程序。如果在编写某个程序时没有注意安全问题,使用 root ID 运行该程序将造成潜在的安全问题。
除了 setuid 位设置为 root 的 Oracle 随附可执行程序外,应该禁止使用其他 setuid 程序。如果无法禁止使用 setuid 程序,则必须限制其使用。安全管理需要的 setuid 程序很少。
有关更多信息,请参见防止可执行文件危及安全。有关过程,请参见防止程序受到安全风险(任务列表)。
ASET 安全软件包提供可用于控制和监视系统安全性的自动管理工具。ASET 提供三种安全级别:低、中和高。可以指定一种 ASET 安全级别。级别越高,ASET 对文件的控制功能越强,从而限制文件访问并提高系统的安全性。有关更多信息,请参见第 7 章。
虽然可使用 ASET 对系统进行少量安全设置更改,但 Oracle Solaris 安全工具包 提供了一种灵活的可扩展机制,可以最小化、加强和保护 Oracle Solaris 系统。使用 Oracle Solaris 安全工具包(非正式名称为 JASS 工具包),用户可以对系统的安全设置执行修改。该工具可以提供有关 Oracle Solaris 系统安全状态的报告,还可以撤消工具以前运行的内容。可从 Oracle 与 Sun 下载 JASS 工具包。单击 "Sun Downloads: A-Z listing"(Sun 下载:A-Z 列表),然后在按字母排序的下载项列表中搜索字符串 Solaris Security Toolkit(Solaris 安全工具包)。
Alex Noordergraaf 和 Glenn Brunette 合著的《Securing Systems with the Solaris Security Toolkit》(ISBN 0-13-141071-7,2003 年 6 月)中对此工具包进行了详细说明。本书是 Sun Microsystems Press 出版的 Sun BluePrints 系列的一部分。
缺省情况下,安装了 Solaris 10 发行版后,会启用大量网络服务。要限制系统的网络连通性,可以运行 netservices limited 命令。此命令可激活缺省安全 (Secure by Default, SBD) 配置。借助 SBD,接受网络请求的唯一网络服务将是 sshd 守护进程。其他所有网络服务将被禁用,或仅处理本地请求。要启用单个网络服务(如 ftp),可使用服务管理工具 (Service Management Facility, SMF)。有关更多信息,请参见 netservices(1M) 和 smf(5) 手册页。
Oracle Solaris 软件提供了完善的资源管理功能。使用这些功能,可以按照服务器整合环境中的应用程序对资源使用进行分配、安排、监视以及设置上限操作。使用资源控制框架,可以对进程占用的系统资源设置约束。这类约束有助于防止尝试使系统资源发生泛洪的脚本引起的拒绝服务攻击。
使用 Oracle Solaris 资源管理功能,可以为特定项目指定资源,还可以动态调整可用资源。有关更多信息,请参见《系统管理指南:Oracle Solaris Containers-资源管理和 Oracle Solaris Zones》中的第 I 部分, "资源管理"。
Oracle Solaris 区域提供了一种应用程序执行环境,其中单个 Oracle Solaris OS 实例中各进程与系统的其余部分隔离开来。这种隔离阻止了在一个区域中运行的进程监视或影响在其他区域中运行的进程。即使运行的进程具有超级用户功能,也不能查看或影响其他区域中的活动。
Oracle Solaris 区域非常适用于将多个应用程序置于单个服务器上的环境。有关更多信息,请参见《系统管理指南:Oracle Solaris Containers-资源管理和 Oracle Solaris Zones》中的第 II 部分, "Zones"。
作为系统管理员,您需要监视系统活动。您需要注意计算机的所有方面,其中包括以下方面:
什么是正常负载?
谁有权访问系统?
个人何时访问系统?
哪些程序会在系统上正常运行?
了解这些知识之后,就可以使用可用工具审计系统使用情况并监视单个用户的活动。如果怀疑安全性受到破坏,则使用监视功能会非常有用。有关审计服务的更多信息,请参见第 28 章。
作为系统管理员,您需要确保所管理的系统上安装的文件未被意外更改。在大型安装中,通过有关每个系统上的软件栈的比较和报告工具可以跟踪系统。使用基本审计报告工具 (Basic Audit Reporting Tool, BART),可以按时间进度对一个或多个系统执行文件级检查,以此进行全面的系统验证。一个或多个系统的 BART 清单在一段时间内的变化可以验证系统的完整性。BART 提供了清单创建、清单比较以及脚本报告规则。有关更多信息,请参见第 5 章。